Browse Source

Merge pull request #324 from Hutchy68/develop-merge

Develop merge into master, ready for release
Tom Hutchison 7 năm trước cách đây
mục cha
commit
87533a50f8
44 tập tin đã thay đổi với 12925 bổ sung6947 xóa
  1. 33 0
      CHANGELOG.md
  2. 13 2
      COPYING
  3. 0 35
      Foreground.i18n.php
  4. 63 40
      Foreground.skin.php
  5. 12 0
      ISSUE_TEMPLATE.md
  6. 23 15
      README.md
  7. BIN
      assets/fonts/FontAwesome.otf
  8. BIN
      assets/fonts/fontawesome-webfont.eot
  9. 14 14
      assets/fonts/fontawesome-webfont.svg
  10. BIN
      assets/fonts/fontawesome-webfont.ttf
  11. BIN
      assets/fonts/fontawesome-webfont.woff
  12. BIN
      assets/fonts/fontawesome-webfont.woff2
  13. 19 17
      assets/scripts/foreground.js
  14. 426 0
      assets/scripts/foundation/foundation.abide.js
  15. 125 0
      assets/scripts/foundation/foundation.accordion.js
  16. 43 0
      assets/scripts/foundation/foundation.alert.js
  17. 292 222
      assets/scripts/foundation/foundation.clearing.js
  18. 397 107
      assets/scripts/foundation/foundation.dropdown.js
  19. 104 0
      assets/scripts/foundation/foundation.equalizer.js
  20. 218 129
      assets/scripts/foundation/foundation.interchange.js
  21. 335 246
      assets/scripts/foundation/foundation.joyride.js
  22. 589 304
      assets/scripts/foundation/foundation.js
  23. 182 100
      assets/scripts/foundation/foundation.magellan.js
  24. 225 0
      assets/scripts/foundation/foundation.offcanvas.js
  25. 409 323
      assets/scripts/foundation/foundation.orbit.js
  26. 329 137
      assets/scripts/foundation/foundation.reveal.js
  27. 296 0
      assets/scripts/foundation/foundation.slider.js
  28. 247 0
      assets/scripts/foundation/foundation.tab.js
  29. 348 0
      assets/scripts/foundation/foundation.tooltip.js
  30. 323 162
      assets/scripts/foundation/foundation.topbar.js
  31. 5 735
      assets/scripts/vendor/fastclick.js
  32. 8 0
      assets/scripts/vendor/jquery.cookie.js
  33. 7 0
      assets/scripts/vendor/modernizr.js
  34. 1 0
      assets/scripts/vendor/placeholder.js
  35. 418 4
      assets/stylesheets/font-awesome.css
  36. 35 2
      assets/stylesheets/foreground-print.css
  37. 1269 540
      assets/stylesheets/foreground.css
  38. 5878 3555
      assets/stylesheets/foundation.css
  39. 0 0
      assets/stylesheets/foundation.min.css
  40. 198 176
      assets/stylesheets/normalize.css
  41. 7 64
      foreground.php
  42. 2 1
      i18n/de.json
  43. 4 2
      i18n/en.json
  44. 28 15
      skin.json

+ 33 - 0
CHANGELOG.md

@@ -1,3 +1,36 @@
+## Version 2.1
+
+* [bug] Regression - Text footer alignment and social icons (follow) #319
+* [bug fix] AddThis div container #295
+* [enhancement] Hide AddThis on non content pages by disabling <script> from running
+* [bug fix] Fixes for VisualEditor changes in editor layout #313
+* [compatibilit] Remove IE 8 Support entirely
+* [code] CSS fixes for Issues #88, #172 and #196 (Print.css, firstHeading and Wikitable override by Foundation)
+* [code] Moved icon appending for Visual Editor to `(window).load` function
+* [code] Improved styling of TOC
+* [code] [b/c break] Switch to MW 1.25+ extension registration mechanism
+* [code] [b/c break] Removed I18n shim for < MW 1.23
+* [code] Move Echo above Page Actions button
+* [feature] Add page indicator support
+* [feature] Add 'enableTabs' for tabs on page support
+* [language] Enable "Back" in mobile nav menu to be localised
+* [bug fix] RTL detection improved
+* [code] More CSS fixes for Orbit, Tabs, etc
+
+## Version 2.0
+
+* [feature] [b/c break] Upgrade to Foundation 5.5.3 (Foundation Tabs have a coding change to build tabs on pages)
+* [code] [b/c break] Use the help page set with MediaWiki:Helppage
+* [feature] [code] Remove "Login" word for annon users, dropdown for log in and create account links
+* [icons] Update to Font Awesome 4.5
+* [icons] Missing icons for Visual Editor, CiteThisPage, et al were added
+* [feature] Support of more menu items in top-bar, flows automatically
+* [code] Hard set of logo icon in top-bar now controlled by CSS in foreground.css file (can be overridden)
+* [code] Actions button on_hover is using native Foundation 5 on_hover (regression in Foundation 5 caused move on_hover to left instead of bottom) 
+* [code] Echo div container divided with div for alerts and div for messages (MW Flow extension compatible)
+* [bug fix] Visual Editor z-index issue, toolbar and widget sizing
+* [code] z-index values for z-indexed elements re-indexed appropriately
+
 ## Version 1.2
 
 * [compatibility] Update skin for skin registration on MW 1.25 and higher

+ 13 - 2
COPYING

@@ -1,5 +1,16 @@
-Copyright (c) 2013, Garrick Van Buren, Jamie Thingelstad All rights
-reserved.
+Copyright (c) 2013, Garrick Van Buren, Jamie Thingelstad, Tom Hutchison.
+All rights reserved.
+
+The license text below "====" applies to all files within this
+distribution, other than those that are in a directory which contains
+files named "LICENSE" or "COPYING", or a subdirectory thereof. For
+those files, the license text contained in said file overrides any
+license information contained in directories of smaller depth.
+Alternative licenses are typically used for software that is provided
+by external parties, and merely packaged with the Foreground release
+for convenience.
+
+====
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are

+ 0 - 35
Foreground.i18n.php

@@ -1,35 +0,0 @@
-<?php
-/**
- * This is a backwards-compatibility shim, generated by:
- * https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
- *
- * Beginning with MediaWiki 1.23, translation strings are stored in json files,
- * and the EXTENSION.i18n.php file only exists to provide compatibility with
- * older releases of MediaWiki. For more information about this migration, see:
- * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
- *
- * This shim maintains compatibility back to MediaWiki 1.17.
- */
-$messages = array();
-if ( !function_exists( 'wfJsonI18nSkinForeground' ) ) {
-	function wfJsonI18nSkinForeground( $cache, $code, &$cachedData ) {
-		$codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
-		foreach ( $codeSequence as $csCode ) {
-			$fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
-			if ( is_readable( $fileName ) ) {
-				$data = FormatJson::decode( file_get_contents( $fileName ), true );
-				foreach ( array_keys( $data ) as $key ) {
-					if ( $key === '' || $key[0] === '@' ) {
-						unset( $data[$key] );
-					}
-				}
-				$cachedData['messages'] = array_merge( $data, $cachedData['messages'] );
-			}
-
-			$cachedData['deps'][] = new FileDependency( $fileName );
-		}
-		return true;
-	}
-
-	$GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 'wfJsonI18nSkinForeground';
-}

+ 63 - 40
Foreground.skin.php

@@ -19,11 +19,14 @@ class Skinforeground extends SkinTemplate {
 			'NavWrapperType' => 'divonly',
 			'showHelpUnderTools' => true,
 			'showRecentChangesUnderTools' => true,
+			'enableTabs' => false,
 			'wikiName' => &$GLOBALS['wgSitename'],
 			'navbarIcon' => false,
 			'IeEdgeCode' => 1,
-			'showFooterIcons' => 0,
-			'addThisFollowPUBID' => ''
+			'showFooterIcons' => false,
+			'addThisPUBID' => '',
+			'useAddThisShare' => '',
+			'useAddThisFollow' => ''
 		);
 		foreach ($wgForegroundFeaturesDefaults as $fgOption => $fgOptionValue) {
 			if ( !isset($wgForegroundFeatures[$fgOption]) ) {
@@ -47,7 +50,7 @@ class Skinforeground extends SkinTemplate {
 		parent::initPage($out);
 
 		$viewport_meta = 'width=device-width, user-scalable=yes, initial-scale=1.0';
-	  $out->addMeta('viewport', $viewport_meta);
+		$out->addMeta('viewport', $viewport_meta);
 		$out->addModules('skins.foreground.js');
 	}
 
@@ -59,6 +62,20 @@ class foregroundTemplate extends BaseTemplate {
 		global $wgForegroundFeatures;
 		wfSuppressWarnings();
 		$this->html('headelement');
+		switch ($wgForegroundFeatures['enableTabs']) {
+			case true:
+			    ob_start();
+				$this->html('bodytext');
+				$out = ob_get_contents();
+				ob_end_clean();
+				$markers = array("&lt;a", "&lt;/a", "&gt;");
+				$tags = array("<a", "</a", ">");
+				$body = str_replace($markers, $tags, $out);
+				break;	
+			default:
+				$body = '';
+				break;
+		}
 		switch ($wgForegroundFeatures['NavWrapperType']) {
 			case '0':
 				break;
@@ -70,7 +87,7 @@ class foregroundTemplate extends BaseTemplate {
 				break;
 		}
 		// Set default variables for footer and switch them if 'showFooterIcons' => true
-		$footerLeftClass = 'small-8 large-centered columns text-center';
+		$footerLeftClass = 'small-12 large-centered columns text-center';
 		$footerRightClass = 'large-12 small-12 columns';
 		$poweredbyType = "nocopyright";
 		$poweredbyMakeType = 'withoutImage';
@@ -86,17 +103,17 @@ class foregroundTemplate extends BaseTemplate {
 		}
 ?>
 <!-- START FOREGROUNDTEMPLATE -->
-		<nav class="top-bar">
+		<nav class="top-bar" data-topbar role="navigation" data-options="back_text: <?php echo wfMessage( 'foreground-menunavback' )->text(); ?>">
 			<ul class="title-area">
 				<li class="name">
-					<h1 class="title-name">
+					<div class="title-name">
 					<a href="<?php echo $this->data['nav_urls']['mainpage']['href']; ?>">
 					<?php if ($wgForegroundFeatures['navbarIcon'] != '0') { ?>
-						<img alt="<?php echo $this->text('sitename'); ?>" src="<?php echo $this->text('logopath') ?>" style="max-width: 64px;height:auto; max-height:36px; display: inline-block; vertical-align:middle;">
+						<img alt="<?php echo $this->text('sitename'); ?>" class="top-bar-logo" src="<?php echo $this->text('logopath') ?>">
 					<?php } ?>					
 					<div class="title-name" style="display: inline-block;"><?php echo $wgForegroundFeatures['wikiName']; ?></div>
 					</a>
-					</h1>
+					</div>
 				</li>
 				<li class="toggle-topbar menu-icon">
 					<a href="#"><span><?php echo wfMessage( 'foreground-menutitle' )->text(); ?></span></a>
@@ -106,7 +123,7 @@ class foregroundTemplate extends BaseTemplate {
 		<section class="top-bar-section">
 
 			<ul id="top-bar-left" class="left">
-				<li class="divider"></li>
+				<li class="divider show-for-small"></li>
 					<?php foreach ( $this->getSidebar() as $boxName => $box ) { if ( ($box['header'] != wfMessage( 'toolbox' )->text())  ) { ?>
 				<li class="has-dropdown active"  id='<?php echo Sanitizer::escapeId( $box['id'] ) ?>'<?php echo Linker::tooltip( $box['id'] ) ?>>
 					<a href="#"><?php echo htmlspecialchars( $box['header'] ); ?></a>
@@ -121,7 +138,7 @@ class foregroundTemplate extends BaseTemplate {
 			<ul id="top-bar-right" class="right">
 				<li class="has-form">
 					<form action="<?php $this->text( 'wgScript' ); ?>" id="searchform" class="mw-search">
-						<div class="row">
+						<div class="row collapse">
 						<div class="small-12 columns">
 							<?php echo $this->makeSearchInput(array('placeholder' => wfMessage('searchsuggest-search')->text(), 'id' => 'searchInput') ); ?>
 							<button type="submit" class="button search"><?php echo wfMessage( 'search' )->text() ?></button>
@@ -130,44 +147,40 @@ class foregroundTemplate extends BaseTemplate {
 					</form>
 				</li>
 				<li class="divider show-for-small"></li>
-				<li class="has-form">
 
 				<li class="has-dropdown active"><a href="#"><i class="fa fa-cogs"></i></a>
 					<ul id="toolbox-dropdown" class="dropdown">
 						<?php foreach ( $this->getToolbox() as $key => $item ) { echo $this->makeListItem($key, $item); } ?>
 						<?php if ($wgForegroundFeatures['showRecentChangesUnderTools']): ?><li id="n-recentchanges"><?php echo Linker::specialLink('Recentchanges') ?></li><?php endif; ?>
-						<?php if ($wgForegroundFeatures['showHelpUnderTools']): ?><li id="n-help" <?php echo Linker::tooltip('help') ?>><a href="/wiki/Help:Contents"><?php echo wfMessage( 'help' )->text() ?></a></li><?php endif; ?>
+						<?php if ($wgForegroundFeatures['showHelpUnderTools']): ?><li id="n-help" <?php echo Linker::tooltip('help') ?>><a href="<?php echo Skin::makeInternalOrExternalUrl( wfMessage( 'helppage' )->inContentLanguage()->text() )?>"><?php echo wfMessage( 'help' )->text() ?></a></li><?php endif; ?>
 					</ul>
 				</li>
 
-				<?php if ($wgUser->isLoggedIn()): ?>
 				<li id="personal-tools-dropdown" class="has-dropdown active"><a href="#"><i class="fa fa-user"></i></a>
 					<ul class="dropdown">
 						<?php foreach ( $this->getPersonalTools() as $key => $item ) { echo $this->makeListItem($key, $item); } ?>
 					</ul>
 				</li>
 
-						<?php else: ?>
-							<li>
-								<?php if (isset($this->data['personal_urls']['anonlogin'])): ?>
-								<a href="<?php echo $this->data['personal_urls']['anonlogin']['href']; ?>"><?php echo wfMessage( 'login' )->text() ?></a>
-								<?php elseif (isset($this->data['personal_urls']['login'])): ?>
-									<a href="<?php echo htmlspecialchars($this->data['personal_urls']['login']['href']); ?>"><?php echo wfMessage( 'login' )->text() ?></a>
-									<?php else: ?>
-										<?php echo Linker::link(Title::newFromText('Special:UserLogin'), wfMessage( 'login' )->text()); ?>
-									<?php endif; ?>
-							</li>
-
-				<?php endif; ?>
-
 			</ul>
 		</section>
 		</nav>
+		
 		<?php if ($wgForegroundFeatures['NavWrapperType'] != '0') echo "</div>"; ?>
 		
 		<div id="page-content">
 		<div class="row">
 				<div class="large-12 columns">
+					<!-- Output page indicators -->
+					<?php echo $this->getIndicators(); ?>
+					<!-- If user is logged in output echo location -->
+					<?php if ($wgUser->isLoggedIn()): ?>
+					<div id="echo-notifications">
+					<div id="echo-notifications-alerts"></div>
+					<div id="echo-notifications-messages"></div>
+					<div id="echo-notifications-notice"></div>
+					</div>
+					<?php endif; ?>
 				<!--[if lt IE 9]>
 				<div id="siteNotice" class="sitenotice panel radius"><?php echo $this->text('sitename') . ' '. wfMessage( 'foreground-browsermsg' )->text(); ?></div>
 				<![endif]-->
@@ -182,16 +195,13 @@ class foregroundTemplate extends BaseTemplate {
 		<div class="row">
 				<div id="p-cactions" class="large-12 columns">
 					<?php if ($wgUser->isLoggedIn() || $wgForegroundFeatures['showActionsForAnon']): ?>
-						<a href="#" data-dropdown="drop1" class="button dropdown small secondary radius"><i class="fa fa-cog"><span class="show-for-medium-up">&nbsp;<?php echo wfMessage( 'actions' )->text() ?></span></i></a>
+						<a id="actions-button" href="#" data-dropdown="actions" data-options="align:left; is_hover: true; hover_timeout:700" class="button small secondary radius"><i class="fa fa-cog"><span class="show-for-medium-up">&nbsp;<?php echo wfMessage( 'actions' )->text() ?></span></i></a>
 						<!--RTL -->
-						<ul id="drop1" class="views large-12 columns right f-dropdown">
+						<ul id="actions" class="f-dropdown" data-dropdown-content>
 							<?php foreach( $this->data['content_actions'] as $key => $item ) { echo preg_replace(array('/\sprimary="1"/','/\scontext="[a-z]+"/','/\srel="archives"/'),'',$this->makeListItem($key, $item)); } ?>
 							<?php wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );  ?>
 						</ul>
 						<!--RTL -->
-						<?php if ($wgUser->isLoggedIn()): ?>
-							<div id="echo-notifications"></div>
-						<?php endif; ?>
 					<?php endif;
 					$namespace = str_replace('_', ' ', $this->getSkin()->getTitle()->getNsText());
 					$displaytitle = $this->data['title'];
@@ -201,12 +211,26 @@ class foregroundTemplate extends BaseTemplate {
 						$displaytitle = str_replace($pagetitle, $newtitle, $displaytitle);
 					?><h4 class="namespace label"><?php print $namespace; ?></h4><?php } ?>
 					<div id="content">
-					<h2  id="firstHeading" class="title"><?php print $displaytitle; ?></h2>
+					<h1  id="firstHeading" class="title"><?php print $displaytitle; ?></h1>
+						<?php if ($wgForegroundFeatures['useAddThisShare'] !== '') { ?>
+						<!-- Go to www.addthis.com/dashboard to customize your tools -->
+						<div class="<?php echo $wgForegroundFeatures['useAddThisShare']; ?> hide-for-print"></div>
+						<!-- Go to www.addthis.com/dashboard to customize your tools -->
+						<?php } ?>
 					<?php if ( $this->data['isarticle'] ) { ?><h3 id="tagline"><?php $this->msg( 'tagline' ) ?></h3><?php } ?>
 					<h5 id="siteSub" class="subtitle"><?php $this->html('subtitle') ?></h5>
 					<div id="contentSub" class="clear_both"></div>
 					<div id="bodyContent" class="mw-bodytext">
-						<?php $this->html('bodytext') ?>
+						<?php 
+							switch ($wgForegroundFeatures['enableTabs']) {
+								case true:
+									echo $body;
+									break;
+								default:
+								$this->html('bodytext');
+									break;
+							}
+						?>
 						<div class="clear_both"></div>
 					</div>
 		    	<div class="group"><?php $this->html('catlinks'); ?></div>
@@ -217,13 +241,10 @@ class foregroundTemplate extends BaseTemplate {
 
 			<footer class="row">
 				<div id="footer">
-					<?php if ($wgForegroundFeatures['addThisFollowPUBID'] != '') { ?>
-						<div class="social-footer large-12 small-12 columns">
-							<div class="social-links">
+					<?php if ($wgForegroundFeatures['useAddThisFollow'] !== '') { ?>
+						<div class="social-follow hide-for-print">
 							<!-- Go to www.addthis.com/dashboard to customize your tools -->
-							<div class="addthis_horizontal_follow_toolbox"></div>
-							<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<?php echo $wgForegroundFeatures['addThisFollowPUBID'];?>"></script>
-							</div>
+							<div class="<?php echo $wgForegroundFeatures['useAddThisFollow']; ?> hide-for-print"></div>
 						</div>
 					<?php } ?>
 					<div id="footer-left" class="<?php echo $footerLeftClass;?>">
@@ -249,7 +270,9 @@ class foregroundTemplate extends BaseTemplate {
 		</div>
 		
 		<?php $this->printTrail(); ?>
-
+			<?php if ($this->data['isarticle'] && $wgForegroundFeatures['addThisPUBID'] !== '') { ?>
+				<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<?php echo $wgForegroundFeatures['addThisPUBID']; ?>" async="async">></script>
+			<?php } ?>	
 		</body>
 		</html>
 

+ 12 - 0
ISSUE_TEMPLATE.md

@@ -0,0 +1,12 @@
+### Setup
+
+- Browsers and versions:
+- MediaWiki version:
+- Database version:
+- PHP version:
+- Foreground version:
+- Extension version (if connected to the issue):
+
+### Issue
+
+Detailed description of the issue goes here.

+ 23 - 15
README.md

@@ -1,6 +1,6 @@
 # MediaWiki Foreground Skin
 
-[MediaWiki](http://www.mediawiki.org) skin that focuses on putting your content in the *foreground*. Supports responsive layouts and has classes predefined for [Semantic MediaWiki](http://semantic-mediawiki.org/wiki/Semantic_MediaWiki). Built on the [Zurb Foundation](http://foundation.zurb.com) CSS framework.
+[MediaWiki](https://www.mediawiki.org) skin that focuses on putting your content in the *foreground*. Supports responsive layouts and has classes predefined for [Semantic MediaWiki](https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki). Built on the [Zurb Foundation](http://foundation.zurb.com) CSS framework.
 
 [![Build Status](https://travis-ci.org/thingles/foreground.svg?branch=develop)](https://travis-ci.org/thingles/foreground) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/thingles/foreground/badges/quality-score.png?b=develop)](https://scrutinizer-ci.com/g/thingles/foreground/?branch=develop)
 
@@ -21,11 +21,9 @@ After that, you can issue `git pull` to update the code at anytime.
 
 ## Setup
 
-Once the skin is in place add one the following lines to your `LocalSettings.php` file depending on the version of MediaWiki you are using.
+Once the skin is in place add one the following lines to your `LocalSettings.php` file.
 
-    require_once "$IP/skins/foreground/foreground.php"; //MW versions < 1.25.x
-	
-	wfLoadSkin( 'foreground' ); //MW versions 1.25 and higher
+	wfLoadSkin( 'foreground' );
 
 This will activate Foreground in your installation. At this point you can select it as a user skin in your user preferences.
 
@@ -41,11 +39,14 @@ Use following features in `LocalSettings.php` to change the behavior.
 - `NavWrapperType => 'divonly'`: only a div with id `navwrapper` will be created. `'0'` - no div will be created (old behavior), other values will be used as class. 
 - `showHelpUnderTools => true` a Link to "Help" will be created under "Tools".
 - `showRecentChangesUnderTools => true` a Link to "recent changes" will be created under "Tools".
+- `'enableTabs' => true` for tabs on page support.
 - `wikiName => 'Alternate WikiName'` sets top navbar name to a different output of the wiki's name. Useful if your `$wgSitename` is long but need to keep it for other purposes.
 - `navbarIcon => true` to display an icon in the top navbar. See below for more information.
 - `IeEdgeCode => 1` will produce a meta tag with "X-UA-Compatible" content="IE=edge", `2` will sent a header, `0` nothing will be done
-- `showFooterIcons => 0` suppresses the output of footer icons. Set to `true` or `1` to display them.
-- `addThisFollowPUBID => 'your-id'` add an id to display Follow Us horizontal bar of icons from various social media sites available on [addThis](http://addthis.com).
+- `showFooterIcons => false` suppresses the output of footer icons. Set to `true` or `1` to display them.
+- `addThisPUBID => ''` empty string will not fire the AddThis script, `'ra-##-#######'` publisher ID will allow the run the AddThis script in async on content pages only.
+- `useAddThisShare => ''` default empty string, do not use AddThis share, `your_addthis_specific_div_class_string` will insert the share toolbox div directly under page title, but before the tagline with your custom div class.
+- `useAddThisFollow => ''` default empty string, do not use AddThis follow, `your_addthis_specific_div_class_string` will insert the follow toolbox div in the `footer` area before icon or text output with your custom div class.
 
 These are the default values:
 
@@ -54,13 +55,16 @@ These are the default values:
       'NavWrapperType' => 'divonly',
       'showHelpUnderTools' => true,
       'showRecentChangesUnderTools' => true,
+      'enableTabs' => false,
       'wikiName' => &$GLOBALS['wgSitename'],
       'navbarIcon' => false,
       'IeEdgeCode' => 1,
-      'showFooterIcons' => 0,
-      'addThisFollowPUBID' => ''
+      'showFooterIcons' => false,
+	  'addThisPUBID' => '',
+	  'useAddThisShare' => '',
+	  'useAddThisFollow' => ''
     );
-
+	
 ### Usage of NavWrapperType
 
 With a setting like:
@@ -85,29 +89,33 @@ With a setting like:
 
     'navbarIcon' => true
 
-A top navbar icon will be set using the current image set by `$wgLogo` in `LocalSettings.php`. See http://www.mediawiki.org/wiki/Manual:$wgLogo for more information about `$wgLogo`.
+A top navbar icon will be set using the current image set by `$wgLogo` in `LocalSettings.php`. See https://www.mediawiki.org/wiki/Manual:$wgLogo for more information about `$wgLogo`.
 
 The icon will be resized to fit into a maximum width of 64px x 36px wide or a 16:9 ratio.
 
+### Show Help under Tools
+
+This will add the help link under tools. To control what the help link will link to use the message page, `MediaWiki:Helppage` to set the link target. The link target can be a local page, Help:Contents, or an external URL, https://www.mediawiki.org/wiki/Help:Contents.
+
 ### AddThis Buttons
 
 With a setting like:
 
     'addThisFollowPUBID' => 'yourAddThis-PubID'
 
-Important, this feature uses the free or paid version of the http://addthis.com horizontal Follow Buttons only. Choose which social media FollowUs buttons(Twitter, Facebook, YouTube, etc.) and at the bottom of the screen locate the script. Within the script you will see something similar `...#pubid=ra-5378f4902d02197">`. Everything after the `=` sign and up to the `">` is your Publisher ID. To turn on social follow icons, insert your publisher id:
+Important, this feature uses the free or paid version of the https://addthis.com horizontal Follow Buttons only. Choose which social media FollowUs buttons(Twitter, Facebook, YouTube, etc.) and at the bottom of the screen locate the script. Within the script you will see something similar `...#pubid=ra-5378f4902d02197">`. Everything after the `=` sign and up to the `">` is your Publisher ID. To turn on social follow icons, insert your publisher id:
 
     'addThisFollowPUBID' => 'ra-5378f4902d02197'
 
 
 ### Notes on other skins
 
-As you build a wiki out with Foreground you will likely use the responsive grid from Foundation. This is key to making a responsive wiki, and is one of the largest _migration_ requirements when you want to move a wiki that ppreviously used Vector (and likely a lot of tables for layout) to Foreground. Once you do this, the ability of a user to select whatever skin will be removed. If you take full advantage of Foreground in your templates the lack of the Foundation grid will make viewing the wiki using [Vector](http://wikiapiary.com/wiki/Skin:Vector) or [MonoBook](http://wikiapiary.com/wiki/Skin:MonoBook) very difficult.
+As you build a wiki out with Foreground you will likely use the responsive grid from Foundation. This is key to making a responsive wiki, and is one of the largest _migration_ requirements when you want to move a wiki that ppreviously used Vector (and likely a lot of tables for layout) to Foreground. Once you do this, the ability of a user to select whatever skin will be removed. If you take full advantage of Foreground in your templates the lack of the Foundation grid will make viewing the wiki using [Vector](https://wikiapiary.com/wiki/Skin:Vector) or [MonoBook](https://wikiapiary.com/wiki/Skin:MonoBook) very difficult.
 
 Because of this, it is suggested that you set the `$wgSkipSkins` variable to make sure that everyone sees the site as you intended it. This removes other skins from being user selectable options.
 
     # Foreground is specific, so lets disable other skins
-    $wgSkipSkins = array( 'chick', 'cologneblue', 'modern', 'myskin', 'nostalgia', 'simple', 'standard', 'filament', 'monobook', 'vector' );
+    $wgSkipSkins = array( 'cologneblue', 'modern', 'monobook', 'vector' );
 
 You may also want to allow users to set a User CSS if they want to tweak things inside of Foreground. This is entirely optional.
 
@@ -116,4 +124,4 @@ You may also want to allow users to set a User CSS if they want to tweak things
 
 ## Using Foreground
 
-There is a [mailing list to discuss Foreground](http://lists.thingelstad.com/cgi-bin/mailman/listinfo/foreground-l). Please join to connect with others and explore questions about using Foreground on your wiki. You can see a list of wikis with [Foreground installed at WikiApiary](http://wikiapiary.com/wiki/Skin:Foreground).
+There is a [mailing list to discuss Foreground](https://lists.wikimedia.org/mailman/listinfo/foreground). Please join to connect with others and explore questions about using Foreground on your wiki. You can see a list of wikis with [Foreground installed at WikiApiary](https://wikiapiary.com/wiki/Skin:Foreground).

BIN
assets/fonts/FontAwesome.otf


BIN
assets/fonts/fontawesome-webfont.eot


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 14 - 14
assets/fonts/fontawesome-webfont.svg


BIN
assets/fonts/fontawesome-webfont.ttf


BIN
assets/fonts/fontawesome-webfont.woff


BIN
assets/fonts/fontawesome-webfont.woff2


+ 19 - 17
assets/scripts/foreground.js

@@ -1,25 +1,23 @@
 
 jQuery(document).ready(function() {
-  // Add the 'less than IE9' class to appropriate version of IE by checking for their support of cssFloat (true in v9)
-  if (!jQuery.support.cssFloat) { jQuery('html').addClass('lt-ie9').addClass('no-js'); }
-
 
+  // Log errors
   jQuery(document).foundation(function (response) {
-    // console.log(response.errors); < this line will produce error in ie9!
     if (window.console) console.log(response.errors);
   });
   
   // The Echo extension puts an item in personal tools that Foreground really should have in the top menu
   // to make this easier, we move it here and loaded earlier to speed up transform
-  jQuery("#pt-notifications").prependTo("#echo-notifications");
-  jQuery("#pt-notifications-alert").prependTo("#echo-notifications");
+  jQuery("#pt-notifications").prependTo("#echo-notifications-alerts");
+  jQuery("#pt-notifications-message").prependTo("#echo-notifications-messages");
+  jQuery("#pt-notifications-alert").prependTo("#echo-notifications-alerts");
+  jQuery("#pt-notifications-notice").prependTo("#echo-notifications-notice");
   
   // Append font-awesome icons
   jQuery('[id^=ca-nstab] a').prepend('<div class="drop-icon"><i class="fa fa-file fa-fw"></i></div>')
   jQuery('li#ca-talk a').prepend('<div class="drop-icon"><i class="fa fa-comments-o fa-fw"></i></div>')
-  jQuery('li#ca-edit a').prepend('<div class="drop-icon"><i class="fa fa-pencil-square-o fa-fw"></i></div>')
-  jQuery('li#ca-viewsource a').prepend('<div class="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
   jQuery('li#ca-form_edit a').prepend('<div class="drop-icon"><i class="fa fa-pencil-square fa-fw"></i></div>')
+  jQuery('li#ca-formedit a').prepend('<div class="drop-icon"><i class="fa fa-pencil-square fa-fw"></i></div>')
   jQuery('li#ca-history a').prepend('<div class="drop-icon"><i class="fa fa-history fa-fw"></i></div>')
   jQuery('li#ca-delete a').prepend('<div class="drop-icon"><i class="fa fa-trash-o fa-fw"></i></div>')
   jQuery('li#ca-move a').prepend('<div class="drop-icon"><i class="fa fa-truck fa-fw"></i></div>')
@@ -30,6 +28,7 @@ jQuery(document).ready(function() {
   jQuery('li#ca-purge a').prepend('<div class="drop-icon"><i class="fa fa-refresh fa-fw"></i></div>')
   jQuery('li#ca-undelete a').prepend('<div class="drop-icon"><i class="fa fa-undo fa-fw"></i></div>')
   jQuery('li#ca-ask_delete_permanently a').prepend('<div class="drop-icon"><i class="fa fa-cut fa-fw"></i></div>')
+  jQuery('li#t-cite a').prepend('<div class="drop-icon"><i class="fa fa-graduation-cap fa-fw"></i></div>')
 
 if ( jQuery( '#ca-addsection' ).length ) {
   jQuery('li#ca-addsection a').html('<div class="drop-icon"><i class="fa fa-plus fa-fw"></i></div>' + jQuery('li#ca-addsection a').attr('title').replace(/\[.+/g,""))
@@ -42,8 +41,12 @@ if ( jQuery( '#ca-addsection' ).length ) {
   jQuery('li#pt-preferences a').prepend('<div class="drop-icon"><i class="fa fa-ellipsis-h fa-fw"></i></div>')
   jQuery('li#pt-watchlist a').prepend('<div class="drop-icon"><i class="fa fa-th-list fa-fw"></i></div>')
   jQuery('li#pt-mycontris a').prepend('<div class="drop-icon"><i class="fa fa-smile-o fa-fw"></i></div>')
-  jQuery('li#pt-logout a').prepend('<div class="drop-icon"><i class="fa fa-power-off fa-fw"></i></div>')
-
+  jQuery('li#pt-logout a').prepend('<div class="drop-icon"><i class="fa fa-sign-out fa-fw"></i></div>')
+  jQuery('li#pt-login a').prepend('<div class="drop-icon"><i class="fa fa-sign-in fa-fw"></i></div>')
+  jQuery('li#pt-createaccount a').prepend('<div class="drop-icon"><i class="fa fa-lock fa-fw"></i></div>')
+  jQuery('li#pt-anonuserpage a').prepend('<div class="drop-icon"><i class="fa fa-user-secret fa-fw"></i></div>')
+  jQuery('li#pt-anontalk a').prepend('<div class="drop-icon"><i class="fa fa-commenting-o fa-fw"></i></div>')
+  
   jQuery('li#t-smwbrowselink a').prepend('<div class="drop-icon"><i class="fa fa-eye fa-fw"></i></div>')
   jQuery('li#t-whatlinkshere a').prepend('<div class="drop-icon"><i class="fa fa-arrows fa-fw"></i></div>')
   jQuery('li#t-blockip a').prepend('<div class="drop-icon"><i class="fa fa-ban fa-fw"></i></div>')
@@ -66,12 +69,11 @@ if ( jQuery( '#ca-addsection' ).length ) {
   // Turn categories into labels
   jQuery('#mw-normal-catlinks ul li a').addClass('label');
 
-  // Make the Page Action button respond to hover
-  jQuery('a.button.dropdown').mouseenter(function(){
-    jQuery('ul#drop1').addClass('open').addClass('right').css('top', '32px').css('left', '785px');
-  });
-  jQuery('ul#drop1').mouseleave(function(){
-    jQuery('ul#drop1').removeClass('open').css('top', '-9999px').css('left', '785px');
-  });
+});
 
+// Have to wait until the window is fully loaded because of Visual Editor to prepend icons for editing
+jQuery(window).load(function() {
+  jQuery('li#ca-ve-edit a').prepend('<div class="drop-icon"><i class="fa fa-pencil fa-fw"></i></div>')
+  jQuery('li#ca-viewsource a').prepend('<div class="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
+  jQuery('li#ca-edit a').prepend('<div class="drop-icon"><i class="fa fa-pencil-square-o fa-fw"></i></div>')
 });

+ 426 - 0
assets/scripts/foundation/foundation.abide.js

@@ -0,0 +1,426 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.abide = {
+    name : 'abide',
+
+    version : '5.5.3',
+
+    settings : {
+      live_validate : true, // validate the form as you go
+      validate_on_blur : true, // validate whenever you focus/blur on an input field
+      // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
+
+      focus_on_invalid : true, // automatically bring the focus to an invalid input field
+      error_labels : true, // labels with a for="inputId" will receive an `error` class
+      error_class : 'error', // labels with a for="inputId" will receive an `error` class
+      // the amount of time Abide will take before it validates the form (in ms).
+      // smaller time will result in faster validation
+      timeout : 1000,
+      patterns : {
+        alpha : /^[a-zA-Z]+$/,
+        alpha_numeric : /^[a-zA-Z0-9]+$/,
+        integer : /^[-+]?\d+$/,
+        number : /^[-+]?\d*(?:[\.\,]\d+)?$/,
+
+        // amex, visa, diners
+        card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|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}$/,
+
+        // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+        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])?)+$/,
+
+        // http://blogs.lse.ac.uk/lti/2008/04/23/a-regular-expression-to-match-any-url/
+        url: /^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,
+        // abc.de
+        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))$/,
+        // YYYY-MM-DD
+        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))$/,
+        // HH:MM:SS
+        time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
+        dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
+        // MM/DD/YYYY
+        month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
+        // DD/MM/YYYY
+        day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
+
+        // #FFF or #FFFFFF
+        color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+      },
+      validators : {
+        equalTo : function (el, required, parent) {
+          var from  = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+              to    = el.value,
+              valid = (from === to);
+
+          return valid;
+        }
+      }
+    },
+
+    timer : null,
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          form = self.S(scope).attr('novalidate', 'novalidate'),
+          settings = form.data(this.attr_name(true) + '-init') || {};
+
+      this.invalid_attr = this.add_namespace('data-invalid');
+
+      function validate(originalSelf, e) {
+        clearTimeout(self.timer);
+        self.timer = setTimeout(function () {
+          self.validate([originalSelf], e);
+        }.bind(originalSelf), settings.timeout);
+      }
+
+      form
+        .off('.abide')
+        .on('submit.fndtn.abide', function (e) {
+          var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
+          return self.validate(self.S(this).find('input, textarea, select').not(":hidden, [data-abide-ignore]").get(), e, is_ajax);
+        })
+        .on('validate.fndtn.abide', function (e) {
+          if (settings.validate_on === 'manual') {
+            self.validate([e.target], e);
+          }
+        })
+        .on('reset', function (e) {
+          return self.reset($(this), e);
+        })
+        .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
+          .off('.abide')
+          .on('blur.fndtn.abide change.fndtn.abide', function (e) {
+              var id = this.getAttribute('id'),
+                  eqTo = form.find('[data-equalto="'+ id +'"]');
+            // old settings fallback
+            // will be deprecated with F6 release
+            if (settings.validate_on_blur && settings.validate_on_blur === true) {
+              validate(this, e);
+            }
+            // checks if there is an equalTo equivalent related by id
+            if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+              validate(eqTo.get(0),e);
+            }
+            // new settings combining validate options into one setting
+            if (settings.validate_on === 'change') {
+              validate(this, e);
+            }
+          })
+          .on('keydown.fndtn.abide', function (e) {
+            var id = this.getAttribute('id'),
+                eqTo = form.find('[data-equalto="'+ id +'"]');
+            // old settings fallback
+            // will be deprecated with F6 release
+            if (settings.live_validate && settings.live_validate === true && e.which != 9) {
+              validate(this, e);
+            }
+            // checks if there is an equalTo equivalent related by id
+            if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+              validate(eqTo.get(0),e);
+            }
+            // new settings combining validate options into one setting
+            if (settings.validate_on === 'tab' && e.which === 9) {
+              validate(this, e);
+            }
+            else if (settings.validate_on === 'change') {
+              validate(this, e);
+            }
+          })
+          .on('focus', function (e) {
+            if (navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)) {
+              $('html, body').animate({
+                  scrollTop: $(e.target).offset().top
+              }, 100);
+            }
+          });
+    },
+
+    reset : function (form, e) {
+      var self = this;
+      form.removeAttr(self.invalid_attr);
+
+      $('[' + self.invalid_attr + ']', form).removeAttr(self.invalid_attr);
+      $('.' + self.settings.error_class, form).not('small').removeClass(self.settings.error_class);
+      $(':input', form).not(':button, :submit, :reset, :hidden, [data-abide-ignore]').val('').removeAttr(self.invalid_attr);
+    },
+
+    validate : function (els, e, is_ajax) {
+      var validations = this.parse_patterns(els),
+          validation_count = validations.length,
+          form = this.S(els[0]).closest('form'),
+          submit_event = /submit/.test(e.type);
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i = 0; i < validation_count; i++) {
+        if (!validations[i] && (submit_event || is_ajax)) {
+          if (this.settings.focus_on_invalid) {
+            els[i].focus();
+          }
+          form.trigger('invalid.fndtn.abide');
+          this.S(els[i]).closest('form').attr(this.invalid_attr, '');
+          return false;
+        }
+      }
+
+      if (submit_event || is_ajax) {
+        form.trigger('valid.fndtn.abide');
+      }
+
+      form.removeAttr(this.invalid_attr);
+
+      if (is_ajax) {
+        return false;
+      }
+
+      return true;
+    },
+
+    parse_patterns : function (els) {
+      var i = els.length,
+          el_patterns = [];
+
+      while (i--) {
+        el_patterns.push(this.pattern(els[i]));
+      }
+
+      return this.check_validation_and_apply_styles(el_patterns);
+    },
+
+    pattern : function (el) {
+      var type = el.getAttribute('type'),
+          required = typeof el.getAttribute('required') === 'string';
+
+      var pattern = el.getAttribute('pattern') || '';
+
+      if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
+        return [el, this.settings.patterns[pattern], required];
+      } else if (pattern.length > 0) {
+        return [el, new RegExp(pattern), required];
+      }
+
+      if (this.settings.patterns.hasOwnProperty(type)) {
+        return [el, this.settings.patterns[type], required];
+      }
+
+      pattern = /.*/;
+
+      return [el, pattern, required];
+    },
+
+    // TODO: Break this up into smaller methods, getting hard to read.
+    check_validation_and_apply_styles : function (el_patterns) {
+      var i = el_patterns.length,
+          validations = [];
+      if (i == 0) {
+        return validations;
+      }
+      var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
+          settings = form.data(this.attr_name(true) + '-init') || {};
+      while (i--) {
+        var el = el_patterns[i][0],
+            required = el_patterns[i][2],
+            value = el.value.trim(),
+            direct_parent = this.S(el).parent(),
+            validator = el.getAttribute(this.add_namespace('data-abide-validator')),
+            is_radio = el.type === 'radio',
+            is_checkbox = el.type === 'checkbox',
+            label = this.S('label[for="' + el.getAttribute('id') + '"]'),
+            valid_length = (required) ? (el.value.length > 0) : true,
+            el_validations = [];
+
+        var parent, valid;
+
+        // support old way to do equalTo validations
+        if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' }
+
+        if (!direct_parent.is('label')) {
+          parent = direct_parent;
+        } else {
+          parent = direct_parent.parent();
+        }
+
+        if (is_radio && required) {
+          el_validations.push(this.valid_radio(el, required));
+        } else if (is_checkbox && required) {
+          el_validations.push(this.valid_checkbox(el, required));
+
+        } else if (validator) {
+          // Validate using each of the specified (space-delimited) validators.
+          var validators = validator.split(' ');
+          var last_valid = true, all_valid = true;
+          for (var iv = 0; iv < validators.length; iv++) {
+              valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent])
+              el_validations.push(valid);
+              all_valid = valid && last_valid;
+              last_valid = valid;
+          }
+          if (all_valid) {
+              this.S(el).removeAttr(this.invalid_attr);
+              parent.removeClass('error');
+              if (label.length > 0 && this.settings.error_labels) {
+                label.removeClass(this.settings.error_class).removeAttr('role');
+              }
+              $(el).triggerHandler('valid');
+          } else {
+              this.S(el).attr(this.invalid_attr, '');
+              parent.addClass('error');
+              if (label.length > 0 && this.settings.error_labels) {
+                label.addClass(this.settings.error_class).attr('role', 'alert');
+              }
+              $(el).triggerHandler('invalid');
+          }
+        } else {
+
+          if (el_patterns[i][1].test(value) && valid_length ||
+            !required && el.value.length < 1 || $(el).attr('disabled')) {
+            el_validations.push(true);
+          } else {
+            el_validations.push(false);
+          }
+
+          el_validations = [el_validations.every(function (valid) {return valid;})];
+          if (el_validations[0]) {
+            this.S(el).removeAttr(this.invalid_attr);
+            el.setAttribute('aria-invalid', 'false');
+            el.removeAttribute('aria-describedby');
+            parent.removeClass(this.settings.error_class);
+            if (label.length > 0 && this.settings.error_labels) {
+              label.removeClass(this.settings.error_class).removeAttr('role');
+            }
+            $(el).triggerHandler('valid');
+          } else {
+            this.S(el).attr(this.invalid_attr, '');
+            el.setAttribute('aria-invalid', 'true');
+
+            // Try to find the error associated with the input
+            var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class);
+            var errorID = errorElem.length > 0 ? errorElem[0].id : '';
+            if (errorID.length > 0) {
+              el.setAttribute('aria-describedby', errorID);
+            }
+
+            // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
+            parent.addClass(this.settings.error_class);
+            if (label.length > 0 && this.settings.error_labels) {
+              label.addClass(this.settings.error_class).attr('role', 'alert');
+            }
+            $(el).triggerHandler('invalid');
+          }
+        }
+        validations = validations.concat(el_validations);
+      }
+
+      return validations;
+    },
+
+    valid_checkbox : function (el, required) {
+      var el = this.S(el),
+          valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled'));
+
+      if (valid) {
+        el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+        $(el).triggerHandler('valid');
+      } else {
+        el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+        $(el).triggerHandler('invalid');
+      }
+
+      return valid;
+    },
+
+    valid_radio : function (el, required) {
+      var name = el.getAttribute('name'),
+          group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"),
+          count = group.length,
+          valid = false,
+          disabled = false;
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i=0; i < count; i++) {
+        if( group[i].getAttribute('disabled') ){
+          disabled=true;
+          valid=true;
+        } else {
+          if (group[i].checked){
+            valid = true;
+          } else {
+            if( disabled ){
+              valid = false;
+            }
+          }
+        }
+      }
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i = 0; i < count; i++) {
+        if (valid) {
+          this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+          $(group[i]).triggerHandler('valid');
+        } else {
+          this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+          $(group[i]).triggerHandler('invalid');
+        }
+      }
+
+      return valid;
+    },
+
+    valid_equal : function (el, required, parent) {
+      var from  = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+          to    = el.value,
+          valid = (from === to);
+
+      if (valid) {
+        this.S(el).removeAttr(this.invalid_attr);
+        parent.removeClass(this.settings.error_class);
+        if (label.length > 0 && settings.error_labels) {
+          label.removeClass(this.settings.error_class);
+        }
+      } else {
+        this.S(el).attr(this.invalid_attr, '');
+        parent.addClass(this.settings.error_class);
+        if (label.length > 0 && settings.error_labels) {
+          label.addClass(this.settings.error_class);
+        }
+      }
+
+      return valid;
+    },
+
+    valid_oneof : function (el, required, parent, doNotValidateOthers) {
+      var el = this.S(el),
+        others = this.S('[' + this.add_namespace('data-oneof') + ']'),
+        valid = others.filter(':checked').length > 0;
+
+      if (valid) {
+        el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+      } else {
+        el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+      }
+
+      if (!doNotValidateOthers) {
+        var _this = this;
+        others.each(function () {
+          _this.valid_oneof.call(_this, this, null, null, true);
+        });
+      }
+
+      return valid;
+    },
+
+    reflow : function(scope, options) {
+      var self = this,
+          form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate');
+          self.S(form).each(function (idx, el) {
+            self.events(el);
+          });
+    }
+  };
+}(jQuery, window, window.document));

+ 125 - 0
assets/scripts/foundation/foundation.accordion.js

@@ -0,0 +1,125 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.accordion = {
+    name : 'accordion',
+
+    version : '5.5.3',
+
+    settings : {
+      content_class : 'content',
+      active_class : 'active',
+      multi_expand : false,
+      toggleable : true,
+      callback : function () {}
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function (instance) {
+      var self = this;
+      var S = this.S;
+      self.create(this.S(instance));
+
+      S(this.scope)
+      .off('.fndtn.accordion')
+      .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
+        var accordion = S(this).closest('[' + self.attr_name() + ']'),
+            groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
+            settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
+            target = S('#' + this.href.split('#')[1]),
+            aunts = $('> dd, > li', accordion),
+            siblings = aunts.children('.' + settings.content_class),
+            active_content = siblings.filter('.' + settings.active_class);
+
+        e.preventDefault();
+
+        if (accordion.attr(self.attr_name())) {
+          siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
+          aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
+        }
+
+        if (settings.toggleable && target.is(active_content)) {
+          target.parent('dd, li').toggleClass(settings.active_class, false);
+          target.toggleClass(settings.active_class, false);
+          S(this).attr('aria-expanded', function(i, attr){
+              return attr === 'true' ? 'false' : 'true';
+          });
+          settings.callback(target);
+          target.triggerHandler('toggled', [accordion]);
+          accordion.triggerHandler('toggled', [target]);
+          return;
+        }
+
+        if (!settings.multi_expand) {
+          siblings.removeClass(settings.active_class);
+          aunts.removeClass(settings.active_class);
+          aunts.children('a').attr('aria-expanded','false');
+        }
+
+        target.addClass(settings.active_class).parent().addClass(settings.active_class);
+        settings.callback(target);
+        target.triggerHandler('toggled', [accordion]);
+        accordion.triggerHandler('toggled', [target]);
+        S(this).attr('aria-expanded','true');
+      });
+    },
+
+    create: function($instance) {
+      var self = this,
+          accordion = $instance,
+          aunts = $('> .accordion-navigation', accordion),
+          settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
+
+      aunts.children('a').attr('aria-expanded','false');
+      aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
+
+      if (settings.multi_expand) {
+        $instance.attr('aria-multiselectable','true');
+      }
+    },
+	
+  	toggle : function(options) {
+  		var options = typeof options !== 'undefined' ? options : {};
+  		var selector = typeof options.selector !== 'undefined' ? options.selector : '';
+  		var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
+  		var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
+  
+  		var $items = $accordion.find('> dd' + selector + ', > li' + selector);
+  		if ( $items.length < 1 ) {
+  			if ( window.console ) {
+  				console.error('Selection not found.', selector);
+  			}
+  			return false;
+  		}
+  
+  		var S = this.S;
+  		var active_class = this.settings.active_class;
+  		$items.each(function() {
+  			var $item = S(this);
+  			var is_active = $item.hasClass(active_class);
+  			if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
+  				$item.find('> a').trigger('click.fndtn.accordion');
+  			}
+  		});
+  	},
+  
+  	open : function(options) {
+  		var options = typeof options !== 'undefined' ? options : {};
+  		options.toggle_state = 'open';
+  		this.toggle(options);
+  	},
+  
+  	close : function(options) {
+  		var options = typeof options !== 'undefined' ? options : {};
+  		options.toggle_state = 'close';
+  		this.toggle(options);
+  	},	
+
+    off : function () {},
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));

+ 43 - 0
assets/scripts/foundation/foundation.alert.js

@@ -0,0 +1,43 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.alert = {
+    name : 'alert',
+
+    version : '5.5.3',
+
+    settings : {
+      callback : function () {}
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = this.S;
+
+      $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
+        var alertBox = S(this).closest('[' + self.attr_name() + ']'),
+            settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
+
+        e.preventDefault();
+        if (Modernizr.csstransitions) {
+          alertBox.addClass('alert-close');
+          alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
+            S(this).trigger('close.fndtn.alert').remove();
+            settings.callback();
+          });
+        } else {
+          alertBox.fadeOut(300, function () {
+            S(this).trigger('close.fndtn.alert').remove();
+            settings.callback();
+          });
+        }
+      });
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));

+ 292 - 222
assets/scripts/foundation/foundation.clearing.js

@@ -1,89 +1,86 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
 ;(function ($, window, document, undefined) {
   'use strict';
 
   Foundation.libs.clearing = {
     name : 'clearing',
 
-    version : '4.1.3',
+    version : '5.5.3',
 
     settings : {
       templates : {
         viewing : '<a href="#" class="clearing-close">&times;</a>' +
-          '<div class="visible-img" style="display: none"><img src="//:0">' +
+          '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
           '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
-          '<a href="#" class="clearing-main-next"><span></span></a></div>'
+          '<a href="#" class="clearing-main-next"><span></span></a></div>' +
+          '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+          '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
       },
 
       // comma delimited list of selectors that, on click, will close clearing,
       // add 'div.clearing-blackout, div.visible-img' to close on background click
-      close_selectors : '.clearing-close',
+      close_selectors : '.clearing-close, div.clearing-blackout',
+
+      // Default to the entire li element.
+      open_selectors : '',
+
+      // Image will be skipped in carousel.
+      skip_selector : '',
 
-      // event initializers and locks
+      touch_label : '',
+
+      // event initializer and locks
       init : false,
       locked : false
     },
 
     init : function (scope, method, options) {
       var self = this;
-      Foundation.inherit(this, 'set_data get_data remove_data throttle data_options');
-
-      if (typeof method === 'object') {
-        options = $.extend(true, this.settings, method);
-      }
+      Foundation.inherit(this, 'throttle image_loaded');
 
-      if (typeof method != 'string') {
-        $(this.scope).find('ul[data-clearing]').each(function () {
-          var $el = $(this),
-              options = options || {},
-              lis = $el.find('li'),
-              settings = self.get_data($el);
+      this.bindings(method, options);
 
-          if (!settings && lis.length > 0) {
-            options.$parent = $el.parent();
-
-            self.set_data($el, $.extend({}, self.settings, options, self.data_options($el)));
-
-            self.assemble($el.find('li'));
-
-            if (!self.settings.init) {
-              self.events().swipe_events();
-            }
-          }
-        });
-
-        return this.settings.init;
+      if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
+        this.assemble(self.S('li', this.scope));
       } else {
-        // fire method
-        return this[method].call(this, options);
+        self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+          self.assemble(self.S('li', this));
+        });
       }
     },
 
-    // event binding and initial setup
+    events : function (scope) {
+      var self = this,
+          S = self.S,
+          $scroll_container = $('.scroll-container');
 
-    events : function () {
-      var self = this;
+      if ($scroll_container.length > 0) {
+        this.scope = $scroll_container;
+      }
 
-      $(this.scope)
-        .on('click.fndtn.clearing', 'ul[data-clearing] li',
+      S(this.scope)
+        .off('.clearing')
+        .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,
           function (e, current, target) {
-            var current = current || $(this),
+            var current = current || S(this),
                 target = target || current,
                 next = current.next('li'),
-                settings = self.get_data(current.parent()),
-                image = $(e.target);
+                settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
+                image = S(e.target);
 
             e.preventDefault();
-            if (!settings) self.init();
+
+            if (!settings) {
+              self.init();
+              settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+            }
 
             // if clearing is open and the current image is
             // clicked, go to the next image in sequence
-            if (target.hasClass('visible') 
-              && current[0] === target[0] 
-              && next.length > 0 && self.is_open(current)) {
+            if (target.hasClass('visible') &&
+              current[0] === target[0] &&
+              next.length > 0 && self.is_open(current)) {
               target = next;
-              image = target.find('img');
+              image = S('img', target);
             }
 
             // set current and target to the clicked li if not otherwise defined.
@@ -92,44 +89,49 @@
           })
 
         .on('click.fndtn.clearing', '.clearing-main-next',
-          function (e) { this.nav(e, 'next') }.bind(this))
+          function (e) { self.nav(e, 'next') })
         .on('click.fndtn.clearing', '.clearing-main-prev',
-          function (e) { this.nav(e, 'prev') }.bind(this))
+          function (e) { self.nav(e, 'prev') })
         .on('click.fndtn.clearing', this.settings.close_selectors,
-          function (e) { Foundation.libs.clearing.close(e, this) })
-        .on('keydown.fndtn.clearing',
-          function (e) { this.keydown(e) }.bind(this));
+          function (e) { Foundation.libs.clearing.close(e, this) });
 
-      $(window).on('resize.fndtn.clearing',
-        function () { this.resize() }.bind(this));
+      $(document).on('keydown.fndtn.clearing',
+          function (e) { self.keydown(e) });
 
-      this.settings.init = true;
-      return this;
+      S(window).off('.clearing').on('resize.fndtn.clearing',
+        function () { self.resize() });
+
+      this.swipe_events(scope);
     },
 
-    swipe_events : function () {
-      var self = this;
+    swipe_events : function (scope) {
+      var self = this,
+      S = self.S;
 
-      $(this.scope)
-        .on('touchstart.fndtn.clearing', '.visible-img', function(e) {
+      S(this.scope)
+        .on('touchstart.fndtn.clearing', '.visible-img', function (e) {
           if (!e.touches) { e = e.originalEvent; }
           var data = {
-                start_page_x: e.touches[0].pageX,
-                start_page_y: e.touches[0].pageY,
-                start_time: (new Date()).getTime(),
-                delta_x: 0,
-                is_scrolling: undefined
+                start_page_x : e.touches[0].pageX,
+                start_page_y : e.touches[0].pageY,
+                start_time : (new Date()).getTime(),
+                delta_x : 0,
+                is_scrolling : undefined
               };
 
-          $(this).data('swipe-transition', data);
+          S(this).data('swipe-transition', data);
           e.stopPropagation();
         })
-        .on('touchmove.fndtn.clearing', '.visible-img', function(e) {
-          if (!e.touches) { e = e.originalEvent; }
+        .on('touchmove.fndtn.clearing', '.visible-img', function (e) {
+          if (!e.touches) {
+            e = e.originalEvent;
+          }
           // Ignore pinch/zoom events
-          if(e.touches.length > 1 || e.scale && e.scale !== 1) return;
+          if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+            return;
+          }
 
-          var data = $(this).data('swipe-transition');
+          var data = S(this).data('swipe-transition');
 
           if (typeof data === 'undefined') {
             data = {};
@@ -137,7 +139,11 @@
 
           data.delta_x = e.touches[0].pageX - data.start_page_x;
 
-          if ( typeof data.is_scrolling === 'undefined') {
+          if (Foundation.rtl) {
+            data.delta_x = -data.delta_x;
+          }
+
+          if (typeof data.is_scrolling === 'undefined') {
             data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
           }
 
@@ -148,57 +154,114 @@
             self.nav(e, direction);
           }
         })
-        .on('touchend.fndtn.clearing', '.visible-img', function(e) {
-          $(this).data('swipe-transition', {});
+        .on('touchend.fndtn.clearing', '.visible-img', function (e) {
+          S(this).data('swipe-transition', {});
           e.stopPropagation();
         });
     },
 
     assemble : function ($li) {
       var $el = $li.parent();
+
+      if ($el.parent().hasClass('carousel')) {
+        return;
+      }
+
       $el.after('<div id="foundationClearingHolder"></div>');
 
-      var holder = $('#foundationClearingHolder'),
-          settings = this.get_data($el),
-          grid = $el.detach(),
+      var grid = $el.detach(),
+          grid_outerHTML = '';
+
+      if (grid[0] == null) {
+        return;
+      } else {
+        grid_outerHTML = grid[0].outerHTML;
+      }
+
+      var holder = this.S('#foundationClearingHolder'),
+          settings = $el.data(this.attr_name(true) + '-init'),
           data = {
-            grid: '<div class="carousel">' + this.outerHTML(grid[0]) + '</div>',
-            viewing: settings.templates.viewing
+            grid : '<div class="carousel">' + grid_outerHTML + '</div>',
+            viewing : settings.templates.viewing
           },
           wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
-            data.grid + '</div></div>';
+            data.grid + '</div></div>',
+          touch_label = this.settings.touch_label;
 
-      return holder.after(wrapper).remove();
-    },
+      if (Modernizr.touch) {
+        wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
+      }
 
-    // event callbacks
+      holder.after(wrapper).remove();
+    },
 
     open : function ($image, current, target) {
-      var root = target.closest('.clearing-assembled'),
-          container = root.find('div').first(),
-          visible_image = container.find('.visible-img'),
-          image = visible_image.find('img').not($image);
+      var self = this,
+          body = $(document.body),
+          root = target.closest('.clearing-assembled'),
+          container = self.S('div', root).first(),
+          visible_image = self.S('.visible-img', container),
+          image = self.S('img', visible_image).not($image),
+          label = self.S('.clearing-touch-label', container),
+          error = false,
+          loaded = {};
+
+      // Event to disable scrolling on touch devices when Clearing is activated
+      $('body').on('touchmove', function (e) {
+        e.preventDefault();
+      });
+
+      image.error(function () {
+        error = true;
+      });
+
+      function startLoad() {
+        setTimeout(function () {
+          this.image_loaded(image, function () {
+            if (image.outerWidth() === 1 && !error) {
+              startLoad.call(this);
+            } else {
+              cb.call(this, image);
+            }
+          }.bind(this));
+        }.bind(this), 100);
+      }
+
+      function cb (image) {
+        var $image = $(image);
+        $image.css('visibility', 'visible');
+        $image.trigger('imageVisible');
+        // toggle the gallery
+        body.css('overflow', 'hidden');
+        root.addClass('clearing-blackout');
+        container.addClass('clearing-container');
+        visible_image.show();
+        this.fix_height(target)
+          .caption(self.S('.clearing-caption', visible_image), self.S('img', target))
+          .center_and_label(image, label)
+          .shift(current, target, function () {
+            target.closest('li').siblings().removeClass('visible');
+            target.closest('li').addClass('visible');
+          });
+        visible_image.trigger('opened.fndtn.clearing')
+      }
 
       if (!this.locked()) {
+        visible_image.trigger('open.fndtn.clearing');
         // set the image to the selected thumbnail
-        image
-          .attr('src', this.load($image))
-          .css('visibility', 'hidden');
-
-        this.loaded(image, function () {
-          image.css('visibility', 'visible');
-          // toggle the gallery
-          root.addClass('clearing-blackout');
-          container.addClass('clearing-container');
-          visible_image.show();
-          this.fix_height(target)
-            .caption(visible_image.find('.clearing-caption'), $image)
-            .center(image)
-            .shift(current, target, function () {
-              target.siblings().removeClass('visible');
-              target.addClass('visible');
-            });
-        }.bind(this));
+        loaded = this.load($image);
+        if (loaded.interchange) {
+          image
+            .attr('data-interchange', loaded.interchange)
+            .foundation('interchange', 'reflow');
+        } else {
+          image
+            .attr('src', loaded.src)
+            .attr('data-interchange', '');
+        }
+        image.css('visibility', 'hidden');
+
+        startLoad.call(this);
       }
     },
 
@@ -211,46 +274,64 @@
             } else {
               return target.closest('.clearing-blackout');
             }
-          }($(el))), container, visible_image;
+          }($(el))),
+          body = $(document.body), container, visible_image;
 
       if (el === e.target && root) {
-        container = root.find('div').first();
-        visible_image = container.find('.visible-img');
+        body.css('overflow', '');
+        container = $('div', root).first();
+        visible_image = $('.visible-img', container);
+        visible_image.trigger('close.fndtn.clearing');
         this.settings.prev_index = 0;
-        root.find('ul[data-clearing]')
+        $('ul[' + this.attr_name() + ']', root)
           .attr('style', '').closest('.clearing-blackout')
           .removeClass('clearing-blackout');
         container.removeClass('clearing-container');
         visible_image.hide();
+        visible_image.trigger('closed.fndtn.clearing');
       }
 
+      // Event to re-enable scrolling on touch devices
+      $('body').off('touchmove');
+
       return false;
     },
 
     is_open : function (current) {
-      return current.parent().attr('style').length > 0;
+      return current.parent().prop('style').length > 0;
     },
 
     keydown : function (e) {
-      var clearing = $('.clearing-blackout').find('ul[data-clearing]');
+      var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),
+          NEXT_KEY = this.rtl ? 37 : 39,
+          PREV_KEY = this.rtl ? 39 : 37,
+          ESC_KEY = 27;
 
-      if (e.which === 39) this.go(clearing, 'next');
-      if (e.which === 37) this.go(clearing, 'prev');
-      if (e.which === 27) $('a.clearing-close').trigger('click');
+      if (e.which === NEXT_KEY) {
+        this.go(clearing, 'next');
+      }
+      if (e.which === PREV_KEY) {
+        this.go(clearing, 'prev');
+      }
+      if (e.which === ESC_KEY) {
+        this.S('a.clearing-close').trigger('click.fndtn.clearing');
+      }
     },
 
     nav : function (e, direction) {
-      var clearing = $('.clearing-blackout').find('ul[data-clearing]');
+      var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
 
       e.preventDefault();
       this.go(clearing, direction);
     },
 
     resize : function () {
-      var image = $('.clearing-blackout .visible-img').find('img');
+      var image = $('img', '.clearing-blackout .visible-img'),
+          label = $('.clearing-touch-label', '.clearing-blackout');
 
       if (image.length) {
-        this.center(image);
+        this.center_and_label(image, label);
+        image.trigger('resized.fndtn.clearing')
       }
     },
 
@@ -260,55 +341,50 @@
           self = this;
 
       lis.each(function () {
-          var li = $(this),
-              image = li.find('img');
+        var li = self.S(this),
+            image = li.find('img');
 
-          if (li.height() > self.outerHeight(image)) {
-            li.addClass('fix-height');
-          }
-        })
-        .closest('ul')
-        .width(lis.length * 100 + '%');
+        if (li.height() > image.outerHeight()) {
+          li.addClass('fix-height');
+        }
+      })
+      .closest('ul')
+      .width(lis.length * 100 + '%');
 
       return this;
     },
 
     update_paddles : function (target) {
+      target = target.closest('li');
       var visible_image = target
         .closest('.carousel')
         .siblings('.visible-img');
 
       if (target.next().length > 0) {
-        visible_image
-          .find('.clearing-main-next')
-          .removeClass('disabled');
+        this.S('.clearing-main-next', visible_image).removeClass('disabled');
       } else {
-        visible_image
-          .find('.clearing-main-next')
-          .addClass('disabled');
+        this.S('.clearing-main-next', visible_image).addClass('disabled');
       }
 
       if (target.prev().length > 0) {
-        visible_image
-          .find('.clearing-main-prev')
-          .removeClass('disabled');
+        this.S('.clearing-main-prev', visible_image).removeClass('disabled');
       } else {
-        visible_image
-          .find('.clearing-main-prev')
-          .addClass('disabled');
+        this.S('.clearing-main-prev', visible_image).addClass('disabled');
       }
     },
 
-    center : function (target) {
-      if (!this.rtl) {
-        target.css({
-          marginLeft : -(this.outerWidth(target) / 2),
-          marginTop : -(this.outerHeight(target) / 2)
+    center_and_label : function (target, label) {
+      if (!this.rtl && label.length > 0) {
+        label.css({
+          marginLeft : -(label.outerWidth() / 2),
+          marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
         });
       } else {
-        target.css({
-          marginRight : -(this.outerWidth(target) / 2),
-          marginTop : -(this.outerHeight(target) / 2)
+        label.css({
+          marginRight : -(label.outerWidth() / 2),
+          marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
+          left: 'auto',
+          right: '50%'
         });
       }
       return this;
@@ -317,65 +393,55 @@
     // image loading and preloading
 
     load : function ($image) {
-      if ($image[0].nodeName === "A") {
-        var href = $image.attr('href');
+      var href,
+          interchange,
+          closest_a;
+
+      if ($image[0].nodeName === 'A') {
+        href = $image.attr('href');
+        interchange = $image.data('clearing-interchange');
       } else {
-        var href = $image.parent().attr('href');
+        closest_a = $image.closest('a');
+        href = closest_a.attr('href');
+        interchange = closest_a.data('clearing-interchange');
       }
 
       this.preload($image);
 
-      if (href) return href;
-      return $image.attr('src');
+      return {
+        'src': href ? href : $image.attr('src'),
+        'interchange': href ? interchange : $image.data('clearing-interchange')
+      }
     },
 
     preload : function ($image) {
       this
-        .img($image.closest('li').next())
-        .img($image.closest('li').prev());
-    },
-
-    loaded : function (image, callback) {
-      // based on jquery.imageready.js
-      // @weblinc, @jsantell, (c) 2012
-
-      function loaded () {
-        callback();
-      }
-
-      function bindLoad () {
-        this.one('load', loaded);
-
-        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
-          var src = this.attr( 'src' ),
-              param = src.match( /\?/ ) ? '&' : '?';
-
-          param += 'random=' + (new Date()).getTime();
-          this.attr('src', src + param);
-        }
-      }
-
-      if (!image.attr('src')) {
-        loaded();
-        return;
-      }
-
-      if (image[0].complete || image[0].readyState === 4) {
-        loaded();
-      } else {
-        bindLoad.call(image);
-      }
+        .img($image.closest('li').next(), 'next')
+        .img($image.closest('li').prev(), 'prev');
     },
 
-    img : function (img) {
+    img : function (img, sibling_type) {
       if (img.length) {
-        var new_img = new Image(),
-            new_a = img.find('a');
+        var preload_img = $('.clearing-preload-' + sibling_type),
+            new_a = this.S('a', img),
+            src,
+            interchange,
+            image;
 
         if (new_a.length) {
-          new_img.src = new_a.attr('href');
+          src = new_a.attr('href');
+          interchange = new_a.data('clearing-interchange');
+        } else {
+          image = this.S('img', img);
+          src = image.attr('src');
+          interchange = image.data('clearing-interchange');
+        }
+
+        if (interchange) {
+          preload_img.attr('data-interchange', interchange);
         } else {
-          new_img.src = img.find('img').attr('src');
+          preload_img.attr('src', src);
+          preload_img.attr('data-interchange', '');
         }
       }
       return this;
@@ -384,12 +450,12 @@
     // image caption
 
     caption : function (container, $image) {
-      var caption = $image.data('caption');
+      var caption = $image.attr('data-caption');
 
       if (caption) {
-        container
-          .html(caption)
-          .show();
+      	var containerPlain = container.get(0);
+      	containerPlain.innerHTML = caption;
+        container.show();
       } else {
         container
           .text('')
@@ -401,13 +467,18 @@
     // directional methods
 
     go : function ($ul, direction) {
-      var current = $ul.find('.visible'),
+      var current = this.S('.visible', $ul),
           target = current[direction]();
 
+      // Check for skip selector.
+      if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
+        target = target[direction]();
+      }
+
       if (target.length) {
-        target
-          .find('img')
-          .trigger('click', [current, target]);
+        this.S('img', target)
+          .trigger('click.fndtn.clearing', [current, target])
+          .trigger('change.fndtn.clearing');
       }
     },
 
@@ -415,19 +486,25 @@
       var clearing = target.parent(),
           old_index = this.settings.prev_index || target.index(),
           direction = this.direction(clearing, current, target),
+          dir = this.rtl ? 'right' : 'left',
           left = parseInt(clearing.css('left'), 10),
-          width = this.outerWidth(target),
+          width = target.outerWidth(),
           skip_shift;
 
+      var dir_obj = {};
+
       // we use jQuery animate instead of CSS transitions because we
       // need a callback to unlock the next animation
-      if (target.index() !== old_index && !/skip/.test(direction)){
+      // needs support for RTL **
+      if (target.index() !== old_index && !/skip/.test(direction)) {
         if (/left/.test(direction)) {
           this.lock();
-          clearing.animate({left : left + width}, 300, this.unlock());
+          dir_obj[dir] = left + width;
+          clearing.animate(dir_obj, 300, this.unlock());
         } else if (/right/.test(direction)) {
           this.lock();
-          clearing.animate({left : left - width}, 300, this.unlock());
+          dir_obj[dir] = left - width;
+          clearing.animate(dir_obj, 300, this.unlock());
         }
       } else if (/skip/.test(direction)) {
         // the target image is not adjacent to the current image, so
@@ -436,9 +513,11 @@
         this.lock();
 
         if (skip_shift > 0) {
-          clearing.animate({left : -(skip_shift * width)}, 300, this.unlock());
+          dir_obj[dir] = -(skip_shift * width);
+          clearing.animate(dir_obj, 300, this.unlock());
         } else {
-          clearing.animate({left : 0}, 300, this.unlock());
+          dir_obj[dir] = 0;
+          clearing.animate(dir_obj, 300, this.unlock());
         }
       }
 
@@ -446,20 +525,18 @@
     },
 
     direction : function ($el, current, target) {
-      var lis = $el.find('li'),
-          li_width = this.outerWidth(lis) + (this.outerWidth(lis) / 4),
-          up_count = Math.floor(this.outerWidth($('.clearing-container')) / li_width) - 1,
+      var lis = this.S('li', $el),
+          li_width = lis.outerWidth() + (lis.outerWidth() / 4),
+          up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
           target_index = lis.index(target),
           response;
 
       this.settings.up_count = up_count;
 
       if (this.adjacent(this.settings.prev_index, target_index)) {
-        if ((target_index > up_count)
-          && target_index > this.settings.prev_index) {
+        if ((target_index > up_count) && target_index > this.settings.prev_index) {
           response = 'right';
-        } else if ((target_index > up_count - 1)
-          && target_index <= this.settings.prev_index) {
+        } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {
           response = 'left';
         } else {
           response = false;
@@ -475,7 +552,9 @@
 
     adjacent : function (current_index, target_index) {
       for (var i = target_index + 1; i >= target_index - 1; i--) {
-        if (i === current_index) return true;
+        if (i === current_index) {
+          return true;
+        }
       }
       return false;
     },
@@ -494,18 +573,9 @@
       return this.settings.locked;
     },
 
-    // plugin management/browser quirks
-
-    outerHTML : function (el) {
-      // support FireFox < 11
-      return el.outerHTML || new XMLSerializer().serializeToString(el);
-    },
-
     off : function () {
-      $(this.scope).off('.fndtn.clearing');
-      $(window).off('.fndtn.clearing');
-      this.remove_data(); // empty settings cache
-      this.settings.init = false;
+      this.S(this.scope).off('.fndtn.clearing');
+      this.S(window).off('.fndtn.clearing');
     },
 
     reflow : function () {
@@ -513,4 +583,4 @@
     }
   };
 
-}(Foundation.zj, this, this.document));
+}(jQuery, window, window.document));

+ 397 - 107
assets/scripts/foundation/foundation.dropdown.js

@@ -1,118 +1,206 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
 ;(function ($, window, document, undefined) {
   'use strict';
 
   Foundation.libs.dropdown = {
     name : 'dropdown',
 
-    version : '4.2.0',
+    version : '5.5.3',
 
     settings : {
-      activeClass: 'open',
-      is_hover: false,
-      opened: function(){},
-      closed: function(){}
+      active_class : 'open',
+      disabled_class : 'disabled',
+      mega_class : 'mega',
+      align : 'bottom',
+      is_hover : false,
+      hover_timeout : 150,
+      opened : function () {},
+      closed : function () {}
     },
 
     init : function (scope, method, options) {
-      this.scope = scope || this.scope;
-      Foundation.inherit(this, 'throttle scrollLeft data_options');
+      Foundation.inherit(this, 'throttle');
 
-      if (typeof method === 'object') {
-        $.extend(true, this.settings, method);
-      }
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+    },
 
-      if (typeof method != 'string') {
+    events : function (scope) {
+      var self = this,
+          S = self.S;
 
-        if (!this.settings.init) {
-          this.events();
-        }
+      S(this.scope)
+        .off('.dropdown')
+        .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
+          var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
+          if (!settings.is_hover || Modernizr.touch) {
+            e.preventDefault();
+            if (S(this).parent('[data-reveal-id]').length) {
+              e.stopPropagation();
+            }
+            self.toggle($(this));
+          }
+        })
+        .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+          var $this = S(this),
+              dropdown,
+              target;
 
-        return this.settings.init;
-      } else {
-        return this[method].call(this, options);
-      }
-    },
+          clearTimeout(self.timeout);
 
-    events : function () {
-      var self = this;
+          if ($this.data(self.data_attr())) {
+            dropdown = S('#' + $this.data(self.data_attr()));
+            target = $this;
+          } else {
+            dropdown = $this;
+            target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]');
+          }
 
-      $(this.scope)
-        .on('click.fndtn.dropdown', '[data-dropdown]', function (e) {
-          var settings = $.extend({}, self.settings, self.data_options($(this)));
-          e.preventDefault();
+          var settings = target.data(self.attr_name(true) + '-init') || self.settings;
 
-          if (!settings.is_hover) self.toggle($(this));
-        })
-        .on('mouseenter', '[data-dropdown]', function (e) {
-          var settings = $.extend({}, self.settings, self.data_options($(this)));
-          if (settings.is_hover) self.toggle($(this));
+          if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
+            self.closeall.call(self);
+          }
+
+          if (settings.is_hover) {
+            self.open.apply(self, [dropdown, target]);
+          }
         })
-        .on('mouseleave', '[data-dropdown-content]', function (e) {
-          var target = $('[data-dropdown="' + $(this).attr('id') + '"]'),
-              settings = $.extend({}, self.settings, self.data_options(target));
-          if (settings.is_hover) self.close.call(self, $(this));
+        .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+          var $this = S(this);
+          var settings;
+
+          if ($this.data(self.data_attr())) {
+              settings = $this.data(self.data_attr(true) + '-init') || self.settings;
+          } else {
+              var target   = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
+                  settings = target.data(self.attr_name(true) + '-init') || self.settings;
+          }
+
+          self.timeout = setTimeout(function () {
+            if ($this.data(self.data_attr())) {
+              if (settings.is_hover) {
+                self.close.call(self, S('#' + $this.data(self.data_attr())));
+              }
+            } else {
+              if (settings.is_hover) {
+                self.close.call(self, $this);
+              }
+            }
+          }.bind(this), settings.hover_timeout);
         })
-        .on('opened.fndtn.dropdown', '[data-dropdown-content]', this.settings.opened)
-        .on('closed.fndtn.dropdown', '[data-dropdown-content]', this.settings.closed);
+        .on('click.fndtn.dropdown', function (e) {
+          var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
+          var links  = parent.find('a');
 
-      $('body').on('click.fndtn.dropdown', function (e) {
-        var parent = $(e.target).closest('[data-dropdown-content]');
+          if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
+              self.close.call(self, S('[' + self.attr_name() + '-content]'));
+          }
 
-        if ($(e.target).data('dropdown')) {
-          return;
-        }
-        if (parent.length > 0 && ($(e.target).is('[data-dropdown-content]') || $.contains(parent.first()[0], e.target))) {
-          e.stopPropagation();
-          return;
-        }
+          if (e.target !== document && !$.contains(document.documentElement, e.target)) {
+            return;
+          }
 
-        self.close.call(self, $('[data-dropdown-content]'));
-      });
+          if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
+            return;
+          }
 
-      $(window).on('resize.fndtn.dropdown', self.throttle(function () {
-        self.resize.call(self);
-      }, 50)).trigger('resize');
+          if (!(S(e.target).data('revealId')) &&
+            (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||
+              $.contains(parent.first()[0], e.target)))) {
+            e.stopPropagation();
+            return;
+          }
+
+          self.close.call(self, S('[' + self.attr_name() + '-content]'));
+        })
+        .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+          self.settings.opened.call(this);
+        })
+        .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+          self.settings.closed.call(this);
+        });
+
+      S(window)
+        .off('.dropdown')
+        .on('resize.fndtn.dropdown', self.throttle(function () {
+          self.resize.call(self);
+        }, 50));
 
-      this.settings.init = true;
+      this.resize();
     },
 
-    close: function (dropdown) {
+    close : function (dropdown) {
       var self = this;
-      dropdown.each(function () {
-        if ($(this).hasClass(self.settings.activeClass)) {
-          $(this)
-            .css(Foundation.rtl ? 'right':'left', '-99999px')
-            .removeClass(self.settings.activeClass);
-          $(this).trigger('closed');
+      dropdown.each(function (idx) {
+        var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
+        original_target.attr('aria-expanded', 'false');
+        if (self.S(this).hasClass(self.settings.active_class)) {
+          self.S(this)
+            .css(Foundation.rtl ? 'right' : 'left', '-99999px')
+            .attr('aria-hidden', 'true')
+            .removeClass(self.settings.active_class)
+            .prev('[' + self.attr_name() + ']')
+            .removeClass(self.settings.active_class)
+            .removeData('target');
+
+          self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
         }
       });
+      dropdown.removeClass('f-open-' + this.attr_name(true));
+    },
+
+    closeall : function () {
+      var self = this;
+      $.each(self.S('.f-open-' + this.attr_name(true)), function () {
+        self.close.call(self, self.S(this));
+      });
+    },
+
+    open : function (dropdown, target) {
+      this
+        .css(dropdown
+        .addClass(this.settings.active_class), target);
+      dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
+      dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
+      dropdown.attr('aria-hidden', 'false');
+      target.attr('aria-expanded', 'true');
+      dropdown.focus();
+      dropdown.addClass('f-open-' + this.attr_name(true));
     },
 
-    open: function (dropdown, target) {
-        this
-          .css(dropdown
-            .addClass(this.settings.activeClass), target);
-        dropdown.trigger('opened');
+    data_attr : function () {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + this.name;
+      }
+
+      return this.name;
     },
 
     toggle : function (target) {
-      var dropdown = $('#' + target.data('dropdown'));
+      if (target.hasClass(this.settings.disabled_class)) {
+        return;
+      }
+      var dropdown = this.S('#' + target.data(this.data_attr()));
+      if (dropdown.length === 0) {
+        // No dropdown found, not continuing
+        return;
+      }
 
-      this.close.call(this, $('[data-dropdown-content]').not(dropdown));
+      this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));
 
-      if (dropdown.hasClass(this.settings.activeClass)) {
+      if (dropdown.hasClass(this.settings.active_class)) {
         this.close.call(this, dropdown);
+        if (dropdown.data('target') !== target.get(0)) {
+          this.open.call(this, dropdown, target);
+        }
       } else {
-        this.close.call(this, $('[data-dropdown-content]'))
         this.open.call(this, dropdown, target);
       }
     },
 
     resize : function () {
-      var dropdown = $('[data-dropdown-content].open'),
-          target = $("[data-dropdown='" + dropdown.attr('id') + "']");
+      var dropdown = this.S('[' + this.attr_name() + '-content].open');
+      var target = $(dropdown.data("target"));
 
       if (dropdown.length && target.length) {
         this.css(dropdown, target);
@@ -120,59 +208,261 @@
     },
 
     css : function (dropdown, target) {
-      var offset_parent = dropdown.offsetParent();
-      // temporary workaround until 4.2
-      if (offset_parent.length > 0 && /body/i.test(dropdown.offsetParent()[0].nodeName)) {
-        var position = target.offset();
-        position.top -= dropdown.offsetParent().offset().top;
-        position.left -= dropdown.offsetParent().offset().left;
-      } else {
-        var position = target.position();
-      }
+      var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
+          settings = target.data(this.attr_name(true) + '-init') || this.settings,
+          parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
+
+      this.clear_idx();
+
+
 
       if (this.small()) {
-        dropdown.css({
+        var p = this.dirs.bottom.call(dropdown, target, settings);
+
+        dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
           position : 'absolute',
-          width: '95%',
-          left: '2.5%',
-          'max-width': 'none',
-          top: position.top + this.outerHeight(target)
+          width : '95%',
+          'max-width' : 'none',
+          top : p.top
         });
-      } else {
-        if (!Foundation.rtl && $(window).width() > this.outerWidth(dropdown) + target.offset().left) {
-          var left = position.left;
-          if (dropdown.hasClass('right')) {
-            dropdown.removeClass('right');
-          }
-        } else {
-          if (!dropdown.hasClass('right')) {
-            dropdown.addClass('right');
-          }
-          var left = position.left - (this.outerWidth(dropdown) - this.outerWidth(target));
-        }
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      // detect if dropdown is in an overflow container
+      else if (parentOverflow !== 'visible') {
+        var offset = target[0].offsetTop + target[0].offsetHeight;
 
         dropdown.attr('style', '').css({
           position : 'absolute',
-          top: position.top + this.outerHeight(target),
-          left: left
+          top : offset
         });
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      else {
+
+        this.style(dropdown, target, settings);
       }
 
       return dropdown;
     },
 
+    style : function (dropdown, target, settings) {
+      var css = $.extend({position : 'absolute'},
+        this.dirs[settings.align].call(dropdown, target, settings));
+
+      dropdown.attr('style', '').css(css);
+    },
+
+    // return CSS property object
+    // `this` is the dropdown
+    dirs : {
+      // Calculate target offset
+      _base : function (t, s) {
+        var o_p = this.offsetParent(),
+            o = o_p.offset(),
+            p = t.offset();
+
+        p.top -= o.top;
+        p.left -= o.left;
+
+        //set some flags on the p object to pass along
+        p.missRight = false;
+        p.missTop = false;
+        p.missLeft = false;
+        p.leftRightFlag = false;
+
+        //lets see if the panel will be off the screen
+        //get the actual width of the page and store it
+        var actualBodyWidth;
+        var windowWidth = window.innerWidth;
+        
+        if (document.getElementsByClassName('row')[0]) {
+          actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
+        } else {
+          actualBodyWidth = windowWidth;
+        }
+
+        var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
+        var actualBoundary = actualBodyWidth;
+
+        if (!this.hasClass('mega') && !s.ignore_repositioning) {
+          var outerWidth = this.outerWidth();
+          var o_left = t.offset().left;
+		  
+          //miss top
+          if (t.offset().top <= this.outerHeight()) {
+            p.missTop = true;
+            actualBoundary = windowWidth - actualMarginWidth;
+            p.leftRightFlag = true;
+          }
+
+          //miss right
+          if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {
+            p.missRight = true;
+            p.missLeft = false;
+          }
+
+          //miss left
+          if (o_left - outerWidth <= 0) {
+            p.missLeft = true;
+            p.missRight = false;
+          }
+        }
+
+        return p;
+      },
+
+      top : function (t, s) {
+        var self = Foundation.libs.dropdown,
+            p = self.dirs._base.call(this, t, s);
+
+        this.addClass('drop-top');
+
+        if (p.missTop == true) {
+          p.top = p.top + t.outerHeight() + this.outerHeight();
+          this.removeClass('drop-top');
+        }
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth() + t.outerWidth();
+        }
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        if (Foundation.rtl) {
+          return {left : p.left - this.outerWidth() + t.outerWidth(),
+            top : p.top - this.outerHeight()};
+        }
+
+        return {left : p.left, top : p.top - this.outerHeight()};
+      },
+
+      bottom : function (t, s) {
+        var self = Foundation.libs.dropdown,
+            p = self.dirs._base.call(this, t, s);
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth() + t.outerWidth();
+        }
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        if (self.rtl) {
+          return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
+        }
+
+        return {left : p.left, top : p.top + t.outerHeight()};
+      },
+
+      left : function (t, s) {
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+        this.addClass('drop-left');
+
+        if (p.missLeft == true) {
+          p.left =  p.left + this.outerWidth();
+          p.top = p.top + t.outerHeight();
+          this.removeClass('drop-left');
+        }
+
+        return {left : p.left - this.outerWidth(), top : p.top};
+      },
+
+      right : function (t, s) {
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+        this.addClass('drop-right');
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth();
+          p.top = p.top + t.outerHeight();
+          this.removeClass('drop-right');
+        } else {
+          p.triggeredRight = true;
+        }
+
+        var self = Foundation.libs.dropdown;
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        return {left : p.left + t.outerWidth(), top : p.top};
+      }
+    },
+
+    // Insert rule to style psuedo elements
+    adjust_pip : function (dropdown, target, settings, position) {
+      var sheet = Foundation.stylesheet,
+          pip_offset_base = 8;
+
+      if (dropdown.hasClass(settings.mega_class)) {
+        pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
+      } else if (this.small()) {
+        pip_offset_base += position.left - 8;
+      }
+
+      this.rule_idx = sheet.cssRules.length;
+
+      //default
+      var sel_before = '.f-dropdown.open:before',
+          sel_after  = '.f-dropdown.open:after',
+          css_before = 'left: ' + pip_offset_base + 'px;',
+          css_after  = 'left: ' + (pip_offset_base - 1) + 'px;';
+
+      if (position.missRight == true) {
+        pip_offset_base = dropdown.outerWidth() - 23;
+        sel_before = '.f-dropdown.open:before',
+        sel_after  = '.f-dropdown.open:after',
+        css_before = 'left: ' + pip_offset_base + 'px;',
+        css_after  = 'left: ' + (pip_offset_base - 1) + 'px;';
+      }
+
+      //just a case where right is fired, but its not missing right
+      if (position.triggeredRight == true) {
+        sel_before = '.f-dropdown.open:before',
+        sel_after  = '.f-dropdown.open:after',
+        css_before = 'left:-12px;',
+        css_after  = 'left:-14px;';
+      }
+
+      if (sheet.insertRule) {
+        sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);
+        sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);
+      } else {
+        sheet.addRule(sel_before, css_before, this.rule_idx);
+        sheet.addRule(sel_after, css_after, this.rule_idx + 1);
+      }
+    },
+
+    // Remove old dropdown rule index
+    clear_idx : function () {
+      var sheet = Foundation.stylesheet;
+
+      if (typeof this.rule_idx !== 'undefined') {
+        sheet.deleteRule(this.rule_idx);
+        sheet.deleteRule(this.rule_idx);
+        delete this.rule_idx;
+      }
+    },
+
     small : function () {
-      return $(window).width() < 768 || $('html').hasClass('lt-ie9');
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
     },
 
-    off: function () {
-      $(this.scope).off('.fndtn.dropdown');
-      $('html, body').off('.fndtn.dropdown');
-      $(window).off('.fndtn.dropdown');
-      $('[data-dropdown-content]').off('.fndtn.dropdown');
-      this.settings.init = false;
+    off : function () {
+      this.S(this.scope).off('.fndtn.dropdown');
+      this.S('html, body').off('.fndtn.dropdown');
+      this.S(window).off('.fndtn.dropdown');
+      this.S('[data-dropdown-content]').off('.fndtn.dropdown');
     },
 
     reflow : function () {}
   };
-}(Foundation.zj, this, this.document));
+}(jQuery, window, window.document));

+ 104 - 0
assets/scripts/foundation/foundation.equalizer.js

@@ -0,0 +1,104 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.equalizer = {
+    name : 'equalizer',
+
+    version : '5.5.3',
+
+    settings : {
+      use_tallest : true,
+      before_height_change : $.noop,
+      after_height_change : $.noop,
+      equalize_on_stack : false,
+      act_on_hidden_el: false
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'image_loaded');
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    events : function () {
+      this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
+        this.reflow();
+      }.bind(this));
+    },
+
+    equalize : function (equalizer) {
+      var isStacked = false,
+          group = equalizer.data('equalizer'),
+          settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
+          vals,
+          firstTopOffset;
+
+      if (settings.act_on_hidden_el) {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
+      }
+      else {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
+      }
+      
+      if (vals.length === 0) {
+        return;
+      }
+
+      settings.before_height_change();
+      equalizer.trigger('before-height-change.fndth.equalizer');
+      vals.height('inherit');
+
+      if (settings.equalize_on_stack === false) {
+        firstTopOffset = vals.first().offset().top;
+        vals.each(function () {
+          if ($(this).offset().top !== firstTopOffset) {
+            isStacked = true;
+            return false;
+          }
+        });
+        if (isStacked) {
+          return;
+        }
+      }
+
+      var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
+
+      if (settings.use_tallest) {
+        var max = Math.max.apply(null, heights);
+        vals.css('height', max);
+      } else {
+        var min = Math.min.apply(null, heights);
+        vals.css('height', min);
+      }
+
+      settings.after_height_change();
+      equalizer.trigger('after-height-change.fndtn.equalizer');
+    },
+
+    reflow : function () {
+      var self = this;
+
+      this.S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var $eq_target = $(this),
+            media_query = $eq_target.data('equalizer-mq'),
+            ignore_media_query = true;
+
+        if (media_query) {
+          media_query = 'is_' + media_query.replace(/-/g, '_');
+          if (Foundation.utils.hasOwnProperty(media_query)) {
+            ignore_media_query = false;
+          }
+        }
+
+        self.image_loaded(self.S('img', this), function () {
+          if (ignore_media_query || Foundation.utils[media_query]()) {
+            self.equalize($eq_target)
+          } else {
+            var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
+            vals.css('height', 'auto');
+          }
+        });
+      });
+    }
+  };
+})(jQuery, window, window.document);

+ 218 - 129
assets/scripts/foundation/foundation.interchange.js

@@ -1,85 +1,145 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
 ;(function ($, window, document, undefined) {
   'use strict';
 
   Foundation.libs.interchange = {
     name : 'interchange',
 
-    version : '4.2.1',
+    version : '5.5.3',
 
     cache : {},
 
+    images_loaded : false,
+    nodes_loaded : false,
+
     settings : {
       load_attr : 'interchange',
 
       named_queries : {
-        'default' : 'only screen and (min-width: 1px)',
-        small : 'only screen and (min-width: 768px)',
-        medium : 'only screen and (min-width: 1280px)',
-        large : 'only screen and (min-width: 1440px)',
-        landscape : 'only screen and (orientation: landscape)',
-        portrait : 'only 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)'
+        'default'     : 'only screen',
+        'small'       : Foundation.media_queries['small'],
+        'small-only'  : Foundation.media_queries['small-only'],
+        'medium'      : Foundation.media_queries['medium'],
+        'medium-only' : Foundation.media_queries['medium-only'],
+        'large'       : Foundation.media_queries['large'],
+        'large-only'  : Foundation.media_queries['large-only'],
+        'xlarge'      : Foundation.media_queries['xlarge'],
+        'xlarge-only' : Foundation.media_queries['xlarge-only'],
+        'xxlarge'     : Foundation.media_queries['xxlarge'],
+        'landscape'   : 'only screen and (orientation: landscape)',
+        'portrait'    : 'only 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)'
       },
 
       directives : {
-        replace : function (el, path) {
-          if (/IMG/.test(el[0].nodeName)) {
-            var path_parts = path.split('/'),
-                path_file = path_parts[path_parts.length - 1],
-                orig_path = el[0].src;
+        replace : function (el, path, trigger) {
+          // The trigger argument, if called within the directive, fires
+          // an event named after the directive on the element, passing
+          // any parameters along to the event that you pass to trigger.
+          //
+          // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
+          //
+          // This allows you to bind a callback like so:
+          // $('#interchangeContainer').on('replace', function (e, a, b, c) {
+          //   console.log($(this).html(), a, b, c);
+          // });
+
+          if (el !== null && /IMG/.test(el[0].nodeName)) {
+            var orig_path = $.each(el, function(){this.src = path;});
+            // var orig_path = el[0].src;
+
+            if (new RegExp(path, 'i').test(orig_path)) {
+              return;
+            }
+
+            el.attr("src", path);
 
-            if (new RegExp(path_file, 'i').test(el[0].src)) return;
+            return trigger(el[0].src);
+          }
+          var last_path = el.data(this.data_attr + '-last-path'),
+              self = this;
 
-            el[0].src = path;
+          if (last_path == path) {
+            return;
+          }
 
-            return el.trigger('replace', [el[0].src, orig_path]);
+          if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
+            $(el).css('background-image', 'url(' + path + ')');
+            el.data('interchange-last-path', path);
+            return trigger(path);
           }
+
+          return $.get(path, function (response) {
+            el.html(response);
+            el.data(self.data_attr + '-last-path', path);
+            trigger();
+          });
+
         }
       }
     },
 
     init : function (scope, method, options) {
-      Foundation.inherit(this, 'throttle');
+      Foundation.inherit(this, 'throttle random_str');
 
-      if (typeof method === 'object') {
-        $.extend(true, this.settings, method);
-      }
-
-      this.events();
-      this.images();
+      this.data_attr = this.set_data_attr();
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+      this.reflow();
+    },
 
-      if (typeof method != 'string') {
-        return this.settings.init;
-      } else {
-        return this[method].call(this, options);
-      }
+    get_media_hash : function () {
+        var mediaHash = '';
+        for (var queryName in this.settings.named_queries ) {
+            mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
+        }
+        return mediaHash;
     },
 
     events : function () {
-      var self = this;
+      var self = this, prevMediaHash;
+
+      $(window)
+        .off('.interchange')
+        .on('resize.fndtn.interchange', self.throttle(function () {
+            var currMediaHash = self.get_media_hash();
+            if (currMediaHash !== prevMediaHash) {
+                self.resize();
+            }
+            prevMediaHash = currMediaHash;
+        }, 50));
 
-      $(window).on('resize.fndtn.interchange', self.throttle(function () {
-        self.resize.call(self);
-      }, 50));
+      return this;
     },
 
     resize : function () {
       var cache = this.cache;
 
+      if (!this.images_loaded || !this.nodes_loaded) {
+        setTimeout($.proxy(this.resize, this), 50);
+        return;
+      }
+
       for (var uuid in cache) {
         if (cache.hasOwnProperty(uuid)) {
           var passed = this.results(uuid, cache[uuid]);
-
           if (passed) {
             this.settings.directives[passed
-              .scenario[1]](passed.el, passed.scenario[0]);
+              .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
+                if (arguments[0] instanceof Array) {
+                  var args = arguments[0];
+                } else {
+                  var args = Array.prototype.slice.call(arguments, 0);
+                }
+
+                return function() {
+                  passed.el.trigger(passed.scenario[1], args);
+                }
+              }(passed)));
           }
         }
       }
@@ -87,21 +147,20 @@
     },
 
     results : function (uuid, scenarios) {
-      var count = scenarios.length,
-          results_arr = [];
+      var count = scenarios.length;
 
       if (count > 0) {
-        var el = $('[data-uuid="' + uuid + '"]');
+        var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
 
-        for (var i = count - 1; i >= 0; i--) {
-          var rule = scenarios[i][2];
+        while (count--) {
+          var mq, rule = scenarios[count][2];
           if (this.settings.named_queries.hasOwnProperty(rule)) {
-            var mq = matchMedia(this.settings.named_queries[rule]);
+            mq = matchMedia(this.settings.named_queries[rule]);
           } else {
-            var mq = matchMedia(scenarios[i][2]);
+            mq = matchMedia(rule);
           }
           if (mq.matches) {
-            return {el: el, scenario: scenarios[i]};
+            return {el : el, scenario : scenarios[count]};
           }
         }
       }
@@ -109,86 +168,83 @@
       return false;
     },
 
-    images : function (force_update) {
-      if (typeof this.cached_images === 'undefined' || force_update) {
-        return this.update_images();
+    load : function (type, force_update) {
+      if (typeof this['cached_' + type] === 'undefined' || force_update) {
+        this['update_' + type]();
       }
 
-      return this.cached_images;
+      return this['cached_' + type];
     },
 
     update_images : function () {
-      var images = document.getElementsByTagName('img'),
+      var images = this.S('img[' + this.data_attr + ']'),
           count = images.length,
-          data_attr = 'data-' + this.settings.load_attr;
+          i = count,
+          loaded_count = 0,
+          data_attr = this.data_attr;
 
+      this.cache = {};
       this.cached_images = [];
+      this.images_loaded = (count === 0);
 
-      for (var i = count - 1; i >= 0; i--) {
-        this.loaded($(images[i]), (i === 0), function (image, last) {
-          if (image) {
-            var str = image.getAttribute(data_attr) || '';
+      while (i--) {
+        loaded_count++;
+        if (images[i]) {
+          var str = images[i].getAttribute(data_attr) || '';
 
-            if (str.length > 0) {
-              this.cached_images.push(image);
-            }
+          if (str.length > 0) {
+            this.cached_images.push(images[i]);
           }
+        }
 
-          if (last) this.enhance();
-
-        }.bind(this));
+        if (loaded_count === count) {
+          this.images_loaded = true;
+          this.enhance('images');
+        }
       }
 
-      return 'deferred';
+      return this;
     },
 
-    // based on jquery.imageready.js
-    // @weblinc, @jsantell, (c) 2012
-
-    loaded : function (image, last, callback) {
-      function loaded () {
-        callback(image[0], last);
-      }
+    update_nodes : function () {
+      var nodes = this.S('[' + this.data_attr + ']').not('img'),
+          count = nodes.length,
+          i = count,
+          loaded_count = 0,
+          data_attr = this.data_attr;
 
-      function bindLoad () {
-        this.one('load', loaded);
+      this.cached_nodes = [];
+      this.nodes_loaded = (count === 0);
 
-        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
-          var src = this.attr( 'src' ),
-              param = src.match( /\?/ ) ? '&' : '?';
+      while (i--) {
+        loaded_count++;
+        var str = nodes[i].getAttribute(data_attr) || '';
 
-          param += 'random=' + (new Date()).getTime();
-          this.attr('src', src + param);
+        if (str.length > 0) {
+          this.cached_nodes.push(nodes[i]);
         }
-      }
 
-      if (!image.attr('src')) {
-        loaded();
-        return;
+        if (loaded_count === count) {
+          this.nodes_loaded = true;
+          this.enhance('nodes');
+        }
       }
 
-      if (image[0].complete || image[0].readyState === 4) {
-        loaded();
-      } else {
-        bindLoad.call(image);
-      }
+      return this;
     },
 
-    enhance : function () {
-      var count = this.images().length;
+    enhance : function (type) {
+      var i = this['cached_' + type].length;
 
-      for (var i = count - 1; i >= 0; i--) {
-        this._object($(this.images()[i]));
+      while (i--) {
+        this.object($(this['cached_' + type][i]));
       }
 
-      return $(window).trigger('resize');
-    },
-
-    parse_params : function (path, directive, mq) {
-      return [this.trim(path), this.convert_directive(directive), this.trim(mq)];
+      return $(window).trigger('resize.fndtn.interchange');
     },
 
     convert_directive : function (directive) {
+
       var trimmed = this.trim(directive);
 
       if (trimmed.length > 0) {
@@ -198,50 +254,65 @@
       return 'replace';
     },
 
-    _object : function(el) {
-      var raw_arr = this.parse_data_attr(el),
-          scenarios = [], count = raw_arr.length;
+    parse_scenario : function (scenario) {
+      // This logic had to be made more complex since some users were using commas in the url path
+      // So we cannot simply just split on a comma
 
-      if (count > 0) {
-        for (var i = count - 1; i >= 0; i--) {
-          var split = raw_arr[i].split(/\((.*?)(\))$/);
+      var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
+      // getting the mq has gotten a bit complicated since we started accounting for several use cases
+      // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
+      // as nested objects or arrays in F6.
+      // regex: match everything before close parenthesis for mq
+      media_query         = scenario[1].match(/(.*)\)/);
 
-          if (split.length > 1) {
-            var cached_split = split[0].split(','),
-                params = this.parse_params(cached_split[0],
-                  cached_split[1], split[1]);
+      if (directive_match) {
+        var path  = directive_match[1],
+        directive = directive_match[2];
 
-            scenarios.push(params);
-          }
-        }
+      } else {
+        var cached_split = scenario[0].split(/,\s*$/),
+        path             = cached_split[0],
+        directive        = '';
       }
 
-      return this.store(el, scenarios);
+      return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
     },
 
-    uuid : function (separator) {
-      var delim = separator || "-";
+    object : function (el) {
+      var raw_arr = this.parse_data_attr(el),
+          scenarios = [],
+          i = raw_arr.length;
+
+      if (i > 0) {
+        while (i--) {
+          // split array between comma delimited content and mq
+          // regex: comma, optional space, open parenthesis
+          var scenario = raw_arr[i].split(/,\s?\(/);
 
-      function S4() {
-        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
+          if (scenario.length > 1) {
+            var params = this.parse_scenario(scenario);
+            scenarios.push(params);
+          }
+        }
       }
 
-      return (S4() + S4() + delim + S4() + delim + S4()
-        + delim + S4() + delim + S4() + S4() + S4());
+      return this.store(el, scenarios);
     },
 
     store : function (el, scenarios) {
-      var uuid = this.uuid(),
-          current_uuid = el.data('uuid');
-
-      if (current_uuid) return this.cache[current_uuid];
+      var uuid = this.random_str(),
+          current_uuid = el.data(this.add_namespace('uuid', true));
 
-      el.attr('data-uuid', uuid);
+      if (this.cache[current_uuid]) {
+        return this.cache[current_uuid];
+      }
 
+      el.attr(this.add_namespace('data-uuid'), uuid);
       return this.cache[uuid] = scenarios;
     },
 
-    trim : function(str) {
+    trim : function (str) {
+
       if (typeof str === 'string') {
         return $.trim(str);
       }
@@ -249,11 +320,28 @@
       return str;
     },
 
+    set_data_attr : function (init) {
+      if (init) {
+        if (this.namespace.length > 0) {
+          return this.namespace + '-' + this.settings.load_attr;
+        }
+
+        return this.settings.load_attr;
+      }
+
+      if (this.namespace.length > 0) {
+        return 'data-' + this.namespace + '-' + this.settings.load_attr;
+      }
+
+      return 'data-' + this.settings.load_attr;
+    },
+
     parse_data_attr : function (el) {
-      var raw = el.data(this.settings.load_attr).split(/\[(.*?)\]/),
-          count = raw.length, output = [];
+      var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
+          i = raw.length,
+          output = [];
 
-      for (var i = count - 1; i >= 0; i--) {
+      while (i--) {
         if (raw[i].replace(/[\W\d]+/, '').length > 4) {
           output.push(raw[i]);
         }
@@ -263,9 +351,10 @@
     },
 
     reflow : function () {
-      this.images(true);
+      this.load('images', true);
+      this.load('nodes', true);
     }
 
   };
 
-}(Foundation.zj, this, this.document));
+}(jQuery, window, window.document));

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 335 - 246
assets/scripts/foundation/foundation.joyride.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 589 - 304
assets/scripts/foundation/foundation.js


+ 182 - 100
assets/scripts/foundation/foundation.magellan.js

@@ -1,132 +1,214 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
 ;(function ($, window, document, undefined) {
   'use strict';
 
-  Foundation.libs.magellan = {
-    name : 'magellan',
+  Foundation.libs['magellan-expedition'] = {
+    name : 'magellan-expedition',
 
-    version : '4.2.0',
+    version : '5.5.3',
 
     settings : {
-      activeClass: 'active'
+      active_class : 'active',
+      threshold : 0, // pixels from the top of the expedition for it to become fixes
+      destination_threshold : 20, // pixels from the top of destination for it to be considered active
+      throttle_delay : 30, // calculation throttling to increase framerate
+      fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
+      offset_by_height : true,  // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
+      duration : 700, // animation duration time
+      easing : 'swing' // animation easing
     },
 
     init : function (scope, method, options) {
-      this.scope = scope || this.scope;
-      Foundation.inherit(this, 'data_options');
-
-      if (typeof method === 'object') {
-        $.extend(true, this.settings, method);
-      }
-
-      if (typeof method != 'string') {
-        if (!this.settings.init) {
-          this.fixed_magellan = $("[data-magellan-expedition]");
-          this.set_threshold();
-          this.last_destination = $('[data-magellan-destination]').last();
-          this.events();
-        }
-
-        return this.settings.init;
-      } else {
-        return this[method].call(this, options);
-      }
+      Foundation.inherit(this, 'throttle');
+      this.bindings(method, options);
     },
 
     events : function () {
-      var self = this;
-      $(this.scope).on('arrival.fndtn.magellan', '[data-magellan-arrival]', function (e) {
-        var $destination = $(this),
-            $expedition = $destination.closest('[data-magellan-expedition]'),
-            activeClass = $expedition.attr('data-magellan-active-class') 
-              || self.settings.activeClass;
-
-          $destination
-            .closest('[data-magellan-expedition]')
-            .find('[data-magellan-arrival]')
-            .not($destination)
-            .removeClass(activeClass);
-          $destination.addClass(activeClass);
-      });
+      var self = this,
+          S = self.S,
+          settings = self.settings;
+
+      // initialize expedition offset
+      self.set_expedition_position();
+
+      S(self.scope)
+        .off('.magellan')
+        .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
+          var sameHost = ((this.hostname === location.hostname) || !this.hostname),
+              samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
+              testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
+              anchor = this;
+
+          if (sameHost && samePath && testHash) {
+            e.preventDefault();
+            var expedition = $(this).closest('[' + self.attr_name() + ']'),
+                settings = expedition.data('magellan-expedition-init'),
+                hash = this.hash.split('#').join(''),
+                target = $('a[name="' + hash + '"]');
+
+            if (target.length === 0) {
+              target = $('#' + hash);
 
-      this.fixed_magellan
-        .on('update-position.fndtn.magellan', function(){
-          var $el = $(this);
-          // $el.data("magellan-fixed-position","");
-          // $el.data("magellan-top-offset", "");
-        })
-        .trigger('update-position');
-
-      $(window)
-        .on('resize.fndtn.magellan', function() {
-          this.fixed_magellan.trigger('update-position');
-        }.bind(this))
-
-        .on('scroll.fndtn.magellan', function() {
-          var windowScrollTop = $(window).scrollTop();
-          self.fixed_magellan.each(function() {
-            var $expedition = $(this);
-            if (typeof $expedition.data('magellan-top-offset') === 'undefined') {
-              $expedition.data('magellan-top-offset', $expedition.offset().top);
-            }
-            if (typeof $expedition.data('magellan-fixed-position') === 'undefined') {
-              $expedition.data('magellan-fixed-position', false)
             }
-            var fixed_position = (windowScrollTop + self.settings.threshold) > $expedition.data("magellan-top-offset");
-            var attr = $expedition.attr('data-magellan-top-offset');
 
-            if ($expedition.data("magellan-fixed-position") != fixed_position) {
-              $expedition.data("magellan-fixed-position", fixed_position);
-              if (fixed_position) {
-                $expedition.css({position:"fixed", top:0});
+            // Account for expedition height if fixed position
+            var scroll_top = target.offset().top - settings.destination_threshold + 1;
+            if (settings.offset_by_height) {
+              scroll_top = scroll_top - expedition.outerHeight();
+            }
+            $('html, body').stop().animate({
+              'scrollTop' : scroll_top
+            }, settings.duration, settings.easing, function () {
+              if (history.pushState) {
+                history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
               } else {
-                $expedition.css({position:"", top:""});
-              }
-              if (fixed_position && typeof attr != 'undefined' && attr != false) {
-                $expedition.css({position:"fixed", top:attr + "px"});
+                location.hash = anchor.pathname + anchor.search + '#' + hash;
               }
-            }
-          });
-        });
+            });
+          }
+        })
+        .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
+    },
 
+    check_for_arrivals : function () {
+      var self = this;
+      self.update_arrivals();
+      self.update_expedition_positions();
+    },
+
+    set_expedition_position : function () {
+      var self = this;
+      $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
+        var expedition = $(this),
+            settings = expedition.data('magellan-expedition-init'),
+            styles = expedition.attr('styles'), // save styles
+            top_offset, fixed_top;
+
+        expedition.attr('style', '');
+        top_offset = expedition.offset().top + settings.threshold;
+
+        //set fixed-top by attribute
+        fixed_top = parseInt(expedition.data('magellan-fixed-top'));
+        if (!isNaN(fixed_top)) {
+          self.settings.fixed_top = fixed_top;
+        }
 
-      if (this.last_destination.length > 0) {
-        $(window).on('scroll.fndtn.magellan', function (e) {
-          var windowScrollTop = $(window).scrollTop(),
-              scrolltopPlusHeight = windowScrollTop + $(window).height(),
-              lastDestinationTop = Math.ceil(self.last_destination.offset().top);
+        expedition.data(self.data_attr('magellan-top-offset'), top_offset);
+        expedition.attr('style', styles);
+      });
+    },
 
-          $('[data-magellan-destination]').each(function () {
-            var $destination = $(this),
-                destination_name = $destination.attr('data-magellan-destination'),
-                topOffset = $destination.offset().top - windowScrollTop;
+    update_expedition_positions : function () {
+      var self = this,
+          window_top_offset = $(window).scrollTop();
+
+      $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
+        var expedition = $(this),
+            settings = expedition.data('magellan-expedition-init'),
+            styles = expedition.attr('style'), // save styles
+            top_offset = expedition.data('magellan-top-offset');
+
+        //scroll to the top distance
+        if (window_top_offset + self.settings.fixed_top >= top_offset) {
+          // Placeholder allows height calculations to be consistent even when
+          // appearing to switch between fixed/non-fixed placement
+          var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
+          if (placeholder.length === 0) {
+            placeholder = expedition.clone();
+            placeholder.removeAttr(self.attr_name());
+            placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
+            expedition.before(placeholder);
+          }
+          expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
+        } else {
+          expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
+          expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
+        }
+      });
+    },
 
-            if (topOffset <= self.settings.threshold) {
-              $("[data-magellan-arrival='" + destination_name + "']").trigger('arrival');
-            }
-            // In large screens we may hit the bottom of the page and dont reach the top of the last magellan-destination, so lets force it
-            if (scrolltopPlusHeight >= $(self.scope).height() && lastDestinationTop > windowScrollTop && lastDestinationTop < scrolltopPlusHeight) {
-              $('[data-magellan-arrival]').last().trigger('arrival');
-            }
-          });
+    update_arrivals : function () {
+      var self = this,
+          window_top_offset = $(window).scrollTop();
+
+      $('[' + this.attr_name() + ']', self.scope).each(function () {
+        var expedition = $(this),
+            settings = expedition.data(self.attr_name(true) + '-init'),
+            offsets = self.offsets(expedition, window_top_offset),
+            arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
+            active_item = false;
+        offsets.each(function (idx, item) {
+          if (item.viewport_offset >= item.top_offset) {
+            var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
+            arrivals.not(item.arrival).removeClass(settings.active_class);
+            item.arrival.addClass(settings.active_class);
+            active_item = true;
+            return true;
+          }
         });
-      }
 
-      this.settings.init = true;
+        if (!active_item) {
+          arrivals.removeClass(settings.active_class);
+        }
+      });
     },
 
-    set_threshold : function () {
-      if (!this.settings.threshold) {
-        this.settings.threshold = (this.fixed_magellan.length > 0) ? 
-          this.outerHeight(this.fixed_magellan, true) : 0;
+    offsets : function (expedition, window_offset) {
+      var self = this,
+          settings = expedition.data(self.attr_name(true) + '-init'),
+          viewport_offset = window_offset;
+
+      return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
+        var name = $(this).data(self.data_attr('magellan-arrival')),
+            dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
+        if (dest.length > 0) {
+          var top_offset = dest.offset().top - settings.destination_threshold;
+          if (settings.offset_by_height) {
+            top_offset = top_offset - expedition.outerHeight();
+          }
+          top_offset = Math.floor(top_offset);
+          return {
+            destination : dest,
+            arrival : $(this),
+            top_offset : top_offset,
+            viewport_offset : viewport_offset
+          }
+        }
+      }).sort(function (a, b) {
+        if (a.top_offset < b.top_offset) {
+          return -1;
+        }
+        if (a.top_offset > b.top_offset) {
+          return 1;
+        }
+        return 0;
+      });
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
       }
+
+      return str;
     },
 
     off : function () {
-      $(this.scope).off('.fndtn.magellan');
+      this.S(this.scope).off('.magellan');
+      this.S(window).off('.magellan');
     },
 
-    reflow : function () {}
+    filterPathname : function (pathname) {
+      pathname = pathname || '';
+      return pathname
+          .replace(/^\//,'')
+          .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
+          .replace(/\/$/,'');
+    },
+
+    reflow : function () {
+      var self = this;
+      // remove placeholder expeditions used for height calculation purposes
+      $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
+    }
   };
-}(Foundation.zj, this, this.document));
+}(jQuery, window, window.document));

+ 225 - 0
assets/scripts/foundation/foundation.offcanvas.js

@@ -0,0 +1,225 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.offcanvas = {
+    name : 'offcanvas',
+
+    version : '5.5.3',
+
+    settings : {
+      open_method : 'move',
+      close_on_click : false
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = self.S,
+          move_class = '',
+          right_postfix = '',
+          left_postfix = '',
+          top_postfix = '',
+          bottom_postfix = '';
+
+      if (this.settings.open_method === 'move') {
+        move_class = 'move-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
+      } else if (this.settings.open_method === 'overlap_single') {
+        move_class = 'offcanvas-overlap-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
+      } else if (this.settings.open_method === 'overlap') {
+        move_class = 'offcanvas-overlap';
+      }
+
+      S(this.scope).off('.offcanvas')
+        .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + right_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.left-submenu').removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + right_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of left canvas
+        .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + left_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.right-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + left_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of right canvas
+        .on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + bottom_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.top-submenu').removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + bottom_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of top canvas
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + top_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.bottom-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + top_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of bottom
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          S('.right-submenu').removeClass(move_class + left_postfix);
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            S('.left-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          S('.bottom-submenu').removeClass(move_class + top_postfix);
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            S('.top-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            $('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        });
+    },
+
+    toggle : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      if ($off_canvas.is('.' + class_name)) {
+        this.hide(class_name, $off_canvas);
+      } else {
+        this.show(class_name, $off_canvas);
+      }
+    },
+
+    show : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('open.fndtn.offcanvas');
+      $off_canvas.addClass(class_name);
+    },
+
+    hide : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('close.fndtn.offcanvas');
+      $off_canvas.removeClass(class_name);
+    },
+
+    click_toggle_class : function (e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.toggle(class_name, $off_canvas);
+    },
+
+    click_remove_class : function (e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.hide(class_name, $off_canvas);
+    },
+
+    get_settings : function (e) {
+      var offcanvas  = this.S(e.target).closest('[' + this.attr_name() + ']');
+      return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
+    },
+
+    get_wrapper : function (e) {
+      var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
+
+      if ($off_canvas.length === 0) {
+        $off_canvas = this.S('.off-canvas-wrap');
+      }
+      return $off_canvas;
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));

+ 409 - 323
assets/scripts/foundation/foundation.orbit.js

@@ -1,234 +1,269 @@
 ;(function ($, window, document, undefined) {
   'use strict';
 
-  Foundation.libs = Foundation.libs || {};
+  var noop = function () {};
 
-  Foundation.libs.orbit = {
-    name: 'orbit',
-
-    version: '4.2.0',
-
-    settings: {
-      timer_speed: 10000,
-      pause_on_hover: true,
-      resume_on_mouseout: false,
-      animation_speed: 500,
-      bullets: true,
-      stack_on_small: true,
-      navigation_arrows: true,
-      slide_number: true,
-      container_class: 'orbit-container',
-      stack_on_small_class: 'orbit-stack-on-small',
-      next_class: 'orbit-next',
-      prev_class: 'orbit-prev',
-      timer_container_class: 'orbit-timer',
-      timer_paused_class: 'paused',
-      timer_progress_class: 'orbit-progress',
-      slides_container_class: 'orbit-slides-container',
-      bullets_container_class: 'orbit-bullets',
-      bullets_active_class: 'active',
-      slide_number_class: 'orbit-slide-number',
-      caption_class: 'orbit-caption',
-      active_slide_class: 'active',
-      orbit_transition_class: 'orbit-transitioning'
-    },
+  var Orbit = function (el, settings) {
+    // Don't reinitialize plugin
+    if (el.hasClass(settings.slides_container_class)) {
+      return this;
+    }
 
-    init: function (scope, method, options) {
-      var self = this;
-      Foundation.inherit(self, 'data_options');
+    var self = this,
+        container,
+        slides_container = el,
+        number_container,
+        bullets_container,
+        timer_container,
+        idx = 0,
+        animate,
+        timer,
+        locked = false,
+        adjust_height_after = false;
+
+    self.slides = function () {
+      return slides_container.children(settings.slide_selector);
+    };
+
+    self.slides().first().addClass(settings.active_slide_class);
+
+    self.update_slide_number = function (index) {
+      if (settings.slide_number) {
+        number_container.find('span:first').text(parseInt(index) + 1);
+        number_container.find('span:last').text(self.slides().length);
+      }
+      if (settings.bullets) {
+        bullets_container.children().removeClass(settings.bullets_active_class);
+        $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
+      }
+    };
+
+    self.update_active_link = function (index) {
+      var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
+      link.siblings().removeClass(settings.bullets_active_class);
+      link.addClass(settings.bullets_active_class);
+    };
 
-      if (typeof method === 'object') {
-        $.extend(true, self.settings, method);
+    self.build_markup = function () {
+      slides_container.wrap('<div class="' + settings.container_class + '"></div>');
+      container = slides_container.parent();
+      slides_container.addClass(settings.slides_container_class);
+
+      if (settings.stack_on_small) {
+        container.addClass(settings.stack_on_small_class);
       }
 
-      if ($(scope).is('[data-orbit]')) {
-        var scoped_self = $.extend(true, {}, self);
-        scoped_self._init(idx, el);
+      if (settings.navigation_arrows) {
+        container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
+        container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
       }
 
-      $('[data-orbit]', scope).each(function(idx, el) {
-        var scoped_self = $.extend(true, {}, self);
-        scoped_self._init(idx, el);
-      });
-    },
+      if (settings.timer) {
+        timer_container = $('<div>').addClass(settings.timer_container_class);
+        timer_container.append('<span>');
+        timer_container.append($('<div>').addClass(settings.timer_progress_class));
+        timer_container.addClass(settings.timer_paused_class);
+        container.append(timer_container);
+      }
 
-    _container_html: function() {
-      var self = this;
-      return '<div class="' + self.settings.container_class + '"></div>';
-    },
+      if (settings.slide_number) {
+        number_container = $('<div>').addClass(settings.slide_number_class);
+        number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
+        container.append(number_container);
+      }
 
-    _bullets_container_html: function($slides) {
-      var self = this,
-          $list = $('<ol class="' + self.settings.bullets_container_class + '"></ol>');
-      $slides.each(function(idx, slide) {
-        var $item = $('<li data-orbit-slide-number="' + (idx+1) + '" class=""></li>');
-        if (idx === 0) {
-          $item.addClass(self.settings.bullets_active_class);
-        }
-        $list.append($item);
-      });
-      return $list;
-    },
+      if (settings.bullets) {
+        bullets_container = $('<ol>').addClass(settings.bullets_container_class);
+        container.append(bullets_container);
+        bullets_container.wrap('<div class="orbit-bullets-container"></div>');
+        self.slides().each(function (idx, el) {
+          var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
+          bullets_container.append(bullet);
+        });
+      }
 
-    _slide_number_html: function(slide_number, total_slides) {
-      var self = this,
-          $container = $('<div class="' + self.settings.slide_number_class + '"></div>');
-      $container.append('<span>' + slide_number + '</span> of <span>' + total_slides + '</span>');
-      return $container;
-    },
+    };
 
-    _timer_html: function() {
-      var self = this;
-      if (typeof self.settings.timer_speed === 'number' && self.settings.timer_speed > 0) {
-        return '<div class="' + self.settings.timer_container_class
-          + '"><span></span><div class="' + self.settings.timer_progress_class
-          + '"></div></div>';
-      } else {
-        return '';
+    self._goto = function (next_idx, start_timer) {
+      // if (locked) {return false;}
+      if (next_idx === idx) {return false;}
+      if (typeof timer === 'object') {timer.restart();}
+      var slides = self.slides();
+
+      var dir = 'next';
+      locked = true;
+      if (next_idx < idx) {dir = 'prev';}
+      if (next_idx >= slides.length) {
+        if (!settings.circular) {
+          return false;
+        }
+        next_idx = 0;
+      } else if (next_idx < 0) {
+        if (!settings.circular) {
+          return false;
+        }
+        next_idx = slides.length - 1;
       }
-    },
 
-    _next_html: function() {
-      var self = this;
-      return '<a href="#" class="' + self.settings.next_class + '">Next <span></span></a>';
-    },
+      var current = $(slides.get(idx));
+      var next = $(slides.get(next_idx));
+
+      current.css('zIndex', 2);
+      current.removeClass(settings.active_slide_class);
+      next.css('zIndex', 4).addClass(settings.active_slide_class);
+
+      slides_container.trigger('before-slide-change.fndtn.orbit');
+      settings.before_slide_change();
+      self.update_active_link(next_idx);
+
+      var callback = function () {
+        var unlock = function () {
+          idx = next_idx;
+          locked = false;
+          if (start_timer === true) {timer = self.create_timer(); timer.start();}
+          self.update_slide_number(idx);
+          slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
+          settings.after_slide_change(idx, slides.length);
+        };
+        if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
+          slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
+        } else {
+          unlock();
+        }
+      };
 
-    _prev_html: function() {
-      var self = this;
-      return '<a href="#" class="' + self.settings.prev_class + '">Prev <span></span></a>';
-    },
+      if (slides.length === 1) {callback(); return false;}
 
-    _init: function (idx, slider) {
-      var self = this,
-          $slides_container = $(slider),
-          $container = $slides_container.wrap(self._container_html()).parent(),
-          $slides = $slides_container.children();
-      
-      $.extend(true, self.settings, self.data_options($slides_container));
-
-      if (self.settings.navigation_arrows) {
-          $container.append(self._prev_html());
-          $container.append(self._next_html());
-      }
-      $slides_container.addClass(self.settings.slides_container_class);
-      if (self.settings.stack_on_small) {
-        $container.addClass(self.settings.stack_on_small_class);
+      var start_animation = function () {
+        if (dir === 'next') {animate.next(current, next, callback);}
+        if (dir === 'prev') {animate.prev(current, next, callback);}
+      };
+
+      if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
+        slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
+      } else {
+        start_animation();
       }
-      if (self.settings.slide_number) {
-        $container.append(self._slide_number_html(1, $slides.length));
+    };
+
+    self.next = function (e) {
+      e.stopImmediatePropagation();
+      e.preventDefault();
+      self._goto(idx + 1);
+    };
+
+    self.prev = function (e) {
+      e.stopImmediatePropagation();
+      e.preventDefault();
+      self._goto(idx - 1);
+    };
+
+    self.link_custom = function (e) {
+      e.preventDefault();
+      var link = $(this).attr('data-orbit-link');
+      if ((typeof link === 'string') && (link = $.trim(link)) != '') {
+        var slide = container.find('[data-orbit-slide=' + link + ']');
+        if (slide.index() != -1) {self._goto(slide.index());}
       }
-      $container.append(self._timer_html());
-      if (self.settings.bullets) {
-        $container.after(self._bullets_container_html($slides));
+    };
+
+    self.link_bullet = function (e) {
+      var index = $(this).attr('data-orbit-slide');
+      if ((typeof index === 'string') && (index = $.trim(index)) != '') {
+        if (isNaN(parseInt(index))) {
+          var slide = container.find('[data-orbit-slide=' + index + ']');
+          if (slide.index() != -1) {self._goto(slide.index() + 1);}
+        } else {
+          self._goto(parseInt(index));
+        }
       }
-      // To better support the "sliding" effect it's easier
-      // if we just clone the first and last slides
-      $slides_container.append($slides.first().clone().attr('data-orbit-slide',''));
-      $slides_container.prepend($slides.last().clone().attr('data-orbit-slide',''));
-      // Make the first "real" slide active
-      $slides_container.css(Foundation.rtl ? 'marginRight' : 'marginLeft', '-100%');
-      $slides.first().addClass(self.settings.active_slide_class);
-
-      self._init_events($slides_container);
-      self._init_dimensions($slides_container);
-      self._start_timer($slides_container);
-    },
 
-    _init_events: function ($slides_container) {
-      var self = this,
-          $container = $slides_container.parent();
+    }
 
-      $(window)
-        .on('load.fndtn.orbit', function() {
-          $slides_container.height('');
-          $slides_container.height($slides_container.height($container.height()));
-          $slides_container.trigger('orbit:ready');
-        })
-        .on('resize.fndtn.orbit', function() {
-          $slides_container.height('');
-          $slides_container.height($slides_container.height($container.height()));
+    self.timer_callback = function () {
+      self._goto(idx + 1, true);
+    }
+
+    self.compute_dimensions = function () {
+      var current = $(self.slides().get(idx));
+      var h = current.outerHeight();
+      if (!settings.variable_height) {
+        self.slides().each(function(){
+          if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
         });
+      }
+      slides_container.height(h);
+    };
+
+    self.create_timer = function () {
+      var t = new Timer(
+        container.find('.' + settings.timer_container_class),
+        settings,
+        self.timer_callback
+      );
+      return t;
+    };
+
+    self.stop_timer = function () {
+      if (typeof timer === 'object') {
+        timer.stop();
+      }
+    };
 
-      $(document).on('click.fndtn.orbit', '[data-orbit-link]', function(e) {
-        e.preventDefault();
-        var id = $(e.currentTarget).attr('data-orbit-link'),
-            $slide = $slides_container.find('[data-orbit-slide=' + id + ']').first();
+    self.toggle_timer = function () {
+      var t = container.find('.' + settings.timer_container_class);
+      if (t.hasClass(settings.timer_paused_class)) {
+        if (typeof timer === 'undefined') {timer = self.create_timer();}
+        timer.start();
+      } else {
+        if (typeof timer === 'object') {timer.stop();}
+      }
+    };
 
-        if ($slide.length === 1) {
-          self._reset_timer($slides_container, true);
-          self._goto($slides_container, $slide.index(), function() {});
-        }
-      });
+    self.init = function () {
+      self.build_markup();
+      if (settings.timer) {
+        timer = self.create_timer();
+        Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
+      }
+      animate = new FadeAnimation(settings, slides_container);
+      if (settings.animation === 'slide') {
+        animate = new SlideAnimation(settings, slides_container);
+      }
 
-      $container.siblings('.' + self.settings.bullets_container_class)
-        .on('click.fndtn.orbit', '[data-orbit-slide-number]', function(e) {
-          e.preventDefault();
-          self._reset_timer($slides_container, true);
-          self._goto($slides_container, $(e.currentTarget).data('orbit-slide-number'),function() {});
-        });
+      container.on('click', '.' + settings.next_class, self.next);
+      container.on('click', '.' + settings.prev_class, self.prev);
 
-      $container
-        .on('mouseenter.fndtn.orbit', function(e) {
-          if (self.settings.pause_on_hover) {
-            self._stop_timer($slides_container);
-          }
-        })
-        .on('mouseleave.fndtn.orbit', function(e) {
-          if (self.settings.resume_on_mouseout) {
-            self._start_timer($slides_container);
-          }
-        })
-        .on('orbit:after-slide-change.fndtn.orbit', function(e, orbit) {
-          var $slide_number = $container.find('.' + self.settings.slide_number_class);
+      if (settings.next_on_click) {
+        container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
+      }
 
-          if ($slide_number.length === 1) {
-            $slide_number.replaceWith(self._slide_number_html(orbit.slide_number, orbit.total_slides));
-          }
-        })
-        .on('orbit:next-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.next_class, function(e) {
-          e.preventDefault();
-          self._reset_timer($slides_container, true);
-          self._goto($slides_container, 'next', function() {});
-        })
-        .on('orbit:prev-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.prev_class, function(e) {
-          e.preventDefault();
-          self._reset_timer($slides_container, true);
-          self._goto($slides_container, 'prev', function() {});
-        })
-        .on('orbit:toggle-play-pause.fndtn.orbit click.fndtn.orbit touchstart.fndtn.orbit', '.' + self.settings.timer_container_class, function(e) {
-          e.preventDefault();
-          var $timer = $(e.currentTarget).toggleClass(self.settings.timer_paused_class),
-              $slides_container = $timer.closest('.' + self.settings.container_class)
-                .find('.' + self.settings.slides_container_class);
-
-          if ($timer.hasClass(self.settings.timer_paused_class)) {
-            self._stop_timer($slides_container);
-          } else {
-            self._start_timer($slides_container);
-          }
-        })
-        .on('touchstart.fndtn.orbit', function(e) {
-          if (!e.touches) { e = e.originalEvent; }
+      container.on('click', self.toggle_timer);
+      if (settings.swipe) {
+        container.on('touchstart.fndtn.orbit', function (e) {
+          if (!e.touches) {e = e.originalEvent;}
           var data = {
-            start_page_x: e.touches[0].pageX,
-            start_page_y: e.touches[0].pageY,
-            start_time: (new Date()).getTime(),
-            delta_x: 0,
-            is_scrolling: undefined
+            start_page_x : e.touches[0].pageX,
+            start_page_y : e.touches[0].pageY,
+            start_time : (new Date()).getTime(),
+            delta_x : 0,
+            is_scrolling : undefined
           };
-          $container.data('swipe-transition', data);
+          container.data('swipe-transition', data);
           e.stopPropagation();
         })
-        .on('touchmove.fndtn.orbit', function(e) {
-          if (!e.touches) { e = e.originalEvent; }
+        .on('touchmove.fndtn.orbit', function (e) {
+          if (!e.touches) {
+            e = e.originalEvent;
+          }
           // Ignore pinch/zoom events
-          if(e.touches.length > 1 || e.scale && e.scale !== 1) return;
-
-          var data = $container.data('swipe-transition');
-          if (typeof data === 'undefined') {
-            data = {};
+          if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+            return;
           }
 
+          var data = container.data('swipe-transition');
+          if (typeof data === 'undefined') {data = {};}
+
           data.delta_x = e.touches[0].pageX - data.start_page_x;
 
           if ( typeof data.is_scrolling === 'undefined') {
@@ -237,154 +272,205 @@
 
           if (!data.is_scrolling && !data.active) {
             e.preventDefault();
-            self._stop_timer($slides_container);
-            var direction = (data.delta_x < 0) ? 'next' : 'prev';
+            var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
             data.active = true;
-            self._goto($slides_container, direction, function() {});
+            self._goto(direction);
           }
         })
-        .on('touchend.fndtn.orbit', function(e) {
-          $container.data('swipe-transition', {});
+        .on('touchend.fndtn.orbit', function (e) {
+          container.data('swipe-transition', {});
           e.stopPropagation();
-        });
-    },
+        })
+      }
+      container.on('mouseenter.fndtn.orbit', function (e) {
+        if (settings.timer && settings.pause_on_hover) {
+          self.stop_timer();
+        }
+      })
+      .on('mouseleave.fndtn.orbit', function (e) {
+        if (settings.timer && settings.resume_on_mouseout) {
+          timer.start();
+        }
+      });
 
-    _init_dimensions: function ($slides_container) {
-      var $container = $slides_container.parent(),
-          $slides = $slides_container.children();
+      $(document).on('click', '[data-orbit-link]', self.link_custom);
+      $(window).on('load resize', self.compute_dimensions);
+      Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
+      Foundation.utils.image_loaded(this.slides().children('img'), function () {
+        container.prev('.' + settings.preloader_class).css('display', 'none');
+        self.update_slide_number(0);
+        self.update_active_link(0);
+        slides_container.trigger('ready.fndtn.orbit');
+      });
+    };
 
-      $slides_container.css('width', $slides.length * 100 + '%');
-      $slides.css('width', 100 / $slides.length + '%');
-      $slides_container.height($container.height());
-      $slides_container.css('width', $slides.length * 100 + '%');
-    },
+    self.init();
+  };
+
+  var Timer = function (el, settings, callback) {
+    var self = this,
+        duration = settings.timer_speed,
+        progress = el.find('.' + settings.timer_progress_class),
+        start,
+        timeout,
+        left = -1;
+
+    this.update_progress = function (w) {
+      var new_progress = progress.clone();
+      new_progress.attr('style', '');
+      new_progress.css('width', w + '%');
+      progress.replaceWith(new_progress);
+      progress = new_progress;
+    };
+
+    this.restart = function () {
+      clearTimeout(timeout);
+      el.addClass(settings.timer_paused_class);
+      left = -1;
+      self.update_progress(0);
+    };
+
+    this.start = function () {
+      if (!el.hasClass(settings.timer_paused_class)) {return true;}
+      left = (left === -1) ? duration : left;
+      el.removeClass(settings.timer_paused_class);
+      start = new Date().getTime();
+      progress.animate({'width' : '100%'}, left, 'linear');
+      timeout = setTimeout(function () {
+        self.restart();
+        callback();
+      }, left);
+      el.trigger('timer-started.fndtn.orbit')
+    };
+
+    this.stop = function () {
+      if (el.hasClass(settings.timer_paused_class)) {return true;}
+      clearTimeout(timeout);
+      el.addClass(settings.timer_paused_class);
+      var end = new Date().getTime();
+      left = left - (end - start);
+      var w = 100 - ((left / duration) * 100);
+      self.update_progress(w);
+      el.trigger('timer-stopped.fndtn.orbit');
+    };
+  };
 
-    _start_timer: function ($slides_container) {
-      var self = this,
-          $container = $slides_container.parent();
+  var SlideAnimation = function (settings, container) {
+    var duration = settings.animation_speed;
+    var is_rtl = ($('html[dir=rtl]').length === 1);
+    var margin = is_rtl ? 'marginRight' : 'marginLeft';
+    var animMargin = {};
+    animMargin[margin] = '0%';
+
+    this.next = function (current, next, callback) {
+      current.animate({marginLeft : '-100%'}, duration);
+      next.animate(animMargin, duration, function () {
+        current.css(margin, '100%');
+        callback();
+      });
+    };
 
-      var callback = function() {
-        self._reset_timer($slides_container, false);
-        self._goto($slides_container, 'next', function() {
-          self._start_timer($slides_container);
-        });
-      };
+    this.prev = function (current, prev, callback) {
+      current.animate({marginLeft : '100%'}, duration);
+      prev.css(margin, '-100%');
+      prev.animate(animMargin, duration, function () {
+        current.css(margin, '100%');
+        callback();
+      });
+    };
+  };
 
-      var $timer = $container.find('.' + self.settings.timer_container_class),
-          $progress = $timer.find('.' + self.settings.timer_progress_class),
-          progress_pct = ($progress.width() / $timer.width()),
-          delay = self.settings.timer_speed - (progress_pct * self.settings.timer_speed);
+  var FadeAnimation = function (settings, container) {
+    var duration = settings.animation_speed;
+    var is_rtl = ($('html[dir=rtl]').length === 1);
+    var margin = is_rtl ? 'marginRight' : 'marginLeft';
 
-      $progress.animate({'width': '100%'}, delay, 'linear', callback);
-      $slides_container.trigger('orbit:timer-started');
-    },
+    this.next = function (current, next, callback) {
+      next.css({'margin' : '0%', 'opacity' : '0.01'});
+      next.animate({'opacity' :'1'}, duration, 'linear', function () {
+        current.css('margin', '100%');
+        callback();
+      });
+    };
 
-    _stop_timer: function ($slides_container) {
-      var self = this,
-          $container = $slides_container.parent(),
-          $timer = $container.find('.' + self.settings.timer_container_class),
-          $progress = $timer.find('.' + self.settings.timer_progress_class),
-          progress_pct = $progress.width() / $timer.width();
-      self._rebuild_timer($container, progress_pct * 100 + '%');
-      // $progress.stop();
-      $slides_container.trigger('orbit:timer-stopped');
-      $timer = $container.find('.' + self.settings.timer_container_class);
-      $timer.addClass(self.settings.timer_paused_class);
-    },
+    this.prev = function (current, prev, callback) {
+      prev.css({'margin' : '0%', 'opacity' : '0.01'});
+      prev.animate({'opacity' : '1'}, duration, 'linear', function () {
+        current.css('margin', '100%');
+        callback();
+      });
+    };
+  };
 
-    _reset_timer: function($slides_container, is_paused) {
-      var self = this,
-          $container = $slides_container.parent();
-      self._rebuild_timer($container, '0%');
-      if (typeof is_paused === 'boolean' && is_paused) {
-        var $timer = $container.find('.' + self.settings.timer_container_class);
-        $timer.addClass(self.settings.timer_paused_class);
-      }
+  Foundation.libs = Foundation.libs || {};
+
+  Foundation.libs.orbit = {
+    name : 'orbit',
+
+    version : '5.5.3',
+
+    settings : {
+      animation : 'slide',
+      timer_speed : 10000,
+      pause_on_hover : true,
+      resume_on_mouseout : false,
+      next_on_click : true,
+      animation_speed : 500,
+      stack_on_small : false,
+      navigation_arrows : true,
+      slide_number : true,
+      slide_number_text : 'of',
+      container_class : 'orbit-container',
+      stack_on_small_class : 'orbit-stack-on-small',
+      next_class : 'orbit-next',
+      prev_class : 'orbit-prev',
+      timer_container_class : 'orbit-timer',
+      timer_paused_class : 'paused',
+      timer_progress_class : 'orbit-progress',
+      slides_container_class : 'orbit-slides-container',
+      preloader_class : 'preloader',
+      slide_selector : '*',
+      bullets_container_class : 'orbit-bullets',
+      bullets_active_class : 'active',
+      slide_number_class : 'orbit-slide-number',
+      caption_class : 'orbit-caption',
+      active_slide_class : 'active',
+      orbit_transition_class : 'orbit-transitioning',
+      bullets : true,
+      circular : true,
+      timer : true,
+      variable_height : false,
+      swipe : true,
+      before_slide_change : noop,
+      after_slide_change : noop
     },
 
-    _rebuild_timer: function ($container, width_pct) {
-      // Zepto is unable to stop animations since they
-      // are css-based. This is a workaround for that
-      // limitation, which rebuilds the dom element
-      // thus stopping the animation
-      var self = this,
-          $timer = $container.find('.' + self.settings.timer_container_class),
-          $new_timer = $(self._timer_html()),
-          $new_timer_progress = $new_timer.find('.' + self.settings.timer_progress_class);
-
-      if (typeof Zepto === 'function') {
-        $timer.remove();
-        $container.append($new_timer);
-        $new_timer_progress.css('width', width_pct);
-      } else if (typeof jQuery === 'function') {
-        var $progress = $timer.find('.' + self.settings.timer_progress_class);
-        $progress.css('width', width_pct);
-        $progress.stop();
-      }
+    init : function (scope, method, options) {
+      var self = this;
+      this.bindings(method, options);
     },
 
-    _goto: function($slides_container, index_or_direction, callback) {
-      var self = this,
-          $container = $slides_container.parent(),
-          $slides = $slides_container.children(),
-          $active_slide = $slides_container.find('.' + self.settings.active_slide_class),
-          active_index = $active_slide.index(),
-          margin_position = Foundation.rtl ? 'marginRight' : 'marginLeft';
+    events : function (instance) {
+      var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
+      this.S(instance).data(this.name + '-instance', orbit_instance);
+    },
 
-      if ($container.hasClass(self.settings.orbit_transition_class)) {
-        return false;
-      }
+    reflow : function () {
+      var self = this;
 
-      if (index_or_direction === 'prev') {
-        if (active_index === 0) {
-          active_index = $slides.length - 1;
-        }
-        else {
-          active_index--;
-        }
-      }
-      else if (index_or_direction === 'next') {
-        active_index = (active_index+1) % $slides.length;
-      }
-      else if (typeof index_or_direction === 'number') {
-        active_index = (index_or_direction % $slides.length);
-      }
-      if (active_index === ($slides.length - 1) && index_or_direction === 'next') {
-        $slides_container.css(margin_position, '0%');
-        active_index = 1;
-      }
-      else if (active_index === 0 && index_or_direction === 'prev') {
-        $slides_container.css(margin_position, '-' + ($slides.length - 1) * 100 + '%');
-        active_index = $slides.length - 2;
-      }
-      // Start transition, make next slide active
-      $container.addClass(self.settings.orbit_transition_class);
-      $active_slide.removeClass(self.settings.active_slide_class);
-      $($slides[active_index]).addClass(self.settings.active_slide_class);
-      // Make next bullet active
-      var $bullets = $container.siblings('.' + self.settings.bullets_container_class);
-      if ($bullets.length === 1) {
-        $bullets.children().removeClass(self.settings.bullets_active_class);
-        $($bullets.children()[active_index-1]).addClass(self.settings.bullets_active_class);
-      }
-      var new_margin_left = '-' + (active_index * 100) + '%';
-      // Check to see if animation will occur, otherwise perform
-      // callbacks manually
-      $slides_container.trigger('orbit:before-slide-change');
-      if ($slides_container.css(margin_position) === new_margin_left) {
-        $container.removeClass(self.settings.orbit_transition_class);
-        $slides_container.trigger('orbit:after-slide-change', [{slide_number: active_index, total_slides: $slides_container.children().length - 2}]);
-        callback();
+      if (self.S(self.scope).is('[data-orbit]')) {
+        var $el = self.S(self.scope);
+        var instance = $el.data(self.name + '-instance');
+        instance.compute_dimensions();
       } else {
-        var properties = {};
-        properties[margin_position] = new_margin_left;
-
-        $slides_container.animate(properties, self.settings.animation_speed, 'linear', function() {
-          $container.removeClass(self.settings.orbit_transition_class);
-          $slides_container.trigger('orbit:after-slide-change', [{slide_number: active_index, total_slides: $slides_container.children().length - 2}]);
-          callback();
+        self.S('[data-orbit]', self.scope).each(function (idx, el) {
+          var $el = self.S(el);
+          var opts = self.data_options($el);
+          var instance = $el.data(self.name + '-instance');
+          instance.compute_dimensions();
         });
       }
     }
   };
-}(Foundation.zj, this, this.document));
+
+}(jQuery, window, window.document));

+ 329 - 137
assets/scripts/foundation/foundation.reveal.js

@@ -1,70 +1,62 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
 ;(function ($, window, document, undefined) {
   'use strict';
 
+  var openModals = [];
+
   Foundation.libs.reveal = {
-    name: 'reveal',
+    name : 'reveal',
 
-    version : '4.2.0',
+    version : '5.5.3',
 
     locked : false,
 
     settings : {
-      animation: 'fadeAndPop',
-      animationSpeed: 250,
-      closeOnBackgroundClick: true,
-      closeOnEsc: true,
-      dismissModalClass: 'close-reveal-modal',
-      bgClass: 'reveal-modal-bg',
-      open: function(){},
-      opened: function(){},
-      close: function(){},
-      closed: function(){},
+      animation : 'fadeAndPop',
+      animation_speed : 250,
+      close_on_background_click : true,
+      close_on_esc : true,
+      dismiss_modal_class : 'close-reveal-modal',
+      multiple_opened : false,
+      bg_class : 'reveal-modal-bg',
+      root_element : 'body',
+      open : function(){},
+      opened : function(){},
+      close : function(){},
+      closed : function(){},
+      on_ajax_error: $.noop,
       bg : $('.reveal-modal-bg'),
       css : {
         open : {
-          'opacity': 0,
-          'visibility': 'visible',
+          'opacity' : 0,
+          'visibility' : 'visible',
           'display' : 'block'
         },
         close : {
-          'opacity': 1,
-          'visibility': 'hidden',
-          'display': 'none'
+          'opacity' : 1,
+          'visibility' : 'hidden',
+          'display' : 'none'
         }
       }
     },
 
     init : function (scope, method, options) {
-      Foundation.inherit(this, 'data_options delay');
-
-      if (typeof method === 'object') {
-        $.extend(true, this.settings, method);
-      } else if (typeof options !== 'undefined') {
-        $.extend(true, this.settings, options);
-      }
-
-      if (typeof method != 'string') {
-        this.events();
-
-        return this.settings.init;
-      } else {
-        return this[method].call(this, options);
-      }
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
     },
 
-    events : function () {
-      var self = this;
+    events : function (scope) {
+      var self = this,
+          S = self.S;
 
-      $(this.scope)
-        .off('.fndtn.reveal')
-        .on('click.fndtn.reveal', '[data-reveal-id]', function (e) {
+      S(this.scope)
+        .off('.reveal')
+        .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
           e.preventDefault();
 
           if (!self.locked) {
-            var element = $(this),
-                ajax = element.data('reveal-ajax');
+            var element = S(this),
+                ajax = element.data(self.data_attr('reveal-ajax')),
+                replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
 
             self.locked = true;
 
@@ -72,232 +64,407 @@
               self.open.call(self, element);
             } else {
               var url = ajax === true ? element.attr('href') : ajax;
-
-              self.open.call(self, element, {url: url});
+              self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
             }
           }
-        })
-        .on('click.fndtn.reveal touchend.click.fndtn.reveal', this.close_targets(), function (e) {
+        });
+
+      S(document)
+        .on('click.fndtn.reveal', this.close_targets(), function (e) {
           e.preventDefault();
           if (!self.locked) {
-            var settings = $.extend({}, self.settings, self.data_options($('.reveal-modal.open')));
-            if ($(e.target)[0] === $('.' + settings.bgClass)[0] && !settings.closeOnBackgroundClick) {
-              return;
+            var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
+                bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
+
+            if (bg_clicked) {
+              if (settings.close_on_background_click) {
+                e.stopPropagation();
+              } else {
+                return;
+              }
             }
 
             self.locked = true;
-            self.close.call(self, $(this).closest('.reveal-modal'));
+            self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
           }
-        })
-        .on('open.fndtn.reveal', '.reveal-modal', this.settings.open)
-        .on('opened.fndtn.reveal', '.reveal-modal', this.settings.opened)
-        .on('opened.fndtn.reveal', '.reveal-modal', this.open_video)
-        .on('close.fndtn.reveal', '.reveal-modal', this.settings.close)
-        .on('closed.fndtn.reveal', '.reveal-modal', this.settings.closed)
-        .on('closed.fndtn.reveal', '.reveal-modal', this.close_video);
-
-      $( 'body' ).bind( 'keyup.reveal', function ( event ) {
-        var open_modal = $('.reveal-modal.open'),
-            settings = $.extend({}, self.settings, self.data_options(open_modal));
-        if ( event.which === 27  && settings.closeOnEsc) { // 27 is the keycode for the Escape key
-          open_modal.foundation('reveal', 'close');
+        });
+
+      if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
+        S(this.scope)
+          // .off('.reveal')
+          .on('open.fndtn.reveal', this.settings.open)
+          .on('opened.fndtn.reveal', this.settings.opened)
+          .on('opened.fndtn.reveal', this.open_video)
+          .on('close.fndtn.reveal', this.settings.close)
+          .on('closed.fndtn.reveal', this.settings.closed)
+          .on('closed.fndtn.reveal', this.close_video);
+      } else {
+        S(this.scope)
+          // .off('.reveal')
+          .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
+          .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
+          .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
+          .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
+          .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
+          .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
+      }
+
+      return true;
+    },
+
+    // PATCH #3: turning on key up capture only when a reveal window is open
+    key_up_on : function (scope) {
+      var self = this;
+
+      // PATCH #1: fixing multiple keyup event trigger from single key press
+      self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
+        var open_modal = self.S('[' + self.attr_name() + '].open'),
+            settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
+        // PATCH #2: making sure that the close event can be called only while unlocked,
+        //           so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
+        if ( settings && event.which === 27  && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
+          self.close.call(self, open_modal);
         }
       });
 
       return true;
     },
 
+    // PATCH #3: turning on key up capture only when a reveal window is open
+    key_up_off : function (scope) {
+      this.S('body').off('keyup.fndtn.reveal');
+      return true;
+    },
+
     open : function (target, ajax_settings) {
+      var self = this,
+          modal;
+
       if (target) {
         if (typeof target.selector !== 'undefined') {
-          var modal = $('#' + target.data('reveal-id'));
+          // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
+          modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
         } else {
-          var modal = $(this.scope);
+          modal = self.S(this.scope);
 
           ajax_settings = target;
         }
       } else {
-        var modal = $(this.scope);
+        modal = self.S(this.scope);
+      }
+
+      var settings = modal.data(self.attr_name(true) + '-init');
+      settings = settings || this.settings;
+
+
+      if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
+        return self.close(modal);
       }
 
       if (!modal.hasClass('open')) {
-        var open_modal = $('.reveal-modal.open');
+        var open_modal = self.S('[' + self.attr_name() + '].open');
 
         if (typeof modal.data('css-top') === 'undefined') {
           modal.data('css-top', parseInt(modal.css('top'), 10))
             .data('offset', this.cache_offset(modal));
         }
 
-        modal.trigger('open');
+        modal.attr('tabindex','0').attr('aria-hidden','false');
+
+        this.key_up_on(modal);    // PATCH #3: turning on key up capture only when a reveal window is open
+
+        // Prevent namespace event from triggering twice
+        modal.on('open.fndtn.reveal', function(e) {
+          if (e.namespace !== 'fndtn.reveal') return;
+        });
+
+        modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
 
         if (open_modal.length < 1) {
-          this.toggle_bg(modal);
+          this.toggle_bg(modal, true);
         }
 
+        if (typeof ajax_settings === 'string') {
+          ajax_settings = {
+            url : ajax_settings
+          };
+        }
+
+        var openModal = function() {
+          if(open_modal.length > 0) {
+            if(settings.multiple_opened) {
+              self.to_back(open_modal);
+            } else {
+              self.hide(open_modal, settings.css.close);
+            }
+          }
+
+          // bl: add the open_modal that isn't already in the background to the openModals array
+          if(settings.multiple_opened) {
+            openModals.push(modal);
+          }
+
+          self.show(modal, settings.css.open);
+        };
+
         if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
-          this.hide(open_modal, this.settings.css.close);
-          this.show(modal, this.settings.css.open);
+          openModal();
         } else {
-          var self = this,
-              old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
-
+          var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
           $.extend(ajax_settings, {
-            success: function (data, textStatus, jqXHR) {
+            success : function (data, textStatus, jqXHR) {
               if ( $.isFunction(old_success) ) {
-                old_success(data, textStatus, jqXHR);
+                var result = old_success(data, textStatus, jqXHR);
+                if (typeof result == 'string') {
+                  data = result;
+                }
               }
 
-              modal.html(data);
-              $(modal).foundation('section', 'reflow');
+              if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
+                modal.find(options.replaceContentSel).html(data);
+              } else {
+                modal.html(data);
+              }
+
+              self.S(modal).foundation('section', 'reflow');
+              self.S(modal).children().foundation();
 
-              self.hide(open_modal, self.settings.css.close);
-              self.show(modal, self.settings.css.open);
+              openModal();
             }
           });
 
+          // check for if user initalized with error callback
+          if (settings.on_ajax_error !== $.noop) {
+            $.extend(ajax_settings, {
+              error : settings.on_ajax_error
+            });
+          }
+
           $.ajax(ajax_settings);
         }
       }
+      self.S(window).trigger('resize');
     },
 
     close : function (modal) {
-
-      var modal = modal && modal.length ? modal : $(this.scope),
-          open_modals = $('.reveal-modal.open');
+      var modal = modal && modal.length ? modal : this.S(this.scope),
+          open_modals = this.S('[' + this.attr_name() + '].open'),
+          settings = modal.data(this.attr_name(true) + '-init') || this.settings,
+          self = this;
 
       if (open_modals.length > 0) {
+
+        modal.removeAttr('tabindex','0').attr('aria-hidden','true');
+
         this.locked = true;
-        modal.trigger('close');
-        this.toggle_bg(modal);
-        this.hide(open_modals, this.settings.css.close);
+        this.key_up_off(modal);   // PATCH #3: turning on key up capture only when a reveal window is open
+
+        modal.trigger('close.fndtn.reveal');
+
+        if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
+          self.toggle_bg(modal, false);
+          self.to_front(modal);
+        }
+
+        if (settings.multiple_opened) {
+          var isCurrent = modal.is(':not(.toback)');
+          self.hide(modal, settings.css.close, settings);
+          if(isCurrent) {
+            // remove the last modal since it is now closed
+            openModals.pop();
+          } else {
+            // if this isn't the current modal, then find it in the array and remove it
+            openModals = $.grep(openModals, function(elt) {
+              var isThis = elt[0]===modal[0];
+              if(isThis) {
+                // since it's not currently in the front, put it in the front now that it is hidden
+                // so that if it's re-opened, it won't be .toback
+                self.to_front(modal);
+              }
+              return !isThis;
+            });
+          }
+          // finally, show the next modal in the stack, if there is one
+          if(openModals.length>0) {
+            self.to_front(openModals[openModals.length - 1]);
+          }
+        } else {
+          self.hide(open_modals, settings.css.close, settings);
+        }
       }
     },
 
     close_targets : function () {
-      var base = '.' + this.settings.dismissModalClass;
+      var base = '.' + this.settings.dismiss_modal_class;
 
-      if (this.settings.closeOnBackgroundClick) {
-        return base + ', .' + this.settings.bgClass;
+      if (this.settings.close_on_background_click) {
+        return base + ', .' + this.settings.bg_class;
       }
 
       return base;
     },
 
-    toggle_bg : function (modal) {
-      if ($('.reveal-modal-bg').length === 0) {
-        this.settings.bg = $('<div />', {'class': this.settings.bgClass})
-          .appendTo('body');
+    toggle_bg : function (modal, state) {
+      if (this.S('.' + this.settings.bg_class).length === 0) {
+        this.settings.bg = $('<div />', {'class': this.settings.bg_class})
+          .appendTo('body').hide();
       }
 
-      if (this.settings.bg.filter(':visible').length > 0) {
-        this.hide(this.settings.bg);
-      } else {
-        this.show(this.settings.bg);
+      var visible = this.settings.bg.filter(':visible').length > 0;
+      if ( state != visible ) {
+        if ( state == undefined ? visible : !state ) {
+          this.hide(this.settings.bg);
+        } else {
+          this.show(this.settings.bg);
+        }
       }
     },
 
     show : function (el, css) {
       // is modal
       if (css) {
-        if (/pop/i.test(this.settings.animation)) {
+        var settings = el.data(this.attr_name(true) + '-init') || this.settings,
+            root_element = settings.root_element,
+            context = this;
+
+        if (el.parent(root_element).length === 0) {
+          var placeholder = el.wrap('<div style="display: none;" />').parent();
+
+          el.on('closed.fndtn.reveal.wrapped', function () {
+            el.detach().appendTo(placeholder);
+            el.unwrap().unbind('closed.fndtn.reveal.wrapped');
+          });
+
+          el.detach().appendTo(root_element);
+        }
+
+        var animData = getAnimationData(settings.animation);
+        if (!animData.animate) {
+          this.locked = false;
+        }
+        if (animData.pop) {
           css.top = $(window).scrollTop() - el.data('offset') + 'px';
           var end_css = {
             top: $(window).scrollTop() + el.data('css-top') + 'px',
             opacity: 1
           };
 
-          return this.delay(function () {
+          return setTimeout(function () {
             return el
               .css(css)
-              .animate(end_css, this.settings.animationSpeed, 'linear', function () {
-                this.locked = false;
-                el.trigger('opened');
-              }.bind(this))
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
               .addClass('open');
-          }.bind(this), this.settings.animationSpeed / 2);
+          }, settings.animation_speed / 2);
         }
 
-        if (/fade/i.test(this.settings.animation)) {
+        css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+
+        if (animData.fade) {
           var end_css = {opacity: 1};
 
-          return this.delay(function () {
+          return setTimeout(function () {
             return el
               .css(css)
-              .animate(end_css, this.settings.animationSpeed, 'linear', function () {
-                this.locked = false;
-                el.trigger('opened');
-              }.bind(this))
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
               .addClass('open');
-          }.bind(this), this.settings.animationSpeed / 2);
+          }, settings.animation_speed / 2);
         }
 
-        return el.css(css).show().css({opacity: 1}).addClass('open').trigger('opened');
+        return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
       }
 
+      var settings = this.settings;
+
       // should we animate the background?
-      if (/fade/i.test(this.settings.animation)) {
-        return el.fadeIn(this.settings.animationSpeed / 2);
+      if (getAnimationData(settings.animation).fade) {
+        return el.fadeIn(settings.animation_speed / 2);
       }
 
+      this.locked = false;
+
       return el.show();
     },
 
+    to_back : function(el) {
+      el.addClass('toback');
+    },
+
+    to_front : function(el) {
+      el.removeClass('toback');
+    },
+
     hide : function (el, css) {
       // is modal
       if (css) {
-        if (/pop/i.test(this.settings.animation)) {
+        var settings = el.data(this.attr_name(true) + '-init'),
+            context = this;
+        settings = settings || this.settings;
+
+        var animData = getAnimationData(settings.animation);
+        if (!animData.animate) {
+          this.locked = false;
+        }
+        if (animData.pop) {
           var end_css = {
             top: - $(window).scrollTop() - el.data('offset') + 'px',
             opacity: 0
           };
 
-          return this.delay(function () {
+          return setTimeout(function () {
             return el
-              .animate(end_css, this.settings.animationSpeed, 'linear', function () {
-                this.locked = false;
-                el.css(css).trigger('closed');
-              }.bind(this))
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
               .removeClass('open');
-          }.bind(this), this.settings.animationSpeed / 2);
+          }, settings.animation_speed / 2);
         }
 
-        if (/fade/i.test(this.settings.animation)) {
-          var end_css = {opacity: 0};
+        if (animData.fade) {
+          var end_css = {opacity : 0};
 
-          return this.delay(function () {
+          return setTimeout(function () {
             return el
-              .animate(end_css, this.settings.animationSpeed, 'linear', function () {
-                this.locked = false;
-                el.css(css).trigger('closed');
-              }.bind(this))
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
               .removeClass('open');
-          }.bind(this), this.settings.animationSpeed / 2);
+          }, settings.animation_speed / 2);
         }
 
-        return el.hide().css(css).removeClass('open').trigger('closed');
+        return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
       }
 
+      var settings = this.settings;
+
       // should we animate the background?
-      if (/fade/i.test(this.settings.animation)) {
-        return el.fadeOut(this.settings.animationSpeed / 2);
+      if (getAnimationData(settings.animation).fade) {
+        return el.fadeOut(settings.animation_speed / 2);
       }
 
       return el.hide();
     },
 
     close_video : function (e) {
-      var video = $(this).find('.flex-video'),
-          iframe = video.find('iframe');
+      var video = $('.flex-video', e.target),
+          iframe = $('iframe', video);
 
       if (iframe.length > 0) {
         iframe.attr('data-src', iframe[0].src);
-        iframe.attr('src', 'about:blank');
+        iframe.attr('src', iframe.attr('src'));
         video.hide();
       }
     },
 
     open_video : function (e) {
-      var video = $(this).find('.flex-video'),
+      var video = $('.flex-video', e.target),
           iframe = video.find('iframe');
 
       if (iframe.length > 0) {
@@ -313,8 +480,16 @@
       }
     },
 
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
     cache_offset : function (modal) {
-      var offset = modal.show().height() + parseInt(modal.css('top'), 10);
+      var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
 
       modal.hide();
 
@@ -327,4 +502,21 @@
 
     reflow : function () {}
   };
-}(Foundation.zj, this, this.document));
+
+  /*
+   * getAnimationData('popAndFade') // {animate: true,  pop: true,  fade: true}
+   * getAnimationData('fade')       // {animate: true,  pop: false, fade: true}
+   * getAnimationData('pop')        // {animate: true,  pop: true,  fade: false}
+   * getAnimationData('foo')        // {animate: false, pop: false, fade: false}
+   * getAnimationData(null)         // {animate: false, pop: false, fade: false}
+   */
+  function getAnimationData(str) {
+    var fade = /fade/i.test(str);
+    var pop = /pop/i.test(str);
+    return {
+      animate : fade || pop,
+      pop : pop,
+      fade : fade
+    };
+  }
+}(jQuery, window, window.document));

+ 296 - 0
assets/scripts/foundation/foundation.slider.js

@@ -0,0 +1,296 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.slider = {
+    name : 'slider',
+
+    version : '5.5.3',
+
+    settings : {
+      start : 0,
+      end : 100,
+      step : 1,
+      precision : 2,
+      initial : null,
+      display_selector : '',
+      vertical : false,
+      trigger_input_change : false,
+      on_change : function () {}
+    },
+
+    cache : {},
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    events : function () {
+      var self = this;
+      $(this.scope)
+        .off('.slider')
+        .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
+        '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
+          if (!self.cache.active) {
+            e.preventDefault();
+            self.set_active_slider($(e.target));
+          }
+        })
+        .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
+          if (!!self.cache.active) {
+            e.preventDefault();
+            if ($.data(self.cache.active[0], 'settings').vertical) {
+              var scroll_offset = 0;
+              if (!e.pageY) {
+                scroll_offset = window.scrollY;
+              }
+              self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+            } else {
+              self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+            }
+          }
+        })
+        .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+          if(!self.cache.active) {
+            // if the user has just clicked into the slider without starting to drag the handle
+            var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
+
+            if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
+              self.set_active_slider(slider);
+              if ($.data(self.cache.active[0], 'settings').vertical) {
+                var scroll_offset = 0;
+                if (!e.pageY) {
+                  scroll_offset = window.scrollY;
+                }
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+              } else {
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+              }
+            }
+          }
+          self.remove_active_slider();
+        })
+        .on('change.fndtn.slider', function (e) {
+          self.settings.on_change();
+        });
+
+      self.S(window)
+        .on('resize.fndtn.slider', self.throttle(function (e) {
+          self.reflow();
+        }, 300));
+
+      // update slider value as users change input value
+      this.S('[' + this.attr_name() + ']').each(function () {
+        var slider = $(this),
+            handle = slider.children('.range-slider-handle')[0],
+            settings = self.initialize_settings(handle);
+
+        if (settings.display_selector != '') {
+          $(settings.display_selector).each(function(){
+            if ($(this).attr('value')) {
+              $(this).off('change').on('change', function () {
+                slider.foundation("slider", "set_value", $(this).val());
+              });
+            }
+          });
+        }
+      });
+    },
+
+    get_cursor_position : function (e, xy) {
+      var pageXY = 'page' + xy.toUpperCase(),
+          clientXY = 'client' + xy.toUpperCase(),
+          position;
+
+      if (typeof e[pageXY] !== 'undefined') {
+        position = e[pageXY];
+      } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
+        position = e.originalEvent[clientXY];
+      } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
+        position = e.originalEvent.touches[0][clientXY];
+      } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
+        position = e.currentPoint[xy];
+      }
+
+      return position;
+    },
+
+    set_active_slider : function ($handle) {
+      this.cache.active = $handle;
+    },
+
+    remove_active_slider : function () {
+      this.cache.active = null;
+    },
+
+    calculate_position : function ($handle, cursor_x) {
+      var self = this,
+          settings = $.data($handle[0], 'settings'),
+          handle_l = $.data($handle[0], 'handle_l'),
+          handle_o = $.data($handle[0], 'handle_o'),
+          bar_l = $.data($handle[0], 'bar_l'),
+          bar_o = $.data($handle[0], 'bar_o');
+
+      requestAnimationFrame(function () {
+        var pct;
+
+        if (Foundation.rtl && !settings.vertical) {
+          pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
+        } else {
+          pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
+        }
+
+        pct = settings.vertical ? 1 - pct : pct;
+
+        var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
+
+        self.set_ui($handle, norm);
+      });
+    },
+
+    set_ui : function ($handle, value) {
+      var settings = $.data($handle[0], 'settings'),
+          handle_l = $.data($handle[0], 'handle_l'),
+          bar_l = $.data($handle[0], 'bar_l'),
+          norm_pct = this.normalized_percentage(value, settings.start, settings.end),
+          handle_offset = norm_pct * (bar_l - handle_l) - 1,
+          progress_bar_length = norm_pct * 100,
+          $handle_parent = $handle.parent(),
+          $hidden_inputs = $handle.parent().children('input[type=hidden]');
+
+      if (Foundation.rtl && !settings.vertical) {
+        handle_offset = -handle_offset;
+      }
+
+      handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
+      this.set_translate($handle, handle_offset, settings.vertical);
+
+      if (settings.vertical) {
+        $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
+      } else {
+        $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
+      }
+
+      $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
+
+      $hidden_inputs.val(value);
+      if (settings.trigger_input_change) {
+          $hidden_inputs.trigger('change.fndtn.slider');
+      }
+
+      if (!$handle[0].hasAttribute('aria-valuemin')) {
+        $handle.attr({
+          'aria-valuemin' : settings.start,
+          'aria-valuemax' : settings.end
+        });
+      }
+      $handle.attr('aria-valuenow', value);
+
+      if (settings.display_selector != '') {
+        $(settings.display_selector).each(function () {
+          if (this.hasAttribute('value')) {
+            $(this).val(value);
+          } else {
+            $(this).text(value);
+          }
+        });
+      }
+
+    },
+
+    normalized_percentage : function (val, start, end) {
+      return Math.min(1, (val - start) / (end - start));
+    },
+
+    normalized_value : function (val, start, end, step, precision) {
+      var range = end - start,
+          point = val * range,
+          mod = (point - (point % step)) / step,
+          rem = point % step,
+          round = ( rem >= step * 0.5 ? step : 0);
+      return ((mod * step + round) + start).toFixed(precision);
+    },
+
+    set_translate : function (ele, offset, vertical) {
+      if (vertical) {
+        $(ele)
+          .css('-webkit-transform', 'translateY(' + offset + 'px)')
+          .css('-moz-transform', 'translateY(' + offset + 'px)')
+          .css('-ms-transform', 'translateY(' + offset + 'px)')
+          .css('-o-transform', 'translateY(' + offset + 'px)')
+          .css('transform', 'translateY(' + offset + 'px)');
+      } else {
+        $(ele)
+          .css('-webkit-transform', 'translateX(' + offset + 'px)')
+          .css('-moz-transform', 'translateX(' + offset + 'px)')
+          .css('-ms-transform', 'translateX(' + offset + 'px)')
+          .css('-o-transform', 'translateX(' + offset + 'px)')
+          .css('transform', 'translateX(' + offset + 'px)');
+      }
+    },
+
+    limit_to : function (val, min, max) {
+      return Math.min(Math.max(val, min), max);
+    },
+
+    initialize_settings : function (handle) {
+      var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
+          decimal_places_match_result;
+
+      if (settings.precision === null) {
+        decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
+        settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
+      }
+
+      if (settings.vertical) {
+        $.data(handle, 'bar_o', $(handle).parent().offset().top);
+        $.data(handle, 'bar_l', $(handle).parent().outerHeight());
+        $.data(handle, 'handle_o', $(handle).offset().top);
+        $.data(handle, 'handle_l', $(handle).outerHeight());
+      } else {
+        $.data(handle, 'bar_o', $(handle).parent().offset().left);
+        $.data(handle, 'bar_l', $(handle).parent().outerWidth());
+        $.data(handle, 'handle_o', $(handle).offset().left);
+        $.data(handle, 'handle_l', $(handle).outerWidth());
+      }
+
+      $.data(handle, 'bar', $(handle).parent());
+      return $.data(handle, 'settings', settings);
+    },
+
+    set_initial_position : function ($ele) {
+      var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
+          initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
+          $handle = $ele.children('.range-slider-handle');
+      this.set_ui($handle, initial);
+    },
+
+    set_value : function (value) {
+      var self = this;
+      $('[' + self.attr_name() + ']', this.scope).each(function () {
+        $(this).attr(self.attr_name(), value);
+      });
+      if (!!$(this.scope).attr(self.attr_name())) {
+        $(this.scope).attr(self.attr_name(), value);
+      }
+      self.reflow();
+    },
+
+    reflow : function () {
+      var self = this;
+      self.S('[' + this.attr_name() + ']').each(function () {
+        var handle = $(this).children('.range-slider-handle')[0],
+            val = $(this).attr(self.attr_name());
+        self.initialize_settings(handle);
+
+        if (val) {
+          self.set_ui($(handle), parseFloat(val));
+        } else {
+          self.set_initial_position($(this));
+        }
+      });
+    }
+  };
+
+}(jQuery, window, window.document));

+ 247 - 0
assets/scripts/foundation/foundation.tab.js

@@ -0,0 +1,247 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.tab = {
+    name : 'tab',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'active',
+      callback : function () {},
+      deep_linking : false,
+      scroll_to_content : true,
+      is_hover : false
+    },
+
+    default_tab_hashes : [],
+
+    init : function (scope, method, options) {
+      var self = this,
+          S = this.S;
+
+  	  // Store the default active tabs which will be referenced when the
+  	  // location hash is absent, as in the case of navigating the tabs and
+  	  // returning to the first viewing via the browser Back button.
+  	  S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
+  	    self.default_tab_hashes.push(this.hash);
+  	  });
+
+      this.bindings(method, options);
+      this.handle_location_hash_change();
+    },
+
+    events : function () {
+      var self = this,
+          S = this.S;
+
+      var usual_tab_behavior =  function (e, target) {
+        var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+        if (!settings.is_hover || Modernizr.touch) {
+          // if user did not pressed tab key, prevent default action
+          var keyCode = e.keyCode || e.which;
+          if (keyCode !== 9) { 
+            e.preventDefault();
+            e.stopPropagation();
+          }
+          self.toggle_active_tab(S(target).parent());
+          
+        }
+      };
+
+      S(this.scope)
+        .off('.tab')
+        // Key event: focus/tab key
+        .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var keyCode = e.keyCode || e.which;
+          // if user pressed tab key
+          if (keyCode === 13 || keyCode === 32) { // enter or space
+            var el = this;
+            usual_tab_behavior(e, el);
+          } 
+        })
+        // Click event: tab title
+        .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var el = this;
+          usual_tab_behavior(e, el);
+        })
+        // Hover event: tab title
+        .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
+          var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+          if (settings.is_hover) {
+            self.toggle_active_tab(S(this).parent());
+          }
+        });
+
+      // Location hash change event
+      S(window).on('hashchange.fndtn.tab', function (e) {
+        e.preventDefault();
+        self.handle_location_hash_change();
+      });
+    },
+
+    handle_location_hash_change : function () {
+
+      var self = this,
+          S = this.S;
+
+      S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var settings = S(this).data(self.attr_name(true) + '-init');
+        if (settings.deep_linking) {
+          // Match the location hash to a label
+          var hash;
+          if (settings.scroll_to_content) {
+            hash = self.scope.location.hash;
+          } else {
+            // prefix the hash to prevent anchor scrolling
+            hash = self.scope.location.hash.replace('fndtn-', '');
+          }
+          if (hash != '') {
+            // Check whether the location hash references a tab content div or
+            // another element on the page (inside or outside the tab content div)
+            var hash_element = S(hash);
+            if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
+              // Tab content div
+              self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
+            } else {
+              // Not the tab content div. If inside the tab content, find the
+              // containing tab and toggle it as active.
+              var hash_tab_container_id = hash_element.closest('.content').attr('id');
+              if (hash_tab_container_id != undefined) {
+                self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
+              }
+            }
+          } else {
+            // Reference the default tab hashes which were initialized in the init function
+            for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
+              self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
+            }
+          }
+        }
+       });
+     },
+
+    toggle_active_tab : function (tab, location_hash) {
+      var self = this,
+          S = self.S,
+          tabs = tab.closest('[' + this.attr_name() + ']'),
+          tab_link = tab.find('a'),
+          anchor = tab.children('a').first(),
+          target_hash = '#' + anchor.attr('href').split('#')[1],
+          target = S(target_hash),
+          siblings = tab.siblings(),
+          settings = tabs.data(this.attr_name(true) + '-init'),
+          interpret_keyup_action = function (e) {
+            // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
+
+            // define current, previous and next (possible) tabs
+
+            var $original = $(this);
+            var $prev = $(this).parents('li').prev().children('[role="tab"]');
+            var $next = $(this).parents('li').next().children('[role="tab"]');
+            var $target;
+
+            // find the direction (prev or next)
+
+            switch (e.keyCode) {
+              case 37:
+                $target = $prev;
+                break;
+              case 39:
+                $target = $next;
+                break;
+              default:
+                $target = false
+                  break;
+            }
+
+            if ($target.length) {
+              $original.attr({
+                'tabindex' : '-1',
+                'aria-selected' : null
+              });
+              $target.attr({
+                'tabindex' : '0',
+                'aria-selected' : true
+              }).focus();
+            }
+
+            // Hide panels
+
+            $('[role="tabpanel"]')
+              .attr('aria-hidden', 'true');
+
+            // Show panel which corresponds to target
+
+            $('#' + $(document.activeElement).attr('href').substring(1))
+              .attr('aria-hidden', null);
+
+          },
+          go_to_hash = function(hash) {
+            // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
+            // the user would get continually redirected to the default hash.
+            var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
+
+            if (hash !== default_hash || window.location.hash) {
+              window.location.hash = hash;
+            }
+          };
+
+      // allow usage of data-tab-content attribute instead of href
+      if (anchor.data('tab-content')) {
+        target_hash = '#' + anchor.data('tab-content').split('#')[1];
+        target = S(target_hash);
+      }
+
+      if (settings.deep_linking) {
+
+        if (settings.scroll_to_content) {
+
+          // retain current hash to scroll to content
+          go_to_hash(location_hash || target_hash);
+
+          if (location_hash == undefined || location_hash == target_hash) {
+            tab.parent()[0].scrollIntoView();
+          } else {
+            S(target_hash)[0].scrollIntoView();
+          }
+        } else {
+          // prefix the hashes so that the browser doesn't scroll down
+          if (location_hash != undefined) {
+            go_to_hash('fndtn-' + location_hash.replace('#', ''));
+          } else {
+            go_to_hash('fndtn-' + target_hash.replace('#', ''));
+          }
+        }
+      }
+
+      // WARNING: The activation and deactivation of the tab content must
+      // occur after the deep linking in order to properly refresh the browser
+      // window (notably in Chrome).
+      // Clean up multiple attr instances to done once
+      tab.addClass(settings.active_class).triggerHandler('opened');
+      tab_link.attr({'aria-selected' : 'true',  tabindex : 0});
+      siblings.removeClass(settings.active_class)
+      siblings.find('a').attr({'aria-selected' : 'false'/*,  tabindex : -1*/});
+      target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*,  tabindex : -1*/});
+      target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
+      settings.callback(tab);
+      target.triggerHandler('toggled', [target]);
+      tabs.triggerHandler('toggled', [tab]);
+
+      tab_link.off('keydown').on('keydown', interpret_keyup_action );
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    off : function () {},
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));

+ 348 - 0
assets/scripts/foundation/foundation.tooltip.js

@@ -0,0 +1,348 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.tooltip = {
+    name : 'tooltip',
+
+    version : '5.5.3',
+
+    settings : {
+      additional_inheritable_classes : [],
+      tooltip_class : '.tooltip',
+      append_to : 'body',
+      touch_close_text : 'Tap To Close',
+      disable_for_touch : false,
+      hover_delay : 200,
+      fade_in_duration : 150,
+      fade_out_duration : 150,
+      show_on : 'all',
+      tip_template : function (selector, content) {
+        return '<span data-selector="' + selector + '" id="' + selector + '" class="'
+          + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
+          + '" role="tooltip">' + content + '<span class="nub"></span></span>';
+      }
+    },
+
+    cache : {},
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'random_str');
+      this.bindings(method, options);
+    },
+
+    should_show : function (target, tip) {
+      var settings = $.extend({}, this.settings, this.data_options(target));
+
+      if (settings.show_on === 'all') {
+        return true;
+      } else if (this.small() && settings.show_on === 'small') {
+        return true;
+      } else if (this.medium() && settings.show_on === 'medium') {
+        return true;
+      } else if (this.large() && settings.show_on === 'large') {
+        return true;
+      }
+      return false;
+    },
+
+    medium : function () {
+      return matchMedia(Foundation.media_queries['medium']).matches;
+    },
+
+    large : function () {
+      return matchMedia(Foundation.media_queries['large']).matches;
+    },
+
+    events : function (instance) {
+      var self = this,
+          S = self.S;
+
+      self.create(this.S(instance));
+
+      function _startShow(elt, $this, immediate) {
+        if (elt.timer) {
+          return;
+        }
+
+        if (immediate) {
+          elt.timer = null;
+          self.showTip($this);
+        } else {
+          elt.timer = setTimeout(function () {
+            elt.timer = null;
+            self.showTip($this);
+          }.bind(elt), self.settings.hover_delay);
+        }
+      }
+
+      function _startHide(elt, $this) {
+        if (elt.timer) {
+          clearTimeout(elt.timer);
+          elt.timer = null;
+        }
+
+        self.hide($this);
+      }
+
+      $(this.scope)
+        .off('.tooltip')
+        .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
+          '[' + this.attr_name() + ']', function (e) {
+          var $this = S(this),
+              settings = $.extend({}, self.settings, self.data_options($this)),
+              is_touch = false;
+
+          if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
+            return false;
+          }
+
+          if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+            return false;
+          }
+          
+          if ($this.hasClass('open')) {
+            if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              e.preventDefault();
+            }
+            self.hide($this);
+          } else {
+            if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              return;
+            } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              e.preventDefault();
+              S(settings.tooltip_class + '.open').hide();
+              is_touch = true;
+              // close other open tooltips on touch
+              if ($('.open[' + self.attr_name() + ']').length > 0) {
+               var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
+               self.hide(prevOpen);
+              }
+            }
+
+            if (/enter|over/i.test(e.type)) {
+              _startShow(this, $this);
+
+            } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
+              _startHide(this, $this);
+            } else {
+              _startShow(this, $this, true);
+            }
+          }
+        })
+        .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
+          if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+            return false;
+          }
+
+          if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
+            return;
+          } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
+            self.convert_to_touch($(this));
+          } else {
+            _startHide(this, $(this));
+          }
+        })
+        .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
+          _startHide(this, S(this));
+        });
+    },
+
+    ie_touch : function (e) {
+      // How do I distinguish between IE11 and Windows Phone 8?????
+      return false;
+    },
+
+    showTip : function ($target) {
+      var $tip = this.getTip($target);
+      if (this.should_show($target, $tip)) {
+        return this.show($target);
+      }
+      return;
+    },
+
+    getTip : function ($target) {
+      var selector = this.selector($target),
+          settings = $.extend({}, this.settings, this.data_options($target)),
+          tip = null;
+
+      if (selector) {
+        tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
+      }
+
+      return (typeof tip === 'object') ? tip : false;
+    },
+
+    selector : function ($target) {
+      var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
+
+      if (typeof dataSelector != 'string') {
+        dataSelector = this.random_str(6);
+        $target
+          .attr('data-selector', dataSelector)
+          .attr('aria-describedby', dataSelector);
+      }
+
+      return dataSelector;
+    },
+
+    create : function ($target) {
+      var self = this,
+          settings = $.extend({}, this.settings, this.data_options($target)),
+          tip_template = this.settings.tip_template;
+
+      if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
+        tip_template = window[settings.tip_template];
+      }
+
+      var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
+          classes = this.inheritable_classes($target);
+
+      $tip.addClass(classes).appendTo(settings.append_to);
+
+      if (Modernizr.touch) {
+        $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+        $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) {
+          self.hide($target);
+        });
+      }
+
+      $target.removeAttr('title').attr('title', '');
+    },
+
+    reposition : function (target, tip, classes) {
+      var width, nub, nubHeight, nubWidth, objPos;
+
+      tip.css('visibility', 'hidden').show();
+
+      width = target.data('width');
+      nub = tip.children('.nub');
+      nubHeight = nub.outerHeight();
+      nubWidth = nub.outerWidth();
+
+      if (this.small()) {
+        tip.css({'width' : '100%'});
+      } else {
+        tip.css({'width' : (width) ? width : 'auto'});
+      }
+
+      objPos = function (obj, top, right, bottom, left, width) {
+        return obj.css({
+          'top' : (top) ? top : 'auto',
+          'bottom' : (bottom) ? bottom : 'auto',
+          'left' : (left) ? left : 'auto',
+          'right' : (right) ? right : 'auto'
+        }).end();
+      };
+      
+      var o_top = target.offset().top;
+      var o_left = target.offset().left;
+      var outerHeight = target.outerHeight();
+
+      objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+
+      if (this.small()) {
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
+        tip.addClass('tip-override');
+        objPos(nub, -nubHeight, 'auto', 'auto', o_left);
+      } else {
+        
+        if (Foundation.rtl) {
+          nub.addClass('rtl');
+          o_left = o_left + target.outerWidth() - tip.outerWidth();
+        }
+
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+        // reset nub from small styles, if they've been applied
+        if (nub.attr('style')) {
+          nub.removeAttr('style');
+        }
+        
+        tip.removeClass('tip-override');
+        
+        var tip_outerHeight = tip.outerHeight();
+        
+        if (classes && classes.indexOf('tip-top') > -1) {
+          if (Foundation.rtl) {
+            nub.addClass('rtl');
+          }
+          objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
+            .removeClass('tip-override');
+        } else if (classes && classes.indexOf('tip-left') > -1) {
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
+            .removeClass('tip-override');
+          nub.removeClass('rtl');
+        } else if (classes && classes.indexOf('tip-right') > -1) {
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
+            .removeClass('tip-override');
+          nub.removeClass('rtl');
+        }
+      }
+
+      tip.css('visibility', 'visible').hide();
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    inheritable_classes : function ($target) {
+      var settings = $.extend({}, this.settings, this.data_options($target)),
+          inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
+          classes = $target.attr('class'),
+          filtered = classes ? $.map(classes.split(' '), function (el, i) {
+            if ($.inArray(el, inheritables) !== -1) {
+              return el;
+            }
+          }).join(' ') : '';
+
+      return $.trim(filtered);
+    },
+
+    convert_to_touch : function ($target) {
+      var self = this,
+          $tip = self.getTip($target),
+          settings = $.extend({}, self.settings, self.data_options($target));
+
+      if ($tip.find('.tap-to-close').length === 0) {
+        $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+        $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) {
+          self.hide($target);
+        });
+      }
+
+      $target.data('tooltip-open-event-type', 'touch');
+    },
+
+    show : function ($target) {
+      var $tip = this.getTip($target);
+      if ($target.data('tooltip-open-event-type') == 'touch') {
+        this.convert_to_touch($target);
+      }
+
+      this.reposition($target, $tip, $target.attr('class'));
+      $target.addClass('open');
+      $tip.fadeIn(this.settings.fade_in_duration);
+    },
+
+    hide : function ($target) {
+      var $tip = this.getTip($target);
+
+      $tip.fadeOut(this.settings.fade_out_duration, function () {
+        $tip.find('.tap-to-close').remove();
+        $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
+        $target.removeClass('open');
+      });
+    },
+
+    off : function () {
+      var self = this;
+      this.S(this.scope).off('.fndtn.tooltip');
+      this.S(this.settings.tooltip_class).each(function (i) {
+        $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
+      }).remove();
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));

+ 323 - 162
assets/scripts/foundation/foundation.topbar.js

@@ -1,155 +1,230 @@
-/*jslint unparam: true, browser: true, indent: 2 */
-
 ;(function ($, window, document, undefined) {
   'use strict';
 
   Foundation.libs.topbar = {
     name : 'topbar',
 
-    version : '4.2.0',
+    version : '5.5.3',
 
     settings : {
       index : 0,
-      stickyClass : 'sticky',
-      custom_back_text: true,
-      back_text: 'Back',
-      is_hover: true,
+      start_offset : 0,
+      sticky_class : 'sticky',
+      custom_back_text : true,
+      back_text : 'Back',
+      mobile_show_parent_link : true,
+      is_hover : true,
       scrolltop : true, // jump to top when sticky nav menu toggle is clicked
-      init : false
+      sticky_on : 'all',
+      dropdown_autoclose: true
     },
 
     init : function (section, method, options) {
-      Foundation.inherit(this, 'data_options');
+      Foundation.inherit(this, 'add_custom_rule register_media throttle');
       var self = this;
 
-      if (typeof method === 'object') {
-        $.extend(true, this.settings, method);
-      } else if (typeof options !== 'undefined') {
-        $.extend(true, this.settings, options);
-      }
+      self.register_media('topbar', 'foundation-mq-topbar');
+
+      this.bindings(method, options);
+
+      self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var topbar = $(this),
+            settings = topbar.data(self.attr_name(true) + '-init'),
+            section = self.S('section, .top-bar-section', this);
+        topbar.data('index', 0);
+        var topbarContainer = topbar.parent();
+        if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
+          self.settings.sticky_class = settings.sticky_class;
+          self.settings.sticky_topbar = topbar;
+          topbar.data('height', topbarContainer.outerHeight());
+          topbar.data('stickyoffset', topbarContainer.offset().top);
+        } else {
+          topbar.data('height', topbar.outerHeight());
+        }
 
-      if (typeof method != 'string') {
+        if (!settings.assembled) {
+          self.assemble(topbar);
+        }
 
-        $('.top-bar, [data-topbar]').each(function () {
-          $.extend(true, self.settings, self.data_options($(this)));
-          self.settings.$w = $(window);
-          self.settings.$topbar = $(this);
-          self.settings.$section = self.settings.$topbar.find('section');
-          self.settings.$titlebar = self.settings.$topbar.children('ul').first();
-          self.settings.$topbar.data('index', 0);
+        if (settings.is_hover) {
+          self.S('.has-dropdown', topbar).addClass('not-click');
+        } else {
+          self.S('.has-dropdown', topbar).removeClass('not-click');
+        }
 
-          var breakpoint = $("<div class='top-bar-js-breakpoint'/>").insertAfter(self.settings.$topbar);
-          self.settings.breakPoint = breakpoint.width();
-          breakpoint.remove();
+        // Pad body when sticky (scrolled) or fixed.
+        self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }');
 
-          self.assemble();
+        if (topbarContainer.hasClass('fixed')) {
+          self.S('body').addClass('f-topbar-fixed');
+        }
+      });
 
-          if (self.settings.$topbar.parent().hasClass('fixed')) {
-            $('body').css('padding-top', self.outerHeight(self.settings.$topbar));
-          }
-        });
+    },
 
-        if (!self.settings.init) {
-          this.events();
-        }
+    is_sticky : function (topbar, topbarContainer, settings) {
+      var sticky     = topbarContainer.hasClass(settings.sticky_class);
+      var smallMatch = matchMedia(Foundation.media_queries.small).matches;
+      var medMatch   = matchMedia(Foundation.media_queries.medium).matches;
+      var lrgMatch   = matchMedia(Foundation.media_queries.large).matches;
 
-        return this.settings.init;
-      } else {
-        // fire method
-        return this[method].call(this, options);
+      if (sticky && settings.sticky_on === 'all') {
+        return true;
+      }
+      if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
+        if (smallMatch && !medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
+        if (smallMatch && medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
+        if (smallMatch && medMatch && lrgMatch) { return true; }
       }
+
+       return false;
     },
 
-    events : function () {
-      var self = this;
-      var offst = this.outerHeight($('.top-bar, [data-topbar]'));
-      $(this.scope)
-        .off('.fndtn.topbar')
-        .on('click.fndtn.topbar', '.top-bar .toggle-topbar, [data-topbar] .toggle-topbar', function (e) {
-          var topbar = $(this).closest('.top-bar, [data-topbar]'),
-              section = topbar.find('section, .section'),
-              titlebar = topbar.children('ul').first();
+    toggle : function (toggleEl) {
+      var self = this,
+          topbar;
 
-          e.preventDefault();
+      if (toggleEl) {
+        topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
+      } else {
+        topbar = self.S('[' + this.attr_name() + ']');
+      }
 
-          if (self.breakpoint()) {
-            if (!self.rtl) {
-              section.css({left: '0%'});
-              section.find('>.name').css({left: '100%'});
-            } else {
-              section.css({right: '0%'});
-              section.find('>.name').css({right: '100%'});
-            }
+      var settings = topbar.data(this.attr_name(true) + '-init');
 
-            section.find('li.moved').removeClass('moved');
-            topbar.data('index', 0);
+      var section = self.S('section, .top-bar-section', topbar);
 
-            topbar
-              .toggleClass('expanded')
-              .css('min-height', '');
-          }
+      if (self.breakpoint()) {
+        if (!self.rtl) {
+          section.css({left : '0%'});
+          $('>.name', section).css({left : '100%'});
+        } else {
+          section.css({right : '0%'});
+          $('>.name', section).css({right : '100%'});
+        }
 
-          if (!topbar.hasClass('expanded')) {
-            if (topbar.hasClass('fixed')) {
-              topbar.parent().addClass('fixed');
-              topbar.removeClass('fixed');
-              $('body').css('padding-top',offst);
-            }
-          } else if (topbar.parent().hasClass('fixed')) {
+        self.S('li.moved', section).removeClass('moved');
+        topbar.data('index', 0);
+
+        topbar
+          .toggleClass('expanded')
+          .css('height', '');
+      }
+
+      if (settings.scrolltop) {
+        if (!topbar.hasClass('expanded')) {
+          if (topbar.hasClass('fixed')) {
+            topbar.parent().addClass('fixed');
+            topbar.removeClass('fixed');
+            self.S('body').addClass('f-topbar-fixed');
+          }
+        } else if (topbar.parent().hasClass('fixed')) {
+          if (settings.scrolltop) {
             topbar.parent().removeClass('fixed');
             topbar.addClass('fixed');
-            $('body').css('padding-top','0');
+            self.S('body').removeClass('f-topbar-fixed');
 
-            if (self.settings.scrolltop) {
-              window.scrollTo(0,0);
-            }
+            window.scrollTo(0, 0);
+          } else {
+            topbar.parent().removeClass('expanded');
           }
-        })
-
-        .on('mouseenter mouseleave', '.top-bar li', function (e) {
-          if (!self.settings.is_hover) return;
+        }
+      } else {
+        if (self.is_sticky(topbar, topbar.parent(), settings)) {
+          topbar.parent().addClass('fixed');
+        }
 
-          if (/enter|over/i.test(e.type)) {
-            $(this).addClass('hover');
+        if (topbar.parent().hasClass('fixed')) {
+          if (!topbar.hasClass('expanded')) {
+            topbar.removeClass('fixed');
+            topbar.parent().removeClass('expanded');
+            self.update_sticky_positioning();
           } else {
-            $(this).removeClass('hover');
+            topbar.addClass('fixed');
+            topbar.parent().addClass('expanded');
+            self.S('body').addClass('f-topbar-fixed');
           }
-        })
+        }
+      }
+    },
 
-        .on('click.fndtn.topbar', '.top-bar li.has-dropdown', function (e) {
-          if (self.breakpoint()) return;
+    timer : null,
 
-          var li = $(this),
-              target = $(e.target),
-              topbar = li.closest('[data-topbar], .top-bar'),
-              is_hover = topbar.data('topbar');
+    events : function (bar) {
+      var self = this,
+          S = this.S;
 
-          if (self.settings.is_hover && !Modernizr.touch) return;
+      S(this.scope)
+        .off('.topbar')
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) {
+          e.preventDefault();
+          self.toggle(this);
+        })
+        .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
+          var li = $(this).closest('li'),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (settings.dropdown_autoclose && settings.is_hover) {
+            var hoverLi = $(this).closest('.hover');
+            hoverLi.removeClass('hover');
+          }
+          if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
+            self.toggle();
+          }
 
-          e.stopImmediatePropagation();
+        })
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
+          var li = S(this),
+              target = S(e.target),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (target.data('revealId')) {
+            self.toggle();
+            return;
+          }
 
-          if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
-            e.preventDefault();
+          if (self.breakpoint()) {
+            return;
+          }
+
+          if (settings.is_hover && !Modernizr.touch) {
+            return;
           }
 
+          e.stopImmediatePropagation();
+
           if (li.hasClass('hover')) {
             li
               .removeClass('hover')
               .find('li')
               .removeClass('hover');
+
+            li.parents('li.hover')
+              .removeClass('hover');
           } else {
             li.addClass('hover');
+
+            $(li).siblings().removeClass('hover');
+
+            if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
+              e.preventDefault();
+            }
           }
         })
-
-        .on('click.fndtn.topbar', '.top-bar .has-dropdown>a, [data-topbar] .has-dropdown>a', function (e) {
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) {
           if (self.breakpoint()) {
+
             e.preventDefault();
 
-            var $this = $(this),
-                topbar = $this.closest('.top-bar, [data-topbar]'),
-                section = topbar.find('section, .section'),
-                titlebar = topbar.children('ul').first(),
+            var $this = S(this),
+                topbar = $this.closest('[' + self.attr_name() + ']'),
+                section = topbar.find('section, .top-bar-section'),
                 dropdownHeight = $this.next('.dropdown').outerHeight(),
                 $selectedLi = $this.closest('li');
 
@@ -157,141 +232,227 @@
             $selectedLi.addClass('moved');
 
             if (!self.rtl) {
-              section.css({left: -(100 * topbar.data('index')) + '%'});
-              section.find('>.name').css({left: 100 * topbar.data('index') + '%'});
+              section.css({left : -(100 * topbar.data('index')) + '%'});
+              section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
             } else {
-              section.css({right: -(100 * topbar.data('index')) + '%'});
-              section.find('>.name').css({right: 100 * topbar.data('index') + '%'});
+              section.css({right : -(100 * topbar.data('index')) + '%'});
+              section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
             }
 
-            topbar.css('min-height', self.height($this.siblings('ul')) + self.outerHeight(titlebar, true));
+            topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height'));
           }
         });
 
-      $(window).on('resize.fndtn.topbar', function () {
-        if (!self.breakpoint()) {
-          $('.top-bar, [data-topbar]')
-            .css('min-height', '')
-            .removeClass('expanded')
-            .find('li')
-            .removeClass('hover');
-        }
-      }.bind(this));
+      S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
+          self.resize.call(self);
+      }, 50)).trigger('resize.fndtn.topbar').load(function () {
+          // Ensure that the offset is calculated after all of the pages resources have loaded
+          S(this).trigger('resize.fndtn.topbar');
+      });
 
-      $('body').on('click.fndtn.topbar', function (e) {
-        var parent = $(e.target).closest('[data-topbar], .top-bar');
+      S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
+        var parent = S(e.target).closest('li').closest('li.hover');
 
         if (parent.length > 0) {
           return;
         }
 
-        $('.top-bar li, [data-topbar] li').removeClass('hover');
+        S('[' + self.attr_name() + '] li.hover').removeClass('hover');
       });
 
       // Go up a level on Click
-      $(this.scope).on('click.fndtn', '.top-bar .has-dropdown .back, [data-topbar] .has-dropdown .back', function (e) {
+      S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) {
         e.preventDefault();
 
-        var $this = $(this),
-            topbar = $this.closest('.top-bar, [data-topbar]'),
-            titlebar = topbar.children('ul').first(),
-            section = topbar.find('section, .section'),
+        var $this = S(this),
+            topbar = $this.closest('[' + self.attr_name() + ']'),
+            section = topbar.find('section, .top-bar-section'),
+            settings = topbar.data(self.attr_name(true) + '-init'),
             $movedLi = $this.closest('li.moved'),
             $previousLevelUl = $movedLi.parent();
 
         topbar.data('index', topbar.data('index') - 1);
 
         if (!self.rtl) {
-          section.css({left: -(100 * topbar.data('index')) + '%'});
-          section.find('>.name').css({left: 100 * topbar.data('index') + '%'});
+          section.css({left : -(100 * topbar.data('index')) + '%'});
+          section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
         } else {
-          section.css({right: -(100 * topbar.data('index')) + '%'});
-          section.find('>.name').css({right: 100 * topbar.data('index') + '%'});
+          section.css({right : -(100 * topbar.data('index')) + '%'});
+          section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
         }
 
         if (topbar.data('index') === 0) {
-          topbar.css('min-height', 0);
+          topbar.css('height', '');
         } else {
-          topbar.css('min-height', self.height($previousLevelUl) + self.outerHeight(titlebar, true));
+          topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height'));
         }
 
         setTimeout(function () {
           $movedLi.removeClass('moved');
         }, 300);
       });
+
+      // Show dropdown menus when their items are focused
+      S(this.scope).find('.dropdown a')
+        .focus(function () {
+          $(this).parents('.has-dropdown').addClass('hover');
+        })
+        .blur(function () {
+          $(this).parents('.has-dropdown').removeClass('hover');
+        });
+    },
+
+    resize : function () {
+      var self = this;
+      self.S('[' + this.attr_name() + ']').each(function () {
+        var topbar = self.S(this),
+            settings = topbar.data(self.attr_name(true) + '-init');
+
+        var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
+        var stickyOffset;
+
+        if (!self.breakpoint()) {
+          var doToggle = topbar.hasClass('expanded');
+          topbar
+            .css('height', '')
+            .removeClass('expanded')
+            .find('li')
+            .removeClass('hover');
+
+            if (doToggle) {
+              self.toggle(topbar);
+            }
+        }
+
+        if (self.is_sticky(topbar, stickyContainer, settings)) {
+          if (stickyContainer.hasClass('fixed')) {
+            // Remove the fixed to allow for correct calculation of the offset.
+            stickyContainer.removeClass('fixed');
+
+            stickyOffset = stickyContainer.offset().top;
+            if (self.S(document.body).hasClass('f-topbar-fixed')) {
+              stickyOffset -= topbar.data('height');
+            }
+
+            topbar.data('stickyoffset', stickyOffset);
+            stickyContainer.addClass('fixed');
+          } else {
+            stickyOffset = stickyContainer.offset().top;
+            topbar.data('stickyoffset', stickyOffset);
+          }
+        }
+
+      });
     },
 
     breakpoint : function () {
-      return $(window).width() <= this.settings.breakPoint || $('html').hasClass('lt-ie9');
+      return !matchMedia(Foundation.media_queries['topbar']).matches;
     },
 
-    assemble : function () {
-      var self = this;
+    small : function () {
+      return matchMedia(Foundation.media_queries['small']).matches;
+    },
+
+    medium : function () {
+      return matchMedia(Foundation.media_queries['medium']).matches;
+    },
+
+    large : function () {
+      return matchMedia(Foundation.media_queries['large']).matches;
+    },
+
+    assemble : function (topbar) {
+      var self = this,
+          settings = topbar.data(this.attr_name(true) + '-init'),
+          section = self.S('section, .top-bar-section', topbar);
+
       // Pull element out of the DOM for manipulation
-      this.settings.$section.detach();
+      section.detach();
 
-      this.settings.$section.find('.has-dropdown>a').each(function () {
-        var $link = $(this),
+      self.S('.has-dropdown>a', section).each(function () {
+        var $link = self.S(this),
             $dropdown = $link.siblings('.dropdown'),
-            url = $link.attr('href');
+            url = $link.attr('href'),
+            $titleLi;
 
-        if (url && url.length > 1) {
-          var $titleLi = $('<li class="title back js-generated"><h5><a href="#"></a></h5></li><li><a class="parent-link js-generated" href="' + url + '">' + $link.text() +'</a></li>');
-        } else {
-          var $titleLi = $('<li class="title back js-generated"><h5><a href="#"></a></h5></li>');
-        }
+        if (!$dropdown.find('.title.back').length) {
 
-        // Copy link to subnav
-        if (self.settings.custom_back_text == true) {
-          $titleLi.find('h5>a').html('&laquo; ' + self.settings.back_text);
-        } else {
-          $titleLi.find('h5>a').html('&laquo; ' + $link.html());
+          if (settings.mobile_show_parent_link == true && url) {
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
+          } else {
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
+          }
+
+          // Copy link to subnav
+          if (settings.custom_back_text == true) {
+            $('h5>a', $titleLi).html(settings.back_text);
+          } else {
+            $('h5>a', $titleLi).html('&laquo; ' + $link.html());
+          }
+          $dropdown.prepend($titleLi);
         }
-        $dropdown.prepend($titleLi);
       });
 
       // Put element back in the DOM
-      this.settings.$section.appendTo(this.settings.$topbar);
+      section.appendTo(topbar);
 
       // check for sticky
       this.sticky();
+
+      this.assembled(topbar);
+    },
+
+    assembled : function (topbar) {
+      topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true}));
     },
 
     height : function (ul) {
       var total = 0,
           self = this;
 
-      ul.find('> li').each(function () { total += self.outerHeight($(this), true); });
+      $('> li', ul).each(function () {
+        total += self.S(this).outerHeight(true);
+      });
 
       return total;
     },
 
     sticky : function () {
-      var klass = '.' + this.settings.stickyClass;
-      if ($(klass).length > 0) {
-        var distance = $(klass).length ? $(klass).offset().top: 0,
-            $window = $(window);
-            var offst = this.outerHeight($('.top-bar'));
-
-          $window.scroll(function() {
-            if ($window.scrollTop() >= (distance)) {
-              $(klass).addClass("fixed");
-              $('body').css('padding-top',offst);
-            }
+      var self = this;
+
+      this.S(window).on('scroll', function () {
+        self.update_sticky_positioning();
+      });
+    },
+
+    update_sticky_positioning : function () {
+      var klass = '.' + this.settings.sticky_class,
+          $window = this.S(window),
+          self = this;
 
-            else if ($window.scrollTop() < distance) {
-              $(klass).removeClass("fixed");
-              $('body').css('padding-top','0');
+      if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
+        var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset;
+        if (!self.S(klass).hasClass('expanded')) {
+          if ($window.scrollTop() > (distance)) {
+            if (!self.S(klass).hasClass('fixed')) {
+              self.S(klass).addClass('fixed');
+              self.S('body').addClass('f-topbar-fixed');
             }
-        });
+          } else if ($window.scrollTop() <= distance) {
+            if (self.S(klass).hasClass('fixed')) {
+              self.S(klass).removeClass('fixed');
+              self.S('body').removeClass('f-topbar-fixed');
+            }
+          }
+        }
       }
     },
 
     off : function () {
-      $(this.scope).off('.fndtn.topbar');
-      $(window).off('.fndtn.topbar');
+      this.S(this.scope).off('.fndtn.topbar');
+      this.S(window).off('.fndtn.topbar');
     },
 
     reflow : function () {}
   };
-}(Foundation.zj, this, this.document));
+}(jQuery, window, window.document));

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 5 - 735
assets/scripts/vendor/fastclick.js


+ 8 - 0
assets/scripts/vendor/jquery.cookie.js

@@ -0,0 +1,8 @@
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 7 - 0
assets/scripts/vendor/modernizr.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
assets/scripts/vendor/placeholder.js


+ 418 - 4
assets/stylesheets/font-awesome.css

@@ -1,13 +1,13 @@
 /*!
- *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
  */
 /* FONT PATH
  * -------------------------- */
 @font-face {
   font-family: 'FontAwesome';
-  src: url('../fonts/fontawesome-webfont.eot?v=4.2.0');
-  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
+  src: url('../fonts/fontawesome-webfont.eot?v=4.5.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');
   font-weight: normal;
   font-style: normal;
 }
@@ -64,6 +64,19 @@
   border: solid 0.08em #eeeeee;
   border-radius: .1em;
 }
+.fa-pull-left {
+  float: left;
+}
+.fa-pull-right {
+  float: right;
+}
+.fa.fa-pull-left {
+  margin-right: .3em;
+}
+.fa.fa-pull-right {
+  margin-left: .3em;
+}
+/* Deprecated as of 4.4.0 */
 .pull-right {
   float: right;
 }
@@ -80,6 +93,10 @@
   -webkit-animation: fa-spin 2s infinite linear;
   animation: fa-spin 2s infinite linear;
 }
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
 @-webkit-keyframes fa-spin {
   0% {
     -webkit-transform: rotate(0deg);
@@ -610,6 +627,7 @@
 .fa-twitter:before {
   content: "\f099";
 }
+.fa-facebook-f:before,
 .fa-facebook:before {
   content: "\f09a";
 }
@@ -622,6 +640,7 @@
 .fa-credit-card:before {
   content: "\f09d";
 }
+.fa-feed:before,
 .fa-rss:before {
   content: "\f09e";
 }
@@ -1259,7 +1278,8 @@
 .fa-male:before {
   content: "\f183";
 }
-.fa-gittip:before {
+.fa-gittip:before,
+.fa-gratipay:before {
   content: "\f184";
 }
 .fa-sun-o:before {
@@ -1502,6 +1522,8 @@
 .fa-git:before {
   content: "\f1d3";
 }
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
 .fa-hacker-news:before {
   content: "\f1d4";
 }
@@ -1670,3 +1692,395 @@
 .fa-meanpath:before {
   content: "\f20c";
 }
+.fa-buysellads:before {
+  content: "\f20d";
+}
+.fa-connectdevelop:before {
+  content: "\f20e";
+}
+.fa-dashcube:before {
+  content: "\f210";
+}
+.fa-forumbee:before {
+  content: "\f211";
+}
+.fa-leanpub:before {
+  content: "\f212";
+}
+.fa-sellsy:before {
+  content: "\f213";
+}
+.fa-shirtsinbulk:before {
+  content: "\f214";
+}
+.fa-simplybuilt:before {
+  content: "\f215";
+}
+.fa-skyatlas:before {
+  content: "\f216";
+}
+.fa-cart-plus:before {
+  content: "\f217";
+}
+.fa-cart-arrow-down:before {
+  content: "\f218";
+}
+.fa-diamond:before {
+  content: "\f219";
+}
+.fa-ship:before {
+  content: "\f21a";
+}
+.fa-user-secret:before {
+  content: "\f21b";
+}
+.fa-motorcycle:before {
+  content: "\f21c";
+}
+.fa-street-view:before {
+  content: "\f21d";
+}
+.fa-heartbeat:before {
+  content: "\f21e";
+}
+.fa-venus:before {
+  content: "\f221";
+}
+.fa-mars:before {
+  content: "\f222";
+}
+.fa-mercury:before {
+  content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before {
+  content: "\f224";
+}
+.fa-transgender-alt:before {
+  content: "\f225";
+}
+.fa-venus-double:before {
+  content: "\f226";
+}
+.fa-mars-double:before {
+  content: "\f227";
+}
+.fa-venus-mars:before {
+  content: "\f228";
+}
+.fa-mars-stroke:before {
+  content: "\f229";
+}
+.fa-mars-stroke-v:before {
+  content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+  content: "\f22b";
+}
+.fa-neuter:before {
+  content: "\f22c";
+}
+.fa-genderless:before {
+  content: "\f22d";
+}
+.fa-facebook-official:before {
+  content: "\f230";
+}
+.fa-pinterest-p:before {
+  content: "\f231";
+}
+.fa-whatsapp:before {
+  content: "\f232";
+}
+.fa-server:before {
+  content: "\f233";
+}
+.fa-user-plus:before {
+  content: "\f234";
+}
+.fa-user-times:before {
+  content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+  content: "\f236";
+}
+.fa-viacoin:before {
+  content: "\f237";
+}
+.fa-train:before {
+  content: "\f238";
+}
+.fa-subway:before {
+  content: "\f239";
+}
+.fa-medium:before {
+  content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before {
+  content: "\f23b";
+}
+.fa-optin-monster:before {
+  content: "\f23c";
+}
+.fa-opencart:before {
+  content: "\f23d";
+}
+.fa-expeditedssl:before {
+  content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery-full:before {
+  content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+  content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before {
+  content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+  content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+  content: "\f244";
+}
+.fa-mouse-pointer:before {
+  content: "\f245";
+}
+.fa-i-cursor:before {
+  content: "\f246";
+}
+.fa-object-group:before {
+  content: "\f247";
+}
+.fa-object-ungroup:before {
+  content: "\f248";
+}
+.fa-sticky-note:before {
+  content: "\f249";
+}
+.fa-sticky-note-o:before {
+  content: "\f24a";
+}
+.fa-cc-jcb:before {
+  content: "\f24b";
+}
+.fa-cc-diners-club:before {
+  content: "\f24c";
+}
+.fa-clone:before {
+  content: "\f24d";
+}
+.fa-balance-scale:before {
+  content: "\f24e";
+}
+.fa-hourglass-o:before {
+  content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+  content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+  content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+  content: "\f253";
+}
+.fa-hourglass:before {
+  content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+  content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+  content: "\f256";
+}
+.fa-hand-scissors-o:before {
+  content: "\f257";
+}
+.fa-hand-lizard-o:before {
+  content: "\f258";
+}
+.fa-hand-spock-o:before {
+  content: "\f259";
+}
+.fa-hand-pointer-o:before {
+  content: "\f25a";
+}
+.fa-hand-peace-o:before {
+  content: "\f25b";
+}
+.fa-trademark:before {
+  content: "\f25c";
+}
+.fa-registered:before {
+  content: "\f25d";
+}
+.fa-creative-commons:before {
+  content: "\f25e";
+}
+.fa-gg:before {
+  content: "\f260";
+}
+.fa-gg-circle:before {
+  content: "\f261";
+}
+.fa-tripadvisor:before {
+  content: "\f262";
+}
+.fa-odnoklassniki:before {
+  content: "\f263";
+}
+.fa-odnoklassniki-square:before {
+  content: "\f264";
+}
+.fa-get-pocket:before {
+  content: "\f265";
+}
+.fa-wikipedia-w:before {
+  content: "\f266";
+}
+.fa-safari:before {
+  content: "\f267";
+}
+.fa-chrome:before {
+  content: "\f268";
+}
+.fa-firefox:before {
+  content: "\f269";
+}
+.fa-opera:before {
+  content: "\f26a";
+}
+.fa-internet-explorer:before {
+  content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before {
+  content: "\f26c";
+}
+.fa-contao:before {
+  content: "\f26d";
+}
+.fa-500px:before {
+  content: "\f26e";
+}
+.fa-amazon:before {
+  content: "\f270";
+}
+.fa-calendar-plus-o:before {
+  content: "\f271";
+}
+.fa-calendar-minus-o:before {
+  content: "\f272";
+}
+.fa-calendar-times-o:before {
+  content: "\f273";
+}
+.fa-calendar-check-o:before {
+  content: "\f274";
+}
+.fa-industry:before {
+  content: "\f275";
+}
+.fa-map-pin:before {
+  content: "\f276";
+}
+.fa-map-signs:before {
+  content: "\f277";
+}
+.fa-map-o:before {
+  content: "\f278";
+}
+.fa-map:before {
+  content: "\f279";
+}
+.fa-commenting:before {
+  content: "\f27a";
+}
+.fa-commenting-o:before {
+  content: "\f27b";
+}
+.fa-houzz:before {
+  content: "\f27c";
+}
+.fa-vimeo:before {
+  content: "\f27d";
+}
+.fa-black-tie:before {
+  content: "\f27e";
+}
+.fa-fonticons:before {
+  content: "\f280";
+}
+.fa-reddit-alien:before {
+  content: "\f281";
+}
+.fa-edge:before {
+  content: "\f282";
+}
+.fa-credit-card-alt:before {
+  content: "\f283";
+}
+.fa-codiepie:before {
+  content: "\f284";
+}
+.fa-modx:before {
+  content: "\f285";
+}
+.fa-fort-awesome:before {
+  content: "\f286";
+}
+.fa-usb:before {
+  content: "\f287";
+}
+.fa-product-hunt:before {
+  content: "\f288";
+}
+.fa-mixcloud:before {
+  content: "\f289";
+}
+.fa-scribd:before {
+  content: "\f28a";
+}
+.fa-pause-circle:before {
+  content: "\f28b";
+}
+.fa-pause-circle-o:before {
+  content: "\f28c";
+}
+.fa-stop-circle:before {
+  content: "\f28d";
+}
+.fa-stop-circle-o:before {
+  content: "\f28e";
+}
+.fa-shopping-bag:before {
+  content: "\f290";
+}
+.fa-shopping-basket:before {
+  content: "\f291";
+}
+.fa-hashtag:before {
+  content: "\f292";
+}
+.fa-bluetooth:before {
+  content: "\f293";
+}
+.fa-bluetooth-b:before {
+  content: "\f294";
+}
+.fa-percent:before {
+  content: "\f295";
+}

+ 35 - 2
assets/stylesheets/foreground-print.css

@@ -1,3 +1,36 @@
+/* Control what will print */
+
 @media print {
-  nav, footer { display:none; }
-}
+	/* stop double border at bottom with print */
+	footer.row {
+		border: none;
+	}
+	/*make namespace labels stand out */
+	h4.namespace.label {
+    padding: 0.25em;
+    font-size: 1.4em !important;
+    font-weight: normal;
+    background-color: #777777 !important;
+	color: #fff !important;
+	}
+	/* hide actions button as it is not needed */
+	#p-cactions a.button.dropdown.small.secondary.radius {
+    display: none !important;
+	}
+	/* if addThis share is used, make sure to hide mobile content from js */
+	#at4m-dock, .at4-show,
+	#atstbx	{
+	display: none !important;
+	}
+	/* hide Echo if being used */
+	#echo-notifications {
+	display: none !important;
+	}
+	nav {
+    display: none !important;
+	}
+	a#actions-button {
+    display: none !important;
+	}
+}
+

+ 1269 - 540
assets/stylesheets/foreground.css

@@ -1,413 +1,501 @@
 body {
-  line-height: 1.6em;
+	line-height: 1.6em;
 }
-
 p {
-  margin-bottom: 0.25em;
+	margin-bottom: 0.25em;
+}
+#page-content {
+	margin: 2rem 0 0;
+}
+.row {
+	max-width: 75em;
+}
+a.label:hover, a.label:focus {
+	color: white;
+}
+a.label.new {
+	background-color: #d0d0d0;
+}
+a#actions-button {
+	float: right;
+	z-index: 499;
+}
+
+/* rtl an ltr */
+
+[dir=ltr] * {
+	direction: ltr;
+}
+[dir=rtl] * {
+	direction: rtl;
+}
+[dir=ltr] {
+	direction: ltr;
+}
+[dir=rtl] {
+	direction: rtl;
 }
 
-a.label:hover,
-a.label:focus {
-  color: white;
+/* Reset all table CSS from Foundation styles back to MediaWiki */
+table { width: 0; }
+td.mw-label { width: 0; }
+td.smwpropname, th.smwpropname, td.smwspecname { text-align: inherit; }
+table tbody tr td, table tr td { line-height: inherit; }
+table { background: transparent; margin-bottom: 1.25em; border: 0; }
+table thead, table tfoot { background: 0; font-weight: normal; }
+table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0; font-size: 100%; color: inherit; text-align: inherit; }
+table tr th, table tr td { padding: 0; font-size: 100%; color: inherit; }
+table tr.even, table tr.alt, table tr:nth-of-type(even) { background: transparent; } 
+table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: inherit; text-align: inherit; }
+
+/* wikitable classes reset */
+table.wikitable { 
+  margin: 1em 0;
+}
+table.wikitable > tr > th,
+table.wikitable > * > tr > th {
+  text-align: inherit;
 }
 
-a.label.new { background-color: #d0d0d0; }
+/* Style MW Table of Contents */
 
-a.button.dropdown { float:right;}
+.toctoggle, .toctoggle a {
+	line-height: 2em;
+	display: inline;
+	vertical-align: top;
+}
+#toctitle h2 {
+	display: inline;
+	font-size: 1.8rem;
+}
+#toc, .toc {
+	padding: 1em 1em;
+	border: 1px solid #dddddd;
+	display: inline-block;
+	width: auto;
+	margin: 1.5em 0;
+}
+#toc ul, .toc ul {
+	list-style-type: none;
+	list-style-image: none;
+	padding: 0;
+	width: auto;
+}
 
 /* Hide the page actions button for special pages (cuz there's nothing in it) */
-.mw-special-FormEdit a.button.dropdown, .ns-special a.button.dropdown { display:none; }
+
+.mw-special-FormEdit a#actions-button, .ns-special a#actions-button {
+	display: none;
+}
 
 /* Hide some rows on form-edit (e.g. a thing's title) */
-body.action-formedit .row.hide-on-form-edit { display: none;}
+
+body.action-formedit .row.hide-on-form-edit {
+	display: none;
+}
 
 /* Move the MediaWiki notification area so it isn't on top of the Action menu */
+
 .mw-notification-area {
-  margin-top: 2em;
+	margin-top: 2em;
 }
 
 /* Also adjust z-index of action menu to force it on top */
-#p-cactions #drop1 {
-  z-index: 100000;
-  white-space: nowrap;
+
+#p-cactions #actions {
+	z-index: 500;
+	white-space: nowrap;
 }
-#p-cactions #drop1 a {
-  width: 100%;
-  text-align: left;
+#p-cactions #actions a {
+	width: 100%;
+	text-align: left;
 }
 
 /* Make sure top bar is even more z-indx! */
+
 #toolbox-dropdown {
-  z-index: 10000000;
+	z-index: 601;
 }
 #personal-tools-dropdown {
-  z-index: 10000000;
+	z-index: 601;
 }
 
 /* Dropdown Icon Alignment */
+
 .drop-icon {
-  display: inline;
-  margin-right: 4px;
+	display: inline;
+	margin-right: 4px;
 }
-
-td.mw-submit a,
-.htmlform-tip,
-#mw-upload-permitted p {
-  font-size: 90%;
+td.mw-submit a, .htmlform-tip, #mw-upload-permitted p {
+	font-size: 90%;
+}
+alert.label a {
+	color: pink;
 }
-
-alert.label a {color: pink;}
-
 code {
-  font-weight: normal;
-  color: #222222;
+	font-weight: normal;
+	color: #222222;
 }
-
 small {
-  font-size: 80%;
+	font-size: 80%;
 }
-
 h4.namespace.label {
-  font-size: small;
-  display:inline-block;
+	font-size: 1rem;
+	display: inline-block;
+	margin-bottom: 0.5rem;
 }
-
 .label {
-  padding-bottom: 0.39em;
+	padding-bottom: 0.39em;
 }
-
 h2 span {
-  display: inline-block;
+	display: inline-block;
 }
-
 h2.title {
-  margin-bottom: 0.1em;
+	margin-bottom: 0.1em;
 }
-
 h3#tagline {
-  font-style: italic;
-  font-size: small;
-  margin-bottom: 0.5em;
-  color: #6f6f6f;
+	font-style: italic;
+	font-size: small;
+	margin-bottom: 0.5em;
+	color: #6f6f6f;
 }
-
 .clear_both {
-  clear:both;
+	clear: both;
 }
-
 .large-2 strong, .large-2 b {
-  display: block;
+	display: block;
 }
-
 .large-2 strong, .large-2 b, table th {
-  font-size: 0.875em;
-  color: #4d4d4d;
-  font-weight: 500;
+	font-size: 0.875em;
+	color: #4d4d4d;
+	font-weight: 500;
 }
 
 /* LAYOUT */
 
 .row .row {
-  margin-bottom: 0.9em;
+	margin-bottom: 0.9em;
 }
-
 div.small-10 .row {
-  margin: 1em 0 0 0;
+	margin: 1em 0 0 0;
 }
-
 div.small-9.columns textarea {
-  margin-bottom: 0.25em;
+	margin-bottom: 0.25em;
 }
-
 footer.row {
-  margin-top: 2em;
-  color: grey;
+	margin-top: 2em;
+	color: grey;
 }
-
 div {
-  line-height: 1.60em;
+	line-height: 1.60em;
 }
 
-
 /* NOTICES, ALERTS, WARNINGS */
-div#userloginprompt, p#userloginlink {
-  font-size: 80%;
 
+div#userloginprompt, p#userloginlink {
+	font-size: 80%;
 }
 
-
 /* LISTS */
 
-ul#drop1.f-dropdown {
-  margin-left:0;
-  margin-top:.5em;
-  margin-bottom:.25em;
-  padding:.25em;
+ul#actions.f-dropdown {
+	margin-left: 0;
+	margin-top: .5em;
+	margin-bottom: .25em;
+	padding: .25em;
 }
 
-#mw-content-text ul {
-  margin: .5em 1.25em;
+dl {
+    margin-bottom: 0em;
+    margin-top: .75em;
 }
 
-footer.row ul {
-  list-style-type: none;
-  margin: 0 0 1em 0;
+/* Override MW legacy.module for all skins styling of ul and ol */
+.mw-content-ltr ul,
+.mw-content-rtl .mw-content-ltr ul {
+	/* @noflip */
+	margin: 0.5em 0 0 2em;
+	padding: 0;
+}
+	
+.mw-content-rtl ul,
+.mw-content-ltr .mw-content-rtl ul {
+	/* @noflip */
+	margin: 0.5em 2em 0 0;
+	padding: 0;
+}
+	
+.mw-content-ltr ol,
+.mw-content-rtl .mw-content-ltr ol {
+	/* @noflip */
+	margin: 0.5em 0 0 2em;
+	padding: 0;
+}
+	
+.mw-content-rtl ol,
+.mw-content-ltr .mw-content-rtl ol {
+	/* @noflip */
+	margin: 0.5em 2em 0 0;
+	padding: 0;
+}
+	
+/* @noflip */
+.mw-content-ltr dd,
+.mw-content-rtl .mw-content-ltr dd {
+	margin-left: 1.6em;
+	margin-right: 0;
+}
+	
+/* @noflip */
+.mw-content-rtl dd,
+.mw-content-ltr .mw-content-rtl dd {
+	margin-right: 1.6em;
+	margin-left: 0;
 }
 
-footer.row ul.views.columns li {
-  margin-right: 1em;
+/* Tabs */
+
+
+/* make sure tabs ul element has no margins */
+
+#mw-content-text ul.tabs {
+	margin: 0;
 }
 
-#footer footer.row ul {
-margin: 0;
-list-style-type: none;
+/* stop focus outline */
+
+.tabs dd.active>a, .tabs .tab-title.active>a:focus {
+	outline: none;
 }
 
-/* Make social footer center need overflow:hidden and other div classes */
-.social-footer {
-margin: 0 0 1em;
-font-size: 90%;
-overflow: hidden;
+/* make sure orbit image slider has no margins */
+
+#mw-content-text .orbit-container ul {
+	margin: 0;
 }
-/* Hide all text in p elements */
-.social-footer p {
-display: none;
+footer.row ul {
+	list-style-type: none;
+	margin: 0 0 1em 0;
 }
-/* Outer wrap */
-.social-links {
-position: relative;
-left: 50%;
-float: left;
+footer.row ul.views.columns li {
+	margin-right: 1em;
 }
-/* addThis container (inner wrap) */
-.addthis_horizontal_follow_toolbox {
-position: relative;
-left: -50%;
-float: left;
-z-index: 100000;
+#footer footer.row ul {
+	margin: 0;
+	list-style-type: none;
+}
+
+/* Make social follow float right */
+
+.social-follow {
+    text-align: center;
+}
+div.social-follow div[class*="addthis"] {
+    text-align: left;
+    display: inline-block;
 }
+
 /* end social footer classes */
 
 #footer-left {
-font-size: 90%;
-text-align: left;
+	font-size: 90%;
+	text-align: left;
 }
 #footer-right-icons {
-font-size: 85%;
-text-align: center;
+	font-size: 85%;
+	text-align: center;
 }
-
 #footer-right-icons li {
-display: inline-block;
-text-align: center;
-margin: 0 0 .5em .5em;
+	display: inline-block;
+	text-align: center;
+	margin: 0 0 .5em .5em;
 }
-
 li#footer-privacy {
-float: left;
-margin-right: 2em;
+	float: left;
+	margin-right: 2em;
 }
-
 li#footer-about {
-float: left;
-margin-right: 2em;
+	float: left;
+	margin-right: 2em;
 }
-
 li#footer-disclaimer {
-float: left;
-margin-right: 2em;
+	float: left;
+	margin-right: 2em;
 }
-
 .text-center #footer-left li {
-float: none;
-margin: 0;
+	float: none;
+	margin: 0;
 }
 .text-center #footer-left {
-text-align: center;
+	text-align: center;
+}
+@media only screen and (max-width: 641px) {
+	#footer-left {
+		font-size: 85%;
+		text-align: center;
+	}
+	#footer-right-icons {
+		font-size: 80%;
+	}
+	li#footer-privacy {
+		float: none;
+		margin-right: 0;
+	}
+	li#footer-about {
+		float: none;
+		margin-right: 0;
+	}
+	li#footer-disclaimer {
+		float: none;
+		margin-right: 0;
+	}
 }
-
-@media only screen and (max-width: 768px) {
-#footer-left { font-size: 85%; text-align: center;}
-#footer-right-icons { font-size: 80%;}
-li#footer-privacy { float: none; margin-right: 0;}
-li#footer-about { float: none; margin-right: 0;}
-li#footer-disclaimer { float: none; margin-right: 0;}
-}
-
 .columns ul.special li {
-  float:none;
-  width: 100%;
+	float: none;
+	width: 100%;
 }
-
 .columns div#uploadtext ul {
-  list-style-type: disc;
+	list-style-type: disc;
 }
-
 .columns div#uploadtext ul li {
- float: none;
- width: 95%;
- margin-left: 2em;
+	float: none;
+	width: 95%;
+	margin-left: 2em;
+}
+#catlinks {
+	border: 1px solid #aaa;
+	padding: 0.25rem;
+}
+#catlinks .label {
+	font-size: .9rem;
+}
+#catlinks a.label.new {
+	background-color: #BA0F2A;
+}
+.catlinks li {
+	border-left: none;
+}
+.mw-specialpages-table td ul.columns li {
+	width: 50%;
 }
-
-.catlinks li {border-left:none;}
-
-.mw-specialpages-table td ul.columns li {width: 50%;}
 
 /*#mw-content-text .columns li {float:none;width:90%;}*/
 
-footer.row ul.columns li { display: inline;float:none;}
-
+footer.row ul.columns li {
+	display: inline;
+	float: none;
+}
 .columns #mw-normal-catlinks ul li {
-  float: none;
-  width: auto;
+	float: none;
+	width: auto;
 }
-
 #mw-normal-catlinks a.new {
-  color: white;
+	color: white;
+}
+ul.vcard {
+	padding: 0.5em 0.5em 0.55em 0.5em;
 }
-
-ul.vcard { padding: 0.5em 0.5em 0.55em 0.5em; }
 
 /* HEADERS */
 
-h1,h2,h3,h4,h5,h6 {
-  margin-top: 0em;
-  line-height: 1em;
+h1, h2, h3, h4, h5, h6 {
+	margin-top: 0em;
+	line-height: 1em;
 }
-
 .page-Special_SpecialPages h2 {
-  margin-bottom: 0.5em;
+	margin-bottom: 0.5em;
 }
-
-
 .editsection {
-  font-weight: normal;
-  font-size: 0.4em;
+	font-weight: normal;
+	font-size: 0.4em;
 }
-
 p.title {
-  padding: 0.9375em;
+	padding: 0.9375em;
 }
 
 /* TABLES */
 
 .mw-content-ltr table#toc {
-  float:right;
-  width: auto;
+	float: right;
+	width: auto;
 }
-
 .mw-content-rtl table#toc {
-  float:left;
-  width: auto;
+	float: left;
+	width: auto;
 }
-
 table.formtable {
-  border: none;
+	border: none;
 }
-
-table td[align="right"] {text-align: right;}
-
-/* TURN OFF TABLE STRIPING FOR EDITFORMS */
-table.formedit tr.even,
-table.formedit tr.alt,
-table.formedit tr:nth-of-type(even) {
-  background: transparent;
+table td[align="right"] {
+	text-align: right;
 }
 
+/* TURN OFF TABLE STRIPING FOR EDITFORMS */
 
+table.formedit tr.even, table.formedit tr.alt, table.formedit tr:nth-of-type(even) {
+	background: transparent;
+}
 table {
-  width: 100%;
+	width: 100%;
 }
-
 td.mw-label {
-  width: 20%;
+	width: 20%;
 }
-
 td.mw-input {
-  width: 80%;
+	width: 80%;
 }
-
 thead tr th {
-  cursor: pointer;
+	cursor: pointer;
 }
-
 table.formtable th {
-  text-align: right !important;
+	text-align: right !important;
 }
-
 td.smwpropname, th.smwpropname, td.smwspecname {
-  text-align:left;
+	text-align: left;
 }
-
 table tbody tr td, table tr td {
-  line-height: 1.6em;
+	line-height: 1.6em;
 }
-
 table.wikitable {
-  margin: 0em 0 1em 0;
+	margin: 0em 0 1em 0;
 }
-
-table.wikitable > tr > th,
-table.wikitable > * > tr > th {
-  text-align: left;
+table.wikitable>tr>th, table.wikitable>*>tr>th {
+	text-align: left;
 }
-
-table.wikitable > tr > th,
-table.wikitable > tr > td,
-table.wikitable > * > tr > th,
-table.wikitable > * > tr > td {
-  border: 3px #fff solid;
-  padding: 0.6em;
+table.wikitable>tr>th, table.wikitable>tr>td, table.wikitable>*>tr>th, table.wikitable>*>tr>td {
+	border: 3px #fff solid;
+	padding: 0.6em;
 }
 
 /* FORMS, INPUTS, FIELDSETS */
 
 .multipleTemplateInstance {
-  background-color: white !important;
-  border: none !important;
-  border-bottom: 1px dashed #999999 !important;
+	background-color: white !important;
+	border: none !important;
+	border-bottom: 1px dashed #999999 !important;
 }
-
 .multipleTemplateInstance table {
-  border: none !important;
+	border: none !important;
 }
-
 .multipleTemplateAdder {
-  font-size: 0.9em;
-  padding: 0.4125em 0.5em 0.55em 0.5em;
+	font-size: 0.9em;
+	padding: 0.4125em 0.5em 0.55em 0.5em;
 }
-
- .novalue {
-  color: #999999;
-  font-style:italic;
-  font-size:small;
+.novalue {
+	color: #999999;
+	font-style: italic;
+	font-size: small;
 }
-
-input[type="file"],
-input[type="checkbox"],
-input[type="radio"],
-select {
-  padding: 5px;
+input[type="file"], input[type="checkbox"], input[type="radio"], select {
+	padding: 5px;
 }
-
-input[type="file"],
-select {
-  padding: 5px;
-  border: 1px solid #cccccc;
+input[type="file"], select {
+	padding: 5px;
+	border: 1px solid #cccccc;
 }
-
-.inputSpan select.createboxInput,
-.dateInput select.monthInput,
-input.hourInput,
-input.minuteInput,
-input.secondInput,
-input.dayInput,
-input.yearInput,
-input[name="*[* date][hour]"],
-input[name="*[* date][minute]"],
-input[name="*[* date][second]"] {
-  width: auto;
-  margin-right: 1em;
+.inputSpan select.createboxInput, .dateInput select.monthInput, input.hourInput, input.minuteInput, input.secondInput, input.dayInput, input.yearInput, input[name="*[* date][hour]"], input[name="*[* date][minute]"], input[name="*[* date][second]"] {
+	width: auto;
+	margin-right: 1em;
 }
 
 /*
@@ -415,407 +503,1048 @@ input[name="*[* date][second]"] {
   width: 100%;
 }
 */
-.inputSpan button,
-.inputSpan .button {
-  margin: -4px 0 0 0;
-  padding:0.37em 0.75em 0.6em 0.70em;
-}
 
+.inputSpan button, .inputSpan .button {
+	margin: -4px 0 0 0;
+	padding: 0.37em 0.75em 0.6em 0.70em;
+}
 .ms-selectable input[type="text"] {
-  width: 100%;
+	width: 100%;
 }
-
 button.ui-button-icon-only {
-  height: 2.24em !important;
+	height: 2.24em !important;
+}
+select {
+	width: auto;
+}
+input[type="checkbox"].createboxInput {
+	width: auto;
+}
+label.checkboxLabel {
+	margin-right: 0.5em;
+}
+.edit_with_form {
+	margin: -2em 0 0 0;
+	float: right;
+}
+input[type="radio"], input[type="checkbox"] {
+	display: inline;
+}
+input[type='file'] {
+	margin-top: 0.4em;
+}
+input:not([type]), textarea, p.meta {
+	margin-bottom: 4px;
+}
+label {
+	display: inline;
+	font-weight: normal;
+}
+.mw-input label {
+	font-weight: normal;
+}
+#mw-content-text ul.SFI_timepicker_hours, #mw-content-text ul.SFI_timepicker_minutes {
+	list-style-type: none;
+}
+#mw-content-text ul.SFI_timepicker_hours li {
+	margin: 2px 2px;
+	padding: 4px;
+}
+.sminput.sminput-googlemaps3 p button {
+	padding-top: 0.35em;
+	padding-bottom: 0.6em;
+}
+li label.inline {
+	margin-bottom: 2px;
+	padding: 0;
+}
+button, .button {
+	margin: 0.5em 0;
+	padding: 0.3em 0.75em 0.4em 0.75em;
+}
+.top-bar-logo {
+	max-width: 100%;
+	height: auto;
+	max-height: 2.8125rem;
+	/* Important! max-height must not be higher than line-height */
+	display: inline-block;
+	vertical-align: middle;
+}
+.top-bar .button.search {
+	top: 0px;
+}
+.top-bar .button, .top-bar button {
+	padding-top: .35rem;
+	padding-bottom: .35rem;
+}
+.top-bar .button.search {
+	margin-left: 10px;
+}
+.top-bar input {
+	top: 0px;
+}
+@media only screen and (min-width: 641px) {
+	.top-bar .button.search {
+		top: 0px;
+	}
+	.top-bar .button.search {
+		margin-left: -4px;
+	}
+	.top-bar {
+		height: auto;
+	}
+}
+.top-bar-section .dropdown {
+	z-index: 600;
+}
+input[type="submit"] {
+	background-color: #5da423;
+	border-color: #457a1a;
+	color: white;
+	-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	-webkit-transition: background-color 300ms ease-out;
+	-moz-transition: background-color 300ms ease-out;
+	transition: background-color 300ms ease-out;
+}
+input#wpPreview {
+	background-color: #5da423;
+	border-color: #457a1a;
+	color: white;
+	-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	-webkit-transition: background-color 300ms ease-out;
+	-moz-transition: background-color 300ms ease-out;
+	transition: background-color 300ms ease-out;
+}
+.editButtons input[type="submit"] {
+	display: inline-block;
+}
+legend {
+	font-size: 0.875em;
+	color: #4d4d4d;
+	cursor: pointer;
+	display: block;
+	font-weight: 500;
+}
+fieldset {
+	line-height: 1.6em;
+	padding: 0 1.25em 1em 1.25em;
+	margin-top: 0;
+}
+span.smwbuiltin, span.smwttactiveinline span.smwbuiltin {
+	font-style: normal;
 }
 
-select {width:auto;}
+/* MW still generates a label column for checkboxes, this minimizes is */
 
+div.mw-htmlform-field-HTMLCheckField div.mw-label {
+	height: 0;
+}
 
-input[type="checkbox"].createboxInput {
-  width: auto;
+/* UNTIL I CAN DETERMINE WHY toolboxend GENERATES AN EMPTY <li> IN THE MENU, I'M HIDING IT */
+
+#p-toolboxend {
+	display: none;
 }
 
-label.checkboxLabel {
-  margin-right: 0.5em;
+/* firstHeading Fix */
+
+h1#firstHeading {
+    font-size: 2.125rem;
+	margin: 0;
 }
 
-.edit_with_form {
-  margin: -2em 0 0 0;
-  float:right;
+@media only screen and (min-width: 40.0625em) {
+h1#firstHeading {
+    font-size: 2.75rem;
+}
 }
 
-input[type="radio"],
-input[type="checkbox"] {
-  display:inline;
+/* Don't like the black top bar? Copy this into your Foreground.css and change the colors 
+
+.top-bar, 
+.top-bar-section ul, 
+.top-bar-section ul li.active > a, 
+.top-bar-section li a:not(.button), 
+.top-bar-section .has-form {
+    background: #333333;
 }
 
-input[type='file'] {
-  margin-top: 0.4em;
+
+.top-bar-section > ul > .divider,
+.top-bar-section > ul > [role="separator"] {
+  border-color: black;
 }
 
-input:not([type]),
-textarea,
-p.meta {
-  margin-bottom: 4px;
+*/
+
+.vertical-divider {
+	width: 100%;
+	display: block;
+	background: #1A1A1A;
+	height: 1px;
+}
+.top-bar-section li.active:not(.has-form) a:not(.button), .top-bar-section li.active:not(.has-form) a:hover:not(.button) {
+	background: inherit;
+}
+.top-bar input {
+	width: auto;
+	display: inline;
 }
 
-label {
-  display: inline;
-  font-weight: normal;
+/*Fix ULS CSS */
+
+#pt-uls a.uls-trigger {
+	padding-left: 15px !important;
 }
 
-.mw-input label { font-weight: normal; }
+/* Orbit Slider Overrides for MW */
 
-#mw-content-text ul.SFI_timepicker_hours,
-#mw-content-text ul.SFI_timepicker_minutes {
-  list-style-type: none;
+.orbit-container .orbit-slides-container img {
+	width: 100%;
+}
+.orbit-bullets {
+	margin: 0 auto 30px auto !important;
 }
 
-#mw-content-text ul.SFI_timepicker_hours li {
-  margin: 2px 2px;
-  padding: 4px;
+/* Block-Grid UL fixes */
+
+ul[class*="block-grid"] {
+	margin: 0;
 }
 
-.sminput.sminput-googlemaps3 p button {
-  padding-top: 0.35em;
-  padding-bottom: 0.6em;
+/* WikiEditor related fixes */
+
+
+/* lable of toolbar */
+
+.wikiEditor-ui-toolbar .label {
+	background: transparent;
+	color: #000;
 }
 
-li label.inline {
-  margin-bottom: 2px;
-  padding: 0;
+/* selection boxes in toolbar adhere to font-size */
+
+.wikiEditor-ui-toolbar .page-characters div span {
+	height: 1.75em;
 }
 
-button, .button {
-  margin: 0.5em 0;
-  padding: 0.3em 0.75em 0.4em 0.75em;
+/* Visual Editor Fixes */
+
+.ve-activated #content {
+	margin-top: 4em;
+}
+.ve-ce-documentNode {
+	background: #fff;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled>.oo-ui-toolGroup-tools>.oo-ui-tool>.oo-ui-tool-link, .oo-ui-barToolGroup>.oo-ui-toolGroup-tools>.oo-ui-tool.oo-ui-widget-disabled>.oo-ui-tool-link {
+	display: inline !important;
+}
+.mw-indicators {
+	float: right;
+	line-height: 1.6;
+	font-size: 0.875em;
+	position: relative;
+	margin: -1em .5em 0;
+	max-height: 30px;
+	width: auto;
+	z-index: 1;
+}
+.mw-indicator {
+	display: inline-block;
+}
+body {
+	line-height: 1.6em;
+}
+p {
+	margin-bottom: 0.25em;
+}
+a.label:hover, a.label:focus {
+	color: white;
+}
+a.label.new {
+	background-color: #d0d0d0;
+}
+a#actions-button {
+	float: right;
+	z-index: 499;
 }
 
-.top-bar .button.search {
-  top: 0px;
+/* Hide the page actions button for special pages (cuz there's nothing in it) */
+
+.mw-special-FormEdit a#actions-button, .ns-special a#actions-button {
+	display: none;
 }
 
-.top-bar .button.search {
-  margin-left: 10px;
+/* Hide some rows on form-edit (e.g. a thing's title) */
+
+body.action-formedit .row.hide-on-form-edit {
+	display: none;
 }
 
-.top-bar-section .has-form {
-  padding: 0 5px;
+/* Move the MediaWiki notification area so it isn't on top of the Action menu */
+
+.mw-notification-area {
+	margin-top: 2em;
 }
 
-.top-bar input {
-  top: 0px;
+/* Also adjust z-index of action menu to force it on top */
+
+#p-cactions #actions {
+	z-index: 500;
+	white-space: nowrap;
+}
+#p-cactions #actions a {
+	width: 100%;
+	text-align: left;
 }
 
-@media only screen and (min-width: 768px) {
-.top-bar .button.search {
-  top: 1px; }
-.top-bar .button.search {
-  margin-left: -4px; }
+/* Make sure top bar is even more z-indx! */
+
+#toolbox-dropdown {
+	z-index: 601;
+}
+#personal-tools-dropdown {
+	z-index: 601;
 }
 
-.top-bar-section .dropdown {
-  z-index: 100;
+/* Dropdown Icon Alignment */
+
+.drop-icon {
+	display: inline;
+	margin-right: 4px;
+}
+td.mw-submit a, .htmlform-tip, #mw-upload-permitted p {
+	font-size: 90%;
+}
+alert.label a {
+	color: pink;
+}
+code {
+	font-weight: normal;
+	color: #222222;
+}
+small {
+	font-size: 80%;
+}
+h4.namespace.label {
+	font-size: 1rem;
+	display: inline-block;
+	margin-bottom: 0.5rem;
+}
+.label {
+	padding-bottom: 0.39em;
+}
+h2 span {
+	display: inline-block;
+}
+span.title {
+	margin-bottom: 0.1em;
+}
+.title-name {
+	font-size: 1.3rem;
+	margin: 0 .5em;
+	color: #FFF;
+	line-height: 2em;
+}
+h3#tagline {
+	font-style: italic;
+	font-size: small;
+	margin-bottom: 0.5em;
+	color: #6f6f6f;
+}
+.clear_both {
+	clear: both;
+}
+.large-2 strong, .large-2 b {
+	display: block;
+}
+.large-2 strong, .large-2 b, table th {
+	font-size: 0.875em;
+	color: #4d4d4d;
+	font-weight: 500;
 }
 
-input[type="submit"] {
-    background-color: #5da423;
-    border-color: #457a1a;
-    color: white;
-    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    -webkit-transition: background-color 300ms ease-out;
-    -moz-transition: background-color 300ms ease-out;
-    transition: background-color 300ms ease-out;
+/* LAYOUT */
+
+.row .row {
+	margin-bottom: 0.9em;
+}
+div.small-10 .row {
+	margin: 1em 0 0 0;
+}
+div.small-9.columns textarea {
+	margin-bottom: 0.25em;
+}
+footer.row {
+	margin-top: 2em;
+	color: grey;
+}
+div {
+	line-height: 1.60em;
 }
 
-input#wpPreview {
-    background-color: #e9e9e9;
-    border-color: #d0d0d0;
-    color: black;
-    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    -webkit-transition: background-color 300ms ease-out;
-    -moz-transition: background-color 300ms ease-out;
-    transition: background-color 300ms ease-out;
+/* NOTICES, ALERTS, WARNINGS */
+
+div#userloginprompt, p#userloginlink {
+	font-size: 80%;
 }
 
-.editButtons input[type="submit"] {
-  display: inline-block;
+/* make sure orbit image slider has no margins */
+
+#mw-content-text .orbit-container ul {
+	margin: 0;
+}
+footer.row ul {
+	list-style-type: none;
+	margin: 0 0 1em 0;
+}
+footer.row ul.views.columns li {
+	margin-right: 1em;
+}
+#footer footer.row ul {
+	margin: 0;
+	list-style-type: none;
 }
 
-legend {
-  font-size: 0.875em;
-  color: #4d4d4d;
-  cursor: pointer;
-  display: block;
-  font-weight: 500;
+/* Make social footer center need overflow:hidden and other div classes */
+
+.social-footer {
+	margin: 0 0 1em;
+	font-size: 90%;
+	overflow: hidden;
 }
 
-fieldset {
-  line-height: 1.6em;
-  padding: 0 1.25em 1em 1.25em;
-  margin-top: 0;
+/* Hide all text in p elements */
+
+.social-footer p {
+	display: none;
 }
 
-span.smwbuiltin,
-span.smwttactiveinline span.smwbuiltin {
-  font-style: normal;
+/* Outer wrap */
+
+.social-links {
+	position: relative;
+	left: 50%;
+	float: left;
 }
 
+/* addThis container (inner wrap) */
 
-/* MW still generates a label column for checkboxes, this minimizes is */
-div.mw-htmlform-field-HTMLCheckField div.mw-label { height:0; }
-
-
-/* ZUBR IE8 FIXES */
-/* GRID: https://gist.github.com/zurbchris/5068210 */
-.lt-ie9 .row { width: 940px; max-width: 100%; min-width: 768px; margin: 0 auto; }
-.lt-ie9 .row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; }
-.lt-ie9 .row.large-collapse .column,
-.lt-ie9 .row.large-collapse .columns { padding: 0; }
-.lt-ie9 .row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; }
-.lt-ie9 .row .row.large-collapse { margin: 0; }
-
-.lt-ie9 .column, .lt-ie9 .columns { float: left; min-height: 1px; padding: 0 15px; position: relative; }
-.lt-ie9 .column.large-centered, .columns.large-centered { float: none; margin: 0 auto; }
-
-.lt-ie9 [class*="column"] + [class*="column"]:last-child { float: right; }
-.lt-ie9 [class*="column"] + [class*="column"].end { float: left; }
-
-.lt-ie9 .large-1,
-.lt-ie9 .row .large-1 { width: 8.33333%; }
-
-.lt-ie9 .large-2,
-.lt-ie9 .row .large-2 { width: 16.66667%; }
-
-.lt-ie9 .large-3,
-.lt-ie9 .row .large-3 { width: 25%; }
-
-.lt-ie9 .large-4,
-.lt-ie9 .row .large-4 { width: 33.33333%; }
-
-.lt-ie9 .large-5,
-.lt-ie9 .row .large-5 { width: 41.66667%; }
-
-.lt-ie9 .large-6,
-.lt-ie9 .row .large-6 { width: 50%; }
-
-.lt-ie9 .large-7,
-.lt-ie9 .row .large-7 { width: 58.33333%; }
-
-.lt-ie9 .large-8,
-.lt-ie9 .row .large-8 { width: 66.66667%; }
-
-.lt-ie9 .large-9,
-.lt-ie9 .row .large-9 { width: 75%; }
-
-.lt-ie9 .large-10,
-.lt-ie9 .row .large-10 { width: 83.33333%; }
-
-.lt-ie9 .large-11,
-.lt-ie9 .row .large-11 { width: 91.66667%; }
-
-.lt-ie9 .large-12,
-.lt-ie9 .row .large-12 { width: 100%; }
-
-.lt-ie9 .row .large-offset-1 { margin-left: 8.33333%; }
-.lt-ie9 .row .large-offset-2 { margin-left: 16.66667%; }
-.lt-ie9 .row .large-offset-3 { margin-left: 25%; }
-.lt-ie9 .row .large-offset-4 { margin-left: 33.33333%; }
-.lt-ie9 .row .large-offset-5 { margin-left: 41.66667%; }
-.lt-ie9 .row .large-offset-6 { margin-left: 50%; }
-.lt-ie9 .row .large-offset-7 { margin-left: 58.33333%; }
-.lt-ie9 .row .large-offset-8 { margin-left: 66.66667%; }
-.lt-ie9 .row .large-offset-9 { margin-left: 75%; }
-.lt-ie9 .row .large-offset-10 { margin-left: 83.33333%; }
-
-.lt-ie9 .pull-2 { right: 16.66667%; }
-.lt-ie9 .pull-3 { right: 25%; }
-.lt-ie9 .pull-4 { right: 33.33333%; }
-.lt-ie9 .pull-5 { right: 41.66667%; }
-.lt-ie9 .pull-6 { right: 50%; }
-.lt-ie9 .pull-7 { right: 58.33333%; }
-.lt-ie9 .pull-8 { right: 66.66667%; }
-.lt-ie9 .pull-9 { right: 75%; }
-.lt-ie9 .pull-10 { right: 83.33333%; }
-
-.lt-ie9 .push-2 { left: 16.66667%; }
-.lt-ie9 .push-3 { left: 25%; }
-.lt-ie9 .push-4 { left: 33.33333%; }
-.lt-ie9 .push-5 { left: 41.66667%; }
-.lt-ie9 .push-6 { left: 50%; }
-.lt-ie9 .push-7 { left: 58.33333%; }
-.lt-ie9 .push-8 { left: 66.66667%; }
-.lt-ie9 .push-9 { left: 75%; }
-.lt-ie9 .push-10 { left: 83.33333%; }
-
-/* Nicolas Gallagher's micro clearfix */
-.lt-ie9 .row { *zoom: 1; }
-.lt-ie9 .row:before, .row:after { content: " "; display: table; }
-.lt-ie9 .row:after { clear: both; }
-/* END IE8 GRID */
-
-.lt-ie9 .hide-for-small { display: block !important; }
-
-/* TOP NAV */
-.lt-ie9 .top-bar-section {
-  display:block;
-}
-
-.lt-ie9 .top-bar-section ul {
-  height: auto;
-  width: 100%;
+.addthis_horizontal_follow_toolbox {
+	position: relative;
+	left: -50%;
+	float: left;
+	z-index: 100000;
 }
 
-.lt-ie9 .top-bar .top-bar-section ul,
-.lt-ie9 .top-bar .top-bar-section ul li {
-  float: left;
-  display: inline;
+/* end social footer classes */
+
+#footer-left {
+	font-size: 90%;
+	text-align: left;
+}
+#footer-right-icons {
+	font-size: 85%;
+	text-align: center;
+}
+#footer-right-icons li {
+	display: inline-block;
+	text-align: center;
+	margin: 0 0 .5em .5em;
+}
+li#footer-privacy {
+	float: left;
+	margin-right: 2em;
+}
+li#footer-about {
+	float: left;
+	margin-right: 2em;
+}
+li#footer-disclaimer {
+	float: left;
+	margin-right: 2em;
+}
+.text-center #footer-left li {
+	float: none;
+	margin: 0;
+}
+.text-center #footer-left {
+	text-align: center;
+}
+@media only screen and (max-width: 641px) {
+	#footer-left {
+		font-size: 85%;
+		text-align: center;
+	}
+	#footer-right-icons {
+		font-size: 80%;
+	}
+	li#footer-privacy {
+		float: none;
+		margin-right: 0;
+	}
+	li#footer-about {
+		float: none;
+		margin-right: 0;
+	}
+	li#footer-disclaimer {
+		float: none;
+		margin-right: 0;
+	}
+}
+.columns ul.special li {
+	float: none;
+	width: 100%;
+}
+.columns div#uploadtext ul {
+	list-style-type: disc;
+}
+.columns div#uploadtext ul li {
+	float: none;
+	width: 95%;
+	margin-left: 2em;
+}
+#catlinks {
+	border: 1px solid #aaa;
+	padding: 0.25rem;
+}
+#catlinks .label {
+	font-size: .9rem;
+}
+#catlinks a.label.new {
+	background-color: #BA0F2A;
+}
+.catlinks li {
+	border-left: none;
+}
+.mw-specialpages-table td ul.columns li {
+	width: 50%;
 }
-/* END OTHER IE8 FIXES */
 
-/* UNTIL I CAN DETERMINE WHY toolboxend GENERATES AN EMPTY <li> IN THE MENU, I'M HIDING IT */
-#p-toolboxend { display:none;}
+/*#mw-content-text .columns li {float:none;width:90%;}*/
 
+footer.row ul.columns li {
+	display: inline;
+	float: none;
+}
+.columns #mw-normal-catlinks ul li {
+	float: none;
+	width: auto;
+}
+#mw-normal-catlinks a.new {
+	color: white;
+}
+ul.vcard {
+	padding: 0.5em 0.5em 0.55em 0.5em;
+}
 
-/* Jamie's Header Hider */
-body.page-Main_Page h1.firstHeading,
-body.page-Main_Page #siteSub,
-body.page-Extension_Main_Page h1.firstHeading,
-body.page-Extension_Main_Page #siteSub,
-body.page-Skin_Main_Page h1.firstHeading,
-body.page-Skin_Main_Page #siteSub,
-body.page-Farm_Main_Pageh1.firstHeading,
-body.page-Farm_Main_Page #siteSub,
-body.mw-special-Userlogin h2.title {
-  display:none;
+/* HEADERS */
+
+h1, h2, h3, h4, h5, h6 {
+	margin-top: .75em;
+	line-height: 1em;
+}
+.page-Special_SpecialPages h2 {
+	margin-bottom: 0.5em;
+}
+.editsection {
+	font-weight: normal;
+	font-size: 0.4em;
+}
+p.title {
+	padding: 0.9375em;
 }
 
-/* Don't like the black top bar? Copy this into your Common.css and change the colors
-.top-bar,
-.top-bar-section ul,
-.top-bar-section ul li.active > a,
-.top-bar-section li a:not(.button),
-.top-bar-section .has-form,
-.top-bar.expanded .title-area  {
-   background: black;
-   color: white;
+/* TABLES */
+
+.mw-content-ltr table#toc {
+	float: right;
+	width: auto;
+}
+.mw-content-rtl table#toc {
+	float: left;
+	width: auto;
+}
+table.formtable {
+	border: none;
+}
+table td[align="right"] {
+	text-align: right;
 }
 
-.top-bar-section > ul > .divider,
-.top-bar-section > ul > [role="separator"] {
-  border-color: black;
+/* TURN OFF TABLE STRIPING FOR EDITFORMS */
+
+table.formedit tr.even, table.formedit tr.alt, table.formedit tr:nth-of-type(even) {
+	background: transparent;
+}
+table {
+	width: 100%;
+}
+td.mw-label {
+	width: 20%;
+}
+td.mw-input {
+	width: 80%;
+}
+thead tr th {
+	cursor: pointer;
+}
+table.formtable th {
+	text-align: right !important;
+}
+td.smwpropname, th.smwpropname, td.smwspecname {
+	text-align: left;
+}
+table tbody tr td, table tr td {
+	line-height: 1.6em;
+}
+table.wikitable {
+	margin: 0em 0 1em 0;
+}
+table.wikitable>tr>th, table.wikitable>*>tr>th {
+	text-align: left;
+}
+table.wikitable>tr>th, table.wikitable>tr>td, table.wikitable>*>tr>th, table.wikitable>*>tr>td {
+	border: 3px #fff solid;
+	padding: 0.6em;
 }
-*/
 
-/* Add improved styling for the Echo extension */
+/* FORMS, INPUTS, FIELDSETS */
 
-#echo-notifications {
-  float: right;
-  display: inline-block;
-  margin: .5em 1em;
+.multipleTemplateInstance {
+	background-color: white !important;
+	border: none !important;
+	border-bottom: 1px dashed #999999 !important;
+}
+.multipleTemplateInstance table {
+	border: none !important;
+}
+.multipleTemplateAdder {
+	font-size: 0.9em;
+	padding: 0.4125em 0.5em 0.55em 0.5em;
+}
+.novalue {
+	color: #999999;
+	font-style: italic;
+	font-size: small;
+}
+input[type="file"], input[type="checkbox"], input[type="radio"], select {
+	padding: 5px;
+}
+input[type="file"], select {
+	padding: 5px;
+	border: 1px solid #cccccc;
+}
+.inputSpan select.createboxInput, .dateInput select.monthInput, input.hourInput, input.minuteInput, input.secondInput, input.dayInput, input.yearInput, input[name="*[* date][hour]"], input[name="*[* date][minute]"], input[name="*[* date][second]"] {
+	width: auto;
+	margin-right: 1em;
 }
 
-#echo-notifications #pt-notifications,
-#echo-notifications #pt-notifications-alert {
-  position: relative;
-  list-style: none;
+/*
+.inputSpan input.createboxInput {
+  width: 100%;
 }
+*/
 
-#echo-notifications #pt-notifications .mw-echo-notifications-badge
-{
-  width: 30px;
-  height: 35px;
-  text-align: center;
-  border-radius: 6px;
-  margin: 0;
-  padding:6px;
+.inputSpan button, .inputSpan .button {
+	margin: -4px 0 0 0;
+	padding: 0.37em 0.75em 0.6em 0.70em;
+}
+.ms-selectable input[type="text"] {
+	width: 100%;
+}
+button.ui-button-icon-only {
+	height: 2.24em !important;
+}
+select {
+	width: auto;
+}
+input[type="checkbox"].createboxInput {
+	width: auto;
+}
+label.checkboxLabel {
+	margin-right: 0.5em;
+}
+.edit_with_form {
+	margin: -2em 0 0 0;
+	float: right;
+}
+input[type="radio"], input[type="checkbox"] {
+	display: inline;
+}
+input[type='file'] {
+	margin-top: 0.4em;
+}
+input:not([type]), textarea, p.meta {
+	margin-bottom: 4px;
+}
+label {
+	display: inline;
+	font-weight: normal;
+}
+.mw-input label {
+	font-weight: normal;
+}
+#mw-content-text ul.SFI_timepicker_hours, #mw-content-text ul.SFI_timepicker_minutes {
+	list-style-type: none;
+}
+#mw-content-text ul.SFI_timepicker_hours li {
+	margin: 2px 2px;
+	padding: 4px;
+}
+.sminput.sminput-googlemaps3 p button {
+	padding-top: 0.35em;
+	padding-bottom: 0.6em;
+}
+li label.inline {
+	margin-bottom: 2px;
+	padding: 0;
+}
+button, .button {
+	margin: 0.5em 0;
+	padding: 0.3em 0.75em 0.4em 0.75em;
+}
+.top-bar-logo {
+	max-width: 100%;
+	height: auto;
+	max-height: 2.8125rem;
+	/* Important! max-height must not be higher than line-height */
+	display: inline-block;
+	vertical-align: middle;
+}
+.top-bar .button.search {
+	top: 0px;
+}
+.top-bar .button, .top-bar button {
+	padding-top: .35rem;
+	padding-bottom: .35rem;
+}
+.top-bar .button.search {
+	margin-left: 10px;
 }
+.top-bar input {
+	top: 0px;
+}
+@media only screen and (min-width: 641px) {
+	.top-bar .button.search {
+		top: 0px;
+	}
+	.top-bar .button.search {
+		margin-left: -4px;
+	}
+	.top-bar {
+		height: auto;
+	}
+}
+.top-bar-section .dropdown {
+	z-index: 600;
+}
+input[type="submit"] {
+	background-color: #5da423;
+	border-color: #457a1a;
+	color: white;
+	-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	-webkit-transition: background-color 300ms ease-out;
+	-moz-transition: background-color 300ms ease-out;
+	transition: background-color 300ms ease-out;
+}
+input#wpPreview {
+	background-color: #e9e9e9;
+	border-color: #d0d0d0;
+	color: black;
+	-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
+	-webkit-transition: background-color 300ms ease-out;
+	-moz-transition: background-color 300ms ease-out;
+	transition: background-color 300ms ease-out;
+}
+.editButtons input[type="submit"] {
+	display: inline-block;
+}
+legend {
+	font-size: 0.875em;
+	color: #4d4d4d;
+	cursor: pointer;
+	display: block;
+	font-weight: 500;
+}
+fieldset {
+	line-height: 1.6em;
+	padding: 0 1.25em 1em 1.25em;
+	margin-top: 0;
+}
+span.smwbuiltin, span.smwttactiveinline span.smwbuiltin {
+	font-style: normal;
+}
+
+/* MW still generates a label column for checkboxes, this minimizes is */
 
-#echo-notifications #pt-notifications-alert .mw-echo-notifications-badge
-{
-  width: 50px;
-  height: 30px;
-  text-align: center;
-  border-radius: 6px;
-  margin: 0;
+div.mw-htmlform-field-HTMLCheckField div.mw-label {
+	height: 0;
 }
 
-#echo-notifications #pt-notifications a.mw-echo-short-link .mw-badge,
-#echo-notifications #pt-notifications-alert a.mw-echo-short-link .mw-badge
-{
-  margin:0;
-  padding:6px;
+.vertical-divider {
+	width: 100%;
+	display: block;
+	background: #1A1A1A;
+	height: 1px;
+}
+.top-bar-section li.active:not(.has-form) a:not(.button), .top-bar-section li.active:not(.has-form) a:hover:not(.button) {
+	background: inherit;
+}
+.top-bar input {
+	width: auto;
+	display: inline;
 }
 
-#echo-notifications #pt-notifications .mw-badge-content,
-#echo-notifications #pt-notifications-alert .mw-badge-content
-{
-  font-size: 1.3em;
-  line-height: 1.1;
+/* Add improved styling for the Echo extension */
+
+#echo-notifications {
+	float: right;
+	display: inline-block;
+	margin: -1em 1em .5em;
+	position: relative;
+	z-index: 500;
+	max-height: 30px;
+}
+#echo-notifications-notice,
+#echo-notifications-alerts,
+#echo-notifications-messages,
+#echo-notifications {
+	display: inline-block;
+} 
+
+#pt-notifications-notice .mw-echo-notifications-badge,
+#pt-notifications-alert .mw-echo-notifications-badge,
+#pt-notifications-message .mw-echo-notifications-badge {
+	background-size: 1.4em !important;
+	font-size: 1.1em;
+	color: transparent;
+	filter: invert(15%);
+	height: auto !important;
+	display: block !important;
+}
+#echo-notifications li {
+	list-style: none;
+}
+#echo-notifications-messages {
+	float: right;
+}
+#echo-notifications-alerts {
+	float: right;
+}
+#pt-notifications-alert .mw-echo-unseen-notifications, #pt-notifications-message .mw-echo-unseen-notifications {
+	color: #0645ad !important;
 }
 
-#echo-notifications .mw-echo-overlay-pokey {
-  top: 30px;
-  left: -1px;
+#echo-notifications li {
+    margin: 0 0 0 1em;
 }
-#echo-notifications .mw-echo-overlay {
-  left: -185px;
-  width: 300px;
-  top: 40px;
+
+/* Make Echo extension more mobile friendly on small widths */
+
+@media only screen and (max-width: 450px) {
+	.oo-ui-popupWidget-popup {
+		width: auto !important;
+		position: relative !important;
+		margin-left: -260px !important;
+		font-size: 75% !important;
+	}
+	.oo-ui-clippableElement-clippable.oo-ui-popupWidget-body {
+		width: 100% !important;
+	}
 }
 
-#echo-notifications .mw-echo-overlay-title {
-  padding: 10px;
+/*Fix ULS CSS */
+
+#pt-uls a.uls-trigger {
+	padding-left: 15px !important;
 }
 
-#echo-notifications .mw-echo-icon {
-  margin: 5px;
+/* Orbit Slider Overrides for MW */
+
+.orbit-container .orbit-slides-container img {
+	width: 100%;
 }
+.orbit-bullets {
+	margin: 0 auto 30px auto !important;
+}
+
+/* Block-Grid UL fixes */
 
-#echo-notifications a.mw-echo-short-link .mw-badge {
-  margin-left: 0;
+ul[class*="block-grid"] {
+	margin: 0;
 }
 
-#echo-notifications #mw-echo-overlay-pref-link {
-  background-image:none;
-  font-size: 14px;
-  padding-left:0;
-  border-left:none;
+/* WikiEditor related fixes */
+/* lable of toolbar */
+
+.wikiEditor-ui-toolbar .label {
+	background: transparent;
+	color: #000;
 }
 
-#echo-notifications #mw-echo-overlay-link {
-  padding: 10px 0px 10px 15px;
-  background-position: left 50%;
-  border-right: none;
-  margin-right:0;
+/* selection boxes in toolbar adhere to font-size */
+
+.wikiEditor-ui-toolbar .page-characters div span {
+	height: 1.75em;
 }
 
-#echo-notifications .mw-echo-dismiss {
-  padding: 10px;
-  font-size: .8em;
-  min-width: 100%;
+/* backound of controls adhere to #p-cactions */
+
+.wikiEditor-ui-controls {
+	background-color: #f6f6f6;
 }
 
-#echo-notifications .mw-echo-notification {
-  overflow: visible;
+/* background of buttions adhere to #p-cactions*/
+
+.wikiEditor-ui-buttons {
+	background-color: #f6f6f6;
 }
 
-#echo-notifications .mw-echo-title {
-  max-width: 99%;
+/* Visual Editor Fixes */
+
+.ve-activated #content {
+	margin-top: 4em;
+}
+.ve-ce-documentNode {
+	background: #fff;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled>.oo-ui-toolGroup-tools>.oo-ui-tool>.oo-ui-tool-link, .oo-ui-barToolGroup>.oo-ui-toolGroup-tools>.oo-ui-tool.oo-ui-widget-disabled>.oo-ui-tool-link {
+	display: inline !important;
+}
+.ve-activated #catlinks {
+    display:none;
+}
+.ve-activated #firstHeading {
+    border-bottom:  1px solid #ccc;
+    padding: 0 0 5px;
+}
+.ve-activated [class*="mw-content-"] {
+    padding: 0;
 }
 
-/* Make Echo extension more mobile friendly on small widths */
+/* Page indicators */
 
-@media only screen and (min-width: 550px) {
-#echo-notifications .mw-echo-overlay { left: -420px; width: 450px; }
-#echo-notifications #mw-echo-overlay-pref-link { padding: 10px 0 10px 30px; }
-#echo-notifications #mw-echo-overlay-link { border-right: 1px solid #DDDDDD; margin-right: 2em; }
+.mw-indicators {
+	float: right;
+	line-height: 1.6;
+	font-size: 0.875em;
+	position: relative;
+	margin: -1em .5em .5em 1em;
+	max-height: 30px;
+	width: auto;
+	z-index: 1;
+}
+.mw-indicator {
+	display: inline-block;
 }
 
-/*Fix ULS CSS */
-#pt-uls a.uls-trigger {
-  padding-left:15px !important;
+/* Preferences Fixes */
+
+#preftoc li a {
+	color: white;
+	padding: .25em .5em;
+}
+#preftoc li a:hover {
+	background: aqua;
+	color: white;
+}
+#preftoc li {
+	margin: 2px;
+	display: inline-block;
+	float: none;
+	padding: 1px;
+	position: relative;
+	list-style-type: none;
+	list-style-image: none;
+	z-index: 3;
+	border-radius: 3px;
+	font-size: .85em;
+	background: #142849;
+	border: 0;
+	color: white;
+}
+#preftoc li a {
+	color: white;
+}
+#preftoc li a:hover {
+	background: #2ba6cb;
+}
+ul#preftoc {
+	margin: auto;
+	text-align: center;
+}
+#preftoc>li.selected {
+	background: #2C58A1;
+	box-shadow: 2px 2px 5px 2px rgba(50, 138, 64, 0.54);
+}
+#preftoc li.selected a {
+	cursor: default;
+	text-decoration: none;
+}
+#preferences table {
+	min-width: 100%;
+}
+#preftoc {
+	margin: 0;
+	padding: 0;
+	width: 100%;
+	clear: both;
+}
+#preftoc a:active {
+	display: block;
+	color: #000;
+	padding: 0 .7em;
+	position: relative;
+	text-decoration: none;
+}
+#preftoc li.selected a {
+	cursor: default;
+	text-decoration: none;
+}
+#preferences {
+	margin: 0;
+	clear: both;
+	background-color: #FFF;
+	border: none;
+}
+.prefsection {
+	border: none;
+	padding: 0;
+	margin: 0;
+}
+.prefsection legend {
+	font-weight: bold;
+}
+.prefsection table, .prefsection legend {
+	background-color: #F9F9F9;
+}
+#preferences legend.mainLegend {
+	display: none;
+}
+#preferences fieldset legend {
+	font-weight: bold;
+	padding: 0 .25em;
+	margin: 0;
+	margin: 0 .25em 0 1em;
+	background: #FFF;
+}
+td.htmlform-tip {
+	font-size: .8em;
+	padding: .2em 2em;
+	color: #666;
+	border: 1px solid #eeeffe;
+	background: #eeeffe;
+}
+.preferences-login {
+	clear: both;
+	margin-bottom: 1.5em;
+}
+.prefcache {
+	font-size: 90%;
+	margin-top: 1em;
 }

+ 5878 - 3555
assets/stylesheets/foundation.css

@@ -1,8 +1,53 @@
+meta.foundation-version {
+  font-family: "/5.5.3/"; }
+
+meta.foundation-mq-small {
+  font-family: "/only screen/";
+  width: 0; }
+
+meta.foundation-mq-small-only {
+  font-family: "/only screen and (max-width: 40em)/";
+  width: 0; }
+
+meta.foundation-mq-medium {
+  font-family: "/only screen and (min-width:40.0625em)/";
+  width: 40.0625em; }
+
+meta.foundation-mq-medium-only {
+  font-family: "/only screen and (min-width:40.0625em) and (max-width:64em)/";
+  width: 40.0625em; }
+
+meta.foundation-mq-large {
+  font-family: "/only screen and (min-width:64.0625em)/";
+  width: 64.0625em; }
+
+meta.foundation-mq-large-only {
+  font-family: "/only screen and (min-width:64.0625em) and (max-width:90em)/";
+  width: 64.0625em; }
+
+meta.foundation-mq-xlarge {
+  font-family: "/only screen and (min-width:90.0625em)/";
+  width: 90.0625em; }
+
+meta.foundation-mq-xlarge-only {
+  font-family: "/only screen and (min-width:90.0625em) and (max-width:120em)/";
+  width: 90.0625em; }
+
+meta.foundation-mq-xxlarge {
+  font-family: "/only screen and (min-width:120.0625em)/";
+  width: 120.0625em; }
+
+meta.foundation-data-attribute-namespace {
+  font-family: false; }
+
+html, body {
+  height: 100%; }
+
 *,
 *:before,
 *:after {
-  -moz-box-sizing: border-box;
   -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
   box-sizing: border-box; }
 
 html,
@@ -10,33 +55,24 @@ body {
   font-size: 100%; }
 
 body {
-  background: white;
-  color: #222222;
-  padding: 0;
-  margin: 0;
-  font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
-  font-weight: normal;
+  background: #fff;
+  color: #222;
+  cursor: auto;
+  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
   font-style: normal;
-  line-height: 1;
-  position: relative;
-  cursor: default; }
+  font-weight: normal;
+  line-height: 1.5;
+  margin: 0;
+  padding: 0;
+  position: relative; }
 
 a:hover {
   cursor: pointer; }
 
-a:focus {
-  outline: none; }
-
-img,
-object,
-embed {
+img {
   max-width: 100%;
   height: auto; }
 
-object,
-embed {
-  height: 100%; }
-
 img {
   -ms-interpolation-mode: bicubic; }
 
@@ -45,7 +81,10 @@ img {
 #map_canvas object,
 .map_canvas img,
 .map_canvas embed,
-.map_canvas object {
+.map_canvas object,
+.mqa-display img,
+.mqa-display embed,
+.mqa-display object {
   max-width: none !important; }
 
 .left {
@@ -54,23 +93,21 @@ img {
 .right {
   float: right !important; }
 
-.text-left {
-  text-align: left !important; }
-
-.text-right {
-  text-align: right !important; }
-
-.text-center {
-  text-align: center !important; }
-
-.text-justify {
-  text-align: justify !important; }
+.clearfix:before, .clearfix:after {
+  content: " ";
+  display: table; }
+.clearfix:after {
+  clear: both; }
 
 .hide {
   display: none; }
 
+.invisible {
+  visibility: hidden; }
+
 .antialiased {
-  -webkit-font-smoothing: antialiased; }
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale; }
 
 img {
   display: inline-block;
@@ -83,44 +120,35 @@ textarea {
 select {
   width: 100%; }
 
-/* Grid HTML Classes */
 .row {
-  width: 100%;
-  margin-left: auto;
-  margin-right: auto;
-  margin-top: 0;
-  margin-bottom: 0;
-  max-width: 62.5em;
-  *zoom: 1; }
+  margin: 0 auto;
+  max-width: 62.5rem;
+  width: 100%; }
   .row:before, .row:after {
     content: " ";
     display: table; }
   .row:after {
     clear: both; }
-  .row.collapse .column,
-  .row.collapse .columns {
-    position: relative;
+  .row.collapse > .column,
+  .row.collapse > .columns {
     padding-left: 0;
-    padding-right: 0;
-    float: left; }
+    padding-right: 0; }
+  .row.collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
   .row .row {
-    width: auto;
-    margin-left: -0.9375em;
-    margin-right: -0.9375em;
-    margin-top: 0;
-    margin-bottom: 0;
+    margin: 0 -0.9375rem;
     max-width: none;
-    *zoom: 1; }
+    width: auto; }
     .row .row:before, .row .row:after {
       content: " ";
       display: table; }
     .row .row:after {
       clear: both; }
     .row .row.collapse {
-      width: auto;
       margin: 0;
       max-width: none;
-      *zoom: 1; }
+      width: auto; }
       .row .row.collapse:before, .row .row.collapse:after {
         content: " ";
         display: table; }
@@ -129,4128 +157,6423 @@ select {
 
 .column,
 .columns {
-  position: relative;
-  padding-left: 0.9375em;
-  padding-right: 0.9375em;
+  padding-left: 0.9375rem;
+  padding-right: 0.9375rem;
   width: 100%;
   float: left; }
 
+.column + .column:last-child,
+.columns + .column:last-child, .column +
+.columns:last-child,
+.columns +
+.columns:last-child {
+  float: right; }
+.column + .column.end,
+.columns + .column.end, .column +
+.columns.end,
+.columns +
+.columns.end {
+  float: left; }
+
 @media only screen {
-  .column,
-  .columns {
+  .small-push-0 {
     position: relative;
-    padding-left: 0.9375em;
-    padding-right: 0.9375em;
-    float: left; }
+    left: 0;
+    right: auto; }
 
-  .small-1 {
+  .small-pull-0 {
     position: relative;
-    width: 8.33333%; }
+    right: 0;
+    left: auto; }
 
-  .small-2 {
+  .small-push-1 {
     position: relative;
-    width: 16.66667%; }
+    left: 8.33333%;
+    right: auto; }
 
-  .small-3 {
+  .small-pull-1 {
     position: relative;
-    width: 25%; }
+    right: 8.33333%;
+    left: auto; }
 
-  .small-4 {
+  .small-push-2 {
     position: relative;
-    width: 33.33333%; }
+    left: 16.66667%;
+    right: auto; }
 
-  .small-5 {
+  .small-pull-2 {
     position: relative;
-    width: 41.66667%; }
+    right: 16.66667%;
+    left: auto; }
 
-  .small-6 {
+  .small-push-3 {
     position: relative;
-    width: 50%; }
+    left: 25%;
+    right: auto; }
 
-  .small-7 {
+  .small-pull-3 {
     position: relative;
-    width: 58.33333%; }
+    right: 25%;
+    left: auto; }
 
-  .small-8 {
+  .small-push-4 {
     position: relative;
-    width: 66.66667%; }
+    left: 33.33333%;
+    right: auto; }
 
-  .small-9 {
+  .small-pull-4 {
     position: relative;
-    width: 75%; }
+    right: 33.33333%;
+    left: auto; }
 
-  .small-10 {
+  .small-push-5 {
     position: relative;
-    width: 83.33333%; }
+    left: 41.66667%;
+    right: auto; }
 
-  .small-11 {
+  .small-pull-5 {
     position: relative;
-    width: 91.66667%; }
+    right: 41.66667%;
+    left: auto; }
 
-  .small-12 {
+  .small-push-6 {
     position: relative;
-    width: 100%; }
+    left: 50%;
+    right: auto; }
 
-  .small-offset-0 {
+  .small-pull-6 {
     position: relative;
-    margin-left: 0%; }
+    right: 50%;
+    left: auto; }
 
-  .small-offset-1 {
+  .small-push-7 {
     position: relative;
-    margin-left: 8.33333%; }
+    left: 58.33333%;
+    right: auto; }
 
-  .small-offset-2 {
+  .small-pull-7 {
     position: relative;
-    margin-left: 16.66667%; }
+    right: 58.33333%;
+    left: auto; }
 
-  .small-offset-3 {
+  .small-push-8 {
     position: relative;
-    margin-left: 25%; }
+    left: 66.66667%;
+    right: auto; }
 
-  .small-offset-4 {
+  .small-pull-8 {
     position: relative;
-    margin-left: 33.33333%; }
+    right: 66.66667%;
+    left: auto; }
 
-  .small-offset-5 {
+  .small-push-9 {
     position: relative;
-    margin-left: 41.66667%; }
+    left: 75%;
+    right: auto; }
 
-  .small-offset-6 {
+  .small-pull-9 {
     position: relative;
-    margin-left: 50%; }
+    right: 75%;
+    left: auto; }
 
-  .small-offset-7 {
+  .small-push-10 {
     position: relative;
-    margin-left: 58.33333%; }
+    left: 83.33333%;
+    right: auto; }
 
-  .small-offset-8 {
+  .small-pull-10 {
     position: relative;
-    margin-left: 66.66667%; }
+    right: 83.33333%;
+    left: auto; }
 
-  .small-offset-9 {
+  .small-push-11 {
     position: relative;
-    margin-left: 75%; }
+    left: 91.66667%;
+    right: auto; }
 
-  .small-offset-10 {
+  .small-pull-11 {
     position: relative;
-    margin-left: 83.33333%; }
-
-  [class*="column"] + [class*="column"]:last-child {
-    float: right; }
+    right: 91.66667%;
+    left: auto; }
 
-  [class*="column"] + [class*="column"].end {
+  .column,
+  .columns {
+    position: relative;
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
     float: left; }
 
-  .column.small-centered,
-  .columns.small-centered {
-    position: relative;
-    margin-left: auto;
-    margin-right: auto;
-    float: none !important; } }
-/* Styles for screens that are atleast 768px; */
-@media only screen and (min-width: 768px) {
-  .large-1 {
-    position: relative;
+  .small-1 {
     width: 8.33333%; }
 
-  .large-2 {
-    position: relative;
+  .small-2 {
     width: 16.66667%; }
 
-  .large-3 {
-    position: relative;
+  .small-3 {
     width: 25%; }
 
-  .large-4 {
-    position: relative;
+  .small-4 {
     width: 33.33333%; }
 
-  .large-5 {
-    position: relative;
+  .small-5 {
     width: 41.66667%; }
 
-  .large-6 {
-    position: relative;
+  .small-6 {
     width: 50%; }
 
-  .large-7 {
-    position: relative;
+  .small-7 {
     width: 58.33333%; }
 
-  .large-8 {
-    position: relative;
+  .small-8 {
     width: 66.66667%; }
 
-  .large-9 {
-    position: relative;
+  .small-9 {
     width: 75%; }
 
-  .large-10 {
-    position: relative;
+  .small-10 {
     width: 83.33333%; }
 
-  .large-11 {
-    position: relative;
+  .small-11 {
     width: 91.66667%; }
 
-  .large-12 {
-    position: relative;
+  .small-12 {
     width: 100%; }
 
-  .row .large-offset-0 {
-    position: relative;
-    margin-left: 0%; }
+  .small-offset-0 {
+    margin-left: 0 !important; }
 
-  .row .large-offset-1 {
-    position: relative;
-    margin-left: 8.33333%; }
+  .small-offset-1 {
+    margin-left: 8.33333% !important; }
 
-  .row .large-offset-2 {
-    position: relative;
-    margin-left: 16.66667%; }
+  .small-offset-2 {
+    margin-left: 16.66667% !important; }
 
-  .row .large-offset-3 {
-    position: relative;
-    margin-left: 25%; }
+  .small-offset-3 {
+    margin-left: 25% !important; }
 
-  .row .large-offset-4 {
-    position: relative;
-    margin-left: 33.33333%; }
+  .small-offset-4 {
+    margin-left: 33.33333% !important; }
 
-  .row .large-offset-5 {
-    position: relative;
-    margin-left: 41.66667%; }
+  .small-offset-5 {
+    margin-left: 41.66667% !important; }
 
-  .row .large-offset-6 {
-    position: relative;
-    margin-left: 50%; }
+  .small-offset-6 {
+    margin-left: 50% !important; }
 
-  .row .large-offset-7 {
-    position: relative;
-    margin-left: 58.33333%; }
+  .small-offset-7 {
+    margin-left: 58.33333% !important; }
 
-  .row .large-offset-8 {
-    position: relative;
-    margin-left: 66.66667%; }
+  .small-offset-8 {
+    margin-left: 66.66667% !important; }
 
-  .row .large-offset-9 {
-    position: relative;
-    margin-left: 75%; }
+  .small-offset-9 {
+    margin-left: 75% !important; }
+
+  .small-offset-10 {
+    margin-left: 83.33333% !important; }
+
+  .small-offset-11 {
+    margin-left: 91.66667% !important; }
+
+  .small-reset-order {
+    float: left;
+    left: auto;
+    margin-left: 0;
+    margin-right: 0;
+    right: auto; }
+
+  .column.small-centered,
+  .columns.small-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
 
-  .row .large-offset-10 {
+  .column.small-uncentered,
+  .columns.small-uncentered {
+    float: left;
+    margin-left: 0;
+    margin-right: 0; }
+
+  .column.small-centered:last-child,
+  .columns.small-centered:last-child {
+    float: none; }
+
+  .column.small-uncentered:last-child,
+  .columns.small-uncentered:last-child {
+    float: left; }
+
+  .column.small-uncentered.opposite,
+  .columns.small-uncentered.opposite {
+    float: right; }
+
+  .row.small-collapse > .column,
+  .row.small-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.small-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.small-uncollapse > .column,
+  .row.small-uncollapse > .columns {
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; } }
+@media only screen and (min-width: 40.0625em) {
+  .medium-push-0 {
     position: relative;
-    margin-left: 83.33333%; }
+    left: 0;
+    right: auto; }
 
-  .row .large-offset-11 {
+  .medium-pull-0 {
     position: relative;
-    margin-left: 91.66667%; }
+    right: 0;
+    left: auto; }
 
-  .push-1 {
+  .medium-push-1 {
     position: relative;
     left: 8.33333%;
     right: auto; }
 
-  .pull-1 {
+  .medium-pull-1 {
     position: relative;
     right: 8.33333%;
     left: auto; }
 
-  .push-2 {
+  .medium-push-2 {
     position: relative;
     left: 16.66667%;
     right: auto; }
 
-  .pull-2 {
+  .medium-pull-2 {
     position: relative;
     right: 16.66667%;
     left: auto; }
 
-  .push-3 {
+  .medium-push-3 {
     position: relative;
     left: 25%;
     right: auto; }
 
-  .pull-3 {
+  .medium-pull-3 {
     position: relative;
     right: 25%;
     left: auto; }
 
-  .push-4 {
+  .medium-push-4 {
     position: relative;
     left: 33.33333%;
     right: auto; }
 
-  .pull-4 {
+  .medium-pull-4 {
     position: relative;
     right: 33.33333%;
     left: auto; }
 
-  .push-5 {
+  .medium-push-5 {
     position: relative;
     left: 41.66667%;
     right: auto; }
 
-  .pull-5 {
+  .medium-pull-5 {
     position: relative;
     right: 41.66667%;
     left: auto; }
 
-  .push-6 {
+  .medium-push-6 {
     position: relative;
     left: 50%;
     right: auto; }
 
-  .pull-6 {
+  .medium-pull-6 {
     position: relative;
     right: 50%;
     left: auto; }
 
-  .push-7 {
+  .medium-push-7 {
     position: relative;
     left: 58.33333%;
     right: auto; }
 
-  .pull-7 {
+  .medium-pull-7 {
     position: relative;
     right: 58.33333%;
     left: auto; }
 
-  .push-8 {
+  .medium-push-8 {
     position: relative;
     left: 66.66667%;
     right: auto; }
 
-  .pull-8 {
+  .medium-pull-8 {
     position: relative;
     right: 66.66667%;
     left: auto; }
 
-  .push-9 {
+  .medium-push-9 {
     position: relative;
     left: 75%;
     right: auto; }
 
-  .pull-9 {
+  .medium-pull-9 {
     position: relative;
     right: 75%;
     left: auto; }
 
-  .push-10 {
+  .medium-push-10 {
     position: relative;
     left: 83.33333%;
     right: auto; }
 
-  .pull-10 {
+  .medium-pull-10 {
     position: relative;
     right: 83.33333%;
     left: auto; }
 
-  .push-11 {
+  .medium-push-11 {
     position: relative;
     left: 91.66667%;
     right: auto; }
 
-  .pull-11 {
+  .medium-pull-11 {
     position: relative;
     right: 91.66667%;
     left: auto; }
 
-  .column.large-centered,
-  .columns.large-centered {
+  .column,
+  .columns {
     position: relative;
-    margin-left: auto;
-    margin-right: auto;
-    float: none !important; }
-
-  .column.large-uncentered,
-  .columns.large-uncentered {
-    margin-left: 0;
-    margin-right: 0;
-    float: left !important; }
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
 
-  .column.large-uncentered.opposite,
-  .columns.large-uncentered.opposite {
-    float: right !important; } }
-/* Foundation Visibility HTML Classes */
-.show-for-small,
-.show-for-medium-down,
-.show-for-large-down {
-  display: inherit !important; }
+  .medium-1 {
+    width: 8.33333%; }
 
-.show-for-medium,
-.show-for-medium-up,
-.show-for-large,
-.show-for-large-up,
-.show-for-xlarge {
-  display: none !important; }
+  .medium-2 {
+    width: 16.66667%; }
 
-.hide-for-medium,
-.hide-for-medium-up,
-.hide-for-large,
-.hide-for-large-up,
-.hide-for-xlarge {
-  display: inherit !important; }
+  .medium-3 {
+    width: 25%; }
 
-.hide-for-small,
-.hide-for-medium-down,
-.hide-for-large-down {
-  display: none !important; }
+  .medium-4 {
+    width: 33.33333%; }
 
-/* Specific visilbity for tables */
-table.show-for-small, table.show-for-medium-down, table.show-for-large-down, table.hide-for-medium, table.hide-for-medium-up, table.hide-for-large, table.hide-for-large-up, table.hide-for-xlarge {
-  display: table; }
+  .medium-5 {
+    width: 41.66667%; }
 
-thead.show-for-small, thead.show-for-medium-down, thead.show-for-large-down, thead.hide-for-medium, thead.hide-for-medium-up, thead.hide-for-large, thead.hide-for-large-up, thead.hide-for-xlarge {
-  display: table-header-group !important; }
+  .medium-6 {
+    width: 50%; }
 
-tbody.show-for-small, tbody.show-for-medium-down, tbody.show-for-large-down, tbody.hide-for-medium, tbody.hide-for-medium-up, tbody.hide-for-large, tbody.hide-for-large-up, tbody.hide-for-xlarge {
-  display: table-row-group !important; }
+  .medium-7 {
+    width: 58.33333%; }
 
-tr.show-for-small, tr.show-for-medium-down, tr.show-for-large-down, tr.hide-for-medium, tr.hide-for-medium-up, tr.hide-for-large, tr.hide-for-large-up, tr.hide-for-xlarge {
-  display: table-row !important; }
+  .medium-8 {
+    width: 66.66667%; }
 
-td.show-for-small, td.show-for-medium-down, td.show-for-large-down, td.hide-for-medium, td.hide-for-medium-up, td.hide-for-large, td.hide-for-large-up, td.hide-for-xlarge,
-th.show-for-small,
-th.show-for-medium-down,
-th.show-for-large-down,
-th.hide-for-medium,
-th.hide-for-medium-up,
-th.hide-for-large,
-th.hide-for-large-up,
-th.hide-for-xlarge {
-  display: table-cell !important; }
+  .medium-9 {
+    width: 75%; }
 
-/* Medium Displays: 768px - 1279px */
-@media only screen and (min-width: 768px) {
-  .show-for-medium,
-  .show-for-medium-up {
-    display: inherit !important; }
+  .medium-10 {
+    width: 83.33333%; }
 
-  .show-for-small {
-    display: none !important; }
+  .medium-11 {
+    width: 91.66667%; }
 
-  .hide-for-small {
-    display: inherit !important; }
+  .medium-12 {
+    width: 100%; }
 
-  .hide-for-medium,
-  .hide-for-medium-up {
-    display: none !important; }
+  .medium-offset-0 {
+    margin-left: 0 !important; }
 
-  /* Specific visilbity for tables */
-  table.show-for-medium, table.show-for-medium-up, table.hide-for-small {
-    display: table; }
+  .medium-offset-1 {
+    margin-left: 8.33333% !important; }
 
-  thead.show-for-medium, thead.show-for-medium-up, thead.hide-for-small {
-    display: table-header-group !important; }
+  .medium-offset-2 {
+    margin-left: 16.66667% !important; }
 
-  tbody.show-for-medium, tbody.show-for-medium-up, tbody.hide-for-small {
-    display: table-row-group !important; }
+  .medium-offset-3 {
+    margin-left: 25% !important; }
 
-  tr.show-for-medium, tr.show-for-medium-up, tr.hide-for-small {
-    display: table-row !important; }
+  .medium-offset-4 {
+    margin-left: 33.33333% !important; }
 
-  td.show-for-medium, td.show-for-medium-up, td.hide-for-small,
-  th.show-for-medium,
-  th.show-for-medium-up,
-  th.hide-for-small {
-    display: table-cell !important; } }
-/* Large Displays: 1280px - 1440px */
-@media only screen and (min-width: 1280px) {
-  .show-for-large,
-  .show-for-large-up {
-    display: inherit !important; }
+  .medium-offset-5 {
+    margin-left: 41.66667% !important; }
 
-  .show-for-medium,
-  .show-for-medium-down {
-    display: none !important; }
+  .medium-offset-6 {
+    margin-left: 50% !important; }
 
-  .hide-for-medium,
-  .hide-for-medium-down {
-    display: inherit !important; }
+  .medium-offset-7 {
+    margin-left: 58.33333% !important; }
 
-  .hide-for-large,
-  .hide-for-large-up {
-    display: none !important; }
+  .medium-offset-8 {
+    margin-left: 66.66667% !important; }
 
-  /* Specific visilbity for tables */
-  table.show-for-large, table.show-for-large-up, table.hide-for-medium, table.hide-for-medium-down {
-    display: table; }
+  .medium-offset-9 {
+    margin-left: 75% !important; }
 
-  thead.show-for-large, thead.show-for-large-up, thead.hide-for-medium, thead.hide-for-medium-down {
-    display: table-header-group !important; }
+  .medium-offset-10 {
+    margin-left: 83.33333% !important; }
 
-  tbody.show-for-large, tbody.show-for-large-up, tbody.hide-for-medium, tbody.hide-for-medium-down {
-    display: table-row-group !important; }
+  .medium-offset-11 {
+    margin-left: 91.66667% !important; }
 
-  tr.show-for-large, tr.show-for-large-up, tr.hide-for-medium, tr.hide-for-medium-down {
-    display: table-row !important; }
+  .medium-reset-order {
+    float: left;
+    left: auto;
+    margin-left: 0;
+    margin-right: 0;
+    right: auto; }
 
-  td.show-for-large, td.show-for-large-up, td.hide-for-medium, td.hide-for-medium-down,
-  th.show-for-large,
-  th.show-for-large-up,
-  th.hide-for-medium,
-  th.hide-for-medium-down {
-    display: table-cell !important; } }
-/* X-Large Displays: 1400px and up */
-@media only screen and (min-width: 1440px) {
-  .show-for-xlarge {
-    display: inherit !important; }
+  .column.medium-centered,
+  .columns.medium-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
 
-  .show-for-large,
-  .show-for-large-down {
-    display: none !important; }
+  .column.medium-uncentered,
+  .columns.medium-uncentered {
+    float: left;
+    margin-left: 0;
+    margin-right: 0; }
 
-  .hide-for-large,
-  .hide-for-large-down {
-    display: inherit !important; }
+  .column.medium-centered:last-child,
+  .columns.medium-centered:last-child {
+    float: none; }
 
-  .hide-for-xlarge {
-    display: none !important; }
+  .column.medium-uncentered:last-child,
+  .columns.medium-uncentered:last-child {
+    float: left; }
 
-  /* Specific visilbity for tables */
-  table.show-for-xlarge, table.hide-for-large, table.hide-for-large-down {
-    display: table; }
+  .column.medium-uncentered.opposite,
+  .columns.medium-uncentered.opposite {
+    float: right; }
 
-  thead.show-for-xlarge, thead.hide-for-large, thead.hide-for-large-down {
-    display: table-header-group !important; }
+  .row.medium-collapse > .column,
+  .row.medium-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.medium-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.medium-uncollapse > .column,
+  .row.medium-uncollapse > .columns {
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
 
-  tbody.show-for-xlarge, tbody.hide-for-large, tbody.hide-for-large-down {
-    display: table-row-group !important; }
+  .push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
 
-  tr.show-for-xlarge, tr.hide-for-large, tr.hide-for-large-down {
-    display: table-row !important; }
+  .pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
 
-  td.show-for-xlarge, td.hide-for-large, td.hide-for-large-down,
-  th.show-for-xlarge,
-  th.hide-for-large,
-  th.hide-for-large-down {
-    display: table-cell !important; } }
-/* Orientation targeting */
-.show-for-landscape,
-.hide-for-portrait {
-  display: inherit !important; }
+  .push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
 
-.hide-for-landscape,
-.show-for-portrait {
-  display: none !important; }
+  .pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
 
-/* Specific visilbity for tables */
-table.hide-for-landscape, table.show-for-portrait {
-  display: table; }
+  .push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
 
-thead.hide-for-landscape, thead.show-for-portrait {
-  display: table-header-group !important; }
+  .pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
 
-tbody.hide-for-landscape, tbody.show-for-portrait {
-  display: table-row-group !important; }
+  .push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
 
-tr.hide-for-landscape, tr.show-for-portrait {
-  display: table-row !important; }
+  .pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
 
-td.hide-for-landscape, td.show-for-portrait,
-th.hide-for-landscape,
-th.show-for-portrait {
-  display: table-cell !important; }
+  .push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
 
-@media only screen and (orientation: landscape) {
-  .show-for-landscape,
-  .hide-for-portrait {
-    display: inherit !important; }
+  .pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
 
-  .hide-for-landscape,
-  .show-for-portrait {
-    display: none !important; }
+  .push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
 
-  /* Specific visilbity for tables */
-  table.show-for-landscape, table.hide-for-portrait {
-    display: table; }
+  .pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
 
-  thead.show-for-landscape, thead.hide-for-portrait {
-    display: table-header-group !important; }
+  .push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
 
-  tbody.show-for-landscape, tbody.hide-for-portrait {
-    display: table-row-group !important; }
+  .pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
 
-  tr.show-for-landscape, tr.hide-for-portrait {
-    display: table-row !important; }
+  .push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
 
-  td.show-for-landscape, td.hide-for-portrait,
-  th.show-for-landscape,
-  th.hide-for-portrait {
-    display: table-cell !important; } }
-@media only screen and (orientation: portrait) {
-  .show-for-portrait,
-  .hide-for-landscape {
-    display: inherit !important; }
+  .pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
 
-  .hide-for-portrait,
-  .show-for-landscape {
-    display: none !important; }
+  .push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
 
-  /* Specific visilbity for tables */
-  table.show-for-portrait, table.hide-for-landscape {
-    display: table; }
+  .pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
 
-  thead.show-for-portrait, thead.hide-for-landscape {
-    display: table-header-group !important; }
+  .push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
 
-  tbody.show-for-portrait, tbody.hide-for-landscape {
-    display: table-row-group !important; }
+  .pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
 
-  tr.show-for-portrait, tr.hide-for-landscape {
-    display: table-row !important; }
+  .push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
 
-  td.show-for-portrait, td.hide-for-landscape,
-  th.show-for-portrait,
-  th.hide-for-landscape {
-    display: table-cell !important; } }
-/* Touch-enabled device targeting */
-.show-for-touch {
-  display: none !important; }
+  .pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
 
-.hide-for-touch {
-  display: inherit !important; }
+  .push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
 
-.touch .show-for-touch {
-  display: inherit !important; }
+  .pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .large-push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
 
-.touch .hide-for-touch {
-  display: none !important; }
+  .large-pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
 
-/* Specific visilbity for tables */
-table.hide-for-touch {
-  display: table; }
+  .large-push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
 
-.touch table.show-for-touch {
-  display: table; }
+  .large-pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
 
-thead.hide-for-touch {
-  display: table-header-group !important; }
+  .large-push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
 
-.touch thead.show-for-touch {
-  display: table-header-group !important; }
+  .large-pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
 
-tbody.hide-for-touch {
-  display: table-row-group !important; }
+  .large-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
 
-.touch tbody.show-for-touch {
-  display: table-row-group !important; }
+  .large-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
 
-tr.hide-for-touch {
-  display: table-row !important; }
+  .large-push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
 
-.touch tr.show-for-touch {
-  display: table-row !important; }
+  .large-pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
 
-td.hide-for-touch {
-  display: table-cell !important; }
+  .large-push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
 
-.touch td.show-for-touch {
-  display: table-cell !important; }
+  .large-pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
 
-th.hide-for-touch {
-  display: table-cell !important; }
+  .large-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
 
-.touch th.show-for-touch {
-  display: table-cell !important; }
+  .large-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
 
-/* Foundation Block Grids for below small breakpoint */
-@media only screen {
-  [class*="block-grid-"] {
-    display: block;
-    padding: 0;
-    margin: -0.625em;
-    *zoom: 1; }
-    [class*="block-grid-"]:before, [class*="block-grid-"]:after {
-      content: " ";
-      display: table; }
-    [class*="block-grid-"]:after {
-      clear: both; }
-    [class*="block-grid-"] > li {
-      display: inline;
-      height: auto;
-      float: left;
-      padding: 0 0.625em 1.25em; }
+  .large-push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
 
-  .small-block-grid-1 > li {
-    width: 100%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-1 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-1 > li:nth-of-type(1n+1) {
-      clear: both; }
+  .large-pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
 
-  .small-block-grid-2 > li {
-    width: 50%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-2 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-2 > li:nth-of-type(2n+1) {
-      clear: both; }
+  .large-push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
 
-  .small-block-grid-3 > li {
-    width: 33.33333%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-3 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-3 > li:nth-of-type(3n+1) {
-      clear: both; }
+  .large-pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
 
-  .small-block-grid-4 > li {
-    width: 25%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-4 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-4 > li:nth-of-type(4n+1) {
-      clear: both; }
+  .large-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
 
-  .small-block-grid-5 > li {
-    width: 20%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-5 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-5 > li:nth-of-type(5n+1) {
-      clear: both; }
+  .large-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
 
-  .small-block-grid-6 > li {
-    width: 16.66667%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-6 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-6 > li:nth-of-type(6n+1) {
-      clear: both; }
+  .large-push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
 
-  .small-block-grid-7 > li {
-    width: 14.28571%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-7 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-7 > li:nth-of-type(7n+1) {
-      clear: both; }
+  .large-pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
 
-  .small-block-grid-8 > li {
-    width: 12.5%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-8 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-8 > li:nth-of-type(8n+1) {
-      clear: both; }
+  .large-push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
 
-  .small-block-grid-9 > li {
-    width: 11.11111%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-9 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-9 > li:nth-of-type(9n+1) {
-      clear: both; }
+  .large-pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; }
 
-  .small-block-grid-10 > li {
-    width: 10%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-10 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-10 > li:nth-of-type(10n+1) {
-      clear: both; }
+  .column,
+  .columns {
+    position: relative;
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
 
-  .small-block-grid-11 > li {
-    width: 9.09091%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-11 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-11 > li:nth-of-type(11n+1) {
-      clear: both; }
+  .large-1 {
+    width: 8.33333%; }
 
-  .small-block-grid-12 > li {
-    width: 8.33333%;
-    padding: 0 0.625em 1.25em; }
-    .small-block-grid-12 > li:nth-of-type(n) {
-      clear: none; }
-    .small-block-grid-12 > li:nth-of-type(12n+1) {
-      clear: both; } }
-/* Foundation Block Grids for above small breakpoint */
-@media only screen and (min-width: 768px) {
-  /* Remove small grid clearing */
-  .small-block-grid-1 > li:nth-of-type(1n+1) {
-    clear: none; }
+  .large-2 {
+    width: 16.66667%; }
 
-  .small-block-grid-2 > li:nth-of-type(2n+1) {
-    clear: none; }
+  .large-3 {
+    width: 25%; }
 
-  .small-block-grid-3 > li:nth-of-type(3n+1) {
-    clear: none; }
+  .large-4 {
+    width: 33.33333%; }
 
-  .small-block-grid-4 > li:nth-of-type(4n+1) {
-    clear: none; }
+  .large-5 {
+    width: 41.66667%; }
 
-  .small-block-grid-5 > li:nth-of-type(5n+1) {
-    clear: none; }
+  .large-6 {
+    width: 50%; }
 
-  .small-block-grid-6 > li:nth-of-type(6n+1) {
-    clear: none; }
+  .large-7 {
+    width: 58.33333%; }
 
-  .small-block-grid-7 > li:nth-of-type(7n+1) {
-    clear: none; }
+  .large-8 {
+    width: 66.66667%; }
 
-  .small-block-grid-8 > li:nth-of-type(8n+1) {
-    clear: none; }
+  .large-9 {
+    width: 75%; }
 
-  .small-block-grid-9 > li:nth-of-type(9n+1) {
-    clear: none; }
+  .large-10 {
+    width: 83.33333%; }
 
-  .small-block-grid-10 > li:nth-of-type(10n+1) {
-    clear: none; }
+  .large-11 {
+    width: 91.66667%; }
 
-  .small-block-grid-11 > li:nth-of-type(11n+1) {
-    clear: none; }
+  .large-12 {
+    width: 100%; }
 
-  .small-block-grid-12 > li:nth-of-type(12n+1) {
-    clear: none; }
+  .large-offset-0 {
+    margin-left: 0 !important; }
 
-  .large-block-grid-1 > li {
-    width: 100%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-1 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-1 > li:nth-of-type(1n+1) {
-      clear: both; }
+  .large-offset-1 {
+    margin-left: 8.33333% !important; }
 
-  .large-block-grid-2 > li {
-    width: 50%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-2 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-2 > li:nth-of-type(2n+1) {
-      clear: both; }
+  .large-offset-2 {
+    margin-left: 16.66667% !important; }
 
-  .large-block-grid-3 > li {
-    width: 33.33333%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-3 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-3 > li:nth-of-type(3n+1) {
-      clear: both; }
+  .large-offset-3 {
+    margin-left: 25% !important; }
 
-  .large-block-grid-4 > li {
-    width: 25%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-4 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-4 > li:nth-of-type(4n+1) {
-      clear: both; }
+  .large-offset-4 {
+    margin-left: 33.33333% !important; }
 
-  .large-block-grid-5 > li {
-    width: 20%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-5 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-5 > li:nth-of-type(5n+1) {
-      clear: both; }
+  .large-offset-5 {
+    margin-left: 41.66667% !important; }
 
-  .large-block-grid-6 > li {
-    width: 16.66667%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-6 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-6 > li:nth-of-type(6n+1) {
-      clear: both; }
+  .large-offset-6 {
+    margin-left: 50% !important; }
 
-  .large-block-grid-7 > li {
-    width: 14.28571%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-7 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-7 > li:nth-of-type(7n+1) {
-      clear: both; }
+  .large-offset-7 {
+    margin-left: 58.33333% !important; }
 
-  .large-block-grid-8 > li {
-    width: 12.5%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-8 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-8 > li:nth-of-type(8n+1) {
-      clear: both; }
+  .large-offset-8 {
+    margin-left: 66.66667% !important; }
 
-  .large-block-grid-9 > li {
-    width: 11.11111%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-9 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-9 > li:nth-of-type(9n+1) {
-      clear: both; }
+  .large-offset-9 {
+    margin-left: 75% !important; }
 
-  .large-block-grid-10 > li {
-    width: 10%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-10 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-10 > li:nth-of-type(10n+1) {
-      clear: both; }
+  .large-offset-10 {
+    margin-left: 83.33333% !important; }
 
-  .large-block-grid-11 > li {
-    width: 9.09091%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-11 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-11 > li:nth-of-type(11n+1) {
-      clear: both; }
+  .large-offset-11 {
+    margin-left: 91.66667% !important; }
 
-  .large-block-grid-12 > li {
-    width: 8.33333%;
-    padding: 0 0.625em 1.25em; }
-    .large-block-grid-12 > li:nth-of-type(n) {
-      clear: none; }
-    .large-block-grid-12 > li:nth-of-type(12n+1) {
-      clear: both; } }
-p.lead {
-  font-size: 1.21875em;
-  line-height: 1.6; }
+  .large-reset-order {
+    float: left;
+    left: auto;
+    margin-left: 0;
+    margin-right: 0;
+    right: auto; }
 
-.subheader {
-  line-height: 1.4;
-  color: #6f6f6f;
-  font-weight: 300;
-  margin-top: 0.2em;
-  margin-bottom: 0.5em; }
+  .column.large-centered,
+  .columns.large-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
 
-/* Typography resets */
-div,
-dl,
-dt,
-dd,
-ul,
-ol,
-li,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-pre,
-form,
-p,
-blockquote,
-th,
-td {
-  margin: 0;
-  padding: 0;
-  direction: ltr; }
+  .column.large-uncentered,
+  .columns.large-uncentered {
+    float: left;
+    margin-left: 0;
+    margin-right: 0; }
 
-/* Default Link Styles */
-a {
-  color: #2ba6cb;
-  text-decoration: none;
-  line-height: inherit; }
-  a:hover, a:focus {
-    color: #2795b6; }
-  a img {
-    border: none; }
-
-/* Default paragraph styles */
-p {
-  font-family: inherit;
-  font-weight: normal;
-  font-size: 1em;
-  line-height: 1.6;
-  margin-bottom: 1.25em;
-  text-rendering: optimizeLegibility; }
-  p aside {
-    font-size: 0.875em;
-    line-height: 1.35;
-    font-style: italic; }
-
-/* Default header styles */
-h1, h2, h3, h4, h5, h6 {
-  font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
-  font-weight: bold;
-  font-style: normal;
-  color: #222222;
-  text-rendering: optimizeLegibility;
-  margin-top: 0.2em;
-  margin-bottom: 0.5em;
-  line-height: 1.2125em; }
-  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
-    font-size: 60%;
-    color: #6f6f6f;
-    line-height: 0; }
-
-h1 {
-  font-size: 2.125em; }
-
-h2 {
-  font-size: 1.6875em; }
-
-h3 {
-  font-size: 1.375em; }
-
-h4 {
-  font-size: 1.125em; }
-
-h5 {
-  font-size: 1.125em; }
+  .column.large-centered:last-child,
+  .columns.large-centered:last-child {
+    float: none; }
 
-h6 {
-  font-size: 1em; }
-
-hr {
-  border: solid #dddddd;
-  border-width: 1px 0 0;
-  clear: both;
-  margin: 1.25em 0 1.1875em;
-  height: 0; }
-
-/* Helpful Typography Defaults */
-em,
-i {
-  font-style: italic;
-  line-height: inherit; }
-
-strong,
-b {
-  font-weight: bold;
-  line-height: inherit; }
-
-small {
-  font-size: 60%;
-  line-height: inherit; }
-
-code {
-  font-family: Consolas, "Liberation Mono", Courier, monospace;
-  font-weight: bold;
-  color: #7f0a0c; }
-
-/* Lists */
-ul,
-ol,
-dl {
-  font-size: 1em;
-  line-height: 1.6;
-  margin-bottom: 1.25em;
-  list-style-position: outside;
-  font-family: inherit; }
+  .column.large-uncentered:last-child,
+  .columns.large-uncentered:last-child {
+    float: left; }
 
-ul, ol {
-  margin-left: 1.25em; }
+  .column.large-uncentered.opposite,
+  .columns.large-uncentered.opposite {
+    float: right; }
 
-/* Unordered Lists */
-ul li ul,
-ul li ol {
-  margin-left: 1.25em;
-  margin-bottom: 0;
-  font-size: 1em;
-  /* Override nested font-size change */ }
-ul.square li ul, ul.circle li ul, ul.disc li ul {
-  list-style: inherit; }
-ul.square {
-  list-style-type: square; }
-ul.circle {
-  list-style-type: circle; }
-ul.disc {
-  list-style-type: disc; }
-ul.no-bullet {
-  list-style: none; }
+  .row.large-collapse > .column,
+  .row.large-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.large-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.large-uncollapse > .column,
+  .row.large-uncollapse > .columns {
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
 
-/* Ordered Lists */
-ol li ul,
-ol li ol {
-  margin-left: 1.25em;
-  margin-bottom: 0; }
+  .push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
 
-/* Definition Lists */
-dl dt {
-  margin-bottom: 0.3em;
-  font-weight: bold; }
-dl dd {
-  margin-bottom: 0.75em; }
+  .pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
 
-/* Abbreviations */
-abbr,
-acronym {
-  text-transform: uppercase;
-  font-size: 90%;
-  color: #222222;
-  border-bottom: 1px dotted #dddddd;
-  cursor: help; }
+  .push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
 
-abbr {
-  text-transform: none; }
+  .pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
 
-/* Blockquotes */
-blockquote {
-  margin: 0 0 1.25em;
-  padding: 0.5625em 1.25em 0 1.1875em;
-  border-left: 1px solid #dddddd; }
-  blockquote cite {
-    display: block;
-    font-size: 0.8125em;
-    color: #555555; }
-    blockquote cite:before {
-      content: "\2014 \0020"; }
-    blockquote cite a,
-    blockquote cite a:visited {
-      color: #555555; }
+  .push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
 
-blockquote,
-blockquote p {
-  line-height: 1.6;
-  color: #6f6f6f; }
+  .pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
 
-/* Microformats */
-.vcard {
-  display: inline-block;
-  margin: 0 0 1.25em 0;
-  border: 1px solid #dddddd;
-  padding: 0.625em 0.75em; }
-  .vcard li {
-    margin: 0;
-    display: block; }
-  .vcard .fn {
-    font-weight: bold;
-    font-size: 0.9375em; }
+  .push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
 
-.vevent .summary {
-  font-weight: bold; }
-.vevent abbr {
-  cursor: default;
-  text-decoration: none;
-  font-weight: bold;
-  border: none;
-  padding: 0 0.0625em; }
+  .pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
 
-@media only screen and (min-width: 768px) {
-  h1, h2, h3, h4, h5, h6 {
-    line-height: 1.4; }
+  .push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
 
-  h1 {
-    font-size: 2.75em; }
+  .pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
 
-  h2 {
-    font-size: 2.3125em; }
+  .push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
 
-  h3 {
-    font-size: 1.6875em; }
+  .pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
 
-  h4 {
-    font-size: 1.4375em; } }
-/*
- * Print styles.
- *
- * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
- * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
-*/
-.print-only {
-  display: none !important; }
+  .push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
 
-@media print {
-  * {
-    background: transparent !important;
-    color: black !important;
-    /* Black prints faster: h5bp.com/s */
-    box-shadow: none !important;
-    text-shadow: none !important; }
+  .pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
 
-  a,
-  a:visited {
-    text-decoration: underline; }
+  .push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
 
-  a[href]:after {
-    content: " (" attr(href) ")"; }
+  .pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
 
-  abbr[title]:after {
-    content: " (" attr(title) ")"; }
+  .push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
 
-  .ir a:after,
-  a[href^="javascript:"]:after,
-  a[href^="#"]:after {
-    content: ""; }
+  .pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
 
-  pre,
-  blockquote {
-    border: 1px solid #999999;
-    page-break-inside: avoid; }
+  .push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
 
-  thead {
-    display: table-header-group;
-    /* h5bp.com/t */ }
+  .pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
 
-  tr,
-  img {
-    page-break-inside: avoid; }
+  .push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
 
-  img {
-    max-width: 100% !important; }
+  .pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
 
-  @page {
-    margin: 0.5cm; }
+  .push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
 
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3; }
-
-  h2,
-  h3 {
-    page-break-after: avoid; }
-
-  .hide-on-print {
-    display: none !important; }
-
-  .print-only {
-    display: block !important; }
-
-  .hide-for-print {
-    display: none !important; }
-
-  .show-for-print {
-    display: inherit !important; } }
-button, .button, .multipleTemplateAdder {
+  .pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; } }
+button, .button {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  border-radius: 0;
   border-style: solid;
-  border-width: 1px;
+  border-width: 0;
   cursor: pointer;
-  font-family: inherit;
-  font-weight: bold;
-  line-height: 1;
-  margin: 0 0 1.25em;
+  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+  font-weight: normal;
+  line-height: normal;
+  margin: 0 0 1.25rem;
   position: relative;
-  text-decoration: none;
   text-align: center;
+  text-decoration: none;
   display: inline-block;
-  padding-top: 0.75em;
-  padding-right: 1.5em;
-  padding-bottom: 0.8125em;
-  padding-left: 1.5em;
-  font-size: 1em;
-  background-color: #2ba6cb;
-  border-color: #2284a1;
-  color: white; }
+  padding: 1rem 2rem 1.0625rem 2rem;
+  font-size: 1rem;
+  background-color: #008CBA;
+  border-color: #007095;
+  color: #FFFFFF;
+  transition: background-color 300ms ease-out; }
   button:hover, button:focus, .button:hover, .button:focus {
-    background-color: #2284a1; }
+    background-color: #007095; }
   button:hover, button:focus, .button:hover, .button:focus {
-    color: white; }
+    color: #FFFFFF; }
   button.secondary, .button.secondary {
-    background-color: #e9e9e9;
-    border-color: #d0d0d0;
+    background-color: #e7e7e7;
+    border-color: #b9b9b9;
     color: #333333; }
     button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
-      background-color: #d0d0d0; }
+      background-color: #b9b9b9; }
     button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
       color: #333333; }
   button.success, .button.success {
-    background-color: #5da423;
-    border-color: #457a1a;
-    color: white; }
+    background-color: #43AC6A;
+    border-color: #368a55;
+    color: #FFFFFF; }
     button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
-      background-color: #457a1a; }
+      background-color: #368a55; }
     button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
-      color: white; }
+      color: #FFFFFF; }
   button.alert, .button.alert {
-    background-color: #c60f13;
-    border-color: #970b0e;
-    color: white; }
+    background-color: #f04124;
+    border-color: #cf2a0e;
+    color: #FFFFFF; }
     button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
-      background-color: #970b0e; }
+      background-color: #cf2a0e; }
     button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
-      color: white; }
+      color: #FFFFFF; }
+  button.warning, .button.warning {
+    background-color: #f08a24;
+    border-color: #cf6e0e;
+    color: #FFFFFF; }
+    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
+      background-color: #cf6e0e; }
+    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
+      color: #FFFFFF; }
+  button.info, .button.info {
+    background-color: #a0d3e8;
+    border-color: #61b6d9;
+    color: #333333; }
+    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
+      background-color: #61b6d9; }
+    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
+      color: #FFFFFF; }
   button.large, .button.large {
-    padding-top: 1em;
-    padding-right: 2em;
-    padding-bottom: 1.0625em;
-    padding-left: 2em;
-    font-size: 1.25em; }
+    padding: 1.125rem 2.25rem 1.1875rem 2.25rem;
+    font-size: 1.25rem; }
   button.small, .button.small {
-    padding-top: 0.5625em;
-    padding-right: 1.125em;
-    padding-bottom: 0.625em;
-    padding-left: 1.125em;
-    font-size: 0.8125em; }
+    padding: 0.875rem 1.75rem 0.9375rem 1.75rem;
+    font-size: 0.8125rem; }
   button.tiny, .button.tiny {
-    padding-top: 0.4375em;
-    padding-right: 0.875em;
-    padding-bottom: 0.5em;
-    padding-left: 0.875em;
-    font-size: 0.6875em; }
+    padding: 0.625rem 1.25rem 0.6875rem 1.25rem;
+    font-size: 0.6875rem; }
   button.expand, .button.expand {
-    padding-right: 0px;
-    padding-left: 0px;
+    padding: 1rem 2rem 1.0625rem 2rem;
+    font-size: 1rem;
+    padding-bottom: 1.0625rem;
+    padding-top: 1rem;
+    padding-left: 1rem;
+    padding-right: 1rem;
     width: 100%; }
   button.left-align, .button.left-align {
     text-align: left;
-    text-indent: 0.75em; }
+    text-indent: 0.75rem; }
   button.right-align, .button.right-align {
     text-align: right;
-    padding-right: 0.75em; }
+    padding-right: 0.75rem; }
+  button.radius, .button.radius {
+    border-radius: 3px; }
+  button.round, .button.round {
+    border-radius: 1000px; }
   button.disabled, button[disabled], .button.disabled, .button[disabled] {
-    background-color: #2ba6cb;
-    border-color: #2284a1;
-    color: white;
+    background-color: #008CBA;
+    border-color: #007095;
+    color: #FFFFFF;
+    box-shadow: none;
     cursor: default;
-    opacity: 0.6;
-    -webkit-box-shadow: none;
-    box-shadow: none; }
+    opacity: 0.7; }
     button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
-      background-color: #2284a1; }
+      background-color: #007095; }
     button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
-      color: white; }
+      color: #FFFFFF; }
     button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
-      background-color: #2ba6cb; }
+      background-color: #008CBA; }
     button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
-      background-color: #e9e9e9;
-      border-color: #d0d0d0;
+      background-color: #e7e7e7;
+      border-color: #b9b9b9;
       color: #333333;
+      box-shadow: none;
       cursor: default;
-      opacity: 0.6;
-      -webkit-box-shadow: none;
-      box-shadow: none; }
+      opacity: 0.7; }
       button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
-        background-color: #d0d0d0; }
+        background-color: #b9b9b9; }
       button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
         color: #333333; }
       button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
-        background-color: #e9e9e9; }
+        background-color: #e7e7e7; }
     button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
-      background-color: #5da423;
-      border-color: #457a1a;
-      color: white;
+      background-color: #43AC6A;
+      border-color: #368a55;
+      color: #FFFFFF;
+      box-shadow: none;
       cursor: default;
-      opacity: 0.6;
-      -webkit-box-shadow: none;
-      box-shadow: none; }
+      opacity: 0.7; }
       button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
-        background-color: #457a1a; }
+        background-color: #368a55; }
       button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
-        color: white; }
+        color: #FFFFFF; }
       button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
-        background-color: #5da423; }
+        background-color: #43AC6A; }
     button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
-      background-color: #c60f13;
-      border-color: #970b0e;
-      color: white;
+      background-color: #f04124;
+      border-color: #cf2a0e;
+      color: #FFFFFF;
+      box-shadow: none;
       cursor: default;
-      opacity: 0.6;
-      -webkit-box-shadow: none;
-      box-shadow: none; }
+      opacity: 0.7; }
       button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
-        background-color: #970b0e; }
+        background-color: #cf2a0e; }
       button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
-        color: white; }
+        color: #FFFFFF; }
       button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
-        background-color: #c60f13; }
-
-button, .button, .multipleTemplateAdder {
-  padding-top: 0.8125em;
-  padding-bottom: 0.75em; }
-  button.tiny, .button.tiny {
-    padding-top: 0.5em;
-    padding-bottom: 0.4375em; }
-  button.small, .button.small {
-    padding-top: 0.625em;
-    padding-bottom: 0.5625em; }
-  button.large, .button.large {
-    padding-top: 1.03125em;
-    padding-bottom: 1.03125em; }
+        background-color: #f04124; }
+    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
+      background-color: #f08a24;
+      border-color: #cf6e0e;
+      color: #FFFFFF;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+        background-color: #cf6e0e; }
+      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+        color: #FFFFFF; }
+      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+        background-color: #f08a24; }
+    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
+      background-color: #a0d3e8;
+      border-color: #61b6d9;
+      color: #333333;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+        background-color: #61b6d9; }
+      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+        color: #FFFFFF; }
+      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+        background-color: #a0d3e8; }
+
+button::-moz-focus-inner {
+  border: 0;
+  padding: 0; }
 
-@media only screen {
-  button, .button, .multipleTemplateAdder {
-    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    -webkit-transition: background-color 300ms ease-out;
-    -moz-transition: background-color 300ms ease-out;
-    transition: background-color 300ms ease-out; }
-    button:active, .button:active {
-      -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2) inset;
-      box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2) inset; }
-    button.radius, .button.radius {
-      -webkit-border-radius: 3px;
-      border-radius: 3px; }
-    button.round, .button.round {
-      -webkit-border-radius: 1000px;
-      border-radius: 1000px; } }
-@media only screen and (min-width: 768px) {
-  button, .button, .multipleTemplateAdder {
+@media only screen and (min-width: 40.0625em) {
+  button, .button {
     display: inline-block; } }
 /* Standard Forms */
 form {
-  margin: 0 0 1em; }
+  margin: 0 0 1rem; }
 
 /* Using forms within rows, we need to set some defaults */
 form .row .row {
-  margin: 0 -0.5em; }
+  margin: 0 -0.5rem; }
   form .row .row .column,
   form .row .row .columns {
-    padding: 0 0.5em; }
+    padding: 0 0.5rem; }
   form .row .row.collapse {
     margin: 0; }
     form .row .row.collapse .column,
     form .row .row.collapse .columns {
       padding: 0; }
+    form .row .row.collapse input {
+      -webkit-border-bottom-right-radius: 0;
+      -webkit-border-top-right-radius: 0;
+      border-bottom-right-radius: 0;
+      border-top-right-radius: 0; }
 form .row input.column,
 form .row input.columns,
 form .row textarea.column,
 form .row textarea.columns {
-  padding-left: 0.5em; }
+  padding-left: 0.5rem; }
 
 /* Label Styles */
 label {
-  font-size: 0.875em;
   color: #4d4d4d;
   cursor: pointer;
   display: block;
-  font-weight: 500;
-  margin-bottom: 0.1875em; }
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.5;
+  margin-bottom: 0;
+  /* Styles for required inputs */ }
   label.right {
-    float: none;
+    float: none !important;
     text-align: right; }
   label.inline {
-    margin: 0 0 1em 0;
-    padding: 0.625em 0; }
+    margin: 0 0 1rem 0;
+    padding: 0.5625rem 0; }
+  label small {
+    text-transform: capitalize;
+    color: #676767; }
 
 /* Attach elements to the beginning or end of an input */
 .prefix,
 .postfix {
+  border-style: solid;
+  border-width: 1px;
   display: block;
+  font-size: 0.875rem;
+  height: 2.3125rem;
+  line-height: 2.3125rem;
+  overflow: visible;
+  padding-bottom: 0;
+  padding-top: 0;
   position: relative;
-  z-index: 2;
   text-align: center;
   width: 100%;
-  padding-top: 0;
-  padding-bottom: 0;
-  border-style: solid;
-  border-width: 1px;
-  overflow: hidden;
-  font-size: 0.875em;
-  height: 2.3125em;
-  line-height: 2.3125em; }
+  z-index: 2; }
 
 /* Adjust padding, alignment and radius if pre/post element is a button */
 .postfix.button {
+  border: none;
   padding-left: 0;
   padding-right: 0;
-  padding-top: 0;
   padding-bottom: 0;
-  text-align: center;
-  line-height: 2.125em; }
+  padding-top: 0;
+  text-align: center; }
 
 .prefix.button {
+  border: none;
   padding-left: 0;
   padding-right: 0;
-  padding-top: 0;
   padding-bottom: 0;
-  text-align: center;
-  line-height: 2.125em; }
+  padding-top: 0;
+  text-align: center; }
 
 .prefix.button.radius {
-  -webkit-border-radius: 0;
   border-radius: 0;
-  -moz-border-radius-bottomleft: 3px;
-  -moz-border-radius-topleft: 3px;
   -webkit-border-bottom-left-radius: 3px;
   -webkit-border-top-left-radius: 3px;
   border-bottom-left-radius: 3px;
   border-top-left-radius: 3px; }
 
 .postfix.button.radius {
-  -webkit-border-radius: 0;
   border-radius: 0;
-  -moz-border-radius-topright: 3px;
-  -moz-border-radius-bottomright: 3px;
-  -webkit-border-top-right-radius: 3px;
   -webkit-border-bottom-right-radius: 3px;
-  border-top-right-radius: 3px;
-  border-bottom-right-radius: 3px; }
+  -webkit-border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px; }
 
 .prefix.button.round {
-  -webkit-border-radius: 0;
   border-radius: 0;
-  -moz-border-radius-bottomleft: 1000px;
-  -moz-border-radius-topleft: 1000px;
   -webkit-border-bottom-left-radius: 1000px;
   -webkit-border-top-left-radius: 1000px;
   border-bottom-left-radius: 1000px;
   border-top-left-radius: 1000px; }
 
 .postfix.button.round {
-  -webkit-border-radius: 0;
   border-radius: 0;
-  -moz-border-radius-topright: 1000px;
-  -moz-border-radius-bottomright: 1000px;
-  -webkit-border-top-right-radius: 1000px;
   -webkit-border-bottom-right-radius: 1000px;
-  border-top-right-radius: 1000px;
-  border-bottom-right-radius: 1000px; }
+  -webkit-border-top-right-radius: 1000px;
+  border-bottom-right-radius: 1000px;
+  border-top-right-radius: 1000px; }
 
-/* Separate prefix and postfix styles when on span so buttons keep their own */
-span.prefix {
+/* Separate prefix and postfix styles when on span or label so buttons keep their own */
+span.prefix, label.prefix {
   background: #f2f2f2;
-  border-color: #d9d9d9;
   border-right: none;
-  color: #333333; }
-  span.prefix.radius {
-    -webkit-border-radius: 0;
-    border-radius: 0;
-    -moz-border-radius-bottomleft: 3px;
-    -moz-border-radius-topleft: 3px;
-    -webkit-border-bottom-left-radius: 3px;
-    -webkit-border-top-left-radius: 3px;
-    border-bottom-left-radius: 3px;
-    border-top-left-radius: 3px; }
+  color: #333333;
+  border-color: #cccccc; }
 
-span.postfix {
+span.postfix, label.postfix {
   background: #f2f2f2;
-  border-color: #cccccc;
   border-left: none;
-  color: #333333; }
-  span.postfix.radius {
-    -webkit-border-radius: 0;
-    border-radius: 0;
-    -moz-border-radius-topright: 3px;
-    -moz-border-radius-bottomright: 3px;
-    -webkit-border-top-right-radius: 3px;
-    -webkit-border-bottom-right-radius: 3px;
-    border-top-right-radius: 3px;
-    border-bottom-right-radius: 3px; }
+  color: #333333;
+  border-color: #cccccc; }
+
+/* We use this to get basic styling on all basic form elements */
+input:not([type]), input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  border-radius: 0;
+  background-color: #FFFFFF;
+  border-style: solid;
+  border-width: 1px;
+  border-color: #cccccc;
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  color: rgba(0, 0, 0, 0.75);
+  display: block;
+  font-family: inherit;
+  font-size: 0.875rem;
+  height: 2.3125rem;
+  margin: 0 0 1rem 0;
+  padding: 0.5rem;
+  width: 100%;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  -webkit-transition: border-color 0.15s linear, background 0.15s linear;
+  -moz-transition: border-color 0.15s linear, background 0.15s linear;
+  -ms-transition: border-color 0.15s linear, background 0.15s linear;
+  -o-transition: border-color 0.15s linear, background 0.15s linear;
+  transition: border-color 0.15s linear, background 0.15s linear; }
+  input:not([type]):focus, input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus {
+    background: #fafafa;
+    border-color: #999999;
+    outline: none; }
+  input:not([type]):disabled, input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
+    background-color: #DDDDDD;
+    cursor: default; }
+  input:not([type])[disabled], input:not([type])[readonly], fieldset[disabled] input:not([type]), input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly], fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly], fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly], fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly], fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly], fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly], fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly], fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly], fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly], fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly], fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly], fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly], fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly], fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly], fieldset[disabled] textarea {
+    background-color: #DDDDDD;
+    cursor: default; }
+  input:not([type]).radius, input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
+    border-radius: 3px; }
 
-/* Input groups will automatically style first and last elements of the group */
-.input-group.radius > *:first-child, .input-group.radius > *:first-child * {
-  -moz-border-radius-bottomleft: 3px;
-  -moz-border-radius-topleft: 3px;
+form .row .prefix-radius.row.collapse input,
+form .row .prefix-radius.row.collapse textarea,
+form .row .prefix-radius.row.collapse select,
+form .row .prefix-radius.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 3px;
+  -webkit-border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px; }
+form .row .prefix-radius.row.collapse .prefix {
+  border-radius: 0;
   -webkit-border-bottom-left-radius: 3px;
   -webkit-border-top-left-radius: 3px;
   border-bottom-left-radius: 3px;
   border-top-left-radius: 3px; }
-.input-group.radius > *:last-child, .input-group.radius > *:last-child * {
-  -moz-border-radius-topright: 3px;
-  -moz-border-radius-bottomright: 3px;
-  -webkit-border-top-right-radius: 3px;
+form .row .postfix-radius.row.collapse input,
+form .row .postfix-radius.row.collapse textarea,
+form .row .postfix-radius.row.collapse select,
+form .row .postfix-radius.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 3px;
+  -webkit-border-top-left-radius: 3px;
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px; }
+form .row .postfix-radius.row.collapse .postfix {
+  border-radius: 0;
   -webkit-border-bottom-right-radius: 3px;
-  border-top-right-radius: 3px;
-  border-bottom-right-radius: 3px; }
-.input-group.round > *:first-child, .input-group.round > *:first-child * {
-  -moz-border-radius-bottomleft: 1000px;
-  -moz-border-radius-topleft: 1000px;
+  -webkit-border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px; }
+form .row .prefix-round.row.collapse input,
+form .row .prefix-round.row.collapse textarea,
+form .row .prefix-round.row.collapse select,
+form .row .prefix-round.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 1000px;
+  -webkit-border-top-right-radius: 1000px;
+  border-bottom-right-radius: 1000px;
+  border-top-right-radius: 1000px; }
+form .row .prefix-round.row.collapse .prefix {
+  border-radius: 0;
   -webkit-border-bottom-left-radius: 1000px;
   -webkit-border-top-left-radius: 1000px;
   border-bottom-left-radius: 1000px;
   border-top-left-radius: 1000px; }
-.input-group.round > *:last-child, .input-group.round > *:last-child * {
-  -moz-border-radius-topright: 1000px;
-  -moz-border-radius-bottomright: 1000px;
-  -webkit-border-top-right-radius: 1000px;
+form .row .postfix-round.row.collapse input,
+form .row .postfix-round.row.collapse textarea,
+form .row .postfix-round.row.collapse select,
+form .row .postfix-round.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 1000px;
+  -webkit-border-top-left-radius: 1000px;
+  border-bottom-left-radius: 1000px;
+  border-top-left-radius: 1000px; }
+form .row .postfix-round.row.collapse .postfix {
+  border-radius: 0;
   -webkit-border-bottom-right-radius: 1000px;
-  border-top-right-radius: 1000px;
-  border-bottom-right-radius: 1000px; }
+  -webkit-border-top-right-radius: 1000px;
+  border-bottom-right-radius: 1000px;
+  border-top-right-radius: 1000px; }
 
-/* We use this to get basic styling on all basic form elements */
-input:not([type]),
-input[type="text"],
-input[type="password"],
-input[type="date"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="month"],
-input[type="week"],
-input[type="email"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="time"],
-input[type="url"],
+input[type="submit"] {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  border-radius: 0; }
+
+/* Respect enforced amount of rows for textarea */
+textarea[rows] {
+  height: auto; }
+
+/* Not allow resize out of parent */
 textarea {
-  background-color: white;
-  font-family: inherit;
-  border: 1px solid #cccccc;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  color: rgba(0, 0, 0, 0.75);
-  display: inline-block;
-  font-size: 0.875em;
-  margin: 0 0 1em 0;
-  padding: 0.5em;
-/*  width: 100%;*/
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transition: -webkit-box-shadow 0.45s, border-color 0.45s ease-in-out;
-  -moz-transition: -moz-box-shadow 0.45s, border-color 0.45s ease-in-out;
-  transition: box-shadow 0.45s, border-color 0.45s ease-in-out; }
-
-  input:not([type]):focus,
-  input[type="text"]:focus,
-  input[type="password"]:focus,
-  input[type="date"]:focus,
-  input[type="datetime"]:focus,
-  input[type="datetime-local"]:focus,
-  input[type="month"]:focus,
-  input[type="week"]:focus,
-  input[type="email"]:focus,
-  input[type="number"]:focus,
-  input[type="search"]:focus,
-  input[type="tel"]:focus,
-  input[type="time"]:focus,
-  input[type="url"]:focus,
-  textarea:focus {
-    -webkit-box-shadow: 0 0 5px #999999;
-    -moz-box-shadow: 0 0 5px #999999;
-    box-shadow: 0 0 5px #999999;
-    border-color: #999999; }
+  max-width: 100%; }
 
-  input:not([type]):focus,
-  input[type="text"]:focus,
-  input[type="password"]:focus,
-  input[type="date"]:focus,
-  input[type="datetime"]:focus,
-  input[type="datetime-local"]:focus,
-  input[type="month"]:focus,
-  input[type="week"]:focus,
-  input[type="email"]:focus,
-  input[type="number"]:focus,
-  input[type="search"]:focus,
-  input[type="tel"]:focus,
-  input[type="time"]:focus,
-  input[type="url"]:focus,
-  textarea:focus {
-    background: #fafafa;
-    border-color: #999999;
-    outline: none; }
+::-webkit-input-placeholder {
+  color: #666666; }
+
+:-moz-placeholder {
+  /* Firefox 18- */
+  color: #666666; }
 
-  input:not([type])[disabled],
-  input[type="text"][disabled],
-  input[type="password"][disabled],
-  input[type="date"][disabled],
-  input[type="datetime"][disabled],
-  input[type="datetime-local"][disabled],
-  input[type="month"][disabled],
-  input[type="week"][disabled],
-  input[type="email"][disabled],
-  input[type="number"][disabled],
-  input[type="search"][disabled],
-  input[type="tel"][disabled],
-  input[type="time"][disabled],
-  input[type="url"][disabled],
-  textarea[disabled] {
-    background-color: #dddddd; }
+::-moz-placeholder {
+  /* Firefox 19+ */
+  color: #666666; }
+
+:-ms-input-placeholder {
+  color: #666666; }
+
+/* Add height value for select elements to match text input height */
+select {
+  -webkit-appearance: none !important;
+  -moz-appearance: none !important;
+  background-color: #FAFAFA;
+  border-radius: 0;
+  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+");
+  background-position: 100% center;
+  background-repeat: no-repeat;
+  border-style: solid;
+  border-width: 1px;
+  border-color: #cccccc;
+  color: rgba(0, 0, 0, 0.75);
+  font-family: inherit;
+  font-size: 0.875rem;
+  line-height: normal;
+  padding: 0.5rem;
+  border-radius: 0;
+  height: 2.3125rem; }
+  select::-ms-expand {
+    display: none; }
+  select.radius {
+    border-radius: 3px; }
+  select:focus {
+    background-color: #f3f3f3;
+    border-color: #999999; }
+  select:disabled {
+    background-color: #DDDDDD;
+    cursor: default; }
+  select[multiple] {
+    height: auto; }
 
 /* Adjust margin for form elements below */
 input[type="file"],
 input[type="checkbox"],
 input[type="radio"],
 select {
-  margin: 0 0 1em 0; }
+  margin: 0 0 1rem 0; }
+
+input[type="checkbox"] + label,
+input[type="radio"] + label {
+  display: inline-block;
+  margin-left: 0.5rem;
+  margin-right: 1rem;
+  margin-bottom: 0;
+  vertical-align: baseline; }
 
 /* Normalize file input width */
 input[type="file"] {
   width: 100%; }
 
+/* HTML5 Number spinners settings */
 /* We add basic fieldset styling */
 fieldset {
-  border: solid 1px #dddddd;
-  padding: 1.25em;
-  margin: 1.125em 0; }
+  border: 1px solid #DDDDDD;
+  margin: 1.125rem 0;
+  padding: 1.25rem; }
   fieldset legend {
     font-weight: bold;
-    background: white;
-    padding: 0 0.1875em;
     margin: 0;
-    margin-left: -0.1875em; }
+    margin-left: -0.1875rem;
+    padding: 0 0.1875rem; }
 
 /* Error Handling */
+[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
+  display: block;
+  font-size: 0.75rem;
+  font-style: italic;
+  font-weight: normal;
+  margin-bottom: 1rem;
+  margin-top: -1px;
+  padding: 0.375rem 0.5625rem 0.5625rem;
+  background: #f04124;
+  color: #FFFFFF; }
+[data-abide] span.error, [data-abide] small.error {
+  display: none; }
+
+span.error, small.error {
+  display: block;
+  font-size: 0.75rem;
+  font-style: italic;
+  font-weight: normal;
+  margin-bottom: 1rem;
+  margin-top: -1px;
+  padding: 0.375rem 0.5625rem 0.5625rem;
+  background: #f04124;
+  color: #FFFFFF; }
+
 .error input,
-input.error,
 .error textarea,
-textarea.error {
-  border-color: #c60f13;
-  background-color: rgba(198, 15, 19, 0.1); }
-  .error input:focus,
-  input.error:focus,
-  .error textarea:focus,
-  textarea.error:focus {
-    background: #fafafa;
-    border-color: #999999; }
-
+.error select {
+  margin-bottom: 0; }
+.error input[type="checkbox"],
+.error input[type="radio"] {
+  margin-bottom: 1rem; }
 .error label,
+.error label.error {
+  color: #f04124; }
+.error small.error {
+  display: block;
+  font-size: 0.75rem;
+  font-style: italic;
+  font-weight: normal;
+  margin-bottom: 1rem;
+  margin-top: -1px;
+  padding: 0.375rem 0.5625rem 0.5625rem;
+  background: #f04124;
+  color: #FFFFFF; }
+.error > label > small {
+  background: transparent;
+  color: #676767;
+  display: inline;
+  font-size: 60%;
+  font-style: normal;
+  margin: 0;
+  padding: 0;
+  text-transform: capitalize; }
+.error span.error-message {
+  display: block; }
+
+input.error,
+textarea.error,
+select.error {
+  margin-bottom: 0; }
+
 label.error {
-  color: #c60f13; }
+  color: #f04124; }
 
-.error small,
-small.error {
-  display: block;
-  padding: 0.375em 0.25em;
-  margin-top: -1.3125em;
-  margin-bottom: 1em;
-  font-size: 0.75em;
-  font-weight: bold;
-  background: #c60f13;
-  color: white; }
+meta.foundation-mq-topbar {
+  font-family: "/only screen and (min-width:40.0625em)/";
+  width: 40.0625em; }
 
-/* Custom Checkbox and Radio Inputs */
-form.custom .hidden-field {
-  margin-left: -99999px;
-  position: absolute;
-  visibility: hidden; }
-form.custom .custom {
-  display: inline-block;
-  width: 16px;
-  height: 16px;
-  position: relative;
-  vertical-align: middle;
-  border: solid 1px #cccccc;
-  background: white; }
-  form.custom .custom.checkbox {
-    -webkit-border-radius: 0px;
-    border-radius: 0px;
-    padding: -1px; }
-  form.custom .custom.radio {
-    -webkit-border-radius: 1000px;
-    border-radius: 1000px;
-    padding: 3px; }
-  form.custom .custom.checkbox:before {
-    content: "";
-    display: block;
-    font-size: 16px;
-    color: white; }
-  form.custom .custom.radio.checked:before {
-    content: "";
-    display: block;
-    width: 8px;
-    height: 8px;
-    -webkit-border-radius: 1000px;
-    border-radius: 1000px;
-    background: #222222;
+/* Wrapped around .top-bar to contain to grid width */
+.contain-to-grid {
+  width: 100%;
+  background: #333333; }
+  .contain-to-grid .top-bar {
+    margin-bottom: 0; }
+
+.fixed {
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 99;
+  left: 0; }
+  .fixed.expanded:not(.top-bar) {
+    height: auto;
+    max-height: 100%;
+    overflow-y: auto;
+    width: 100%; }
+    .fixed.expanded:not(.top-bar) .title-area {
+      position: fixed;
+      width: 100%;
+      z-index: 99; }
+    .fixed.expanded:not(.top-bar) .top-bar-section {
+      margin-top: 2.8125rem;
+      z-index: 98; }
+
+.top-bar {
+  background: #333333;
+  height: 2.8125rem;
+  line-height: 2.8125rem;
+  margin-bottom: 0;
+  overflow: hidden;
+  position: relative; }
+  .top-bar ul {
+    list-style: none;
+    margin-bottom: 0; }
+  .top-bar .row {
+    max-width: none; }
+  .top-bar form,
+  .top-bar input,
+  .top-bar select {
+    margin-bottom: 0; }
+  .top-bar input,
+  .top-bar select {
+    font-size: 0.75rem;
+    height: 1.75rem;
+    padding-bottom: .35rem;
+    padding-top: .35rem; }
+  .top-bar .button, .top-bar button {
+    font-size: 0.75rem;
+    margin-bottom: 0;
+    padding-bottom: 0.4125rem;
+    padding-top: 0.4125rem; }
+    @media only screen and (max-width: 40em) {
+      .top-bar .button, .top-bar button {
+        position: relative;
+        top: -1px; } }
+  .top-bar .title-area {
+    margin: 0;
     position: relative; }
-  form.custom .custom.checkbox.checked:before {
-    content: "\00d7";
-    color: #222222;
+  .top-bar .name {
+    font-size: 16px;
+    height: 2.8125rem;
+    margin: 0; }
+    .top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span {
+      font-size: 1.0625rem;
+      line-height: 2.8125rem;
+      margin: 0; }
+      .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a {
+        color: #FFFFFF;
+        display: block;
+        font-weight: normal;
+        padding: 0 0.9375rem;
+        width: 75%; }
+  .top-bar .toggle-topbar {
     position: absolute;
-    top: -50%;
-    left: 50%;
-    margin-top: 4px;
-    margin-left: -5px; }
-
-/* Custom Select Options and Dropdowns */
-form.custom {
-  /* Custom input, disabled */ }
-  form.custom .custom.dropdown {
-    display: block;
-    position: relative;
-    top: 0;
-    height: 2.3125em;
-    margin-bottom: 1.25em;
-    margin-top: 0px;
-    padding: 0px;
-    width: 100%;
-    background: white;
-    background: -moz-linear-gradient(top, white 0%, #f3f3f3 100%);
-    background: -webkit-linear-gradient(top, white 0%, #f3f3f3 100%);
-    -webkit-box-shadow: none;
-    background: linear-gradient(to bottom, white 0%, #f3f3f3 100%);
-    box-shadow: none;
-    font-size: 0.875em;
-    vertical-align: top; }
-    form.custom .custom.dropdown ul {
-      overflow-y: auto;
-      max-height: 200px; }
-    form.custom .custom.dropdown .current {
-      cursor: default;
-      white-space: nowrap;
-      line-height: 2.25em;
-      color: rgba(0, 0, 0, 0.75);
-      text-decoration: none;
-      overflow: hidden;
-      display: block;
-      margin-left: 0.5em;
-      margin-right: 2.3125em; }
-    form.custom .custom.dropdown .selector {
-      cursor: default;
-      position: absolute;
-      width: 2.5em;
-      height: 2.3125em;
+    right: 0;
+    top: 0; }
+    .top-bar .toggle-topbar a {
+      color: #FFFFFF;
       display: block;
-      right: 0;
-      top: 0; }
-      form.custom .custom.dropdown .selector:after {
-        content: "";
-        display: block;
-        content: "";
-        display: block;
-        width: 0;
-        height: 0;
-        border: inset 5px;
-        border-color: #aaaaaa transparent transparent transparent;
-        border-top-style: solid;
-        position: absolute;
-        left: 0.9375em;
-        top: 50%;
-        margin-top: -3px; }
-    form.custom .custom.dropdown:hover a.selector:after, form.custom .custom.dropdown.open a.selector:after {
+      font-size: 0.8125rem;
+      font-weight: bold;
+      height: 2.8125rem;
+      line-height: 2.8125rem;
+      padding: 0 0.9375rem;
+      position: relative;
+      text-transform: uppercase; }
+    .top-bar .toggle-topbar.menu-icon {
+      margin-top: -16px;
+      top: 50%; }
+      .top-bar .toggle-topbar.menu-icon a {
+        color: #FFFFFF;
+        height: 34px;
+        line-height: 33px;
+        padding: 0 2.5rem 0 0.9375rem;
+        position: relative; }
+        .top-bar .toggle-topbar.menu-icon a span::after {
+          content: "";
+          display: block;
+          height: 0;
+          position: absolute;
+          margin-top: -8px;
+          top: 50%;
+          right: 0.9375rem;
+          box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
+          width: 16px; }
+        .top-bar .toggle-topbar.menu-icon a span:hover:after {
+          box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; }
+  .top-bar.expanded {
+    background: transparent;
+    height: auto; }
+    .top-bar.expanded .title-area {
+      background: #333333; }
+    .top-bar.expanded .toggle-topbar a {
+      color: #888888; }
+      .top-bar.expanded .toggle-topbar a span::after {
+        box-shadow: 0 0 0 1px #888888, 0 7px 0 1px #888888, 0 14px 0 1px #888888; }
+    @media screen and (-webkit-min-device-pixel-ratio: 0) {
+      .top-bar.expanded .top-bar-section .has-dropdown.moved > .dropdown,
+      .top-bar.expanded .top-bar-section .dropdown {
+        clip: initial; }
+      .top-bar.expanded .top-bar-section .has-dropdown:not(.moved) > ul {
+        padding: 0; } }
+
+.top-bar-section {
+  left: 0;
+  position: relative;
+  width: auto;
+  transition: left 300ms ease-out; }
+  .top-bar-section ul {
+    display: block;
+    font-size: 16px;
+    height: auto;
+    margin: 0;
+    padding: 0;
+    width: 100%; }
+  .top-bar-section .divider,
+  .top-bar-section [role="separator"] {
+    border-top: solid 1px #1a1a1a;
+    clear: both;
+    height: 1px;
+    width: 100%; }
+  .top-bar-section ul li {
+    background: #333333; }
+    .top-bar-section ul li > a {
+      color: #FFFFFF;
+      display: block;
+      font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+      font-size: 0.8125rem;
+      font-weight: normal;
+      padding-left: 0.9375rem;
+      padding: 12px 0 12px 0.9375rem;
+      text-transform: none;
+      width: 100%; }
+      .top-bar-section ul li > a.button {
+        font-size: 0.8125rem;
+        padding-left: 0.9375rem;
+        padding-right: 0.9375rem;
+        background-color: #008CBA;
+        border-color: #007095;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
+          background-color: #007095; }
+        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.secondary {
+        background-color: #e7e7e7;
+        border-color: #b9b9b9;
+        color: #333333; }
+        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
+          background-color: #b9b9b9; }
+        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
+          color: #333333; }
+      .top-bar-section ul li > a.button.success {
+        background-color: #43AC6A;
+        border-color: #368a55;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
+          background-color: #368a55; }
+        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.alert {
+        background-color: #f04124;
+        border-color: #cf2a0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
+          background-color: #cf2a0e; }
+        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.warning {
+        background-color: #f08a24;
+        border-color: #cf6e0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
+          background-color: #cf6e0e; }
+        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.info {
+        background-color: #a0d3e8;
+        border-color: #61b6d9;
+        color: #333333; }
+        .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
+          background-color: #61b6d9; }
+        .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
+          color: #FFFFFF; }
+    .top-bar-section ul li > button {
+      font-size: 0.8125rem;
+      padding-left: 0.9375rem;
+      padding-right: 0.9375rem;
+      background-color: #008CBA;
+      border-color: #007095;
+      color: #FFFFFF; }
+      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
+        background-color: #007095; }
+      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
+        color: #FFFFFF; }
+      .top-bar-section ul li > button.secondary {
+        background-color: #e7e7e7;
+        border-color: #b9b9b9;
+        color: #333333; }
+        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
+          background-color: #b9b9b9; }
+        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
+          color: #333333; }
+      .top-bar-section ul li > button.success {
+        background-color: #43AC6A;
+        border-color: #368a55;
+        color: #FFFFFF; }
+        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
+          background-color: #368a55; }
+        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > button.alert {
+        background-color: #f04124;
+        border-color: #cf2a0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
+          background-color: #cf2a0e; }
+        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > button.warning {
+        background-color: #f08a24;
+        border-color: #cf6e0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
+          background-color: #cf6e0e; }
+        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > button.info {
+        background-color: #a0d3e8;
+        border-color: #61b6d9;
+        color: #333333; }
+        .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
+          background-color: #61b6d9; }
+        .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
+          color: #FFFFFF; }
+    .top-bar-section ul li:hover:not(.has-form) > a {
+      background-color: #555555;
+      color: #FFFFFF;
+      background: #222222; }
+    .top-bar-section ul li.active > a {
+      background: #008CBA;
+      color: #FFFFFF; }
+      .top-bar-section ul li.active > a:hover {
+        background: #0078a0;
+        color: #FFFFFF; }
+  .top-bar-section .has-form {
+    padding: 0.9375rem; }
+  .top-bar-section .has-dropdown {
+    position: relative; }
+    .top-bar-section .has-dropdown > a:after {
+      border: inset 5px;
       content: "";
       display: block;
-      width: 0;
       height: 0;
-      border: inset 5px;
-      border-color: #222222 transparent transparent transparent;
-      border-top-style: solid; }
-    form.custom .custom.dropdown .disabled {
-      color: #888888; }
-      form.custom .custom.dropdown .disabled:hover {
-        background: transparent;
-        color: #888888; }
-        form.custom .custom.dropdown .disabled:hover:after {
+      width: 0;
+      border-color: transparent transparent transparent rgba(255, 255, 255, 0.4);
+      border-left-style: solid;
+      margin-right: 0.9375rem;
+      margin-top: -4.5px;
+      position: absolute;
+      top: 50%;
+      right: 0; }
+    .top-bar-section .has-dropdown.moved {
+      position: static; }
+      .top-bar-section .has-dropdown.moved > .dropdown {
+        position: static !important;
+        height: auto;
+        width: auto;
+        overflow: visible;
+        clip: auto;
+        display: block;
+        position: absolute !important;
+        width: 100%; }
+      .top-bar-section .has-dropdown.moved > a:after {
+        display: none; }
+  .top-bar-section .dropdown {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px;
+    display: block;
+    padding: 0;
+    position: absolute;
+    top: 0;
+    z-index: 99;
+    left: 100%; }
+    .top-bar-section .dropdown li {
+      height: auto;
+      width: 100%; }
+      .top-bar-section .dropdown li a {
+        font-weight: normal;
+        padding: 8px 0.9375rem; }
+        .top-bar-section .dropdown li a.parent-link {
+          font-weight: normal; }
+      .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
+        margin-bottom: 0;
+        margin-top: 0;
+        font-size: 1.125rem; }
+        .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
+          color: #FFFFFF;
+          display: block; }
+          .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
+            background: none; }
+      .top-bar-section .dropdown li.has-form {
+        padding: 8px 0.9375rem; }
+      .top-bar-section .dropdown li .button,
+      .top-bar-section .dropdown li button {
+        top: auto; }
+    .top-bar-section .dropdown label {
+      color: #777777;
+      font-size: 0.625rem;
+      font-weight: bold;
+      margin-bottom: 0;
+      padding: 8px 0.9375rem 2px;
+      text-transform: uppercase; }
+
+.js-generated {
+  display: block; }
+
+@media only screen and (min-width: 40.0625em) {
+  .top-bar {
+    background: #333333;
+    overflow: visible; }
+    .top-bar:before, .top-bar:after {
+      content: " ";
+      display: table; }
+    .top-bar:after {
+      clear: both; }
+    .top-bar .toggle-topbar {
+      display: none; }
+    .top-bar .title-area {
+      float: left; }
+    .top-bar .name h1 a,
+    .top-bar .name h2 a,
+    .top-bar .name h3 a,
+    .top-bar .name h4 a,
+    .top-bar .name h5 a,
+    .top-bar .name h6 a {
+      width: auto; }
+    .top-bar input,
+    .top-bar select,
+    .top-bar .button,
+    .top-bar button {
+      font-size: 0.875rem;
+      height: 1.75rem;
+      position: relative;
+      top: 0.53125rem; }
+    .top-bar .has-form > .button,
+    .top-bar .has-form > button {
+      font-size: 0.875rem;
+      height: 1.75rem;
+      position: relative;
+      top: 0.53125rem; }
+    .top-bar.expanded {
+      background: #333333; }
+
+  .contain-to-grid .top-bar {
+    margin: 0 auto;
+    margin-bottom: 0;
+    max-width: 62.5rem; }
+
+  .top-bar-section {
+    transition: none 0 0;
+    left: 0 !important; }
+    .top-bar-section ul {
+      display: inline;
+      height: auto !important;
+      width: auto; }
+      .top-bar-section ul li {
+        float: left; }
+        .top-bar-section ul li .js-generated {
           display: none; }
-    form.custom .custom.dropdown.open ul {
+    .top-bar-section li.hover > a:not(.button) {
+      background-color: #555555;
+      background: #222222;
+      color: #FFFFFF; }
+    .top-bar-section li:not(.has-form) a:not(.button) {
+      background: #333333;
+      line-height: 2.8125rem;
+      padding: 0 0.9375rem; }
+      .top-bar-section li:not(.has-form) a:not(.button):hover {
+        background-color: #555555;
+        background: #222222; }
+    .top-bar-section li.active:not(.has-form) a:not(.button) {
+      background: #008CBA;
+      color: #FFFFFF;
+      line-height: 2.8125rem;
+      padding: 0 0.9375rem; }
+      .top-bar-section li.active:not(.has-form) a:not(.button):hover {
+        background: #0078a0;
+        color: #FFFFFF; }
+    .top-bar-section .has-dropdown > a {
+      padding-right: 2.1875rem !important; }
+      .top-bar-section .has-dropdown > a:after {
+        border: inset 5px;
+        content: "";
+        display: block;
+        height: 0;
+        width: 0;
+        border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent;
+        border-top-style: solid;
+        margin-top: -2.5px;
+        top: 1.40625rem; }
+    .top-bar-section .has-dropdown.moved {
+      position: relative; }
+      .top-bar-section .has-dropdown.moved > .dropdown {
+        clip: rect(1px, 1px, 1px, 1px);
+        height: 1px;
+        overflow: hidden;
+        position: absolute !important;
+        width: 1px;
+        display: block; }
+    .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
+      position: static !important;
+      height: auto;
+      width: auto;
+      overflow: visible;
+      clip: auto;
       display: block;
-      z-index: 10;
+      position: absolute !important; }
+    .top-bar-section .has-dropdown > a:focus + .dropdown {
+      position: static !important;
+      height: auto;
+      width: auto;
+      overflow: visible;
+      clip: auto;
+      display: block;
+      position: absolute !important; }
+    .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
+      border: none;
+      content: "\00bb";
+      top: 0.1875rem;
+      right: 5px; }
+    .top-bar-section .dropdown {
+      left: 0;
+      background: transparent;
       min-width: 100%;
-      -moz-box-sizing: content-box;
-      -webkit-box-sizing: content-box;
-      box-sizing: content-box; }
-    form.custom .custom.dropdown.small {
-      max-width: 134px; }
-    form.custom .custom.dropdown.medium {
-      max-width: 254px; }
-    form.custom .custom.dropdown.large {
-      max-width: 434px; }
-    form.custom .custom.dropdown.expand {
-      width: 100% !important; }
-    form.custom .custom.dropdown.open.small ul {
-      min-width: 134px;
-      -moz-box-sizing: border-box;
-      -webkit-box-sizing: border-box;
-      box-sizing: border-box; }
-    form.custom .custom.dropdown.open.medium ul {
-      min-width: 254px;
-      -moz-box-sizing: border-box;
-      -webkit-box-sizing: border-box;
-      box-sizing: border-box; }
-    form.custom .custom.dropdown.open.large ul {
-      min-width: 434px;
-      -moz-box-sizing: border-box;
-      -webkit-box-sizing: border-box;
-      box-sizing: border-box; }
-  form.custom .custom.dropdown ul {
-    position: absolute;
+      top: auto; }
+      .top-bar-section .dropdown li a {
+        background: #333333;
+        color: #FFFFFF;
+        line-height: 2.8125rem;
+        padding: 12px 0.9375rem;
+        white-space: nowrap; }
+      .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
+        background: #333333;
+        color: #FFFFFF; }
+      .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
+        background-color: #555555;
+        color: #FFFFFF;
+        background: #222222; }
+      .top-bar-section .dropdown li label {
+        background: #333333;
+        white-space: nowrap; }
+      .top-bar-section .dropdown li .dropdown {
+        left: 100%;
+        top: 0; }
+    .top-bar-section > ul > .divider,
+    .top-bar-section > ul > [role="separator"] {
+      border-right: solid 1px #4e4e4e;
+      border-bottom: none;
+      border-top: none;
+      clear: none;
+      height: 2.8125rem;
+      width: 0; }
+    .top-bar-section .has-form {
+      background: #333333;
+      height: 2.8125rem;
+      padding: 0 0.9375rem; }
+    .top-bar-section .right li .dropdown {
+      left: auto;
+      right: 0; }
+      .top-bar-section .right li .dropdown li .dropdown {
+        right: 100%; }
+    .top-bar-section .left li .dropdown {
+      right: auto;
+      left: 0; }
+      .top-bar-section .left li .dropdown li .dropdown {
+        left: 100%; }
+
+  .no-js .top-bar-section ul li:hover > a {
+    background-color: #555555;
+    background: #222222;
+    color: #FFFFFF; }
+  .no-js .top-bar-section ul li:active > a {
+    background: #008CBA;
+    color: #FFFFFF; }
+  .no-js .top-bar-section .has-dropdown:hover > .dropdown {
+    position: static !important;
+    height: auto;
     width: auto;
-    display: none;
-    margin: 0;
-    left: -1px;
-    top: auto;
-    -webkit-box-shadow: 0 2px 2px 0px rgba(0, 0, 0, 0.1);
-    box-shadow: 0 2px 2px 0px rgba(0, 0, 0, 0.1);
+    overflow: visible;
+    clip: auto;
+    display: block;
+    position: absolute !important; }
+  .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto;
+    display: block;
+    position: absolute !important; } }
+.breadcrumbs {
+  border-style: solid;
+  border-width: 1px;
+  display: block;
+  list-style: none;
+  margin-left: 0;
+  overflow: hidden;
+  padding: 0.5625rem 0.875rem 0.5625rem;
+  background-color: #f4f4f4;
+  border-color: gainsboro;
+  border-radius: 3px; }
+  .breadcrumbs > * {
+    color: #008CBA;
+    float: left;
+    font-size: 0.6875rem;
+    line-height: 0.6875rem;
     margin: 0;
-    padding: 0;
-    background: white;
-    border: solid 1px #cccccc;
-    font-size: 16px; }
-    form.custom .custom.dropdown ul li {
-      color: #555555;
-      font-size: 0.875em;
-      cursor: default;
-      padding-top: 0.25em;
-      padding-bottom: 0.25em;
-      padding-left: 0.375em;
-      padding-right: 2.375em;
-      min-height: 1.5em;
-      line-height: 1.5em;
-      margin: 0;
-      white-space: nowrap;
-      list-style: none; }
-      form.custom .custom.dropdown ul li.selected {
-        background: #eeeeee;
-        color: black; }
-      form.custom .custom.dropdown ul li:hover {
-        background-color: #e4e4e4;
-        color: black; }
-      form.custom .custom.dropdown ul li.selected:hover {
-        background: #eeeeee;
-        cursor: default;
-        color: black; }
-    form.custom .custom.dropdown ul.show {
+    text-transform: uppercase; }
+    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
+      text-decoration: underline; }
+    .breadcrumbs > * a {
+      color: #008CBA; }
+    .breadcrumbs > *.current {
+      color: #333333;
+      cursor: default; }
+      .breadcrumbs > *.current a {
+        color: #333333;
+        cursor: default; }
+      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
+        text-decoration: none; }
+    .breadcrumbs > *.unavailable {
+      color: #999999; }
+      .breadcrumbs > *.unavailable a {
+        color: #999999; }
+      .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
+      .breadcrumbs > *.unavailable a:focus {
+        color: #999999;
+        cursor: not-allowed;
+        text-decoration: none; }
+    .breadcrumbs > *:before {
+      color: #AAAAAA;
+      content: "/";
+      margin: 0 0.75rem;
+      position: relative;
+      top: 1px; }
+    .breadcrumbs > *:first-child:before {
+      content: " ";
+      margin: 0; }
+
+/* Accessibility - hides the forward slash */
+[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
+  content: "/"; }
+
+.alert-box {
+  border-style: solid;
+  border-width: 1px;
+  display: block;
+  font-size: 0.8125rem;
+  font-weight: normal;
+  margin-bottom: 1.25rem;
+  padding: 0.875rem 1.5rem 0.875rem 0.875rem;
+  position: relative;
+  transition: opacity 300ms ease-out;
+  background-color: #008CBA;
+  border-color: #0078a0;
+  color: #FFFFFF; }
+  .alert-box .close {
+    right: 0.25rem;
+    background: inherit;
+    color: #333333;
+    font-size: 1.375rem;
+    line-height: .9;
+    margin-top: -0.6875rem;
+    opacity: 0.3;
+    padding: 0 6px 4px;
+    position: absolute;
+    top: 50%; }
+    .alert-box .close:hover, .alert-box .close:focus {
+      opacity: 0.5; }
+  .alert-box.radius {
+    border-radius: 3px; }
+  .alert-box.round {
+    border-radius: 1000px; }
+  .alert-box.success {
+    background-color: #43AC6A;
+    border-color: #3a945b;
+    color: #FFFFFF; }
+  .alert-box.alert {
+    background-color: #f04124;
+    border-color: #de2d0f;
+    color: #FFFFFF; }
+  .alert-box.secondary {
+    background-color: #e7e7e7;
+    border-color: #c7c7c7;
+    color: #4f4f4f; }
+  .alert-box.warning {
+    background-color: #f08a24;
+    border-color: #de770f;
+    color: #FFFFFF; }
+  .alert-box.info {
+    background-color: #a0d3e8;
+    border-color: #74bfdd;
+    color: #4f4f4f; }
+  .alert-box.alert-close {
+    opacity: 0; }
+
+.inline-list {
+  list-style: none;
+  margin-top: 0;
+  margin-bottom: 1.0625rem;
+  margin-left: -1.375rem;
+  margin-right: 0;
+  overflow: hidden;
+  padding: 0; }
+  .inline-list > li {
+    display: block;
+    float: left;
+    list-style: none;
+    margin-left: 1.375rem; }
+    .inline-list > li > * {
       display: block; }
-  form.custom .custom.disabled {
-    background: #dddddd; }
 
-/* Button Groups */
 .button-group {
   list-style: none;
   margin: 0;
-  *zoom: 1; }
+  left: 0; }
   .button-group:before, .button-group:after {
     content: " ";
     display: table; }
   .button-group:after {
     clear: both; }
-  .button-group > * {
-    margin: 0 0 0 -1px;
-    float: left; }
-    .button-group > *:first-child {
-      margin-left: 0; }
-  .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button {
-    -moz-border-radius-bottomleft: 3px;
-    -moz-border-radius-topleft: 3px;
-    -webkit-border-bottom-left-radius: 3px;
-    -webkit-border-top-left-radius: 3px;
-    border-bottom-left-radius: 3px;
-    border-top-left-radius: 3px; }
-  .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button {
-    -moz-border-radius-topright: 3px;
-    -moz-border-radius-bottomright: 3px;
-    -webkit-border-top-right-radius: 3px;
-    -webkit-border-bottom-right-radius: 3px;
-    border-top-right-radius: 3px;
-    border-bottom-right-radius: 3px; }
-  .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button {
-    -moz-border-radius-bottomleft: 1000px;
-    -moz-border-radius-topleft: 1000px;
-    -webkit-border-bottom-left-radius: 1000px;
-    -webkit-border-top-left-radius: 1000px;
-    border-bottom-left-radius: 1000px;
-    border-top-left-radius: 1000px; }
-  .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button {
-    -moz-border-radius-topright: 1000px;
-    -moz-border-radius-bottomright: 1000px;
-    -webkit-border-top-right-radius: 1000px;
-    -webkit-border-bottom-right-radius: 1000px;
-    border-top-right-radius: 1000px;
-    border-bottom-right-radius: 1000px; }
   .button-group.even-2 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 50%; }
+    .button-group.even-2 li > button, .button-group.even-2 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
+      border-left: 0; }
     .button-group.even-2 li button, .button-group.even-2 li .button {
       width: 100%; }
   .button-group.even-3 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 33.33333%; }
+    .button-group.even-3 li > button, .button-group.even-3 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
+      border-left: 0; }
     .button-group.even-3 li button, .button-group.even-3 li .button {
       width: 100%; }
   .button-group.even-4 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 25%; }
+    .button-group.even-4 li > button, .button-group.even-4 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
+      border-left: 0; }
     .button-group.even-4 li button, .button-group.even-4 li .button {
       width: 100%; }
   .button-group.even-5 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 20%; }
+    .button-group.even-5 li > button, .button-group.even-5 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
+      border-left: 0; }
     .button-group.even-5 li button, .button-group.even-5 li .button {
       width: 100%; }
   .button-group.even-6 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 16.66667%; }
+    .button-group.even-6 li > button, .button-group.even-6 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
+      border-left: 0; }
     .button-group.even-6 li button, .button-group.even-6 li .button {
       width: 100%; }
   .button-group.even-7 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 14.28571%; }
+    .button-group.even-7 li > button, .button-group.even-7 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
+      border-left: 0; }
     .button-group.even-7 li button, .button-group.even-7 li .button {
       width: 100%; }
   .button-group.even-8 li {
+    display: inline-block;
+    margin: 0 -2px;
     width: 12.5%; }
+    .button-group.even-8 li > button, .button-group.even-8 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
+      border-left: 0; }
     .button-group.even-8 li button, .button-group.even-8 li .button {
       width: 100%; }
-
-.button-bar {
-  *zoom: 1; }
-  .button-bar:before, .button-bar:after {
-    content: " ";
-    display: table; }
-  .button-bar:after {
-    clear: both; }
-  .button-bar .button-group {
-    float: left;
-    margin-right: 0.625em; }
-    .button-bar .button-group div {
-      overflow: hidden; }
-
-/* Dropdown Button */
-.dropdown.button {
-  position: relative;
-  padding-right: 3.1875em; }
-  .dropdown.button:before {
-    position: absolute;
-    content: "";
-    width: 0;
-    height: 0;
+  .button-group > li {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group > li > button, .button-group > li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group > li:first-child button, .button-group > li:first-child .button {
+      border-left: 0; }
+  .button-group.stack > li {
+    display: block;
+    margin: 0;
+    float: none; }
+    .button-group.stack > li > button, .button-group.stack > li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
+      border-left: 0; }
+    .button-group.stack > li > button, .button-group.stack > li .button {
+      border-color: rgba(255, 255, 255, 0.5);
+      border-left-width: 0;
+      border-top: 1px solid;
+      display: block;
+      margin: 0; }
+    .button-group.stack > li > button {
+      width: 100%; }
+    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
+      border-top: 0; }
+  .button-group.stack-for-small > li {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+      border-left: 0; }
+    @media only screen and (max-width: 40em) {
+      .button-group.stack-for-small > li {
+        display: block;
+        margin: 0;
+        width: 100%; }
+        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+          border-left: 1px solid;
+          border-color: rgba(255, 255, 255, 0.5); }
+        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+          border-left: 0; }
+        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+          border-color: rgba(255, 255, 255, 0.5);
+          border-left-width: 0;
+          border-top: 1px solid;
+          display: block;
+          margin: 0; }
+        .button-group.stack-for-small > li > button {
+          width: 100%; }
+        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+          border-top: 0; } }
+  .button-group.radius > * {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group.radius > * > button, .button-group.radius > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
+      border-left: 0; }
+    .button-group.radius > *,
+    .button-group.radius > * > a,
+    .button-group.radius > * > button,
+    .button-group.radius > * > .button {
+      border-radius: 0; }
+    .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button {
+      -webkit-border-bottom-left-radius: 3px;
+      -webkit-border-top-left-radius: 3px;
+      border-bottom-left-radius: 3px;
+      border-top-left-radius: 3px; }
+    .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button {
+      -webkit-border-bottom-right-radius: 3px;
+      -webkit-border-top-right-radius: 3px;
+      border-bottom-right-radius: 3px;
+      border-top-right-radius: 3px; }
+  .button-group.radius.stack > * {
+    display: block;
+    margin: 0; }
+    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
+      border-left: 0; }
+    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
+      border-color: rgba(255, 255, 255, 0.5);
+      border-left-width: 0;
+      border-top: 1px solid;
+      display: block;
+      margin: 0; }
+    .button-group.radius.stack > * > button {
+      width: 100%; }
+    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
+      border-top: 0; }
+    .button-group.radius.stack > *,
+    .button-group.radius.stack > * > a,
+    .button-group.radius.stack > * > button,
+    .button-group.radius.stack > * > .button {
+      border-radius: 0; }
+    .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button {
+      -webkit-top-left-radius: 3px;
+      -webkit-top-right-radius: 3px;
+      border-top-left-radius: 3px;
+      border-top-right-radius: 3px; }
+    .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button {
+      -webkit-bottom-left-radius: 3px;
+      -webkit-bottom-right-radius: 3px;
+      border-bottom-left-radius: 3px;
+      border-bottom-right-radius: 3px; }
+  @media only screen and (min-width: 40.0625em) {
+    .button-group.radius.stack-for-small > * {
+      display: inline-block;
+      margin: 0 -2px; }
+      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.radius.stack-for-small > *,
+      .button-group.radius.stack-for-small > * > a,
+      .button-group.radius.stack-for-small > * > button,
+      .button-group.radius.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
+        -webkit-border-bottom-left-radius: 3px;
+        -webkit-border-top-left-radius: 3px;
+        border-bottom-left-radius: 3px;
+        border-top-left-radius: 3px; }
+      .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
+        -webkit-border-bottom-right-radius: 3px;
+        -webkit-border-top-right-radius: 3px;
+        border-bottom-right-radius: 3px;
+        border-top-right-radius: 3px; } }
+  @media only screen and (max-width: 40em) {
+    .button-group.radius.stack-for-small > * {
+      display: block;
+      margin: 0; }
+      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+        border-color: rgba(255, 255, 255, 0.5);
+        border-left-width: 0;
+        border-top: 1px solid;
+        display: block;
+        margin: 0; }
+      .button-group.radius.stack-for-small > * > button {
+        width: 100%; }
+      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+        border-top: 0; }
+      .button-group.radius.stack-for-small > *,
+      .button-group.radius.stack-for-small > * > a,
+      .button-group.radius.stack-for-small > * > button,
+      .button-group.radius.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
+        -webkit-top-left-radius: 3px;
+        -webkit-top-right-radius: 3px;
+        border-top-left-radius: 3px;
+        border-top-right-radius: 3px; }
+      .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
+        -webkit-bottom-left-radius: 3px;
+        -webkit-bottom-right-radius: 3px;
+        border-bottom-left-radius: 3px;
+        border-bottom-right-radius: 3px; } }
+  .button-group.round > * {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group.round > * > button, .button-group.round > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.round > *:first-child button, .button-group.round > *:first-child .button {
+      border-left: 0; }
+    .button-group.round > *,
+    .button-group.round > * > a,
+    .button-group.round > * > button,
+    .button-group.round > * > .button {
+      border-radius: 0; }
+    .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button {
+      -webkit-border-bottom-left-radius: 1000px;
+      -webkit-border-top-left-radius: 1000px;
+      border-bottom-left-radius: 1000px;
+      border-top-left-radius: 1000px; }
+    .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button {
+      -webkit-border-bottom-right-radius: 1000px;
+      -webkit-border-top-right-radius: 1000px;
+      border-bottom-right-radius: 1000px;
+      border-top-right-radius: 1000px; }
+  .button-group.round.stack > * {
     display: block;
+    margin: 0; }
+    .button-group.round.stack > * > button, .button-group.round.stack > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
+      border-left: 0; }
+    .button-group.round.stack > * > button, .button-group.round.stack > * .button {
+      border-color: rgba(255, 255, 255, 0.5);
+      border-left-width: 0;
+      border-top: 1px solid;
+      display: block;
+      margin: 0; }
+    .button-group.round.stack > * > button {
+      width: 100%; }
+    .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
+      border-top: 0; }
+    .button-group.round.stack > *,
+    .button-group.round.stack > * > a,
+    .button-group.round.stack > * > button,
+    .button-group.round.stack > * > .button {
+      border-radius: 0; }
+    .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button {
+      -webkit-top-left-radius: 1rem;
+      -webkit-top-right-radius: 1rem;
+      border-top-left-radius: 1rem;
+      border-top-right-radius: 1rem; }
+    .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button {
+      -webkit-bottom-left-radius: 1rem;
+      -webkit-bottom-right-radius: 1rem;
+      border-bottom-left-radius: 1rem;
+      border-bottom-right-radius: 1rem; }
+  @media only screen and (min-width: 40.0625em) {
+    .button-group.round.stack-for-small > * {
+      display: inline-block;
+      margin: 0 -2px; }
+      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.round.stack-for-small > *,
+      .button-group.round.stack-for-small > * > a,
+      .button-group.round.stack-for-small > * > button,
+      .button-group.round.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
+        -webkit-border-bottom-left-radius: 1000px;
+        -webkit-border-top-left-radius: 1000px;
+        border-bottom-left-radius: 1000px;
+        border-top-left-radius: 1000px; }
+      .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
+        -webkit-border-bottom-right-radius: 1000px;
+        -webkit-border-top-right-radius: 1000px;
+        border-bottom-right-radius: 1000px;
+        border-top-right-radius: 1000px; } }
+  @media only screen and (max-width: 40em) {
+    .button-group.round.stack-for-small > * {
+      display: block;
+      margin: 0; }
+      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+        border-color: rgba(255, 255, 255, 0.5);
+        border-left-width: 0;
+        border-top: 1px solid;
+        display: block;
+        margin: 0; }
+      .button-group.round.stack-for-small > * > button {
+        width: 100%; }
+      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+        border-top: 0; }
+      .button-group.round.stack-for-small > *,
+      .button-group.round.stack-for-small > * > a,
+      .button-group.round.stack-for-small > * > button,
+      .button-group.round.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
+        -webkit-top-left-radius: 1rem;
+        -webkit-top-right-radius: 1rem;
+        border-top-left-radius: 1rem;
+        border-top-right-radius: 1rem; }
+      .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
+        -webkit-bottom-left-radius: 1rem;
+        -webkit-bottom-right-radius: 1rem;
+        border-bottom-left-radius: 1rem;
+        border-bottom-right-radius: 1rem; } }
+
+.button-bar:before, .button-bar:after {
+  content: " ";
+  display: table; }
+.button-bar:after {
+  clear: both; }
+.button-bar .button-group {
+  float: left;
+  margin-right: 0.625rem; }
+  .button-bar .button-group div {
+    overflow: hidden; }
+
+/* Panels */
+.panel {
+  border-style: solid;
+  border-width: 1px;
+  border-color: #d8d8d8;
+  margin-bottom: 1.25rem;
+  padding: 1.25rem;
+  background: #f2f2f2;
+  color: #333333; }
+  .panel > :first-child {
+    margin-top: 0; }
+  .panel > :last-child {
+    margin-bottom: 0; }
+  .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl {
+    color: #333333; }
+  .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
+    line-height: 1;
+    margin-bottom: 0.625rem; }
+    .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader {
+      line-height: 1.4; }
+  .panel.callout {
     border-style: solid;
-    border-color: white transparent transparent transparent;
-    top: 50%; }
-  .dropdown.button:before {
-    border-width: 0.5625em;
-    right: 1.5em;
-    margin-top: -0.25em; }
-  .dropdown.button:before {
-    border-color: white transparent transparent transparent; }
-  .dropdown.button.tiny {
-    padding-right: 2.1875em; }
-    .dropdown.button.tiny:before {
-      border-width: 0.4375em;
-      right: 0.875em;
-      margin-top: -0.15625em; }
-    .dropdown.button.tiny:before {
-      border-color: white transparent transparent transparent; }
-  .dropdown.button.small {
-    padding-right: 2.8125em; }
-    .dropdown.button.small:before {
-      border-width: 0.5625em;
-      right: 1.125em;
-      margin-top: -0.21875em; }
-    .dropdown.button.small:before {
-      border-color: white transparent transparent transparent; }
-  .dropdown.button.large {
-    padding-right: 4em; }
-    .dropdown.button.large:before {
-      border-width: 0.625em;
-      right: 1.75em;
-      margin-top: -0.3125em; }
-    .dropdown.button.large:before {
-      border-color: white transparent transparent transparent; }
-  .dropdown.button.secondary:before {
-    border-color: #333333 transparent transparent transparent; }
+    border-width: 1px;
+    border-color: #d8d8d8;
+    margin-bottom: 1.25rem;
+    padding: 1.25rem;
+    background: #ecfaff;
+    color: #333333; }
+    .panel.callout > :first-child {
+      margin-top: 0; }
+    .panel.callout > :last-child {
+      margin-bottom: 0; }
+    .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl {
+      color: #333333; }
+    .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 {
+      line-height: 1;
+      margin-bottom: 0.625rem; }
+      .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader {
+        line-height: 1.4; }
+    .panel.callout a:not(.button) {
+      color: #008CBA; }
+      .panel.callout a:not(.button):hover, .panel.callout a:not(.button):focus {
+        color: #0078a0; }
+  .panel.radius {
+    border-radius: 3px; }
 
-/* Split Buttons */
-.split.button {
+.dropdown.button, button.dropdown {
   position: relative;
-  padding-right: 4.8em; }
-  .split.button span {
+  padding-right: 3.5625rem; }
+  .dropdown.button::after, button.dropdown::after {
+    border-color: #FFFFFF transparent transparent transparent;
+    border-style: solid;
+    content: "";
     display: block;
-    height: 100%;
+    height: 0;
     position: absolute;
-    right: 0;
-    top: 0;
-    border-left: solid 1px; }
-    .split.button span:before {
-      position: absolute;
-      content: "";
-      width: 0;
-      height: 0;
-      display: block;
-      border-style: inset;
-      left: 50%; }
-    .split.button span:active {
-      background-color: rgba(0, 0, 0, 0.1); }
-  .split.button span {
-    border-left-color: #1e728c; }
-  .split.button span {
-    width: 3em; }
-    .split.button span:before {
-      border-top-style: solid;
-      border-width: 0.5625em;
-      top: 1.125em;
-      margin-left: -0.5625em; }
-  .split.button span:before {
-    border-color: white transparent transparent transparent; }
-  .split.button.secondary span {
-    border-left-color: #c3c3c3; }
-  .split.button.secondary span:before {
-    border-color: white transparent transparent transparent; }
-  .split.button.alert span {
-    border-left-color: #7f0a0c; }
-  .split.button.success span {
-    border-left-color: #396516; }
-  .split.button.tiny {
-    padding-right: 3.9375em; }
-    .split.button.tiny span {
-      width: 2.84375em; }
-      .split.button.tiny span:before {
-        border-top-style: solid;
-        border-width: 0.4375em;
-        top: 0.875em;
-        margin-left: -0.3125em; }
-  .split.button.small {
-    padding-right: 3.9375em; }
-    .split.button.small span {
-      width: 2.8125em; }
-      .split.button.small span:before {
-        border-top-style: solid;
-        border-width: 0.5625em;
-        top: 0.84375em;
-        margin-left: -0.5625em; }
-  .split.button.large {
-    padding-right: 6em; }
-    .split.button.large span {
-      width: 3.75em; }
-      .split.button.large span:before {
-        border-top-style: solid;
-        border-width: 0.625em;
-        top: 1.3125em;
-        margin-left: -0.5625em; }
-  .split.button.expand {
-    padding-left: 2em; }
-  .split.button.secondary span:before {
+    top: 50%;
+    width: 0; }
+  .dropdown.button::after, button.dropdown::after {
+    border-width: 0.375rem;
+    right: 1.40625rem;
+    margin-top: -0.15625rem; }
+  .dropdown.button::after, button.dropdown::after {
+    border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.tiny, button.dropdown.tiny {
+    padding-right: 2.625rem; }
+    .dropdown.button.tiny:after, button.dropdown.tiny:after {
+      border-width: 0.375rem;
+      right: 1.125rem;
+      margin-top: -0.125rem; }
+    .dropdown.button.tiny::after, button.dropdown.tiny::after {
+      border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.small, button.dropdown.small {
+    padding-right: 3.0625rem; }
+    .dropdown.button.small::after, button.dropdown.small::after {
+      border-width: 0.4375rem;
+      right: 1.3125rem;
+      margin-top: -0.15625rem; }
+    .dropdown.button.small::after, button.dropdown.small::after {
+      border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.large, button.dropdown.large {
+    padding-right: 3.625rem; }
+    .dropdown.button.large::after, button.dropdown.large::after {
+      border-width: 0.3125rem;
+      right: 1.71875rem;
+      margin-top: -0.15625rem; }
+    .dropdown.button.large::after, button.dropdown.large::after {
+      border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.secondary:after, button.dropdown.secondary:after {
     border-color: #333333 transparent transparent transparent; }
-  .split.button.radius span {
-    -moz-border-radius-topright: 3px;
-    -moz-border-radius-bottomright: 3px;
-    -webkit-border-top-right-radius: 3px;
-    -webkit-border-bottom-right-radius: 3px;
-    border-top-right-radius: 3px;
-    border-bottom-right-radius: 3px; }
-  .split.button.round span {
-    -moz-border-radius-topright: 1000px;
-    -moz-border-radius-bottomright: 1000px;
-    -webkit-border-top-right-radius: 1000px;
-    -webkit-border-bottom-right-radius: 1000px;
-    border-top-right-radius: 1000px;
-    border-bottom-right-radius: 1000px; }
 
-/* Flex Video */
-.flex-video {
-  position: relative;
-  padding-top: 1.5625em;
-  padding-bottom: 67.5%;
-  height: 0;
-  margin-bottom: 1em;
-  overflow: hidden; }
-  .flex-video.widescreen {
-    padding-bottom: 57.25%; }
-  .flex-video.vimeo {
-    padding-top: 0; }
-  .flex-video iframe,
-  .flex-video object,
-  .flex-video embed,
-  .flex-video video {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%; }
+/* Image Thumbnails */
+.th {
+  border: solid 4px #FFFFFF;
+  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+  display: inline-block;
+  line-height: 0;
+  max-width: 100%;
+  transition: all 200ms ease-out; }
+  .th:hover, .th:focus {
+    box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); }
+  .th.radius {
+    border-radius: 3px; }
 
-/* Sections */
-.section-container, .section-container.auto {
-  width: 100%;
-  display: block;
-  margin-bottom: 1.25em;
-  border: 1px solid #cccccc;
-  border-top: none; }
-  .section-container > section, .section-container > .section, .section-container.auto > section, .section-container.auto > .section {
-    position: relative; }
-    .section-container > section > .title, .section-container > .section > .title, .section-container.auto > section > .title, .section-container.auto > .section > .title {
-      background-color: #efefef;
-      cursor: pointer;
-      margin-bottom: 0; }
-      .section-container > section > .title a, .section-container > .section > .title a, .section-container.auto > section > .title a, .section-container.auto > .section > .title a {
-        padding: 0.9375em;
-        display: inline-block;
-        color: #333333;
-        font-size: 0.875em;
-        white-space: nowrap; }
-      .section-container > section > .title:hover, .section-container > .section > .title:hover, .section-container.auto > section > .title:hover, .section-container.auto > .section > .title:hover {
-        background-color: #e2e2e2; }
-    .section-container > section .content, .section-container > .section .content, .section-container.auto > section .content, .section-container.auto > .section .content {
-      display: none;
-      padding: 0.9375em;
-      background-color: white; }
-      .section-container > section .content > *:last-child, .section-container > .section .content > *:last-child, .section-container.auto > section .content > *:last-child, .section-container.auto > .section .content > *:last-child {
-        margin-bottom: 0; }
-      .section-container > section .content > *:first-child, .section-container > .section .content > *:first-child, .section-container.auto > section .content > *:first-child, .section-container.auto > .section .content > *:first-child {
-        padding-top: 0; }
-      .section-container > section .content > *:last-child, .section-container > .section .content > *:last-child, .section-container.auto > section .content > *:last-child, .section-container.auto > .section .content > *:last-child {
-        padding-bottom: 0; }
-    .section-container > section.active > .content, .section-container > .section.active > .content, .section-container.auto > section.active > .content, .section-container.auto > .section.active > .content {
-      display: block; }
-    .section-container > section.active > .title, .section-container > .section.active > .title, .section-container.auto > section.active > .title, .section-container.auto > .section.active > .title {
-      background: #d5d5d5; }
-      .section-container > section.active > .title a, .section-container > .section.active > .title a, .section-container.auto > section.active > .title a, .section-container.auto > .section.active > .title a {
-        color: #333333; }
-    .section-container > section > .title, .section-container > .section > .title, .section-container.auto > section > .title, .section-container.auto > .section > .title {
-      top: 0;
-      width: 100%;
-      margin: 0;
-      border-top: solid 1px #cccccc; }
-      .section-container > section > .title a, .section-container > .section > .title a, .section-container.auto > section > .title a, .section-container.auto > .section > .title a {
-        width: 100%; }
+/* Pricing Tables */
+.pricing-table {
+  border: solid 1px #DDDDDD;
+  margin-left: 0;
+  margin-bottom: 1.25rem; }
+  .pricing-table * {
+    list-style: none;
+    line-height: 1; }
+  .pricing-table .title {
+    background-color: #333333;
+    color: #EEEEEE;
+    font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+    font-size: 1rem;
+    font-weight: normal;
+    padding: 0.9375rem 1.25rem;
+    text-align: center; }
+  .pricing-table .price {
+    background-color: #F6F6F6;
+    color: #333333;
+    font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+    font-size: 2rem;
+    font-weight: normal;
+    padding: 0.9375rem 1.25rem;
+    text-align: center; }
+  .pricing-table .description {
+    background-color: #FFFFFF;
+    border-bottom: dotted 1px #DDDDDD;
+    color: #777777;
+    font-size: 0.75rem;
+    font-weight: normal;
+    line-height: 1.4;
+    padding: 0.9375rem;
+    text-align: center; }
+  .pricing-table .bullet-item {
+    background-color: #FFFFFF;
+    border-bottom: dotted 1px #DDDDDD;
+    color: #333333;
+    font-size: 0.875rem;
+    font-weight: normal;
+    padding: 0.9375rem;
+    text-align: center; }
+  .pricing-table .cta-button {
+    background-color: #FFFFFF;
+    padding: 1.25rem 1.25rem 0;
+    text-align: center; }
 
-.section-container.tabs {
-  border: 0;
+@-webkit-keyframes rotate {
+  from {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg); }
+  to {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg); } }
+@keyframes rotate {
+  from {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -ms-transform: rotate(0deg);
+    transform: rotate(0deg); }
+  to {
+    -webkit-transform: rotate(360deg);
+    -moz-transform: rotate(360deg);
+    -ms-transform: rotate(360deg);
+    transform: rotate(360deg); } }
+/* Orbit Graceful Loading */
+.slideshow-wrapper {
   position: relative; }
-  .section-container.tabs > section, .section-container.tabs > .section {
-    border: 0;
-    position: static; }
-    .section-container.tabs > section > .title, .section-container.tabs > .section > .title {
-      background-color: #efefef;
-      cursor: pointer;
-      margin-bottom: 0; }
-      .section-container.tabs > section > .title a, .section-container.tabs > .section > .title a {
-        padding: 0.9375em;
-        display: inline-block;
-        color: #333333;
-        font-size: 0.875em;
-        white-space: nowrap; }
-      .section-container.tabs > section > .title:hover, .section-container.tabs > .section > .title:hover {
-        background-color: #e2e2e2; }
-    .section-container.tabs > section .content, .section-container.tabs > .section .content {
-      display: none;
-      padding: 0.9375em;
-      background-color: white; }
-      .section-container.tabs > section .content > *:last-child, .section-container.tabs > .section .content > *:last-child {
-        margin-bottom: 0; }
-      .section-container.tabs > section .content > *:first-child, .section-container.tabs > .section .content > *:first-child {
-        padding-top: 0; }
-      .section-container.tabs > section .content > *:last-child, .section-container.tabs > .section .content > *:last-child {
-        padding-bottom: 0; }
-    .section-container.tabs > section.active > .content, .section-container.tabs > .section.active > .content {
+  .slideshow-wrapper ul {
+    list-style-type: none;
+    margin: 0; }
+    .slideshow-wrapper ul li,
+    .slideshow-wrapper ul li .orbit-caption {
+      display: none; }
+    .slideshow-wrapper ul li:first-child {
       display: block; }
-    .section-container.tabs > section.active > .title, .section-container.tabs > .section.active > .title {
-      background: white; }
-      .section-container.tabs > section.active > .title a, .section-container.tabs > .section.active > .title a {
-        color: #333333; }
-    .section-container.tabs > section > .title, .section-container.tabs > .section > .title {
-      width: auto;
-      border: solid 1px #cccccc;
-      border-right: 0;
-      border-bottom: 0;
+  .slideshow-wrapper .orbit-container {
+    background-color: transparent; }
+    .slideshow-wrapper .orbit-container li {
+      display: block; }
+      .slideshow-wrapper .orbit-container li .orbit-caption {
+        display: block; }
+    .slideshow-wrapper .orbit-container .orbit-bullets li {
+      display: inline-block; }
+  .slideshow-wrapper .preloader {
+    border-radius: 1000px;
+    animation-duration: 1.5s;
+    animation-iteration-count: infinite;
+    animation-name: rotate;
+    animation-timing-function: linear;
+    border-color: #555555 #FFFFFF;
+    border: solid 3px;
+    display: block;
+    height: 40px;
+    left: 50%;
+    margin-left: -20px;
+    margin-top: -20px;
+    position: absolute;
+    top: 50%;
+    width: 40px; }
+
+.orbit-container {
+  background: none;
+  overflow: hidden;
+  position: relative;
+  width: 100%; }
+  .orbit-container .orbit-slides-container {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    position: relative;
+    -webkit-transform: translateZ(0);
+    -moz-transform: translateZ(0);
+    -ms-transform: translateZ(0);
+    -o-transform: translateZ(0);
+    transform: translateZ(0); }
+    .orbit-container .orbit-slides-container img {
+      display: block;
+      max-width: 100%; }
+    .orbit-container .orbit-slides-container > * {
       position: absolute;
       top: 0;
-      z-index: 1; }
-      .section-container.tabs > section > .title a, .section-container.tabs > .section > .title a {
+      width: 100%;
+      margin-left: 100%; }
+      .orbit-container .orbit-slides-container > *:first-child {
+        margin-left: 0; }
+      .orbit-container .orbit-slides-container > * .orbit-caption {
+        bottom: 0;
+        position: absolute;
+        background-color: rgba(51, 51, 51, 0.8);
+        color: #FFFFFF;
+        font-size: 0.875rem;
+        padding: 0.625rem 0.875rem;
         width: 100%; }
-    .section-container.tabs > section:last-child .title, .section-container.tabs > .section:last-child .title {
-      border-right: solid 1px #cccccc; }
-    .section-container.tabs > section .content, .section-container.tabs > .section .content {
-      border: solid 1px #cccccc;
-      position: absolute;
-      z-index: 10;
+  .orbit-container .orbit-slide-number {
+    left: 10px;
+    background: transparent;
+    color: #FFFFFF;
+    font-size: 12px;
+    position: absolute;
+    top: 10px;
+    z-index: 10; }
+    .orbit-container .orbit-slide-number span {
+      font-weight: 700;
+      padding: 0.3125rem; }
+  .orbit-container .orbit-timer {
+    position: absolute;
+    top: 12px;
+    right: 10px;
+    height: 6px;
+    width: 100px;
+    z-index: 10; }
+    .orbit-container .orbit-timer .orbit-progress {
+      height: 3px;
+      background-color: rgba(255, 255, 255, 0.3);
+      display: block;
+      width: 0;
+      position: relative;
+      right: 20px;
+      top: 5px; }
+    .orbit-container .orbit-timer > span {
+      border: solid 4px #FFFFFF;
+      border-bottom: none;
+      border-top: none;
       display: none;
-      top: -1px; }
-    .section-container.tabs > section.active > .title, .section-container.tabs > .section.active > .title {
-      z-index: 11;
-      border-bottom: 0;
-      background-color: white; }
-    .section-container.tabs > section.active > .content, .section-container.tabs > .section.active > .content {
-      position: relative; }
-
-@media only screen and (min-width: 768px) {
-  .section-container.auto {
-    border: 0;
-    position: relative; }
-    .section-container.auto > section, .section-container.auto > .section {
-      border: 0;
-      position: static; }
-      .section-container.auto > section > .title, .section-container.auto > .section > .title {
-        background-color: #efefef;
-        cursor: pointer;
-        margin-bottom: 0; }
-        .section-container.auto > section > .title a, .section-container.auto > .section > .title a {
-          padding: 0.9375em;
-          display: inline-block;
-          color: #333333;
-          font-size: 0.875em;
-          white-space: nowrap; }
-        .section-container.auto > section > .title:hover, .section-container.auto > .section > .title:hover {
-          background-color: #e2e2e2; }
-      .section-container.auto > section .content, .section-container.auto > .section .content {
-        display: none;
-        padding: 0.9375em;
-        background-color: white; }
-        .section-container.auto > section .content > *:last-child, .section-container.auto > .section .content > *:last-child {
-          margin-bottom: 0; }
-        .section-container.auto > section .content > *:first-child, .section-container.auto > .section .content > *:first-child {
-          padding-top: 0; }
-        .section-container.auto > section .content > *:last-child, .section-container.auto > .section .content > *:last-child {
-          padding-bottom: 0; }
-      .section-container.auto > section.active > .content, .section-container.auto > .section.active > .content {
-        display: block; }
-      .section-container.auto > section.active > .title, .section-container.auto > .section.active > .title {
-        background: white; }
-        .section-container.auto > section.active > .title a, .section-container.auto > .section.active > .title a {
-          color: #333333; }
-      .section-container.auto > section > .title, .section-container.auto > .section > .title {
-        width: auto;
-        border: solid 1px #cccccc;
-        border-right: 0;
-        border-bottom: 0;
-        position: absolute;
-        top: 0;
-        z-index: 1; }
-        .section-container.auto > section > .title a, .section-container.auto > .section > .title a {
-          width: 100%; }
-      .section-container.auto > section:last-child .title, .section-container.auto > .section:last-child .title {
-        border-right: solid 1px #cccccc; }
-      .section-container.auto > section .content, .section-container.auto > .section .content {
-        border: solid 1px #cccccc;
-        position: absolute;
-        z-index: 10;
-        display: none;
-        top: -1px; }
-      .section-container.auto > section.active > .title, .section-container.auto > .section.active > .title {
-        z-index: 11;
-        border-bottom: 0;
-        background-color: white; }
-      .section-container.auto > section.active > .content, .section-container.auto > .section.active > .content {
-        position: relative; }
-
-  .section-container.accordion .section {
-    padding-top: 0 !important; }
-
-  .section-container.vertical-tabs {
-    border: 1px solid #cccccc;
-    position: relative; }
-    .section-container.vertical-tabs section,
-    .section-container.vertical-tabs .section {
-      padding-top: 0 !important;
-      border: 0;
-      position: static; }
-      .section-container.vertical-tabs section > .title,
-      .section-container.vertical-tabs .section > .title {
-        background-color: #efefef;
-        cursor: pointer;
-        margin-bottom: 0; }
-        .section-container.vertical-tabs section > .title a,
-        .section-container.vertical-tabs .section > .title a {
-          padding: 0.9375em;
-          display: inline-block;
-          color: #333333;
-          font-size: 0.875em;
-          white-space: nowrap; }
-        .section-container.vertical-tabs section > .title:hover,
-        .section-container.vertical-tabs .section > .title:hover {
-          background-color: #e2e2e2; }
-      .section-container.vertical-tabs section .content,
-      .section-container.vertical-tabs .section .content {
-        display: none;
-        padding: 0.9375em;
-        background-color: white; }
-        .section-container.vertical-tabs section .content > *:last-child,
-        .section-container.vertical-tabs .section .content > *:last-child {
-          margin-bottom: 0; }
-        .section-container.vertical-tabs section .content > *:first-child,
-        .section-container.vertical-tabs .section .content > *:first-child {
-          padding-top: 0; }
-        .section-container.vertical-tabs section .content > *:last-child,
-        .section-container.vertical-tabs .section .content > *:last-child {
-          padding-bottom: 0; }
-      .section-container.vertical-tabs section.active > .content,
-      .section-container.vertical-tabs .section.active > .content {
-        display: block; }
-      .section-container.vertical-tabs section.active > .title,
-      .section-container.vertical-tabs .section.active > .title {
-        background: #d5d5d5; }
-        .section-container.vertical-tabs section.active > .title a,
-        .section-container.vertical-tabs .section.active > .title a {
-          color: #333333; }
-      .section-container.vertical-tabs section > .title,
-      .section-container.vertical-tabs .section > .title {
-        position: absolute;
-        border-top: solid 1px #cccccc;
-        width: 12.5em; }
-      .section-container.vertical-tabs section:first-child .title,
-      .section-container.vertical-tabs .section:first-child .title {
-        border-top: 0; }
-      .section-container.vertical-tabs section .content,
-      .section-container.vertical-tabs .section .content {
-        display: block;
-        position: relative;
-        left: 12.5em;
-        border-left: solid 1px #cccccc;
-        z-index: 10; }
-      .section-container.vertical-tabs section.active > .title,
-      .section-container.vertical-tabs .section.active > .title {
-        background-color: #d5d5d5;
-        width: 12.5625em;
-        border-right: solid 0 transparent;
-        z-index: 11; }
-      .section-container.vertical-tabs section.active:last-child .title,
-      .section-container.vertical-tabs .section.active:last-child .title {
-        border-bottom: 0; }
-
-  .section-container.vertical-nav {
-    border: 0;
-    position: relative; }
-    .section-container.vertical-nav > section, .section-container.vertical-nav > .section {
-      padding-top: 0 !important;
-      position: relative; }
-      .section-container.vertical-nav > section > .title, .section-container.vertical-nav > .section > .title {
-        background-color: #efefef;
-        cursor: pointer;
-        margin-bottom: 0; }
-        .section-container.vertical-nav > section > .title a, .section-container.vertical-nav > .section > .title a {
-          padding: 0.9375em;
-          display: inline-block;
-          color: #333333;
-          font-size: 0.875em;
-          white-space: nowrap; }
-        .section-container.vertical-nav > section > .title:hover, .section-container.vertical-nav > .section > .title:hover {
-          background-color: #e2e2e2; }
-      .section-container.vertical-nav > section .content, .section-container.vertical-nav > .section .content {
-        display: none;
-        padding: 0.9375em;
-        background-color: white; }
-        .section-container.vertical-nav > section .content > *:last-child, .section-container.vertical-nav > .section .content > *:last-child {
-          margin-bottom: 0; }
-        .section-container.vertical-nav > section .content > *:first-child, .section-container.vertical-nav > .section .content > *:first-child {
-          padding-top: 0; }
-        .section-container.vertical-nav > section .content > *:last-child, .section-container.vertical-nav > .section .content > *:last-child {
-          padding-bottom: 0; }
-      .section-container.vertical-nav > section.active > .content, .section-container.vertical-nav > .section.active > .content {
-        display: block; }
-      .section-container.vertical-nav > section.active > .title, .section-container.vertical-nav > .section.active > .title {
-        background: #d5d5d5; }
-        .section-container.vertical-nav > section.active > .title a, .section-container.vertical-nav > .section.active > .title a {
-          color: #333333; }
-      .section-container.vertical-nav > section > .title, .section-container.vertical-nav > .section > .title {
-        border-top: none;
-        border: solid 1px #cccccc; }
-        .section-container.vertical-nav > section > .title a, .section-container.vertical-nav > .section > .title a {
-          display: block;
-          width: 100%; }
-      .section-container.vertical-nav > section .content, .section-container.vertical-nav > .section .content {
-        display: none; }
-      .section-container.vertical-nav > section:first-child .title, .section-container.vertical-nav > .section:first-child .title {
-        border-bottom: none; }
-      .section-container.vertical-nav > section.active > .content, .section-container.vertical-nav > .section.active > .content {
-        display: block;
-        position: absolute;
-        left: 100%;
-        top: 0px;
-        z-index: 999;
-        min-width: 12.5em;
-        border: solid 1px #cccccc; }
+      height: 14px;
+      position: absolute;
+      top: 0;
+      width: 11px;
+      right: 0; }
+    .orbit-container .orbit-timer.paused > span {
+      top: 0;
+      width: 11px;
+      height: 14px;
+      border: inset 8px;
+      border-left-style: solid;
+      border-color: transparent;
+      border-left-color: #FFFFFF;
+      right: -4px; }
+      .orbit-container .orbit-timer.paused > span.dark {
+        border-left-color: #333333; }
+  .orbit-container:hover .orbit-timer > span {
+    display: block; }
+  .orbit-container .orbit-prev,
+  .orbit-container .orbit-next {
+    background-color: transparent;
+    color: white;
+    height: 60px;
+    line-height: 50px;
+    margin-top: -25px;
+    position: absolute;
+    text-indent: -9999px !important;
+    top: 45%;
+    width: 36px;
+    z-index: 10; }
+    .orbit-container .orbit-prev:hover,
+    .orbit-container .orbit-next:hover {
+      background-color: rgba(0, 0, 0, 0.3); }
+    .orbit-container .orbit-prev > span,
+    .orbit-container .orbit-next > span {
+      border: inset 10px;
+      display: block;
+      height: 0;
+      margin-top: -10px;
+      position: absolute;
+      top: 50%;
+      width: 0; }
+  .orbit-container .orbit-prev {
+    left: 0; }
+    .orbit-container .orbit-prev > span {
+      border-right-style: solid;
+      border-color: transparent;
+      border-right-color: #FFFFFF; }
+    .orbit-container .orbit-prev:hover > span {
+      border-right-color: #FFFFFF; }
+  .orbit-container .orbit-next {
+    right: 0; }
+    .orbit-container .orbit-next > span {
+      border-color: transparent;
+      border-left-style: solid;
+      border-left-color: #FFFFFF;
+      left: 50%;
+      margin-left: -4px; }
+    .orbit-container .orbit-next:hover > span {
+      border-left-color: #FFFFFF; }
 
-  .section-container.horizontal-nav {
-    position: relative;
-    background: #efefef;
-    border: 1px solid #cccccc; }
-    .section-container.horizontal-nav > section, .section-container.horizontal-nav > .section {
-      padding-top: 0;
-      border: 0;
-      position: static; }
-      .section-container.horizontal-nav > section > .title, .section-container.horizontal-nav > .section > .title {
-        background-color: #efefef;
-        cursor: pointer;
-        margin-bottom: 0; }
-        .section-container.horizontal-nav > section > .title a, .section-container.horizontal-nav > .section > .title a {
-          padding: 0.9375em;
-          display: inline-block;
-          color: #333333;
-          font-size: 0.875em;
-          white-space: nowrap; }
-        .section-container.horizontal-nav > section > .title:hover, .section-container.horizontal-nav > .section > .title:hover {
-          background-color: #e2e2e2; }
-      .section-container.horizontal-nav > section .content, .section-container.horizontal-nav > .section .content {
-        display: none;
-        padding: 0.9375em;
-        background-color: white; }
-        .section-container.horizontal-nav > section .content > *:last-child, .section-container.horizontal-nav > .section .content > *:last-child {
-          margin-bottom: 0; }
-        .section-container.horizontal-nav > section .content > *:first-child, .section-container.horizontal-nav > .section .content > *:first-child {
-          padding-top: 0; }
-        .section-container.horizontal-nav > section .content > *:last-child, .section-container.horizontal-nav > .section .content > *:last-child {
-          padding-bottom: 0; }
-      .section-container.horizontal-nav > section.active > .content, .section-container.horizontal-nav > .section.active > .content {
-        display: block; }
-      .section-container.horizontal-nav > section.active > .title, .section-container.horizontal-nav > .section.active > .title {
-        background: #d5d5d5; }
-        .section-container.horizontal-nav > section.active > .title a, .section-container.horizontal-nav > .section.active > .title a {
-          color: #333333; }
-      .section-container.horizontal-nav > section > .title, .section-container.horizontal-nav > .section > .title {
-        width: auto;
-        border: solid 1px #cccccc;
-        border-left: 0;
-        top: -1px;
-        position: absolute;
-        z-index: 1; }
-        .section-container.horizontal-nav > section > .title a, .section-container.horizontal-nav > .section > .title a {
-          width: 100%; }
-      .section-container.horizontal-nav > section .content, .section-container.horizontal-nav > .section .content {
-        display: none; }
-      .section-container.horizontal-nav > section.active > .content, .section-container.horizontal-nav > .section.active > .content {
-        display: block;
-        position: absolute;
-        z-index: 999;
-        left: 0;
-        top: -2px;
-        min-width: 12.5em;
-        border: solid 1px #cccccc; } }
-.no-js .section-container.auto, .no-js .section-container.accordion, .no-js .section-container.tabs, .no-js .section-container.vertical-tabs, .no-js .section-container.vertical-nav, .no-js .section-container.horizontal-nav {
-  width: 100%;
+.orbit-bullets-container {
+  text-align: center; }
+
+.orbit-bullets {
   display: block;
-  margin-bottom: 1.25em;
-  border: 1px solid #cccccc;
-  border-top: none; }
-  .no-js .section-container.auto > section, .no-js .section-container.auto > .section, .no-js .section-container.accordion > section, .no-js .section-container.accordion > .section, .no-js .section-container.tabs > section, .no-js .section-container.tabs > .section, .no-js .section-container.vertical-tabs > section, .no-js .section-container.vertical-tabs > .section, .no-js .section-container.vertical-nav > section, .no-js .section-container.vertical-nav > .section, .no-js .section-container.horizontal-nav > section, .no-js .section-container.horizontal-nav > .section {
+  float: none;
+  margin: 0 auto 30px auto;
+  overflow: hidden;
+  position: relative;
+  text-align: center;
+  top: 10px; }
+  .orbit-bullets li {
+    background: #CCCCCC;
+    cursor: pointer;
+    display: inline-block;
+    float: none;
+    height: 0.5625rem;
+    margin-right: 6px;
+    width: 0.5625rem;
+    border-radius: 1000px; }
+    .orbit-bullets li.active {
+      background: #999999; }
+    .orbit-bullets li:last-child {
+      margin-right: 0; }
+
+.touch .orbit-container .orbit-prev,
+.touch .orbit-container .orbit-next {
+  display: none; }
+.touch .orbit-bullets {
+  display: none; }
+
+@media only screen and (min-width: 40.0625em) {
+  .touch .orbit-container .orbit-prev,
+  .touch .orbit-container .orbit-next {
+    display: inherit; }
+  .touch .orbit-bullets {
+    display: block; } }
+@media only screen and (max-width: 40em) {
+  .orbit-stack-on-small .orbit-slides-container {
+    height: auto !important; }
+  .orbit-stack-on-small .orbit-slides-container > * {
+    margin: 0  !important;
+    opacity: 1 !important;
     position: relative; }
-    .no-js .section-container.auto > section > .title, .no-js .section-container.auto > .section > .title, .no-js .section-container.accordion > section > .title, .no-js .section-container.accordion > .section > .title, .no-js .section-container.tabs > section > .title, .no-js .section-container.tabs > .section > .title, .no-js .section-container.vertical-tabs > section > .title, .no-js .section-container.vertical-tabs > .section > .title, .no-js .section-container.vertical-nav > section > .title, .no-js .section-container.vertical-nav > .section > .title, .no-js .section-container.horizontal-nav > section > .title, .no-js .section-container.horizontal-nav > .section > .title {
-      background-color: #efefef;
-      cursor: pointer;
-      margin-bottom: 0; }
-      .no-js .section-container.auto > section > .title a, .no-js .section-container.auto > .section > .title a, .no-js .section-container.accordion > section > .title a, .no-js .section-container.accordion > .section > .title a, .no-js .section-container.tabs > section > .title a, .no-js .section-container.tabs > .section > .title a, .no-js .section-container.vertical-tabs > section > .title a, .no-js .section-container.vertical-tabs > .section > .title a, .no-js .section-container.vertical-nav > section > .title a, .no-js .section-container.vertical-nav > .section > .title a, .no-js .section-container.horizontal-nav > section > .title a, .no-js .section-container.horizontal-nav > .section > .title a {
-        padding: 0.9375em;
-        display: inline-block;
-        color: #333333;
-        font-size: 0.875em;
-        white-space: nowrap; }
-      .no-js .section-container.auto > section > .title:hover, .no-js .section-container.auto > .section > .title:hover, .no-js .section-container.accordion > section > .title:hover, .no-js .section-container.accordion > .section > .title:hover, .no-js .section-container.tabs > section > .title:hover, .no-js .section-container.tabs > .section > .title:hover, .no-js .section-container.vertical-tabs > section > .title:hover, .no-js .section-container.vertical-tabs > .section > .title:hover, .no-js .section-container.vertical-nav > section > .title:hover, .no-js .section-container.vertical-nav > .section > .title:hover, .no-js .section-container.horizontal-nav > section > .title:hover, .no-js .section-container.horizontal-nav > .section > .title:hover {
-        background-color: #e2e2e2; }
-    .no-js .section-container.auto > section .content, .no-js .section-container.auto > .section .content, .no-js .section-container.accordion > section .content, .no-js .section-container.accordion > .section .content, .no-js .section-container.tabs > section .content, .no-js .section-container.tabs > .section .content, .no-js .section-container.vertical-tabs > section .content, .no-js .section-container.vertical-tabs > .section .content, .no-js .section-container.vertical-nav > section .content, .no-js .section-container.vertical-nav > .section .content, .no-js .section-container.horizontal-nav > section .content, .no-js .section-container.horizontal-nav > .section .content {
-      display: none;
-      padding: 0.9375em;
-      background-color: white; }
-      .no-js .section-container.auto > section .content > *:last-child, .no-js .section-container.auto > .section .content > *:last-child, .no-js .section-container.accordion > section .content > *:last-child, .no-js .section-container.accordion > .section .content > *:last-child, .no-js .section-container.tabs > section .content > *:last-child, .no-js .section-container.tabs > .section .content > *:last-child, .no-js .section-container.vertical-tabs > section .content > *:last-child, .no-js .section-container.vertical-tabs > .section .content > *:last-child, .no-js .section-container.vertical-nav > section .content > *:last-child, .no-js .section-container.vertical-nav > .section .content > *:last-child, .no-js .section-container.horizontal-nav > section .content > *:last-child, .no-js .section-container.horizontal-nav > .section .content > *:last-child {
-        margin-bottom: 0; }
-      .no-js .section-container.auto > section .content > *:first-child, .no-js .section-container.auto > .section .content > *:first-child, .no-js .section-container.accordion > section .content > *:first-child, .no-js .section-container.accordion > .section .content > *:first-child, .no-js .section-container.tabs > section .content > *:first-child, .no-js .section-container.tabs > .section .content > *:first-child, .no-js .section-container.vertical-tabs > section .content > *:first-child, .no-js .section-container.vertical-tabs > .section .content > *:first-child, .no-js .section-container.vertical-nav > section .content > *:first-child, .no-js .section-container.vertical-nav > .section .content > *:first-child, .no-js .section-container.horizontal-nav > section .content > *:first-child, .no-js .section-container.horizontal-nav > .section .content > *:first-child {
-        padding-top: 0; }
-      .no-js .section-container.auto > section .content > *:last-child, .no-js .section-container.auto > .section .content > *:last-child, .no-js .section-container.accordion > section .content > *:last-child, .no-js .section-container.accordion > .section .content > *:last-child, .no-js .section-container.tabs > section .content > *:last-child, .no-js .section-container.tabs > .section .content > *:last-child, .no-js .section-container.vertical-tabs > section .content > *:last-child, .no-js .section-container.vertical-tabs > .section .content > *:last-child, .no-js .section-container.vertical-nav > section .content > *:last-child, .no-js .section-container.vertical-nav > .section .content > *:last-child, .no-js .section-container.horizontal-nav > section .content > *:last-child, .no-js .section-container.horizontal-nav > .section .content > *:last-child {
-        padding-bottom: 0; }
-    .no-js .section-container.auto > section.active > .content, .no-js .section-container.auto > .section.active > .content, .no-js .section-container.accordion > section.active > .content, .no-js .section-container.accordion > .section.active > .content, .no-js .section-container.tabs > section.active > .content, .no-js .section-container.tabs > .section.active > .content, .no-js .section-container.vertical-tabs > section.active > .content, .no-js .section-container.vertical-tabs > .section.active > .content, .no-js .section-container.vertical-nav > section.active > .content, .no-js .section-container.vertical-nav > .section.active > .content, .no-js .section-container.horizontal-nav > section.active > .content, .no-js .section-container.horizontal-nav > .section.active > .content {
-      display: block; }
-    .no-js .section-container.auto > section.active > .title, .no-js .section-container.auto > .section.active > .title, .no-js .section-container.accordion > section.active > .title, .no-js .section-container.accordion > .section.active > .title, .no-js .section-container.tabs > section.active > .title, .no-js .section-container.tabs > .section.active > .title, .no-js .section-container.vertical-tabs > section.active > .title, .no-js .section-container.vertical-tabs > .section.active > .title, .no-js .section-container.vertical-nav > section.active > .title, .no-js .section-container.vertical-nav > .section.active > .title, .no-js .section-container.horizontal-nav > section.active > .title, .no-js .section-container.horizontal-nav > .section.active > .title {
-      background: #d5d5d5; }
-      .no-js .section-container.auto > section.active > .title a, .no-js .section-container.auto > .section.active > .title a, .no-js .section-container.accordion > section.active > .title a, .no-js .section-container.accordion > .section.active > .title a, .no-js .section-container.tabs > section.active > .title a, .no-js .section-container.tabs > .section.active > .title a, .no-js .section-container.vertical-tabs > section.active > .title a, .no-js .section-container.vertical-tabs > .section.active > .title a, .no-js .section-container.vertical-nav > section.active > .title a, .no-js .section-container.vertical-nav > .section.active > .title a, .no-js .section-container.horizontal-nav > section.active > .title a, .no-js .section-container.horizontal-nav > .section.active > .title a {
-        color: #333333; }
-    .no-js .section-container.auto > section > .title, .no-js .section-container.auto > .section > .title, .no-js .section-container.accordion > section > .title, .no-js .section-container.accordion > .section > .title, .no-js .section-container.tabs > section > .title, .no-js .section-container.tabs > .section > .title, .no-js .section-container.vertical-tabs > section > .title, .no-js .section-container.vertical-tabs > .section > .title, .no-js .section-container.vertical-nav > section > .title, .no-js .section-container.vertical-nav > .section > .title, .no-js .section-container.horizontal-nav > section > .title, .no-js .section-container.horizontal-nav > .section > .title {
-      top: 0;
-      width: 100%;
-      margin: 0;
-      border-top: solid 1px #cccccc; }
-      .no-js .section-container.auto > section > .title a, .no-js .section-container.auto > .section > .title a, .no-js .section-container.accordion > section > .title a, .no-js .section-container.accordion > .section > .title a, .no-js .section-container.tabs > section > .title a, .no-js .section-container.tabs > .section > .title a, .no-js .section-container.vertical-tabs > section > .title a, .no-js .section-container.vertical-tabs > .section > .title a, .no-js .section-container.vertical-nav > section > .title a, .no-js .section-container.vertical-nav > .section > .title a, .no-js .section-container.horizontal-nav > section > .title a, .no-js .section-container.horizontal-nav > .section > .title a {
-        width: 100%; }
-    .no-js .section-container.auto > section .title, .no-js .section-container.auto > .section .title, .no-js .section-container.accordion > section .title, .no-js .section-container.accordion > .section .title, .no-js .section-container.tabs > section .title, .no-js .section-container.tabs > .section .title, .no-js .section-container.vertical-tabs > section .title, .no-js .section-container.vertical-tabs > .section .title, .no-js .section-container.vertical-nav > section .title, .no-js .section-container.vertical-nav > .section .title, .no-js .section-container.horizontal-nav > section .title, .no-js .section-container.horizontal-nav > .section .title {
-      position: static;
-      width: 100%;
-      border-left: 0;
-      border-right: 0; }
-    .no-js .section-container.auto > section .content, .no-js .section-container.auto > .section .content, .no-js .section-container.accordion > section .content, .no-js .section-container.accordion > .section .content, .no-js .section-container.tabs > section .content, .no-js .section-container.tabs > .section .content, .no-js .section-container.vertical-tabs > section .content, .no-js .section-container.vertical-tabs > .section .content, .no-js .section-container.vertical-nav > section .content, .no-js .section-container.vertical-nav > .section .content, .no-js .section-container.horizontal-nav > section .content, .no-js .section-container.horizontal-nav > .section .content {
-      position: static;
-      display: block;
-      width: 100%;
-      border-left: 0;
-      border-right: 0;
-      border-bottom: 0; }
+  .orbit-stack-on-small .orbit-slide-number {
+    display: none; }
 
-/* Wrapped around .top-bar to contain to grid width */
-.contain-to-grid {
-  width: 100%;
-  background: #111111; }
-  .contain-to-grid .top-bar {
+  .orbit-timer {
+    display: none; }
+
+  .orbit-next, .orbit-prev {
+    display: none; }
+
+  .orbit-bullets {
+    display: none; } }
+[data-magellan-expedition], [data-magellan-expedition-clone] {
+  background: #FFFFFF;
+  min-width: 100%;
+  padding: 10px;
+  z-index: 50; }
+  [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav {
     margin-bottom: 0; }
+    [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd {
+      margin-bottom: 0; }
+    [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a {
+      line-height: 1.8em; }
 
-.fixed {
+.icon-bar {
+  display: inline-block;
+  font-size: 0;
   width: 100%;
-  left: 0;
-  position: fixed;
-  top: 0;
-  z-index: 99; }
+  background: #333333; }
+  .icon-bar > * {
+    display: block;
+    float: left;
+    font-size: 1rem;
+    margin: 0 auto;
+    padding: 1.25rem;
+    text-align: center;
+    width: 25%; }
+    .icon-bar > * i, .icon-bar > * img {
+      display: block;
+      margin: 0 auto; }
+      .icon-bar > * i + label, .icon-bar > * img + label {
+        margin-top: .0625rem; }
+    .icon-bar > * i {
+      font-size: 1.875rem;
+      vertical-align: middle; }
+    .icon-bar > * img {
+      height: 1.875rem;
+      width: 1.875rem; }
+  .icon-bar.label-right > * i, .icon-bar.label-right > * img {
+    display: inline-block;
+    margin: 0 .0625rem 0 0; }
+    .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label {
+      margin-top: 0; }
+  .icon-bar.label-right > * label {
+    display: inline-block; }
+  .icon-bar.vertical.label-right > * {
+    text-align: left; }
+  .icon-bar.vertical, .icon-bar.small-vertical {
+    height: 100%;
+    width: auto; }
+    .icon-bar.vertical .item, .icon-bar.small-vertical .item {
+      float: none;
+      margin: auto;
+      width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.medium-vertical {
+      height: 100%;
+      width: auto; }
+      .icon-bar.medium-vertical .item {
+        float: none;
+        margin: auto;
+        width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.large-vertical {
+      height: 100%;
+      width: auto; }
+      .icon-bar.large-vertical .item {
+        float: none;
+        margin: auto;
+        width: auto; } }
+  .icon-bar > * {
+    font-size: 1rem;
+    padding: 1.25rem; }
+    .icon-bar > * i + label, .icon-bar > * img + label {
+      margin-top: .0625rem;
+      font-size: 1rem; }
+    .icon-bar > * i {
+      font-size: 1.875rem; }
+    .icon-bar > * img {
+      height: 1.875rem;
+      width: 1.875rem; }
+  .icon-bar > * label {
+    color: #FFFFFF; }
+  .icon-bar > * i {
+    color: #FFFFFF; }
+  .icon-bar > a:hover {
+    background: #008CBA; }
+    .icon-bar > a:hover label {
+      color: #FFFFFF; }
+    .icon-bar > a:hover i {
+      color: #FFFFFF; }
+  .icon-bar > a.active {
+    background: #008CBA; }
+    .icon-bar > a.active label {
+      color: #FFFFFF; }
+    .icon-bar > a.active i {
+      color: #FFFFFF; }
+  .icon-bar .item.disabled {
+    cursor: not-allowed;
+    opacity: 0.7;
+    pointer-events: none; }
+    .icon-bar .item.disabled > * {
+      opacity: 0.7;
+      cursor: not-allowed; }
+  .icon-bar.two-up .item {
+    width: 50%; }
+  .icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.two-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.two-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.three-up .item {
+    width: 33.3333%; }
+  .icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.three-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.three-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.four-up .item {
+    width: 25%; }
+  .icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.four-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.four-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.five-up .item {
+    width: 20%; }
+  .icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.five-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.five-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.six-up .item {
+    width: 16.66667%; }
+  .icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.six-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.six-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.seven-up .item {
+    width: 14.28571%; }
+  .icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.seven-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.seven-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.eight-up .item {
+    width: 12.5%; }
+  .icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width: 40.0625em) {
+    .icon-bar.eight-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width: 64.0625em) {
+    .icon-bar.eight-up.large-vertical .item {
+      width: auto; } }
+
+.icon-bar.two-up .item {
+  width: 50%; }
+.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.two-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.two-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.three-up .item {
+  width: 33.3333%; }
+.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.three-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.three-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.four-up .item {
+  width: 25%; }
+.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.four-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.four-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.five-up .item {
+  width: 20%; }
+.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.five-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.five-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.six-up .item {
+  width: 16.66667%; }
+.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.six-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.six-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.seven-up .item {
+  width: 14.28571%; }
+.icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.seven-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.seven-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.eight-up .item {
+  width: 12.5%; }
+.icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width: 40.0625em) {
+  .icon-bar.eight-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width: 64.0625em) {
+  .icon-bar.eight-up.large-vertical .item {
+    width: auto; } }
+
+.tabs {
+  margin-bottom: 0 !important;
+  margin-left: 0; }
+  .tabs:before, .tabs:after {
+    content: " ";
+    display: table; }
+  .tabs:after {
+    clear: both; }
+  .tabs dd,
+  .tabs .tab-title {
+    float: left;
+    list-style: none;
+    margin-bottom: 0 !important;
+    position: relative; }
+    .tabs dd > a,
+    .tabs .tab-title > a {
+      display: block;
+      background-color: #EFEFEF;
+      color: #222222;
+      font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+      font-size: 1rem;
+      padding: 1rem 2rem; }
+      .tabs dd > a:hover,
+      .tabs .tab-title > a:hover {
+        background-color: #e1e1e1; }
+    .tabs dd.active > a,
+    .tabs .tab-title.active > a {
+      background-color: #FFFFFF;
+      color: #222222; }
+  .tabs.radius dd:first-child a,
+  .tabs.radius .tab:first-child a {
+    -webkit-border-bottom-left-radius: 3px;
+    -webkit-border-top-left-radius: 3px;
+    border-bottom-left-radius: 3px;
+    border-top-left-radius: 3px; }
+  .tabs.radius dd:last-child a,
+  .tabs.radius .tab:last-child a {
+    -webkit-border-bottom-right-radius: 3px;
+    -webkit-border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+    border-top-right-radius: 3px; }
+  .tabs.vertical dd,
+  .tabs.vertical .tab-title {
+    position: inherit;
+    float: none;
+    display: block;
+    top: auto; }
 
-.top-bar {
-  overflow: hidden;
-  height: 45px;
-  line-height: 45px;
-  position: relative;
-  background: #111111;
-  margin-bottom: 1.875em; }
-  .top-bar ul {
-    margin-bottom: 0;
-    list-style: none; }
-  .top-bar .row {
-    max-width: none; }
-  .top-bar form,
-  .top-bar input {
-    margin-bottom: 0; }
-  .top-bar input {
-    height: 2.45em; }
-  .top-bar .button {
-    padding-top: .5em;
-    padding-bottom: .5em;
-    margin-bottom: 0; }
-  .top-bar .title-area {
-    position: relative;
-    margin: 0; }
-  .top-bar .name {
-    height: 45px;
+.tabs-content {
+  margin-bottom: 1.5rem;
+  width: 100%; }
+  .tabs-content:before, .tabs-content:after {
+    content: " ";
+    display: table; }
+  .tabs-content:after {
+    clear: both; }
+  .tabs-content > .content {
+    display: none;
+    float: left;
+    padding: 0.9375rem 0;
+    width: 100%; }
+    .tabs-content > .content.active {
+      display: block;
+      float: none; }
+    .tabs-content > .content.contained {
+      padding: 0.9375rem; }
+  .tabs-content.vertical {
+    display: block; }
+    .tabs-content.vertical > .content {
+      padding: 0 0.9375rem; }
+
+@media only screen and (min-width: 40.0625em) {
+  .tabs.vertical {
+    float: left;
     margin: 0;
-    font-size: 16px; }
-    .top-bar .name h1 {
-      line-height: 45px;
-      font-size: 1.0625em;
-      margin: 0; }
-      .top-bar .name h1 a {
-        font-weight: bold;
-        color: white;
-        width: 50%;
-        display: block;
-        padding: 0 15px; }
-  .top-bar .toggle-topbar {
-    position: absolute;
-    right: 0;
-    top: 0; }
-    .top-bar .toggle-topbar a {
-      color: white;
-      text-transform: uppercase;
-      font-size: 0.8125em;
-      font-weight: bold;
-      position: relative;
+    margin-bottom: 1.25rem !important;
+    max-width: 20%;
+    width: 20%; }
+
+  .tabs-content.vertical {
+    float: left;
+    margin-left: -1px;
+    max-width: 80%;
+    padding-left: 1rem;
+    width: 80%; } }
+.no-js .tabs-content > .content {
+  display: block;
+  float: none; }
+
+ul.pagination {
+  display: block;
+  margin-left: -0.3125rem;
+  min-height: 1.5rem; }
+  ul.pagination li {
+    color: #222222;
+    font-size: 0.875rem;
+    height: 1.5rem;
+    margin-left: 0.3125rem; }
+    ul.pagination li a, ul.pagination li button {
+      border-radius: 3px;
+      transition: background-color 300ms ease-out;
+      background: none;
+      color: #999999;
       display: block;
-      padding: 0 15px;
-      height: 45px;
-      line-height: 45px; }
-    .top-bar .toggle-topbar.menu-icon {
-      right: 15px;
-      top: 50%;
-      margin-top: -16px;
-      padding-left: 40px; }
-      .top-bar .toggle-topbar.menu-icon a {
-        text-indent: -48px;
-        width: 34px;
-        height: 34px;
-        line-height: 33px;
-        padding: 0;
-        color: white; }
-        .top-bar .toggle-topbar.menu-icon a span {
-          position: absolute;
-          right: 0;
-          display: block;
-          width: 16px;
-          height: 0;
-          -webkit-box-shadow: 0 10px 0 1px white, 0 16px 0 1px white, 0 22px 0 1px white;
-          box-shadow: 0 10px 0 1px white, 0 16px 0 1px white, 0 22px 0 1px white; }
-  .top-bar.expanded {
-    height: auto;
-    background: transparent; }
-    .top-bar.expanded .title-area {
-      background: #111111; }
-    .top-bar.expanded .toggle-topbar a {
-      color: #888888; }
-      .top-bar.expanded .toggle-topbar a span {
-        -webkit-box-shadow: 0 10px 0 1px #888888, 0 16px 0 1px #888888, 0 22px 0 1px #888888;
-        box-shadow: 0 10px 0 1px #888888, 0 16px 0 1px #888888, 0 22px 0 1px #888888; }
+      font-size: 1em;
+      font-weight: normal;
+      line-height: inherit;
+      padding: 0.0625rem 0.625rem 0.0625rem; }
+    ul.pagination li:hover a,
+    ul.pagination li a:focus, ul.pagination li:hover button,
+    ul.pagination li button:focus {
+      background: #e6e6e6; }
+    ul.pagination li.unavailable a, ul.pagination li.unavailable button {
+      cursor: default;
+      color: #999999;
+      pointer-events: none; }
+    ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus {
+      background: transparent; }
+    ul.pagination li.current a, ul.pagination li.current button {
+      background: #008CBA;
+      color: #FFFFFF;
+      cursor: default;
+      font-weight: bold; }
+      ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus {
+        background: #008CBA; }
+  ul.pagination li {
+    display: block;
+    float: left; }
 
-.top-bar-section {
-  left: 0;
+/* Pagination centred wrapper */
+.pagination-centered {
+  text-align: center; }
+  .pagination-centered ul.pagination li {
+    display: inline-block;
+    float: none; }
+
+.side-nav {
+  display: block;
+  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+  list-style-position: outside;
+  list-style-type: none;
+  margin: 0;
+  padding: 0.875rem 0; }
+  .side-nav li {
+    font-size: 0.875rem;
+    font-weight: normal;
+    margin: 0 0 0.4375rem 0; }
+    .side-nav li a:not(.button) {
+      color: #008CBA;
+      display: block;
+      margin: 0;
+      padding: 0.4375rem 0.875rem; }
+      .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
+        background: rgba(0, 0, 0, 0.025);
+        color: #1cc7ff; }
+      .side-nav li a:not(.button):active {
+        color: #1cc7ff; }
+    .side-nav li.active > a:first-child:not(.button) {
+      color: #1cc7ff;
+      font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+      font-weight: normal; }
+    .side-nav li.divider {
+      border-top: 1px solid;
+      height: 0;
+      list-style: none;
+      padding: 0;
+      border-top-color: #e6e6e6; }
+    .side-nav li.heading {
+      color: #008CBA;
+      font-size: 0.875rem;
+      font-weight: bold;
+      text-transform: uppercase; }
+
+.accordion {
+  margin-bottom: 0;
+  margin-left: 0; }
+  .accordion:before, .accordion:after {
+    content: " ";
+    display: table; }
+  .accordion:after {
+    clear: both; }
+  .accordion .accordion-navigation, .accordion dd {
+    display: block;
+    margin-bottom: 0 !important; }
+    .accordion .accordion-navigation.active > a, .accordion dd.active > a {
+      background: #e8e8e8;
+      color: #222222; }
+    .accordion .accordion-navigation > a, .accordion dd > a {
+      background: #EFEFEF;
+      color: #222222;
+      display: block;
+      font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+      font-size: 1rem;
+      padding: 1rem; }
+      .accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
+        background: #e3e3e3; }
+    .accordion .accordion-navigation > .content, .accordion dd > .content {
+      display: none;
+      padding: 0.9375rem; }
+      .accordion .accordion-navigation > .content.active, .accordion dd > .content.active {
+        background: #FFFFFF;
+        display: block; }
+
+.text-left {
+  text-align: left !important; }
+
+.text-right {
+  text-align: right !important; }
+
+.text-center {
+  text-align: center !important; }
+
+.text-justify {
+  text-align: justify !important; }
+
+@media only screen and (max-width: 40em) {
+  .small-only-text-left {
+    text-align: left !important; }
+
+  .small-only-text-right {
+    text-align: right !important; }
+
+  .small-only-text-center {
+    text-align: center !important; }
+
+  .small-only-text-justify {
+    text-align: justify !important; } }
+@media only screen {
+  .small-text-left {
+    text-align: left !important; }
+
+  .small-text-right {
+    text-align: right !important; }
+
+  .small-text-center {
+    text-align: center !important; }
+
+  .small-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 40.0625em) and (max-width: 64em) {
+  .medium-only-text-left {
+    text-align: left !important; }
+
+  .medium-only-text-right {
+    text-align: right !important; }
+
+  .medium-only-text-center {
+    text-align: center !important; }
+
+  .medium-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 40.0625em) {
+  .medium-text-left {
+    text-align: left !important; }
+
+  .medium-text-right {
+    text-align: right !important; }
+
+  .medium-text-center {
+    text-align: center !important; }
+
+  .medium-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 64.0625em) and (max-width: 90em) {
+  .large-only-text-left {
+    text-align: left !important; }
+
+  .large-only-text-right {
+    text-align: right !important; }
+
+  .large-only-text-center {
+    text-align: center !important; }
+
+  .large-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 64.0625em) {
+  .large-text-left {
+    text-align: left !important; }
+
+  .large-text-right {
+    text-align: right !important; }
+
+  .large-text-center {
+    text-align: center !important; }
+
+  .large-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 90.0625em) and (max-width: 120em) {
+  .xlarge-only-text-left {
+    text-align: left !important; }
+
+  .xlarge-only-text-right {
+    text-align: right !important; }
+
+  .xlarge-only-text-center {
+    text-align: center !important; }
+
+  .xlarge-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 90.0625em) {
+  .xlarge-text-left {
+    text-align: left !important; }
+
+  .xlarge-text-right {
+    text-align: right !important; }
+
+  .xlarge-text-center {
+    text-align: center !important; }
+
+  .xlarge-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 120.0625em) and (max-width: 6249999.9375em) {
+  .xxlarge-only-text-left {
+    text-align: left !important; }
+
+  .xxlarge-only-text-right {
+    text-align: right !important; }
+
+  .xxlarge-only-text-center {
+    text-align: center !important; }
+
+  .xxlarge-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 120.0625em) {
+  .xxlarge-text-left {
+    text-align: left !important; }
+
+  .xxlarge-text-right {
+    text-align: right !important; }
+
+  .xxlarge-text-center {
+    text-align: center !important; }
+
+  .xxlarge-text-justify {
+    text-align: justify !important; } }
+/* Typography resets */
+div,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+pre,
+form,
+p,
+blockquote,
+th,
+td {
+  margin: 0;
+  padding: 0; }
+
+/* Default Link Styles */
+a {
+  color: #008CBA;
+  line-height: inherit;
+  text-decoration: none; }
+  a:hover, a:focus {
+    color: #0078a0; }
+  a img {
+    border: none; }
+
+/* Default paragraph styles */
+p {
+  font-family: inherit;
+  font-size: 1rem;
+  font-weight: normal;
+  line-height: 1.6;
+  margin-bottom: 1.25rem;
+  text-rendering: optimizeLegibility; }
+  p.lead {
+    font-size: 1.21875rem;
+    line-height: 1.6; }
+  p aside {
+    font-size: 0.875rem;
+    font-style: italic;
+    line-height: 1.35; }
+
+/* Default header styles */
+h1, h2, h3, h4, h5, h6 {
+  color: #222222;
+  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1.4;
+  margin-bottom: 0.5rem;
+  margin-top: 0.2rem;
+  text-rendering: optimizeLegibility; }
+  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
+    color: #6f6f6f;
+    font-size: 60%;
+    line-height: 0; }
+
+h1 {
+  font-size: 2.125rem; }
+
+h2 {
+  font-size: 1.6875rem; }
+
+h3 {
+  font-size: 1.375rem; }
+
+h4 {
+  font-size: 1.125rem; }
+
+h5 {
+  font-size: 1.125rem; }
+
+h6 {
+  font-size: 1rem; }
+
+.subheader {
+  line-height: 1.4;
+  color: #6f6f6f;
+  font-weight: normal;
+  margin-top: 0.2rem;
+  margin-bottom: 0.5rem; }
+
+hr {
+  border: solid #DDDDDD;
+  border-width: 1px 0 0;
+  clear: both;
+  height: 0;
+  margin: 1.25rem 0 1.1875rem; }
+
+/* Helpful Typography Defaults */
+em,
+i {
+  font-style: italic;
+  line-height: inherit; }
+
+strong,
+b {
+  font-weight: bold;
+  line-height: inherit; }
+
+small {
+  font-size: 60%;
+  line-height: inherit; }
+
+code {
+  background-color: #f8f8f8;
+  border-color: #dfdfdf;
+  border-style: solid;
+  border-width: 1px;
+  color: #333333;
+  font-family: Consolas, "Liberation Mono", Courier, monospace;
+  font-weight: normal;
+  padding: 0.125rem 0.3125rem 0.0625rem; }
+
+/* Lists */
+ul,
+ol,
+dl {
+  font-family: inherit;
+  font-size: 1rem;
+  line-height: 1.6;
+  list-style-position: outside;
+  margin-bottom: 1.25rem; }
+
+ul {
+  margin-left: 1.1rem; }
+
+/* Unordered Lists */
+ul li ul,
+ul li ol {
+  margin-left: 1.25rem;
+  margin-bottom: 0; }
+ul.square li ul, ul.circle li ul, ul.disc li ul {
+  list-style: inherit; }
+ul.square {
+  list-style-type: square;
+  margin-left: 1.1rem; }
+ul.circle {
+  list-style-type: circle;
+  margin-left: 1.1rem; }
+ul.disc {
+  list-style-type: disc;
+  margin-left: 1.1rem; }
+
+/* Ordered Lists */
+ol {
+  margin-left: 1.4rem; }
+  ol li ul,
+  ol li ol {
+    margin-left: 1.25rem;
+    margin-bottom: 0; }
+
+.no-bullet {
+  list-style-type: none;
+  margin-left: 0; }
+  .no-bullet li ul,
+  .no-bullet li ol {
+    margin-left: 1.25rem;
+    margin-bottom: 0;
+    list-style: none; }
+
+/* Definition Lists */
+dl dt {
+  margin-bottom: 0.3rem;
+  font-weight: bold; }
+dl dd {
+  margin-bottom: 0.75rem; }
+
+/* Abbreviations */
+abbr,
+acronym {
+  text-transform: uppercase;
+  font-size: 90%;
+  color: #222;
+  cursor: help; }
+
+abbr {
+  text-transform: none; }
+  abbr[title] {
+    border-bottom: 1px dotted #DDDDDD; }
+
+/* Blockquotes */
+blockquote {
+  margin: 0 0 1.25rem;
+  padding: 0.5625rem 1.25rem 0 1.1875rem;
+  border-left: 1px solid #DDDDDD; }
+  blockquote cite {
+    display: block;
+    font-size: 0.8125rem;
+    color: #555555; }
+    blockquote cite:before {
+      content: "\2014 \0020"; }
+    blockquote cite a,
+    blockquote cite a:visited {
+      color: #555555; }
+
+blockquote,
+blockquote p {
+  line-height: 1.6;
+  color: #6f6f6f; }
+
+/* Microformats */
+.vcard {
+  display: inline-block;
+  margin: 0 0 1.25rem 0;
+  border: 1px solid #DDDDDD;
+  padding: 0.625rem 0.75rem; }
+  .vcard li {
+    margin: 0;
+    display: block; }
+  .vcard .fn {
+    font-weight: bold;
+    font-size: 0.9375rem; }
+
+.vevent .summary {
+  font-weight: bold; }
+.vevent abbr {
+  cursor: default;
+  text-decoration: none;
+  font-weight: bold;
+  border: none;
+  padding: 0 0.0625rem; }
+
+@media only screen and (min-width: 40.0625em) {
+  h1, h2, h3, h4, h5, h6 {
+    line-height: 1.4; }
+
+  h1 {
+    font-size: 2.75rem; }
+
+  h2 {
+    font-size: 2.3125rem; }
+
+  h3 {
+    font-size: 1.6875rem; }
+
+  h4 {
+    font-size: 1.4375rem; }
+
+  h5 {
+    font-size: 1.125rem; }
+
+  h6 {
+    font-size: 1rem; } }
+/*
+ * Print styles.
+ *
+ * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
+ * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
+*/
+@media print {
+  * {
+    background: transparent !important;
+    color: #000000 !important;
+    /* Black prints faster: h5bp.com/s */
+    box-shadow: none !important;
+    text-shadow: none !important; }
+
+  a,
+  a:visited {
+    text-decoration: underline; }
+
+  a[href]:after {
+    content: " (" attr(href) ")"; }
+
+  abbr[title]:after {
+    content: " (" attr(title) ")"; }
+
+  .ir a:after,
+  a[href^="javascript:"]:after,
+  a[href^="#"]:after {
+    content: ""; }
+
+  pre,
+  blockquote {
+    border: 1px solid #999999;
+    page-break-inside: avoid; }
+
+  thead {
+    display: table-header-group;
+    /* h5bp.com/t */ }
+
+  tr,
+  img {
+    page-break-inside: avoid; }
+
+  img {
+    max-width: 100% !important; }
+
+  @page {
+    margin: 0.34in; }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3; }
+
+  h2,
+  h3 {
+    page-break-after: avoid; } }
+.split.button {
+  position: relative;
+  padding-right: 5.0625rem; }
+  .split.button span {
+    display: block;
+    height: 100%;
+    position: absolute;
+    right: 0;
+    top: 0;
+    border-left: solid 1px; }
+    .split.button span:after {
+      position: absolute;
+      content: "";
+      width: 0;
+      height: 0;
+      display: block;
+      border-style: inset;
+      top: 50%;
+      left: 50%; }
+    .split.button span:active {
+      background-color: rgba(0, 0, 0, 0.1); }
+  .split.button span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button span {
+    width: 3.09375rem; }
+    .split.button span:after {
+      border-top-style: solid;
+      border-width: 0.375rem;
+      margin-left: -0.375rem;
+      top: 48%; }
+  .split.button span:after {
+    border-color: #FFFFFF transparent transparent transparent; }
+  .split.button.secondary span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button.secondary span:after {
+    border-color: #FFFFFF transparent transparent transparent; }
+  .split.button.alert span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button.success span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button.tiny {
+    padding-right: 3.75rem; }
+    .split.button.tiny span {
+      width: 2.25rem; }
+      .split.button.tiny span:after {
+        border-top-style: solid;
+        border-width: 0.375rem;
+        margin-left: -0.375rem;
+        top: 48%; }
+  .split.button.small {
+    padding-right: 4.375rem; }
+    .split.button.small span {
+      width: 2.625rem; }
+      .split.button.small span:after {
+        border-top-style: solid;
+        border-width: 0.4375rem;
+        margin-left: -0.375rem;
+        top: 48%; }
+  .split.button.large {
+    padding-right: 5.5rem; }
+    .split.button.large span {
+      width: 3.4375rem; }
+      .split.button.large span:after {
+        border-top-style: solid;
+        border-width: 0.3125rem;
+        margin-left: -0.375rem;
+        top: 48%; }
+  .split.button.expand {
+    padding-left: 2rem; }
+  .split.button.secondary span:after {
+    border-color: #333333 transparent transparent transparent; }
+  .split.button.radius span {
+    -webkit-border-bottom-right-radius: 3px;
+    -webkit-border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+    border-top-right-radius: 3px; }
+  .split.button.round span {
+    -webkit-border-bottom-right-radius: 1000px;
+    -webkit-border-top-right-radius: 1000px;
+    border-bottom-right-radius: 1000px;
+    border-top-right-radius: 1000px; }
+  .split.button.no-pip span:before {
+    border-style: none; }
+  .split.button.no-pip span:after {
+    border-style: none; }
+  .split.button.no-pip span > i {
+    display: block;
+    left: 50%;
+    margin-left: -0.28889em;
+    margin-top: -0.48889em;
+    position: absolute;
+    top: 50%; }
+
+.reveal-modal-bg {
+  background: #000000;
+  background: rgba(0, 0, 0, 0.45);
+  bottom: 0;
+  display: none;
+  left: 0;
+  position: fixed;
+  right: 0;
+  top: 0;
+  z-index: 1004;
+  left: 0; }
+
+.reveal-modal {
+  border-radius: 3px;
+  display: none;
+  position: absolute;
+  top: 0;
+  visibility: hidden;
+  width: 100%;
+  z-index: 1005;
+  left: 0;
+  background-color: #FFFFFF;
+  padding: 1.875rem;
+  border: solid 1px #666666;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
+  @media only screen and (max-width: 40em) {
+    .reveal-modal {
+      min-height: 100vh; } }
+  .reveal-modal .column, .reveal-modal .columns {
+    min-width: 0; }
+  .reveal-modal > :first-child {
+    margin-top: 0; }
+  .reveal-modal > :last-child {
+    margin-bottom: 0; }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 80%; } }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal {
+      top: 6.25rem; } }
+  .reveal-modal.radius {
+    box-shadow: none;
+    border-radius: 3px; }
+  .reveal-modal.round {
+    box-shadow: none;
+    border-radius: 1000px; }
+  .reveal-modal.collapse {
+    padding: 0;
+    box-shadow: none; }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal.tiny {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 30%; } }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal.small {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 40%; } }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal.medium {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 60%; } }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal.large {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 70%; } }
+  @media only screen and (min-width: 40.0625em) {
+    .reveal-modal.xlarge {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 95%; } }
+  .reveal-modal.full {
+    height: 100vh;
+    height: 100%;
+    left: 0;
+    margin-left: 0 !important;
+    max-width: none !important;
+    min-height: 100vh;
+    top: 0; }
+    @media only screen and (min-width: 40.0625em) {
+      .reveal-modal.full {
+        left: 0;
+        margin: 0 auto;
+        max-width: 62.5rem;
+        right: 0;
+        width: 100%; } }
+  .reveal-modal.toback {
+    z-index: 1003; }
+  .reveal-modal .close-reveal-modal {
+    color: #AAAAAA;
+    cursor: pointer;
+    font-size: 2.5rem;
+    font-weight: bold;
+    line-height: 1;
+    position: absolute;
+    top: 0.625rem;
+    right: 1.375rem; }
+
+/* Tooltips */
+.has-tip {
+  border-bottom: dotted 1px #CCCCCC;
+  color: #333333;
+  cursor: help;
+  font-weight: bold; }
+  .has-tip:hover, .has-tip:focus {
+    border-bottom: dotted 1px #003f54;
+    color: #008CBA; }
+  .has-tip.tip-left, .has-tip.tip-right {
+    float: none !important; }
+
+.tooltip {
+  background: #333333;
+  color: #FFFFFF;
+  display: none;
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.3;
+  max-width: 300px;
+  padding: 0.75rem;
+  position: absolute;
+  width: 100%;
+  z-index: 1006;
+  left: 50%; }
+  .tooltip > .nub {
+    border: solid 5px;
+    border-color: transparent transparent #333333 transparent;
+    display: block;
+    height: 0;
+    pointer-events: none;
+    position: absolute;
+    top: -10px;
+    width: 0;
+    left: 5px; }
+    .tooltip > .nub.rtl {
+      left: auto;
+      right: 5px; }
+  .tooltip.radius {
+    border-radius: 3px; }
+  .tooltip.round {
+    border-radius: 1000px; }
+    .tooltip.round > .nub {
+      left: 2rem; }
+  .tooltip.opened {
+    border-bottom: dotted 1px #003f54 !important;
+    color: #008CBA !important; }
+
+.tap-to-close {
+  color: #777777;
+  display: block;
+  font-size: 0.625rem;
+  font-weight: normal; }
+
+@media only screen {
+  .tooltip > .nub {
+    border-color: transparent transparent #333333 transparent;
+    top: -10px; }
+  .tooltip.tip-top > .nub {
+    border-color: #333333 transparent transparent transparent;
+    bottom: -10px;
+    top: auto; }
+  .tooltip.tip-left, .tooltip.tip-right {
+    float: none !important; }
+  .tooltip.tip-left > .nub {
+    border-color: transparent transparent transparent #333333;
+    left: auto;
+    margin-top: -5px;
+    right: -10px;
+    top: 50%; }
+  .tooltip.tip-right > .nub {
+    border-color: transparent #333333 transparent transparent;
+    left: -10px;
+    margin-top: -5px;
+    right: auto;
+    top: 50%; } }
+/* Clearing Styles */
+.clearing-thumbs, [data-clearing] {
+  list-style: none;
+  margin-left: 0;
+  margin-bottom: 0; }
+  .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after {
+    content: " ";
+    display: table; }
+  .clearing-thumbs:after, [data-clearing]:after {
+    clear: both; }
+  .clearing-thumbs li, [data-clearing] li {
+    float: left;
+    margin-right: 10px; }
+  .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li {
+    margin-right: 0; }
+
+.clearing-blackout {
+  background: #333333;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 998;
+  left: 0; }
+  .clearing-blackout .clearing-close {
+    display: block; }
+
+.clearing-container {
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+  position: relative;
+  z-index: 998; }
+
+.clearing-touch-label {
+  color: #AAAAAA;
+  font-size: .6em;
+  left: 50%;
+  position: absolute;
+  top: 50%; }
+
+.visible-img {
+  height: 95%;
+  position: relative; }
+  .visible-img img {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    -webkit-transform: translateY(-50%) translateX(-50%);
+    -moz-transform: translateY(-50%) translateX(-50%);
+    -ms-transform: translateY(-50%) translateX(-50%);
+    -o-transform: translateY(-50%) translateX(-50%);
+    transform: translateY(-50%) translateX(-50%);
+    max-height: 100%;
+    max-width: 100%; }
+
+.clearing-caption {
+  background: #333333;
+  bottom: 0;
+  color: #CCCCCC;
+  font-size: 0.875em;
+  line-height: 1.3;
+  margin-bottom: 0;
+  padding: 10px 30px 20px;
+  position: absolute;
+  text-align: center;
+  width: 100%;
+  left: 0; }
+
+.clearing-close {
+  color: #CCCCCC;
+  display: none;
+  font-size: 30px;
+  line-height: 1;
+  padding-left: 20px;
+  padding-top: 10px;
+  z-index: 999; }
+  .clearing-close:hover, .clearing-close:focus {
+    color: #CCCCCC; }
+
+.clearing-assembled .clearing-container {
+  height: 100%; }
+  .clearing-assembled .clearing-container .carousel > ul {
+    display: none; }
+
+.clearing-feature li {
+  display: none; }
+  .clearing-feature li.clearing-featured-img {
+    display: block; }
+
+@media only screen and (min-width: 40.0625em) {
+  .clearing-main-prev,
+  .clearing-main-next {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    width: 40px; }
+    .clearing-main-prev > span,
+    .clearing-main-next > span {
+      border: solid 12px;
+      display: block;
+      height: 0;
+      position: absolute;
+      top: 50%;
+      width: 0; }
+      .clearing-main-prev > span:hover,
+      .clearing-main-next > span:hover {
+        opacity: .8; }
+
+  .clearing-main-prev {
+    left: 0; }
+    .clearing-main-prev > span {
+      left: 5px;
+      border-color: transparent;
+      border-right-color: #CCCCCC; }
+
+  .clearing-main-next {
+    right: 0; }
+    .clearing-main-next > span {
+      border-color: transparent;
+      border-left-color: #CCCCCC; }
+
+  .clearing-main-prev.disabled,
+  .clearing-main-next.disabled {
+    opacity: .3; }
+
+  .clearing-assembled .clearing-container .carousel {
+    background: rgba(51, 51, 51, 0.8);
+    height: 120px;
+    margin-top: 10px;
+    text-align: center; }
+    .clearing-assembled .clearing-container .carousel > ul {
+      display: inline-block;
+      z-index: 999;
+      height: 100%;
+      position: relative;
+      float: none; }
+      .clearing-assembled .clearing-container .carousel > ul li {
+        clear: none;
+        cursor: pointer;
+        display: block;
+        float: left;
+        margin-right: 0;
+        min-height: inherit;
+        opacity: .4;
+        overflow: hidden;
+        padding: 0;
+        position: relative;
+        width: 120px; }
+        .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
+          height: 100%;
+          max-width: none; }
+        .clearing-assembled .clearing-container .carousel > ul li a.th {
+          border: none;
+          box-shadow: none;
+          display: block; }
+        .clearing-assembled .clearing-container .carousel > ul li img {
+          cursor: pointer !important;
+          width: 100% !important; }
+        .clearing-assembled .clearing-container .carousel > ul li.visible {
+          opacity: 1; }
+        .clearing-assembled .clearing-container .carousel > ul li:hover {
+          opacity: .8; }
+  .clearing-assembled .clearing-container .visible-img {
+    background: #333333;
+    height: 85%;
+    overflow: hidden; }
+
+  .clearing-close {
+    padding-left: 0;
+    padding-top: 0;
+    position: absolute;
+    top: 10px;
+    right: 20px; } }
+/* Progress Bar */
+.progress {
+  background-color: #F6F6F6;
+  border: 1px solid white;
+  height: 1.5625rem;
+  margin-bottom: 0.625rem;
+  padding: 0.125rem; }
+  .progress .meter {
+    background: #008CBA;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+    .progress .meter.secondary {
+      background: #e7e7e7;
+      display: block;
+      height: 100%;
+      float: left;
+      width: 0%; }
+    .progress .meter.success {
+      background: #43AC6A;
+      display: block;
+      height: 100%;
+      float: left;
+      width: 0%; }
+    .progress .meter.alert {
+      background: #f04124;
+      display: block;
+      height: 100%;
+      float: left;
+      width: 0%; }
+  .progress.secondary .meter {
+    background: #e7e7e7;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+  .progress.success .meter {
+    background: #43AC6A;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+  .progress.alert .meter {
+    background: #f04124;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+  .progress.radius {
+    border-radius: 3px; }
+    .progress.radius .meter {
+      border-radius: 2px; }
+  .progress.round {
+    border-radius: 1000px; }
+    .progress.round .meter {
+      border-radius: 999px; }
+
+.sub-nav {
+  display: block;
+  margin: -0.25rem 0 1.125rem;
+  overflow: hidden;
+  padding-top: 0.25rem;
+  width: auto; }
+  .sub-nav dt {
+    text-transform: uppercase; }
+  .sub-nav dt,
+  .sub-nav dd,
+  .sub-nav li {
+    color: #999999;
+    float: left;
+    font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+    font-size: 0.875rem;
+    font-weight: normal;
+    margin-left: 1rem;
+    margin-bottom: 0; }
+    .sub-nav dt a,
+    .sub-nav dd a,
+    .sub-nav li a {
+      color: #999999;
+      padding: 0.1875rem 1rem;
+      text-decoration: none; }
+      .sub-nav dt a:hover,
+      .sub-nav dd a:hover,
+      .sub-nav li a:hover {
+        color: #737373; }
+    .sub-nav dt.active a,
+    .sub-nav dd.active a,
+    .sub-nav li.active a {
+      border-radius: 3px;
+      background: #008CBA;
+      color: #FFFFFF;
+      cursor: default;
+      font-weight: normal;
+      padding: 0.1875rem 1rem; }
+      .sub-nav dt.active a:hover,
+      .sub-nav dd.active a:hover,
+      .sub-nav li.active a:hover {
+        background: #0078a0; }
+
+/* Foundation Joyride */
+.joyride-list {
+  display: none; }
+
+/* Default styles for the container */
+.joyride-tip-guide {
+  background: #333333;
+  color: #FFFFFF;
+  display: none;
+  font-family: inherit;
+  font-weight: normal;
+  position: absolute;
+  top: 0;
+  width: 95%;
+  z-index: 103;
+  left: 2.5%; }
+
+.lt-ie9 .joyride-tip-guide {
+  margin-left: -400px;
+  max-width: 800px;
+  left: 50%; }
+
+.joyride-content-wrapper {
+  padding: 1.125rem 1.25rem 1.5rem;
+  width: 100%; }
+  .joyride-content-wrapper .button {
+    margin-bottom: 0 !important; }
+  .joyride-content-wrapper .joyride-prev-tip {
+    margin-right: 10px; }
+
+/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
+.joyride-tip-guide .joyride-nub {
+  border: 10px solid #333333;
+  display: block;
+  height: 0;
+  position: absolute;
+  width: 0;
+  left: 22px; }
+  .joyride-tip-guide .joyride-nub.top {
+    border-color: #333333;
+    border-top-color: transparent !important;
+    border-top-style: solid;
+    border-left-color: transparent !important;
+    border-right-color: transparent !important;
+    top: -20px; }
+  .joyride-tip-guide .joyride-nub.bottom {
+    border-color: #333333 !important;
+    border-bottom-color: transparent !important;
+    border-bottom-style: solid;
+    border-left-color: transparent !important;
+    border-right-color: transparent !important;
+    bottom: -20px; }
+  .joyride-tip-guide .joyride-nub.right {
+    right: -20px; }
+  .joyride-tip-guide .joyride-nub.left {
+    left: -20px; }
+
+/* Typography */
+.joyride-tip-guide h1,
+.joyride-tip-guide h2,
+.joyride-tip-guide h3,
+.joyride-tip-guide h4,
+.joyride-tip-guide h5,
+.joyride-tip-guide h6 {
+  color: #FFFFFF;
+  font-weight: bold;
+  line-height: 1.25;
+  margin: 0; }
+
+.joyride-tip-guide p {
+  font-size: 0.875rem;
+  line-height: 1.3;
+  margin: 0 0 1.125rem 0; }
+
+.joyride-timer-indicator-wrap {
+  border: solid 1px #555555;
+  bottom: 1rem;
+  height: 3px;
+  position: absolute;
+  width: 50px;
+  right: 1.0625rem; }
+
+.joyride-timer-indicator {
+  background: #666666;
+  display: block;
+  height: inherit;
+  width: 0; }
+
+.joyride-close-tip {
+  color: #777777 !important;
+  font-size: 24px;
+  font-weight: normal;
+  line-height: .5 !important;
+  position: absolute;
+  text-decoration: none;
+  top: 10px;
+  right: 12px; }
+  .joyride-close-tip:hover, .joyride-close-tip:focus {
+    color: #EEEEEE !important; }
+
+.joyride-modal-bg {
+  background: rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  display: none;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 100;
+  left: 0; }
+
+.joyride-expose-wrapper {
+  background-color: #FFFFFF;
+  border-radius: 3px;
+  box-shadow: 0 0 15px #FFFFFF;
+  position: absolute;
+  z-index: 102; }
+
+.joyride-expose-cover {
+  background: transparent;
+  border-radius: 3px;
+  left: 0;
+  position: absolute;
+  top: 0;
+  z-index: 9999; }
+
+/* Styles for screens that are at least 768px; */
+@media only screen {
+  .joyride-tip-guide {
+    width: 300px;
+    left: inherit; }
+    .joyride-tip-guide .joyride-nub.bottom {
+      border-color: #333333 !important;
+      border-bottom-color: transparent !important;
+      border-left-color: transparent !important;
+      border-right-color: transparent !important;
+      bottom: -20px; }
+    .joyride-tip-guide .joyride-nub.right {
+      border-color: #333333 !important;
+      border-right-color: transparent !important;
+      border-bottom-color: transparent !important;
+      border-top-color: transparent !important;
+      left: auto;
+      right: -20px;
+      top: 22px; }
+    .joyride-tip-guide .joyride-nub.left {
+      border-color: #333333 !important;
+      border-bottom-color: transparent !important;
+      border-left-color: transparent !important;
+      border-top-color: transparent !important;
+      left: -20px;
+      right: auto;
+      top: 22px; } }
+.label {
+  display: inline-block;
+  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+  font-weight: normal;
+  line-height: 1;
+  margin-bottom: auto;
+  position: relative;
+  text-align: center;
+  text-decoration: none;
+  white-space: nowrap;
+  padding: 0.25rem 0.5rem 0.25rem;
+  font-size: 0.6875rem;
+  background-color: #008CBA;
+  color: #FFFFFF; }
+  .label.radius {
+    border-radius: 3px; }
+  .label.round {
+    border-radius: 1000px; }
+  .label.alert {
+    background-color: #f04124;
+    color: #FFFFFF; }
+  .label.warning {
+    background-color: #f08a24;
+    color: #FFFFFF; }
+  .label.success {
+    background-color: #43AC6A;
+    color: #FFFFFF; }
+  .label.secondary {
+    background-color: #e7e7e7;
+    color: #333333; }
+  .label.info {
+    background-color: #a0d3e8;
+    color: #333333; }
+
+.off-canvas-wrap {
+  -webkit-backface-visibility: hidden;
+  position: relative;
+  width: 100%;
+  overflow: hidden; }
+  .off-canvas-wrap.move-right, .off-canvas-wrap.move-left, .off-canvas-wrap.move-bottom, .off-canvas-wrap.move-top {
+    min-height: 100%;
+    -webkit-overflow-scrolling: touch; }
+
+.inner-wrap {
+  position: relative;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .inner-wrap:before, .inner-wrap:after {
+    content: " ";
+    display: table; }
+  .inner-wrap:after {
+    clear: both; }
+
+.tab-bar {
+  -webkit-backface-visibility: hidden;
+  background: #333333;
+  color: #FFFFFF;
+  height: 2.8125rem;
+  line-height: 2.8125rem;
+  position: relative; }
+  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
+    color: #FFFFFF;
+    font-weight: bold;
+    line-height: 2.8125rem;
+    margin: 0; }
+  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
+    font-size: 1.125rem; }
+
+.left-small {
+  height: 2.8125rem;
+  position: absolute;
+  top: 0;
+  width: 2.8125rem;
+  border-right: solid 1px #1a1a1a;
+  left: 0; }
+
+.right-small {
+  height: 2.8125rem;
+  position: absolute;
+  top: 0;
+  width: 2.8125rem;
+  border-left: solid 1px #1a1a1a;
+  right: 0; }
+
+.tab-bar-section {
+  height: 2.8125rem;
+  padding: 0 0.625rem;
+  position: absolute;
+  text-align: center;
+  top: 0; }
+  .tab-bar-section.left {
+    text-align: left; }
+  .tab-bar-section.right {
+    text-align: right; }
+  .tab-bar-section.left {
+    left: 0;
+    right: 2.8125rem; }
+  .tab-bar-section.right {
+    left: 2.8125rem;
+    right: 0; }
+  .tab-bar-section.middle {
+    left: 2.8125rem;
+    right: 2.8125rem; }
+
+.tab-bar .menu-icon {
+  color: #FFFFFF;
+  display: block;
+  height: 2.8125rem;
+  padding: 0;
+  position: relative;
+  text-indent: 2.1875rem;
+  transform: translate3d(0, 0, 0);
+  width: 2.8125rem; }
+  .tab-bar .menu-icon span::after {
+    content: "";
+    display: block;
+    height: 0;
+    position: absolute;
+    top: 50%;
+    margin-top: -0.5rem;
+    left: 0.90625rem;
+    box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
+    width: 1rem; }
+  .tab-bar .menu-icon span:hover:after {
+    box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; }
+
+.left-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(-100%, 0, 0);
+  -moz-transform: translate3d(-100%, 0, 0);
+  -ms-transform: translate(-100%, 0);
+  -o-transform: translate3d(-100%, 0, 0);
+  transform: translate3d(-100%, 0, 0);
+  left: 0;
+  top: 0; }
+  .left-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+.right-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(100%, 0, 0);
+  -moz-transform: translate3d(100%, 0, 0);
+  -ms-transform: translate(100%, 0);
+  -o-transform: translate3d(100%, 0, 0);
+  transform: translate3d(100%, 0, 0);
+  right: 0;
+  top: 0; }
+  .right-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+.top-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(0, -100%, 0);
+  -moz-transform: translate3d(0, -100%, 0);
+  -ms-transform: translate(0, -100%);
+  -o-transform: translate3d(0, -100%, 0);
+  transform: translate3d(0, -100%, 0);
+  top: 0;
+  width: 100%;
+  height: 18.75rem; }
+  .top-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+.bottom-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(0, 100%, 0);
+  -moz-transform: translate3d(0, 100%, 0);
+  -ms-transform: translate(0, 100%);
+  -o-transform: translate3d(0, 100%, 0);
+  transform: translate3d(0, 100%, 0);
+  bottom: 0;
+  width: 100%;
+  height: 18.75rem; }
+  .bottom-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+ul.off-canvas-list {
+  list-style-type: none;
+  margin: 0;
+  padding: 0; }
+  ul.off-canvas-list li label {
+    background: #444444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    display: block;
+    font-size: 0.75rem;
+    font-weight: bold;
+    margin: 0;
+    padding: 0.3rem 0.9375rem;
+    text-transform: uppercase; }
+  ul.off-canvas-list li a {
+    border-bottom: 1px solid #262626;
+    color: rgba(255, 255, 255, 0.7);
+    display: block;
+    padding: 0.66667rem;
+    transition: background 300ms ease; }
+    ul.off-canvas-list li a:hover {
+      background: #242424; }
+    ul.off-canvas-list li a:active {
+      background: #242424; }
+
+.move-right > .inner-wrap {
+  -webkit-transform: translate3d(15.625rem, 0, 0);
+  -moz-transform: translate3d(15.625rem, 0, 0);
+  -ms-transform: translate(15.625rem, 0);
+  -o-transform: translate3d(15.625rem, 0, 0);
+  transform: translate3d(15.625rem, 0, 0); }
+.move-right .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .move-right .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-left > .inner-wrap {
+  -webkit-transform: translate3d(-15.625rem, 0, 0);
+  -moz-transform: translate3d(-15.625rem, 0, 0);
+  -ms-transform: translate(-15.625rem, 0);
+  -o-transform: translate3d(-15.625rem, 0, 0);
+  transform: translate3d(-15.625rem, 0, 0); }
+.move-left .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .move-left .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-top > .inner-wrap {
+  -webkit-transform: translate3d(0, -18.75rem, 0);
+  -moz-transform: translate3d(0, -18.75rem, 0);
+  -ms-transform: translate(0, -18.75rem);
+  -o-transform: translate3d(0, -18.75rem, 0);
+  transform: translate3d(0, -18.75rem, 0); }
+.move-top .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .move-top .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-bottom > .inner-wrap {
+  -webkit-transform: translate3d(0, 18.75rem, 0);
+  -moz-transform: translate3d(0, 18.75rem, 0);
+  -ms-transform: translate(0, 18.75rem);
+  -o-transform: translate3d(0, 18.75rem, 0);
+  transform: translate3d(0, 18.75rem, 0); }
+.move-bottom .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .move-bottom .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu,
+.offcanvas-overlap .top-off-canvas-menu, .offcanvas-overlap .bottom-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .offcanvas-overlap .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-left .right-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-left .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .offcanvas-overlap-left .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-right .left-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-right .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .offcanvas-overlap-right .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-top .bottom-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-top .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .offcanvas-overlap-top .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-bottom .top-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-bottom .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width: 40.0625em) {
+    .offcanvas-overlap-bottom .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.no-csstransforms .left-off-canvas-menu {
+  left: -15.625rem; }
+.no-csstransforms .right-off-canvas-menu {
+  right: -15.625rem; }
+.no-csstransforms .top-off-canvas-menu {
+  top: -18.75rem; }
+.no-csstransforms .bottom-off-canvas-menu {
+  bottom: -18.75rem; }
+.no-csstransforms .move-left > .inner-wrap {
+  right: 15.625rem; }
+.no-csstransforms .move-right > .inner-wrap {
+  left: 15.625rem; }
+.no-csstransforms .move-top > .inner-wrap {
+  right: 18.75rem; }
+.no-csstransforms .move-bottom > .inner-wrap {
+  left: 18.75rem; }
+
+.left-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(-100%, 0, 0);
+  -moz-transform: translate3d(-100%, 0, 0);
+  -ms-transform: translate(-100%, 0);
+  -o-transform: translate3d(-100%, 0, 0);
+  transform: translate3d(-100%, 0, 0);
+  left: 0;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .left-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .left-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: 0.3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .left-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+    .left-submenu .back > a:before {
+      content: "\AB";
+      margin-right: .5rem;
+      display: inline; }
+  .left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0%, 0, 0);
+    -moz-transform: translate3d(0%, 0, 0);
+    -ms-transform: translate(0%, 0);
+    -o-transform: translate3d(0%, 0, 0);
+    transform: translate3d(0%, 0, 0); }
+
+.right-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(100%, 0, 0);
+  -moz-transform: translate3d(100%, 0, 0);
+  -ms-transform: translate(100%, 0);
+  -o-transform: translate3d(100%, 0, 0);
+  transform: translate3d(100%, 0, 0);
+  right: 0;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .right-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .right-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: 0.3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .right-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+    .right-submenu .back > a:after {
+      content: "\BB";
+      margin-left: .5rem;
+      display: inline; }
+  .right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0%, 0, 0);
+    -moz-transform: translate3d(0%, 0, 0);
+    -ms-transform: translate(0%, 0);
+    -o-transform: translate3d(0%, 0, 0);
+    transform: translate3d(0%, 0, 0); }
+
+.top-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(0, -100%, 0);
+  -moz-transform: translate3d(0, -100%, 0);
+  -ms-transform: translate(0, -100%);
+  -o-transform: translate3d(0, -100%, 0);
+  transform: translate3d(0, -100%, 0);
+  top: 0;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .top-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .top-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: 0.3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .top-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+  .top-submenu.move-bottom, .top-submenu.offcanvas-overlap-bottom, .top-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0, 0%, 0);
+    -moz-transform: translate3d(0, 0%, 0);
+    -ms-transform: translate(0, 0%);
+    -o-transform: translate3d(0, 0%, 0);
+    transform: translate3d(0, 0%, 0); }
+
+.bottom-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #333333;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(0, 100%, 0);
+  -moz-transform: translate3d(0, 100%, 0);
+  -ms-transform: translate(0, 100%);
+  -o-transform: translate3d(0, 100%, 0);
+  transform: translate3d(0, 100%, 0);
+  bottom: 0;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .bottom-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .bottom-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: 0.3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .bottom-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+  .bottom-submenu.move-top, .bottom-submenu.offcanvas-overlap-top, .bottom-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0, 0%, 0);
+    -moz-transform: translate3d(0, 0%, 0);
+    -ms-transform: translate(0, 0%);
+    -o-transform: translate3d(0, 0%, 0);
+    transform: translate3d(0, 0%, 0); }
+
+.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
+  content: "\BB";
+  margin-left: .5rem;
+  display: inline; }
+
+.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
+  content: "\AB";
+  margin-right: .5rem;
+  display: inline; }
+
+/* Foundation Dropdowns */
+.f-dropdown {
+  display: none;
+  left: -9999px;
+  list-style: none;
+  margin-left: 0;
+  position: absolute;
+  background: #FFFFFF;
+  border: solid 1px #cccccc;
+  font-size: 0.875rem;
+  height: auto;
+  max-height: none;
+  width: 100%;
+  z-index: 89;
+  margin-top: 2px;
+  max-width: 200px; }
+  .f-dropdown.open {
+    display: block; }
+  .f-dropdown > *:first-child {
+    margin-top: 0; }
+  .f-dropdown > *:last-child {
+    margin-bottom: 0; }
+  .f-dropdown:before {
+    border: inset 6px;
+    content: "";
+    display: block;
+    height: 0;
+    width: 0;
+    border-color: transparent transparent #FFFFFF transparent;
+    border-bottom-style: solid;
+    position: absolute;
+    top: -12px;
+    left: 10px;
+    z-index: 89; }
+  .f-dropdown:after {
+    border: inset 7px;
+    content: "";
+    display: block;
+    height: 0;
+    width: 0;
+    border-color: transparent transparent #cccccc transparent;
+    border-bottom-style: solid;
+    position: absolute;
+    top: -14px;
+    left: 9px;
+    z-index: 88; }
+  .f-dropdown.right:before {
+    left: auto;
+    right: 10px; }
+  .f-dropdown.right:after {
+    left: auto;
+    right: 9px; }
+  .f-dropdown.drop-right {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    width: 100%;
+    z-index: 89;
+    margin-top: 0;
+    margin-left: 2px;
+    max-width: 200px; }
+    .f-dropdown.drop-right.open {
+      display: block; }
+    .f-dropdown.drop-right > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.drop-right > *:last-child {
+      margin-bottom: 0; }
+    .f-dropdown.drop-right:before {
+      border: inset 6px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent #FFFFFF transparent transparent;
+      border-right-style: solid;
+      position: absolute;
+      top: 10px;
+      left: -12px;
+      z-index: 89; }
+    .f-dropdown.drop-right:after {
+      border: inset 7px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent #cccccc transparent transparent;
+      border-right-style: solid;
+      position: absolute;
+      top: 9px;
+      left: -14px;
+      z-index: 88; }
+  .f-dropdown.drop-left {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    width: 100%;
+    z-index: 89;
+    margin-top: 0;
+    margin-left: -2px;
+    max-width: 200px; }
+    .f-dropdown.drop-left.open {
+      display: block; }
+    .f-dropdown.drop-left > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.drop-left > *:last-child {
+      margin-bottom: 0; }
+    .f-dropdown.drop-left:before {
+      border: inset 6px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent transparent transparent #FFFFFF;
+      border-left-style: solid;
+      position: absolute;
+      top: 10px;
+      right: -12px;
+      left: auto;
+      z-index: 89; }
+    .f-dropdown.drop-left:after {
+      border: inset 7px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent transparent transparent #cccccc;
+      border-left-style: solid;
+      position: absolute;
+      top: 9px;
+      right: -14px;
+      left: auto;
+      z-index: 88; }
+  .f-dropdown.drop-top {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    width: 100%;
+    z-index: 89;
+    margin-left: 0;
+    margin-top: -2px;
+    max-width: 200px; }
+    .f-dropdown.drop-top.open {
+      display: block; }
+    .f-dropdown.drop-top > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.drop-top > *:last-child {
+      margin-bottom: 0; }
+    .f-dropdown.drop-top:before {
+      border: inset 6px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: #FFFFFF transparent transparent transparent;
+      border-top-style: solid;
+      bottom: -12px;
+      position: absolute;
+      top: auto;
+      left: 10px;
+      right: auto;
+      z-index: 89; }
+    .f-dropdown.drop-top:after {
+      border: inset 7px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: #cccccc transparent transparent transparent;
+      border-top-style: solid;
+      bottom: -14px;
+      position: absolute;
+      top: auto;
+      left: 9px;
+      right: auto;
+      z-index: 88; }
+  .f-dropdown li {
+    cursor: pointer;
+    font-size: 0.875rem;
+    line-height: 1.125rem;
+    margin: 0; }
+    .f-dropdown li:hover, .f-dropdown li:focus {
+      background: #EEEEEE; }
+    .f-dropdown li a {
+      display: block;
+      padding: 0.5rem;
+      color: #555555; }
+  .f-dropdown.content {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    padding: 1.25rem;
+    width: 100%;
+    z-index: 89;
+    max-width: 200px; }
+    .f-dropdown.content.open {
+      display: block; }
+    .f-dropdown.content > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.content > *:last-child {
+      margin-bottom: 0; }
+  .f-dropdown.radius {
+    border-radius: 3px; }
+  .f-dropdown.tiny {
+    max-width: 200px; }
+  .f-dropdown.small {
+    max-width: 300px; }
+  .f-dropdown.medium {
+    max-width: 500px; }
+  .f-dropdown.large {
+    max-width: 800px; }
+  .f-dropdown.mega {
+    width: 100% !important;
+    max-width: 100% !important; }
+    .f-dropdown.mega.open {
+      left: 0 !important; }
+
+table {
+  background: #FFFFFF;
+  border: solid 1px #DDDDDD;
+  margin-bottom: 1.25rem;
+  table-layout: auto; }
+  table caption {
+    background: transparent;
+    color: #222222;
+    font-size: 1rem;
+    font-weight: bold; }
+  table thead {
+    background: #F5F5F5; }
+    table thead tr th,
+    table thead tr td {
+      color: #222222;
+      font-size: 0.875rem;
+      font-weight: bold;
+      padding: 0.5rem 0.625rem 0.625rem; }
+  table tfoot {
+    background: #F5F5F5; }
+    table tfoot tr th,
+    table tfoot tr td {
+      color: #222222;
+      font-size: 0.875rem;
+      font-weight: bold;
+      padding: 0.5rem 0.625rem 0.625rem; }
+  table tr th,
+  table tr td {
+    color: #222222;
+    font-size: 0.875rem;
+    padding: 0.5625rem 0.625rem;
+    text-align: left; }
+  table tr.even, table tr.alt, table tr:nth-of-type(even) {
+    background: #F9F9F9; }
+  table thead tr th,
+  table tfoot tr th,
+  table tfoot tr td,
+  table tbody tr th,
+  table tbody tr td,
+  table tr td {
+    display: table-cell;
+    line-height: 1.125rem; }
+
+.range-slider {
+  border: 1px solid #DDDDDD;
+  margin: 1.25rem 0;
+  position: relative;
+  -ms-touch-action: none;
+  touch-action: none;
+  display: block;
+  height: 1rem;
+  width: 100%;
+  background: #FAFAFA; }
+  .range-slider.vertical-range {
+    border: 1px solid #DDDDDD;
+    margin: 1.25rem 0;
+    position: relative;
+    -ms-touch-action: none;
+    touch-action: none;
+    display: inline-block;
+    height: 12.5rem;
+    width: 1rem; }
+    .range-slider.vertical-range .range-slider-handle {
+      bottom: -10.5rem;
+      margin-left: -0.5rem;
+      margin-top: 0;
+      position: absolute; }
+    .range-slider.vertical-range .range-slider-active-segment {
+      border-bottom-left-radius: inherit;
+      border-bottom-right-radius: inherit;
+      border-top-left-radius: initial;
+      bottom: 0;
+      height: auto;
+      width: 0.875rem; }
+  .range-slider.radius {
+    background: #FAFAFA;
+    border-radius: 3px; }
+    .range-slider.radius .range-slider-handle {
+      background: #008CBA;
+      border-radius: 3px; }
+      .range-slider.radius .range-slider-handle:hover {
+        background: #007ba4; }
+  .range-slider.round {
+    background: #FAFAFA;
+    border-radius: 1000px; }
+    .range-slider.round .range-slider-handle {
+      background: #008CBA;
+      border-radius: 1000px; }
+      .range-slider.round .range-slider-handle:hover {
+        background: #007ba4; }
+  .range-slider.disabled, .range-slider[disabled] {
+    background: #FAFAFA;
+    cursor: not-allowed;
+    opacity: 0.7; }
+    .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle {
+      background: #008CBA;
+      cursor: default;
+      opacity: 0.7; }
+      .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover {
+        background: #007ba4; }
+
+.range-slider-active-segment {
+  background: #e5e5e5;
+  border-bottom-left-radius: inherit;
+  border-top-left-radius: inherit;
+  display: inline-block;
+  height: 0.875rem;
+  position: absolute; }
+
+.range-slider-handle {
+  border: 1px solid none;
+  cursor: pointer;
+  display: inline-block;
+  height: 1.375rem;
+  position: absolute;
+  top: -0.3125rem;
+  width: 2rem;
+  z-index: 1;
+  -ms-touch-action: manipulation;
+  touch-action: manipulation;
+  background: #008CBA; }
+  .range-slider-handle:hover {
+    background: #007ba4; }
+
+[class*="block-grid-"] {
+  display: block;
+  padding: 0;
+  margin: 0 -0.625rem; }
+  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
+    content: " ";
+    display: table; }
+  [class*="block-grid-"]:after {
+    clear: both; }
+  [class*="block-grid-"] > li {
+    display: block;
+    float: left;
+    height: auto;
+    padding: 0 0.625rem 1.25rem; }
+
+@media only screen {
+  .small-block-grid-1 > li {
+    list-style: none;
+    width: 100%; }
+    .small-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+
+  .small-block-grid-2 > li {
+    list-style: none;
+    width: 50%; }
+    .small-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+
+  .small-block-grid-3 > li {
+    list-style: none;
+    width: 33.33333%; }
+    .small-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+
+  .small-block-grid-4 > li {
+    list-style: none;
+    width: 25%; }
+    .small-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+
+  .small-block-grid-5 > li {
+    list-style: none;
+    width: 20%; }
+    .small-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+
+  .small-block-grid-6 > li {
+    list-style: none;
+    width: 16.66667%; }
+    .small-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+
+  .small-block-grid-7 > li {
+    list-style: none;
+    width: 14.28571%; }
+    .small-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+
+  .small-block-grid-8 > li {
+    list-style: none;
+    width: 12.5%; }
+    .small-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+
+  .small-block-grid-9 > li {
+    list-style: none;
+    width: 11.11111%; }
+    .small-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+
+  .small-block-grid-10 > li {
+    list-style: none;
+    width: 10%; }
+    .small-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+
+  .small-block-grid-11 > li {
+    list-style: none;
+    width: 9.09091%; }
+    .small-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+
+  .small-block-grid-12 > li {
+    list-style: none;
+    width: 8.33333%; }
+    .small-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+@media only screen and (min-width: 40.0625em) {
+  .medium-block-grid-1 > li {
+    list-style: none;
+    width: 100%; }
+    .medium-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+
+  .medium-block-grid-2 > li {
+    list-style: none;
+    width: 50%; }
+    .medium-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+
+  .medium-block-grid-3 > li {
+    list-style: none;
+    width: 33.33333%; }
+    .medium-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+
+  .medium-block-grid-4 > li {
+    list-style: none;
+    width: 25%; }
+    .medium-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+
+  .medium-block-grid-5 > li {
+    list-style: none;
+    width: 20%; }
+    .medium-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+
+  .medium-block-grid-6 > li {
+    list-style: none;
+    width: 16.66667%; }
+    .medium-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+
+  .medium-block-grid-7 > li {
+    list-style: none;
+    width: 14.28571%; }
+    .medium-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+
+  .medium-block-grid-8 > li {
+    list-style: none;
+    width: 12.5%; }
+    .medium-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+
+  .medium-block-grid-9 > li {
+    list-style: none;
+    width: 11.11111%; }
+    .medium-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+
+  .medium-block-grid-10 > li {
+    list-style: none;
+    width: 10%; }
+    .medium-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+
+  .medium-block-grid-11 > li {
+    list-style: none;
+    width: 9.09091%; }
+    .medium-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+
+  .medium-block-grid-12 > li {
+    list-style: none;
+    width: 8.33333%; }
+    .medium-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+@media only screen and (min-width: 64.0625em) {
+  .large-block-grid-1 > li {
+    list-style: none;
+    width: 100%; }
+    .large-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+
+  .large-block-grid-2 > li {
+    list-style: none;
+    width: 50%; }
+    .large-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+
+  .large-block-grid-3 > li {
+    list-style: none;
+    width: 33.33333%; }
+    .large-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+
+  .large-block-grid-4 > li {
+    list-style: none;
+    width: 25%; }
+    .large-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+
+  .large-block-grid-5 > li {
+    list-style: none;
+    width: 20%; }
+    .large-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+
+  .large-block-grid-6 > li {
+    list-style: none;
+    width: 16.66667%; }
+    .large-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+
+  .large-block-grid-7 > li {
+    list-style: none;
+    width: 14.28571%; }
+    .large-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+
+  .large-block-grid-8 > li {
+    list-style: none;
+    width: 12.5%; }
+    .large-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+
+  .large-block-grid-9 > li {
+    list-style: none;
+    width: 11.11111%; }
+    .large-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+
+  .large-block-grid-10 > li {
+    list-style: none;
+    width: 10%; }
+    .large-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+
+  .large-block-grid-11 > li {
+    list-style: none;
+    width: 9.09091%; }
+    .large-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+
+  .large-block-grid-12 > li {
+    list-style: none;
+    width: 8.33333%; }
+    .large-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+.flex-video {
+  height: 0;
+  margin-bottom: 1rem;
+  overflow: hidden;
+  padding-bottom: 67.5%;
+  padding-top: 1.5625rem;
+  position: relative; }
+  .flex-video.widescreen {
+    padding-bottom: 56.34%; }
+  .flex-video.vimeo {
+    padding-top: 0; }
+  .flex-video iframe,
+  .flex-video object,
+  .flex-video embed,
+  .flex-video video {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    width: 100%;
+    left: 0; }
+
+.keystroke,
+kbd {
+  background-color: #ededed;
+  border-color: #dddddd;
+  color: #222222;
+  border-style: solid;
+  border-width: 1px;
+  font-family: "Consolas", "Menlo", "Courier", monospace;
+  font-size: inherit;
+  margin: 0;
+  padding: 0.125rem 0.25rem 0;
+  border-radius: 3px; }
+
+.switch {
+  border: none;
+  margin-bottom: 1.5rem;
+  outline: 0;
+  padding: 0;
   position: relative;
-  width: auto;
-  -webkit-transition: left 300ms ease-out;
-  -moz-transition: left 300ms ease-out;
-  transition: left 300ms ease-out; }
-  .top-bar-section ul {
-    width: 100%;
-    height: auto;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none; }
+  .switch label {
+    background: #DDDDDD;
+    color: transparent;
+    cursor: pointer;
     display: block;
-    background: #222222;
-    font-size: 16px;
-    margin: 0; }
-  .top-bar-section .divider,
-  .top-bar-section [role="separator"] {
-    border-bottom: solid 1px #2b2b2b;
-    border-top: solid 1px black;
-    clear: both;
-    height: 1px;
-    width: 100%; }
-  .top-bar-section ul li > a {
+    margin-bottom: 1rem;
+    position: relative;
+    text-indent: 100%;
+    width: 4rem;
+    height: 2rem;
+    transition: left 0.15s ease-out; }
+  .switch input {
+    left: 10px;
+    opacity: 0;
+    padding: 0;
+    position: absolute;
+    top: 9px; }
+    .switch input + label {
+      margin-left: 0;
+      margin-right: 0; }
+  .switch label:after {
+    background: #FFFFFF;
+    content: "";
     display: block;
-    width: 100%;
-    color: white;
-    padding: 12px 0 12px 0;
-    padding-left: 15px;
-    font-size: 0.8125em;
-    font-weight: bold;
-    background: #222222; }
-    .top-bar-section ul li > a.hover {
-      background: #090909;
-      color: white; }
-    .top-bar-section ul li > a.button {
-      background: #2ba6cb;
-      font-size: 0.8125em; }
-      .top-bar-section ul li > a.button.hover {
-        background: #2284a1; }
-    .top-bar-section ul li > a.button.secondary {
-      background: #e9e9e9; }
-      .top-bar-section ul li > a.button.secondary.hover {
-        background: #d0d0d0; }
-    .top-bar-section ul li > a.button.success {
-      background: #5da423; }
-      .top-bar-section ul li > a.button.success.hover {
-        background: #457a1a; }
-    .top-bar-section ul li > a.button.alert {
-      background: #c60f13; }
-      .top-bar-section ul li > a.button.alert.hover {
-        background: #970b0e; }
-  .top-bar-section ul li.active > a {
-    background: #090909;
-    color: white; }
-  .top-bar-section .has-form {
-    padding: 15px; }
-  .top-bar-section .has-dropdown {
-    position: relative; }
-    .top-bar-section .has-dropdown > a:after {
-      content: "";
-      display: block;
-      width: 0;
-      height: 0;
-      border: inset 5px;
-      border-color: transparent transparent transparent rgba(255, 255, 255, 0.5);
-      border-left-style: solid;
-      margin-right: 15px;
-      margin-top: -4.5px;
-      position: absolute;
-      top: 50%;
-      right: 0; }
-    .top-bar-section .has-dropdown.moved {
-      position: static; }
-      .top-bar-section .has-dropdown.moved > .dropdown {
-        visibility: visible; }
-  .top-bar-section .dropdown {
+    height: 1.5rem;
+    left: .25rem;
     position: absolute;
-    left: 100%;
-    top: 0;
-    visibility: hidden;
-    z-index: 99; }
-    .top-bar-section .dropdown li {
-      width: 100%;
-      height: auto; }
-      .top-bar-section .dropdown li a {
-        font-weight: normal;
-        padding: 8px 15px; }
-      .top-bar-section .dropdown li.title h5 {
-        margin-bottom: 0; }
-        .top-bar-section .dropdown li.title h5 a {
-          color: white;
-          line-height: 22.5px;
-          display: block; }
-    .top-bar-section .dropdown label {
-      padding: 8px 15px 2px;
-      margin-bottom: 0;
-      text-transform: uppercase;
-      color: #555555;
-      font-weight: bold;
-      font-size: 0.625em; }
+    top: .25rem;
+    width: 1.5rem;
+    -webkit-transition: left 0.15s ease-out;
+    -moz-transition: left 0.15s ease-out;
+    -o-transition: translate3d(0, 0, 0);
+    transition: left 0.15s ease-out;
+    -webkit-transform: translate3d(0, 0, 0);
+    -moz-transform: translate3d(0, 0, 0);
+    -ms-transform: translate3d(0, 0, 0);
+    -o-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0); }
+  .switch input:checked + label {
+    background: #008CBA; }
+  .switch input:checked + label:after {
+    left: 2.25rem; }
+  .switch label {
+    height: 2rem;
+    width: 4rem; }
+  .switch label:after {
+    height: 1.5rem;
+    width: 1.5rem; }
+  .switch input:checked + label:after {
+    left: 2.25rem; }
+  .switch label {
+    color: transparent;
+    background: #DDDDDD; }
+  .switch label:after {
+    background: #FFFFFF; }
+  .switch input:checked + label {
+    background: #008CBA; }
+  .switch.large label {
+    height: 2.5rem;
+    width: 5rem; }
+  .switch.large label:after {
+    height: 2rem;
+    width: 2rem; }
+  .switch.large input:checked + label:after {
+    left: 2.75rem; }
+  .switch.small label {
+    height: 1.75rem;
+    width: 3.5rem; }
+  .switch.small label:after {
+    height: 1.25rem;
+    width: 1.25rem; }
+  .switch.small input:checked + label:after {
+    left: 2rem; }
+  .switch.tiny label {
+    height: 1.5rem;
+    width: 3rem; }
+  .switch.tiny label:after {
+    height: 1rem;
+    width: 1rem; }
+  .switch.tiny input:checked + label:after {
+    left: 1.75rem; }
+  .switch.radius label {
+    border-radius: 4px; }
+  .switch.radius label:after {
+    border-radius: 3px; }
+  .switch.round {
+    border-radius: 1000px; }
+    .switch.round label {
+      border-radius: 2rem; }
+    .switch.round label:after {
+      border-radius: 2rem; }
 
-.top-bar-js-breakpoint {
-  width: 58.75em !important;
-  visibility: hidden; }
+/* small displays */
+@media only screen {
+  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
 
-.js-generated {
-  display: block; }
+  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
 
-@media only screen and (min-width: 58.75em) {
-  .top-bar {
-    background: #111111;
-    *zoom: 1;
-    overflow: visible; }
-    .top-bar:before, .top-bar:after {
-      content: " ";
-      display: table; }
-    .top-bar:after {
-      clear: both; }
-    .top-bar .toggle-topbar {
-      display: none; }
-    .top-bar .title-area {
-      float: left; }
-    .top-bar .name h1 a {
-      width: auto; }
-    .top-bar input,
-    .top-bar .button {
-      line-height: 2em;
-      font-size: 0.875em;
-      height: 2em;
-      padding: 0 10px;
-      position: relative;
-      top: 8px; }
-    .top-bar.expanded {
-      background: #111111; }
+  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
 
-  .contain-to-grid .top-bar {
-    max-width: 62.5em;
-    margin: 0 auto; }
+  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
 
-  .top-bar-section {
-    -webkit-transition: none 0 0;
-    -moz-transition: none 0 0;
-    transition: none 0 0;
-    left: 0 !important; }
-    .top-bar-section ul {
-      width: auto;
-      height: auto !important;
-      display: inline; }
-      .top-bar-section ul li {
-        float: left; }
-        .top-bar-section ul li .js-generated {
-          display: none; }
-    .top-bar-section li a:not(.button) {
-      padding: 0 15px;
-      line-height: 45px;
-      background: #111111; }
-      .top-bar-section li a:not(.button).hover {
-        background: black; }
-    .top-bar-section .has-dropdown > a {
-      padding-right: 35px !important; }
-      .top-bar-section .has-dropdown > a:after {
-        content: "";
-        display: block;
-        width: 0;
-        height: 0;
-        border: inset 5px;
-        border-color: rgba(255, 255, 255, 0.5) transparent transparent transparent;
-        border-top-style: solid;
-        margin-top: -2.5px;
-        top: 22.5px; }
-    .top-bar-section .has-dropdown.moved {
-      position: relative; }
-      .top-bar-section .has-dropdown.moved > .dropdown {
-        visibility: hidden; }
-    .top-bar-section .has-dropdown.hover > .dropdown {
-      visibility: visible; }
-    .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
-      border: none;
-      content: "\00bb";
-      margin-top: -16px;
-      right: 5px; }
-    .top-bar-section .dropdown {
-      left: 0;
-      top: auto;
-      background: transparent;
-      min-width: 100%; }
-      .top-bar-section .dropdown li a {
-        color: white;
-        line-height: 1;
-        white-space: nowrap;
-        padding: 7px 15px;
-        background: #1e1e1e; }
-      .top-bar-section .dropdown li label {
-        white-space: nowrap;
-        background: #1e1e1e; }
-      .top-bar-section .dropdown li .dropdown {
-        left: 100%;
-        top: 0; }
-    .top-bar-section > ul > .divider, .top-bar-section > ul > [role="separator"] {
-      border-bottom: none;
-      border-top: none;
-      border-right: solid 1px #2b2b2b;
-      border-left: solid 1px black;
-      clear: none;
-      height: 45px;
-      width: 0px; }
-    .top-bar-section .has-form {
-      background: #111111;
-      padding: 0 15px;
-      height: 45px; }
-    .top-bar-section ul.right li .dropdown {
-      left: auto;
-      right: 0; }
-      .top-bar-section ul.right li .dropdown li .dropdown {
-        right: 100%; } }
-@-webkit-keyframes rotate {
-  from {
-    -webkit-transform: rotate(0deg); }
+  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
 
-  to {
-    -webkit-transform: rotate(360deg); } }
+  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
 
-@-moz-keyframes rotate {
-  from {
-    -webkit-transform: rotate(0deg); }
+  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
 
-  to {
-    -webkit-transform: rotate(360deg); } }
+  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
 
-@-o-keyframes rotate {
-  from {
-    -webkit-transform: rotate(0deg); }
+  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* medium displays */
+@media only screen and (min-width: 40.0625em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
 
-  to {
-    -webkit-transform: rotate(360deg); } }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
 
-@keyframes rotate {
-  from {
-    -webkit-transform: rotate(0deg); }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
 
-  to {
-    -webkit-transform: rotate(360deg); } }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
 
-/* Orbit Graceful Loading */
-.slideshow-wrapper {
-  position: relative; }
-  .slideshow-wrapper ul {
-    list-style-type: none;
-    margin: 0; }
-    .slideshow-wrapper ul li,
-    .slideshow-wrapper ul li .orbit-caption {
-      display: none; }
-    .slideshow-wrapper ul li:first-child {
-      display: block; }
-  .slideshow-wrapper .orbit-container {
-    background-color: transparent; }
-    .slideshow-wrapper .orbit-container li {
-      display: block; }
-      .slideshow-wrapper .orbit-container li .orbit-caption {
-        display: block; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
 
-.preloader {
-  display: block;
-  width: 40px;
-  height: 40px;
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  margin-top: -20px;
-  margin-left: -20px;
-  border: solid 3px;
-  border-color: #555555 white;
-  -webkit-border-radius: 1000px;
-  border-radius: 1000px;
-  -webkit-animation-name: rotate;
-  -webkit-animation-duration: 1.5s;
-  -webkit-animation-iteration-count: infinite;
-  -webkit-animation-timing-function: linear;
-  -moz-animation-name: rotate;
-  -moz-animation-duration: 1.5s;
-  -moz-animation-iteration-count: infinite;
-  -moz-animation-timing-function: linear;
-  -o-animation-name: rotate;
-  -o-animation-duration: 1.5s;
-  -o-animation-iteration-count: infinite;
-  -o-animation-timing-function: linear;
-  animation-name: rotate;
-  animation-duration: 1.5s;
-  animation-iteration-count: infinite;
-  animation-timing-function: linear; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
 
-.orbit-container {
-  overflow: hidden;
-  width: 100%;
-  position: relative;
-  background: whitesmoke; }
-  .orbit-container .orbit-slides-container {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    position: relative; }
-    .orbit-container .orbit-slides-container img {
-      display: block; }
-    .orbit-container .orbit-slides-container > * {
-      position: relative;
-      float: left;
-      height: auto; }
-      .orbit-container .orbit-slides-container > * .orbit-caption {
-        position: absolute;
-        bottom: 0;
-        background-color: black;
-        background-color: rgba(0, 0, 0, 0.6);
-        color: white;
-        width: 100%;
-        padding: 10px 14px;
-        font-size: 0.875em; }
-  .orbit-container .orbit-slide-number {
-    position: absolute;
-    top: 10px;
-    left: 10px;
-    font-size: 12px;
-    color: white;
-    background: rgba(0, 0, 0, 0); }
-    .orbit-container .orbit-slide-number span {
-      font-weight: 700;
-      padding: 0.3125em; }
-  .orbit-container .orbit-timer {
-    position: absolute;
-    top: 10px;
-    right: 10px;
-    height: 6px;
-    width: 100px; }
-    .orbit-container .orbit-timer .orbit-progress {
-      height: 100%;
-      background-color: black;
-      background-color: rgba(0, 0, 0, 0.6);
-      display: block;
-      width: 0%; }
-    .orbit-container .orbit-timer > span {
-      display: none;
-      position: absolute;
-      top: 10px;
-      right: 0px;
-      width: 11px;
-      height: 14px;
-      border: solid 4px black;
-      border-top: none;
-      border-bottom: none; }
-    .orbit-container .orbit-timer.paused > span {
-      right: -6px;
-      top: 9px;
-      width: 11px;
-      height: 14px;
-      border: inset 8px;
-      border-right-style: solid;
-      border-color: transparent transparent transparent black; }
-  .orbit-container:hover .orbit-timer > span {
-    display: block; }
-  .orbit-container .orbit-prev,
-  .orbit-container .orbit-next {
-    position: absolute;
-    top: 50%;
-    margin-top: -25px;
-    background-color: black;
-    background-color: rgba(0, 0, 0, 0.6);
-    width: 50px;
-    height: 60px;
-    line-height: 50px;
-    color: white;
-    text-indent: -9999px !important; }
-    .orbit-container .orbit-prev > span,
-    .orbit-container .orbit-next > span {
-      position: absolute;
-      top: 50%;
-      margin-top: -16px;
-      display: block;
-      width: 0;
-      height: 0;
-      border: inset 16px; }
-  .orbit-container .orbit-prev {
-    left: 0; }
-    .orbit-container .orbit-prev > span {
-      border-right-style: solid;
-      border-color: transparent;
-      border-right-color: #fff; }
-    .orbit-container .orbit-prev:hover > span {
-      border-right-color: #ccc; }
-  .orbit-container .orbit-next {
-    right: 0; }
-    .orbit-container .orbit-next > span {
-      border-color: transparent;
-      border-left-style: solid;
-      border-left-color: #fff;
-      left: 50%;
-      margin-left: -8px; }
-    .orbit-container .orbit-next:hover > span {
-      border-left-color: #ccc; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
+
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* large displays */
+@media only screen and (min-width: 64.0625em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
+
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
 
-.orbit-bullets {
-  margin: 0 auto 30px auto;
-  overflow: hidden;
-  position: relative;
-  top: 10px; }
-  .orbit-bullets li {
-    display: block;
-    width: 18px;
-    height: 18px;
-    background: #999999;
-    float: left;
-    margin-right: 6px;
-    border: solid 2px #222222;
-    -webkit-border-radius: 1000px;
-    border-radius: 1000px; }
-    .orbit-bullets li.active {
-      background: #222222; }
-    .orbit-bullets li:last-child {
-      margin-right: 0; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
 
-.touch .orbit-container .orbit-prev,
-.touch .orbit-container .orbit-next {
-  display: none; }
-.touch .orbit-bullets {
-  display: none; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
 
-@media only screen and (min-width: 768px) {
-  .touch .orbit-container .orbit-prev,
-  .touch .orbit-container .orbit-next {
-    display: inherit; }
-  .touch .orbit-bullets {
-    display: block; } }
-.reveal-modal-bg {
-  position: fixed;
-  height: 100%;
-  width: 100%;
-  background: black;
-  background: rgba(0, 0, 0, 0.45);
-  z-index: 98;
-  display: none;
-  top: 0;
-  left: 0; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
 
-.reveal-modal {
-  visibility: hidden;
-  display: none;
-  position: absolute;
-  left: 50%;
-  z-index: 99;
-  height: auto;
-  margin-left: -40%;
-  width: 80%;
-  background-color: white;
-  padding: 1.25em;
-  border: solid 1px #666666;
-  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
-  top: 50px; }
-  .reveal-modal .column,
-  .reveal-modal .columns {
-    min-width: 0; }
-  .reveal-modal > :first-child {
-    margin-top: 0; }
-  .reveal-modal > :last-child {
-    margin-bottom: 0; }
-  .reveal-modal .close-reveal-modal {
-    font-size: 1.375em;
-    line-height: 1;
-    position: absolute;
-    top: 0.5em;
-    right: 0.6875em;
-    color: #aaaaaa;
-    font-weight: bold;
-    cursor: pointer; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* xlarge displays */
+@media only screen and (min-width: 90.0625em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
 
-@media only screen and (min-width: 768px) {
-  .reveal-modal {
-    padding: 1.875em;
-    top: 6.25em; }
-    .reveal-modal.tiny {
-      margin-left: -15%;
-      width: 30%; }
-    .reveal-modal.small {
-      margin-left: -20%;
-      width: 40%; }
-    .reveal-modal.medium {
-      margin-left: -30%;
-      width: 60%; }
-    .reveal-modal.large {
-      margin-left: -35%;
-      width: 70%; }
-    .reveal-modal.xlarge {
-      margin-left: -47.5%;
-      width: 95%; } }
-@media print {
-  .reveal-modal {
-    background: white !important; } }
-/* Foundation Joyride */
-.joyride-list {
-  display: none; }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
 
-/* Default styles for the container */
-.joyride-tip-guide {
-  display: none;
-  position: absolute;
-  background: black;
-  color: white;
-  z-index: 101;
-  top: 0;
-  left: 2.5%;
-  font-family: inherit;
-  font-weight: normal;
-  width: 95%; }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
 
-.lt-ie9 .joyride-tip-guide {
-  max-width: 800px;
-  left: 50%;
-  margin-left: -400px; }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
 
-.joyride-content-wrapper {
-  width: 100%;
-  padding: 1.125em 1.25em 1.5em; }
-  .joyride-content-wrapper .button {
-    margin-bottom: 0 !important; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
 
-/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
-.joyride-tip-guide .joyride-nub {
-  display: block;
-  position: absolute;
-  left: 22px;
-  width: 0;
-  height: 0;
-  border: inset 14px; }
-  .joyride-tip-guide .joyride-nub.top {
-    border-top-style: solid;
-    border-color: black;
-    border-top-color: transparent !important;
-    border-left-color: transparent !important;
-    border-right-color: transparent !important;
-    top: -28px; }
-  .joyride-tip-guide .joyride-nub.bottom {
-    border-bottom-style: solid;
-    border-color: black !important;
-    border-bottom-color: transparent !important;
-    border-left-color: transparent !important;
-    border-right-color: transparent !important;
-    bottom: -28px; }
-  .joyride-tip-guide .joyride-nub.right {
-    right: -28px; }
-  .joyride-tip-guide .joyride-nub.left {
-    left: -28px; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
 
-/* Typography */
-.joyride-tip-guide h1,
-.joyride-tip-guide h2,
-.joyride-tip-guide h3,
-.joyride-tip-guide h4,
-.joyride-tip-guide h5,
-.joyride-tip-guide h6 {
-  line-height: 1.25;
-  margin: 0;
-  font-weight: bold;
-  color: white; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
 
-.joyride-tip-guide p {
-  margin: 0 0 1.125em 0;
-  font-size: 0.875em;
-  line-height: 1.3; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
 
-.joyride-timer-indicator-wrap {
-  width: 50px;
-  height: 3px;
-  border: solid 1px #555555;
-  position: absolute;
-  right: 1.0625em;
-  bottom: 1em; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* xxlarge displays */
+@media only screen and (min-width: 120.0625em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
 
-.joyride-timer-indicator {
-  display: block;
-  width: 0;
-  height: inherit;
-  background: #666666; }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
 
-.joyride-close-tip {
-  position: absolute;
-  right: 12px;
-  top: 10px;
-  color: #777777 !important;
-  text-decoration: none;
-  font-size: 30px;
-  font-weight: normal;
-  line-height: 0.5 !important; }
-  .joyride-close-tip:hover, .joyride-close-tip:focus {
-    color: #eeeeee !important; }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
 
-.joyride-modal-bg {
-  position: fixed;
-  height: 100%;
-  width: 100%;
-  background: transparent;
-  background: rgba(0, 0, 0, 0.5);
-  z-index: 100;
-  display: none;
-  top: 0;
-  left: 0;
-  cursor: pointer; }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
 
-.joyride-expose-wrapper {
-  background-color: #ffffff;
-  position: absolute;
-  border-radius: 3px;
-  z-index: 102;
-  -moz-box-shadow: 0px 0px 30px white;
-  -webkit-box-shadow: 0px 0px 15px white;
-  box-shadow: 0px 0px 15px white; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
 
-.joyride-expose-cover {
-  background: transparent;
-  border-radius: 3px;
-  position: absolute;
-  z-index: 9999;
-  top: 0px;
-  left: 0px; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
 
-/* Styles for screens that are atleast 768px; */
-@media only screen and (min-width: 768px) {
-  .joyride-tip-guide {
-    width: 300px;
-    left: inherit; }
-    .joyride-tip-guide .joyride-nub.bottom {
-      border-color: black !important;
-      border-bottom-color: transparent !important;
-      border-left-color: transparent !important;
-      border-right-color: transparent !important;
-      bottom: -28px; }
-    .joyride-tip-guide .joyride-nub.right {
-      border-color: black !important;
-      border-top-color: transparent !important;
-      border-right-color: transparent !important;
-      border-bottom-color: transparent !important;
-      top: 22px;
-      left: auto;
-      right: -28px; }
-    .joyride-tip-guide .joyride-nub.left {
-      border-color: black !important;
-      border-top-color: transparent !important;
-      border-left-color: transparent !important;
-      border-bottom-color: transparent !important;
-      top: 22px;
-      left: -28px;
-      right: auto; } }
-/* Clearing Styles */
-[data-clearing] {
-  *zoom: 1;
-  margin-bottom: 0;
-  list-style: none; }
-  [data-clearing]:before, [data-clearing]:after {
-    content: " ";
-    display: table; }
-  [data-clearing]:after {
-    clear: both; }
-  [data-clearing] li {
-    float: left;
-    margin-right: 10px; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
 
-.clearing-blackout {
-  background: #111111;
-  position: fixed;
-  width: 100%;
-  height: 100%;
-  top: 0;
-  left: 0;
-  z-index: 998; }
-  .clearing-blackout .clearing-close {
-    display: block; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
 
-.clearing-container {
-  position: relative;
-  z-index: 998;
-  height: 100%;
-  overflow: hidden;
-  margin: 0; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* Orientation targeting */
+.show-for-landscape,
+.hide-for-portrait {
+  display: inherit !important; }
 
-.visible-img {
-  height: 95%;
-  position: relative; }
-  .visible-img img {
-    position: absolute;
-    left: 50%;
-    top: 50%;
-    margin-left: -50%;
-    max-height: 100%;
-    max-width: 100%; }
+.hide-for-landscape,
+.show-for-portrait {
+  display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-landscape, table.show-for-portrait {
+  display: table !important; }
+
+thead.hide-for-landscape, thead.show-for-portrait {
+  display: table-header-group !important; }
+
+tbody.hide-for-landscape, tbody.show-for-portrait {
+  display: table-row-group !important; }
+
+tr.hide-for-landscape, tr.show-for-portrait {
+  display: table-row !important; }
+
+td.hide-for-landscape, td.show-for-portrait,
+th.hide-for-landscape,
+th.show-for-portrait {
+  display: table-cell !important; }
+
+@media only screen and (orientation: landscape) {
+  .show-for-landscape,
+  .hide-for-portrait {
+    display: inherit !important; }
+
+  .hide-for-landscape,
+  .show-for-portrait {
+    display: none !important; }
+
+  /* Specific visibility for tables */
+  table.show-for-landscape, table.hide-for-portrait {
+    display: table !important; }
+
+  thead.show-for-landscape, thead.hide-for-portrait {
+    display: table-header-group !important; }
+
+  tbody.show-for-landscape, tbody.hide-for-portrait {
+    display: table-row-group !important; }
+
+  tr.show-for-landscape, tr.hide-for-portrait {
+    display: table-row !important; }
+
+  td.show-for-landscape, td.hide-for-portrait,
+  th.show-for-landscape,
+  th.hide-for-portrait {
+    display: table-cell !important; } }
+@media only screen and (orientation: portrait) {
+  .show-for-portrait,
+  .hide-for-landscape {
+    display: inherit !important; }
 
-.clearing-caption {
-  color: white;
-  line-height: 1.3;
-  margin-bottom: 0;
-  text-align: center;
-  bottom: 0;
-  background: #111111;
-  width: 100%;
-  padding: 10px 30px;
-  position: absolute;
-  left: 0; }
+  .hide-for-portrait,
+  .show-for-landscape {
+    display: none !important; }
 
-.clearing-close {
-  z-index: 999;
-  padding-left: 20px;
-  padding-top: 10px;
-  font-size: 40px;
-  line-height: 1;
-  color: white;
-  display: none; }
-  .clearing-close:hover, .clearing-close:focus {
-    color: #ccc; }
+  /* Specific visibility for tables */
+  table.show-for-portrait, table.hide-for-landscape {
+    display: table !important; }
 
-.clearing-assembled .clearing-container {
-  height: 100%; }
-  .clearing-assembled .clearing-container .carousel > ul {
-    display: none; }
+  thead.show-for-portrait, thead.hide-for-landscape {
+    display: table-header-group !important; }
 
-.clearing-feature li {
-  display: none; }
-  .clearing-feature li.clearing-featured-img {
-    display: block; }
+  tbody.show-for-portrait, tbody.hide-for-landscape {
+    display: table-row-group !important; }
 
-@media only screen and (min-width: 768px) {
-  .clearing-main-prev,
-  .clearing-main-next {
-    position: absolute;
-    height: 100%;
-    width: 40px;
-    top: 0; }
-    .clearing-main-prev > span,
-    .clearing-main-next > span {
-      position: absolute;
-      top: 50%;
-      display: block;
-      width: 0;
-      height: 0;
-      border: solid 16px; }
+  tr.show-for-portrait, tr.hide-for-landscape {
+    display: table-row !important; }
 
-  .clearing-main-prev {
-    left: 0; }
-    .clearing-main-prev > span {
-      left: 5px;
-      border-color: transparent;
-      border-right-color: white; }
+  td.show-for-portrait, td.hide-for-landscape,
+  th.show-for-portrait,
+  th.hide-for-landscape {
+    display: table-cell !important; } }
+/* Touch-enabled device targeting */
+.show-for-touch {
+  display: none !important; }
 
-  .clearing-main-next {
-    right: 0; }
-    .clearing-main-next > span {
-      border-color: transparent;
-      border-left-color: white; }
+.hide-for-touch {
+  display: inherit !important; }
 
-  .clearing-main-prev.disabled,
-  .clearing-main-next.disabled {
-    opacity: 0.5; }
+.touch .show-for-touch {
+  display: inherit !important; }
 
-  .clearing-assembled .clearing-container .carousel {
-    background: #111111;
-    height: 150px;
-    margin-top: 5px; }
-    .clearing-assembled .clearing-container .carousel > ul {
-      display: block;
-      z-index: 999;
-      width: 200%;
-      height: 100%;
-      margin-left: 0;
-      position: relative;
-      left: 0; }
-      .clearing-assembled .clearing-container .carousel > ul li {
-        display: block;
-        width: 175px;
-        height: inherit;
-        padding: 0;
-        float: left;
-        overflow: hidden;
-        margin-right: 1px;
-        position: relative;
-        cursor: pointer;
-        opacity: 0.4; }
-        .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
-          min-height: 100%;
-          height: 100%;
-          max-width: none; }
-        .clearing-assembled .clearing-container .carousel > ul li a.th {
-          border: none;
-          -webkit-box-shadow: none;
-          box-shadow: none;
-          display: block; }
-        .clearing-assembled .clearing-container .carousel > ul li img {
-          cursor: pointer !important;
-          min-width: 100% !important; }
-        .clearing-assembled .clearing-container .carousel > ul li.visible {
-          opacity: 1; }
-  .clearing-assembled .clearing-container .visible-img {
-    background: #111111;
-    overflow: hidden;
-    height: 75%; }
+.touch .hide-for-touch {
+  display: none !important; }
 
-  .clearing-close {
-    position: absolute;
-    top: 10px;
-    right: 20px;
-    padding-left: 0;
-    padding-top: 0; } }
-/* Foundation Alerts */
-.alert-box {
-  border-style: solid;
-  border-width: 1px;
-  display: block;
-  font-weight: bold;
-  margin-bottom: 1.25em;
-  position: relative;
-  padding: 0.6875em 1.3125em 0.75em 0.6875em;
-  font-size: 0.875em;
-  background-color: #2ba6cb;
-  border-color: #2284a1;
-  color: white; }
-  .alert-box .close {
-    font-size: 1.375em;
-    padding: 5px 4px 4px;
-    line-height: 0;
-    position: absolute;
-    top: 0.4375em;
-    right: 0.3125em;
-    color: #333333;
-    opacity: 0.3; }
-    .alert-box .close:hover, .alert-box .close:focus {
-      opacity: 0.5; }
-  .alert-box.radius {
-    -webkit-border-radius: 3px;
-    border-radius: 3px; }
-  .alert-box.round {
-    -webkit-border-radius: 1000px;
-    border-radius: 1000px; }
-  .alert-box.success {
-    background-color: #5da423;
-    border-color: #457a1a;
-    color: white; }
-  .alert-box.alert {
-    background-color: #c60f13;
-    border-color: #970b0e;
-    color: white; }
-  .alert-box.secondary {
-    background-color: #e9e9e9;
-    border-color: #d0d0d0;
-    color: #505050; }
+/* Specific visibility for tables */
+table.hide-for-touch {
+  display: table !important; }
 
-/* Breadcrumbs */
-.breadcrumbs {
-  display: block;
-  padding: 0.5625em 0.875em 0.5625em;
-  overflow: hidden;
-  margin-left: 0;
-  list-style: none;
-  border-style: solid;
-  border-width: 1px;
-  background-color: #f6f6f6;
-  border-color: gainsboro;
-  -webkit-border-radius: 3px;
-  border-radius: 3px; }
-  .breadcrumbs > * {
-    margin: 0;
-    float: left;
-    font-size: 0.6875em;
-    text-transform: uppercase;
-    color: #2ba6cb; }
-    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
-      text-decoration: underline; }
-    .breadcrumbs > * a,
-    .breadcrumbs > * span {
-      text-transform: uppercase;
-      color: #2ba6cb; }
-    .breadcrumbs > *.current {
-      cursor: default;
-      color: #333333; }
-      .breadcrumbs > *.current a {
-        cursor: default;
-        color: #333333; }
-      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
-        text-decoration: none; }
-    .breadcrumbs > *.unavailable {
-      color: #999999; }
-      .breadcrumbs > *.unavailable a {
-        color: #999999; }
-      .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
-      .breadcrumbs > *.unavailable a:focus {
-        text-decoration: none;
-        color: #999999;
-        cursor: default; }
-    .breadcrumbs > *:before {
-      content: "/";
-      color: #aaaaaa;
-      margin: 0 0.75em;
-      position: relative;
-      top: 1px; }
-    .breadcrumbs > *:first-child:before {
-      content: " ";
-      margin: 0; }
+.touch table.show-for-touch {
+  display: table !important; }
 
-/* Keystroke Characters */
-.keystroke,
-kbd {
-  background-color: #ededed;
-  border-color: #dbdbdb;
-  color: #222222;
-  border-style: solid;
-  border-width: 1px;
-  margin: 0;
-  font-family: "Consolas", "Menlo", "Courier", monospace;
-  font-size: 0.875em;
-  padding: 0.125em 0.25em 0em;
-  -webkit-border-radius: 3px;
-  border-radius: 3px; }
+thead.hide-for-touch {
+  display: table-header-group !important; }
 
-/* Labels */
-.label {
-  font-weight: bold;
-  text-align: center;
-  text-decoration: none;
-  line-height: 1;
-  white-space: nowrap;
-  display: inline-block;
-  position: relative;
-  padding: 0.1875em 0.625em 0.25em;
-  font-size: 0.875em;
-  background-color: #2ba6cb;
-  color: white; }
-  .label.radius {
-    -webkit-border-radius: 3px;
-    border-radius: 3px; }
-  .label.round {
-    -webkit-border-radius: 1000px;
-    border-radius: 1000px; }
-  .label.alert {
-    background-color: #c60f13;
-    color: white; }
-  .label.success {
-    background-color: #5da423;
-    color: white; }
-  .label.secondary {
-    background-color: #e9e9e9;
-    color: #333333; }
+.touch thead.show-for-touch {
+  display: table-header-group !important; }
 
-/* Inline Lists */
-.inline-list {
-  margin: 0 auto 1.0625em auto;
-  margin-left: -1.375em;
-  margin-right: 0;
-  padding: 0;
-  list-style: none;
-  overflow: hidden; }
-  .inline-list > li {
-    list-style: none;
-    float: left;
-    margin-left: 1.375em;
-    display: block; }
-    .inline-list > li > * {
-      display: block; }
+tbody.hide-for-touch {
+  display: table-row-group !important; }
 
-/* Pagination */
-.pagination {
-  display: block;
-  height: 1.5em;
-  margin-left: -0.3125em; }
-  .pagination li {
-    display: block;
-    float: left;
-    height: 1.5em;
-    color: #222222;
-    font-size: 0.875em;
-    margin-left: 0.3125em; }
-    .pagination li a {
-      display: block;
-      padding: 0.0625em 0.4375em 0.0625em;
-      color: #999999; }
-    .pagination li:hover a,
-    .pagination li a:focus {
-      background: #e6e6e6; }
-    .pagination li.unavailable a {
-      cursor: default;
-      color: #999999; }
-    .pagination li.unavailable:hover a, .pagination li.unavailable a:focus {
-      background: transparent; }
-    .pagination li.current a {
-      background: #2ba6cb;
-      color: white;
-      font-weight: bold;
-      cursor: default; }
-      .pagination li.current a:hover, .pagination li.current a:focus {
-        background: #2ba6cb; }
+.touch tbody.show-for-touch {
+  display: table-row-group !important; }
 
-.pagination-centered {
-  text-align: center; }
-  .pagination-centered ul > li {
-    float: none;
-    display: inline-block; }
+tr.hide-for-touch {
+  display: table-row !important; }
 
-/* Panels */
-.panel {
-  border-style: solid;
-  border-width: 1px;
-  border-color: #d9d9d9;
-  margin-bottom: 1.25em;
-  padding: 1.25em;
-  background: #f2f2f2; }
-  .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p {
-    color: #333333; }
-  .panel > :first-child {
-    margin-top: 0; }
-  .panel > :last-child {
-    margin-bottom: 0; }
-  .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
-    line-height: 1;
-    margin-bottom: 0.625em; }
-    .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader {
-      line-height: 1.4; }
-  .panel.callout {
-    border-style: solid;
-    border-width: 1px;
-    border-color: #2284a1;
-    margin-bottom: 1.25em;
-    padding: 1.25em;
-    background: #2ba6cb;
-    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset; }
-    .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p {
-      color: white; }
-    .panel.callout > :first-child {
-      margin-top: 0; }
-    .panel.callout > :last-child {
-      margin-bottom: 0; }
-    .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 {
-      line-height: 1;
-      margin-bottom: 0.625em; }
-      .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader {
-        line-height: 1.4; }
-  .panel.radius {
-    -webkit-border-radius: 3px;
-    border-radius: 3px; }
+.touch tr.show-for-touch {
+  display: table-row !important; }
+
+td.hide-for-touch {
+  display: table-cell !important; }
+
+.touch td.show-for-touch {
+  display: table-cell !important; }
 
-/* Pricing Tables */
-.pricing-table {
-  border: solid 1px #dddddd;
-  margin-left: 0;
-  margin-bottom: 1.25em; }
-  .pricing-table * {
-    list-style: none;
-    line-height: 1; }
-  .pricing-table .title {
-    background-color: #dddddd;
-    padding: 0.9375em 1.25em;
-    text-align: center;
-    color: #333333;
-    font-weight: bold;
-    font-size: 1em; }
-  .pricing-table .price {
-    background-color: #eeeeee;
-    padding: 0.9375em 1.25em;
-    text-align: center;
-    color: #333333;
-    font-weight: normal;
-    font-size: 1.25em; }
-  .pricing-table .description {
-    background-color: white;
-    padding: 0.9375em;
-    text-align: center;
-    color: #777777;
-    font-size: 0.75em;
-    font-weight: normal;
-    line-height: 1.4;
-    border-bottom: dotted 1px #dddddd; }
-  .pricing-table .bullet-item {
-    background-color: white;
-    padding: 0.9375em;
-    text-align: center;
-    color: #333333;
-    font-size: 0.875em;
-    font-weight: normal;
-    border-bottom: dotted 1px #dddddd; }
-  .pricing-table .cta-button {
-    background-color: whitesmoke;
-    text-align: center;
-    padding: 1.25em 1.25em 0; }
+th.hide-for-touch {
+  display: table-cell !important; }
 
-/* Progress Bar */
-.progress {
-  background-color: transparent;
-  height: 1.5625em;
-  border: 1px solid #cccccc;
-  padding: 0.125em;
-  margin-bottom: 0.625em; }
-  .progress .meter {
-    background: #2ba6cb;
-    height: 100%;
-    display: block; }
-  .progress.secondary .meter {
-    background: #e9e9e9;
-    height: 100%;
-    display: block; }
-  .progress.success .meter {
-    background: #5da423;
-    height: 100%;
-    display: block; }
-  .progress.alert .meter {
-    background: #c60f13;
-    height: 100%;
-    display: block; }
-  .progress.radius {
-    -webkit-border-radius: 3px;
-    border-radius: 3px; }
-    .progress.radius .meter {
-      -webkit-border-radius: 2px;
-      border-radius: 2px; }
-  .progress.round {
-    -webkit-border-radius: 1000px;
-    border-radius: 1000px; }
-    .progress.round .meter {
-      -webkit-border-radius: 999px;
-      border-radius: 999px; }
+.touch th.show-for-touch {
+  display: table-cell !important; }
 
-/* Side Nav */
-.side-nav {
-  display: block;
-  margin: 0;
-  padding: 0.875em 0;
-  list-style-type: none;
-  list-style-position: inside; }
-  .side-nav li {
-    margin: 0 0 0.4375em 0;
-    font-size: 0.875em; }
-    .side-nav li a {
-      display: block;
-      color: #2ba6cb; }
-    .side-nav li.active > a:first-child {
-      color: #4d4d4d;
-      font-weight: bold; }
-    .side-nav li.divider {
-      border-top: 1px solid;
-      height: 0;
-      padding: 0;
-      list-style: none;
-      border-top-color: #e6e6e6; }
+/* Screen reader-specific classes */
+.show-for-sr {
+  clip: rect(1px, 1px, 1px, 1px);
+  height: 1px;
+  overflow: hidden;
+  position: absolute !important;
+  width: 1px; }
 
-/* Side Nav */
-.sub-nav {
-  display: block;
-  width: auto;
+.show-on-focus {
+  clip: rect(1px, 1px, 1px, 1px);
+  height: 1px;
   overflow: hidden;
-  margin: -0.25em 0 1.125em;
-  padding-top: 0.25em;
-  margin-right: 0;
-  margin-left: -0.5625em; }
-  .sub-nav dt,
-  .sub-nav dd {
-    float: left;
-    display: inline;
-    margin-left: 0.5625em;
-    margin-bottom: 0.625em;
-    font-weight: normal;
-    font-size: 0.875em; }
-    .sub-nav dt a,
-    .sub-nav dd a {
-      color: #999999;
-      text-decoration: none; }
-    .sub-nav dt.active a,
-    .sub-nav dd.active a {
-      -webkit-border-radius: 1000px;
-      border-radius: 1000px;
-      font-weight: bold;
-      background: #2ba6cb;
-      padding: 0.1875em 0.5625em;
-      cursor: default;
-      color: white; }
+  position: absolute !important;
+  width: 1px; }
+  .show-on-focus:focus, .show-on-focus:active {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
 
-/* Foundation Switches */
-@media only screen {
-  div.switch {
-    position: relative;
-    width: 100%;
-    padding: 0;
-    display: block;
-    overflow: hidden;
-    border-style: solid;
-    border-width: 1px;
-    margin-bottom: 1.25em;
-    -webkit-animation: webkitSiblingBugfix infinite 1s;
-    height: 36px;
-    background: white;
-    border-color: #cccccc; }
-    div.switch label {
-      position: relative;
-      left: 0;
-      z-index: 2;
-      float: left;
-      width: 50%;
-      height: 100%;
-      margin: 0;
-      font-weight: bold;
-      text-align: left;
-      -webkit-transition: all 0.1s ease-out;
-      -moz-transition: all 0.1s ease-out;
-      transition: all 0.1s ease-out; }
-    div.switch input {
-      position: absolute;
-      z-index: 3;
-      opacity: 0;
-      width: 100%;
-      height: 100%;
-      -moz-appearance: none; }
-      div.switch input:hover, div.switch input:focus {
-        cursor: pointer; }
-    div.switch > span {
-      position: absolute;
-      top: -1px;
-      left: -1px;
-      z-index: 1;
-      display: block;
-      padding: 0;
-      border-width: 1px;
-      border-style: solid;
-      -webkit-transition: all 0.1s ease-out;
-      -moz-transition: all 0.1s ease-out;
-      transition: all 0.1s ease-out; }
-    div.switch input:not(:checked) + label {
-      opacity: 0; }
-    div.switch input:checked {
-      display: none !important; }
-    div.switch input {
-      left: 0;
-      display: block !important; }
-    div.switch input:first-of-type + label,
-    div.switch input:first-of-type + span + label {
-      left: -50%; }
-    div.switch input:first-of-type:checked + label,
-    div.switch input:first-of-type:checked + span + label {
-      left: 0%; }
-    div.switch input:last-of-type + label,
-    div.switch input:last-of-type + span + label {
-      right: -50%;
-      left: auto;
-      text-align: right; }
-    div.switch input:last-of-type:checked + label,
-    div.switch input:last-of-type:checked + span + label {
-      right: 0%;
-      left: auto; }
-    div.switch span.custom {
-      display: none !important; }
-    div.switch label {
-      padding: 0 0.375em;
-      line-height: 2.3em;
-      font-size: 0.875em; }
-    div.switch input:first-of-type:checked ~ span {
-      left: 100%;
-      margin-left: -2.1875em; }
-    div.switch > span {
-      width: 2.25em;
-      height: 2.25em; }
-    div.switch > span {
-      border-color: #b3b3b3;
-      background: white;
-      background: -moz-linear-gradient(top, white 0%, #f2f2f2 100%);
-      background: -webkit-linear-gradient(top, white 0%, #f2f2f2 100%);
-      background: linear-gradient(to bottom, white 0%, #f2f2f2 100%);
-      -webkit-box-shadow: 2px 0 10px 0 rgba(0, 0, 0, 0.07), 1000px 0 0 1000px #e1f5d1, -2px 0 10px 0 rgba(0, 0, 0, 0.07), -1000px 0 0 1000px whitesmoke;
-      box-shadow: 2px 0 10px 0 rgba(0, 0, 0, 0.07), 1000px 0 0 980px #e1f5d1, -2px 0 10px 0 rgba(0, 0, 0, 0.07), -1000px 0 0 1000px whitesmoke; }
-    div.switch:hover > span, div.switch:focus > span {
-      background: white;
-      background: -moz-linear-gradient(top, white 0%, #e6e6e6 100%);
-      background: -webkit-linear-gradient(top, white 0%, #e6e6e6 100%);
-      background: linear-gradient(to bottom, white 0%, #e6e6e6 100%); }
-    div.switch:active {
-      background: transparent; }
-    div.switch.large {
-      height: 44px; }
-      div.switch.large label {
-        padding: 0 0.375em;
-        line-height: 2.3em;
-        font-size: 1.0625em; }
-      div.switch.large input:first-of-type:checked ~ span {
-        left: 100%;
-        margin-left: -2.6875em; }
-      div.switch.large > span {
-        width: 2.75em;
-        height: 2.75em; }
-    div.switch.small {
-      height: 28px; }
-      div.switch.small label {
-        padding: 0 0.375em;
-        line-height: 2.1em;
-        font-size: 0.75em; }
-      div.switch.small input:first-of-type:checked ~ span {
-        left: 100%;
-        margin-left: -1.6875em; }
-      div.switch.small > span {
-        width: 1.75em;
-        height: 1.75em; }
-    div.switch.tiny {
-      height: 22px; }
-      div.switch.tiny label {
-        padding: 0 0.375em;
-        line-height: 1.9em;
-        font-size: 0.6875em; }
-      div.switch.tiny input:first-of-type:checked ~ span {
-        left: 100%;
-        margin-left: -1.3125em; }
-      div.switch.tiny > span {
-        width: 1.375em;
-        height: 1.375em; }
-    div.switch.radius {
-      -webkit-border-radius: 4px;
-      border-radius: 4px; }
-      div.switch.radius > span {
-        -webkit-border-radius: 3px;
-        border-radius: 3px; }
-    div.switch.round {
-      -webkit-border-radius: 1000px;
-      border-radius: 1000px; }
-      div.switch.round > span {
-        -webkit-border-radius: 999px;
-        border-radius: 999px; }
-      div.switch.round label {
-        padding: 0 0.5625em; }
-
-  @-webkit-keyframes webkitSiblingBugfix {
-    from {
-      position: relative; }
+/* Print visibility */
+.print-only,
+.show-for-print {
+  display: none !important; }
 
-    to {
-      position: relative; } } }
-[data-magellan-expedition] {
-  background: white;
-  z-index: 50;
-  min-width: 100%;
-  padding: 10px; }
-  [data-magellan-expedition] .sub-nav {
-    margin-bottom: 0; }
-    [data-magellan-expedition] .sub-nav dd {
-      margin-bottom: 0; }
+@media print {
+  .print-only,
+  .show-for-print {
+    display: block !important; }
 
-/* Tables */
-table {
-  background: white;
-  margin-bottom: 1.25em;
-  border: solid 1px #dddddd; }
-  table thead,
-  table tfoot {
-    background: whitesmoke;
-    font-weight: bold; }
-    table thead tr th,
-    table thead tr td,
-    table tfoot tr th,
-    table tfoot tr td {
-      padding: 0.5em 0.625em 0.625em;
-      font-size: 0.875em;
-      color: #222222;
-      text-align: left; }
-  table tr th,
-  table tr td {
-    padding: 0.5625em 0.625em;
-    font-size: 0.875em;
-    color: #222222; }
-  table tr.even, table tr.alt, table tr:nth-of-type(even) {
-    background: #f9f9f9; }
-  table thead tr th,
-  table tfoot tr th,
-  table tbody tr td,
-  table tr td,
-  table tfoot tr td {
-    display: table-cell;
-    line-height: 1.125em; }
+  .hide-on-print,
+  .hide-for-print {
+    display: none !important; }
 
-/* Image Thumbnails */
-.th {
-  line-height: 0;
-  display: inline-block;
-  border: solid 4px white;
-  -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
-  -webkit-transition: all 200ms ease-out;
-  -moz-transition: all 200ms ease-out;
-  transition: all 200ms ease-out; }
-  .th:hover, .th:focus {
-    -webkit-box-shadow: 0 0 6px 1px rgba(43, 166, 203, 0.5);
-    box-shadow: 0 0 6px 1px rgba(43, 166, 203, 0.5); }
-  .th.radius {
-    -webkit-border-radius: 3px;
-    border-radius: 3px; }
+  table.show-for-print {
+    display: table !important; }
 
-a.th {
-  display: inline-block; }
+  thead.show-for-print {
+    display: table-header-group !important; }
 
-/* Tooltips */
-.has-tip {
-  border-bottom: dotted 1px #cccccc;
-  cursor: help;
-  font-weight: bold;
-  color: #333333; }
-  .has-tip:hover, .has-tip:focus {
-    border-bottom: dotted 1px #196177;
-    color: #2ba6cb; }
-  .has-tip.tip-left, .has-tip.tip-right {
-    float: none !important; }
+  tbody.show-for-print {
+    display: table-row-group !important; }
 
-.tooltip {
-  display: none;
-  position: absolute;
-  z-index: 999;
-  font-weight: bold;
-  font-size: 0.9375em;
-  line-height: 1.3;
-  padding: 0.5em;
-  max-width: 85%;
-  left: 50%;
-  width: 100%;
-  color: white;
-  background: black;
-  -webkit-border-radius: 3px;
-  border-radius: 3px; }
-  .tooltip > .nub {
-    display: block;
-    left: 5px;
-    position: absolute;
-    width: 0;
-    height: 0;
-    border: solid 5px;
-    border-color: transparent transparent black transparent;
-    top: -10px; }
-  .tooltip.opened {
-    color: #2ba6cb !important;
-    border-bottom: dotted 1px #196177 !important; }
+  tr.show-for-print {
+    display: table-row !important; }
 
-.tap-to-close {
-  display: block;
-  font-size: 0.625em;
-  color: #888888;
-  font-weight: normal; }
+  td.show-for-print {
+    display: table-cell !important; }
 
-@media only screen and (min-width: 768px) {
-  .tooltip > .nub {
-    border-color: transparent transparent black transparent;
-    top: -10px; }
-  .tooltip.tip-top > .nub {
-    border-color: black transparent transparent transparent;
-    top: auto;
-    bottom: -10px; }
-  .tooltip.tip-left, .tooltip.tip-right {
-    float: none !important; }
-  .tooltip.tip-left > .nub {
-    border-color: transparent transparent transparent black;
-    right: -10px;
-    left: auto;
-    top: 50%;
-    margin-top: -5px; }
-  .tooltip.tip-right > .nub {
-    border-color: transparent black transparent transparent;
-    right: auto;
-    left: -10px;
-    top: 50%;
-    margin-top: -5px; } }
-@media only screen and (max-width: 767px) {
-  .f-dropdown {
-    max-width: 100%;
-    left: 0; } }
-/* Foundation Dropdowns */
-.f-dropdown {
-  position: absolute;
-  top: -9999px;
-  list-style: none;
-  width: 100%;
-  max-height: none;
-  height: auto;
-  background: white;
-  border: solid 1px #cccccc;
-  font-size: 16px;
-  z-index: 99;
-  margin-top: 2px;
-  max-width: 200px; }
-  .f-dropdown > *:first-child {
-    margin-top: 0; }
-  .f-dropdown > *:last-child {
-    margin-bottom: 0; }
-  .f-dropdown:before {
-    content: "";
-    display: block;
-    width: 0;
-    height: 0;
-    border: inset 6px;
-    border-color: transparent transparent white transparent;
-    border-bottom-style: solid;
-    position: absolute;
-    top: -12px;
-    left: 10px;
-    z-index: 99; }
-  .f-dropdown:after {
-    content: "";
-    display: block;
-    width: 0;
-    height: 0;
-    border: inset 7px;
-    border-color: transparent transparent #cccccc transparent;
-    border-bottom-style: solid;
-    position: absolute;
-    top: -14px;
-    left: 9px;
-    z-index: 98; }
-  .f-dropdown.right:before {
-    left: auto;
-    right: 10px; }
-  .f-dropdown.right:after {
-    left: auto;
-    right: 9px; }
-  .f-dropdown li {
-    font-size: 0.875em;
-    cursor: pointer;
-    line-height: 1.125em;
-    margin: 0; }
-    .f-dropdown li:hover, .f-dropdown li:focus {
-      background: #eeeeee; }
-    .f-dropdown li a {
-      display: block;
-      padding: 0.3125em 0.625em;
-      color: #555555; }
-  .f-dropdown.content {
-    position: absolute;
-    top: -9999px;
-    list-style: none;
-    padding: 1.25em;
-    width: 100%;
-    height: auto;
-    max-height: none;
-    background: white;
-    border: solid 1px #cccccc;
-    font-size: 16px;
-    z-index: 99;
-    max-width: 200px; }
-    .f-dropdown.content > *:first-child {
-      margin-top: 0; }
-    .f-dropdown.content > *:last-child {
-      margin-bottom: 0; }
-  .f-dropdown.tiny {
-    max-width: 200px; }
-  .f-dropdown.small {
-    max-width: 300px; }
-  .f-dropdown.medium {
-    max-width: 500px; }
-  .f-dropdown.large {
-    max-width: 800px; }
+  th.show-for-print {
+    display: table-cell !important; } }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
assets/stylesheets/foundation.min.css


+ 198 - 176
assets/stylesheets/normalize.css

@@ -1,11 +1,33 @@
-/*! normalize.css v2.1.1 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 
-/* ==========================================================================
-   HTML5 display definitions
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
+ *    without disabling user zoom.
+ */
+
+html {
+  font-family: sans-serif; /* 1 */
+  -ms-text-size-adjust: 100%; /* 2 */
+  -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+  margin: 0;
+}
+
+/* HTML5 display definitions
    ========================================================================== */
 
 /**
- * Correct `block` display not defined in IE 8/9.
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
+ * and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
  */
 
 article,
@@ -17,20 +39,24 @@ footer,
 header,
 hgroup,
 main,
+menu,
 nav,
 section,
 summary {
-    display: block;
+  display: block;
 }
 
 /**
- * Correct `inline-block` display not defined in IE 8/9.
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
  */
 
 audio,
 canvas,
+progress,
 video {
-    display: inline-block;
+  display: inline-block; /* 1 */
+  vertical-align: baseline; /* 2 */
 }
 
 /**
@@ -39,116 +65,77 @@ video {
  */
 
 audio:not([controls]) {
-    display: none;
-    height: 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-[hidden] {
-    display: none;
-}
-
-/* ==========================================================================
-   Base
-   ========================================================================== */
-
-/**
- * 1. Prevent system color scheme's background color being used in Firefox, IE,
- *    and Opera.
- * 2. Prevent system color scheme's text color being used in Firefox, IE, and
- *    Opera.
- * 3. Set default font family to sans-serif.
- * 4. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-
-html {
-    background: #fff; /* 1 */
-    color: #000; /* 2 */
-    font-family: sans-serif; /* 3 */
-    -ms-text-size-adjust: 100%; /* 4 */
-    -webkit-text-size-adjust: 100%; /* 4 */
+  display: none;
+  height: 0;
 }
 
 /**
- * Remove default margin.
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
  */
 
-body {
-    margin: 0;
+[hidden],
+template {
+  display: none;
 }
 
-/* ==========================================================================
-   Links
+/* Links
    ========================================================================== */
 
 /**
- * Address `outline` inconsistency between Chrome and other browsers.
+ * Remove the gray background color from active links in IE 10.
  */
 
-a:focus {
-    outline: thin dotted;
+a {
+  background-color: transparent;
 }
 
 /**
- * Improve readability when focused and also mouse hovered in all browsers.
+ * Improve readability of focused elements when they are also in an
+ * active/hover state.
  */
 
 a:active,
 a:hover {
-    outline: 0;
+  outline: 0;
 }
 
-/* ==========================================================================
-   Typography
+/* Text-level semantics
    ========================================================================== */
 
 /**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari 5, and Chrome.
- */
-
-h1 {
-    font-size: 2em;
-    margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9, Safari 5, and Chrome.
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
  */
 
 abbr[title] {
-    border-bottom: 1px dotted;
+  border-bottom: 1px dotted;
 }
 
 /**
- * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
  */
 
 b,
 strong {
-    font-weight: bold;
+  font-weight: bold;
 }
 
 /**
- * Address styling not present in Safari 5 and Chrome.
+ * Address styling not present in Safari and Chrome.
  */
 
 dfn {
-    font-style: italic;
+  font-style: italic;
 }
 
 /**
- * Address differences between Firefox and other browsers.
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
  */
 
-hr {
-    -moz-box-sizing: content-box;
-    box-sizing: content-box;
-    height: 0;
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
 }
 
 /**
@@ -156,36 +143,8 @@ hr {
  */
 
 mark {
-    background: #ff0;
-    color: #000;
-}
-
-/**
- * Correct font family set oddly in Safari 5 and Chrome.
- */
-
-code,
-kbd,
-pre,
-samp {
-    font-family: monospace, serif;
-    font-size: 1em;
-}
-
-/**
- * Improve readability of pre-formatted text in all browsers.
- */
-
-pre {
-    white-space: pre-wrap;
-}
-
-/**
- * Set consistent quote types.
- */
-
-q {
-    quotes: "\201C" "\201D" "\2018" "\2019";
+  background: #ff0;
+  color: #000;
 }
 
 /**
@@ -193,7 +152,7 @@ q {
  */
 
 small {
-    font-size: 80%;
+  font-size: 80%;
 }
 
 /**
@@ -202,111 +161,122 @@ small {
 
 sub,
 sup {
-    font-size: 75%;
-    line-height: 0;
-    position: relative;
-    vertical-align: baseline;
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
 }
 
 sup {
-    top: -0.5em;
+  top: -0.5em;
 }
 
 sub {
-    bottom: -0.25em;
+  bottom: -0.25em;
 }
 
-/* ==========================================================================
-   Embedded content
+/* Embedded content
    ========================================================================== */
 
 /**
- * Remove border when inside `a` element in IE 8/9.
+ * Remove border when inside `a` element in IE 8/9/10.
  */
 
 img {
-    border: 0;
+  border: 0;
 }
 
 /**
- * Correct overflow displayed oddly in IE 9.
+ * Correct overflow not hidden in IE 9/10/11.
  */
 
 svg:not(:root) {
-    overflow: hidden;
+  overflow: hidden;
 }
 
-/* ==========================================================================
-   Figures
+/* Grouping content
    ========================================================================== */
 
 /**
- * Address margin not present in IE 8/9 and Safari 5.
+ * Address margin not present in IE 8/9 and Safari.
  */
 
 figure {
-    margin: 0;
+  margin: 1em 40px;
 }
 
-/* ==========================================================================
-   Forms
-   ========================================================================== */
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+  box-sizing: content-box;
+  height: 0;
+}
 
 /**
- * Define consistent border, margin, and padding.
+ * Contain overflow in all browsers.
  */
 
-fieldset {
-    border: 1px solid #c0c0c0;
-    margin: 0 2px;
-    padding: 0.35em 0.625em 0.75em;
+pre {
+  overflow: auto;
 }
 
 /**
- * 1. Correct `color` not being inherited in IE 8/9.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ * Address odd `em`-unit font size rendering in all browsers.
  */
 
-legend {
-    border: 0; /* 1 */
-    padding: 0; /* 2 */
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
 }
 
+/* Forms
+   ========================================================================== */
+
 /**
- * 1. Correct font family not being inherited in all browsers.
- * 2. Correct font size not being inherited in all browsers.
- * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+
+/**
+ * 1. Correct color not being inherited.
+ *    Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
  */
 
 button,
 input,
+optgroup,
 select,
 textarea {
-    font-family: inherit; /* 1 */
-    font-size: 100%; /* 2 */
-    margin: 0; /* 3 */
+  color: inherit; /* 1 */
+  font: inherit; /* 2 */
+  margin: 0; /* 3 */
 }
 
 /**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
  */
 
-button,
-input {
-    line-height: normal;
+button {
+  overflow: visible;
 }
 
 /**
  * Address inconsistent `text-transform` inheritance for `button` and `select`.
  * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
- * Correct `select` style inheritance in Firefox 4+ and Opera.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
  */
 
 button,
 select {
-    text-transform: none;
+  text-transform: none;
 }
 
 /**
@@ -321,8 +291,8 @@ button,
 html input[type="button"], /* 1 */
 input[type="reset"],
 input[type="submit"] {
-    -webkit-appearance: button; /* 2 */
-    cursor: pointer; /* 3 */
+  -webkit-appearance: button; /* 2 */
+  cursor: pointer; /* 3 */
 }
 
 /**
@@ -331,65 +301,112 @@ input[type="submit"] {
 
 button[disabled],
 html input[disabled] {
-    cursor: default;
+  cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+input {
+  line-height: normal;
 }
 
 /**
- * 1. Address box sizing set to `content-box` in IE 8/9.
- * 2. Remove excess padding in IE 8/9.
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
  */
 
 input[type="checkbox"],
 input[type="radio"] {
-    box-sizing: border-box; /* 1 */
-    padding: 0; /* 2 */
+  box-sizing: border-box; /* 1 */
+  padding: 0; /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
 }
 
 /**
- * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
- *    (include `-moz` to future-proof).
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
  */
 
 input[type="search"] {
-    -webkit-appearance: textfield; /* 1 */
-    -moz-box-sizing: content-box;
-    -webkit-box-sizing: content-box; /* 2 */
-    box-sizing: content-box;
+  -webkit-appearance: textfield; /* 1 */
+  box-sizing: content-box; /* 2 */
 }
 
 /**
- * Remove inner padding and search cancel button in Safari 5 and Chrome
- * on OS X.
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
  */
 
 input[type="search"]::-webkit-search-cancel-button,
 input[type="search"]::-webkit-search-decoration {
-    -webkit-appearance: none;
+  -webkit-appearance: none;
 }
 
 /**
- * Remove inner padding and border in Firefox 4+.
+ * Define consistent border, margin, and padding.
  */
 
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-    border: 0;
-    padding: 0;
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+  border: 0; /* 1 */
+  padding: 0; /* 2 */
 }
 
 /**
- * 1. Remove default vertical scrollbar in IE 8/9.
- * 2. Improve readability and alignment in all browsers.
+ * Remove default vertical scrollbar in IE 8/9/10/11.
  */
 
 textarea {
-    overflow: auto; /* 1 */
-    vertical-align: top; /* 2 */
+  overflow: auto;
 }
 
-/* ==========================================================================
-   Tables
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+
+optgroup {
+  font-weight: bold;
+}
+
+/* Tables
    ========================================================================== */
 
 /**
@@ -397,6 +414,11 @@ textarea {
  */
 
 table {
-    border-collapse: collapse;
-    border-spacing: 0;
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+td,
+th {
+  padding: 0;
 }

+ 7 - 64
foreground.php

@@ -6,75 +6,18 @@
  * @file
  * @ingroup Skins
  * @author Garrick Van Buren, Jamie Thingelstad, Tom Hutchison
- * @license 2-clause BSD
+ * @license BSD-2-Clause
  */
 
 if ( function_exists( 'wfLoadSkin' ) ) {
 	wfLoadSkin( 'foreground' );
 	// Keep i18n globals so mergeMessageFileList.php doesn't break
-	$wgMessagesDirs['SkinForeground'] = __DIR__ . '/i18n';
-	/* wfWarn(
-		'Deprecated PHP entry point used for foreground skin. Please use wfLoadSkin instead, ' .
+	$wgMessagesDirs['foreground'] = __DIR__ . '/i18n';
+	wfWarn(
+		'Deprecated PHP entry point used for the Foregrond skin. Please use wfLoadSkin instead, ' .
 		'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
-	); */
+	);
 	return;
+} else {
+	die( 'This version of the Foreground skin requires MediaWiki 1.25+' );
 }
-
-// Note: Don't forget when updating to update the skin.json file with the same change.
-
-$wgExtensionCredits['skin'][] = array(
-	'path'		 => __FILE__,
-	'name'		 => 'Foreground',
-	'url'		 => 'http://foreground.thingelstad.com/',
-	'version'	 => '1.2.0',
-	'author'	 => array(
-		'Garrick Van Buren',
-		'Jamie Thingelstad',
-		'Tom Hutchison',
-		'...'
-	),
-	'descriptionmsg' => 'foreground-desc'
-);
-
-$wgValidSkinNames['foreground'] = 'Foreground';
-
-$wgAutoloadClasses['SkinForeground'] = __DIR__ . '/Foreground.skin.php';
-
-$wgMessagesDirs['SkinForeground'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['SkinForeground'] = __DIR__ . '/Foreground.i18n.php';
-
-$wgResourceModules['skins.foreground.styles'] = array(
-	'position'       => 'top',
-	'styles'         => array(
-		'foreground/assets/stylesheets/normalize.css',
-		'foreground/assets/stylesheets/font-awesome.css',
-		'foreground/assets/stylesheets/foundation.css',
-		'foreground/assets/stylesheets/foreground.css',
-		'foreground/assets/stylesheets/foreground-print.css',
-		'foreground/assets/stylesheets/jquery.autocomplete.css',
-		'foreground/assets/stylesheets/responsive-tables.css'
-	),
-	'remoteBasePath' => &$GLOBALS['wgStylePath'],
-	'localBasePath'  => &$GLOBALS['wgStyleDirectory']
-);
-
-$wgResourceModules['skins.foreground.js'] = array(
-	'position'       => 'top',
-	'scripts'        => array(
-		'foreground/assets/scripts/vendor/custom.modernizr.js',
-		'foreground/assets/scripts/vendor/fastclick.js',
-		'foreground/assets/scripts/vendor/responsive-tables.js',
-		'foreground/assets/scripts/foundation/foundation.js',
-		'foreground/assets/scripts/foundation/foundation.topbar.js',
-		'foreground/assets/scripts/foundation/foundation.dropdown.js',
-		'foreground/assets/scripts/foundation/foundation.section.js',
-		'foreground/assets/scripts/foundation/foundation.clearing.js',
-		'foreground/assets/scripts/foundation/foundation.cookie.js',
-		'foreground/assets/scripts/foundation/foundation.placeholder.js',
-		'foreground/assets/scripts/foundation/foundation.forms.js',
-		'foreground/assets/scripts/foundation/foundation.alerts.js',
-		'foreground/assets/scripts/foreground.js'
-	),
-	'remoteBasePath' => &$GLOBALS['wgStylePath'],
-	'localBasePath'  => &$GLOBALS['wgStyleDirectory']
-);

+ 2 - 1
i18n/de.json

@@ -7,5 +7,6 @@
 	"skinname-foreground": "Foreground",
 	"foreground-desc": "Stellt eine Benutzeroberfläche bereit, die die Inhalte des Wikis betont",
 	"foreground-browsermsg": "sieht in dieser Version des Internet Explorers nicht wie gewünscht aus. Es wird eine Aktualisierung des Internet Explorers oder der Umstieg auf einen Browser wie bspw. Firefox oder Chrome empfohlen.",
-	"foreground-menutitle": "Menü"
+	"foreground-menutitle": "Menü",
+	"foreground-menunavback": "Zurück"
 }

+ 4 - 2
i18n/en.json

@@ -1,11 +1,13 @@
 {
 	"@metadata": {
 		"authors": [
-			"Garrick Van Buren"
+			"Garrick Van Buren",
+			"Tom Hutchison"
 		]
 	},
 	"skinname-foreground": "Foreground",
 	"foreground-desc": "Provides a skin that focuses on putting your content in the foreground",
 	"foreground-browsermsg": "may not look as expected in this version of Internet Explorer. We recommend you upgrade to a newer version of Internet Explorer or switch to a browser like Firefox or Chrome.",
-	"foreground-menutitle": "Menu"
+	"foreground-menutitle": "Menu",
+	"foreground-menunavback": "Back"
 }

+ 28 - 15
skin.json

@@ -1,15 +1,15 @@
 {
-	"@Note": "Note: Don't forget when updating to update the foreground.php file with the same change.",
 	"name": "Foreground",
-	"version": "1.2.0",
+	"version": "2.1.0",
 	"author": [
 		"Garrick Van Buren",
 		"Jamie Thingelstad",
 		"Tom Hutchison",
 		"..."
 	],
-	"url": "http://foreground.thingelstad.com",
+	"url": "https://github.com/thingles/foreground",
 	"descriptionmsg": "foreground-desc",
+	"license-name": "BSD-2-Clause",
 	"type": "skin",
 	"ValidSkinNames": {
 		"foreground": "Foreground"
@@ -20,7 +20,8 @@
 		]
 	},
 	"AutoloadClasses": {
-		"SkinForeground": "Foreground.skin.php"
+		"SkinForeground": "Foreground.skin.php",
+		"foregroundTemplate": "Foreground.skin.php"
 	},
 	"ResourceModules": {
 		"skins.foreground.styles": {
@@ -30,27 +31,39 @@
 				"assets/stylesheets/font-awesome.css",
 				"assets/stylesheets/foundation.css",
 				"assets/stylesheets/foreground.css",
-				"assets/stylesheets/foreground-print.css",
-				"assets/stylesheets/jquery.autocomplete.css",
-				"assets/stylesheets/responsive-tables.css"
+				"assets/stylesheets/foreground-print.css"
 			]
 		},
-		"skins.foreground.js": {
+		"skins.foreground.modernizr": {
 			"position": "top",
 			"scripts": [
-				"assets/scripts/vendor/custom.modernizr.js",
+				"assets/scripts/vendor/modernizr.js"
+			]
+		},
+		"skins.foreground.js": {
+			"position": "bottom",
+			"scripts": [
 				"assets/scripts/vendor/fastclick.js",
-				"assets/scripts/vendor/responsive-tables.js",
+				"assets/scripts/vendor/placeholder.js",
 				"assets/scripts/foundation/foundation.js",
 				"assets/scripts/foundation/foundation.topbar.js",
 				"assets/scripts/foundation/foundation.dropdown.js",
-				"assets/scripts/foundation/foundation.section.js",
+				"assets/scripts/foundation/foundation.joyride.js",
+				"assets/scripts/foundation/foundation.accordion.js",
+				"assets/scripts/foundation/foundation.offcanvas.js",
+				"assets/scripts/foundation/foundation.alert.js",
 				"assets/scripts/foundation/foundation.clearing.js",
-				"assets/scripts/foundation/foundation.cookie.js",
-				"assets/scripts/foundation/foundation.placeholder.js",
-				"assets/scripts/foundation/foundation.forms.js",
-				"assets/scripts/foundation/foundation.alerts.js",
+				"assets/scripts/foundation/foundation.equalizer.js",
+				"assets/scripts/foundation/foundation.interchange.js",
+				"assets/scripts/foundation/foundation.orbit.js",
+				"assets/scripts/foundation/foundation.reveal.js",
+				"assets/scripts/foundation/foundation.tab.js",
+				"assets/scripts/foundation/foundation.tooltip.js",
 				"assets/scripts/foreground.js"
+			],
+			"dependencies": [
+				"jquery.cookie",
+				"skins.foreground.modernizr"
 			]
 		}
 	},

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác