From e7f4e1e5cb275d6f577c80e133be4d805bdeb775 Mon Sep 17 00:00:00 2001 From: user_k Date: Fri, 11 Nov 2022 21:13:33 +0800 Subject: [PATCH 1/6] 11-11-w --- blog.taotronics.com/about.html | 737 ++ blog.taotronics.com/config.json | 5 + blog.taotronics.com/contact.html | 737 ++ .../css/blocks.css@ver=20190112.css | 250 + blog.taotronics.com/css/css.css | 528 ++ .../css/default.min.css@ver=1.14.css | 1 + .../simple-line-icons.min.css@ver=2.3.3.css | 1 + .../css/style.css@ver=1.2.9.css | 3303 +++++++ .../css/wp-ulike.min.css@ver=4.6.2.css | 6 + blog.taotronics.com/details.html | 756 ++ blog.taotronics.com/index.html | 789 ++ .../js/frontend-gtag.min.js@ver=7.10.0 | 46 + .../js/jquery-migrate.min.js@ver=3.3.2 | 2 + .../js/jquery.min.js@ver=3.6.0 | 3 + blog.taotronics.com/js/main.js@ver=20171003 | 192 + blog.taotronics.com/policy.html | 737 ++ httpsgetaer.com.aublogsnews/about.html | 703 ++ httpsgetaer.com.aublogsnews/config.json | 5 + httpsgetaer.com.aublogsnews/contact.html | 700 ++ httpsgetaer.com.aublogsnews/css/theme.css | 5 + httpsgetaer.com.aublogsnews/details.html | 727 ++ httpsgetaer.com.aublogsnews/index.html | 732 ++ httpsgetaer.com.aublogsnews/js/theme.js | 8437 +++++++++++++++++ httpsgetaer.com.aublogsnews/js/vendor-v6.js | 77 + httpsgetaer.com.aublogsnews/policy.html | 703 ++ httpswww.dashwitness.comblog/about.html | 1472 +++ httpswww.dashwitness.comblog/config.json | 5 + httpswww.dashwitness.comblog/contact.html | 1472 +++ .../css/bundles.css@ver=2.5.6.css | 95 + .../css/chosen.min.css@ver=2.2.9.4.css | 376 + httpswww.dashwitness.comblog/css/classic.css | 2 + .../css/composite-products.css@ver=2.5.6.css | 172 + httpswww.dashwitness.comblog/css/css.css | 392 + httpswww.dashwitness.comblog/css/cv.css | 5 + .../css/front.css@ver=2.2.9.4.css | 1212 +++ .../css/grey.css@ver=2.2.9.4.css | 59 + .../css/gutenberg.css | 756 ++ .../css/icons.css@ver=2.5.6.css | 5659 +++++++++++ .../css/sp-header-frontend.css@ver=1.3.0.css | 115 + httpswww.dashwitness.comblog/css/style.css | 2207 +++++ .../css/style.css@ver=1.3.0.css | 84 + .../css/style.css@ver=6.1.css | 40 + httpswww.dashwitness.comblog/css/stylemin.css | 11 + .../css/styles-css.css | 159 + httpswww.dashwitness.comblog/css/stylsss.css | 2207 +++++ .../css/wc-blocks.css | 1 + .../css/wc-composite-styles.css@ver=3.9.4.css | 40 + .../css/wc-pb-frontend.css@ver=5.2.0.css | 30 + httpswww.dashwitness.comblog/css/wc.css | 1 + .../css/widgets.css@ver=2.5.6.css | 12 + .../css/woocommerce.css@ver=2.5.6.css | 2231 +++++ httpswww.dashwitness.comblog/css/xx.css | 2207 +++++ httpswww.dashwitness.comblog/css/xx256.css | 2207 +++++ httpswww.dashwitness.comblog/details.html | 1518 +++ httpswww.dashwitness.comblog/index.html | 1515 +++ httpswww.dashwitness.comblog/js/api.js | 1 + .../js/custom.js@ver=6.1 | 3 + .../js/jquery-migrate.min.js@ver=3.3.2 | 2 + .../js/jquery.min.js@ver=3.6.1 | 3 + .../js/navigation.min.js@ver=2.5.6 | 1 + .../js/pep.min.js@ver=0.4.3 | 5 + .../js/skip-link-focus-fix.min.js | 1 + .../skip-link-focus-fix.min.js@ver=20130115 | 1 + httpswww.dashwitness.comblog/policy.html | 1472 +++ www.everlastingcomfort.net/about.html | 391 + www.everlastingcomfort.net/config.json | 5 + www.everlastingcomfort.net/contact.html | 392 + www.everlastingcomfort.net/css/bcpo-front.css | 1151 +++ www.everlastingcomfort.net/css/shopify.css | 1 + www.everlastingcomfort.net/css/theme.min.css | 159 + www.everlastingcomfort.net/details.html | 417 + www.everlastingcomfort.net/index.html | 431 + www.everlastingcomfort.net/js/theme.min.js | 64 + .../js/tp.widget.bootstrap.min.js | 2 + www.everlastingcomfort.net/policy.html | 391 + www.solarlightsmanufacturer.com/about.html | 481 + www.solarlightsmanufacturer.com/config.json | 5 + www.solarlightsmanufacturer.com/contact.html | 481 + .../9cf3e242257a1222169153b90b9d2398.min.css | 260 + .../css/elementor-icons.min.css | 2 + .../css/frontend-lite.min-copy.css | 2 + .../css/frontend-lite.min.css | 2 + .../css/global.css | 11 + .../css/jetpack_css.min.css | 1 + .../css/post-11390.css | 1 + .../css/post-6757.css | 7 + .../css/widget-posts.min.css | 2 + www.solarlightsmanufacturer.com/details.html | 542 ++ www.solarlightsmanufacturer.com/index.html | 591 ++ .../js/avada-menu.js | 1 + .../js/elements-handlers.min.js | 2 + .../js/frontend-modules.min.js | 2 + .../js/frontend.min.js | 2 + .../js/jquery-migrate.min.js | 2 + .../js/jquery.easing.js | 1 + .../js/jquery.min.js | 3 + .../js/lazysizes.min.js | 2 + .../js/oba_youtubepopup_activate.min.js | 1 + .../js/oba_youtubepopup_plugin.min.js | 1 + .../js/regenerator-runtime.min.js | 1 + .../js/waypoints.min.js | 1 + .../js/webpack-pro.runtime.min.js | 2 + .../js/webpack.runtime.min.js | 2 + www.solarlightsmanufacturer.com/js/xx.js | 2 + www.solarlightsmanufacturer.com/policy.html | 481 + 105 files changed, 54231 insertions(+) create mode 100644 blog.taotronics.com/about.html create mode 100644 blog.taotronics.com/config.json create mode 100644 blog.taotronics.com/contact.html create mode 100644 blog.taotronics.com/css/blocks.css@ver=20190112.css create mode 100644 blog.taotronics.com/css/css.css create mode 100644 blog.taotronics.com/css/default.min.css@ver=1.14.css create mode 100644 blog.taotronics.com/css/simple-line-icons.min.css@ver=2.3.3.css create mode 100644 blog.taotronics.com/css/style.css@ver=1.2.9.css create mode 100644 blog.taotronics.com/css/wp-ulike.min.css@ver=4.6.2.css create mode 100644 blog.taotronics.com/details.html create mode 100644 blog.taotronics.com/index.html create mode 100644 blog.taotronics.com/js/frontend-gtag.min.js@ver=7.10.0 create mode 100644 blog.taotronics.com/js/jquery-migrate.min.js@ver=3.3.2 create mode 100644 blog.taotronics.com/js/jquery.min.js@ver=3.6.0 create mode 100644 blog.taotronics.com/js/main.js@ver=20171003 create mode 100644 blog.taotronics.com/policy.html create mode 100644 httpsgetaer.com.aublogsnews/about.html create mode 100644 httpsgetaer.com.aublogsnews/config.json create mode 100644 httpsgetaer.com.aublogsnews/contact.html create mode 100644 httpsgetaer.com.aublogsnews/css/theme.css create mode 100644 httpsgetaer.com.aublogsnews/details.html create mode 100644 httpsgetaer.com.aublogsnews/index.html create mode 100644 httpsgetaer.com.aublogsnews/js/theme.js create mode 100644 httpsgetaer.com.aublogsnews/js/vendor-v6.js create mode 100644 httpsgetaer.com.aublogsnews/policy.html create mode 100644 httpswww.dashwitness.comblog/about.html create mode 100644 httpswww.dashwitness.comblog/config.json create mode 100644 httpswww.dashwitness.comblog/contact.html create mode 100644 httpswww.dashwitness.comblog/css/bundles.css@ver=2.5.6.css create mode 100644 httpswww.dashwitness.comblog/css/chosen.min.css@ver=2.2.9.4.css create mode 100644 httpswww.dashwitness.comblog/css/classic.css create mode 100644 httpswww.dashwitness.comblog/css/composite-products.css@ver=2.5.6.css create mode 100644 httpswww.dashwitness.comblog/css/css.css create mode 100644 httpswww.dashwitness.comblog/css/cv.css create mode 100644 httpswww.dashwitness.comblog/css/front.css@ver=2.2.9.4.css create mode 100644 httpswww.dashwitness.comblog/css/grey.css@ver=2.2.9.4.css create mode 100644 httpswww.dashwitness.comblog/css/gutenberg.css create mode 100644 httpswww.dashwitness.comblog/css/icons.css@ver=2.5.6.css create mode 100644 httpswww.dashwitness.comblog/css/sp-header-frontend.css@ver=1.3.0.css create mode 100644 httpswww.dashwitness.comblog/css/style.css create mode 100644 httpswww.dashwitness.comblog/css/style.css@ver=1.3.0.css create mode 100644 httpswww.dashwitness.comblog/css/style.css@ver=6.1.css create mode 100644 httpswww.dashwitness.comblog/css/stylemin.css create mode 100644 httpswww.dashwitness.comblog/css/styles-css.css create mode 100644 httpswww.dashwitness.comblog/css/stylsss.css create mode 100644 httpswww.dashwitness.comblog/css/wc-blocks.css create mode 100644 httpswww.dashwitness.comblog/css/wc-composite-styles.css@ver=3.9.4.css create mode 100644 httpswww.dashwitness.comblog/css/wc-pb-frontend.css@ver=5.2.0.css create mode 100644 httpswww.dashwitness.comblog/css/wc.css create mode 100644 httpswww.dashwitness.comblog/css/widgets.css@ver=2.5.6.css create mode 100644 httpswww.dashwitness.comblog/css/woocommerce.css@ver=2.5.6.css create mode 100644 httpswww.dashwitness.comblog/css/xx.css create mode 100644 httpswww.dashwitness.comblog/css/xx256.css create mode 100644 httpswww.dashwitness.comblog/details.html create mode 100644 httpswww.dashwitness.comblog/index.html create mode 100644 httpswww.dashwitness.comblog/js/api.js create mode 100644 httpswww.dashwitness.comblog/js/custom.js@ver=6.1 create mode 100644 httpswww.dashwitness.comblog/js/jquery-migrate.min.js@ver=3.3.2 create mode 100644 httpswww.dashwitness.comblog/js/jquery.min.js@ver=3.6.1 create mode 100644 httpswww.dashwitness.comblog/js/navigation.min.js@ver=2.5.6 create mode 100644 httpswww.dashwitness.comblog/js/pep.min.js@ver=0.4.3 create mode 100644 httpswww.dashwitness.comblog/js/skip-link-focus-fix.min.js create mode 100644 httpswww.dashwitness.comblog/js/skip-link-focus-fix.min.js@ver=20130115 create mode 100644 httpswww.dashwitness.comblog/policy.html create mode 100644 www.everlastingcomfort.net/about.html create mode 100644 www.everlastingcomfort.net/config.json create mode 100644 www.everlastingcomfort.net/contact.html create mode 100644 www.everlastingcomfort.net/css/bcpo-front.css create mode 100644 www.everlastingcomfort.net/css/shopify.css create mode 100644 www.everlastingcomfort.net/css/theme.min.css create mode 100644 www.everlastingcomfort.net/details.html create mode 100644 www.everlastingcomfort.net/index.html create mode 100644 www.everlastingcomfort.net/js/theme.min.js create mode 100644 www.everlastingcomfort.net/js/tp.widget.bootstrap.min.js create mode 100644 www.everlastingcomfort.net/policy.html create mode 100644 www.solarlightsmanufacturer.com/about.html create mode 100644 www.solarlightsmanufacturer.com/config.json create mode 100644 www.solarlightsmanufacturer.com/contact.html create mode 100644 www.solarlightsmanufacturer.com/css/9cf3e242257a1222169153b90b9d2398.min.css create mode 100644 www.solarlightsmanufacturer.com/css/elementor-icons.min.css create mode 100644 www.solarlightsmanufacturer.com/css/frontend-lite.min-copy.css create mode 100644 www.solarlightsmanufacturer.com/css/frontend-lite.min.css create mode 100644 www.solarlightsmanufacturer.com/css/global.css create mode 100644 www.solarlightsmanufacturer.com/css/jetpack_css.min.css create mode 100644 www.solarlightsmanufacturer.com/css/post-11390.css create mode 100644 www.solarlightsmanufacturer.com/css/post-6757.css create mode 100644 www.solarlightsmanufacturer.com/css/widget-posts.min.css create mode 100644 www.solarlightsmanufacturer.com/details.html create mode 100644 www.solarlightsmanufacturer.com/index.html create mode 100644 www.solarlightsmanufacturer.com/js/avada-menu.js create mode 100644 www.solarlightsmanufacturer.com/js/elements-handlers.min.js create mode 100644 www.solarlightsmanufacturer.com/js/frontend-modules.min.js create mode 100644 www.solarlightsmanufacturer.com/js/frontend.min.js create mode 100644 www.solarlightsmanufacturer.com/js/jquery-migrate.min.js create mode 100644 www.solarlightsmanufacturer.com/js/jquery.easing.js create mode 100644 www.solarlightsmanufacturer.com/js/jquery.min.js create mode 100644 www.solarlightsmanufacturer.com/js/lazysizes.min.js create mode 100644 www.solarlightsmanufacturer.com/js/oba_youtubepopup_activate.min.js create mode 100644 www.solarlightsmanufacturer.com/js/oba_youtubepopup_plugin.min.js create mode 100644 www.solarlightsmanufacturer.com/js/regenerator-runtime.min.js create mode 100644 www.solarlightsmanufacturer.com/js/waypoints.min.js create mode 100644 www.solarlightsmanufacturer.com/js/webpack-pro.runtime.min.js create mode 100644 www.solarlightsmanufacturer.com/js/webpack.runtime.min.js create mode 100644 www.solarlightsmanufacturer.com/js/xx.js create mode 100644 www.solarlightsmanufacturer.com/policy.html diff --git a/blog.taotronics.com/about.html b/blog.taotronics.com/about.html new file mode 100644 index 0000000..72cc063 --- /dev/null +++ b/blog.taotronics.com/about.html @@ -0,0 +1,737 @@ + + + + + + + {{.Title}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + +
+
+ + +
+
+ + + +
+

{{ lang "about"}}

+
+ {{.About}} +
+
+ + + +
+
+ + + + +
+
+ +
+ + + + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/blog.taotronics.com/config.json b/blog.taotronics.com/config.json new file mode 100644 index 0000000..b8ac68d --- /dev/null +++ b/blog.taotronics.com/config.json @@ -0,0 +1,5 @@ +{ + "creator": "吴奎", + "version": "1.0", + "origin_website": "https://blog.taotronics.com/" +} \ No newline at end of file diff --git a/blog.taotronics.com/contact.html b/blog.taotronics.com/contact.html new file mode 100644 index 0000000..492109c --- /dev/null +++ b/blog.taotronics.com/contact.html @@ -0,0 +1,737 @@ + + + + + + + {{.Title}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + +
+
+ + +
+
+ + + +
+

{{ lang "contact"}}

+
+ {{.Contact}} +
+
+ + + +
+
+ + + + +
+
+ +
+ + + + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/blog.taotronics.com/css/blocks.css@ver=20190112.css b/blog.taotronics.com/css/blocks.css@ver=20190112.css new file mode 100644 index 0000000..4855b0f --- /dev/null +++ b/blog.taotronics.com/css/blocks.css@ver=20190112.css @@ -0,0 +1,250 @@ +/* +Theme Name: xMag +Description: Used to style blocks. +*/ + +/* + * 01: Common Blocks + */ + +/* Paragraph */ + +p.has-drop-cap:not(:focus)::first-letter { + font-size: 5em; + margin-top: 0.15em; +} + +/* Captions */ + +[class^="wp-block-"] figcaption { + display: block; + margin: 10px 0 0; + font-size: 14px; + font-style: italic; + color: #777; + line-height: 1.5; + box-sizing: border-box; +} + +/* Image */ + +.wp-block-image { + margin-bottom: 20px; +} + +.wp-block-image img { + display: block; +} + +.wp-block-image .alignleft, +.wp-block-image .alignright { + margin: 0 auto 20px; +} + +.wp-block-image .aligncenter { + clear: both; + margin: 20px auto; +} + +@media screen and (min-width: 480px) { + .wp-block-image .alignleft { + margin: 0 25px 20px 0; + } + .wp-block-image .alignright { + margin: 0 0 20px 25px; + } +} + +/* Cover */ + +.wp-block-cover-image, +.wp-block-cover { + margin: 20px auto; +} + +/* Gallery */ + +.wp-block-gallery { + margin-left: 0; +} + +.wp-block-gallery li { + padding: 0; +} + +/* Quote */ + +.wp-block-quote.is-style-large, +.wp-block-quote.is-large { + margin: 0 0 20px; + padding: 10px 20px; +} + +/* Audio */ + +.wp-block-audio audio { + display: block; + width: 100%; +} + +/* + * 02: Formatting + */ + +/* Code */ + +.wp-block-code { + border: 0; + background-color: transparent; + padding: 0; +} + +/* Pullquote */ + +.wp-block-pullquote { + margin: 20px 0; + padding: 20px 0; + border: 0; +} + +.wp-block-pullquote blockquote { + border-left: 0; + margin: 0; + padding: 0; +} + +.wp-block-pullquote cite { + color: #999; +} + +.wp-block-pullquote.is-style-solid-color blockquote cite { + font-size: 16px; +} + +/* Verse */ + +pre.wp-block-verse { + white-space: pre-wrap; +} + +/* + * 03: Layout Elements + */ + +/* Buttons */ + +.wp-block-button { + margin-bottom: 20px; +} + +.wp-block-button__link { + padding: 5px 20px; + background: #333333; + color: #fff; + -webkit-border-radius: 4px; + border-radius: 4px; +} + +/* Media & Text */ + +.wp-block-media-text { + margin-bottom: 30px; +} + +.wp-block-media-text *:last-child { + margin-bottom: 0; +} + +/* Separator */ + +.wp-block-separator, +.wp-block-separator.is-style-wide { + border: 0; +} + +.wp-block-separator:not(.is-style-wide):not(.is-style-dots) { + max-width: 100px; + height: 2px; +} + +/* + * 04: Widget Blocks + */ + +/* Archives, Categories & Latest Posts */ + +.wp-block-archives.aligncenter, +.wp-block-categories.aligncenter, +.wp-block-latest-posts.aligncenter { + list-style-position: inside; + text-align: center; +} + +/* Latest Comments */ + +.wp-block-latest-comments__comment-meta { + font-size: 16px; + font-size: 1rem; +} + +/* + * 05: Colors & Font sizes + */ + +.entry-content .has-dark-gray-color { + color: #222; +} + +.entry-content .has-medium-gray-color { + color: #333; +} + +.entry-content .has-gray-color { + color: #555; +} + +.entry-content .has-light-gray-color { + color: #999; +} + +.entry-content .has-white-color { + color: #fff; +} + +.entry-content .has-dark-gray-background-color { + background-color: #222; +} + +.entry-content .has-medium-gray-background-color { + background-color: #333; +} + +.entry-content .has-gray-background-color { + background-color: #555; +} + +.entry-content .has-light-gray-background-color { + background-color: #999; +} + +.entry-content .has-white-background-color { + background-color: #fff; +} + +.has-small-font-size { + font-size: 14px; +} + +.has-regular-font-size { + font-size: 16px; +} + +.has-large-font-size { + font-size: 24px; + line-height: 1.25; +} + +.has-larger-font-size { + font-size: 32px; + line-height: 1.25; +} \ No newline at end of file diff --git a/blog.taotronics.com/css/css.css b/blog.taotronics.com/css/css.css new file mode 100644 index 0000000..04ec6fd --- /dev/null +++ b/blog.taotronics.com/css/css.css @@ -0,0 +1,528 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* hebrew */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* hebrew */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* hebrew */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* hebrew */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* hebrew */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(https://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/blog.taotronics.com/css/default.min.css@ver=1.14.css b/blog.taotronics.com/css/default.min.css@ver=1.14.css new file mode 100644 index 0000000..01e6bcf --- /dev/null +++ b/blog.taotronics.com/css/default.min.css@ver=1.14.css @@ -0,0 +1 @@ +@font-face{font-family:TablePress;src:url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPUAA0AAAAACZAAAAN+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCUhEICoQIgnILFgABNgIkAygEIAWGcgeBARv6B8iuBzK53oAhKg2KWDsrezjalSefocfD9/uZ575PSbYEqJHAIdo6tMDGdCprFIHd+F9r+rZE46O2iHBJfoAuxwW0yfgKS8KGVFE4dHX1gPmgVhzwhcJbReQ9RWXcraeutbmNHE7T7B1sex8stfMfnkvv0XsgUZrYO1hirXme9TnUkBvQ22RGX50VAr48H54Cn9b8GD73edAAhjboBpIQ6kKOhCz7GA8V5HfzyeA6h0mnrFTJnPjxC7KCrl9caqIUg0EAYACGDBn6YGCxeIE+EkwANTWJX/brZpNfyE5o/7r9uPZjS4tESbCTExLCjxOEbxGi2dQeNEAXUMMlvADkqSV0IHXtkQXNOnI2ctJpRIPt8+HjNivx3rlQYA8FqGwdCxF2aZrdJluMnaqFvy+yngVKbBcn0fSOd1xTpnW4HTkptV8Gi2kvCeUHC0BD+D0VKMIqXniZPJyPya9D7gT6DvUpwJER6avgKDsOfW9jU+YGc/ng6MhA3VSar3NdtvrD9WHZurKVKYOi0RwlY9500YSuWDE084F+jMinu4sTudD5yBTTozA9Horpmb+M3TwIBHempnzdpu1/raWypX0JND/ki4p71CQQlFqnAvkijABrVFIq5BdNJbFncoBOF03/h3IINPQRBxJCYDoAOnkRIDR0w0BSmYiBzDinAuQ6eROg0DEGY6DUiEUYqKyILwFq2qS9GKhrpFsykdeFLmDjknYG4jKbNeNyQ1zhCoP840pdYiqu8jTW4mp6pMXH1HVJp8wRmHmQKTKiUOBVSMHrlKuBlYidxkMgw6/bMoG5RD6qfs8yO8LVqFCFa8ELrcVLEqTaS7UG5aqVq1GlWi28k3rRgCjbiU+qqOItvDEqXjkvwF/dUF595jB8LSqqgwIWAWsRmcJJ5GsHbYUqVbirBi5IpRMxLso/i2oSA6ZYDoMFCiknI7ZkGacSVYUjlLSXyG8n08nOQcXTeyzU5ozbiGRQZRt0vu/TMoEV8RLI3DiBSiVzMtNKAPgErlwLoqiAY2fJ9UbRMU/0rz38UP5FQtH3i8V3KYSHYJdSYRnwW8XazUAUop3gQY19hkEH98OA2QQ6wg0S+FjtwOwdOvF5J2VXBBLQmo2EAxsIKVJkkUcRZVRRa7NrP+my6Ns8cKszHYJf+fPPLPTq5vFcmYKZNL+fn1CZDgoYecKZHwA=) format('woff2'),url(tablepress.woff) format('woff');font-weight:400;font-style:normal;font-display:block}.tablepress-table-description{clear:both;display:block}.tablepress{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:1em;border:none}.tablepress td,.tablepress th{padding:8px;border:none;background:0 0;text-align:left;float:none!important}.tablepress tbody td{vertical-align:top}.tablepress tbody td,.tablepress tfoot th{border-top:1px solid #ddd}.tablepress tbody tr:first-child td{border-top:0}.tablepress thead th{border-bottom:1px solid #ddd}.tablepress tfoot th,.tablepress thead th{background-color:#d9edf7;font-weight:700;vertical-align:middle}.tablepress .odd td{background-color:#f9f9f9}.tablepress .even td{background-color:#fff}.tablepress .row-hover tr:hover td{background-color:#f3f3f3}.tablepress img{margin:0;padding:0;border:none;max-width:none}.dataTables_wrapper{clear:both;margin-bottom:1em}.dataTables_wrapper .tablepress{clear:both;margin:0!important}.dataTables_length{float:left;white-space:nowrap}.dataTables_filter{float:right;white-space:nowrap}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_info{clear:both;float:left;margin:4px 0 0}.dataTables_paginate{float:right;margin:4px 0 0}.dataTables_paginate a{color:#111!important;display:inline-block;outline:0;position:relative;text-decoration:underline;margin:0 5px}.dataTables_paginate a:first-child{margin-left:0}.dataTables_paginate a:last-child{margin-right:0}.paginate_button:hover{cursor:pointer;text-decoration:none}.paginate_button.disabled{color:#999!important;text-decoration:none;cursor:default}.paginate_button.current{font-weight:700;text-decoration:none;cursor:default}.dataTables_paginate.paging_simple{padding:0 15px}.paging_simple .paginate_button.next:after,.paging_simple .paginate_button.previous:before{text-align:left;font-family:TablePress;font-size:14px;font-weight:700;-webkit-font-smoothing:antialiased;content:"\f053";text-shadow:.1em .1em #666;position:absolute;top:0;right:auto;bottom:0;left:-14px;margin:auto;height:14px;width:14px;line-height:1}.paging_simple .paginate_button.next:after{text-align:right;content:"\f054";left:auto}.paginate_button:after,.paginate_button:before{color:#d9edf7}.paginate_button:hover:after,.paginate_button:hover:before{color:#049cdb}.paginate_button.disabled:after,.paginate_button.disabled:before{color:#f9f9f9}.dataTables_processing{display:none}.dataTables_scroll{clear:both}.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.tablepress .sorting,.tablepress .sorting_asc,.tablepress .sorting_desc{position:relative;padding-right:20px;cursor:pointer;outline:0}.tablepress .sorting:after,.tablepress .sorting_asc:after,.tablepress .sorting_desc:after{font-family:TablePress;font-weight:400;font-size:14px;-webkit-font-smoothing:antialiased;position:absolute;top:0;bottom:0;left:auto;right:6px;margin:auto;height:14px;line-height:1}.tablepress .sorting:after{content:"\f0dc"}.tablepress .sorting_asc:after{content:"\f0d8";padding:0 0 2px}.tablepress .sorting_desc:after{content:"\f0d7"}.tablepress .sorting:hover,.tablepress .sorting_asc,.tablepress .sorting_desc{background-color:#049cdb}.dataTables_scrollBody .tablepress thead th:after{content:""}.dataTables_wrapper:after{content:"";display:block;clear:both;visibility:hidden;line-height:0;height:0}.dataTables_wrapper label input,.dataTables_wrapper label select{display:inline;margin:2px;width:auto} \ No newline at end of file diff --git a/blog.taotronics.com/css/simple-line-icons.min.css@ver=2.3.3.css b/blog.taotronics.com/css/simple-line-icons.min.css@ver=2.3.3.css new file mode 100644 index 0000000..84977cd --- /dev/null +++ b/blog.taotronics.com/css/simple-line-icons.min.css@ver=2.3.3.css @@ -0,0 +1 @@ +@charset "UTF-8";@font-face{font-family:"simple-line-icons";src:url("simple-line-icons.eot@v=2.3.3");src:url("simple-line-icons.eot@") format("embedded-opentype"), url("simple-line-icons.woff@v=2.3.3") format("woff"), url("simple-line-icons.ttf@v=2.3.3") format("truetype"), url("simple-line-icons.svg") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:'simple-line-icons';speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;vertical-align:-10%}.icon-user-alt:before{content:"\61"}.icon-picture:before{content:"\62"}.icon-pencil:before{content:"\63"}.icon-note:before{content:"\64"}.icon-like:before{content:"\65"}.icon-dislike:before{content:"\66"}.icon-arrow-left-circle:before{content:"\67"}.icon-arrow-right-circle:before{content:"\68"}.icon-camrecorder:before{content:"\69"}.icon-camera:before{content:"\6a"}.icon-bubble:before{content:"\6b"}.icon-folder:before{content:"\6c"}.icon-lock-alt:before{content:"\6d"}.icon-link:before{content:"\6e"}.icon-magnifier:before{content:"\6f"}.icon-arrow-right:before{content:"\70"}.icon-arrow-left:before{content:"\71"}.icon-arrow-down:before{content:"\72"}.icon-arrow-up:before{content:"\73"}.icon-menu:before{content:"\74"}.icon-refresh:before{content:"\75"}.icon-settings:before{content:"\76"}.icon-star:before{content:"\77"}.icon-music-tone-alt:before{content:"\78"}.icon-tag:before{content:"\79"}.icon-support:before{content:"\7a"}.icon-bubbles:before{content:"\41"}.icon-emotsmile:before{content:"\42"}.icon-chemistry:before{content:"\43"}.icon-speech:before{content:"\44"}.icon-basket:before{content:"\45"}.icon-basket-loaded:before{content:"\46"}.icon-share-alt:before{content:"\47"}.icon-question:before{content:"\48"}.icon-pin:before{content:"\49"}.icon-present:before{content:"\4a"}.icon-handbag:before{content:"\4b"}.icon-control-play:before{content:"\4c"}.icon-cloud-download:before{content:"\4d"}.icon-cloud-upload:before{content:"\4e"}.icon-grid:before{content:"\4f"}.icon-credit-card:before{content:"\50"}.icon-envelope:before{content:"\51"}.icon-flag:before{content:"\52"}.icon-heart:before{content:"\53"}.icon-info:before{content:"\54"}.icon-globe:before{content:"\55"}.icon-twitter:before{content:"\56"}.icon-facebook:before{content:"\57"}.icon-youtube:before{content:"\58"}.icon-instagram:before{content:"\59"}.icon-dribbble:before{content:"\5a"}.icon-paypal:before{content:"\30"}.icon-pinterest:before{content:"\31"}.icon-whatsapp:before{content:"\32"}.icon-amazon:before{content:"\33"}.icon-stumbleupon:before{content:"\34"}.icon-behance:before{content:"\35"}.icon-tumblr:before{content:"\36"}.icon-flickr:before{content:"\37"}.icon-linkedin:before{content:"\38"}.icon-googleplus:before{content:"\39"}.icon-medium:before{content:"\21"}.icon-home:before{content:"\22"}.icon-quote:before{content:"\23"}.icon-lock:before{content:"\24"}.icon-user:before{content:"\25"}.icon-clock:before{content:"\26"}.icon-check:before{content:"\27"}.icon-rss:before{content:"\28"}.icon-screen-smartphone:before{content:"\29"}.icon-book-open:before{content:"\2a"}.icon-graph:before{content:"\2b"}.icon-puzzle:before{content:"\2c"}.icon-screen-desktop:before{content:"\2d"}.icon-screen-tablet:before{content:"\2e"}.icon-wrench:before{content:"\2f"}.icon-chart:before{content:"\3a"}.icon-bulb:before{content:"\3b"}.icon-equalizer:before{content:"\3c"}.icon-briefcase:before{content:"\3d"}.icon-rocket:before{content:"\3e"}.icon-magic-wand:before{content:"\3f"}.icon-doc:before{content:"\40"}.icon-drop:before{content:"\5b"}.icon-close:before{content:"\5d"}.icon-arrow-right2:before{content:"\5e"}.icon-arrow-left2:before{content:"\5f"}.icon-wordpress:before{content:"\60"}.icon-github:before{content:"\7b"}.icon-share:before{content:"\7c"}.icon-vk:before{content:"\7d"}.icon-vimeo:before{content:"\7e"}.icon-git:before{content:"\5c"} \ No newline at end of file diff --git a/blog.taotronics.com/css/style.css@ver=1.2.9.css b/blog.taotronics.com/css/style.css@ver=1.2.9.css new file mode 100644 index 0000000..f5bfa1e --- /dev/null +++ b/blog.taotronics.com/css/style.css@ver=1.2.9.css @@ -0,0 +1,3303 @@ +/* +Theme Name: xMag +Theme URI: http://www.designlabthemes.com/xmag-wordpress-theme/ +Author: Design Lab +Author URI: http://www.designlabthemes.com/ +Description: xMag is a free Magazine WordPress Theme. It features a simple and elegant design. This theme comes with great features for magazine, blog and news websites. +Version: 1.2.9 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Text Domain: xmag +Tags: blog, custom-background, custom-colors, custom-header, custom-menu, featured-images, full-width-template, news, one-column, post-formats, right-sidebar, sticky-post, theme-options, translation-ready, two-columns + +*/ + +/******************************************************************************************************** + * Please don't edit this file. You can lose all modifications if the theme is updated. + * Please use Additional CSS via Customizer (since WordPress 4.7) or a child theme. You can overwrite specific style rules in your child theme's 'style.css' file. + * See here more about Child Themes: https://codex.wordpress.org/Child_Themes +********************************************************************************************************/ + +/* + +01: - Normalize +02: - Layout +03: - Typography +04: - Elements +05: - Navigation +06: - Header +07: - Content +08: - Post Formats +09: - Comments +10: - Widgets +11: - Additional Styles +12: - Responsive + +*/ + +/* + * 01: Normalize + * Styles based on Normalize v7.0.0 @link https://github.com/necolas/normalize.css + */ + +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +footer, +header, +nav, +section { + display: block; +} + +figcaption, +figure, +main { + display: block; +} + +figure { + margin: 0; +} + +a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:focus, +a:active { + outline: 0; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +pre { + font-family: monospace, monospace; + font-size: 1em; +} + +b, +strong { + font-weight: inherit; +} + +b, +strong { + font-weight: 700; +} + +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +dfn { + font-style: italic; +} + +abbr[title] { + border-bottom: 1px #777 dotted; + text-decoration: none; +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +small { + font-size: 80%; +} + +audio, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +img { + border: 0; + border-style: none; +} + +button, +input, +select, +textarea { + font-family: sans-serif; + font-size: 100%; + margin: 0; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +legend { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; +} + +textarea { + overflow: auto; +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +canvas { + display: inline-block; +} + +template { + display: none; +} + +[hidden] { + display: none; +} + +/* + * 02: Layout + */ + +body { + background-color: #ffffff; +} + +#page { + margin: 0; + padding: 0; +} + +.container { + max-width: 740px; + padding: 0 20px; + margin: auto; + -webkit-transition: all 0.5s ease-in-out 0s; + transition: all 0.5s ease-in-out 0s; +} + +.content-area, +.sidebar { + max-width: 100%; + width: 100%; +} + +.content-area { + margin-bottom: 20px; +} + +.site-content { + margin: 20px 0; +} + +/* Grid */ + +.row { + margin-right: -10px; + margin-left: -10px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.col-3, .col-4, .col-6, .col-8, .col-12, +.col-sm-3, .col-sm-4, .col-sm-6, .col-sm-8, .col-sm-12, +.col-xs-3, .col-xs-4, .col-xs-6, .col-xs-8, .col-xs-12 { + position: relative; + min-height: 1px; + padding-right: 10px; + padding-left: 10px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.col-xs-3, .col-xs-4, .col-xs-6, .col-xs-8, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.text-center { + text-align: center; +} + +/* + * 03: Typography + */ + +html, +body { + text-rendering: optimizelegibility; +} + +body, +button, +input, +select, +textarea { + color: #333; + font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; + font-size: 16px; + font-size: 1rem; + line-height: 1.65; +} + +/* Headings */ + +h1, h2, h3, h4, h5, h6 { + clear: both; + margin: 20px 0 10px; + font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; + color: #222; +} + +h1 { + font-size: 2em; /* 32px */ + font-weight: 400; + line-height: 1.25; +} + +h2 { + font-size: 1.5em; /* 24px */ + line-height: 1.25; +} + +h3 { + font-size: 1.25em; /* 20px */ + font-weight: 700; + line-height: 1.5; +} + +h4 { + font-size: 0.875em; /* 14px */ + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; +} + +h5, h6 { + margin: 10px 0 5px; + font-size: 1em; + font-weight: 700; +} + +.entry-content h1:first-child, +.entry-content h2:first-child, +.entry-content h3:first-child, +.entry-content h4:first-child, +.entry-content h5:first-child, +.entry-content h6:first-child, +.comment-content h1:first-child, +.comment-content h2:first-child, +.comment-content h3:first-child, +.comment-content h4:first-child, +.comment-content h5:first-child, +.comment-content h6:first-child { + margin-top: 0; +} + +.site-title { + font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; + font-size: 2em; + font-weight: 700; + line-height: 1.25; + margin: 0; +} + +.site-title a { + color: #222; + -webkit-transition: all 0.3s ease-in-out 0s; + -moz-transition: all 0.3s ease-in-out 0s; + transition: all 0.3s ease-in-out 0s; + display: inline-block; +} + +.site-title a:hover { + color: #e54e53; + text-decoration: none; +} + +.site-title a:focus, +.site-title a:active { + outline: 0; +} + +.site-description { + margin: 10px 0 0; + color: #777; + font-size: 0.875em; + font-weight: 400; + font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; + line-height: 1.5; +} + +.entry-title, +.page-header h1 { + line-height: 1.25; + clear: none; + color: #222; +} + +h1.entry-title { + margin: 0; +} + +h2.entry-title { + margin: 5px 0 0 0; + font-size: 24px; + font-size: 1.5rem; +} + +.entry-title a { + text-decoration: none; + color: #222; +} + +.entry-title a:hover { + color: #e54e53; +} + +.page-header h1 { + font-size: 1.125em; + color: #555; + font-weight: 700; +} + +/* + * 04: Elements + */ + +p { + margin: 0 0 20px 0; +} + +hr { + height: 1px; + border: 0; + background-color: #eee; + margin: 20px auto; +} + +ul, ol { + margin: 0 0 20px 20px; + padding: 0 0 0 20px; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; +} + +ul li, +ol li { + margin: 0 0 5px 0; +} + +li > ul, +li > ol { + margin-bottom: 0; +} + +dt { + font-weight: bold; +} + +dd { + margin: 0 20px 20px; +} + +dfn, cite, em, i { + font-style: italic; +} + +blockquote { + border-left: 5px solid #e54e53; + color: #555; + margin: 0 0 20px; + padding: 10px 20px; + font-style: italic; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +blockquote p { + margin: 0 0 10px; +} + +blockquote cite { + color: #999; + font-size: 14px; + font-size: 0.875rem; +} + +address { + margin: 0 0 10px; +} + +pre { + max-width: 100%; + margin-bottom: 20px; + padding: 10px; + font-family: "Courier 10 Pitch", Courier, monospace; + font-size: 1em; + line-height: 1.5; + border: 1px solid #ddd; + overflow: auto; + white-space: pre-wrap; + word-wrap: break-word; +} + +code, +kbd, +tt, +var { + font: 16px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} + +code { + padding: 0.125em; + font-size: 14px; + font-size: 0.875rem; + border: 0; + background-color: #f2f2f2; + -webkit-border-radius: 2px; + border-radius: 2px; +} + +abbr, acronym { + border-bottom: 1px dotted #666; + cursor: help; +} + +mark, ins { + text-decoration: none; +} + +mark { + background: #fff9c0; +} + +small { + font-size: 75%; +} + +big { + font-size: 125%; +} + +table { + border-collapse: collapse; + border-spacing: 0; + margin: 0 0 20px; + width: 100%; +} + +td, +th { + padding: 10px; + border: 1px solid #ddd; +} + +th { + font-weight: 700; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + border: none; + border-radius: 2px; + background-color: #e54e53; + color: #fff; + font-size: 1em; + line-height: 1.5; + padding: 10px 20px; + font-weight: 700; +} + +button:hover, +input[type="button"]:hover, +input[type="reset"]:hover, +input[type="submit"]:hover { + opacity: 0.8; +} + +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus, +button:active, +input[type="button"]:active, +input[type="reset"]:active, +input[type="submit"]:active { + opacity: 0.8; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +textarea { + color: #888; + background-color: #fff; + border: 1px solid #eee; + -webkit-transition: all 0.3s ease-in-out 0s; + transition: all 0.3s ease-in-out 0; +} + +input[type="text"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +input[type="search"]:focus, +textarea:focus { + color: #333; + background-color: #eee; + border: 1px solid #eee; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +textarea { + padding: 0.5em; +} + +textarea { + vertical-align: top; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +select { + padding: 0.25em 0.5em; + background-color: #fff; + color: #666; + border: 1px solid rgba(0, 0, 0, 0.07); +} + +blockquote, input, select { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + float: none; +} + +fieldset { + margin-bottom: 20px; +} + +/* Links */ + +a { + color: #e54e53; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.more-link { + display: inline-block; +} + +/* Text meant only for screen readers */ + +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + overflow: hidden; + position: absolute !important; + width: 1px; + word-wrap: normal !important; +} + +.screen-reader-text:focus { + background-color: #f1f1f1; + border-radius: 3px; + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + clip: auto !important; + color: #e54e53; + display: block; + font-size: 14px; + font-weight: bold; + height: auto; + left: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; /* Above WP toolbar */ +} + +/* Clearing */ + +.clear:before, +.clear:after, +.container:before, +.container:after, +.site-main:before, +.site-main:after, +.menu:before, +.menu:after, +.hentry:before, +.hentry:after, +.product:before, +.product:after, +.entry-content:before, +.entry-content:after, +.entry-magazine:before, +.entry-magazine:after, +.comment-meta:before, +.comment-meta:after, +.comment-content:before, +.comment-content:after, +.nav-links:before, +.nav-links:after, +.gallery:before, +.gallery:after, +.search-form:before, +.search-form:after, +.widget_search:before, +.widget_search:after { + content: ''; + display: table; +} + +.clear:after, +.container:after, +.site-main:after, +.menu:after, +.hentry:after, +.product:after, +.entry-content:after, +.entry-magazine:after, +.comment-meta:after, +.comment-content:after, +.nav-links:after, +.gallery:after, +.search-form:after, +.widget_search:after { + clear: both; +} + +/* + * 05: Navigation + */ + + +/* Header Navigation */ + +.header-navigation { + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; + justify-content: flex-end; +} + +.top-navigation { + margin: 20px 0; + text-align: right; + padding: 0; + order: 1; +} + +.top-navigation ul { + margin: 0; + padding: 0; + list-style: none; + font-size: 14px; +} + +.top-navigation ul li { + position: relative; +} + +.top-navigation ul a { + display: block; + text-decoration: none; + color: #444; +} + +.top-menu a:hover, +.top-menu .current_page_item a, +.top-menu .current-menu-item a { + color: #e54e53; +} + +.top-navigation > ul > li { + display: inline-block; +} + +.top-navigation > ul > li > a { + padding: 6px 8px; + margin: 0; + line-height: 20px; + font-weight: 400; +} + +.top-navigation > ul > li:active > a, +.top-navigation > ul > li:focus > a { + color: #e54e53; +} + +.top-navigation > ul > li.menu-item-has-children > a:after, +.top-navigation > ul > li > ul > li.menu-item-has-children > a:after, +.top-navigation > ul > li > ul > li > ul > li.menu-item-has-children > a:after { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + display: inline-block; + content: "\72"; + vertical-align: -10%; + font-size: 10px; + padding: 0 0 0 4px; + } + +.top-navigation > ul > li > a.button { + margin: 0.25em; + padding: 0 1em; + height: 30px; + line-height: 30px; + background-color: #e54e53; + color: #fff; + border: 0; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.top-navigation > ul > li > a.button:hover { + background-color: #c64448; +} + +.top-navigation ul ul { + display: none; + right: 0; + position: absolute; + top: 32px; + margin: 0; + z-index: 99999; + border: 1px solid #eee; + background-color: #fff; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05); + box-shadow: 0 1px 2px rgba(0,0,0,0.05); + text-align: left; + font-size: 14px; +} + +.top-navigation ul ul a { + height: auto; + line-height: 1.5; + padding: 6px 10px; + width: 160px; + color: #555; + border-top: 1px solid #f4f4f4; +} + +.top-navigation ul ul ul { + right: 100%; + top: 0; + text-align: left; +} + +.top-navigation ul ul li:first-child a { + border: 0; +} + +.top-navigation ul li:hover > ul { + display: block; +} + +/* Footer Navigation */ + +.footer-navigation { + text-align: center; +} + +.footer-navigation ul { + margin: 0; + padding: 0; + display: inline-block; + list-style: none; +} + +.footer-navigation li { + display: inline-block; + position: relative; +} + +.footer-navigation a { + display: inline-block; + text-decoration: none; + padding: 6px; + margin: 0; + font-weight: 400; +} + +.footer-navigation a { + color: #444; +} + +.footer-navigation a:hover { + text-decoration: underline; +} + +/* Mobile Navigation */ + +.mobile-header { + display: block; + position: relative; + height: 50px; + width: 100%; + padding: 0 20px; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + background-color: #252626; + -webkit-box-sizing: border-box; + box-sizing: border-box; + z-index: 9999; +} + +.mobile-header a { + color: #fff; +} + +.mobile-header a:hover { + text-decoration: none; +} + +.mobile-header a:active, +.mobile-header a:focus { + outline: none; +} + +.mobile-title { + display: inline-block; + line-height: 50px; + padding: 0 30px; + font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; + font-size: 18px; + font-weight: 700; + text-align: center; + text-decoration: none; +} + +.menu-toggle { + position: absolute; + left: 10px; + top: 5px; + margin: 0; + width: 40px; + height: 40px; + text-decoration: none; + z-index: 5; +} + +.mobile-sidebar { + position: fixed; + top: 0; + left: 0; + height: 50px; + width: 100%; + overflow: hidden; + overflow-y: auto; + padding: 20px 10px; + background-color: #000; + opacity: 0.7; + visibility: hidden; + -webkit-transition: opacity 0.35s linear 0s, height 0.35s ease-in; + transition: opacity 0.35s linear 0s, height 0.35s ease-in; + box-sizing: border-box; + z-index: 9998; +} + +.mobile-navigation { + display: block; + float: none; + margin: 0; + padding: 0; + text-align: left; + font-size: 16px; +} + +.mobile-navigation ul, +.mobile-navigation ul ul { + margin: 0; + padding: 0; + list-style-type: none; + background-color: transparent; + border: 0; + opacity: 1; + position: static; +} + +.mobile-navigation ul ul { + background-color: rgba(255,255,255,.1); +} + +.mobile-navigation .mobile-menu { + padding: 0 20px; + display: block; + margin: 20px 0; +} + +.mobile-navigation .mobile-menu:first-child { + margin-top: 0; +} + +.mobile-navigation li { + display: block; + position: relative; +} + +.mobile-navigation ul li:before { + content: none; +} + +.mobile-navigation ul ul { + display: none; +} + +.mobile-navigation ul .toggled-on { + display: block; +} + +.mobile-navigation ul a, +.mobile-navigation ul ul a, +.mobile-navigation .woo-cart-link a { + display: block; + width: auto; + padding: 10px 15px; + height: auto; + line-height: 1.5; + color: #fff; + text-transform: none; + font-weight: 400; +} + +.mobile-navigation ul a, +.mobile-navigation ul li { + float: none; +} + +.mobile-navigation ul a:hover { + text-decoration: none; +} + +.mobile-navigation a { + border-bottom: 1px solid rgba(255,255,255,.15); +} + +.mobile-navigation hr { + background-color: rgba(255,255,255,0.15); + margin: 10px 0; +} + +.mobile-navigation .home-link { + float: none; +} + +.mobile-navigation .home-link a { + display: block; + padding: 10px 15px; +} + +.mobile-navigation .search-form { + padding: 0 15px; +} + +.mobile-navigation .search-form label { + display: inline-block; + width: 65%; +} + +.mobile-navigation input.search-field { + line-height: 20px; + padding: 6px; + width: 100%; + font-size: 14px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.mobile-navigation input.search-submit { + width: 30%; + padding: 8px 0; + line-height: 20px; + font-size: 14px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +/* Toggled On */ + +body.mobile-menu-active { + overflow: hidden; +} + +body.mobile-menu-active:before { + content: ""; + position: fixed; + top: 50px; + left: 0; + width: 100%; + height: 100%; + background-color: #000; + opacity: 0.75; + -webkit-transition: opacity .4s; + transition: opacity .4s; + content: none; + z-index: 9; +} + +.mobile-sidebar.toggled-on { + top: 50px; + height: calc(100% - 50px); + opacity: 1; + visibility: visible; +} + +.admin-bar .mobile-sidebar.toggled-on, +.admin-bar body.mobile-menu-active:before { + top: 96px; +} + +/* Drop down Button */ + +.dropdown-toggle { + height: 40px; + width: 40px; + padding: 0; + margin: 0; + position: absolute; + top: 0; + right: 5px; + text-transform: none; + background-color: transparent; + color: #fff; + border: 0; + content: ""; + -webkit-border-radius: 0; + border-radius: 0; +} + +.dropdown-toggle:after { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + font-size: 14px; + content: "\72"; + vertical-align: middle; + padding: 6px 8px; + border-radius: 4px; +} + +.dropdown-toggle.toggled-on:after { + content: "\73"; +} + +.dropdown-toggle:focus { + outline: none; +} + +.dropdown-toggle:focus:after { + background-color: rgba(255,255,255,.2); +} + +/* Button Toggle */ + +.button-toggle { + display: block; + background-color: #fff; + content: ""; + height: 1px; + opacity: 1; + position: absolute; + transition: opacity 0.3s ease 0s, background 0.3s ease 0s; + width: 20px; + z-index: 20; + left: 10px; + top: 20px; +} + +.button-toggle:before { + background-color: #fff; + content: ""; + height: 1px; + left: 0; + position: absolute; + top: -6px; + transform-origin: center center 0; + transition: transform 0.3s ease 0s, background 0.3s ease 0s; + width: 20px; +} + +.button-toggle:after { + background-color: #fff; + bottom: -6px; + content: ""; + height: 1px; + left: 0; + position: absolute; + transform-origin: center center 0; + transition: transform 0.3s ease 0s, background 0.3s ease 0s; + width: 20px; +} + +.mobile-menu-active .button-toggle { + background-color: transparent !important; +} + +.mobile-menu-active .button-toggle:before { + opacity: 1; + transform: translate(0px, 6px) rotate(-45deg); +} + +.mobile-menu-active .button-toggle:after { + opacity: 1; + transform: translate(0px, -6px) rotate(45deg); +} + +/* + * 06: Header + */ + +.header-image, +.main-navbar, +.sticky-wrapper, +.collapse { + display: none; +} + +.site-header { + margin: 0; + padding: 0; + opacity: 1; + background-color: #fff; + -webkit-transition: opacity 0.3s ease-in-out 0s, background 0.3s ease-in-out 0s; + transition: opacity 0.3s ease-in-out 0s, background 0.3s ease-in-out 0s; +} + +.site-branding { + margin: 20px 0; +} + +.header-image img { + display: block; + max-width: 100%; + height: auto; + margin: auto; +} + +/* Header Search Form */ + +.search-top { + margin-top: 20px; + order: 2; + padding: 0 0 0 6px; +} + +.search-top .search-submit { + background: transparent; + color: #555; +} + +.search-form { + position: relative; +} + +.site-header .search-field { + position: relative; + height: 32px; + width: 160px; + margin: 0; + padding: 5px 40px 5px 10px; + background: #fff; + font-size: 14px; + line-height: 20px; + border: 1px solid #eee; + -webkit-transition: width 400ms ease, background 400ms ease; + transition: width 400ms ease, background 400ms ease; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-border-radius: 48px; + border-radius: 48px; + outline: 0; +} + +.site-header .search-form label { + position: relative; + margin: 0; + float: right; +} + +.site-header .search-field:focus { + background: #f4f4f4; + cursor: text; + width: 180px; + text-indent: 0; +} + +.site-header .search-form .search-submit { + width: 20px; + height: 24px; + margin: 0; + padding: 0; + cursor: pointer; + position: absolute; + right: 10px; + top: 4px; + z-index: 2; +} + +/* + * 07: Content + */ + +.hentry { + position: relative; + margin: 0 0 20px 0; +} + +.entry-header { + margin-bottom: 5px; +} + +.entry-summary { + color: #555; + margin: 0; + -webkit-transition: color 0.3s ease-in-out 0s; + transition: color 0.3s ease-in-out 0s; +} + +.entry-summary p { + margin-bottom: 0; +} + +.entry-thumbnail { + float: left; + margin: 0 20px 0 0; + max-width: 30%; + position: relative; + overflow: hidden; +} + +.entry-thumbnail img { + display: block; + max-width: 100%; + height: auto; + margin: auto; +} + +.entry-meta { + color: #999; + font-size: 0.875rem; +} + +.entry-meta a { + color: #555; +} + +.entry-meta .posted-on a, +.entry-meta .byline a { + color: #999; +} + +.entry-meta .category a, +.featured-image .category a { + display: inline-block; + background-color: #e54e53; + color: #fff; + font-size: 12px; + text-transform: uppercase; + font-weight: 700; + -webkit-border-radius: 2px; + border-radius: 2px; +} + +.entry-meta .category a { + position: relative; + padding: 2px 15px 1px 5px; + margin: 0 0.25em 0 0; +} + +.entry-meta .category a:before { + background-color: #ffffff; + border-radius: 100%; + content: ""; + display: block; + height: 6px; + margin-top: -3px; + position: absolute; + right: 5px; + top: 50%; + width: 6px; +} + +.entry-meta .category a:hover, +.featured-image .category a:hover { + text-decoration: none; +} + +.entry-meta [class^="icon-"]:before, +.entry-meta [class*=" icon-"]:before { + font-size: 12px; +} + +.entry-footer { + color: #aaa; + font-size: 0.875em; + margin: 10px 0 0; +} + +.taxonomy-description p { + font-size: 0.875em; + color: #999; + margin: 5px 0 0; +} + +.updated:not(.published) { + display: none; +} + +.sep { + padding: 0 0.25em; +} + +/* Single Posts and Pages */ + +.page .hentry, +.single .hentry { + margin-bottom: 20px; +} + +.page .hentry .entry-header, +.single .hentry .entry-header, +.page-header { + margin-bottom: 20px; +} + +.page .hentry .hentry h1, +.single .hentry .hentry h1, +.page-header h1 { + margin: 0; + word-wrap: break-word; +} + +.page-header span { + font-weight: 700; +} + +.page .hentry .entry-meta, +.single .hentry .entry-meta { + margin-top: 5px; +} + +.single .hentry .entry-thumbnail, +.page .hentry .entry-thumbnail { + margin: 20px 0 0; + max-width: 100%; + width: inherit; + float: none; +} + +.single .hentry .entry-thumbnail:hover img, +.page .hentry .entry-thumbnail:hover img { + opacity: 1; +} + +.single .hentry .entry-meta, +.page .hentry .entry-meta { + text-transform: none; +} + +.single .entry-header .byline, +.single .entry-header .comments-link { + padding-left: 0.5em; +} + +.single .entry-header .byline:before, +.single .entry-header .comments-link:before { + content: "/"; + padding-right: 0.5em; +} + +.single .entry-footer > span { + padding: 0 20px 0 0; +} + +.page-links { + clear: both; + margin: 0 0 20px; + font-weight: 700; +} + +.page-links > span, +.page-links > a { + display: inline-block; + padding: 0 2px; + font-weight: 400; +} + +/* Featured Image */ + +.featured-image { + position: relative; + margin: 0 -20px 20px; +} + +.featured-image .cover-bg { + background-position: center center; + background-size: cover; + width: 100%; + min-height: 200px; + z-index: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.featured-image .overlay { + padding: 0 20px; + margin: 0 0 10px 0; + border: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.featured-image .overlay h1 { + font-weight: 300; + color: #222; + margin-bottom: 10px +} + +.featured-image .entry-meta a { + color: #999; +} + +.featured-image .category a { + font-weight: 400; + margin: 0 0 5px 0; + padding: 1px 8px; +} + +.featured-image .category a:hover { + opacity: .9; +} + +.single .featured-image .entry-meta { + color: #999; + margin-top: 10px; +} + +/* Post Navigation */ + +.navigation { + margin: 0; + overflow: hidden; + padding: 0; + clear: both; +} + +.nav-previous, +.nav-next { + position: relative; + padding: 0 20px; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.nav-next { + margin-top: 20px; +} + +.nav-previous a, +.nav-next a { + display: inline-block; + font-size: 0.875rem; + color: #888; + position: relative; +} + +.nav-previous a span, +.nav-next a span { + display: block; + font-size: 0.8125rem; + color: #444; + text-transform: uppercase; + margin-top: 10px; +} + +.nav-previous a:hover, +.nav-next a:hover { + text-decoration: none; +} + +.post-navigation { + margin: 20px 0; + padding: 10px 0; + background-color: #f6f6f6; + -webkit-border-radius: 2px; + border-radius: 2px; +} + +.post-navigation .nav-previous a:hover, +.post-navigation .nav-previous a:hover span, +.post-navigation .nav-next a:hover, +.post-navigation .nav-next a:hover span { + color: #e54e53; +} + +.post-navigation .nav-links { + position: relative; + margin: 0 -20px; +} + +/* Posts Pagination */ + +.pagination { + margin: 20px 0; +} + +.pagination .nav-links { + clear: both; + list-style-type: none; + margin: 0; + padding: 0; +} + +.pagination .nav-links a, +.pagination .nav-links span { + display: block; + float: left; + height: 30px; + margin: 0 5px 5px 0; + padding: 0 1em; + text-align: center; + font-size: 0.875em; + line-height: 30px; + color: #777; + background-color: #fff; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #ddd; +} + +.pagination .nav-links .current, +.pagination .nav-links .current:hover, +.pagination .nav-links a:hover { + border-color: transparent; + text-decoration: none; + color: #fff; + background-color: #e54e53; +} + +/* Scroll Up Button */ + +#scroll-up { + display: none; + position: fixed; + width: 40px; + height: 40px; + bottom: 20px; + right: 20px; + background-color: #e54e53; + color: #fff; + line-height: 40px; + text-decoration: none; + text-align: center; + -webkit-border-radius: 4px; + border-radius: 4px; +} + +#scroll-up .ion-angle-up:before { + font-size: 18px; +} + +/* Author bio */ + +.author-avatar, +.author-description, +.author-social { + width: 100%; + float: none; + padding: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.author-avatar { + margin-bottom: 10px; +} + +.author-avatar img { + display: block; + margin: auto; + -webkit-border-radius: 50%; + border-radius: 50%; +} + +.author-description p:last-child { + margin-bottom: 0; +} + +.author-social { + margin: 0; +} + +.author-info { + margin: 20px 0; + padding: 0; +} + +.author-bio { + font-size: 0.875em; + color: #555; +} + +.author-bio p { + margin-bottom: 10px; +} + +.author-title { + clear: none; + margin: 5px 0; + font-weight: 700; +} + +/* Footer */ + +.site-footer { + background-color: #f8f8f8; + color: #888; + text-align: center; +} + +.site-footer a { + color: #888; +} + +.site-footer a:hover { + color: #444; +} + +.footer-copy { + padding: 20px 0; + font-size: 0.875em; + border-top: 1px solid rgba(0,0,0,0.05); +} + +.site-info { + padding: 5px 0; + margin-bottom: 20px; + text-align: center; +} + +/* Media */ + +img, +video { + height: auto; /* Make sure images are scaled correctly. */ + max-width: 100%; /* Adhere to container width. */ +} + +embed, +object, +iframe { + max-width: 100%; +} + +.page-content img.wp-smiley, +.entry-content img.wp-smiley, +.comment-content img.wp-smiley { + border: none; + margin-bottom: 0; + margin-top: 0; + padding: 0; +} + +/* Alignments */ + +.alignleft, +.alignright { + margin: 0 auto 20px; +} + +.aligncenter { + clear: both; + margin: 20px auto; +} + +img.aligncenter, +.aligncenter img { + display: block; +} + +/* Gallery */ + +.gallery { + margin: 0 -10px 20px; +} + +.gallery-item { + display: inline-block; + padding: 0 10px; + margin: 0 0 20px 0; + text-align: center; + vertical-align: top; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.gallery-item img { + display: block; + max-width: 100%; + height: auto; + border: none; +} + +.gallery-icon img { + display: block; + max-width: 100%; + height: auto; + margin: 0 auto; + border: none; +} + +.gallery-columns-2 .gallery-item { + max-width: 50%; +} + +.gallery-columns-3 .gallery-item { + max-width: 33.33%; +} + +.gallery-columns-4 .gallery-item { + max-width: 25%; +} + +.gallery-columns-5 .gallery-item { + max-width: 20%; +} + +.gallery-columns-6 .gallery-item { + max-width: 16.66%; +} + +.gallery-columns-7 .gallery-item { + max-width: 14.28%; +} + +.gallery-columns-8 .gallery-item { + max-width: 12.5%; +} + +.gallery-columns-9 .gallery-item { + max-width: 11.11%; +} + +/* Captions */ + +.wp-caption { + border: 0; + max-width: 100%; + margin-bottom: 10px; +} + +.wp-caption-text, +.gallery-caption { + color: #777; + display: block; + font-size: 14px; + font-style: italic; + margin: 10px 0 0; +} + +.wp-caption img[class*="wp-image-"] { + display: block; + margin: 0; +} + +/* + * 08: Post Formats + */ + +.entry-thumbnail .format-icon { + display: none; + position: absolute; + left: 50%; + top: 50%; + width: 32px; + height: 32px; + margin: -16px 0 0 -16px; + text-align: center; + background-color: rgba(0,0,0,.7); + -webkit-border-radius: 24px; + border-radius: 24px; + z-index: 2; + -webkit-transition: all .5s; + transition: all .5s; +} + +.entry-thumbnail:hover .format-icon { + opacity: 0; +} + +.entry-thumbnail .format-icon:before { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + + color: #fff; + line-height: 32px; + font-size: 14px; +} + +.format-audio .format-icon, +.format-gallery .format-icon, +.format-image .format-icon, +.format-link .format-icon, +.format-quote .format-icon, +.format-status .format-icon, +.format-video .format-icon { + display: block; +} + +.format-audio .format-icon:before { + content: "\78"; +} + +.format-gallery .format-icon:before { + content: "\6a"; +} + +.format-image .format-icon:before { + content: "\62"; +} + +.format-link .format-icon:before { + content: "\6e"; +} + +.format-quote .format-icon:before { + content: "\23"; +} + +.format-status .format-icon:before { + content: "\61"; +} + +.format-video .format-icon:before { + content: "\69"; +} + +/* Sticky */ + +.hentry.sticky h2.entry-title a:before { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + font-size: 14px; + padding-right: 0.5em; + display: inline-block; + content: "\49"; +} + +/* Infinite Scroll */ + +/* Globally hidden elements when Infinite Scroll is supported and in use. */ +.infinite-scroll .paging-navigation, /* Older / Newer Posts Navigation (always hidden) */ +.infinite-scroll.neverending .site-footer { /* Theme Footer (when set to scrolling) */ + display: none; +} + +/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before */ +.infinity-end.neverending .site-footer { + display: block; +} + +/* + * 09: Comments + */ + +.comments-area { + padding: 20px 0; +} + +h3.comment-reply-title, +h2.comments-title { + font-size: 1.125em; + font-weight: 700; + margin: 0 0 10px; +} + +.comment-content { + font-size: 0.875em; + color: #555; + word-wrap: break-word; +} + +.comment-list { + list-style-type: none; + margin: 20px 0; + padding: 20px; + background-color: #f6f6f6; + border-radius: 2px; +} + +.comment-list > li { + margin-bottom: 20px; + padding-bottom: 20px; + border-bottom: 1px solid #e9e9e9; +} + +.comment-list > li:last-child { + border-bottom: 0; + margin-bottom: 0; +} + +.comment-list .children { + list-style-type: none; + margin-left: 0; +} + +.comment-list .children > li { + border-bottom: 1px solid #e9e9e9; + margin: 20px 0; + padding: 0 0 20px; +} + +.comment-list .children > li:last-child { + padding-bottom: 0; + border-bottom: 0; +} + +.comment-list .avatar { + float: left; + margin: 0 10px 0 0; + -webkit-border-radius: 128px; + border-radius: 128px; + max-width: 30px; + height: auto; +} + +.comment-list .comment-meta { + margin-bottom: 10px; +} + +.comment-list .comment-metadata { + font-size: 0.875em; + color: #999; +} +.comment-list .comment-metadata a { + color: #999; +} + +.comment-list .comment-content, +.comment-list .reply { + padding-left: 40; +} + +.comment-content p { + margin-bottom: 10px; +} + +.comment-list .comment-author .fn { + display: inline-block; + text-align: left; + font-size: 1.125rem; + font-style: normal; + font-weight: 700; + color: #333; + margin: 0; +} + +.comment-list .comment-author .says { + display: none; +} + +.comment-list .reply { + clear: both; + font-size: 0.8em; + font-weight: 700; + letter-spacing: 0.02em; + text-transform: uppercase; +} + +.form-allowed-tags { + display: none; +} + +.comment-form label { + display: block; +} + +.comment-form .required { + color: red; +} + +.bypostauthor {} + +/* + * 10: Widgets + */ + +.widget { + margin: 0 0 20px 0; + font-size: 0.9375rem; + color: #555; + padding: 20px; + -webkit-border-radius: 2px; + border-radius: 2px; + word-wrap: break-word; +} + +.widget h2 a, +.widget h3 a, +.widget h4 a, +.widget h5 a { + color: #333; +} + +.widget-title { + margin: 0 0 15px; + font-size: 18px; + font-size: 1.125rem; + font-weight: 700; + color: #333; +} + +.widget a { + color: #777; +} + +.widget a:hover { + color: #e54e53; +} + +.widget > ul { + margin: 0; + padding: 0; + list-style-type: none; +} + +.widget > ul li { + padding: 0; + margin: 10px 0; +} + +.widget_pages > ul > li > a:before, +.widget_categories > ul > li > a:before, +.widget_meta > ul > li > a:before, +.widget_recent_entries > ul > li > a:before, +.widget_recent_comments ul li a.url:before, +.widget_nav_menu ul li a:before { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + padding-right: 0.5em; +} + +.widget_pages > ul > li > a:before, +.widget_meta > ul > li > a:before, +.widget_recent_entries > ul > li > a:before, +.widget_nav_menu ul li a:before { + vertical-align: middle; + font-size: 10px; + content: "\70"; +} + +.widget_categories > ul > li > a:before { + font-size: 14px; + vertical-align: -10%; + content: "\6c"; +} + +.widget_recent_comments ul li a.url:before { + font-size: 14px; + vertical-align: -10%; + content: "\41"; +} + +.widget select { + max-width: 100%; +} + +.sidebar .widget { + background-color: #f6f6f6; +} + +.sidebar .widget-title { + border-bottom: 1px solid #e8e8e8; +} + +.sidebar .widget-title span { + display: inline-block; + padding: 0 0 0.5em 0; + position: relative; +} + +.sidebar .widget-title span:before { + content: ""; + position: absolute; + width: 60px; + bottom: -1px; + border-bottom: 1px solid #e54e53; +} + +.site-footer .widget { + margin: 20px 0; + padding: 0; + background: transparent; +} + +/* Menu Widget */ + +.widget_nav_menu ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +.widget_nav_menu ul li { + padding: 0; + margin: 10px 0; +} + +.widget_nav_menu .menu > li:first-child { + margin-top: 0; +} + +/* Pages Widget */ + +.widget_pages ul { + list-style-type: none; +} + +.widget_pages ul li { + padding: 0; + margin: 10px 0; +} + +.widget_pages ul ul { + padding: 0; + margin-left: 0; +} + +/* Search widget */ + +.widget_search .search-submit { + float:left; + height: 36px; + width: 15%; + padding: 5px; + line-height: 1; + -webkit-border-radius: 0; + border-radius: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.widget_search .search-submit .sli:before { + font-size: 16px; +} + +.widget_search label { + float:left; + width: 85%; +} + +.widget_search input[type="search"] { + width: 100%; + height: 36px; + padding: 5px 10px; + border: 1px solid #eee; + background-color: #fff; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +/* Comments Widget */ + +.widget_recent_comments, +.widget_recent_comments a { + color: #999; +} + +.comment-author-link, +.comment-author-link a { + color: #333; +} + +/* Calendar Widget */ + +.widget_calendar caption { + font-size: 1.125rem; + font-weight: 700; + margin: 0 0 1em; +} + +.widget_calendar thead th { + text-transform: uppercase; + font-size: 0.750rem; +} + +.widget_calendar tbody { + color: #999; +} + +.widget_calendar a { + color: #e54e53; +} + +/* Ads Widget */ + +.widget_ads { + padding: 0; + background-color: transparent; + text-align: center; +} + +/* Tag Cloud Widget */ + +.tagcloud a { + font-size: 0.875rem !important; + display: inline-block; + padding: 0.1em 0.5em; + border: 1px solid #eee; + margin-bottom: 0.5em; + -webkit-border-radius: 2px; + border-radius: 2px; + background-color: #fff; +} + +/* Social Links */ + +.social-links { + list-style-type: none; + margin: 0 0 1.5em 0; + padding: 0 20px; + font-size: 0.875em; +} + +.social-links li { + display: inline-block; + margin: 0 0 0.5em 0.5em; +} + +.social-links li:first-child { + margin-left: 0; +} + +.social-links a { + display: inline-block; + position: relative; + width: 32px; + height: 32px; + line-height: 32px; + margin: 0; + background-color: #333; + color: #fff; + text-align: center; + -webkit-border-radius: 32px; + border-radius: 32px; +} + +.social-links a:hover { + text-decoration: none; + color: #fff; + opacity: 0.9; +} + +.social-links a .screen-reader-text { + position: absolute; + top: -9999em; + left: -9999em; +} + +.social-links a:before { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-size: 16px; + vertical-align: middle; + color: #fff; +} + +.social-links li a[href*="dribbble.com"] {background-color: #ea4c89;} +.social-links li a[href*="facebook.com"] {background-color: #3B5998;} +.social-links li a[href*="flickr.com"] {background-color: #ff0084;} +.social-links li a[href*="instagram.com"] {background-color: #517fa4;} +.social-links li a[href*="linkedin.com"] {background-color: #007bb6;} +.social-links li a[href*="medium.com"] {background-color: #00ab6c;} +.social-links li a[href*="pinterest.com"] {background-color: #cb2027;} +.social-links li a[href*="plus.google.com"] {background-color: #dd4b39;} +.social-links li a[href*="stumbleupon.com"] {background-color: #eb4823;} +.social-links li a[href*="tumblr.com"] {background-color: #32506d;} +.social-links li a[href*="twitter.com"] {background-color: #00aced;} +.social-links li a[href*="youtube.com"] {background-color: #bb0000;} +.social-links li a[href*="vk.com"] {background-color: #4a76a8;} +.social-links li a[href*="github.com"] {background-color: #24292e;} +.social-links li a[href*="wordpress.org"] {background-color: #464646;} +.social-links li a[href*="vimeo.com"] {background-color: #1ab7ea;} + +.social-links li a::before { content: "\47"; } +.social-links li a[href*="dribbble.com"]::before {content: "\5a";} +.social-links li a[href*="facebook.com"]::before {content: "\57";} +.social-links li a[href*="flickr.com"]::before {content: "\37";} +.social-links li a[href*="instagram.com"]::before {content: "\59";} +.social-links li a[href*="linkedin.com"]::before {content: "\38";} +.social-links li a[href*="medium.com"]::before {content: "\21";} +.social-links li a[href*="pinterest.com"]::before {content: "\31";} +.social-links li a[href*="plus.google.com"]::before {content: "\39";} +.social-links li a[href*="stumbleupon.com"]::before {content: "\34";} +.social-links li a[href*="tumblr.com"]::before {content: "\36";} +.social-links li a[href*="twitter.com"]::before {content: "\56";} +.social-links li a[href*="youtube.com"]::before {content: "\58";} +.social-links li a[href*="vk.com"]::before {content: "\7d";} +.social-links li a[href*="github.com"]::before {content: "\7b";} +.social-links li a[href*="wordpress.org"]::before {content: "\60";} +.social-links li a[href*="vimeo.com"]::before {content:"\7e";} + +.author-social .social-links { + padding: 0; +} + +.author-social .social-links li { + margin-top: 0.5em; +} + +.author-social .social-links li a { + height: inherit; + width: inherit; + background-color: transparent; + line-height: inherit; +} + +.author-social .social-links li a:before { + color: #555; +} + +.author-social .social-links li a:hover:before { + color: #e54e53; +} + +/* + * 11: Additional Styles + */ + +/* Boxed Style */ + +.site-boxed { + background-color: #f2f2f2; +} + +.site-boxed #page { + background-color: #fff; + max-width: 1060px; + margin: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.site-boxed .site-logo, +.site-boxed .site-branding, +.site-boxed .top-navigation, +.site-boxed .search-top { + margin: 40px 0; +} + +.site-boxed .header-image .container { + max-width: 100%; + width: 100%; +} + +.site-boxed .site-footer { + background-color: #fff; +} + +/* Fullwidth Page Template */ + +.page-template-no-sidebar .content-area, +.page-template-no-sidebar.site-boxed .content-area { + width: 100%; + float: none; +} + +.page-template-no-sidebar .hentry, +.page-template-no-sidebar .comments-area, +.page-template-no-sidebar .breadcrumb { + margin-left: auto; + margin-right: auto; + max-width: 740px; +} + +.page-template-no-sidebar .featured-image .overlay { + bottom: 80px; + text-align: center; +} + +/* Blog Layout */ + +/* List Posts */ + +.list-post .entry-thumbnail { + max-width: 100px; + margin: 0 15px 5px 0; +} + +.list-post .entry-header { + margin-bottom: 0; +} + +.list-post .entry-summary, +.list-post .category { + display: none; +} + +.list-post h2.entry-title { + font-size: 1em; + font-weight: 700; +} + +.list-post .byline, +.list-post .posted-on { + padding-right: 0.25em; +} + +.list-post .posted-on + .byline:before { + content: "/"; + padding-right: 0.25em; +} + +/* Large Posts */ + +.large-post { + border-bottom: 1px solid #eee; + padding-bottom: 20px; +} + +.large-post .entry-header, +.large-post .entry-thumbnail { + margin: 0 0 20px 0; +} + +.large-post .entry-thumbnail { + max-width: 100%; + float: none; +} + +.large-post h2.entry-title { + margin: 0 0 15px 0; +} + +.large-post h2.entry-title a { + display: inline-block; + position: relative; + padding-bottom: 15px; +} + +.large-post h2.entry-title a:after { + content: ""; + position: absolute; + width: 50px; + left: 50%; + bottom: 0; + margin-left: -25px; + border-bottom: 2px solid #222; +} + +.large-post .category { + display: block; + margin: 0 0 5px 0; + font-size: 0.750em; + text-transform: uppercase; + font-weight: 700; + text-align: center; +} + +.large-post .read-more { + text-align: center; +} + +.large-post .more-link { + margin: 20px 0 0; + padding: 5px 10px; + background-color: #e54e53; + color: #fff; + font-size: 0.875em; + -webkit-border-radius: 2px; + border-radius: 2px; +} + +.large-post .more-link:hover { + color: #fff; + text-decoration: none; + opacity: 0.9; +} + +.large-post .byline, +.large-post .posted-on { + padding-left: 0.25em; + padding-right: 0.25em; +} + +.large-post .posted-on + .byline:before { + content: "/"; + padding-right: 0.25em; +} + +/* Widget Styles */ + +.widget-white .widget-title { + border-bottom-color: #eee; +} + +.widget-white .widget { + background-color: #fff; + border: 1px solid #eee; + box-shadow: 0 1px 1px rgba(0,0,0,.05); +} + +.widget-minimal .widget { + padding: 0; + background-color: transparent; +} + +.widget-minimal .widget-title { + border: 0; + font-size: 15px; + text-transform: uppercase; +} + +.widget-minimal .widget-title span { + padding: 0; +} + +.widget-minimal .widget-title span:before { + content: none; +} + +.widget-minimal .social-links { + padding: 0; +} + +/* + * 12: Responsive + */ + +@media screen and (min-width: 360px) { + /* Post Navigation */ + .nav-previous, + .nav-next { + width: 50%; + float: left; + } + .nav-previous a:before, + .nav-next a:after { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + position: absolute; + font-size: 20px; + top: 30%; + } + .nav-previous a:before { + content: "\71"; + left: 0; + } + .nav-next a:after { + content: "\70"; + right: 0; + } + .nav-previous a { + padding-left: 30px; + } + .nav-next a { + padding-right: 30px; + } + .nav-previous { + text-align: left; + } + .nav-next { + border-left: 1px solid #fff; + text-align: right; + margin-top: 0; + } + .post-navigation { + padding: 20px; + } + /* Content */ + blockquote, input, select { + width: inherit; + float: inherit; + } + .site-info { + margin-bottom: 0; + } + #scroll-up { + bottom: 30px; + right: 30px; + } + .page .hentry h1, + .single .hentry h1, + .page-header h1 { + word-wrap: inherit; + } + /* Comments */ + .comment-list .children { + margin: 20px 0 20px 20px; + } + /* Author bio */ + .author-avatar { + width: 20%; + padding: 0 20px; + float: left; + margin-bottom: 0; + } + .author-description { + width: 80%; + float: left; + } + .author-social { + clear: left; + width: 80%; + margin-left: 20%; + } + /* Blog Layout */ + .list-post .entry-thumbnail { + float: left; + max-width: 30%; + margin: 0 20px 0 0; + } + .list-post h2.entry-title { + font-size: 1.125em; + font-weight: 400; + } + .list-post .entry-header { + margin-bottom: 5px; + } + .list-post .entry-summary { + display: block; + } + .list-post .category { + display: inline; + } + .list-post .category a:hover { + opacity: .9; + } +} + +@media screen and (min-width: 480px) { + /* Alignments */ + .alignleft { + float: left; + margin: 0 25px 5px 0; + } + .alignright { + float: right; + margin: 0 0 5px 25px; + } +} + +@media screen and (min-width: 600px) { + /* Grid */ + .col-sm-3, .col-sm-4, .col-sm-6, .col-sm-8, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + /* Mobile Navigation */ + .mobile-header { + padding: 0 30px; + } + .mobile-sidebar { + width: 340px; + position: absolute; + } + .menu-toggle { + left: 25px; + } + body.mobile-menu-active { + overflow: inherit; + } + body.mobile-menu-active:before { + content: none; + } + .mobile-sidebar.toggled-on { + height: auto; + } + /* Content */ + body { + font-size: 15px; + } + .container { + padding: 0 30px; + } + .site-content { + margin: 30px 0; + } + .site-footer { + text-align: left; + } + .hentry { + margin-bottom: 30px; + } + .page-header { + margin-bottom: 30px; + } + /* Featured Image */ + .featured-image .cover-bg { + min-height: 320px; + } + .featured-image { + margin-left: -30px; + margin-right: -30px; + } + .featured-image .overlay { + padding: 0 30px; + } + /* Posts Formats */ + .entry-thumbnail .format-icon { + width: 48px; + height: 48px; + margin: -24px 0 0 -24px; + } + .entry-thumbnail .format-icon:before { + font-size: 18px; + line-height: 48px; + } + /* Widgets */ + .widget_pages ul ul { + margin-left: 40px; + } + /* Blog Layout */ + .large-post { + margin-bottom: 20px; + } +} + +@media screen and (min-width: 840px) { + /* Grid */ + .col-3, .col-4, .col-6, .col-8, .col-12 { + float: left; + } + .col-12 { + width: 100%; + } + .col-8 { + width: 66.66666667%; + } + .col-6 { + width: 50%; + } + .col-4 { + width: 33.33333333%; + } + .col-3 { + width: 25%; + } + /* Header */ + .header-image, + .main-navbar, + .sticky-wrapper, + .collapse { + display: inherit; + } + /* Mobile Navigation */ + .mobile-header, + .mobile-sidebar, + .mobile-navigation { + display: none; + } + /* Main Navigation */ + .main-navbar { + background-color: #252626; + z-index: 999; + } + .main-menu, + .main-menu ul, + .main-menu p { + margin: 0; + padding: 0; + } + .main-menu { + list-style-type: none; + } + .main-menu a { + color: #fff; + } + .main-menu > li, + .home-link { + float: left; + margin: 0; + } + .main-menu > li, + .home-link a { + position: relative; + } + .main-menu > li > a, + .home-link a { + display: block; + position: relative; + padding: 10px 12px; + text-decoration: none; + font-size: 13px; + text-transform: uppercase; + font-weight: 700; + line-height: 26px; + color: #fff; + -webkit-transition: color 0.3s ease-in-out 0s; + transition: color 0.3s ease-in-out 0s; + } + .home-link a { + padding-left: 15px; + padding-right: 15px; + } + .main-menu > li.menu-item-has-children > a:after, + .main-menu > li.page_item_has_children > a:after { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + display: inline-block; + content: "\72"; + vertical-align: -10%; + font-size: 10px; + padding: 0 0.5em; + } + .home-link a:hover, + .main-menu > li > a:hover, + .main-menu > li.current-menu-item > a, + .main-menu > li.current_page_item > a { + color: rgba(255,255,255,0.7); + } + .main-menu ul { + display: none; + width: 100%; + min-width: 180px; + float: none; + position: absolute; + background-color: #252626; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05); + box-shadow: 0 1px 2px rgba(0,0,0,0.05); + text-align: left; + font-size: 14px; + opacity: 0; + list-style-type: none; + -webkit-transition: all 0.3s ease-in-out 0s; + transition: all 0.3s ease-in-out 0s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + z-index: 998; + } + .main-menu ul li { + position: relative; + } + .main-menu ul a { + display: block; + line-height: 1.5; + padding: 10px; + text-decoration: none; + color: #fff; + border-top: 1px solid rgba(255,255,255,.05); + } + .main-menu ul a:hover, + .main-menu ul .current-menu-item a, + .main-menu ul .current_page_item a { + background-color: rgba(255,255,255,0.05); + } + .main-menu ul li.menu-item-has-children > a:before { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + display: inline-block; + content: "\70"; + font-size: 8px; + position: absolute; + right: 10px; + top: 18px; + } + .main-menu > li:hover > ul, + .main-menu > li.focus > ul { + display: block; + opacity: 1; + left: 0; + top: 46px; + } + .main-menu ul li:hover > ul, + .main-menu ul li.focus > ul { + display: block; + opacity: 1; + left: 100%; + top: 0; + } + /* Post Navigation */ + .post-navigation, + .pagination { + margin: 0; + } + /* Footer Navigation */ + .footer-navigation { + text-align: right; + } + .site-info { + text-align: left; + } + /* Content */ + h1 { + font-size: 36px; + font-size: 2.250rem; + } + .entry-thumbnail { + max-width: 220px; + } + /* Featured Image */ + .featured-image { + margin: 0 auto 30px; + } + .featured-image .cover-bg { + min-height: 360px; + } + .featured-image:before { + content: ""; + display: block; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 80%; + background: transparent linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%) repeat 0 0; + z-index: 3; + } + .featured-image .overlay { + position: absolute; + width: 100%; + left: 0; + bottom: 30px; + padding: 0 30px; + margin: 0; + z-index: 5; + } + .featured-image .overlay h1 { + color: #fff; + font-weight: 700; + } + .featured-image .entry-meta a { + color: #fff; + } + .featured-image .category a { + margin-bottom: 10px; + } + .single .featured-image .entry-meta { + color: #fff; + margin-top: 20px; + } + /* Comments */ + .comment-list .children { + margin-left: 30px; + } + /* Blog Layout */ + .list-post h2.entry-title { + font-size: 1.5em; + } + .layout1 .list-post .entry-thumbnail { + max-width: 150px; + } + .layout2 .list-post .entry-thumbnail { + max-width: 220px; + } +} + +@media screen and (min-width: 1024px) { + /* Layout */ + .container { + max-width: 980px; + padding: 0; + } + .content-area { + float: left; + width: 65.3062%; + margin: 0; + } + .sidebar { + float: right; + width: 30.6123%; + } + /* Featured Image */ + .featured-image .cover-bg { + min-height: 400px; + } + /* Boxed Style */ + .site-boxed #page { + margin: 30px auto; + } + .site-boxed .site-content { + margin: 40px 0; + } + .site-boxed .featured-posts, + .site-boxed .featured-image { + margin-bottom: 40px; + } +} + +@media screen and (min-width: 1440px) { + /* Layout */ + .container { + max-width: 1140px; + } + .content-area { + width: 64.9123%; /* 740px */ + } + .sidebar { + width: 29.8246%; /* 340px */ + } + /* Content */ + .page .hentry, + .single .hentry { + margin-bottom: 30px; + } + .entry-thumbnail { + max-width: 260px; + margin-right: 30px; + } + /* Featured Image */ + .featured-image .cover-bg { + min-height: 480px; + } + /* Author Bio */ + .author-info { + margin: 30px 0; + } + /* Comments */ + .comments-area { + padding: 30px 0; + } + /* Widgets */ + .widget { + padding: 20px; + } + /* Blog Layout */ + .layout1 .list-post .entry-thumbnail { + max-width: 200px; + } + .layout2 .list-post .entry-thumbnail { + max-width: 260px; + } + .large-post { + margin-bottom: 30px; + padding-bottom: 30px; + } + /* Boxed Style */ + .site-boxed #page { + max-width: 1200px; + } + .site-boxed .container { + max-width: 1080px; + } + .site-boxed .content-area { + width: 64.8149%; + } + .site-boxed .sidebar { + width: 29.6297%; + } + /* Widget Styles */ + .widget-minimal .widget { + margin-bottom: 30px; + } +} diff --git a/blog.taotronics.com/css/wp-ulike.min.css@ver=4.6.2.css b/blog.taotronics.com/css/wp-ulike.min.css@ver=4.6.2.css new file mode 100644 index 0000000..5f121d0 --- /dev/null +++ b/blog.taotronics.com/css/wp-ulike.min.css@ver=4.6.2.css @@ -0,0 +1,6 @@ +/*! +=============================================================== + * WP ULike + * @author Alimir [https://wordpress.org/plugins/wp-ulike/] +=============================================================== +*/.wpulike{display:block;position:relative;line-height:normal;margin:0;padding:10px 0}.wpulike .wp_ulike_general_class{display:inline-flex;align-items:center}.wpulike button.wp_ulike_btn{margin:0;position:relative;display:inline-block;vertical-align:middle;border-radius:.25em;box-shadow:none;padding:1em;border:none;text-align:center;transition:none;cursor:pointer}.wpulike button.wp_ulike_btn:active,.wpulike button.wp_ulike_btn:focus,.wpulike button.wp_ulike_btn:hover{outline:0}.wpulike button.wp_ulike_btn::-moz-focus-inner{border:0}.wpulike button.wp_ulike_btn:disabled:active,.wpulike button.wp_ulike_btn:disabled:focus,.wpulike button.wp_ulike_btn:disabled:hover,.wpulike button.wp_ulike_btn[disabled=disabled]:active,.wpulike button.wp_ulike_btn[disabled=disabled]:focus,.wpulike button.wp_ulike_btn[disabled=disabled]:hover{outline:0;background-color:initial}.wpulike .wp_ulike_put_text{font-size:14px;font-weight:600;line-height:28px;padding:0 10px;min-width:50px}.wpulike .wp_ulike_is_loading .wp_ulike_btn{background-image:url(../img/svg/loader.svg);background-repeat:no-repeat;background-position:center center}.wpulike .wp_ulike_is_loading .wp_ulike_btn span{visibility:hidden}.wpulike .wp_ulike_is_loading .wp_ulike_btn.wp_ulike_put_image::after{content:none}.wpulike.wpulike-hide-counter .count-box{display:none}.wpulike .count-box:empty{display:none}#buddypress #activity-stream .activity-comments .wpulike,#buddypress #activity-stream .activity-inner .wpulike,#buddypress #activity-stream .activity-meta .wpulike{display:inline-block;vertical-align:super}#buddypress #activity-stream .wp_ulike_likers_wrapper .wp-ulike-liker,#buddypress #activity-stream .wp_ulike_likers_wrapper li{border:none;padding:0}#buddypress #activity-stream .wp_ulike_likers_wrapper .wp-ulike-liker a,#buddypress #activity-stream .wp_ulike_likers_wrapper .wp-ulike-liker img,#buddypress #activity-stream .wp_ulike_likers_wrapper li a,#buddypress #activity-stream .wp_ulike_likers_wrapper li img{float:none;padding:0;margin:0}.wp_ulike_click_is_disabled{pointer-events:none;cursor:default}.wp_ulike_hide_me{visibility:hidden}.wpulike-default button.wp_ulike_btn{color:#616161;background-color:#e0e0e0;min-height:30px;min-width:50px}.wpulike-default button.wp_ulike_btn:focus,.wpulike-default button.wp_ulike_btn:hover{color:#616161;background-color:#e0e0e0;text-decoration:none}.wpulike-default button.wp_ulike_btn:disabled:active,.wpulike-default button.wp_ulike_btn:disabled:focus,.wpulike-default button.wp_ulike_btn:disabled:hover,.wpulike-default button.wp_ulike_btn[disabled=disabled]:active,.wpulike-default button.wp_ulike_btn[disabled=disabled]:focus,.wpulike-default button.wp_ulike_btn[disabled=disabled]:hover{background-color:#e0e0e0}.wpulike-default .wp_ulike_is_liked .wp_ulike_btn{color:#757575}.wpulike-default .wp_ulike_put_image:after{content:'';display:block;background:url(../img/svg/like.svg) no-repeat;background-size:contain;width:16px;height:16px;position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}.wpulike-default .wp_ulike_put_image.wp_ulike_btn_is_active:after{filter:invert(44%) sepia(40%) saturate(3852%) hue-rotate(329deg) brightness(100%) contrast(111%)}.wpulike-default .count-box{position:relative;border-radius:.25em;font-size:12px;text-decoration:none;background-color:#fff;margin-left:8px;line-height:28px;display:inline-block;padding:0 10px;box-shadow:0 0 0 1px #bdbdbd inset;color:#616161;vertical-align:middle;text-align:center}.wpulike-default .count-box:before{content:'';position:absolute;border:1px solid transparent;background:#fff;border-bottom-color:#bdbdbd;left:-5px;top:50%;border-left-color:#bdbdbd;transform:rotate(45deg) translatey(-50%);width:5px;height:5px;margin:0}#buddypress #activity-stream .activity-comments .wpulike-default button.wp_ulike_btn,#buddypress #activity-stream .activity-inner .wpulike-default button.wp_ulike_btn,#buddypress #activity-stream .activity-meta .wpulike-default button.wp_ulike_btn{border-radius:0;background-color:#fff;box-shadow:0 0 0 1px #bdbdbd inset;font-size:initial;padding:1em}#buddypress #activity-stream .activity-comments .wpulike-default .wp_ulike_is_loading button.wp_ulike_btn,#buddypress #activity-stream .activity-inner .wpulike-default .wp_ulike_is_loading button.wp_ulike_btn,#buddypress #activity-stream .activity-meta .wpulike-default .wp_ulike_is_loading button.wp_ulike_btn{background-image:url(../img/svg/loader.svg);background-repeat:no-repeat;background-position:center center}.wpulike-heart .wp_ulike_general_class{box-shadow:0 0 0 1px #bdbdbd inset;border-radius:.25em;padding:5px}.wpulike-heart .wp_ulike_put_text{padding:0 5px;text-transform:uppercase;font-weight:600;color:#757575}.wpulike-heart button.wp_ulike_btn{background:0 0;padding:15px}.wpulike-heart button.wp_ulike_btn:focus,.wpulike-heart button.wp_ulike_btn:hover{color:#757575;background-color:transparent;text-decoration:none}.wpulike-heart .wp_ulike_put_image{background:0 0;padding:15px}.wpulike-heart .wp_ulike_put_image:disabled:active,.wpulike-heart .wp_ulike_put_image:disabled:focus,.wpulike-heart .wp_ulike_put_image:disabled:hover,.wpulike-heart .wp_ulike_put_image[disabled=disabled]:active,.wpulike-heart .wp_ulike_put_image[disabled=disabled]:focus,.wpulike-heart .wp_ulike_put_image[disabled=disabled]:hover{padding:15px}.wpulike-heart .wp_ulike_put_image:after{content:'';display:block;background:url(../img/svg/love.svg) no-repeat;background-position:center center;background-size:contain;width:20px;height:20px;position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}.wpulike-heart .wp_ulike_put_image.wp_ulike_btn_is_active:after{filter:invert(44%) sepia(40%) saturate(3852%) hue-rotate(329deg) brightness(100%) contrast(111%)}.wpulike-heart .count-box{font-size:14px;text-decoration:none;line-height:28px;display:inline-block;color:#616161;text-align:center;font-weight:600;vertical-align:middle;padding:0 5px}#buddypress #activity-stream .activity-comments .wpulike-heart .wp_ulike_btn,#buddypress #activity-stream .activity-inner .wpulike-heart .wp_ulike_btn,#buddypress #activity-stream .activity-meta .wpulike-heart .wp_ulike_btn{background-color:transparent;border:0;font-size:initial;padding:1em}#buddypress #activity-stream .activity-comments .wpulike-heart .wp_ulike_put_image,#buddypress #activity-stream .activity-inner .wpulike-heart .wp_ulike_put_image,#buddypress #activity-stream .activity-meta .wpulike-heart .wp_ulike_put_image{padding:10px 15px}#buddypress #activity-stream .activity-comments .wpulike-heart .wp_ulike_put_image:after,#buddypress #activity-stream .activity-inner .wpulike-heart .wp_ulike_put_image:after,#buddypress #activity-stream .activity-meta .wpulike-heart .wp_ulike_put_image:after{width:17px;height:17px}#buddypress #activity-stream .activity-comments .wpulike-heart .wp_ulike_general_class,#buddypress #activity-stream .activity-inner .wpulike-heart .wp_ulike_general_class,#buddypress #activity-stream .activity-meta .wpulike-heart .wp_ulike_general_class{border-radius:0;padding:.1em .3em;margin-bottom:0}#buddypress #activity-stream .activity-comments .wpulike-heart .wp_ulike_is_loading .wp_ulike_btn,#buddypress #activity-stream .activity-inner .wpulike-heart .wp_ulike_is_loading .wp_ulike_btn,#buddypress #activity-stream .activity-meta .wpulike-heart .wp_ulike_is_loading .wp_ulike_btn{background-image:url(../img/svg/loader.svg);background-repeat:no-repeat;background-position:center center}.wpulike-robeen .count-box{font-weight:600;padding:0 14px;font-size:16px}.wpulike-robeen .wp_ulike_is_loading button.wp_ulike_btn{background-image:initial;padding:0}.wpulike-robeen .wp_ulike_is_loading button.wp_ulike_btn.wp_ulike_put_image:after{content:''}.wpulike-robeen button.wp_ulike_btn{width:30px;height:30px;overflow:hidden;padding:0;border:0;background:0 0}.wpulike-robeen button.wp_ulike_btn:focus,.wpulike-robeen button.wp_ulike_btn:hover{background-color:transparent}.wpulike-robeen button.wp_ulike_btn:after{content:'';background:url(../img/icons/twitter-heart.png) no-repeat;background-position:0 0;transition:background-position 1s steps(28);transition-duration:0s;width:100px;height:100px;position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}.wpulike-robeen button.wp_ulike_btn.wp_ulike_btn_is_active{overflow:visible}.wpulike-robeen button.wp_ulike_btn.wp_ulike_btn_is_active:after{transition-duration:1s;background-position:-2800px 0}#buddypress #activity-stream .activity-comments .wpulike-robeen .wp_ulike_btn,#buddypress #activity-stream .activity-inner .wpulike-robeen .wp_ulike_btn,#buddypress #activity-stream .activity-meta .wpulike-robeen .wp_ulike_btn{background:0 0;border:0;width:30px;height:30px;border:0;padding:0}.wpulike-animated-heart button.wp_ulike_btn{position:relative;border-radius:50em;background-color:#fff;padding:0;box-shadow:0 5px 30px rgba(255,111,99,.4);border:0;width:50px;height:50px}.wpulike-animated-heart button.wp_ulike_btn:focus,.wpulike-animated-heart button.wp_ulike_btn:hover{background-color:#fff;background-image:none}.wpulike-animated-heart button.wp_ulike_btn:disabled:active,.wpulike-animated-heart button.wp_ulike_btn:disabled:focus,.wpulike-animated-heart button.wp_ulike_btn:disabled:hover,.wpulike-animated-heart button.wp_ulike_btn[disabled=disabled]:active,.wpulike-animated-heart button.wp_ulike_btn[disabled=disabled]:focus,.wpulike-animated-heart button.wp_ulike_btn[disabled=disabled]:hover{background-color:#fff}.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active{background-color:#ff6f63}.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active:disabled:active,.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active:disabled:focus,.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active:disabled:hover,.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active[disabled=disabled]:active,.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active[disabled=disabled]:focus,.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active[disabled=disabled]:hover{background-color:#ff6f63}.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active .wpulike-svg-heart{fill:#ffffff}.wpulike-animated-heart button.wp_ulike_btn.wp_ulike_btn_is_active .wpulike-svg-heart-pop{animation-direction:normal}.wpulike-animated-heart button.wp_ulike_btn:active{box-shadow:0 0 4px 0 rgba(0,0,0,.25)}.wpulike-animated-heart .wp_ulike_is_loading button.wp_ulike_btn{background-image:initial;padding:0}.wpulike-animated-heart .wp_ulike_is_loading button.wp_ulike_btn.wp_ulike_put_image:after{content:''}.wpulike-animated-heart .wpulike-svg-heart{width:20px;fill:#ff6f63;transition:fill .5s,transform .5s;pointer-events:none;position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}.wpulike-animated-heart .wpulike-svg-heart-pop{position:absolute;width:30%;fill:#ff6f63;opacity:0;left:0;animation:popHearts 1s ease forwards reverse}.wpulike-animated-heart .wpulike-svg-heart-pop.one{left:1%;transform:rotate(-10deg);animation-delay:.45s}.wpulike-animated-heart .wpulike-svg-heart-pop.two{left:15%;transform:rotate(8deg);animation-delay:.25s}.wpulike-animated-heart .wpulike-svg-heart-pop.three{left:30%;transform:rotate(-5deg);animation-delay:0s}.wpulike-animated-heart .wpulike-svg-heart-pop.four{left:50%;transform:rotate(-8deg);animation-delay:.3s}.wpulike-animated-heart .wpulike-svg-heart-pop.five{left:60%;transform:rotate(-10deg);animation-delay:.9s}.wpulike-animated-heart .wpulike-svg-heart-pop.six{left:70%;transform:rotate(-8deg);animation-delay:.2s}.wpulike-animated-heart .wpulike-svg-heart-pop.seven{left:85%;transform:rotate(6deg);animation-delay:.35s}.wpulike-animated-heart .wpulike-svg-heart-pop.eight{left:90%;transform:rotate(-4deg);animation-delay:.5s}.wpulike-animated-heart .wpulike-svg-heart-pop.nine{left:95%;transform:rotate(8deg);animation-delay:.2s}.wpulike-animated-heart .count-box{margin:0 15px;color:#ff6f63;display:inline-block;vertical-align:middle}#buddypress #activity-stream .activity-comments .wpulike-animated-heart .wp_ulike_btn,#buddypress #activity-stream .activity-inner .wpulike-animated-heart .wp_ulike_btn,#buddypress #activity-stream .activity-meta .wpulike-animated-heart .wp_ulike_btn{background:inherit;border:0;width:40px;height:40px;border-radius:50em}#buddypress #activity-stream .activity-comments .wpulike-animated-heart .wp_ulike_btn.wp_ulike_btn_is_active,#buddypress #activity-stream .activity-inner .wpulike-animated-heart .wp_ulike_btn.wp_ulike_btn_is_active,#buddypress #activity-stream .activity-meta .wpulike-animated-heart .wp_ulike_btn.wp_ulike_btn_is_active{background-color:#ff6f63}@keyframes popHearts{0%{left:calc(50% - 7px);top:10px}20%{opacity:1}80%{top:-20px}100%{opacity:0}}.wp_ulike_likers_wrapper{margin:10px 0;flex:0 0 100%}.wp_ulike_likers_wrapper:empty{display:none}.wp_ulike_likers_wrapper .tiles,.wp_ulike_likers_wrapper .wp-ulike-likers-list{display:flex;align-items:center;flex-wrap:wrap;margin:0;padding:0}.wp_ulike_likers_wrapper .tiles .wp-ulike-liker,.wp_ulike_likers_wrapper .tiles li,.wp_ulike_likers_wrapper .wp-ulike-likers-list .wp-ulike-liker,.wp_ulike_likers_wrapper .wp-ulike-likers-list li{padding:3px;margin:0;list-style:none;display:block}.wp_ulike_likers_wrapper .tiles .wp-ulike-liker a>img,.wp_ulike_likers_wrapper .tiles li a>img,.wp_ulike_likers_wrapper .wp-ulike-likers-list .wp-ulike-liker a>img,.wp_ulike_likers_wrapper .wp-ulike-likers-list li a>img{border-radius:5px;display:block;border:0;box-shadow:none;position:relative}.ulf-tooltip .wp_ulike_likers_wrapper{margin:0}.most_liked_users{list-style-type:none!important;position:relative!important;margin:10px 0!important;padding:0!important}.most_liked_users li{display:inline-table!important;cursor:pointer!important;margin:0 2px!important}.most_liked_users li img{display:block!important;float:none!important}.most_liked_users li.inactive{visibility:hidden!important;opacity:0!important}.commentlist .tiles .avatar,.commentlist .wp-ulike-liker .avatar{left:0!important}.wp_ulike_thumbnail{vertical-align:middle;margin:0 10px 0 0}.most_liked_comment .avatar{vertical-align:middle;margin:0 10px 0 0}.wp_ulike_style_simple .wp_counter_span:before{content:"("}.wp_ulike_style_simple .wp_counter_span:after{content:")"}.wp_ulike_style_love .wp_counter_span{float:right;display:inline-block;background:#f1f1f1 url(../img/icons/heart.png) 5px center no-repeat;color:#333;font-size:9px;line-height:17px;font-weight:400;margin:2px 0 0 2px;vertical-align:middle;border-radius:10px;padding:0 5px 0 23px;z-index:26}.wpulike-notification{position:fixed;z-index:999999;pointer-events:none;right:20px;bottom:20px}.wpulike-notification *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.wpulike-notification .wpulike-message{position:relative;pointer-events:auto;word-wrap:break-word;overflow:hidden;margin:0 0 6px;padding:14px 15px 14px 65px;width:290px;border-radius:3px;background-color:#007bc3;color:#fff;animation:wpUlikeNotifitcationsAnimation .2s backwards;box-shadow:0 3px 5px rgba(0,0,0,.08);font-size:.9rem;font-weight:500;line-height:normal}.wpulike-notification .wpulike-message:hover{opacity:.9;cursor:pointer}.wpulike-notification .wpulike-message:before{content:"";background-position:center center;background-repeat:no-repeat;background-image:url(../img/svg/info.svg);background-size:25px;position:absolute;left:0;width:50px;top:0;height:100%;background-color:rgba(0,0,0,.06)}.wpulike-notification .wpulike-message.wpulike-success{background-color:#20a779}.wpulike-notification .wpulike-message.wpulike-success:before{background-image:url(../img/svg/success.svg)}.wpulike-notification .wpulike-message.wpulike-error{background-color:#ec4d2c}.wpulike-notification .wpulike-message.wpulike-error:before{background-image:url(../img/svg/error.svg)}.wpulike-notification .wpulike-message.wpulike-warning{background-color:#f0a82f}.wpulike-notification .wpulike-message.wpulike-warning:before{background-image:url(../img/svg/warning.svg)}@keyframes wpUlikeNotifitcationsAnimation{from{opacity:0;transform:translateY(100%)}to{opacity:.8;transform:translateY(0)}}@media screen and (max-width:768px){.wpulike-notification .wpulike-message{padding:11px 11px 11px 55px;font-size:13px}.wpulike-notification .wpulike-message:before{background-size:25px;width:45px}}@media screen and (max-width:320px){.wpulike-notification{left:10px;right:10px}.wpulike-notification .wpulike-message{padding:9px 9px 9px 45px;font-size:12px;width:100%}.wpulike-notification .wpulike-message:before{background-size:15px;width:35px}}.ulf-tooltip{max-width:360px;position:absolute;z-index:999999;background:#444;border-radius:5px;padding:10px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;top:0;left:0}.ulf-centered{position:fixed;top:50%;left:50%}.ulf-content{margin:5px 20px 5px 10px;font-size:1em;line-height:1.6em;text-align:center;color:#fff;font-weight:800}.ulf-arrow{border:15px solid rgba(232,232,232,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;margin-left:-15px}.ulf-arrow-top{border-bottom-color:#444;bottom:100%;left:50%;top:auto;right:auto}.ulf-arrow-bottom{border-top-color:#444;top:100%;left:50%;bottom:auto;right:auto}.ulf-arrow-left{border-right-color:#444;border-width:15px;left:-14px;right:auto;bottom:auto;top:50%;margin-top:-15px}.ulf-arrow-right{border-left-color:#444;right:-29px;left:auto;bottom:auto;border-width:15px;top:50%;margin-top:-15px}.ulf-arrow-hug-left{left:30px;right:auto}.ulf-arrow-hug-right{right:30px;left:auto}.ulf-arrow-hug-left.ulf-arrow-super-hug{left:15px;right:auto}.ulf-arrow-hug-right.ulf-arrow-super-hug{right:1px;left:auto}.ulf-arrow-top.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-arrow-top.ulf-arrow-hug-right.ulf-arrow-super-hug{top:-30px}.ulf-arrow-bottom.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-arrow-bottom.ulf-arrow-hug-right.ulf-arrow-super-hug{top:auto;bottom:-30px}.ulf-tiny .ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-tiny .ulf-arrow-hug-right.ulf-arrow-super-hug{bottom:-21px}.ulf-black-theme .ulf-arrow-top.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-black-theme .ulf-arrow-top.ulf-arrow-hug-right.ulf-arrow-super-hug{top:-27px}.ulf-black-theme .ulf-arrow-bottom.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-black-theme .ulf-arrow-bottom.ulf-arrow-hug-right.ulf-arrow-super-hug{bottom:-28px}.ulf-white-theme{background:#fff;border:2px solid #e4e4e4}.ulf-white-theme .ulf-content{color:#333}.ulf-white-theme .ulf-arrow-top{border-bottom-color:#e4e4e4}.ulf-white-theme .ulf-arrow-bottom{border-top-color:#e4e4e4}.ulf-white-theme .ulf-arrow-left{border-right-color:#e4e4e4}.ulf-white-theme .ulf-arrow-right{border-left-color:#e4e4e4}.ulf-large{font-size:18px}.ulf-medium{font-size:14px}.ulf-small{font-size:12px;padding:5px}.ulf-small .ulf-content{margin:2px 8px;line-height:1.9em}.ulf-tiny{padding:2px 5px;font-size:10px}.ulf-tiny .ulf-content{margin:3px}.ulf-tiny .ulf-button{margin:0 3px}.ulf-tiny .ulf-arrow{border-width:10px;margin-left:-10px}.ulf-tiny .ulf-arrow-left{left:-10px;margin-top:-10px}.ulf-tiny .ulf-arrow-right{right:-20px;margin-top:-10px}.ulf-tiny .ulf-arrow-bottom.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-tiny .ulf-arrow-top.ulf-arrow-hug-left.ulf-arrow-super-hug{left:11px}.ulf-tiny .ulf-arrow-bottom.ulf-arrow-hug-right.ulf-arrow-super-hug,.ulf-tiny .ulf-arrow-top.ulf-arrow-hug-right.ulf-arrow-super-hug{right:1px}.ulf-tiny.ulf-white-theme .ulf-arrow-top.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-tiny.ulf-white-theme .ulf-arrow-top.ulf-arrow-hug-right.ulf-arrow-super-hug{top:-18px}.ulf-tiny.ulf-white-theme .ulf-arrow-bottom.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-tiny.ulf-white-theme .ulf-arrow-bottom.ulf-arrow-hug-right.ulf-arrow-super-hug{bottom:-21px}.ulf-tiny.ulf-black-theme .ulf-arrow-bottom.ulf-arrow-hug-left.ulf-arrow-super-hug,.ulf-tiny.ulf-black-theme .ulf-arrow-bottom.ulf-arrow-hug-right.ulf-arrow-super-hug{bottom:-18px}/*!>>>>>>>>>>>>>>>>>>>>>>> #RTL <<<<<<<<<<<<<<<<<<<<<<<<<<< */.rtl .wpulike-default .count-box{margin-right:8px;margin-left:inherit}.rtl .wpulike-default .count-box:before{right:-1px;left:auto;border-color:#bdbdbd #bdbdbd transparent transparent}.rtl .commentlist .tiles .avatar{left:inherit!important;right:0!important}.rtl .wp_ulike_thumbnail{margin:0 0 0 10px}.rtl .most_liked_comment .avatar{margin:0 0 0 10px}.rtl .wp_ulike_style_love .wp_counter_span{float:left;background:#f1f1f1 url(../img/icons/heart.png) no-repeat scroll 85% center;margin:2px 2px 0 0;padding:0 23px 0 5px}.rtl .wpulike-notification{left:20px;right:inherit}.rtl .wpulike-notification .wpulike-message{padding:14px 65px 14px 15px}.rtl .wpulike-notification .wpulike-message:before{left:auto;right:0}@media screen and (max-width:768px){.rtl .wpulike-notification .wpulike-message{padding:11px 55px 11px 11px}}@media screen and (max-width:320px){.rtl .wpulike-notification{left:10px;right:10px}.rtl .wpulike-notification .wpulike-message{padding:9px 45px 9px 9px}} \ No newline at end of file diff --git a/blog.taotronics.com/details.html b/blog.taotronics.com/details.html new file mode 100644 index 0000000..04f196e --- /dev/null +++ b/blog.taotronics.com/details.html @@ -0,0 +1,756 @@ + + + + + + + {{.Title}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + +
+
+ + +
+
+ + + +
+ +

{{.Article.Summary}}

+ {{range .Article.Topics}} +

{{.Topic}}

+ {{$tlen := len .Pictures}} + {{if ne $tlen 0}} + {{range .Pictures}} + + {{end}} + {{end}} +

{{.Content}}

+ {{end}} +
+
+ {{ if .Prev }} + + {{ end }} + {{ if .Next }} + + {{ end }} +
+ + +
+
+ + + + +
+
+ +
+ + + + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/blog.taotronics.com/index.html b/blog.taotronics.com/index.html new file mode 100644 index 0000000..b1dc21c --- /dev/null +++ b/blog.taotronics.com/index.html @@ -0,0 +1,789 @@ + + + + + + + {{.Title}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + +
+
+ + +
+
+ + +
+ + {{ range .Articles }} + + {{end}} + + + + +
+ + + + +
+
+ + + + +
+
+ +
+ + + + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/blog.taotronics.com/js/frontend-gtag.min.js@ver=7.10.0 b/blog.taotronics.com/js/frontend-gtag.min.js@ver=7.10.0 new file mode 100644 index 0000000..87daf38 --- /dev/null +++ b/blog.taotronics.com/js/frontend-gtag.min.js@ver=7.10.0 @@ -0,0 +1,46 @@ +;var ExactMetrics=function(){var e=[],i='',r=!1;this.setLastClicked=function(t,n,i){t=typeof t!=='undefined'?t:[];n=typeof n!=='undefined'?n:[];i=typeof i!=='undefined'?i:!1;e.valuesArray=t;e.fieldsArray=n};this.getLastClicked=function(){return e};this.setInternalAsOutboundCategory=function(e){i=e};this.getInternalAsOutboundCategory=function(){return i};this.sendEvent=function(e,t,n){x(e,t,n,[])};function d(){if(window.exactmetrics_debug_mode){return!0} +else{return!1}};function c(e,t,n){var l={};for(var i in e){if(!e.hasOwnProperty(i)){continue};if(t&&t.indexOf(i)===-1){continue};if(n&&n.indexOf(i)>-1){continue};l[i]=e[i]};return l};function b(e,t,n){if(!exactmetrics_frontend.v4_id||e!=='event'){return};var i=n.event_category||'',a=['event_name','event_category','event_label','value',],l=c(n,null,a);l.action=t;l.send_to=exactmetrics_frontend.v4_id;let hitType=i.replace('-','_');if(i.indexOf('outbound-link')!==-1){hitType='click'} +else if(i==='download'){hitType='file_download'};__gtagTracker(e,hitType,l)};function y(e,t,n){if(!exactmetrics_frontend.ua){return};var l=['event_category','event_label','value',],i=c(n,l);i.send_to=exactmetrics_frontend.ua;__gtagTracker(e,t,i)};function l(t,i,l,a){t=typeof t!=='undefined'?t:'event';i=typeof i!=='undefined'?i:'';a=typeof a!=='undefined'?a:[];l=typeof l!=='undefined'?l:{};y(t,i,l);b(t,i,l);e.valuesArray=a;e.fieldsArray=l;e.fieldsArray.event_action=i;e.tracked=!0;n('Tracked: '+a.type);n(e)};function x(t,i,l,a){t=typeof t!=='undefined'?t:'event';i=typeof i!=='undefined'?i:'';a=typeof a!=='undefined'?a:[];l=typeof l!=='undefined'?l:{};__gtagTracker(t,i,l);e.valuesArray=a;e.fieldsArray=l;e.fieldsArray.event_action=i;e.tracked=!0;n('Tracked: '+a.type);n(e)};function t(t){t=typeof t!=='undefined'?t:[];e.valuesArray=t;e.fieldsArray=[];e.tracked=!1;n('Not Tracked: '+t.exit);n(e)};function n(e){if(d()){console.dir(e)}};function o(e){return e.replace(/^\s+|\s+$/gm,'')};function u(){var n=0,e=document.domain,i=e.split('.'),t='_gd'+(new Date()).getTime();while(n<(i.length-1)&&document.cookie.indexOf(t+'='+t)==-1){e=i.slice(-1-(++n)).join('.');document.cookie=t+'='+t+';domain='+e+';'};document.cookie=t+'=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain='+e+';';return e};function h(e){e=e.toString();e=e.substring(0,(e.indexOf('#')==-1)?e.length:e.indexOf('#'));e=e.substring(0,(e.indexOf('?')==-1)?e.length:e.indexOf('?'));e=e.substring(e.lastIndexOf('/')+1,e.length);if(e.length>0&&e.indexOf('.')!==-1){e=e.substring(e.lastIndexOf('.')+1);return e} +else{return''}};function w(e){return e.which==1||e.which==2||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey};function g(){var e=[];if(typeof exactmetrics_frontend.download_extensions=='string'){e=exactmetrics_frontend.download_extensions.split(',')};return e};function m(){var e=[];if(typeof exactmetrics_frontend.inbound_paths=='string'){e=JSON.parse(exactmetrics_frontend.inbound_paths)};return e};function T(e){if(e.which==1){return'event.which=1'} +else if(e.which==2){return'event.which=2'} +else if(e.metaKey){return'metaKey'} +else if(e.ctrlKey){return'ctrlKey'} +else if(e.shiftKey){return'shiftKey'} +else if(e.altKey){return'altKey'} +else{return''}};function A(e){var f=g(),l=m(),t='unknown',d=e.href,v=h(e.href),c=u(),r=e.hostname,a=e.protocol,k=e.pathname;d=d.toString();var s,p,b=e.getAttribute('data-vars-ga-category');if(b){return b};if(d.match(/^javascript\:/i)){t='internal'} +else if(a&&a.length>0&&(o(a)=='tel'||o(a)=='tel:')){t='tel'} +else if(a&&a.length>0&&(o(a)=='mailto'||o(a)=='mailto:')){t='mailto'} +else if(r&&c&&r.length>0&&c.length>0&&!r.endsWith('.'+c)&&r!==c){t='external'} +else if(k&&JSON.stringify(l)!='{}'&&k.length>0){var y=l.length;for(var n=0;n0&&l[n].label.length>0&&k.startsWith(l[n].path)){t='internal-as-outbound';i='outbound-link-'+l[n].label;break}}} +else if(r&&window.exactmetrics_experimental_mode&&r.length>0&&document.domain.length>0&&r!==document.domain){t='cross-hostname'};if(v&&(t==='unknown'||'external'===t)&&f.length>0&&v.length>0){for(s=0,p=f.length;s0&&(d.endsWith(f[s])||f[s]==v)){t='download';break}}};if(t==='unknown'){t='internal'};return t};function O(e,t){var n=(e.target&&!e.target.match(/^_(self|parent|top)$/i))?e.target:!1;if(t.ctrlKey||t.shiftKey||t.metaKey||t.which==2){n='_blank'};return n};function v(e){if(e.getAttribute('data-vars-ga-label')&&e.getAttribute('data-vars-ga-label').replace(/\n/ig,'')){return e.getAttribute('data-vars-ga-label').replace(/\n/ig,'')} +else if(e.title&&e.title.replace(/\n/ig,'')){return e.title.replace(/\n/ig,'')} +else if(e.innerText&&e.innerText.replace(/\n/ig,'')){return e.innerText.replace(/\n/ig,'')} +else if(e.getAttribute('aria-label')&&e.getAttribute('aria-label').replace(/\n/ig,'')){return e.getAttribute('aria-label').replace(/\n/ig,'')} +else if(e.alt&&e.alt.replace(/\n/ig,'')){return e.alt.replace(/\n/ig,'')} +else if(e.textContent&&e.textContent.replace(/\n/ig,'')){return e.textContent.replace(/\n/ig,'')} +else{return undefined}};function K(e){var i=e.children,l=0,a,n;for(var t=0;t>>0;if(i===0){return-1};t=i-1;if(arguments.length>1){t=Number(arguments[1]);if(t!=t){t=0} +else if(t!=0&&t!=(1/0)&&t!=-(1/0)){t=(t>0||-1)*Math.floor(Math.abs(t))}};for(n=t>=0?Math.min(t,i-1):i-Math.abs(t);n>=0;n--){if(n in l&&l[n]===e){return n}};return-1}}},ExactMetricsObject=new ExactMetrics(); \ No newline at end of file diff --git a/blog.taotronics.com/js/jquery-migrate.min.js@ver=3.3.2 b/blog.taotronics.com/js/jquery-migrate.min.js@ver=3.3.2 new file mode 100644 index 0000000..969c84a --- /dev/null +++ b/blog.taotronics.com/js/jquery-migrate.min.js@ver=3.3.2 @@ -0,0 +1,2 @@ +/*! jQuery Migrate v3.3.2 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],i=1;i<=3;i++){if(+o[i]<+n[i])return 1;if(+n[i]<+o[i])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.3.2",n.console&&n.console.log&&(s&&e("3.0.0")||n.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+", version "+s.migrateVersion));var r={};function u(e){var t=n.console;s.migrateDeduplicateWarnings&&r[e]||(r[e]=!0,s.migrateWarnings.push(e),t&&t.warn&&!s.migrateMute&&(t.warn("JQMIGRATE: "+e),s.migrateTrace&&t.trace&&t.trace()))}function t(e,t,r,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return u(n),r},set:function(e){u(n),r=e}})}function o(e,t,r,n){e[t]=function(){return u(n),r.apply(this,arguments)}}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){r={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&u("jQuery is not compatible with Quirks Mode");var i,a,c,d={},l=s.fn.init,p=s.find,f=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,y=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,m=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;for(i in s.fn.init=function(e){var t=Array.prototype.slice.call(arguments);return"string"==typeof e&&"#"===e&&(u("jQuery( '#' ) is not a valid selector"),t[0]=[]),l.apply(this,t)},s.fn.init.prototype=s.fn,s.find=function(t){var r=Array.prototype.slice.call(arguments);if("string"==typeof t&&f.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(y,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),u("Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){u("Attribute selector with '#' was not fixed: "+r[0])}}return p.apply(this,r)},p)Object.prototype.hasOwnProperty.call(p,i)&&(s.find[i]=p[i]);o(s.fn,"size",function(){return this.length},"jQuery.fn.size() is deprecated and removed; use the .length property"),o(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"jQuery.parseJSON is deprecated; use JSON.parse"),o(s,"holdReady",s.holdReady,"jQuery.holdReady is deprecated"),o(s,"unique",s.uniqueSort,"jQuery.unique is deprecated; use jQuery.uniqueSort"),t(s.expr,"filters",s.expr.pseudos,"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),t(s.expr,":",s.expr.pseudos,"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&o(s,"trim",function(e){return null==e?"":(e+"").replace(m,"")},"jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&(o(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"jQuery.nodeName is deprecated"),o(s,"isArray",Array.isArray,"jQuery.isArray is deprecated; use Array.isArray")),e("3.3.0")&&(o(s,"isNumeric",function(e){var t=typeof e;return("number"==t||"string"==t)&&!isNaN(e-parseFloat(e))},"jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){d["[object "+t+"]"]=t.toLowerCase()}),o(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[Object.prototype.toString.call(e)]||"object":typeof e},"jQuery.type is deprecated"),o(s,"isFunction",function(e){return"function"==typeof e},"jQuery.isFunction() is deprecated"),o(s,"isWindow",function(e){return null!=e&&e===e.window},"jQuery.isWindow() is deprecated")),s.ajax&&(a=s.ajax,c=/(=)\?(?=&|$)|\?\?/,s.ajax=function(){var e=a.apply(this,arguments);return e.promise&&(o(e,"success",e.done,"jQXHR.success is deprecated and removed"),o(e,"error",e.fail,"jQXHR.error is deprecated and removed"),o(e,"complete",e.always,"jQXHR.complete is deprecated and removed")),e},e("4.0.0")||s.ajaxPrefilter("+json",function(e){!1!==e.jsonp&&(c.test(e.url)||"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&c.test(e.data))&&u("JSON-to-JSONP auto-promotion is deprecated")}));var g=s.fn.removeAttr,h=s.fn.toggleClass,v=/\S+/g;function j(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}s.fn.removeAttr=function(e){var r=this;return s.each(e.match(v),function(e,t){s.expr.match.bool.test(t)&&(u("jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),g.apply(this,arguments)};var Q,b=!(s.fn.toggleClass=function(t){return void 0!==t&&"boolean"!=typeof t?h.apply(this,arguments):(u("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==t&&s.data(this,"__className__")||"")}))}),w=/^[a-z]/,x=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&&(s.cssHooks[t].get=function(){var e;return b=!0,e=r.apply(this,arguments),b=!1,e})}),s.swap=function(e,t,r,n){var o,i,a={};for(i in b||u("jQuery.swap() is undocumented and deprecated"),t)a[i]=e.style[i],e.style[i]=t[i];for(i in o=r.apply(e,n||[]),t)e.style[i]=a[i];return o},e("3.4.0")&&"undefined"!=typeof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return u("JQMIGRATE: jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),s.cssNumber||(s.cssNumber={}),Q=s.fn.css,s.fn.css=function(e,t){var r,n,o=this;return e&&"object"==typeof e&&!Array.isArray(e)?(s.each(e,function(e,t){s.fn.css.call(o,e,t)}),this):("number"==typeof t&&(r=j(e),n=r,w.test(n)&&x.test(n[0].toUpperCase()+n.slice(1))||s.cssNumber[r]||u('Number-typed values are deprecated for jQuery.fn.css( "'+e+'", value )')),Q.apply(this,arguments))};var A,k,S,M,N=s.data;s.data=function(e,t,r){var n,o,i;if(t&&"object"==typeof t&&2===arguments.length){for(i in n=s.hasData(e)&&N.call(this,e),o={},t)i!==j(i)?(u("jQuery.data() always sets/gets camelCased names: "+i),n[i]=t[i]):o[i]=t[i];return N.call(this,e,o),t}return t&&"string"==typeof t&&t!==j(t)&&(n=s.hasData(e)&&N.call(this,e))&&t in n?(u("jQuery.data() always sets/gets camelCased names: "+t),2");t!==e&&T(e)!==T(t)&&u("HTML tags must be properly nested and closed: "+e)}var O=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,q=s.htmlPrefilter;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.htmlPrefilter=function(e){return P(e),e.replace(O,"<$1>")}},s.htmlPrefilter=function(e){return P(e),q(e)};var D,_=s.fn.offset;s.fn.offset=function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?_.apply(this,arguments):(u("jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},s.ajax&&(D=s.param,s.param=function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)});var E,F,J=s.fn.andSelf||s.fn.addBack;return s.fn.andSelf=function(){return u("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),J.apply(this,arguments)},s.Deferred&&(E=s.Deferred,F=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],s.Deferred=function(e){var i=E(),a=i.promise();return i.pipe=a.pipe=function(){var o=arguments;return u("deferred.pipe() is deprecated"),s.Deferred(function(n){s.each(F,function(e,t){var r="function"==typeof o[e]&&o[e];i[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===a?n.promise():this,r?[e]:arguments)})}),o=null}).promise()},e&&e.call(i,i),i},s.Deferred.exceptionHook=E.exceptionHook),s}); diff --git a/blog.taotronics.com/js/jquery.min.js@ver=3.6.0 b/blog.taotronics.com/js/jquery.min.js@ver=3.6.0 new file mode 100644 index 0000000..85c9d01 --- /dev/null +++ b/blog.taotronics.com/js/jquery.min.js@ver=3.6.0 @@ -0,0 +1,3 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0', { + 'class': 'dropdown-toggle', + 'aria-expanded': false + } ); + + container.find( '.menu-item-has-children > a' ).after( dropdownToggle ); + + // Toggle buttons and submenu items with active children menu items. + container.find( '.current-menu-ancestor > button' ).addClass( 'toggled-on' ); + container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' ); + + // Add menu items with submenus to aria-haspopup="true". + container.find( '.menu-item-has-children' ).attr( 'aria-haspopup', 'true' ); + + container.find( '.dropdown-toggle' ).click( function( e ) { + var _this = $( this ), + screenReaderSpan = _this.find( '.screen-reader-text' ); + + e.preventDefault(); + _this.toggleClass( 'toggled-on' ); + _this.next( '.children, .sub-menu' ).toggleClass( 'toggled-on' ); + + // jscs:disable + _this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); + // jscs:enable + + } ); + } + initMainNavigation( $( '.mobile-navigation' ) ); + + body = $( 'body' ); + menuToggle = $( '#menu-toggle' ); + mobileSidebar = $( '#mobile-sidebar' ); + mobileNavigation = $( '#mobile-navigation' ); + + // Enable menuToggle. + ( function() { + + // Return early if menuToggle is missing. + if ( ! menuToggle.length ) { + return; + } + + // Add an initial values for the attribute. + menuToggle.add( mobileNavigation ).attr( 'aria-expanded', 'false' ); + + menuToggle.on( 'click.type', function() { + $( this ).add( mobileSidebar ).toggleClass( 'toggled-on' ); + body.toggleClass( 'mobile-menu-active' ); + + // jscs:disable + $( this ).add( mobileNavigation ).attr( 'aria-expanded', $( this ).add( mobileNavigation ).attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); + // jscs:enable + } ); + } )(); + + // Fix sub-menus for touch devices and better focus for hidden submenu items for accessibility. + ( function() { + if ( ! mobileNavigation.length || ! mobileNavigation.children().length ) { + return; + } + + // Toggle `focus` class to allow submenu access on tablets. + function toggleFocusClassTouchScreen() { + if ( window.innerWidth >= 840 ) { + $( document.body ).on( 'touchstart.xmag', function( e ) { + if ( ! $( e.target ).closest( '.mobile-navigation li' ).length ) { + $( '.mobile-navigation li' ).removeClass( 'focus' ); + } + } ); + mobileNavigation.find( '.menu-item-has-children > a' ).on( 'touchstart.xmag', function( e ) { + var el = $( this ).parent( 'li' ); + + if ( ! el.hasClass( 'focus' ) ) { + e.preventDefault(); + el.toggleClass( 'focus' ); + el.siblings( '.focus' ).removeClass( 'focus' ); + } + } ); + } else { + mobileNavigation.find( '.menu-item-has-children > a' ).unbind( 'touchstart.xmag' ); + } + } + + if ( 'ontouchstart' in window ) { + $( window ).on( 'resize.xmag', toggleFocusClassTouchScreen ); + toggleFocusClassTouchScreen(); + } + + mobileNavigation.find( 'a' ).on( 'focus.xmag blur.xmag', function() { + $( this ).parents( '.menu-item' ).toggleClass( 'focus' ); + } ); + } )(); + + // Add the default ARIA attributes for the menu toggle and the navigations. + function onResizeARIA() { + if ( window.innerWidth < 840 ) { + if ( menuToggle.hasClass( 'toggled-on' ) ) { + menuToggle.attr( 'aria-expanded', 'true' ); + } else { + menuToggle.attr( 'aria-expanded', 'false' ); + } + + if ( mobileSidebar.hasClass( 'toggled-on' ) ) { + mobileNavigation.attr( 'aria-expanded', 'true' ); + } else { + mobileNavigation.attr( 'aria-expanded', 'false' ); + } + + menuToggle.attr( 'aria-controls', 'site-navigation' ); + } else { + menuToggle.removeAttr( 'aria-expanded' ); + mobileNavigation.removeAttr( 'aria-expanded' ); + menuToggle.removeAttr( 'aria-controls' ); + } + } + +} )( jQuery ); + + +/** + * Scroll Up + */ +jQuery(document).ready(function(){ + jQuery("#scroll-up").hide(); + jQuery(function () { + jQuery(window).scroll(function () { + if (jQuery(this).scrollTop() > 800) { + jQuery('#scroll-up').fadeIn(); + } else { + jQuery('#scroll-up').fadeOut(); + } + }); + jQuery('a#scroll-up').click(function () { + jQuery('body,html').animate({ + scrollTop: 0 + }, 600); + return false; + }); + }); +}); + + +/** + * Skip link focus fix + */ +( function() { + var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1, + is_opera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1, + is_ie = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1; + + if ( ( is_webkit || is_opera || is_ie ) && document.getElementById && window.addEventListener ) { + window.addEventListener( 'hashchange', function() { + var element = document.getElementById( location.hash.substring( 1 ) ); + + if ( element ) { + if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) { + element.tabIndex = -1; + } + + element.focus(); + } + }, false ); + } +})(); diff --git a/blog.taotronics.com/policy.html b/blog.taotronics.com/policy.html new file mode 100644 index 0000000..48a729c --- /dev/null +++ b/blog.taotronics.com/policy.html @@ -0,0 +1,737 @@ + + + + + + + {{.Title}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + +
+
+ + +
+
+ + + +
+

{{ lang "policy"}}

+
+ {{.Policy}} +
+
+ + + +
+
+ + + + +
+
+ +
+ + + + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/httpsgetaer.com.aublogsnews/about.html b/httpsgetaer.com.aublogsnews/about.html new file mode 100644 index 0000000..0987ee5 --- /dev/null +++ b/httpsgetaer.com.aublogsnews/about.html @@ -0,0 +1,703 @@ + + + + + + + + + News– Aer Australia + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ +
+
+ + + +
+ +
+
+ + +
+
+ +
+
+ + + + + + + + + + + + +
+
+ +
+ +

+ ABOUT +

+
+
+ +
+
+

+ + {{.About}} + + +

+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + +
+ +
+ + + +
+ + + + + + \ No newline at end of file diff --git a/httpsgetaer.com.aublogsnews/config.json b/httpsgetaer.com.aublogsnews/config.json new file mode 100644 index 0000000..c903f29 --- /dev/null +++ b/httpsgetaer.com.aublogsnews/config.json @@ -0,0 +1,5 @@ +{ + "creator": "吴奎", + "version": "1.0", + "origin_website": "https://getaer.com.au/blogs/news" +} \ No newline at end of file diff --git a/httpsgetaer.com.aublogsnews/contact.html b/httpsgetaer.com.aublogsnews/contact.html new file mode 100644 index 0000000..43e91bf --- /dev/null +++ b/httpsgetaer.com.aublogsnews/contact.html @@ -0,0 +1,700 @@ + + + + + + + + + News– Aer Australia + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ +
+
+ + + +
+ +
+
+ + +
+
+ +
+
+ + + + + + + + + + + + +
+
+ +
+ +

+ Contact +

+
+
+ +
+
+

+ {{.Contact}} +

+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + +
+ +
+ + + +
+ + + + + + \ No newline at end of file diff --git a/httpsgetaer.com.aublogsnews/css/theme.css b/httpsgetaer.com.aublogsnews/css/theme.css new file mode 100644 index 0000000..57d5852 --- /dev/null +++ b/httpsgetaer.com.aublogsnews/css/theme.css @@ -0,0 +1,5 @@ +@charset "UTF-8";/*! + Streamline, by Archetype Themes + http://archetypethemes.co +*/:root{--colorBtnPrimary:#1c2d3b;--colorBtnPrimaryText:#ffffff;--colorBtnPrimaryBgTransition:background .15s ease;--colorBtnPrimaryActive:#3d6280;--colorCartDot:#f75d44;--colorCartDotText:#ffffff;--colorLink:#32454f;--colorTextBody:#32454f;--colorSalePrice:#000000;--colorSaleTag:#990000;--colorSaleTagText:#ffffff;--colorBody:#ffffff;--colorBodyDim:#f2f2f2;--colorInputBg:#ffffff;--colorInputText:#32454f;--colorAlt:#f4f5f5;--colorAltText:#243543;--colorNav:#ffffff;--colorNavText:#32454f;--colorAnnouncement:#030303;--colorAnnouncementText:#ffffff;--colorNewsletter:#1c2d3b;--colorNewsletterText:#fff;--colorHeroText:#ffffff;--colorSmallImageBg:#ffffff;--colorLargeImageBg:#243543;--colorImageOverlay:#000000;--colorImageOverlayOpacity:.1;--colorImageOverlayTextShadow:.2;--colorDrawers:#ffffff;--colorDrawersDim:#f2f2f2;--colorDrawerText:#000000;--colorDrawerTextDarken:#000000;--color-body-text:#32454f;--color-body:#ffffff;--color-bg:#ffffff}@keyframes placeholder-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@keyframes progressBar{0%{width:0%}95%{width:100%;opacity:1}to{width:100%;opacity:0}}@keyframes page-fade{0%{opacity:0}to{opacity:1}}@keyframes page-slide-reveal-down{0%{transform:translateY(0)}to{transform:translateY(110vh)}}@keyframes fade-in{0%{opacity:.2;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes fade-in-bg{0%{opacity:.2;transform:scale(1.06)}50%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes partial-fade-in{0%{opacity:0}to{opacity:.4}}@keyframes partial-fade-out{0%{opacity:.4}to{opacity:0}}@keyframes pulse-fade{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes rise-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes cart-rise-up{0%{transform:translateY(120%)}to{transform:translateY(0)}}@keyframes hero-animate{0%{opacity:0;transform:scale(1)}10%{opacity:1}to{opacity:1;transform:scale(1.1)}}@keyframes hero-animate-small{0%{opacity:0;transform:scale(1)}10%{opacity:1}to{opacity:1;transform:scale(1.2)}}@keyframes hero-animate-out{0%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.1)}}@keyframes hero-animate-out-small{0%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1.2)}}@keyframes marquee-left{0%{transform:translate(-1%)}to{transform:translate(-51%)}}@keyframes marquee-right{0%{transform:translate(-51%)}to{transform:translate(-1%)}}@keyframes modal-open{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-closing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes grid-product__loading{0%{opacity:0}60%{opacity:.2}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes remove{0%{transform:translate(0);max-height:250px;opacity:1}33%{transform:translate(50%);max-height:250px;opacity:0}to{transform:translate(50%);max-height:0;opacity:0}}.flickity-enabled{position:relative}.flickity-enabled:focus{outline:none}.flickity-viewport{overflow:hidden;position:relative;transition:height .35s;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-enabled.is-draggable[data-arrows=true] .flickity-viewport,.flickity-enabled.is-draggable[data-arrows=true] .flickity-viewport.is-pointer-down{cursor:default}.flickity-button{position:absolute;border:none;color:#fff;color:var(--colorBtnPrimaryText);background:#1c2d3b;background:var(--colorBtnPrimary);border-radius:50%}.hero .flickity-button{color:#32454f;color:var(--colorTextBody);background-color:#fff;background-color:var(--colorBody);box-shadow:0 5px 5px #0000001a}.flickity-button:hover{cursor:pointer;opacity:1}.flickity-button:disabled{display:none;cursor:auto;pointer-events:none}.flickity-prev-next-button{top:50%;width:40px;height:40px;transform:translateY(-50%)}@media only screen and (max-width:768px){.flickity-prev-next-button{width:33px;height:33px}}.flickity-prev-next-button:hover{transform:translateY(-50%) scale(1.12)}.flickity-prev-next-button:active{transform:translateY(-50%) scale(1);transition:transform .05s ease-out}.flickity-previous{left:10px}.flickity-next{right:10px}.flickity-rtl .flickity-previous{left:auto;right:10px}.flickity-rtl .flickity-next{right:auto;left:10px}.flickity-button-icon{position:absolute;left:35%;top:35%;width:30%;height:30%;fill:currentColor}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1;color:currentColor}.hero .flickity-page-dots{bottom:20px;color:#fff}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;vertical-align:middle;width:6px;height:6px;margin:0 5px;border-radius:100%;cursor:pointer;background-color:currentColor;opacity:.4}.flickity-page-dots .dot:hover{opacity:.6}.flickity-page-dots .dot.is-selected{opacity:1;background-color:currentColor;width:9px;height:9px}.flickity-enabled.is-fade .flickity-slider>*{pointer-events:none;z-index:0}.flickity-enabled.is-fade .flickity-slider>.is-selected{pointer-events:auto;z-index:1}.hero[data-arrows=true]{overflow:visible}.hero[data-arrows=true] .flickity-prev-next-button{top:auto;bottom:-20px;transform:none;z-index:2}.hero[data-arrows=true] .flickity-prev-next-button:hover{transform:scale(1.12)}.hero[data-arrows=true] .flickity-prev-next-button:active{transform:scale(1)}.hero[data-arrows=true] .flickity-previous{left:auto;right:90px}.hero[data-arrows=true] .flickity-next{right:40px}.hero[data-arrows=true].flickity-rtl .flickity-previous{right:auto;left:90px}.hero[data-arrows=true].flickity-rtl .flickity-next{right:auto;left:40px}@media only screen and (max-width:768px){.hero[data-arrows=true] .flickity-prev-next-button{bottom:-16px}.hero[data-arrows=true] .flickity-previous{right:60px}.hero[data-arrows=true] .flickity-next{right:20px}.hero[data-arrows=true].flickity-rtl .flickity-previous{left:60px}.hero[data-arrows=true].flickity-rtl .flickity-next{left:20px}}[data-bars=true].hero .flickity-page-dots{bottom:0;height:6px;line-height:6px;z-index:2}[data-bars=true] .flickity-page-dots .dot{position:relative;border-radius:0;width:120px;height:6px;border:0;opacity:1;vertical-align:top;background:none;overflow:hidden}@media only screen and (max-width:768px){[data-bars=true] .flickity-page-dots .dot{width:45px}}[data-bars=true] .flickity-page-dots .dot:after,[data-bars=true] .flickity-page-dots .dot:before{content:"";display:block;position:absolute;left:0;height:100%;width:100%}[data-bars=true] .flickity-page-dots .dot:before{opacity:.1;background-color:#000}[data-bars=true] .flickity-page-dots .dot:hover:before{opacity:.2}[data-bars=true] .flickity-page-dots .dot:after{transform:translate(-100%);transition:none;background-color:currentColor}[data-bars=true] .flickity-page-dots .dot.is-selected:after{animation:slideshowBars 0s linear forwards}.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;touch-action:none;user-select:none;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.noUi-connect{height:100%;width:100%}.noUi-origin{height:10%;width:10%}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{left:0;right:auto}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;right:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;right:-6px;top:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{left:-17px;right:auto}.noUi-target{background:#fafafa;border-radius:4px;border:1px solid #d3d3d3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.noUi-connects{border-radius:3px}.noUi-connect{background:#3fb8af}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#e8e7e6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#b8b8b8}[disabled].noUi-handle,[disabled] .noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#ccc}.noUi-marker-sub,.noUi-marker-large{background:#aaa}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{transform:translateY(-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{transform:translateY(50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #d9d9d9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{transform:translate(-50%);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{transform:translateY(-50%);top:50%;right:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{transform:translate(50%);left:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{transform:translateY(-18px);top:auto;right:28px}tool-tip{display:none}tool-tip[data-tool-tip-open=true]{display:flex;justify-content:center;align-items:center;z-index:10001;position:fixed;top:0;left:0;width:100%;height:100%}tool-tip[data-tool-tip-open=true]:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-color:#e0e0e0;background-color:var(--colorModalBg);animation:overlay-on .3s forwards;cursor:pointer}.tool-tip__inner{animation:modal-close .3s forwards;opacity:0}tool-tip[data-tool-tip-open=true] .tool-tip__inner{animation:modal-open .3s forwards;display:block;position:fixed;background-color:#fff;box-shadow:0 10px 20px #00000017;padding:30px;max-width:720px}@media only screen and (max-width:768px){tool-tip[data-tool-tip-open=true] .tool-tip__inner{width:100%;max-width:93%}}.tool-tip__content{overflow:auto;max-height:80vh}@media only screen and (max-width:768px){.tool-tip__content{font-size:.85em}}.tool-tip__close{position:absolute;top:0;right:0}.tool-tip__close .icon{width:28px;height:28px}.tool-tip-trigger{cursor:pointer;background:none;border:0}.tool-tip-trigger .icon{width:28px;height:28px}.tool-tip-trigger__title{display:inline-block}.tool-tip-trigger__title:focus,.tool-tip-trigger__title:hover{text-decoration:underline;text-underline-offset:2px}.tool-tip-trigger__content{display:none!important}*,:after,:before,input{box-sizing:border-box}body,html{padding:0;margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.grid:after{content:"";display:table;clear:both}.grid{list-style:none;padding:0;margin:0 0 0 -40px}@media only screen and (max-width:768px){.grid{margin-left:-30px}html[dir=rtl] .grid{margin-left:0;margin-right:-30px}}html[dir=rtl] .grid{margin-left:0;margin-right:-40px}.grid--small{margin-left:-10px}.grid--small .grid__item{padding-left:10px}.grid__item{float:left;padding-left:40px;width:100%;min-height:1px}@media only screen and (max-width:768px){.grid__item{padding-left:30px}html[dir=rtl] .grid__item{padding-left:0;padding-right:30px}.grid__item.grid-column{margin-bottom:30px}.grid__item.grid-column:last-child{margin-bottom:0}}.grid__item[class*=--push]{position:relative}html[dir=rtl] .grid__item{float:right;padding-left:0;padding-right:40px}html[dir=rtl] .grid__item[class*=--push]{position:static}.grid--small-gutters{margin-left:-10px;margin-bottom:-10px}.grid--small-gutters .grid__item{padding-left:10px;padding-bottom:10px}html[dir=rtl] .grid--small-gutters{margin-left:0;margin-right:-10px}html[dir=rtl] .grid--small-gutters .grid__item{padding-left:0;padding-right:10px}.grid--full{margin-left:0}.grid--full>.grid__item{padding-left:0}@media only screen and (max-width:768px){.small--grid--flush{margin-left:-1px}.page-width .small--grid--flush{margin-left:-30px;margin-right:-30px}.small--grid--flush>.grid__item{padding-left:1px}}@media only screen and (min-width:769px){.grid--table-large{display:table;width:100%;table-layout:fixed}.grid--table-large>.grid__item{display:table-cell;vertical-align:middle;float:none}}.one-whole{width:100%}.one-half{width:50%}.one-third{width:33.33333%}.two-thirds{width:66.66667%}.one-quarter{width:25%}.two-quarters{width:50%}.three-quarters{width:75%}.one-fifth{width:20%}.two-fifths{width:40%}.three-fifths{width:60%}.four-fifths{width:80%}.one-sixth{width:16.66667%}.two-sixths{width:33.33333%}.three-sixths{width:50%}.four-sixths{width:66.66667%}.five-sixths{width:83.33333%}.one-eighth{width:12.5%}.two-eighths{width:25%}.three-eighths{width:37.5%}.four-eighths{width:50%}.five-eighths{width:62.5%}.six-eighths{width:75%}.seven-eighths{width:87.5%}.one-tenth{width:10%}.two-tenths{width:20%}.three-tenths{width:30%}.four-tenths{width:40%}.five-tenths{width:50%}.six-tenths{width:60%}.seven-tenths{width:70%}.eight-tenths{width:80%}.nine-tenths{width:90%}.one-twelfth{width:8.33333%}.two-twelfths{width:16.66667%}.three-twelfths{width:25%}.four-twelfths{width:33.33333%}.five-twelfths{width:41.66667%}.six-twelfths{width:50%}.seven-twelfths{width:58.33333%}.eight-twelfths{width:66.66667%}.nine-twelfths{width:75%}.ten-twelfths{width:83.33333%}.eleven-twelfths{width:91.66667%}@media only screen and (max-width:768px){.small--one-whole{width:100%}.small--one-half{width:50%}.small--one-third{width:33.33333%}.small--two-thirds{width:66.66667%}.grid--uniform .small--one-half:nth-of-type(odd),.grid--uniform .small--one-third:nth-of-type(3n+1){clear:both}.small--one-quarter{width:25%}.small--two-quarters{width:50%}.small--three-quarters{width:75%}.grid--uniform .small--one-quarter:nth-of-type(4n+1){clear:both}.small--one-fifth{width:20%}.small--two-fifths{width:40%}.small--three-fifths{width:60%}.small--four-fifths{width:80%}.grid--uniform .small--one-fifth:nth-of-type(5n+1){clear:both}.small--one-sixth{width:16.66667%}.small--two-sixths{width:33.33333%}.small--three-sixths{width:50%}.small--four-sixths{width:66.66667%}.small--five-sixths{width:83.33333%}.grid--uniform .small--one-sixth:nth-of-type(6n+1),.grid--uniform .small--three-sixths:nth-of-type(odd),.grid--uniform .small--two-sixths:nth-of-type(3n+1){clear:both}.small--one-eighth{width:12.5%}.small--two-eighths{width:25%}.small--three-eighths{width:37.5%}.small--four-eighths{width:50%}.small--five-eighths{width:62.5%}.small--six-eighths{width:75%}.small--seven-eighths{width:87.5%}.grid--uniform .small--four-eighths:nth-of-type(odd),.grid--uniform .small--one-eighth:nth-of-type(8n+1),.grid--uniform .small--two-eighths:nth-of-type(4n+1){clear:both}.small--one-tenth{width:10%}.small--two-tenths{width:20%}.small--three-tenths{width:30%}.small--four-tenths{width:40%}.small--five-tenths{width:50%}.small--six-tenths{width:60%}.small--seven-tenths{width:70%}.small--eight-tenths{width:80%}.small--nine-tenths{width:90%}.grid--uniform .small--five-tenths:nth-of-type(odd){clear:both}.small--one-twelfth{width:8.33333%}.small--two-twelfths{width:16.66667%}.small--three-twelfths{width:25%}.small--four-twelfths{width:33.33333%}.small--five-twelfths{width:41.66667%}.small--six-twelfths{width:50%}.small--seven-twelfths{width:58.33333%}.small--eight-twelfths{width:66.66667%}.small--nine-twelfths{width:75%}.small--ten-twelfths{width:83.33333%}.small--eleven-twelfths{width:91.66667%}.grid--uniform .small--four-twelfths:nth-of-type(3n+1),.grid--uniform .small--one-twelfth:nth-of-type(12n+1),.grid--uniform .small--six-twelfths:nth-of-type(odd),.grid--uniform .small--three-twelfths:nth-of-type(4n+1),.grid--uniform .small--two-twelfths:nth-of-type(6n+1){clear:both}}@media only screen and (min-width:769px){.medium-up--one-whole{width:100%}.medium-up--one-half{width:50%}.medium-up--one-third{width:33.33333%}.medium-up--two-thirds{width:66.66667%}.grid--uniform .medium-up--one-half:nth-of-type(odd),.grid--uniform .medium-up--one-third:nth-of-type(3n+1){clear:both}.medium-up--one-quarter{width:25%}.medium-up--two-quarters{width:50%}.medium-up--three-quarters{width:75%}.grid--uniform .medium-up--one-quarter:nth-of-type(4n+1){clear:both}.medium-up--one-fifth{width:20%}.medium-up--two-fifths{width:40%}.medium-up--three-fifths{width:60%}.medium-up--four-fifths{width:80%}.grid--uniform .medium-up--one-fifth:nth-of-type(5n+1){clear:both}.medium-up--one-sixth{width:16.66667%}.medium-up--two-sixths{width:33.33333%}.medium-up--three-sixths{width:50%}.medium-up--four-sixths{width:66.66667%}.medium-up--five-sixths{width:83.33333%}.grid--uniform .medium-up--one-sixth:nth-of-type(6n+1),.grid--uniform .medium-up--three-sixths:nth-of-type(odd),.grid--uniform .medium-up--two-sixths:nth-of-type(3n+1){clear:both}.medium-up--one-eighth{width:12.5%}.medium-up--two-eighths{width:25%}.medium-up--three-eighths{width:37.5%}.medium-up--four-eighths{width:50%}.medium-up--five-eighths{width:62.5%}.medium-up--six-eighths{width:75%}.medium-up--seven-eighths{width:87.5%}.grid--uniform .medium-up--four-eighths:nth-of-type(odd),.grid--uniform .medium-up--one-eighth:nth-of-type(8n+1),.grid--uniform .medium-up--two-eighths:nth-of-type(4n+1){clear:both}.medium-up--one-tenth{width:10%}.medium-up--two-tenths{width:20%}.medium-up--three-tenths{width:30%}.medium-up--four-tenths{width:40%}.medium-up--five-tenths{width:50%}.medium-up--six-tenths{width:60%}.medium-up--seven-tenths{width:70%}.medium-up--eight-tenths{width:80%}.medium-up--nine-tenths{width:90%}.grid--uniform .medium-up--five-tenths:nth-of-type(odd){clear:both}.medium-up--one-twelfth{width:8.33333%}.medium-up--two-twelfths{width:16.66667%}.medium-up--three-twelfths{width:25%}.medium-up--four-twelfths{width:33.33333%}.medium-up--five-twelfths{width:41.66667%}.medium-up--six-twelfths{width:50%}.medium-up--seven-twelfths{width:58.33333%}.medium-up--eight-twelfths{width:66.66667%}.medium-up--nine-twelfths{width:75%}.medium-up--ten-twelfths{width:83.33333%}.medium-up--eleven-twelfths{width:91.66667%}.grid--uniform .medium-up--four-twelfths:nth-of-type(3n+1),.grid--uniform .medium-up--one-twelfth:nth-of-type(12n+1),.grid--uniform .medium-up--six-twelfths:nth-of-type(odd),.grid--uniform .medium-up--three-twelfths:nth-of-type(4n+1),.grid--uniform .medium-up--two-twelfths:nth-of-type(6n+1){clear:both}}@media only screen and (min-width:1550px){.widescreen--one-whole{width:100%}.widescreen--one-half{width:50%}.widescreen--one-third{width:33.33333%}.widescreen--two-thirds{width:66.66667%}.grid--uniform .widescreen--one-half:nth-of-type(odd),.grid--uniform .widescreen--one-third:nth-of-type(3n+1){clear:both}.widescreen--one-quarter{width:25%}.widescreen--two-quarters{width:50%}.widescreen--three-quarters{width:75%}.grid--uniform .widescreen--one-quarter:nth-of-type(4n+1){clear:both}.widescreen--one-fifth{width:20%}.widescreen--two-fifths{width:40%}.widescreen--three-fifths{width:60%}.widescreen--four-fifths{width:80%}.grid--uniform .widescreen--one-fifth:nth-of-type(5n+1){clear:both}.widescreen--one-sixth{width:16.66667%}.widescreen--two-sixths{width:33.33333%}.widescreen--three-sixths{width:50%}.widescreen--four-sixths{width:66.66667%}.widescreen--five-sixths{width:83.33333%}.grid--uniform .widescreen--one-sixth:nth-of-type(6n+1),.grid--uniform .widescreen--three-sixths:nth-of-type(odd),.grid--uniform .widescreen--two-sixths:nth-of-type(3n+1){clear:both}.widescreen--one-eighth{width:12.5%}.widescreen--two-eighths{width:25%}.widescreen--three-eighths{width:37.5%}.widescreen--four-eighths{width:50%}.widescreen--five-eighths{width:62.5%}.widescreen--six-eighths{width:75%}.widescreen--seven-eighths{width:87.5%}.grid--uniform .widescreen--four-eighths:nth-of-type(odd),.grid--uniform .widescreen--one-eighth:nth-of-type(8n+1),.grid--uniform .widescreen--two-eighths:nth-of-type(4n+1){clear:both}.widescreen--one-tenth{width:10%}.widescreen--two-tenths{width:20%}.widescreen--three-tenths{width:30%}.widescreen--four-tenths{width:40%}.widescreen--five-tenths{width:50%}.widescreen--six-tenths{width:60%}.widescreen--seven-tenths{width:70%}.widescreen--eight-tenths{width:80%}.widescreen--nine-tenths{width:90%}.grid--uniform .widescreen--five-tenths:nth-of-type(odd){clear:both}.widescreen--one-twelfth{width:8.33333%}.widescreen--two-twelfths{width:16.66667%}.widescreen--three-twelfths{width:25%}.widescreen--four-twelfths{width:33.33333%}.widescreen--five-twelfths{width:41.66667%}.widescreen--six-twelfths{width:50%}.widescreen--seven-twelfths{width:58.33333%}.widescreen--eight-twelfths{width:66.66667%}.widescreen--nine-twelfths{width:75%}.widescreen--ten-twelfths{width:83.33333%}.widescreen--eleven-twelfths{width:91.66667%}.grid--uniform .widescreen--four-twelfths:nth-of-type(3n+1),.grid--uniform .widescreen--one-twelfth:nth-of-type(12n+1),.grid--uniform .widescreen--six-twelfths:nth-of-type(odd),.grid--uniform .widescreen--three-twelfths:nth-of-type(4n+1),.grid--uniform .widescreen--two-twelfths:nth-of-type(6n+1){clear:both}}@media only screen and (min-width:769px){.medium-up--push-one-half{left:50%}.medium-up--push-one-third{left:33.33333%}.medium-up--push-two-thirds{left:66.66667%}.medium-up--push-one-quarter{left:25%}.medium-up--push-two-quarters{left:50%}.medium-up--push-three-quarters{left:75%}.medium-up--push-one-fifth{left:20%}.medium-up--push-two-fifths{left:40%}.medium-up--push-three-fifths{left:60%}.medium-up--push-four-fifths{left:80%}.medium-up--push-one-sixth{left:16.66667%}.medium-up--push-two-sixths{left:33.33333%}.medium-up--push-three-sixths{left:50%}.medium-up--push-four-sixths{left:66.66667%}.medium-up--push-five-sixths{left:83.33333%}.medium-up--push-one-eighth{left:12.5%}.medium-up--push-two-eighths{left:25%}.medium-up--push-three-eighths{left:37.5%}.medium-up--push-four-eighths{left:50%}.medium-up--push-five-eighths{left:62.5%}.medium-up--push-six-eighths{left:75%}.medium-up--push-seven-eighths{left:87.5%}.medium-up--push-one-tenth{left:10%}.medium-up--push-two-tenths{left:20%}.medium-up--push-three-tenths{left:30%}.medium-up--push-four-tenths{left:40%}.medium-up--push-five-tenths{left:50%}.medium-up--push-six-tenths{left:60%}.medium-up--push-seven-tenths{left:70%}.medium-up--push-eight-tenths{left:80%}.medium-up--push-nine-tenths{left:90%}.medium-up--push-one-twelfth{left:8.33333%}.medium-up--push-two-twelfths{left:16.66667%}.medium-up--push-three-twelfths{left:25%}.medium-up--push-four-twelfths{left:33.33333%}.medium-up--push-five-twelfths{left:41.66667%}.medium-up--push-six-twelfths{left:50%}.medium-up--push-seven-twelfths{left:58.33333%}.medium-up--push-eight-twelfths{left:66.66667%}.medium-up--push-nine-twelfths{left:75%}.medium-up--push-ten-twelfths{left:83.33333%}.medium-up--push-eleven-twelfths{left:91.66667%}}.show{display:block!important}.hide{display:none!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media only screen and (max-width:768px){.small--show{display:block!important}.small--hide{display:none!important}.small--text-left{text-align:left!important}.small--text-right{text-align:right!important}.small--text-center{text-align:center!important}}@media only screen and (min-width:769px){.medium-up--show{display:block!important}.medium-up--hide{display:none!important}.medium-up--text-left{text-align:left!important}.medium-up--text-right{text-align:right!important}.medium-up--text-center{text-align:center!important}}@media only screen and (min-width:1550px){.widescreen--show{display:block!important}.widescreen--hide{display:none!important}.widescreen--text-left{text-align:left!important}.widescreen--text-right{text-align:right!important}.widescreen--text-center{text-align:center!important}}.clearfix:after{content:"";display:table;clear:both}html:not(.no-js):not(.tab-outline) :focus{outline:none}.is-transitioning{display:block!important;visibility:visible!important}.visually-hidden{clip:rect(0 0 0 0);clip:rect(0,0,0,0);overflow:hidden;position:absolute;height:1px;width:1px}.visually-invisible{opacity:0!important}.skip-link:focus{clip:auto;width:auto;height:auto;margin:0;color:#32454f;color:var(--colorTextBody);background-color:#fff;background-color:var(--colorBody);padding:10px;opacity:1;z-index:10000;transition:none}.splash-screen{display:none!important}.transition-body{opacity:1!important;transition:opacity .2s ease}html{touch-action:manipulation;-webkit-tap-highlight-color:transparent}html[dir=rtl]{direction:rtl}body,html{background-color:#fff;background-color:var(--colorBody);color:#32454f;color:var(--colorTextBody)}.page-width{max-width:1300px;margin:0 auto}.page-width--narrow{max-width:1000px}.page-full,.page-width{padding:0 30px}@media only screen and (min-width:769px){.page-full,.page-width{padding:0 40px}}.page-content,.shopify-email-marketing-confirmation__container,.shopify-policy__container{padding-top:30px;padding-bottom:30px}@media only screen and (min-width:769px){.page-content,.shopify-email-marketing-confirmation__container,.shopify-policy__container{padding-top:60px;padding-bottom:60px}}.shopify-email-marketing-confirmation__container{text-align:center}.page-content--flush-bottom{padding-bottom:0}@media only screen and (max-width:768px){.product-section .page-content{padding-top:20px}}.main-content{min-height:300px}@media only screen and (min-width:769px){.main-content{min-height:700px}}.template-challange .main-content{min-height:0}hr{height:2px;border:0;border-top:2px solid;border-top-color:#32454f;border-top-color:var(--colorTextBody)}.hr--small{margin:15px auto}.hr--medium{margin:25px auto}@media only screen and (min-width:769px){.hr--medium{margin:35px auto}}.hr--large{margin:40px auto}@media only screen and (min-width:769px){.hr--large{margin:60px auto}}.hr--clear{border:0}@media only screen and (max-width:768px){.table--responsive thead{display:none}.table--responsive tr{display:block}.table--responsive td,.table--responsive tr{float:left;clear:both;width:100%}.table--responsive td,.table--responsive th{display:block;text-align:right;padding:15px}.table--responsive td:before{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}}@media only screen and (max-width:768px) and only screen and (min-width:769px){.table--responsive td:before{font-size:calc(var(--typeBaseSize) - 2px)}}@media only screen and (max-width:768px){.table--responsive td:before{content:attr(data-label);float:left;padding-right:10px}}@media only screen and (max-width:768px){.table--small-hide{display:none!important}.table__section+.table__section{position:relative}.table__section+.table__section:after{content:"";display:block;position:absolute;top:0;left:15px;right:15px;border-bottom:2px solid;border-bottom-color:#32454f;border-bottom-color:var(--colorTextBody)}}.paragraph,p{margin:0 0 20px}.paragraph img,p img{margin:0}em{font-style:italic}b,strong{font-weight:700}p[data-spam-detection-disclaimer],small{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){p[data-spam-detection-disclaimer],small{font-size:calc(var(--typeBaseSize) - 2px)}}sub,sup{position:relative;font-size:60%;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.5em}.rte blockquote,blockquote{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.rte blockquote,blockquote{font-size:calc(var(--typeBaseSize)*1.22)}}.rte blockquote,blockquote{margin:0;padding:20px 40px 40px}.rte blockquote p,blockquote p{margin-bottom:0}.rte blockquote p+cite,blockquote p+cite{margin-top:20px}.rte blockquote cite,blockquote cite{display:block}.rte blockquote cite:before,blockquote cite:before{content:"\2014 "}code,pre{background-color:#faf7f5;font-family:Consolas,monospace;font-size:1em;border:0 none;padding:0 2px;color:#51ab62}pre{overflow:auto;padding:20px;margin:0 0 40px}label,.label-info{display:block;margin-bottom:10px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin:0 0 10px}@media only screen and (min-width:769px){.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin:0 0 20px}}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{text-decoration:none;font-weight:inherit}.h1,.section-header__title,.spr-header-title.spr-header-title,h1{font-size:calc(var(--typeHeaderSize)*1*.85)}@media only screen and (min-width:769px){.h1,.section-header__title,.spr-header-title.spr-header-title,h1{font-size:calc(var(--typeHeaderSize)*1)}}.h2,h2{font-size:calc(var(--typeHeaderSize)*.66*.85)}@media only screen and (min-width:769px){.h2,h2{font-size:calc(var(--typeHeaderSize)*.66)}}.h3,h3{font-size:calc(var(--typeHeaderSize)*.57*.85)}@media only screen and (min-width:769px){.h3,h3{font-size:calc(var(--typeHeaderSize)*.57)}}.h4,h4{font-size:calc(var(--typeHeaderSize)*.45*.85)}@media only screen and (min-width:769px){.h4,h4{font-size:calc(var(--typeHeaderSize)*.45)}}.h5,.h6,h5,h6{font-size:calc(var(--typeHeaderSize)*.4*.85)}@media only screen and (min-width:769px){.h5,.h6,h5,h6{font-size:calc(var(--typeHeaderSize)*.4)}}.subheading{font-size:calc(var(--typeBaseSize) - 3px);letter-spacing:.25em;text-transform:uppercase;margin-bottom:15px}@media only screen and (min-width:769px){.subheading{font-size:calc(var(--typeBaseSize) - 5px);margin-bottom:15px}}.text-spacing{margin-bottom:20px}@media only screen and (max-width:768px){.rte table td,.rte table th{padding:6px 8px}}.collapsible-content .rte table td,.collapsible-content .rte table th{padding:6px 8px}.comment{border-bottom:1px solid;border-bottom-color:#32454f;border-bottom-color:var(--colorTextBody);padding-bottom:40px;margin-bottom:40px}.comment:last-child{border-bottom:0}.comment__date{font-size:calc(var(--typeBaseSize)*.85 - 4.25px)}@media only screen and (min-width:769px){.comment__date{font-size:calc(var(--typeBaseSize) - 5px)}}.comment__date{margin-top:3px}@media only screen and (max-width:768px){.comment__date{margin-bottom:20px}}.skrim__title{font-size:calc(var(--typeHeaderSize)*.57*.85)}@media only screen and (min-width:769px){.skrim__title{font-size:calc(var(--typeHeaderSize)*.57)}}.enlarge-text{font-size:calc(var(--typeBaseSize)*1.45*.85)}@media only screen and (min-width:769px){.enlarge-text{font-size:calc(var(--typeBaseSize)*1.45)}}.rte .enlarge-text{margin:0}.rte .enlarge-text p:last-child{margin-bottom:0}html[dir=rtl] .text-left{text-align:right!important}html[dir=rtl] .text-right{text-align:left!important}.icon-and-text{display:flex;flex-wrap:nowrap;align-items:center}.icon-and-text .icon{flex:0 0 auto}ol,ul{margin:0 0 20px 40px;padding:0;text-rendering:optimizeLegibility}ol ol{list-style:lower-alpha}ol{list-style:decimal}ol ol,ol ul,ul ol,ul ul{margin:4px 0 5px 20px}li{margin-bottom:.25em}ul.square{list-style:square outside}ul.disc{list-style:disc outside}ol.alpha{list-style:lower-alpha outside}.no-bullets{list-style:none outside;margin-left:0}.inline-list{padding:0;margin:0}.inline-list li{display:inline-block;margin-bottom:0;vertical-align:middle}table{width:100%;border-spacing:1px;position:relative;border:0 none;background:#32454f;background:var(--colorTextBody)}.table-wrapper{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}td,th{border:0 none;text-align:left;padding:10px 15px;background:#ffffff;background:var(--colorBody)}html[dir=rtl] td,html[dir=rtl] th{text-align:right}th,.table__title{font-weight:700}.text-link,a{color:inherit;text-decoration:none;background:transparent}.text-link:hover,a:hover{color:inherit}.text-link{display:inline;border:0 none;background:none;padding:0;margin:0;font-size:inherit}.rte a:not(.btn),.shopify-email-marketing-confirmation__container a:not(.btn),.shopify-policy__container a:not(.btn){color:#32454f;color:var(--colorLink)}.customers a:not(.rte__image){text-decoration:none;border-bottom:2px solid;border-bottom-color:#32454f1a;position:relative}[data-animate_underlines=true] .customers a:not(.btn):after{content:"";position:absolute;bottom:-2px;left:0;width:0%;border-bottom:2px solid currentColor;transition:width .3s ease}[data-animate_underlines=true] .customers a:not(.btn):focus:after,[data-animate_underlines=true] .customers a:not(.btn):hover:after{width:100%}.rte a:not(.rte__image):not(.btn):not(.spr-summary-actions-newreview){color:currentColor;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}.rte a.rte__image:after{content:none}button{color:currentColor;overflow:visible}button[disabled],html input[disabled]{cursor:default}[data-button_type_style=caps] .btn,[data-button_type_style=caps] .rte .btn,[data-button_type_style=caps] .shopify-payment-button .shopify-payment-button__button--unbranded,[data-button_type_style=caps] .spr-container .spr-button,[data-button_type_style=caps] .spr-container .spr-summary-actions a{letter-spacing:.2em;text-transform:uppercase;font-size:calc(var(--typeBaseSize) - 2px)}.btn,.rte .btn,.shopify-payment-button .shopify-payment-button__button--unbranded,.spr-container .spr-button,.spr-container .spr-summary-actions a{display:inline-block;padding:10px 25px;margin:0;width:auto;min-width:90px;line-height:1.42;text-decoration:none;text-align:center;vertical-align:middle;white-space:normal;cursor:pointer;border:2px solid transparent;-webkit-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;border-radius:var(--buttonRadius);color:#fff;color:var(--colorBtnPrimaryText);background:#1c2d3b;background:var(--colorBtnPrimary);transition:background .15s ease;transition:var(--colorBtnPrimaryBgTransition)}@media only screen and (max-width:768px){.btn,.rte .btn,.shopify-payment-button .shopify-payment-button__button--unbranded,.spr-container .spr-button,.spr-container .spr-summary-actions a{padding:8px 23px}}.btn:hover,.rte .btn:hover,.shopify-payment-button .shopify-payment-button__button--unbranded:hover,.spr-container .spr-button:hover,.spr-container .spr-summary-actions a:hover{color:#fff;color:var(--colorBtnPrimaryText);background-color:#1c2d3b;background-color:var(--colorBtnPrimary)}.btn:active,.rte .btn:active,.shopify-payment-button .shopify-payment-button__button--unbranded:active,.spr-container .spr-button:active,.spr-container .spr-summary-actions a:active{background-color:#3d6280;background-color:var(--colorBtnPrimaryActive)}.btn.disabled,.btn[disabled],.rte .btn.disabled,.rte .btn[disabled],.shopify-payment-button .shopify-payment-button__button--unbranded.disabled,.shopify-payment-button .shopify-payment-button__button--unbranded[disabled],.spr-container .spr-button.disabled,.spr-container .spr-button[disabled],.spr-container .spr-summary-actions a.disabled,.spr-container .spr-summary-actions a[disabled]{cursor:default;color:#444;background-color:#f6f6f6;transition:none}.btn.disabled:hover,.btn[disabled]:hover,.rte .btn.disabled:hover,.rte .btn[disabled]:hover,.shopify-payment-button .shopify-payment-button__button--unbranded.disabled:hover,.shopify-payment-button .shopify-payment-button__button--unbranded[disabled]:hover,.spr-container .spr-button.disabled:hover,.spr-container .spr-button[disabled]:hover,.spr-container .spr-summary-actions a.disabled:hover,.spr-container .spr-summary-actions a[disabled]:hover{color:#444;background-color:#f6f6f6}[data-button_type_style=caps] .btn,[data-button_type_style=caps] .rte .btn,[data-button_type_style=caps] .shopify-payment-button .shopify-payment-button__button--unbranded,[data-button_type_style=caps] .spr-container .spr-button,[data-button_type_style=caps] .spr-container .spr-summary-actions a{padding:14px 22px}@media only screen and (max-width:768px){[data-button_type_style=caps] .btn,[data-button_type_style=caps] .rte .btn,[data-button_type_style=caps] .shopify-payment-button .shopify-payment-button__button--unbranded,[data-button_type_style=caps] .spr-container .spr-button,[data-button_type_style=caps] .spr-container .spr-summary-actions a{padding:11px 20px}}.shopify-payment-button .shopify-payment-button__button--unbranded:hover:not([disabled]){color:#fff;color:var(--colorBtnPrimaryText);background-color:#1c2d3b;background-color:var(--colorBtnPrimary)}.shopify-payment-button .shopify-payment-button__button--branded{border-radius:var(--buttonRadius)}[data-button_style^=round] .shopify-payment-button .shopify-payment-button__button--branded{overflow:hidden}.additional-checkout-buttons div[role=button]{border-radius:var(--buttonRadius)!important}.shopify-payment-button__more-options{color:inherit}.btn--secondary,.rte .btn--secondary{color:#1c2d3b;color:var(--colorBtnPrimary);background:#ffffff;background:var(--colorBtnPrimaryText)}.btn--secondary:hover,.rte .btn--secondary:hover{color:#1c2d3b;color:var(--colorBtnPrimary);background-color:#fff;background-color:var(--colorBtnPrimaryText)}.btn--tertiary,.rte .btn--tertiary{background-color:#fff;background-color:var(--colorBody);border:2px solid;border-color:#32454f;border-color:var(--colorTextBody);color:#32454f;color:var(--colorTextBody);font-weight:400}.btn--tertiary:hover,.rte .btn--tertiary:hover{background-color:#fff;background-color:var(--colorBody);color:#32454f;color:var(--colorTextBody)}.btn--tertiary.disabled,.btn--tertiary[disabled],.rte .btn--tertiary.disabled,.rte .btn--tertiary[disabled]{cursor:default;color:#444;background-color:#f6f6f6}.btn--tertiary:active,.rte .btn--tertiary:active{color:#32454f;color:var(--colorTextBody);background:#ffffff;background:var(--colorBody)}[data-button_style=shadow] .btn--tertiary,[data-button_style=shadow] .rte .btn--tertiary{box-shadow:5px 5px #32454f;box-shadow:5px 5px 0 0 var(--colorTextBody);transition:transform .05s,box-shadow .05s;margin-bottom:5px}[data-button_style=shadow] .btn--tertiary:active,[data-button_style=shadow] .rte .btn--tertiary:active{transform:translate(4px,4px);box-shadow:1px 1px #32454f;box-shadow:1px 1px 0 0 var(--colorTextBody)}[data-button_style=shadow] .btn--tertiary.btn--full,[data-button_style=shadow] .rte .btn--tertiary.btn--full{width:calc(100% - 5px)}@media only screen and (max-width:768px){.small--text-center [data-button_style=shadow] .btn--tertiary.btn--full,.small--text-center [data-button_style=shadow] .rte .btn--tertiary.btn--full{transform:translate(-2.5px)}}.btn--small,.collapsibles-wrapper .spr-button,.collapsibles-wrapper .spr-summary-actions a{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.btn--small,.collapsibles-wrapper .spr-button,.collapsibles-wrapper .spr-summary-actions a{font-size:calc(var(--typeBaseSize) - 2px)}}.btn--small,.collapsibles-wrapper .spr-button,.collapsibles-wrapper .spr-summary-actions a{padding:8px 12px;background-position:150% 45%;min-width:90px}@media only screen and (max-width:768px){.btn--small,.collapsibles-wrapper .spr-button,.collapsibles-wrapper .spr-summary-actions a{padding:6px 11px}}.btn--large{padding:15px 20px}.btn--full{width:100%}.btn--inverse{background:#ffffff;background:var(--colorHeroText);background-color:transparent;border:2px solid;border-color:#fff;border-color:var(--colorHeroText)}.btn--inverse:hover{color:#fff;color:var(--colorHeroText);background-color:transparent}[data-button_style=shadow] .btn--inverse{box-shadow:5px 5px #fff;box-shadow:5px 5px 0 0 var(--colorHeroText);transition:transform .05s,box-shadow .05s}[data-button_style=shadow] .btn--inverse:active{transform:translate(4px,4px);box-shadow:1px 1px #fff;box-shadow:1px 1px 0 0 var(--colorHeroText)}.btn--loading{position:relative}.btn--loading span:after{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;right:0;bottom:0;animation:pulse-fade .3s linear infinite}.btn--loading span{color:#1c2d3b;color:var(--colorBtnPrimary)}.btn--loading span:after{color:#fff;color:var(--colorBody)}.btn--loading.btn--tertiary span{color:#fff;color:var(--colorBody)}.btn--loading.btn--tertiary span:after{color:#32454f;color:var(--colorTextBody)}.collapsible-trigger-btn{display:block;width:100%;text-align:left;margin:0;padding:20px 0}@media only screen and (max-width:768px){.collapsible-trigger-btn{padding:20px 0}}.collapsible-trigger-btn.btn--tertiary{padding:6px 10px;width:auto}.collapsible-trigger-btn--borders{border-top:2px solid;border-top-color:#32454f;border-top-color:var(--colorTextBody)}.collapsible-trigger-btn--borders:first-child{border-top:none}.collapsible-content+.collapsible-trigger-btn--borders{margin-top:-2px}.collapsible-trigger-btn--borders+.collapsible-content .collapsible-content__inner{padding-bottom:20px}.collapsible-trigger--tab{display:inline-block;padding:5px 0 2px;margin:0 10px 5px}.collapsible-trigger--tab:after{content:"";position:absolute;bottom:-2px;left:0;width:0%;border-bottom:2px solid currentColor}.collapsible-trigger--tab.is-open:after{width:100%;transition:width .3s ease}@media only screen and (min-width:769px){.collapsible-trigger--tab{padding-left:0;padding-right:0;margin:0 15px 5px 0}}.btn--circle{padding:10px!important;border-radius:50%;min-width:0}.btn--circle .icon{width:26px;height:26px}.btn--circle.btn--large .icon{width:38px;height:38px}@media only screen and (max-width:768px){.btn--circle.btn--large{padding:15px}}.shopify-payment-button__button--hidden{display:none!important}.shopify-payment-button{margin-top:10px}.shopify-payment-button .shopify-payment-button__button--unbranded{display:block;width:100%;transition:none}.payment-buttons .add-to-cart,.payment-buttons .shopify-payment-button,.payment-buttons .shopify-payment-button__button--unbranded{min-height:50px}[data-button_type_style=normal] .payment-buttons .add-to-cart,[data-button_type_style=normal] .payment-buttons .shopify-payment-button,[data-button_type_style=normal] .payment-buttons .shopify-payment-button__button--unbranded{font-size:calc(var(--typeBaseSize) + 2px)}.payment-buttons .btn--tertiary{padding:10px 25px}@media only screen and (max-width:768px){.payment-buttons .btn--tertiary{padding:8px 23px}}img{border:0 none}svg:not(:root){overflow:hidden}iframe,img{max-width:100%}img[data-sizes=auto]{display:block;width:100%}.lazyautosizes,.lazyload{opacity:0}.no-js .lazyautosizes,.no-js .lazyload{display:none}.lazyloaded{opacity:1}[data-animate_images=true] .lazyloaded{transition:opacity .15s ease}.image-wrap{overflow:hidden;animation:placeholder-shimmer 1.3s linear 2s infinite;background-size:400% 100%}.image-wrap.loaded{animation:none}.image-wrap--transparent.loaded{background:none}.skrim__link{animation:placeholder-shimmer 1.3s linear 2s infinite;background-size:400% 100%}.skrim__link.loaded{animation:none}.image-wrap img:not([role=presentation]){display:block}.no-js .image-wrap img:not([role=presentation]).lazyload{display:none}.video-wrapper{position:relative;overflow:hidden;max-width:100%;padding-bottom:56.25%;height:0;height:auto}.video-wrapper iframe,.video-wrapper video{position:absolute;top:0;left:0;width:100%;height:100%}.video-wrapper--modal{width:1000px}.grid__image-ratio{position:relative;background-repeat:no-repeat;background-size:contain;background-position:50%}.grid__image-ratio:before{content:"";display:block;height:0;width:100%}.grid__image-ratio .placeholder-svg{position:absolute;top:0;right:0;bottom:0;left:0}.grid__image-ratio--cover{background-size:cover}.grid__image-ratio--wide:before{padding-bottom:56.25%}.grid__image-ratio--landscape:before{padding-bottom:75%}.grid__image-ratio--square:before{padding-bottom:100%}.grid__image-ratio--portrait:before{padding-bottom:150%}form{margin:0}.inline{display:inline}@media only screen and (max-width:768px){.faux-select,input,select,textarea{font-size:16px!important}}button,input,textarea{-webkit-appearance:none;-moz-appearance:none}button{background:none;border:none;display:inline-block;cursor:pointer}fieldset{border:2px solid;border-color:#32454f;border-color:var(--colorTextBody);padding:20px}legend{border:0;padding:0}button,input[type=submit]{cursor:pointer}.faux-select,input,select,textarea{background-color:transparent;color:inherit;border:0;border-bottom:2px solid;border-bottom-color:#32454f;border-bottom-color:var(--colorTextBody);max-width:100%;padding:8px 0;border-radius:0}.faux-select.disabled,.faux-select[disabled],input.disabled,input[disabled],select.disabled,select[disabled],textarea.disabled,textarea[disabled]{cursor:default;background-color:#f6f6f6;border-bottom-color:transparent}.faux-select:active,.faux-select:focus,input:active,input:focus,select:active,select:focus,textarea:active,textarea:focus{border-bottom-color:#32454f;border-bottom-color:var(--colorTextBody)}.faux-select.input-full,input.input-full,select.input-full,textarea.input-full{width:100%}textarea{min-height:100px}input[type=checkbox],input[type=radio]{margin:0 10px 0 0;padding:0;width:auto}input[type=checkbox]{-webkit-appearance:checkbox;-moz-appearance:checkbox}input[type=radio]{-webkit-appearance:radio;-moz-appearance:radio}input[type=image]{padding-left:0;padding-right:0;background-color:transparent}.faux-select,select{-webkit-appearance:none;appearance:none;background-color:transparent;display:inline-block;vertical-align:middle;padding-right:28px;text-indent:.01px;text-overflow:"";cursor:pointer;color:inherit}select{background-position:100%;background-image:url(//cdn.shopify.com/s/files/1/0624/0370/7118/t/2/assets/ico-select.svg);background-repeat:no-repeat;background-position:right 10px center;background-size:11px}.faux-select .icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:11px;height:11px}optgroup{font-weight:700}option{color:#000;background-color:#fff}option[disabled]{color:#ccc}select::-ms-expand{display:none}.hidden-label{clip:rect(0 0 0 0);clip:rect(0,0,0,0);overflow:hidden;position:absolute;height:1px;width:1px}label[for]{cursor:pointer}.form-vertical{margin-bottom:20px}.form-vertical input,.form-vertical select,.form-vertical textarea{display:block;margin-bottom:30px}.form-vertical .btn,.form-vertical input[type=checkbox],.form-vertical input[type=radio]{display:inline-block}.form-vertical .btn:not(:last-child){margin-bottom:30px}input.error,textarea.error{border-color:#d02e2e;background-color:#fff6f6;color:#d02e2e}label.error{color:#d02e2e}::placeholder{color:inherit;opacity:.5}.input-group{display:flex}.input-group .input-group-btn:first-child,.input-group .input-group-btn:first-child>.btn,.input-group input[type=hidden]:first-child+.input-group-btn>.btn{border-radius:var(--buttonRadius) 0 0 var(--buttonRadius)}.input-group .input-group-btn:last-child>.btn{border-radius:0 var(--buttonRadius) var(--buttonRadius) 0}.input-group .input-group-field:last-child{padding-left:10px}.input-group input::-moz-focus-inner{border:0;padding:0;margin-top:-1px;margin-bottom:-1px}.input-group-btn,.input-group-field{margin:0}.input-group .input-group-field{flex:1 1 auto;border-radius:0;color:currentColor;border-color:currentColor;min-width:0}.input-group-btn{flex:0 1 auto;padding:0}.input-group-btn .icon{vertical-align:baseline;vertical-align:initial}.input-group-btn .btn{margin-top:0;height:100%}.input-group-btn .btn:hover{padding-right:20px}.icon{display:inline-block;width:20px;height:20px;vertical-align:middle;fill:currentColor}.no-svg .icon{display:none}.icon--full-color{fill:initial}svg.icon:not(.icon--full-color) circle,svg.icon:not(.icon--full-color) ellipse,svg.icon:not(.icon--full-color) g,svg.icon:not(.icon--full-color) line,svg.icon:not(.icon--full-color) path,svg.icon:not(.icon--full-color) polygon,svg.icon:not(.icon--full-color) polyline,svg.icon:not(.icon--full-color) rect,symbol.icon:not(.icon--full-color) circle,symbol.icon:not(.icon--full-color) ellipse,symbol.icon:not(.icon--full-color) g,symbol.icon:not(.icon--full-color) line,symbol.icon:not(.icon--full-color) path,symbol.icon:not(.icon--full-color) polygon,symbol.icon:not(.icon--full-color) polyline,symbol.icon:not(.icon--full-color) rect{fill:inherit;stroke:inherit}.icon-bag circle,.icon-bag ellipse,.icon-bag g,.icon-bag line,.icon-bag path,.icon-bag polygon,.icon-bag polyline,.icon-bag rect,.icon-cart circle,.icon-cart ellipse,.icon-cart g,.icon-cart line,.icon-cart path,.icon-cart polygon,.icon-cart polyline,.icon-cart rect,.icon-chevron-down circle,.icon-chevron-down ellipse,.icon-chevron-down g,.icon-chevron-down line,.icon-chevron-down path,.icon-chevron-down polygon,.icon-chevron-down polyline,.icon-chevron-down rect,.icon-circle-checkmark circle,.icon-circle-checkmark ellipse,.icon-circle-checkmark g,.icon-circle-checkmark line,.icon-circle-checkmark path,.icon-circle-checkmark polygon,.icon-circle-checkmark polyline,.icon-circle-checkmark rect,.icon-close circle,.icon-close ellipse,.icon-close g,.icon-close line,.icon-close path,.icon-close polygon,.icon-close polyline,.icon-close rect,.icon-email circle,.icon-email ellipse,.icon-email g,.icon-email line,.icon-email path,.icon-email polygon,.icon-email polyline,.icon-email rect,.icon-filter circle,.icon-filter ellipse,.icon-filter g,.icon-filter line,.icon-filter path,.icon-filter polygon,.icon-filter polyline,.icon-filter rect,.icon-gift circle,.icon-gift ellipse,.icon-gift g,.icon-gift line,.icon-gift path,.icon-gift polygon,.icon-gift polyline,.icon-gift rect,.icon-globe circle,.icon-globe ellipse,.icon-globe g,.icon-globe line,.icon-globe path,.icon-globe polygon,.icon-globe polyline,.icon-globe rect,.icon-hamburger circle,.icon-hamburger ellipse,.icon-hamburger g,.icon-hamburger line,.icon-hamburger path,.icon-hamburger polygon,.icon-hamburger polyline,.icon-hamburger rect,.icon-heart circle,.icon-heart ellipse,.icon-heart g,.icon-heart line,.icon-heart path,.icon-heart polygon,.icon-heart polyline,.icon-heart rect,.icon-leaf circle,.icon-leaf ellipse,.icon-leaf g,.icon-leaf line,.icon-leaf path,.icon-leaf polygon,.icon-leaf polyline,.icon-leaf rect,.icon-lock circle,.icon-lock ellipse,.icon-lock g,.icon-lock line,.icon-lock path,.icon-lock polygon,.icon-lock polyline,.icon-lock rect,.icon-package circle,.icon-package ellipse,.icon-package g,.icon-package line,.icon-package path,.icon-package polygon,.icon-package polyline,.icon-package rect,.icon-phone circle,.icon-phone ellipse,.icon-phone g,.icon-phone line,.icon-phone path,.icon-phone polygon,.icon-phone polyline,.icon-phone rect,.icon-ribbon circle,.icon-ribbon ellipse,.icon-ribbon g,.icon-ribbon line,.icon-ribbon path,.icon-ribbon polygon,.icon-ribbon polyline,.icon-ribbon rect,.icon-search circle,.icon-search ellipse,.icon-search g,.icon-search line,.icon-search path,.icon-search polygon,.icon-search polyline,.icon-search rect,.icon-shield circle,.icon-shield ellipse,.icon-shield g,.icon-shield line,.icon-shield path,.icon-shield polygon,.icon-shield polyline,.icon-shield rect,.icon-size-chart circle,.icon-size-chart ellipse,.icon-size-chart g,.icon-size-chart line,.icon-size-chart path,.icon-size-chart polygon,.icon-size-chart polyline,.icon-size-chart rect,.icon-tag circle,.icon-tag ellipse,.icon-tag g,.icon-tag line,.icon-tag path,.icon-tag polygon,.icon-tag polyline,.icon-tag rect,.icon-truck circle,.icon-truck ellipse,.icon-truck g,.icon-truck line,.icon-truck path,.icon-truck polygon,.icon-truck polyline,.icon-truck rect,.icon-user circle,.icon-user ellipse,.icon-user g,.icon-user line,.icon-user path,.icon-user polygon,.icon-user polyline,.icon-user rect{fill:none!important;stroke-width:var(--iconWeight);stroke:currentColor!important;stroke-linecap:var(--iconLinecaps);stroke-linejoin:var(--iconLinecaps)}.icon-cart circle{fill:currentColor!important}.icon__fallback-text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);overflow:hidden;position:absolute;height:1px;width:1px}.js-drawer-open{overflow:hidden}.drawer{display:none;position:fixed;overflow:hidden;-webkit-overflow-scrolling:touch;top:0;bottom:0;z-index:30;color:#000;color:var(--colorDrawerText);background-color:#fff;background-color:var(--colorDrawers);transition:transform .2s cubic-bezier(.165,.84,.44,1)}@media screen and (max-height:400px){.drawer{overflow:scroll}.drawer .drawer__contents{height:auto}}.drawer a:not(.btn){color:#000;color:var(--colorDrawerText)}.drawer a:not(.btn):hover{color:#000;color:var(--colorDrawerText)}.drawer input,.drawer textarea{border-color:#000;border-color:var(--colorDrawerText)}.drawer input:active,.drawer input:focus,.drawer textarea:active,.drawer textarea:focus{border-color:#000;border-color:var(--colorDrawerTextDarken)}.drawer--cart{padding-bottom:calc(env(safe-area-inset-bottom)*1.18)}.drawer--cart.drawer--is-open{display:block;transition-duration:.25s}@media only screen and (min-width:769px){.drawer--cart{width:500px;right:-500px}.drawer--cart.drawer--is-open{transform:translate(-500px)}}@media only screen and (max-width:768px){.drawer--cart{width:100%;height:100%;left:0;right:0;top:auto;transform:translateY(100%)}.drawer--cart.drawer--is-open{transform:translateY(0)}.drawer--cart--static{height:auto;max-height:100%;padding-bottom:0;padding-bottom:calc(env(safe-area-inset-bottom)*1.18)}}.js-drawer-closing body:after,.js-drawer-open body:after{content:"";display:block;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#32454f;background-color:var(--colorTextBody);opacity:0;z-index:26}.js-drawer-open body:after{animation:partial-fade-in .5s forwards}.js-drawer-closing body:after{animation:partial-fade-out .4s forwards}.drawer__footer,.drawer__header,.drawer__scrollable{padding-left:20px;padding-right:20px}@media only screen and (min-width:769px){.drawer__footer,.drawer__header,.drawer__scrollable{padding-left:40px;padding-right:40px}}.drawer__header{display:flex;align-items:center;height:60px;width:100%;padding-top:15.38462px;padding-bottom:15.38462px;margin-bottom:0;overflow:visible}@media only screen and (min-width:769px){.drawer__header{height:80px}}.drawer__header--auto{height:auto}.drawer__title{font-family:var(--typeHeaderPrimary),var(--typeHeaderFallback);font-weight:var(--typeHeaderWeight);font-style:var(--typeHeaderStyle);letter-spacing:var(--typeHeaderSpacing);line-height:var(--typeHeaderLineHeight)}[data-type_header_capitalize=true] .drawer__title{text-transform:uppercase}.drawer__title{font-size:24px;width:100%;flex:1 1 auto}.drawer__close{flex:1 1 auto}.drawer__close-button{position:relative;right:-20px;height:100%;padding:15px;color:inherit}.drawer__close-button:active{background-color:#f2f2f2;background-color:var(--colorDrawersDim)}.drawer__close-button .icon{height:28px;width:28px}.drawer__close--left{text-align:left}.drawer__close--left .drawer__close-button{right:auto;left:-20px}.drawer__contents{height:100%;display:flex;flex-direction:column}.drawer__inner,.drawer__scrollable{flex:1 1 auto;display:flex;flex-direction:column;overflow-y:hidden}.drawer__scrollable{padding-top:20px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}@media only screen and (min-width:769px){.drawer__scrollable{padding-top:40px}}.drawer__footer{padding-top:20px;padding-bottom:20px}@media only screen and (min-width:769px){.drawer__footer{padding-top:29.62963px}}.drawer__footer .additional-checkout-buttons{margin-bottom:10px}.drawer__footer .additional-checkout-buttons [data-shopify-buttoncontainer]{justify-content:center}.drawer__footer .additional-checkout-buttons [data-shopify-buttoncontainer]>*{height:auto!important}.drawer__cart.is-loading{min-height:100px}.drawer__cart.is-loading .cart{transition:opacity .3s ease .7s;opacity:.4}.cart-notes{margin-top:10px;margin-bottom:10px;min-height:60px;height:60px}@media only screen and (min-width:769px){.cart-notes{min-height:80px;height:80px}}.sticky-cart{box-sizing:content-box;display:none;position:fixed;bottom:0;border-bottom:calc(env(safe-area-inset-bottom)*1.18) solid;border-bottom-color:#fff;border-bottom-color:var(--colorDrawers);left:0;right:0;height:88px;z-index:20}@media only screen and (min-width:769px){.sticky-cart{height:108px}}.sticky-cart--open{display:block;animation:cart-rise-up .35s forwards}.screen-layer-animating .sticky-cart--open{transform:translateY(120%);animation:none}.sticky-cart__inner{display:flex;align-items:center;justify-content:center;height:100%;background-color:#fff;background-color:var(--colorDrawers);color:#000;color:var(--colorDrawerText);text-align:center}.sticky-cart__inner a:not(.btn){color:#000;color:var(--colorDrawerText);border-bottom:2px solid;border-bottom-color:#000;border-bottom-color:var(--colorDrawerText)}.sticky-cart__inner .site-nav__link,.sticky-cart__inner .site-nav__link:hover{color:#000;color:var(--colorDrawerText)}.sticky-cart__item{display:inline-block;vertical-align:middle;margin:15px 7px}@media only screen and (min-width:769px){.sticky-cart__item{margin:15px}}.cart__checkout--drawer,.sticky-cart__item.btn{font-size:calc(var(--typeBaseSize) + 2px);padding:10px 20px}[data-button_type_style=caps] .cart__checkout--drawer,[data-button_type_style=caps] .sticky-cart__item.btn{letter-spacing:.2em;text-transform:uppercase;font-size:calc(var(--typeBaseSize) - 2px);padding:15px}@media only screen and (min-width:769px){.cart__checkout--drawer,.sticky-cart__item.btn{padding:15px 30px}}.sticky-cart__item.btn{background-color:#000;background-color:var(--colorDrawerText);color:#fff;color:var(--colorDrawers)}.sticky-cart__item.btn.btn--loading span{color:#000;color:var(--colorDrawerText)}.quick-view__thumb-cart,.site-nav__thumb-cart{display:none;align-items:center;background-color:#f75d44;background-color:var(--colorCartDot);color:#fff;color:var(--colorCartDotText);height:68px;padding:0 20px;border-top-right-radius:var(--buttonRadius);border-bottom-right-radius:var(--buttonRadius)}.cart-has-items .quick-view__thumb-cart,.cart-has-items .site-nav__thumb-cart{display:flex}.quick-view__thumb-cart .cart-link,.site-nav__thumb-cart .cart-link{left:-1px}.site-nav__thumb-button.is-active+.quick-view__thumb-cart,.site-nav__thumb-button.is-active+.site-nav__thumb-cart{display:none}.quick-view__thumb-cart:active,.quick-view__thumb-cart:hover,.site-nav__thumb-cart:active,.site-nav__thumb-cart:hover{color:#fff;color:var(--colorCartDotText)}.quick-view__thumb-cart .icon,.site-nav__thumb-cart .icon{width:30px;height:30px}[dir=rtl] .quick-view__thumb-cart,[dir=rtl] .site-nav__thumb-cart{border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--buttonRadius);border-bottom-left-radius:var(--buttonRadius)}.template-cart .site-nav__thumb-cart{display:none}.quick-view__thumb-cart{position:fixed;bottom:20px;bottom:calc(20px + env(safe-area-inset-bottom)*1.18);right:20px;border-radius:100%;transition:opacity .15s ease-in;z-index:5}.screen-layer--is-sliding .quick-view__thumb-cart{opacity:0}.placeholder-svg{fill:#32454f59;background-color:#f4f4f4;width:100%;height:100%;max-width:100%;max-height:100%;display:block;padding:30px 0}.placeholder-noblocks{padding:40px;text-align:center}.placeholder-content{overflow:hidden;animation:placeholder-shimmer 1.3s linear infinite;background-size:400% 100%;margin-bottom:20px;border-radius:4px}@media only screen and (max-width:768px){.placeholder-content{margin-left:auto;margin-right:auto}}.appear-delay-20{transition:transform 1s cubic-bezier(.165,.84,.44,1) 1.3s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.4s}.appear-delay-19{transition:transform 1s cubic-bezier(.165,.84,.44,1) 1.24s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.34s}.appear-delay-18{transition:transform 1s cubic-bezier(.165,.84,.44,1) 1.18s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.28s}.appear-delay-17{transition:transform 1s cubic-bezier(.165,.84,.44,1) 1.12s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.22s}.appear-delay-16{transition:transform 1s cubic-bezier(.165,.84,.44,1) 1.06s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.16s}.appear-delay-15{transition:transform 1s cubic-bezier(.165,.84,.44,1) 1s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.1s}.appear-delay-14{transition:transform 1s cubic-bezier(.165,.84,.44,1) .94s,opacity 1s cubic-bezier(.165,.84,.44,1) 1.04s}.appear-delay-13{transition:transform 1s cubic-bezier(.165,.84,.44,1) .88s,opacity 1s cubic-bezier(.165,.84,.44,1) .98s}.appear-delay-12{transition:transform 1s cubic-bezier(.165,.84,.44,1) .82s,opacity 1s cubic-bezier(.165,.84,.44,1) .92s}.appear-delay-11{transition:transform 1s cubic-bezier(.165,.84,.44,1) .76s,opacity 1s cubic-bezier(.165,.84,.44,1) .86s}.appear-delay-10{transition:transform 1s cubic-bezier(.165,.84,.44,1) .7s,opacity 1s cubic-bezier(.165,.84,.44,1) .8s}.appear-delay-9{transition:transform 1s cubic-bezier(.165,.84,.44,1) .64s,opacity 1s cubic-bezier(.165,.84,.44,1) .74s}.appear-delay-8{transition:transform 1s cubic-bezier(.165,.84,.44,1) .58s,opacity 1s cubic-bezier(.165,.84,.44,1) .68s}.appear-delay-7{transition:transform 1s cubic-bezier(.165,.84,.44,1) .52s,opacity 1s cubic-bezier(.165,.84,.44,1) .62s}.appear-delay-6{transition:transform 1s cubic-bezier(.165,.84,.44,1) .46s,opacity 1s cubic-bezier(.165,.84,.44,1) .56s}.appear-delay-5{transition:transform 1s cubic-bezier(.165,.84,.44,1) .4s,opacity 1s cubic-bezier(.165,.84,.44,1) .5s}.appear-delay-4{transition:transform 1s cubic-bezier(.165,.84,.44,1) .34s,opacity 1s cubic-bezier(.165,.84,.44,1) .44s}.appear-delay-3{transition:transform 1s cubic-bezier(.165,.84,.44,1) .28s,opacity 1s cubic-bezier(.165,.84,.44,1) .38s}.appear-delay-2{transition:transform 1s cubic-bezier(.165,.84,.44,1) .22s,opacity 1s cubic-bezier(.165,.84,.44,1) .32s}.appear-delay-1{transition:transform 1s cubic-bezier(.165,.84,.44,1) .1s,opacity 1s cubic-bezier(.165,.84,.44,1) .2s}[data-transitions=true] .transition-body{opacity:0}.no-js [data-transitions=true] .transition-body{opacity:1}[data-transitions=true].unloading .loader-logo{display:flex}[data-transitions=true].unloading .loader-logo__img{animation:pulse-fade .4s linear infinite}[data-transitions=true].loaded .transition-body{opacity:1;animation-fill-mode:none}[data-animate_images=true] [class*=appear-delay]{opacity:0;transform:translate3d(0,15px,0);transition:opacity .6s cubic-bezier(.04,0,.2,1),transform .6s cubic-bezier(.04,0,.2,1)}.no-js [data-animate_images=true] [class*=appear-delay]{opacity:1}[data-animate_images=true] .aos-animate [class*=appear-delay]{opacity:1;transform:translateZ(0)}[data-animate_images=true] .image-wrap .animate-me,[data-animate_images=true] .image-wrap img:not([role=presentation]),[data-animate_images=true] .image-wrap svg{opacity:0}.no-js [data-animate_images=true] .image-wrap .animate-me,.no-js [data-animate_images=true] .image-wrap img:not([role=presentation]),.no-js [data-animate_images=true] .image-wrap svg{opacity:1}[data-animate_images=true] .aos-animate.image-wrap .animate-me,[data-animate_images=true] .aos-animate .image-wrap .animate-me,[data-animate_images=true] .aos-animate.image-wrap .lazyloaded:not([role=presentation]),[data-animate_images=true] .aos-animate .image-wrap .lazyloaded:not([role=presentation]),[data-animate_images=true] .aos-animate.image-wrap img[data-modal-lazy],[data-animate_images=true] .aos-animate .image-wrap img[data-modal-lazy],[data-animate_images=true] .aos-animate.image-wrap svg,[data-animate_images=true] .aos-animate .image-wrap svg{animation:fade-in .6s ease 0s forwards}.spr-badge-caption,.spr-badge-starrating,.grid-product__content .spr-starrating{display:inline-block}.shopify-product-reviews-badge{display:block;min-height:25px}.spr-badge-starrating{white-space:nowrap}.spr-badge-starrating,.spr-icon-star-empty,.spr-icon-star-hover,.spr-icon-star-hover:hover,.spr-starrating,.spr-starratings{color:currentColor}.spr-review-header-title{font-size:22px!important}.spr-icon{font-size:12px!important;vertical-align:middle;display:inline-block}@media only screen and (max-width:768px){.spr-icon{top:0!important}}.spr-badge-caption{margin-left:4px}.spr-container.spr-container{padding:0;border:0;text-align:center}.spr-container .spr-summary-actions-newreview{float:none;color:currentColor}.spr-container .spr-summary-starrating{justify-content:center}.spr-container .spr-form-label,.spr-container .spr-review-content-body{font-size:14px;line-height:1.563}.spr-container .spr-review-header-byline{font-size:11px;opacity:1}.spr-container .spr-review-header-byline strong{font-weight:400}.spr-container .spr-form-label{display:block;text-align:left}.spr-container .spr-summary-actions,.spr-container .spr-summary-caption{display:block}.spr-container .spr-summary-actions{margin-top:10px}@media only screen and (min-width:769px){.product-full-width .spr-container.index-section{margin-top:30px}.product-full-width .spr-container .spr-reviews{display:flex;justify-content:space-around;flex-wrap:wrap}.product-full-width .spr-container .spr-review{flex:0 1 30%;border:1px solid;border-color:#32454f;border-color:var(--colorTextBody);padding:20px!important;margin:1.5%!important}}.grid-product .spr-badge[data-rating="0.0"]{display:none}.grid-product .spr-badge{margin-top:3px}@media only screen and (min-width:769px){.grid-product .spr-badge{margin-bottom:30px}}.grid-product .spr-badge-starrating{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.grid-product .spr-badge-starrating{font-size:calc(var(--typeBaseSize) - 2px)}}.grid-product .spr-badge-starrating{vertical-align:top}.grid-product .spr-badge-caption{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.grid-product .spr-badge-caption{font-size:calc(var(--typeBaseSize) - 2px)}}.grid-product .spr-badge-caption{margin-left:4px}.spr-pagination.spr-pagination{flex:1 0 100%;border:0}@media only screen and (max-width:768px){#shopify-product-reviews{overflow:visible!important}.spr-reviews.spr-reviews{display:flex;overflow:hidden;overflow-x:scroll;-webkit-overflow-scrolling:touch;margin:30px -30px 0;padding-right:30px}.spr-review.spr-review{padding:20px 24px!important;margin-right:30px;border:1px solid;border-color:#32454f;border-color:var(--colorTextBody);flex:0 0 66vw;width:66vw}.spr-review.spr-review:first-child{margin-left:30px;margin-top:0}.spr-pagination.spr-pagination{flex:1 0 auto;padding:0;display:flex;align-items:center}.spr-pagination.spr-pagination .spr-pagination-next,.spr-pagination.spr-pagination .spr-pagination-prev{position:static;padding:0 15px}}tool-tip[data-tool-tip=size-chart]:before{background:#ffffff;background:var(--colorBody);opacity:.6}tool-tip[data-tool-tip-open=true] .tool-tip__inner{padding:45px}@media only screen and (max-width:768px){tool-tip[data-tool-tip-open=true] .tool-tip__inner{padding:45px 20px 20px}}.tool-tip__close{padding:10px}.site-footer{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.site-footer{font-size:calc(var(--typeBaseSize) - 2px)}}.site-footer{margin-top:40px}@media only screen and (min-width:769px){.site-footer{margin-top:80px}.template-index .site-footer{margin-top:0}}.site-footer__section+.site-footer__section{margin-top:10px}@media only screen and (min-width:769px){.site-footer__section+.site-footer__section{margin-top:20px}}.footer__title{font-family:var(--typeHeaderPrimary),var(--typeHeaderFallback);font-weight:var(--typeHeaderWeight);font-style:var(--typeHeaderStyle);letter-spacing:var(--typeHeaderSpacing);line-height:var(--typeHeaderLineHeight)}[data-type_header_capitalize=true] .footer__title{text-transform:uppercase}.site-footer__copyright{font-size:9px}@media only screen and (min-width:769px){.site-footer__copyright{font-size:11px}}.site-footer__copyright>span{padding:0 10px}.site-footer__linklist a{color:currentColor;display:block;padding:5px 10px}.site-footer__section--newsletter{background-color:#1c2d3b;background-color:var(--colorNewsletter);color:#fff;color:var(--colorNewsletterText);padding:80px 0;margin-bottom:80px}@media only screen and (min-width:769px){.site-footer__section--newsletter .page-width{max-width:60vw}}.site-footer__section--newsletter .rte a{color:#fff;color:var(--colorNewsletterText)}.multi-selectors{display:flex;justify-content:center;flex-wrap:wrap}.multi-selectors__item{margin:0 10px}.payment-icons{-webkit-user-select:none;user-select:none;cursor:default}.payment-icons li{cursor:default;margin:0 4px}.errors,.note{border-radius:var(--buttonRadius);padding:6px 18px;margin-bottom:20px;border:2px solid transparent;text-align:left}.errors ol,.errors ul,.note ol,.note ul{margin-top:0;margin-bottom:0}.errors ol:last-child,.errors ul:last-child,.note ol:last-child,.note ul:last-child{margin-bottom:0}.errors li:last-child,.note li:last-child{margin-bottom:0}.errors p,.note p{margin-bottom:0}.note{border-color:#32454f;border-color:var(--colorTextBody)}.errors ul{list-style:disc outside;margin-left:20px}.note--success{color:#56ad6a;background-color:#ecfef0;border-color:#56ad6a}.note--success a{color:#56ad6a;text-decoration:underline}.note--success a:hover{text-decoration:none}.errors,.form-error{color:#d02e2e;background-color:#fff6f6;border-color:#d02e2e}.errors a,.form-error a{color:#d02e2e;text-decoration:underline}.errors a:hover,.form-error a:hover{text-decoration:none}.pagination{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.pagination{font-size:calc(var(--typeBaseSize) - 2px)}}.pagination{margin:0;padding:80px 0 0;text-align:center}.pagination>span{display:inline-block;line-height:1}.pagination a{display:inline-block}.pagination .page.current,.pagination a{padding:8px 12px}.pagination .page.current{opacity:.3}.pagination .next,.pagination .prev{color:#fff;color:var(--colorBtnPrimaryText);background:#1c2d3b;background:var(--colorBtnPrimary);width:43px;height:43px;line-height:27px;border-radius:43px;margin:0 10px}@media only screen and (max-width:768px){.pagination .next,.pagination .prev{width:35px;height:35px;line-height:19px}}.pagination .next .icon,.pagination .prev .icon{color:#fff;color:var(--colorBtnPrimaryText);width:13px;height:13px}@media only screen and (max-width:768px){.pagination .next .icon,.pagination .prev .icon{width:12px;height:12px}}.price-range__slider-wrapper{padding:0 8px;margin-bottom:8px}@media only screen and (max-width:768px){.price-range__slider-wrapper{padding:0 10px}}.price-range__input{display:none}.price-range__display-wrapper{display:flex;flex:1 1 auto;justify-content:space-between;padding:0;margin-bottom:8px;width:100%;min-width:150px}@media only screen and (max-width:768px){.price-range__display-wrapper{padding:0}}.price-range__display-max{padding-left:12px}.noUi-horizontal .noUi-handle{border:0;border-radius:50%;background:#32454f;background:var(--colorTextBody);box-shadow:0 0 1px 2px #fff;width:12px;height:12px;cursor:pointer;right:-6px;top:-3px}.noUi-horizontal .noUi-handle:focus,.noUi-horizontal .noUi-handle:hover{width:14px;height:14px;right:-7px;top:-4px}.noUi-horizontal .noUi-handle:after,.noUi-horizontal .noUi-handle:before{content:none}.noUi-target{background:#f4f4f4;border:0;box-shadow:none}.noUi-connect{background:#32454f;background:var(--colorTextBody)}.noUi-horizontal{height:6px}.rte:after{content:"";display:table;clear:both}.rte+.rte{margin-top:40px}.rte img{height:auto}.rte ol,.rte p,.rte table,.rte ul{margin-bottom:25px}.rte ol:last-child,.rte p:last-child,.rte table:last-child,.rte ul:last-child{margin-bottom:0}.rte ul ul{margin-bottom:0}.rte a{text-decoration:none}.rte h1,.rte h2,.rte h3,.rte h4,.rte h5,.rte h6{margin-top:2.5em;margin-bottom:1em}.rte h1:first-child,.rte h2:first-child,.rte h3:first-child,.rte h4:first-child,.rte h5:first-child,.rte h6:first-child{margin-top:0}.rte h1 a,.rte h2 a,.rte h3 a,.rte h4 a,.rte h5 a,.rte h6 a{text-decoration:none}.rte meta:first-child+h1,.rte meta:first-child+h2,.rte meta:first-child+h3,.rte meta:first-child+h4,.rte meta:first-child+h5,.rte meta:first-child+h6{margin-top:0}.rte>div{margin-bottom:20px}.rte>div:last-child{margin-bottom:0}.rte li{margin-bottom:0}.rte table{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.rte table{font-size:calc(var(--typeBaseSize) - 2px)}}.rte table{table-layout:fixed}.rte--block{margin-bottom:20px}.text-center.rte ol,.text-center .rte ol,.text-center.rte ul,.text-center .rte ul{list-style-position:inside;margin-left:0}.rte--nomargin{margin-bottom:0}.rte--indented-images img:not([style]),.rte--indented-images img[style="float: none;"]{max-width:100vw;margin:0 -30px;display:block}@media only screen and (min-width:769px){.rte--indented-images img:not([style]),.rte--indented-images img[style="float: none;"]{max-width:130%;margin:40px -15%}}.rte--indented-images p[style] img{display:inline;margin:0;max-width:100%}.header-layout{display:flex;justify-content:space-between}@media only screen and (max-width:768px){.header-layout--mobile-logo-only{justify-content:center}}.header-layout--center{align-items:center}.header-item{display:flex;align-items:center;flex:1 1 auto}.header-item--logo{flex:0 0 auto}.header-item--icons{justify-content:flex-end;flex:0 1 auto}.header-layout--left-center .header-item--icons,.header-layout--left-center .header-item--logo{flex:0 0 200px;max-width:50%}@media only screen and (min-width:769px){.header-layout--left-center .header-item--icons,.header-layout--left-center .header-item--logo{min-width:130px}}@media only screen and (min-width:769px){.header-layout[data-logo-align=center] .header-item--logo{margin:0 26.66667px}}.header-layout[data-logo-align=center] .header-item--icons,.header-layout[data-logo-align=center] .header-item--navigation{flex:1 1 130px}@media only screen and (min-width:769px){.header-layout[data-logo-align=left] .site-header__logo{margin-right:13.33333px}}.header-item--logo-split{display:flex;justify-content:center;align-items:center;flex:1 1 100%}.header-item--logo-split .header-item:not(.header-item--logo){text-align:center;flex:1 1 20%}.header-item--split-left{justify-content:flex-end}.header-item--left .site-nav{margin-left:-12px}@media only screen and (max-width:768px){.header-item--left .site-nav{margin-left:-7.5px}}.header-item--icons .site-nav{margin-right:-12px}@media only screen and (max-width:768px){.header-item--icons .site-nav{margin-right:-7.5px}}.site-header{position:relative;padding:10px 0;background:#ffffff;background:var(--colorNav)}@media only screen and (min-width:769px){.site-header{padding:30px 0}}.site-header--sticky{position:fixed;left:0;right:0;top:0;padding:0;transform:translate3d(0,-100%,0);transition:none;z-index:20}.site-header--opening{transform:translateZ(0);transition:transform .4s cubic-bezier(.165,.84,.44,1)}.site-header__logo{margin:13.33333px 0;display:block}@media only screen and (min-width:769px){.text-center .site-header__logo{padding-right:0;margin:13.33333px auto}}@media only screen and (max-width:768px){.site-header__logo{margin-left:auto;margin-right:auto}}.header-layout[data-logo-align=center] .site-header__logo{margin-left:auto;margin-right:auto;text-align:center}.site-header__logo a,.site-header__logo a:hover{text-decoration:none}.site-header__logo img{display:block}.header-layout--center .site-header__logo img{margin:0 auto}.site-header__logo-link{display:flex;align-items:center;color:#32454f;color:var(--colorNavText)}@media only screen and (max-width:768px){.site-header__logo-link{margin:0 auto}}.site-header__logo-link:hover{color:#32454f;color:var(--colorNavText)}.header-wrapper--overlay{position:absolute;top:0;left:0;right:0;z-index:6;background:none;background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,transparent);transform:translateZ(0)}.header-wrapper--overlay:not(.header-wrapper--sticky) .site-header{background:none}.header-wrapper--sticky{transform:none;background:none}.search-modal__wrapper{border-bottom:2px solid currentColor}.search-modal__input{border:0;padding-left:0;font-size:2em}.search-modal__input:focus{border:0}.search-modal__submit svg{width:40px;height:40px}.search-bar{max-width:100%}.search-bar--page{max-width:300px;margin:40px auto}.search-bar .icon{width:24px;height:24px;vertical-align:middle}.section-header{margin-bottom:40px;text-align:center}@media only screen and (min-width:769px){.section-header{margin-bottom:60px}}.section-header--hero{position:relative;flex:1 1 100%;color:#fff;color:var(--colorHeroText);margin-bottom:20px}@media only screen and (min-width:769px){.section-header--hero{margin-bottom:40px}}.section-header__title{margin-bottom:0}.spr-header-title.spr-header-title{margin-bottom:15px}.section-header__description{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.section-header__description{font-size:calc(var(--typeBaseSize)*1.22)}}.section-header__description{max-width:700px;margin:0 auto}.section-header__title+.section-header__description{margin-top:10px}.section-header__description--large{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.section-header__description--large{font-size:calc(var(--typeBaseSize)*1.22)}}.section-header--404{padding-top:80px}.section-header select{margin-left:20px}.section-header .btn{float:right;margin:0}.site-nav{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.site-nav{font-size:calc(var(--typeBaseSize)*1.22)}}.site-nav{margin:0}.site-header--sticky .site-nav{font-size:calc(var(--typeBaseSize)*1.22 - 3px)}.text-center .site-navigation{margin:0 auto}.text-right .site-navigation{width:100%}.header-layout--left .site-navigation{padding-left:13.33333px}.site-nav--icons{display:flex;align-items:center}.site-nav__icons{white-space:nowrap}.site-nav__item{position:relative;display:inline-block;margin:0}.site-nav__item li{display:block}.site-nav__link{display:inline-block;vertical-align:middle;text-decoration:none;padding:7.5px 15px;white-space:nowrap;color:#32454f;color:var(--colorNavText)}.site-nav__link:hover{color:#32454f;color:var(--colorNavText)}.is-light .site-nav__link,.is-light .site-nav__link:hover{color:#fff}.site-nav--has-dropdown>.site-nav__link{position:relative;z-index:6}@media only screen and (max-width:768px){.site-nav__link{padding:7.5px}.header-layout--center .site-nav__link{padding-left:2px;padding-right:2px}}.site-nav--has-dropdown{z-index:6}.site-nav--has-dropdown.is-focused,.site-nav--has-dropdown:hover{z-index:7}.site-nav--has-dropdown.is-focused>a,.site-nav--has-dropdown:hover>a{color:#32454f!important;color:var(--colorTextBody)!important;background-color:#fff;background-color:var(--colorBody);opacity:1;transition:none}[data-animate_underlines=true] .site-nav__item>a:before{content:"";position:absolute;left:15px;right:100%;bottom:0;display:block;border-bottom:2px solid currentColor;transition:right .3s ease;z-index:6}[data-animate_underlines=true] .site-nav--active>a:before,[data-animate_underlines=true] .site-nav__item.is-focused>a:before,[data-animate_underlines=true] .site-nav__item:hover>a:before{left:15px;right:15px}.site-nav__link--icon{padding-left:12px;padding-right:12px}@media only screen and (max-width:768px){.site-nav__link--icon{padding-left:7.5px;padding-right:7.5px}.site-nav__link--icon+.site-nav__link--icon{margin-left:-3px}}.site-nav__link--icon .icon{display:block;width:30px;height:30px}.site-nav__dropdown{position:absolute;left:0;margin:0;z-index:5;display:block;visibility:hidden;background-color:#fff;background-color:var(--colorBody);min-width:100%;padding:13.33333px 0 5px;box-shadow:0 10px 20px #00000017;transform:translate3d(0,-12px,0)}.is-focused>.site-nav__dropdown,.site-nav--has-dropdown:hover .site-nav__dropdown{display:block;visibility:visible;transform:translateZ(0);transition:all .3s cubic-bezier(.2,.06,.05,.95)}.header-layout--right .site-nav--has-dropdown:last-child .site-nav__dropdown,.header-layout--right .site-nav--has-dropdown:nth-last-child(2) .site-nav__dropdown{left:auto;right:0}.header-layout--right .site-nav--has-dropdown:last-child .site-nav__dropdown .site-nav__deep-dropdown,.header-layout--right .site-nav--has-dropdown:nth-last-child(2) .site-nav__dropdown .site-nav__deep-dropdown{left:auto;right:100%}.header-layout--right .site-nav--has-dropdown:last-child .site-nav__dropdown .site-nav__deep-dropdown:before,.header-layout--right .site-nav--has-dropdown:nth-last-child(2) .site-nav__dropdown .site-nav__deep-dropdown:before{left:auto;right:0;background-image:linear-gradient(270deg,rgba(0,0,0,.09),transparent)}.site-nav__dropdown li{margin:0}.site-nav__dropdown>li{position:relative}.site-nav__dropdown>li>a{position:relative;z-index:6}.site-nav__dropdown a{background-color:#fff;background-color:var(--colorBody);padding-right:30px}.site-nav__deep-dropdown{background-color:#fff;background-color:var(--colorBody);box-shadow:0 10px 20px #00000017;position:absolute;top:0;left:100%;margin:0;visibility:hidden;opacity:0;z-index:5;transform:translate3d(-12px,0,0)}.header-layout--center .site-nav__item:last-child .site-nav__deep-dropdown{left:auto;right:100%}.is-focused>.site-nav__deep-dropdown,.site-nav__deep-dropdown-trigger:hover .site-nav__deep-dropdown{visibility:visible;opacity:1;transform:translateZ(0);transition:all .3s cubic-bezier(.2,.06,.05,.95)}.site-nav__deep-dropdown:before{content:"";display:block;position:absolute;top:0;left:0;bottom:0;width:10px;background-image:linear-gradient(90deg,rgba(0,0,0,.09),transparent);pointer-events:none}.header-layout--center .site-nav__item:last-child .site-nav__deep-dropdown:before{left:auto;right:0;background-image:linear-gradient(270deg,rgba(0,0,0,.09),transparent)}.site-nav__deep-dropdown-trigger:hover .site-nav__dropdown-link--has-children{background-color:#f2f2f2;background-color:var(--colorBodyDim)}.site-nav__dropdown-link--has-children:focus,.site-nav__dropdown-link--has-children:hover{background-color:#f2f2f2;background-color:var(--colorBodyDim)}.site-nav__deep-dropdown-trigger .icon-chevron-down{position:absolute;top:50%;right:10px;width:10px;height:10px;transform:rotate(-90deg) translate(50%)}.cart-has-items .site-nav__link--cart.site-nav__link--cart{background-color:#f75d44;background-color:var(--colorCartDot);color:#fff;color:var(--colorCartDotText);border-radius:50%;padding:12px}.cart-has-items .site-nav__link--cart.site-nav__link--cart:active,.cart-has-items .site-nav__link--cart.site-nav__link--cart:hover{color:#fff;color:var(--colorCartDotText)}@media only screen and (min-width:769px){.site-nav__link--icon .icon{width:28px;height:28px}.site-header--sticky .site-nav__link--icon .icon{width:24px;height:24px}}.cart-link{position:relative;display:block;line-height:1}.site-nav__link--cart .cart-link{left:-1px}.cart-link__bubble{display:none;background-color:currentColor;text-align:center;line-height:15px}.cart-has-items .cart-link__bubble{display:block;position:absolute;top:14px;right:-2px;width:15px;height:15px;border-radius:50%}.cart-has-items [data-icon=cart] .cart-link__bubble{top:0;right:-4px}.cart-link__bubble-num{display:block;font-size:8px;letter-spacing:-.5px;color:#f75d44;color:var(--colorCartDot)}.page-container{display:block;transition:all .45s cubic-bezier(.29,.63,.44,1)}.js-toggle-slide-nav .icon-close{display:none}.js-toggle-slide-nav.is-active .icon-close{display:inline-block}.js-toggle-slide-nav.is-active .icon-hamburger,.js-toggle-slide-nav.is-active .icon-menu-label{display:none}.icon-menu-label{margin-left:5px}.slide-nav{display:block;transform:translateZ(0);transition:all .45s cubic-bezier(.29,.63,.44,1);margin:0;padding:15px 0 0}.body--sticky-cart-open .slide-nav{padding-bottom:15px}.sub-nav--is-open .slide-nav{transform:translate3d(-100%,0,0)}.third-nav--is-open .slide-nav{transform:translate3d(-200%,0,0)}.slide-nav button{background-color:transparent;border:0;margin:0}.slide-nav a,.slide-nav button{color:#fff;color:var(--colorBtnPrimaryText)}.slide-nav a:active,.slide-nav a:focus,.slide-nav a:hover,.slide-nav button:active,.slide-nav button:focus,.slide-nav button:hover{color:#fff;color:var(--colorBtnPrimaryText)}.slide-nav__link,.slide-nav__sublist-link{font-family:var(--typeHeaderPrimary),var(--typeHeaderFallback);font-weight:var(--typeHeaderWeight);font-style:var(--typeHeaderStyle);letter-spacing:var(--typeHeaderSpacing);line-height:var(--typeHeaderLineHeight)}[data-type_header_capitalize=true] .slide-nav__link,[data-type_header_capitalize=true] .slide-nav__sublist-link{text-transform:uppercase}.slide-nav__link,.slide-nav__sublist-link{display:block;width:100%;padding:8px 16px;transition:background .15s ease;transition:var(--colorBtnPrimaryBgTransition);text-align:center}.slide-nav__link:active,.slide-nav__sublist-link:active{background-color:#3d6280;background-color:var(--colorBtnPrimaryActive)}.slide-nav__link{position:relative;transition:opacity .5s ease}.sub-nav--is-open .slide-nav__link:not(.slide-nav__sublist-link){opacity:0;transition-delay:.15s}.slide-nav__sublist-link:not(.slide-nav__sublist-header){padding-right:16px;padding-left:16px}.slide-nav__sublist-header{padding-right:63px}.slide-nav__item{display:block;width:100%;margin:0}.slide-nav__item .icon{position:absolute;top:50%;left:50%;height:12px;width:10px;margin:-6px 0 0 -5px}.slide-nav__return-btn{position:relative;padding:24px 0;width:55px;vertical-align:middle}.slide-nav__icon{display:block;position:absolute;right:0;top:0;bottom:0;padding-left:30px;padding-right:30px;pointer-events:none;overflow:hidden}.slide-nav__table{display:table;width:100%;margin-bottom:20px}.slide-nav__table-cell{display:table-cell;vertical-align:middle;width:1%;text-align:left;white-space:normal}.slide-nav__toggle-button{padding:20px 15px}.slide-nav__dropdown{display:block;visibility:hidden;position:absolute;background-color:#1c2d3b;background-color:var(--colorBtnPrimary);z-index:8;width:100%;top:0;right:-100%;padding:15px 0 0;margin:0;opacity:0;transition:all 1s ease .15s}.body--sticky-cart-open .slide-nav__dropdown{padding-bottom:15px}.slide-nav__dropdown.is-active{visibility:visible;opacity:1}.slide-nav__dropdown .slide-nav__sublist-header{display:table-cell;vertical-align:middle;padding-left:8px}.site-nav__thumb-menu{position:fixed;bottom:0;bottom:calc(env(safe-area-inset-bottom)*1.18);left:0;right:0;display:flex;margin:20px;z-index:20}@media only screen and (min-width:769px){.site-nav__thumb-menu{margin:40px;max-width:350px}}.js-animate .site-nav__thumb-menu{transition:transform .25s}.body--sticky-cart-open .site-nav__thumb-menu{display:none}@media screen and (max-height:400px){.site-nav__thumb-menu{display:none}}.site-nav__thumb-menu--inactive{transform:translateY(200%)}.btn.site-nav__thumb-button{width:100%;font-size:19px;letter-spacing:.2em;text-transform:uppercase;height:68px}.btn.site-nav__thumb-button .icon{width:30px;height:30px}[data-button_style=round] .site-nav__thumb-button.is-active{border-top-right-radius:0;border-top-left-radius:0}[dir=ltr] [data-button_style=round]:not(.template-cart).cart-has-items .site-nav__thumb-button{border-top-right-radius:0}[dir=ltr] [data-button_style=round]:not(.template-cart).cart-has-items .site-nav__thumb-button:not(.is-active){border-bottom-right-radius:0}[dir=rtl] [data-button_style=round]:not(.template-cart).cart-has-items .site-nav__thumb-button{border-top-left-radius:0}[dir=rtl] [data-button_style=round]:not(.template-cart).cart-has-items .site-nav__thumb-button:not(.is-active){border-bottom-left-radius:0}.slide-nav__overflow--thumb{display:none;overflow-x:hidden;position:fixed;left:40px;bottom:108px;bottom:calc(108px + env(safe-area-inset-bottom)*1.18);max-height:calc(100vh - 148px);transition:all .2s ease-out;z-index:18}[data-button_style=round] .slide-nav__overflow--thumb{border-top-right-radius:var(--buttonRadius);border-top-left-radius:var(--buttonRadius)}.slide-nav__overflow--thumb.js-menu--is-open{display:block;background-color:#1c2d3b;background-color:var(--colorBtnPrimary);transition:background-color .1s ease .25s}@media only screen and (min-width:769px){.slide-nav__overflow--thumb{width:100%;max-width:350px}.body--sticky-cart-open .slide-nav__overflow--thumb{left:50%;transform:translate(-50%);max-width:500px}}@media only screen and (max-width:768px){.slide-nav__overflow--thumb{left:20px;right:20px;bottom:88px;bottom:calc(88px + env(safe-area-inset-bottom)*1.18);max-height:calc(100vh - 108px);max-width:100%}.body--sticky-cart-open .slide-nav__overflow--thumb{left:0;right:0}}.slide-nav__overflow--thumb .slide-nav__dropdown{background-color:#1c2d3b;background-color:var(--colorBtnPrimary)}[data-button_style=round] .slide-nav__overflow--thumb .slide-nav__dropdown{border-top-right-radius:var(--buttonRadius);border-top-left-radius:var(--buttonRadius)}.slide-nav__wrapper{background-color:#1c2d3b;background-color:var(--colorBtnPrimary);transform:translateY(100%);transition:all .1s linear}[data-button_style=round] .slide-nav__wrapper{border-top-right-radius:var(--buttonRadius);border-top-left-radius:var(--buttonRadius)}.js-menu--is-open .slide-nav__wrapper{transform:translateY(0);transition:all .25s cubic-bezier(.29,.63,.44,1)}.slide-nav__overflow--slide{display:none;position:absolute;transform:translate3d(0,-100%,0);transition:all .45s cubic-bezier(.29,.63,.44,1);width:100%;background-color:#1c2d3b;background-color:var(--colorBtnPrimary)}.slide-nav__overflow--slide:after{content:"";position:absolute;top:-9px;left:0;width:100%;height:10px;background-color:#fff;background-color:var(--colorBtnPrimaryText)}.slide-nav__overflow--slide.js-menu--is-open{display:block}.modal{display:none;bottom:0;left:0;opacity:1;overflow:hidden;position:fixed;right:0;top:0;z-index:25;align-items:center;justify-content:center}.modal-open .modal:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fff;background-color:var(--colorBody)}.modal.modal--square:before{opacity:.6}.modal-open .modal--newsletter:before{background-color:#32454f80}.modal--is-active{display:flex}@media only screen and (min-width:769px){.modal-open{overflow:hidden}}.modal__inner{transform-style:preserve-3d;flex:0 1 auto;margin:20px;max-width:100%;display:flex;align-items:center}@media only screen and (min-width:769px){.modal__inner{margin:40px}}.modal__inner img{display:block;max-height:90vh}.modal__inner .image-wrap img{max-height:none}.modal__centered{position:relative;flex:0 1 auto;min-width:1px;max-width:100%}.modal--square .modal__centered-content{max-height:80vh;padding:30px;min-width:200px;min-height:200px;overflow:auto;-webkit-overflow-scrolling:touch;background-color:#fff;background-color:var(--colorBody);box-shadow:0 0 10px #0000001a}@media only screen and (min-width:769px){.modal--square .modal__centered-content{padding:60px;max-height:90vh;max-width:1200px}}.modal__close{position:fixed;top:20px;right:20px;border:0;box-shadow:none}@media only screen and (max-width:768px){.modal__close{top:15px;right:15px}}.modal__close:focus{box-shadow:none}.modal--square .modal__close{position:absolute;padding:13.33333px}.modal__close--bottom{position:absolute;bottom:20px;bottom:calc(20px + env(safe-area-inset-bottom)*1.18);left:50%;transform:translate(-50%)}.modal__footer-text{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.modal__footer-text{font-size:calc(var(--typeBaseSize) - 2px)}}.modal__footer-text{position:fixed;padding:20px 40px;bottom:0;text-align:center;background-color:#fff;background-color:var(--colorBody)}.modal .page-content,.modal .page-width{padding:0}.popup-cta{margin:20px 0}.modal--newsletter{align-items:flex-end}.modal--newsletter.modal--is-active .modal__inner{animation:rise-up .5s forwards}.modal--newsletter .modal__inner{width:100%;margin:0}.modal--newsletter .modal__centered{width:100%}.modal--newsletter .modal__centered .modal__centered-content{max-width:none}@media only screen and (max-width:768px){.modal--mobile-friendly{top:auto;bottom:0;overflow:auto}.modal--mobile-friendly.modal--square .modal__centered-content{padding:20px 20px 0}.modal--mobile-friendly.modal--is-active{overflow:auto}.modal-open .modal--mobile-friendly:before{display:none}.modal--mobile-friendly .modal__inner{margin:0;border-top:2px solid;border-top-color:#32454f;border-top-color:var(--colorTextBody)}.modal--mobile-friendly .modal__close{background:none;padding:5px;margin:0}.modal--mobile-friendly .modal__title{margin-right:40px}}.screen-layer-open.video-modal-open .root{display:block}.screen-layer-open.video-modal-open .modal{z-index:26}.js-qty__wrapper{position:relative;max-width:80px;min-width:60px;overflow:visible;background-color:#fff;background-color:var(--colorInputBg);color:#32454f;color:var(--colorInputText)}.js-qty__wrapper.is-loading{opacity:.5;pointer-events:none}.js-qty__num{display:block;background:none;text-align:center;width:100%;padding:5px 20px;margin:0;z-index:1}.js-qty__adjust{cursor:pointer;position:absolute;display:block;top:0;bottom:0;border:0 none;background:none;text-align:center;overflow:hidden;padding:0 10px;line-height:1;-webkit-user-select:none;user-select:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:background-color .1s ease-out;z-index:2;fill:#32454f;fill:var(--colorInputText)}.js-qty__adjust .icon{display:block;font-size:8px;vertical-align:middle;width:10px;height:10px;fill:inherit}.js-qty__adjust:hover{color:#32454f;color:var(--colorInputText)}.js-qty__num:active~.js-qty__adjust,.js-qty__num:focus~.js-qty__adjust{border-color:#32454f;border-color:var(--colorTextBody)}.js-qty__adjust--plus{right:0}.js-qty__adjust--minus{left:0}.drawer .js-qty__wrapper{background-color:transparent;border-color:currentColor;max-width:90px}.drawer .js-qty__num{color:#000;color:var(--colorDrawerText);border-color:currentColor;padding-top:5px;padding-bottom:5px}.drawer .js-qty__adjust{border-color:currentColor;color:#000;color:var(--colorDrawerText);fill:#000;fill:var(--colorDrawerText)}.drawer .js-qty__adjust:hover{opacity:.5}.drawer .js-qty__num:active~.js-qty__adjust,.drawer .js-qty__num:focus~.js-qty__adjust{border-color:currentColor}.screen-layer-open .root{display:none}.screen-layer-closing .root{display:block}.screen-layer{position:relative;display:none;top:0;right:0;bottom:0;left:0;opacity:1;overflow:visible;z-index:25}.screen-layer-animating .screen-layer{position:fixed}.screen-layer__inner{background-color:#fff;background-color:var(--colorBody)}.screen-layer--is-sliding .screen-layer__inner{animation:page-slide-reveal-down .5s forwards}.screen-layer--is-sliding{display:block!important;overflow:hidden}.screen-layer--is-active{display:block!important}.screen-layer__inner{width:100%;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch}.screen-layer__close{position:fixed;bottom:20px;bottom:calc(20px + env(safe-area-inset-bottom)*1.18);left:50%;transition:opacity .15s ease-in;z-index:5;transform:translate(-50%)}@media only screen and (min-width:769px){.screen-layer__close{top:20px;right:20px;left:auto;transform:none;bottom:auto}}.screen-layer--is-sliding .screen-layer__close{opacity:0}.currency-flag{transform:scale(.55);margin:-.55rem}.multi-picker__label{display:inline-block;vertical-align:middle;text-underline-offset:.2rem}.currency-flag+.multi-picker__label{padding-left:10px}.currency-flag-large+.multi-picker__label{padding-left:5px}@media only screen and (max-width:768px){[data-disclosure-currency] .disclosure-list{left:50%;transform:translate(-50%);max-width:95vw}}.disclosure{position:relative}.disclosure__toggle{white-space:nowrap;border-bottom:0}.disclosure-list{background-color:#fff;background-color:var(--colorBody);color:#32454f;color:var(--colorTextBody);bottom:100%;padding:10px 0;margin:0;position:absolute;display:none;min-height:92px;max-height:60vh;overflow-y:auto;border-radius:0;box-shadow:0 0 20px #00000017}.disclosure-list a{color:currentColor}.disclosure-list--visible{display:block}.disclosure-list__item{white-space:nowrap;padding:5px 30px 4px 15px;text-align:left}.disclosure-list__option:focus .multi-picker__label,.disclosure-list__option:hover .multi-picker__label{text-decoration:underline;text-decoration-thickness:2px}.disclosure-list__item--current .multi-picker__label{text-decoration:underline;text-decoration-thickness:2px}.collapsibles-content-wrapper{padding-top:20px;text-align:left}.collapsibles-wrapper--border-bottom{border-bottom:2px solid;border-bottom-color:#32454f;border-bottom-color:var(--colorTextBody)}.collapsibles-wrapper--border-bottom+.collapsibles-wrapper--border-bottom .collapsible-trigger-btn--borders{border-top:0}.product-block--tab+.product-block--tab .collapsible-trigger-btn--borders{border-top:0}.collapsible-trigger{color:inherit;position:relative}.collapsible-trigger__icon{display:block;position:absolute;right:0;top:50%;width:12px;height:12px;transform:translateY(-50%)}.collapsible-trigger__icon .icon{display:block;width:12px;height:12px;transition:all .1s ease-in}.collapsible-trigger--inline{padding:11px 0 11px 35px}.collapsible-trigger--inline .collapsible-trigger__icon{right:auto;left:0}.collapsible-trigger__icon--circle{border:2px solid;border-color:#32454f;border-color:var(--colorTextBody);border-radius:50%;width:24px;height:24px;text-align:center}.collapsible-trigger__icon--circle .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.collapsible-trigger.is-open .collapsible-trigger__icon>.icon-chevron-down{transform:scaleY(-1)}.collapsible-trigger .collapsible-trigger__icon .icon-minus,.collapsible-trigger.is-open .collapsible-trigger__icon .icon-plus{display:none}.collapsible-trigger.is-open .collapsible-trigger__icon .icon-minus{display:block}.collapsible-content{transition:opacity 0s cubic-bezier(.25,.46,.45,.94),height 0s cubic-bezier(.25,.46,.45,.94)}.collapsible-content.is-open{visibility:visible;opacity:1;transition:opacity 0s cubic-bezier(.25,.46,.45,.94),height 0s cubic-bezier(.25,.46,.45,.94)}.collapsible-content--all{visibility:hidden;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;opacity:0;height:0}.collapsible-content--all .collapsible-content__inner{transform:translateY(15px)}.collapsible-content--all .collapsible-content__inner--no-translate{transform:translateY(0)}@media only screen and (max-width:768px){.collapsible-content--small{visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;opacity:0;height:0}.collapsible-content--small .collapsible-content__inner{transform:translateY(40px)}.collapsible-content--small .collapsible-content__inner--no-translate{transform:translateY(0)}}.collapsible-content__inner{opacity:0;transition:transform 0s cubic-bezier(.25,.46,.45,.94)}.is-open .collapsible-content__inner{opacity:1;transform:translateY(0);transition:opacity .6s cubic-bezier(.04,0,.2,1),transform .4s cubic-bezier(.04,0,.2,1)}.rte.collapsible-content__inner--faq{padding-bottom:40px}.collapsible-trigger[aria-expanded=true] .collapsible-label__closed,.collapsible-label__open{display:none}.collapsible-trigger[aria-expanded=true] .collapsible-label__open{display:inline-block}.pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;touch-action:none;z-index:1500;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:none}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:grab}.pswp--dragging .pswp__img{cursor:grabbing}.pswp__bg{position:absolute;left:0;top:0;width:100%;height:100%;background:#ffffff;background:var(--colorBody);opacity:0;transform:translateZ(0);-webkit-backface-visibility:hidden}.pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}.pswp__container,.pswp__zoom-wrap{touch-action:none;position:absolute;left:0;right:0;top:0;bottom:0}.pswp__container,.pswp__img{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;transform-origin:left top;transition:transform 333ms cubic-bezier(.4,0,.22,1)}.pswp__bg{will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden}.pswp__item{position:absolute;left:0;right:0;top:0;bottom:0;overflow:hidden}.pswp__img{position:absolute;width:auto;height:auto;top:0;left:0}.pswp__img--placeholder{-webkit-backface-visibility:hidden}.pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;line-height:16px;margin-top:-8px;color:#ccc}.pswp__error-msg a{color:#ccc;text-decoration:underline}.pswp__button{position:relative}.pswp__button:after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0}.pswp__button--arrow--left .icon,.pswp__button--arrow--right .icon{width:13px;height:13px;margin:8px}.pswp__button[disabled]{opacity:0;pointer-events:none}.pswp__ui{position:absolute;display:flex;justify-content:center;align-items:center;bottom:40px;left:0;right:0;transform:translateY(0);transition:transform .25s .6s}.pswp__ui .btn{margin:15px}.pswp__ui--hidden{transform:translateY(150%);transition:transform .25s}html.pswp-open-in-ios,html.pswp-open-in-ios body{background:#444;height:var(--window-inner-height);overflow:hidden;box-sizing:border-box}.pswp-open-in-ios body>*{display:none}.pswp-open-in-ios body .pswp.pswp--open{display:block}.shopify-model-viewer-ui .shopify-model-viewer-ui__controls-area{opacity:1;background:#ffffff;background:var(--colorBody);border-color:#32454f0d;border-radius:50px}.shopify-model-viewer-ui .shopify-model-viewer-ui__button,.shopify-model-viewer-ui .shopify-model-viewer-ui__button--control:hover{color:#32454f;color:var(--colorTextBody)}.shopify-model-viewer-ui .shopify-model-viewer-ui__button--control.focus-visible:focus,.shopify-model-viewer-ui .shopify-model-viewer-ui__button--control:active{color:#32454f;color:var(--colorTextBody);background:rgba(50,69,79,.05)}.shopify-model-viewer-ui .shopify-model-viewer-ui__button--control:not(:last-child):after{border-color:#32454f0d}.shopify-model-viewer-ui .shopify-model-viewer-ui__button--poster{background-color:#32454f;background-color:var(--colorTextBody);color:#fff;color:var(--colorBody);border-radius:100%;border:1px solid;border-color:#ffffff0d}.shopify-model-viewer-ui .shopify-model-viewer-ui__button--poster:focus,.shopify-model-viewer-ui .shopify-model-viewer-ui__button--poster:hover{color:#fff;color:var(--colorBody)}.product-single__view-in-space{display:block;color:#32454f;color:var(--colorTextBody);background-color:#32454f14;width:100%;margin:40px 0 10px;padding:5px 10px 10px}.slick-dotted.slick-slider+.product-single__view-in-space{margin-top:-10px}.product-single__view-in-space[data-shopify-xr-hidden]{display:none}.product-single__view-in-space-text{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.product-single__view-in-space-text{font-size:calc(var(--typeBaseSize) - 2px)}}.product-single__view-in-space-text{display:inline-block;vertical-align:middle;margin-left:5px}.shopify-model-viewer-ui,.shopify-model-viewer-ui model-viewer{display:block;position:absolute;top:0;left:0;width:100%;height:100%}.shopify-model-viewer-ui__button[hidden]{display:none}.product-single__close-media{position:absolute;top:10px;right:10px;z-index:2}.social-sharing .icon{height:18px;width:18px}.social-sharing__link{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.social-sharing__link{font-size:calc(var(--typeBaseSize) - 2px)}}.social-sharing__link{display:inline-block;color:#32454f;color:var(--colorTextBody);border-radius:2px;margin:0 18px 0 0;text-decoration:none;font-weight:400}.social-sharing__link:last-child{margin-right:0}.social-sharing__title{display:inline-block;vertical-align:middle;padding-right:15px;padding-left:3px}.grid-search{margin-bottom:40px}.grid-search__product{position:relative;text-align:center}.grid-search__page-link,.grid-search__product-link{height:280px}.grid-search__page-link{display:block;background-color:#fafafa;padding:20px;color:#32454f;color:var(--colorTextBody);overflow:hidden;text-overflow:ellipsis}.grid-search__page-link:focus,.grid-search__page-link:hover{background-color:#f5f5f5}.grid-search__page-content{display:block;height:100%;overflow:hidden}.grid-search__page-content img{display:block;margin-bottom:10px}.grid-search__image{display:block;padding:20px;margin:0 auto;max-height:100%;max-width:100%}@media only screen and (min-width:769px){.grid-search__image{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}.index-section{margin:60px 0}.index-section--alt{margin:0;padding:60px 0}.index-section--overflow-scroller{margin-bottom:30px}.index-section--small{margin:36px 0}.index-section--faq{margin-bottom:60px}@media only screen and (min-width:769px){.index-section{margin:120px 0}.index-section--alt{margin:0;padding:120px 0}.index-section--small{margin:60px 0}.index-section--faq{margin:60px 0 30px}}.page-blocks--flush .page-width{padding:0}.page-blocks>div:first-child .index-section{margin-top:0}.feature-row-wrapper{overflow:hidden;direction:ltr}.feature-row{margin:0 auto;display:flex;justify-content:space-between;align-items:center}@media only screen and (min-width:1550px){.feature-row{margin:0 6%}}@media only screen and (max-width:768px){.feature-row{flex-direction:column;margin:0}}@media only screen and (max-width:768px){.feature-row--small-none{display:block}}.feature-row__item{flex:0 1 57%;margin:0 auto}@media only screen and (max-width:768px){.feature-row__item{flex:1 1 auto;max-width:100%;min-width:100%}}.feature-row__item--overlap-images{display:flex;justify-content:space-between;align-items:center;padding:0 0 15px;margin:0 0 0 -30px}@media only screen and (min-width:769px){.feature-row__item--overlap-images{padding:50px 0;margin:0 auto}}.feature-row__item--overlap-images>*{width:50%}[data-animate_images=true] .feature-row__item--overlap-images>* .image-wrap{transform:translate(50px);opacity:0;transition:opacity .5s ease,transform .5s cubic-bezier(.2,.06,.05,.95)}[data-animate_images=true] .feature-row__item--overlap-images>:first-child .image-wrap{transform:translate(-50px)}.feature-row__item--overlap-images>:first-child{z-index:1;transform:translate(30px,30px)}@media only screen and (min-width:769px){.feature-row__item--overlap-images>:first-child{transform:translate(50px,50px)}}[data-animate_images=true] .feature-row__item--overlap-images.aos-animate .image-wrap{transform:translate(0);opacity:1}.feature-row__item--overlap-images svg{border:2px solid;border-color:#fff;border-color:var(--colorBody)}.feature-row__text{min-width:43%;flex:0 1 43%;padding:0}@media only screen and (max-width:768px){.feature-row__text{order:2;margin-top:0;padding:30px 20px 0}}.feature-row__text .rte{margin:0}.feature-row__text .btn{margin-top:20px}@media only screen and (min-width:769px){.feature-row__text--left{padding-right:20px;padding-left:40px}.feature-row__text--right{padding-right:40px;padding-left:20px}}.feature-row__image{display:block;margin:0 auto}@media only screen and (max-width:768px){.feature-row__image{order:1}}.index-section--alt{background-color:#f4f5f5;background-color:var(--colorAlt);color:#243543;color:var(--colorAltText)}.index-section--alt a:not(.btn){color:#243543;color:var(--colorAltText)}.index-section--alt a:not(.btn):focus,.index-section--alt a:not(.btn):hover{color:#243543;color:var(--colorAltText)}.index-section--alt .btn,.index-section--alt .btn:active,.index-section--alt .btn:hover{color:#f4f5f5;color:var(--colorAlt);background-color:#243543;background-color:var(--colorAltText)}.index-section--alt .btn--tertiary{background-color:#f4f5f5;background-color:var(--colorAlt);border-color:#243543;border-color:var(--colorAltText);color:#243543;color:var(--colorAltText)}.index-section--alt .btn--tertiary:hover{background-color:#f4f5f5;background-color:var(--colorAlt);color:#243543;color:var(--colorAltText)}[data-button_style=shadow] .index-section--alt .btn--tertiary{box-shadow:5px 5px #243543;box-shadow:5px 5px 0 0 var(--colorAltText)}[data-button_style=shadow] .index-section--alt .btn--tertiary:active{box-shadow:1px 1px #243543;box-shadow:1px 1px 0 0 var(--colorAltText);background-color:#f4f5f5;background-color:var(--colorAlt);color:#243543;color:var(--colorAltText)}.index-section--alt .product-slider.slick-initialized:after{background-color:#243543;background-color:var(--colorAltText)}.index-section--alt .placeholder-svg{background-color:#fff}.product-block{margin-bottom:30px}.product-block .hr-separator{margin:0}.product-block--tab+.product-block--tab{margin-top:-30px}.product-block--sales-point+.product-block--sales-point{margin-top:-25px}.product-block--header+.product-block--price{margin-top:-20px}.theme-block{margin-bottom:30px}.theme-block:last-child{margin-bottom:0}[data-product-blocks] .spr-starrating{margin-bottom:15px;margin-top:-15px}.footer__social li{margin:5px 5px 0}.footer__social a{display:block;border-radius:100%;border:2px solid;border-color:#32454f;border-color:var(--colorTextBody);padding:14px;line-height:1}.footer__social a:active{color:#fff;color:var(--colorBtnPrimaryText);background:#1c2d3b;background:var(--colorBtnPrimary)}.footer__social .icon{width:22px;height:22px}@media only screen and (min-width:769px){.footer__social .icon{width:24px;height:24px}}.footer__social .icon.icon--wide{width:40px}.cart__item{display:grid;grid-gap:30px;grid-template-columns:150px 1fr;grid-template-rows:repeat(2,[row] auto)}.drawer .cart__item{grid-template-columns:90px 1fr;grid-gap:20px}@media only screen and (max-width:768px){.cart__item{grid-template-columns:90px 1fr;grid-gap:20px}.drawer .cart__item{grid-template-columns:60px 1fr;grid-gap:20px}}.cart__item--headers{grid-template-rows:1fr;font-size:.85em;border-bottom:2px solid;border-bottom-color:#32454f;border-bottom-color:var(--colorTextBody);padding-bottom:40px;margin-bottom:40px}.cart__item--details{display:grid;grid-column:2;grid-template-columns:2fr 90px 1fr;align-items:center}@media only screen and (max-width:768px){.cart__item--details{grid-template-columns:90px 1fr}}.drawer .cart__item--details{grid-template-columns:90px 1fr}.drawer .cart__item--details .cart__item--name{grid-column:1 / span 3}.drawer .cart__item--details .cart__item--qty{grid-column:1 / span 2}.cart__item--qty{grid-column:2}.cart__item--price{grid-column:3;margin-left:10px}@media only screen and (max-width:768px){.cart__item--name{grid-column:1 / span 2}.cart__item--qty{grid-row:2;grid-column:1}.cart__item--price{grid-row:2;grid-column:2}}.cart__item-row{margin-bottom:20px}.cart__item-sub{flex:1 1 100%;display:flex;justify-content:space-between;line-height:1}.cart__item-sub>div:first-child{margin-right:10px}.cart__terms{display:flex;align-items:center;justify-content:center}.cart__terms label{margin-bottom:0;text-transform:none;letter-spacing:0}.cart__terms a{text-decoration:underline}@media only screen and (min-width:769px){.cart__terms--right{justify-content:flex-end}}.cart__checkout-wrapper{margin-top:20px}.cart__checkout-wrapper .additional-checkout-buttons{margin-top:12px}.cart__checkout-wrapper+.cart__item-row{margin-top:20px}.drawer .additional-checkout-buttons{margin:10px 0}.drawer .additional-checkout-buttons [data-shopify-buttoncontainer]{justify-content:center}.drawer .additional-checkout-buttons [data-shopify-buttoncontainer]>*{height:auto!important}.cart__row [data-shopify-buttoncontainer]{justify-content:flex-end}@media only screen and (min-width:769px){.cart__update+.cart__checkout{margin-left:20px}}.cart__product-name{margin-bottom:5px}@media only screen and (min-width:769px){.cart__product-name{margin-bottom:10px}}.cart__price{display:block}.cart__price--strikethrough{text-decoration:line-through}.cart__discount{display:block;color:#000;color:var(--colorSalePrice)}.cart__variant-meta{font-size:.9em;margin-bottom:10px}.cart__checkout{width:100%}.cart__footer:not(.drawer__footer){border-top:2px solid;border-top-color:#32454f;border-top-color:var(--colorTextBody);padding-top:20px}.cart__footer-page{max-width:450px;margin-left:auto;margin-right:auto}.cart__product-name{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.cart__product-name{font-size:calc(var(--typeBaseSize)*1.22)}}.cart__product-name{display:block;line-height:1.4;margin-bottom:4px}iframe.zoid-component-frame{z-index:1!important}.drawer__cart-empty,.drawer.is-empty .drawer__inner{display:none}.drawer.is-empty .drawer__cart-empty{display:block}.cart__note{font-size:12px;opacity:.8}.cart__empty-text{display:none}.is-empty .cart__empty-text{display:block}.template-cart .is-empty form{display:none}@media only screen and (min-width:769px){.product-single__sticky{position:sticky;top:0}}.product-single__header{margin-bottom:20px}@media only screen and (min-width:769px){.product-single__header{margin-top:60px}.screen-layer .product-single__header{margin-right:50px}}.product-single__title{word-wrap:break-word;margin-bottom:15px}[data-type_product_capitalize=true] .product-single__title{text-transform:uppercase}.product-single__meta{padding-left:45px}@media only screen and (max-width:768px){.product-single__meta{padding-left:0;margin-top:20px}}.product-single__meta .social-sharing{margin-top:40px;text-align:center}@media only screen and (min-width:769px){.product-single__meta .social-sharing{margin-top:40px}}.product-single__review-link{display:block}.product-single__review-link .spr-badge[data-rating="0.0"]{display:none}.product-single__review-link .spr-badge{margin-bottom:15px}.product-single__review-link .spr-badge-starrating{margin-right:8px}.product-single__review-link .spr-icon{vertical-align:baseline;vertical-align:initial}.product-single__review-link .spr-badge-caption{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.product-single__review-link .spr-badge-caption{font-size:calc(var(--typeBaseSize) - 2px)}}.product-single__sku,.product-single__vendor{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.product-single__sku,.product-single__vendor{font-size:calc(var(--typeBaseSize) - 2px)}}.product-single__sku,.product-single__vendor{margin-bottom:6.66667px}.product-single__sku:empty,.product-single__vendor:empty{margin-bottom:0}.product-single__variants{display:none}.no-js .product-single__variants{display:block;margin-bottom:40px}.product-image-main{position:relative}.product__video-wrapper{position:relative;overflow:hidden;max-width:100%;padding-bottom:100%;height:auto;background-color:#fff;background-color:var(--colorSmallImageBg)}.product__video-wrapper iframe{width:100%;height:100%;transition:opacity .5s ease-in}.product__video-wrapper[data-video-style=muted].loaded:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.product__video-wrapper.video-interactable:before{display:none}.product__video-wrapper.loaded:after{display:none}.product__video-wrapper.loading iframe{opacity:.01}.product__video-wrapper.loaded iframe{opacity:1}.product__video{position:absolute;top:0;left:0;width:100%;height:100%}.product__video:not([controls])::-webkit-media-controls{display:none}.product-video-trigger{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.product__photos--beside{display:flex;width:100%}.product__photos{direction:ltr}.product__photos a{display:block;max-width:100%}.product__photos img{display:block;margin:0 auto;max-width:100%;width:100%}@media only screen and (max-width:768px){.product__photos{width:auto;margin:-20px -30px 0}}.product__main-photos{position:relative;overflow:hidden;flex:1 1 auto}@media only screen and (min-width:769px){.product__main-photos{order:2}}.product__main-photos .flickity-page-dots{display:none}@media only screen and (max-width:768px){.product__main-photos{padding-bottom:25px}.product__main-photos .flickity-page-dots{display:block}}.product__main-photos-wrapper{position:relative}.flickity-enabled .product-main-slide:not(.is-selected) button,.flickity-enabled .product-main-slide:not(.is-selected) iframe,.flickity-enabled .product-main-slide:not(.is-selected) model-viewer,.flickity-enabled .product-main-slide:not(.is-selected) video{display:none}.product-main-slide{display:none;width:100%;overflow:hidden}.product-main-slide:first-child,.flickity-slider .product-main-slide,[data-images-stacked] .product-main-slide{display:block}.is-fade .product-main-slide{opacity:0;transition:opacity .4s ease}.is-fade .product-main-slide.is-selected{opacity:1}.product-slideshow.flickity-enabled .product-main-slide{display:none}.product-slideshow.flickity-enabled .flickity-viewport .product-main-slide{display:block}.product__thumbs{position:relative}.product__thumbs-sticky{position:sticky;top:20px}.product__thumbs--below{margin-top:15px}@media only screen and (min-width:769px){.product__thumbs--below{margin-top:20px}}@media only screen and (min-width:769px){.product__thumbs--beside{flex:0 0 80px;max-width:80px;margin-left:0;margin-right:20px}}.product__thumb-item a{display:block}.product__thumb-item a:before{content:none;display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 2px #32454f;box-shadow:inset 0 0 0 2px var(--colorTextBody);z-index:1}.product__thumb-item a:focus{outline:none}.product__thumb-item a:focus:before{content:""}.product__thumb-item a.is-active:before{content:""}.product__thumb-item a:active:before{content:none}.product__thumb-item.thumb--current a:before{content:""}.product__thumbs--beside .product__thumb-item{margin-bottom:15px}@media only screen and (min-width:769px){.product__thumbs--beside .product__thumb-item{margin-bottom:20px}}.product__thumbs--below .product__thumb-item{margin-right:15px}@media only screen and (min-width:769px){.product__thumbs--below .product__thumb-item{margin-right:20px}}.product__thumbs--below .product__thumb-item:last-child{margin-right:0}.product__thumb{position:relative;display:block;cursor:pointer}.product__thumb-icon{position:absolute;top:5px;right:5px;background-color:#32454f;background-color:var(--colorTextBody);border-radius:100px;padding:6px;z-index:1;opacity:0;transition:opacity .5s ease;font-size:0}.aos-animate .product__thumb-icon{opacity:1}.product__thumb-icon .icon{fill:#fff;fill:var(--colorBody);width:10px;height:10px}@media only screen and (min-width:769px){.product__thumb-icon .icon{width:13px;height:13px}}.product__photo-zoom{position:absolute;bottom:10px;right:0;margin:15px;cursor:zoom-in}@media only screen and (min-width:769px){.product__photo-zoom{opacity:0;width:100%;top:0;left:0;border-radius:0;margin:0}.product__photo-zoom span,.product__photo-zoom svg{display:none}}.pswp__img--placeholder{overflow:hidden;animation:placeholder-shimmer 1.3s linear 2s infinite;background-size:400% 100%}.product-single__prices{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center}@media only screen and (max-width:768px){.product-single__prices{justify-content:center}}.product-single__prices>*{flex:0 1 auto;padding-right:15px}.product-single__prices>:last-child{padding-right:0}.product__price{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.product__price{font-size:calc(var(--typeBaseSize)*1.22)}}.sale-price{color:#000;color:var(--colorSalePrice)}.product__unit-price{font-size:.8em;opacity:.8}.product__price--compare{text-decoration:line-through}.product__quantity input[type=number]{max-width:80px}@media only screen and (max-width:768px){.product__quantity input[type=number]{display:block;margin:0 auto}}.add-to-cart[disabled]+.shopify-payment-button{display:none}.product__policies{font-size:.85em}.shopify-payment-terms{margin:12px 0}.shopify-payment-terms:empty{display:none}.modal .shopify-payment-terms,.screen-layer .shopify-payment-terms{display:none}.product__thumbs--scroller{scrollbar-width:none;scroll-behavior:smooth;-ms-overflow-style:-ms-autohiding-scrollbar}.product__thumbs--scroller::-webkit-scrollbar{height:0;width:0}.product__thumbs--below .product__thumbs--scroller{overflow-x:scroll;white-space:nowrap;text-align:center}.product__thumbs--beside .product__thumbs--scroller{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;overflow-y:scroll}div[id*=collection-return]{display:none}.article__author,.article__date{margin-bottom:5px}@media only screen and (min-width:769px){.article__author,.article__date{margin-bottom:10px}}.article__featured-image{display:block;margin-bottom:40px}.article__featured-image img{display:block;margin:0 auto}.article__body{margin-bottom:20px}@media only screen and (min-width:769px){.article__body{margin-bottom:40px}}.grid--articles{margin-bottom:60px}@media only screen and (min-width:769px){.grid--articles{margin-bottom:120px}}.article-listing{margin-bottom:60px}@media only screen and (min-width:769px){.article-listing{margin-bottom:120px}}.article__image-wrap{margin:0 auto;max-width:850px}.article__content{margin:0 auto;max-width:750px}.article__content-meta{margin-bottom:20px}.article__content-meta>*{margin-bottom:5px}.article__comment{margin-bottom:20px}.article__comment:last-child{margin-bottom:0}.site-header--password,.site-header--password a,.site-header--password a:hover{color:#32454f;color:var(--colorNavText)}.is-light .site-header--password,.is-light .site-header--password a,.is-light .site-header--password a:hover{color:#fff}.password-page__logo h1{margin-bottom:0}.password-page__logo-image{display:flex;align-items:center}.btn--password{display:block;border-radius:35px;background-color:transparent;box-shadow:none;color:#32454f;color:var(--colorTextBody);border-color:#32454f;border-color:var(--colorTextBody)}.btn--password:active,.btn--password:hover{background-color:transparent;color:#32454f;color:var(--colorTextBody);border-color:#32454f;border-color:var(--colorTextBody)}.is-light .btn--password,.is-light .btn--password:active,.is-light .btn--password:hover{color:#fff;border-color:#fff}.btn--password:after{content:""}.password__lock .icon{position:relative;top:-2px;margin-right:4px;width:12px;height:12px}.icon-shopify-logo{width:60px;height:20px}@media only screen and (max-width:768px){#LoginModal .modal__close{padding:20px}}#LoginModal .modal__inner{background:#ffffff;background:var(--colorBody);color:#32454f;color:var(--colorTextBody);padding:30px}.password-admin-link{margin:0}.password-admin-link a{border-bottom:2px solid!important;border-bottom-color:#32454f!important;border-bottom-color:var(--colorTextBody)!important}.password-page__footer{margin:0;padding:10px 0}@media only screen and (min-width:769px){.password-page__footer{padding:20px 0}}.template-giftcard,.template-giftcard body{background:#ffffff;background:var(--colorBody)}.template-giftcard a,.template-giftcard body a{text-decoration:none}.template-giftcard .page-width{max-width:588px}.template-giftcard .page-width iframe,.template-giftcard .page-width img,.template-giftcard .page-width object{max-width:100%}.giftcard-header{padding:80px 0;font-size:1em;text-align:center}.giftcard-header a{display:block;margin:0 auto}.template-giftcard .shop-url{display:none}.giftcard__border{padding:1.5em;box-shadow:0 10px 30px #0000004d}.giftcard__content:after{content:"";display:table;clear:both}.giftcard__content{background-color:#fff;background-color:var(--colorBody);color:#32454f;color:var(--colorTextBody)}.giftcard__header:after{content:"";display:table;clear:both}.giftcard__header{padding:20px}.giftcard__title{float:left;margin-bottom:0}.giftcard__tag{display:block;float:right;background-color:#32454f;background-color:var(--colorTextBody);border:1px solid transparent;color:#fff;color:var(--colorBody);padding:13.33333px;border-radius:4px;font-size:.75em;text-transform:uppercase;letter-spacing:.05em;line-height:1}.giftcard__tag--active{background:transparent;color:#32454f;color:var(--colorTextBody);border:1px solid;border-color:#32454f;border-color:var(--colorTextBody)}.giftcard__wrap{position:relative;margin:20px 20px 40px}.giftcard__wrap img{position:relative;display:block;border-radius:10px;z-index:2}.giftcard__code{position:absolute;bottom:40px;text-align:center;width:100%;z-index:50}.giftcard__code--medium{font-size:.875em}.giftcard__code--small{font-size:.75em}.giftcard__code__inner{display:inline-block;vertical-align:baseline;background-color:#fff;padding:.5em;border-radius:4px;max-width:450px;box-shadow:0 0 0 1px #0000001a}.giftcard__code--small .giftcard__code__inner{overflow:auto}.giftcard__code__text{font-weight:400;font-size:1.6em;text-transform:uppercase;border-radius:2px;border:1px dashed;border-color:#32454f;border-color:var(--colorTextBody);padding:.4em .5em;display:inline-block;vertical-align:baseline;color:#32454f;color:var(--colorTextBody);line-height:1}.disabled .giftcard__code__text{color:#999;text-decoration:line-through}.giftcard__amount{position:absolute;top:0;right:0;color:#fff;font-size:2.75em;line-height:1.2;padding:20px;z-index:50}.giftcard__amount strong{display:block;text-shadow:3px 3px 0 rgba(0,0,0,.1)}.giftcard__amount--medium{font-size:2em}.template-giftcard .tooltip{display:block;position:absolute;top:-50%;right:50%;margin-top:16px;z-index:3;color:#fff;text-align:center;white-space:nowrap}.template-giftcard .tooltip:before{content:"";display:block;position:absolute;left:100%;bottom:0;width:0;height:0;margin-left:-5px;margin-bottom:-5px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:5px solid #333;border-top:5px solid rgba(51,51,51,.9)}.template-giftcard .tooltip__label{display:block;position:relative;right:-50%;border:none;border-radius:4px;background:#333;background:rgba(51,51,51,.9);min-height:14px;font-weight:400;font-size:12px;text-decoration:none;line-height:16px;text-shadow:none;padding:.5em .75em;margin-left:.25em}.template-giftcard .tooltip__label small{text-transform:uppercase;letter-spacing:.1em;color:#b3b3b3;font-size:.875em}.giftcard__instructions{text-align:center;margin:0 20px 40px}.giftcard__actions{position:relative;text-align:center;overflow:hidden;padding-bottom:1em}.template-giftcard .action-link{position:absolute;left:20px;top:50%;font-size:.875em;font-weight:700;display:block;padding-top:4px;text-transform:uppercase;letter-spacing:.2em;margin-top:-10px}.template-giftcard .action-link:focus,.template-giftcard .action-link:hover{color:#32454f;color:var(--colorTextBody)}.template-giftcard .action-link__print{display:inline-block;vertical-align:baseline;width:17px;height:17px;vertical-align:middle;margin-right:10px;opacity:1;background-repeat:no-repeat;background-position:0 0;background-image:url(//cdn.shopify.com/s/assets/gift-card/icon-print-164daa1ae32d10d1f9b83ac21b6f2c70.png)}.giftcard__footer{text-align:center;padding:80px 0}#QrCode img{padding:40px;border-color:#32454f;border-color:var(--colorTextBody);border-radius:4px;margin:0 auto 40px}@media only screen and (max-width:768px){.giftcard{font-size:12px}.giftcard-header{padding:40px 0}.template-giftcard .header-logo{font-size:2em}.giftcard__border,.giftcard__actions{padding:20px}.giftcard__actions .btn{width:100%;padding-left:0;padding-right:0}.template-giftcard .action-link{display:none}}@media screen and (max-width:400px){.giftcard__amount strong{text-shadow:2px 2px 0 rgba(0,0,0,.1)}.giftcard__wrap:after,.giftcard__wrap:before{display:none}.giftcard__code{font-size:.75em}.giftcard__code--medium{font-size:.65em}.giftcard__code--small{font-size:.55em}}@media screen and (max-height:800px){.template-giftcard .header-logo img{max-height:90px}}@media print{@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}body,html{background-color:#fff}.giftcard-header{padding:10px 0}.giftcard__border,.giftcard__content{border:0 none}.add-to-apple-wallet,.giftcard__actions,.giftcard__wrap:after,.giftcard__wrap:before,.site-header__logo-link img:nth-child(2),.tooltip{display:none}.giftcard__title{float:none;text-align:center}.giftcard__code__text{color:#555}.template-giftcard .shop-url{display:block}.template-giftcard .logo{color:#58686f}}.slideshow-wrapper{position:relative}.slideshow__pause:focus{clip:auto;width:auto;height:auto;margin:0;color:#fff;color:var(--colorBtnPrimaryText);background-color:#1c2d3b;background-color:var(--colorBtnPrimary);padding:10px;z-index:10000;transition:none}.video-is-playing .slideshow__pause:focus{display:none}.slideshow__pause-stop{display:block}.is-paused .slideshow__pause-stop,.slideshow__pause-play{display:none}.is-paused .slideshow__pause-play{display:block}.slideshow__slide{display:none;width:100%;height:100%;position:relative;overflow:hidden}.slideshow__slide:first-child,.flickity-slider .slideshow__slide{display:block}.slideshow__slide:after{content:"";position:absolute;background:#32454f;background:var(--colorTextBody);bottom:0;height:2px;width:0%;z-index:1;transition:width 0s linear 0s}.hero-wrapper{position:relative}.hero{position:relative;overflow:hidden;animation:placeholder-shimmer 1.3s linear .5s infinite;background-size:300% 100%}.hero.loaded{animation:none}.hero__text-shadow{position:relative;display:inline-block;transform:translateZ(0)}.hero__text-shadow>*{position:relative}.hero__text-shadow:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:auto;background:radial-gradient(rgba(0,0,0,.2) 0%,transparent 60%);background:radial-gradient(rgba(0,0,0,var(--colorImageOverlayTextShadow)) 0%,transparent 60%);margin:-100px -200px;opacity:0;transition:opacity .6s cubic-bezier(.04,0,.2,1) .3s}.hero__text-shadow.aos-animate:before{opacity:1}.hero__image-wrapper,.hero__media{position:absolute;top:0;left:0;height:100%;width:100%}.hero__image-wrapper--overlay:before,.hero__media--overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;background-color:#000;background-color:var(--colorImageOverlay);opacity:.1;opacity:var(--colorImageOverlayOpacity)}.video-interactable .hero__image-wrapper--overlay:before,.video-interactable .hero__media--overlay:before{pointer-events:none}.hero__image{position:relative;width:100%;height:100%;z-index:1;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover"}.hero__media iframe,.hero__media video{width:100%;height:100%;pointer-events:none}.video-interactable .hero__media iframe,.video-interactable .hero__media video{pointer-events:auto}.hero__media video{position:relative;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 20%;object-position:50% 20%;font-family:"object-fit: cover"}.hero__media iframe{position:absolute;top:0;left:0;width:300%;left:-100%;max-width:none}@media screen and (min-width:1140px){.hero__media iframe{width:100%;height:300%;left:auto;top:-100%}}.vimeo-mobile-trigger{display:block;position:absolute;width:100%;z-index:2;margin-top:90px}.hero__text-content .vimeo-mobile-trigger{margin-top:-130px}.vimeo-mobile-trigger .icon{width:40px;height:40px;background-color:#fff;color:#000;border-radius:50%;padding:10px}.hero__slide-link{display:block;position:relative;height:100%;color:#fff;color:var(--colorHeroText);z-index:4}.hero__text-wrap{position:absolute;height:100%;width:100%;color:#fff;color:var(--colorHeroText)}.video-interactable .hero__text-wrap{pointer-events:none}.hero__text-wrap .page-width{display:table;width:100%;height:100%}.hero__text-content{position:relative;padding:35px 0;z-index:4}@media only screen and (min-width:769px){.hero__text-content{padding:60px 0}}.hero__title{display:block;margin-bottom:0;font-size:40px}@media only screen and (min-width:769px){.hero__title{font-size:80px}}.hero__subtext{margin-top:20px}.hero__subtitle{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.hero__subtitle{font-size:calc(var(--typeBaseSize)*1.22)}}.hero__subtitle{vertical-align:middle;margin-top:5px}@media only screen and (min-width:769px){.hero__subtitle{display:inline-block;margin-top:12px;margin-right:20px}}.hero__link{display:inline-block}.video-interactable .hero__link{pointer-events:auto}.hero__link .btn{margin-top:12px}.hero__link .btn .icon-play{position:relative;top:-2px;margin-right:5px}.hero__text-content{display:table-cell}.hero__text-content.horizontal-left{text-align:left;padding-right:10%}@media only screen and (min-width:769px){.hero__text-content.horizontal-left{padding-right:33%}}.hero__text-content.horizontal-center{text-align:center}@media only screen and (min-width:769px){.hero__text-content.horizontal-center{padding-left:40px;padding-right:40px}}.hero__text-content.horizontal-right{text-align:right;padding-left:10%}@media only screen and (min-width:769px){.hero__text-content.horizontal-right{padding-left:33%}}.hero__text-content.vertical-center{vertical-align:middle;padding-top:50px}@media only screen and (min-width:769px){.hero__text-content.vertical-center{padding-top:90px}}.hero__text-content.vertical-center .hero__subtitle{margin-right:0}.hero__text-content.vertical-center .hero__link{display:block}.hero__text-content.vertical-center .hero__link .btn{margin-top:15px}@media only screen and (min-width:769px){.hero__text-content.vertical-center .hero__link .btn{margin-top:20px}}.hero__text-content.vertical-top{vertical-align:top}.hero__text-content.vertical-bottom{vertical-align:bottom}.slick-dotted .hero__text-content.vertical-bottom{padding-bottom:50px}.hero--450px{height:292.5px}.hero--550px{height:357.5px}.hero--650px{height:422.5px}.hero--750px{height:487.5px}.hero--850px{height:552.5px}.hero--100vh{height:100vh}.hero[data-natural]{position:absolute;top:0;left:0;right:0;bottom:0}@media only screen and (min-width:769px){.hero--450px{height:450px}.hero--550px{height:550px}.hero--650px{height:650px}.hero--750px{height:750px}.hero--850px{height:850px}}@media only screen and (max-width:768px){.hero--mobile--250px:not([data-natural]){height:250px}.hero--mobile--300px:not([data-natural]){height:300px}.hero--mobile--400px:not([data-natural]){height:400px}.hero--mobile--500px:not([data-natural]){height:500px}.hero--mobile--100vh:not([data-natural]){height:90vh}}.index-section--hero:first-child [data-align-top] .hero-wrapper{position:relative;z-index:1}[data-animate_images=true] .hero__text-shadow:before{opacity:0}[data-animate_images=true] .hero__text-wrap{opacity:0;transform:translateY(10px);transition:none}.no-js [data-animate_images=true] .hero__text-wrap{opacity:1}@media only screen and (max-width:768px){[data-animate_images=true] .hero__text-wrap{transform:translateY(7px)}}[data-animate_images=true] .hero-animated .hero__image,[data-animate_images=true] .hero-animated .hero__image-wrapper,[data-animate_images=true] .hero-animated .hero__text-wrap{opacity:1!important;transform:none}[data-animate_images=true] .hero-animated .hero__link .btn{opacity:1}[data-animate_images=true]:not(.animate-out) .hero__image{opacity:0;transition:none}[data-animate_images=true] .hero__link .btn{opacity:0;transition:none}.no-js [data-animate_images=true] .hero__link .btn{opacity:1}[data-animate_images=true] .hero__image-wrapper{transform:scale(1.15);opacity:0;transition:none}[data-animate_images=true] .hero .slideshow__slide .hero__image,[data-animate_images=true] .hero .slideshow__slide .hero__media,[data-animate_images=true] [data-aos=hero__animation] .hero__image,[data-animate_images=true] [data-aos=hero__animation] .hero__media{opacity:0}.no-js [data-animate_images=true] .hero .slideshow__slide .hero__image,.no-js [data-animate_images=true] .hero .slideshow__slide .hero__media,.no-js [data-animate_images=true] [data-aos=hero__animation] .hero__image,.no-js [data-animate_images=true] [data-aos=hero__animation] .hero__media{opacity:1}[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__text-wrap,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__text-wrap{opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .6s cubic-bezier(.26,.54,.32,1)}[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__text-shadow:before,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__text-shadow:before{opacity:1;transition:all .4s ease .2s}[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__image--svg,[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__image.lazyloaded,[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__media,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__image--svg,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__image.lazyloaded,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__media{animation:fade-in-bg 1.5s cubic-bezier(.26,.54,.32,1) 0s forwards;transition:none}[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__image-wrapper,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__image-wrapper{opacity:1;transform:scale(1);transition:transform 1s cubic-bezier(.18,.63,.25,1),opacity .7s ease}[data-animate_images=true] .hero.loaded .slideshow__slide.is-selected .hero__link .btn,[data-animate_images=true] [data-aos=hero__animation].loaded.aos-animate .hero__link .btn{animation:fade-in 1s ease .6s forwards}[data-animate_images=true] [data-aos=hero__animation] .collection-hero__image{opacity:0}.no-js [data-animate_images=true] [data-aos=hero__animation] .collection-hero__image{opacity:1}[data-animate_images=true] [data-aos=hero__animation] .collection-hero__image.lazyloaded{animation:fade-in-bg 1.5s cubic-bezier(.26,.54,.32,1) 0s forwards;transition:none}[data-animate_images=true] .hero .slideshow__slide.animate-out .hero__image-wrapper{opacity:0;transform:scale(1);transition:transform .5s ease-in .55s,opacity .5s ease-in .55s}[data-animate_images=false] .slideshow-refresh[data-aos=hero__animation].loaded .hero__image,[data-animate_images=false] .slideshow-refresh[data-aos=hero__animation].loaded .hero__media{animation:none;opacity:1}[data-animate_images=false] .hero__text-wrap{opacity:0}[data-animate_images=false] .slideshow__slide.is-selected .hero__text-wrap,[data-animate_images=false] .video-parent-section .hero__text-wrap{opacity:1}[data-animate_images=false] .hero-animated .hero__image,[data-animate_images=false] .hero-animated .hero__image-wrapper,[data-animate_images=false] .hero-animated .hero__text-wrap{opacity:1!important;transform:none}[data-animate_images=false] .hero-animated .hero__link .btn{opacity:1}.animated__slide{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.animated__slide:first-child{display:block}.animated__slide--active{opacity:1}.hero-animated[data-style=fading] .animated__slide--inactive{opacity:0;animation:hero-animate-out .5s linear forwards;z-index:1}.hero-animated[data-style=fading] .animated__slide--active{animation:hero-animate 4s cubic-bezier(.12,.63,.6,.74) forwards;z-index:2}@media only screen and (max-width:768px){.hero-animated[data-style=fading] .animated__slide--inactive{animation-name:hero-animate-out-small}.hero-animated[data-style=fading] .animated__slide--active{animation-name:hero-animate-small}}.collection-hero{position:relative;width:100%;height:330px;overflow:hidden;background:#243543;background:var(--colorLargeImageBg);margin-bottom:30px}@media only screen and (min-width:769px){.collection-hero{height:550px;margin-bottom:60px}}.collection-hero__image{position:absolute;top:0;left:0;bottom:0;width:100%;background-size:cover;background-position:50% 50%;background-repeat:no-repeat}.collection-hero__content{position:absolute;top:0;left:0;bottom:0;width:100%;display:flex;align-items:center}.collection-hero__content .page-width{width:100%}.collection-hero__content .section-header--hero{margin-bottom:0}.collection-filters{margin-bottom:30px}@media only screen and (min-width:769px){.collection-filters{margin-bottom:60px}}.collection-filter__wrapper{overflow:hidden;max-width:1300px;margin:0 auto}.collection-filter__scrollable{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}@media only screen and (min-width:769px){.collection-filter__scrollable{display:block;text-align:center;margin-bottom:-40px}}.collection-filter__group{flex:1 0 auto;max-width:50%}@media only screen and (min-width:769px){.collection-filter__group{display:inline-block;vertical-align:top;max-width:28%;margin-bottom:40px;text-align:left}}.collection-filter__group[data-type=color_group]{flex:1 0 50%}.collection-filter__group--price{max-width:none}.collection-filter__inner{padding:0 40px}@media only screen and (max-width:768px){.collection-filter__inner{padding:0 30px;border-right:2px solid;border-right-color:#32454f;border-right-color:var(--colorTextBody);height:100%}.collection-filter__group:last-child .collection-filter__inner{border-right:0}}.collection-filter__title{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.collection-filter__title{font-size:calc(var(--typeBaseSize)*1.22)}}.collection-filter__title{margin-bottom:10px}[data-type_product_capitalize=true] .collection-filter__title{text-transform:uppercase}.collection-dropdowns{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.collection-dropdowns select{display:block;width:100%}.collection-filter__wrapper+.collection-dropdowns{margin-top:40px}.collection-dropdowns__item{flex:0 1 20%;margin:0 20px}@media only screen and (max-width:768px){.collection-dropdowns__item{flex:0 1 40%}}.is-light .site-header__logo .logo--has-inverted,.site-header__logo .logo--inverted{opacity:0;visibility:hidden;overflow:hidden;height:0}.is-light .site-header__logo .logo--inverted{opacity:1;visibility:visible;height:auto}.site-header__logo{font-size:25px}@media only screen and (max-width:768px){.site-header__logo{font-size:20px;text-align:center}}.header-logo a,.site-header__logo a{color:#32454f;color:var(--colorNavText)}.is-light .header-logo a,.is-light .site-header__logo a,.is-light .header-logo a:hover,.is-light .site-header__logo a:hover{color:#fff}.site-nav__dropdown-link{display:block;white-space:nowrap;padding:8px 15px;font-size:16px}.tags--vertical{list-style:none outside;margin:0;padding:0}.tags--vertical li{margin-bottom:5px}@media only screen and (min-width:769px){.tags--vertical li{margin-bottom:10px}}.tag--active{font-weight:900}.tags-toggle{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.tags-toggle{font-size:calc(var(--typeBaseSize) - 2px)}}.tags-toggle{width:auto;padding:0 0 2px;margin:10px 0;border-bottom:1px solid currentColor}@media only screen and (min-width:769px){.tags-toggle{margin:15px 0}}.tag-list{margin-bottom:0}.tag-list--active-tags{margin-bottom:40px}.tag-list--active-tags:empty{display:none}.tag-list a,.tag-list label{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.tag-list a,.tag-list label{font-size:calc(var(--typeBaseSize) - 2px)}}.tag-list a,.tag-list label{cursor:pointer;position:relative;display:inline-block}.tag-list label:hover{text-decoration:underline;text-underline-offset:2px}.tag--active .tag__checkbox:after,.tag-list--checkboxes .tag--active a:after,input:checked~.tag__checkbox:after{background-color:#32454f;background-color:var(--colorTextBody);border-color:#32454f;border-color:var(--colorTextBody)}.tag--remove{position:relative;display:inline-block;margin:0 10px 0 0}.tag--remove a{text-align:left;padding-right:40px!important}.tag--remove .icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:#fff;color:var(--colorBtnPrimaryText)}.tag-list--swatches{margin-top:2px;margin-left:-4px}.tag-list--swatches li{display:inline-block;margin:0 5px 5px 0}label.tag__checkbox-wrapper{display:flex}.tag__checkbox{position:relative;padding-left:25px}.tag__checkbox:after,.tag__checkbox:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%)}[dir=rtl] .tag__checkbox:after,[dir=rtl] .tag__checkbox:before{left:auto;right:0}.tag__checkbox:before{border:1px solid;border-color:var(--colorBorder);height:16px;width:16px}.tag__checkbox:after{height:10px;width:10px;left:3px}.tag__input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.variant-input-wrap{border:0;padding:0;margin:0 0 -12px;position:relative}.variant-input-wrap input{clip:rect(0 0 0 0);clip:rect(0,0,0,0);overflow:hidden;position:absolute;height:1px;width:1px}.variant-input-wrap label{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.variant-input-wrap label{font-size:calc(var(--typeBaseSize) - 2px)}}.variant-input-wrap label{position:relative;display:inline-block;line-height:1;font-weight:400;padding:15px 18px;margin:0 8px 12px 0;font-style:normal;text-transform:none;border-radius:100px;color:#32454f;color:var(--colorTextBody);background-color:transparent;overflow:hidden}.variant-input-wrap label.color-swatch{height:calc(var(--typeBaseSize) + 26px);width:calc(var(--typeBaseSize) + 26px)}.variant-input-wrap label.disabled{color:#b6b6b6;box-shadow:none}.variant-input-wrap label.disabled.color-swatch{box-shadow:0 0 0 2px #b6b6b6}.variant-input-wrap label.disabled:after{position:absolute;content:"";left:50%;top:0;bottom:0;border-left:2px solid;border-color:#b6b6b6;transform:rotate(45deg)}.variant-input-wrap input[type=radio]:checked+label{box-shadow:0 0 0 2px #32454f;box-shadow:0 0 0 2px var(--colorTextBody)}.variant-input-wrap input[type=radio]:checked+label:after{content:none}.variant-input{display:inline-block}select .variant-input{display:block}.variant-wrapper+.variant-wrapper{margin-top:25px}.no-js .variant-wrapper{display:none}.variant-wrapper--dropdown{display:inline-block;max-width:100%;margin-right:20px}.variant__label{display:block;margin-bottom:15px;cursor:default}@media only screen and (max-width:768px){.grid-product--padded .grid-product__content{padding-left:10px;padding-right:10px}[data-product_image_scatter=true] .grid-product--padded .grid-product__content{padding-left:0;padding-right:0}}.grid-product__content{position:relative;margin-bottom:20px;text-align:center}@media only screen and (min-width:769px){.grid-product__content{margin-bottom:40px}.grid-product__hover-details .grid-product__content{margin-bottom:0}}.grid-product__link{display:block;overflow:hidden}.grid-product__image{display:block;margin:0 auto;width:100%}.grid-product__meta{position:relative;padding:10px 0;line-height:calc(var(--typeBaseLineHeight) - .1)}.overflow-scroller .grid-product__meta{padding-bottom:0}@media only screen and (max-width:768px){.small--grid--flush .grid-product__meta{padding:10px}}@media only screen and (min-width:769px) and (any-hover:hover){.grid-product__hover-details .grid-product__colors,.grid-product__hover-details .grid-product__meta,.grid-product__hover-details .grid-product__tag,.grid-product__hover-details .spr-badge{opacity:0;transform:translateY(7px);transition:all .15s cubic-bezier(.23,.55,.49,1.01)}.grid-product__hover-details:hover .grid-product__colors,.grid-product__hover-details:hover .grid-product__meta,.grid-product__hover-details:hover .grid-product__tag,.grid-product__hover-details:hover .spr-badge{transform:translateY(0);opacity:1}}.grid-product__title{font-size:calc(var(--typeBaseSize)*1.22*.85)}@media only screen and (min-width:769px){.grid-product__title{font-size:calc(var(--typeBaseSize)*1.22)}}[data-type_product_capitalize=true] .grid-product__title{text-transform:uppercase}.grid-product__vendor{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.grid-product__vendor{font-size:calc(var(--typeBaseSize) - 2px)}}.grid-product__vendor{margin-top:3px}.grid-product__price{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.grid-product__price{font-size:calc(var(--typeBaseSize) - 2px)}}.grid-product__price{margin-top:3px}.grid-product__price--original{margin-right:5px}.grid-product__tag{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.grid-product__tag{font-size:calc(var(--typeBaseSize) - 2px)}}.grid-product__tag{position:absolute;top:0;right:0;line-height:1;padding:6px 6px 6px 8px;background-color:#1c2d3b;background-color:var(--colorBtnPrimary);color:#fff;color:var(--colorBtnPrimaryText);z-index:1;transition:opacity .4s ease}@media only screen and (min-width:769px){.grid-product__tag{padding:7px 9px 7px 11px}}.grid-product__tag--sale{background-color:#900;background-color:var(--colorSaleTag);color:#fff;color:var(--colorSaleTagText)}.grid-product__see-all{display:inline-block;padding:20px;text-align:center;border:2px solid;border-color:#32454f;border-color:var(--colorTextBody);margin-top:-60px}.grid-product.aos-animate.unload{opacity:0;transition-duration:.3s;animation:grid-product__loading 1.5s ease 1.5s infinite}.grid-product__colors{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;line-height:19px}@media only screen and (min-width:769px){.grid-product__colors{line-height:20px}}.overflow-scroller .grid-product__colors{padding-top:10px}.grid-product__hover-details .grid-product__colors{margin-bottom:5px}.product-slider:not(.flickity-enabled) .product-slide{display:none}.product-slider:not(.flickity-enabled) .product-slide:first-child{display:block}.product-slider.flickity-enabled .product-slide{opacity:0!important;transition:opacity 0s ease .3s!important;width:100%;height:100%}.product-slider .product-slide.is-selected{opacity:1!important;transition:none!important}.product-slider.flickity-enabled:after{content:"";position:absolute;background-color:#32454f;background-color:var(--colorTextBody);bottom:-2px;height:2px;width:0%;left:0;z-index:1;animation:progressBar 1.35s linear infinite}.product-slide{opacity:1!important}.product-slider--init.is-draggable .flickity-viewport{cursor:pointer}.product-slider--init .grid__image-ratio,.product-slider--init img{opacity:1!important;animation:none!important}.product-slide .placeholder-svg{opacity:1}.sales-points{list-style:none;padding:0;margin:25px 0}.quick-add-modal .sales-points{display:none}.sales-point{display:block;margin-bottom:10px}.sales-point:last-child{margin-bottom:0}.sales-point .icon{position:relative;width:25px;height:25px;margin-right:10px}[dir=rtl] .sales-point .icon{margin-right:0;margin-left:10px}@media only screen and (max-width:768px){.sales-point .icon-and-text{justify-content:center}}@keyframes inventory-pulse{0%{opacity:.5}to{transform:scale(2.5);opacity:0}}.icon--inventory:after,.icon--inventory:before{width:9px;height:9px;background:#54c63a;border-radius:9px;position:absolute;left:0;top:0;content:"";margin:8px}.icon--inventory:before{animation:inventory-pulse 2s linear infinite}.inventory--low .icon--inventory:after,.inventory--low .icon--inventory:before{background:#f4af29}.inventory--low{color:#f4af29}@media only screen and (min-width:769px){[data-product_image_scatter=true] .grid--scattered-large-2 .grid-product:nth-child(2n+2){padding-top:30px}[data-product_image_scatter=true] .grid--scattered-large-3 .grid-product:nth-child(3n+2){padding-top:30px}[data-product_image_scatter=true] .grid--scattered-large-4 .grid-product:nth-child(2n+2){padding-top:30px}}@media only screen and (max-width:768px){[data-product_image_scatter=true] .grid--scattered-small-1 .grid-product:nth-child(2n){padding-left:60px;padding-right:10px}[data-product_image_scatter=true] .grid--scattered-small-1 .grid-product:nth-child(odd){padding-left:40px;padding-right:60px}[data-product_image_scatter=true] .grid--scattered-small-2 .grid-product:nth-child(2n+2){padding-top:20px}}@media only screen and (min-width:769px){[data-product_image_scatter=true] .product__thumbs--beside{flex:0 0 100px;max-width:100px;margin-top:20px;margin-right:0;transform:translate(40px);z-index:1}[data-product_image_scatter=true] .product__thumbs--beside .product__thumb-item{margin-right:20px}[data-product_image_scatter=true] .product__thumbs--beside .product__thumb-item:nth-child(2n+2){margin-right:0;margin-left:20px}}.color-swatch{position:relative;display:block;text-indent:-9999px;overflow:visible;margin:0 1px 4px;background-position:50%;background-size:cover;background-repeat:no-repeat;width:2.5em;transition:box-shadow .2s ease;border-radius:100px}.color-swatch:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:2;border:3px solid;border-color:#fff;border-color:var(--colorBody);border-radius:100px;box-shadow:inset 0 0 1px 1px #00000026}.color-swatch:not(.disabled):after{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;z-index:3;border:2px solid;border-color:#fff;border-color:var(--colorBody);border-radius:100px}.index-section--alt .color-swatch:before,.index-section--alt .color-swatch:not(.disabled):after{border-color:#f4f5f5;border-color:var(--colorAlt)}.color-swatch--small{width:19px;height:19px}@media only screen and (min-width:769px){.color-swatch--small{width:20px;height:20px}}.color-swatch--small:after{content:none}.color-swatch--filter{width:35px;height:35px}.tag--swatch{display:inline-block}.tag--active .color-swatch--filter:after{border-color:#32454f;border-color:var(--colorTextBody)}.featured-collection{overflow-x:hidden}[data-animate_images=true] [data-aos=overflow__animation]{transform:translate(200px);opacity:0;transition:all .4s cubic-bezier(.04,0,.2,1) .3s}@media only screen and (min-width:769px){[data-animate_images=true] [data-aos=overflow__animation]{transition-duration:.6s}}.no-js [data-animate_images=true] [data-aos=overflow__animation],[data-animate_images=true] [data-aos=overflow__animation].aos-animate{opacity:1;transform:translate(0);transition-delay:unset}@media only screen and (max-width:768px){[data-animate_images=true] [data-aos=overflow__animation__small]{transform:translate(200px);opacity:0;transition:all .4s cubic-bezier(.04,0,.2,1) .3s}.no-js [data-animate_images=true] [data-aos=overflow__animation__small],[data-animate_images=true] [data-aos=overflow__animation__small].aos-animate{opacity:1;transform:translate(0);transition-delay:unset}}.overflow-scroll-wrap{position:relative;overflow:hidden}.overflow-scroller{position:relative;overflow:hidden;overflow-x:scroll;-webkit-overflow-scrolling:touch;padding-bottom:20px;direction:ltr}.overflow-scroller .grid{white-space:nowrap;display:flex}.overflow-scroller .grid:after{width:1px;height:1px;padding-left:1px}.overflow-scroller .grid__item{display:inline-block;float:none;white-space:normal;width:63%;flex:0 0 63%;overflow:hidden}.overflow-scroller .grid__item:first-child{margin-left:30px}.overflow-scroller .grid__item:last-child{margin-right:30px}@media only screen and (min-width:769px){.overflow-scroller .grid__item{width:27%;flex:0 0 27%}.overflow-scroller .grid__item:first-child{margin-left:80px}.overflow-scroller .grid__item:last-child{margin-right:80px}}.overflow-scroller .grid-product--medium{width:53%;flex:0 0 53%}@media only screen and (min-width:769px){.overflow-scroller .grid-product--medium{width:21%;flex:0 0 21%}}.overflow-scroller .grid-product--large{width:37%;flex:0 0 37%}@media only screen and (min-width:769px){.overflow-scroller .grid-product--large{width:17%;flex:0 0 17%}}.overflow-scroller .grid-product__content{margin-bottom:0}@media only screen and (min-width:769px){[data-center-grid] .overflow-scroller .grid{justify-content:center}}.overflow-scroller__arrow{position:absolute;top:50%;margin-top:-80px;width:60px;height:60px;z-index:3;transition:transform .1s;padding:10px;border-radius:100%;min-width:0}.overflow-scroll-wrap:hover .overflow-scroller__arrow{transition-duration:.25s}.overflow-scroller__arrow[hidden]{display:none}[data-button_style=shadow] .overflow-scroll-wrap .overflow-scroller__arrow{transform:translate(4px,4px)!important;transition:none}.overflow-scroller__arrow--left{left:10px;transform:translate(-80px)}.overflow-scroller__arrow--left .icon{position:relative;top:-1px;right:4px}[data-button_style=shadow] .overflow-scroller__arrow--left .icon{right:5px}.overflow-scroller__arrow--right{right:10px;transform:translate(80px)}.overflow-scroller__arrow--right .icon{position:relative;top:-1px;left:-3px}[data-button_style=shadow] .overflow-scroller__arrow--right .icon{left:-2px}.overflow-scroll-wrap:hover .overflow-scroller__arrow--left:not([class*="--disable-left"]),.overflow-scroll-wrap:hover .overflow-scroller__arrow--right:not([class*="--disable-right"]){transform:translate(0)}.collection-loading [data-ajax-loader]{position:relative}.collection-loading [data-ajax-loader]:after{content:"";display:block;width:24px;height:24px;position:absolute;right:10px;top:0;border-radius:50%;border:3px solid;border-color:#32454f;border-color:var(--colorTextBody);border-top-color:transparent;opacity:.2;animation:spin 1s linear infinite}.overscroll-loader{display:none;position:fixed;z-index:0;width:50px;height:50px;top:20px;left:50%;margin-left:-25px;z-index:-1}.screen-layer-closing .overscroll-loader,.screen-layer-open .overscroll-loader{display:block}.overscroll-loader .icon{position:relative;display:block;height:100px;width:100px;margin-left:-25px;margin-top:-25px;fill:none;transform:scale(.5)}.overscroll-loader path{stroke:#fff;stroke-width:4}.overscroll-loader .icon-loader__path{stroke-linecap:round;stroke-dasharray:232.508;stroke-dashoffset:200}.overscroll-loader .icon-loader__close{transform:translate(18px,22px)}.skrim-grid{display:flex;justify-content:center;align-content:center;flex-wrap:wrap;margin:0 -20px}@media only screen and (min-width:769px){.skrim-grid{margin-bottom:-40px}}.skrim__item{position:relative;overflow:hidden;width:40%;width:calc(50% - 20px);margin:0 10px 20px}@media only screen and (min-width:769px){.skrim__item{margin:0 20px 40px;width:20%;width:calc(25% - 40px)}}.skrim__item:after{content:"";display:block;padding-bottom:100%}.skrim__link{display:block;position:absolute;overflow:hidden;height:100%;width:100%;border-radius:calc(var(--buttonRadius)*.71);will-change:transform}@media only screen and (min-width:769px){.skrim__link{border-radius:var(--buttonRadius)}}[data-animate_images=true] .skrim__link:focus .skrim__overlay,[data-animate_images=true] .skrim__link:hover .skrim__overlay{transform:scale(1.03);transition-duration:.8s}[data-animate_images=true] .skrim__link:focus .skrim__overlay:before,[data-animate_images=true] .skrim__link:hover .skrim__overlay:before{opacity:.3;transition-duration:.5s}.skrim__overlay{position:relative;display:block;overflow:hidden;height:100%;width:100%;background-size:cover;background-repeat:no-repeat;background-position:50%;transition:transform .5s ease}.skrim__overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:auto;background-color:#000;background-color:var(--colorImageOverlay);opacity:.1;opacity:var(--colorImageOverlayOpacity);transition:all .5s ease}.skrim__overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:auto;background:#000;opacity:.15;transition:opacity .2s ease}.skrim__title{font-family:var(--typeHeaderPrimary),var(--typeHeaderFallback);font-weight:var(--typeHeaderWeight);font-style:var(--typeHeaderStyle);letter-spacing:var(--typeHeaderSpacing);line-height:var(--typeHeaderLineHeight)}[data-type_header_capitalize=true] .skrim__title{text-transform:uppercase}.skrim__title{position:absolute;top:0;bottom:0;left:0;right:0;margin:0 12.5px;color:#fff;color:var(--colorHeroText);transition:bottom .5s ease;display:flex;text-align:center;align-items:center;justify-content:center}@media only screen and (min-width:769px){.skrim__title{margin:0 25px}}.skrim__title:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:auto;background:radial-gradient(rgba(0,0,0,.2) 0%,transparent 60%);background:radial-gradient(rgba(0,0,0,var(--colorImageOverlayTextShadow)) 0%,transparent 60%);background:radial-gradient(rgba(0,0,0,.2) 0%,transparent 40%);background:radial-gradient(rgba(0,0,0,var(--colorImageOverlayTextShadow)) 0%,transparent 40%);margin:35% -10%}.skrim__title--right{left:auto;right:0}.skrim__underline-me{position:relative;display:inline-block}[data-animate_underlines=true] .skrim__underline-me:after{content:"";position:absolute;bottom:-4px;left:0;width:0%;border-bottom:2px solid;border-bottom-color:#fff;border-bottom-color:var(--colorHeroText);transition:.3s}[data-animate_underlines=true] .skrim__link:hover .skrim__underline-me:after{width:100%}[data-animate_underlines=true] .skrim__link:hover .skrim__title{bottom:10px}.custom-content{display:flex;align-items:stretch;flex-wrap:wrap;width:auto;margin-bottom:-40px;margin-left:-40px}@media only screen and (max-width:768px){.custom-content{margin-bottom:-30px;margin-left:-30px}}.custom__item{flex:0 0 auto;margin-bottom:40px;padding-left:40px;max-width:100%}@media only screen and (max-width:768px){.custom__item{flex:0 0 auto;padding-left:30px;margin-bottom:30px}.custom__item.small--one-half{flex:1 0 50%;max-width:400px;margin-left:auto;margin-right:auto}}.custom__item img{display:block}.custom__item-inner{position:relative;display:inline-block;text-align:left;max-width:100%;width:100%}.custom__item-inner--html,.custom__item-inner--video{display:block}.custom__item-inner--image{width:100%}.custom__item-inner--html img{display:block;margin:0 auto}.custom__item-inner--placeholder-image{width:100%}.align--top-middle{text-align:center}.align--top-right{text-align:right}.align--middle-left{align-self:center}.align--center{align-self:center;text-align:center}.align--middle-right{align-self:center;text-align:right}.align--bottom-left{align-self:flex-end}.align--bottom-middle{align-self:flex-end;text-align:center}.align--bottom-right{align-self:flex-end;text-align:right}.article__grid-image{display:block;text-align:center;margin-bottom:20px}.article__grid-image img{display:block}.article__date{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.article__date{font-size:calc(var(--typeBaseSize) - 2px)}}.article__author{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.article__author{font-size:calc(var(--typeBaseSize) - 2px)}}.article__author{font-style:italic}.article__grid-meta{margin-bottom:40px}.logo-bar{text-align:center;margin-bottom:-40px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.logo-bar__item{flex:0 1 110px;vertical-align:middle;margin:0 20px 26.66667px}@media only screen and (min-width:769px){.logo-bar__item{flex:0 1 160px;margin:0 26.66667px 40px}}.logo-bar__image{display:block;margin:0 auto}.logo-bar__link{display:block}[data-animate_images=true] [data-aos=logo__animation] .logo-bar__item{opacity:0}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item{animation:fade-in .5s ease 0s forwards}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(2){animation-delay:.2s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(3){animation-delay:.4s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(4){animation-delay:.6s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(5){animation-delay:.8s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(6){animation-delay:1s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(7){animation-delay:1.2s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(8){animation-delay:1.4s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(9){animation-delay:1.6s}[data-animate_images=true] [data-aos=logo__animation].aos-animate .logo-bar__item:nth-child(10){animation-delay:1.8s}.background-media-text{position:relative;width:100%;overflow:hidden;background:#243543;background:var(--colorLargeImageBg)}.background-media-text__image{position:absolute;top:0;left:0;bottom:0;width:100%;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;z-index:0}.background-media-text__inner{position:absolute;z-index:2;width:100%;height:100%}.background-media-text__aligner{margin:40px}.background-media-text__text{text-align:center;background:#ffffff;background:var(--colorBody);padding:40px;width:430px}.background-media-text__text .btn{margin-top:20px}@media only screen and (min-width:769px){.background-media-text--right .background-media-text__text{float:right}}@media only screen and (max-width:768px){.background-media-text,.background-media-text__inner{position:relative}.background-media-text__image{position:relative;height:240px}.background-media-text__aligner{margin:-20px 10px 10px}.background-media-text__text{padding:20px;width:auto}.background-media-text.loading:after,.background-media-text.loading:before{top:117px}}[data-animate_images=true] [data-aos=background-media-text__animation] .background-media-text__image.lazyloaded,[data-animate_images=true] [data-aos=background-media-text__animation] .background-media-text__image svg{opacity:.2;transform:scale(1.06)}.no-js [data-animate_images=true] [data-aos=background-media-text__animation] .background-media-text__image.lazyloaded,.no-js [data-animate_images=true] [data-aos=background-media-text__animation] .background-media-text__image svg{animation:none;opacity:1}[data-animate_images=true] [data-aos=background-media-text__animation].aos-animate .background-media-text__image.lazyloaded,[data-animate_images=true] [data-aos=background-media-text__animation].aos-animate .background-media-text__image svg{animation:fade-in-bg 1.5s cubic-bezier(.26,.54,.32,1) 0s forwards;transition:none}.testimonials-slide{display:none;width:100%}@media only screen and (min-width:769px){.testimonials-slide{width:33%}.testimonials-slider[data-count="2"] .testimonials-slide{width:50%}.testimonials-slider[data-count="1"] .testimonials-slide{width:80%}}.testimonials-slide:first-child{display:block}.flickity-slider .testimonials-slide{display:block;opacity:1}.testimonials-slider__text{position:relative;padding:20px 0 60px}.testimonials-slider__text p{font-size:1.2em;margin-bottom:10px}.testimonials-slider__text p+cite{margin-top:0}.testimonials-slider__text .quote-icon{position:absolute;top:0;left:0;opacity:.1}.text-center .testimonials-slider__text .quote-icon{left:50%;transform:translate(-50%)}.testimonials-slider__text .quote-icon svg{width:50px;height:50px}.testimonail-image{max-width:80px;background-color:#fff;background-color:var(--colorBody)}.text-center .testimonail-image{margin-left:auto;margin-right:auto}.testimonail-image--round{width:80px;height:80px;max-width:none;border-radius:80px}.testimonail-image--round img{overflow:hidden;border-radius:80px}.testimonials-section .flickity-page-dots{bottom:0}@media only screen and (min-width:769px){.testimonials-slider[data-count="1"] .flickity-viewport,.testimonials-slider[data-count="2"] .flickity-viewport,.testimonials-slider[data-count="3"] .flickity-viewport{cursor:default}.testimonials-slider[data-count="1"] .flickity-page-dots,.testimonials-slider[data-count="2"] .flickity-page-dots,.testimonials-slider[data-count="3"] .flickity-page-dots{display:none}}@media only screen and (max-width:768px){.testimonials-slider[data-count="1"] .flickity-viewport{cursor:default}.testimonials-slider[data-count="1"] .flickity-page-dots{display:none}}.announcement{position:relative;overflow:hidden;z-index:24}.announcement__wrapper{background-color:#030303;background-color:var(--colorAnnouncement);color:#fff;color:var(--colorAnnouncementText)}.announcement__text{font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:block;padding:7px 20px 6px;transition:opacity .75s ease;text-align:center}.announcement__link{display:block;color:#fff;color:var(--colorAnnouncementText)}.announcement__link:hover{color:#fff;color:var(--colorAnnouncementText)}.marquee__container{display:flex;align-items:center;overflow:hidden;transform:translateZ(0)}.marquee__text{font-size:25px;margin:.15em 0;white-space:nowrap;width:auto;perspective:900;animation:marquee-left 6.6s linear infinite forwards}@media only screen and (min-width:769px){.marquee__text{animation-duration:10s}.marquee__text span{padding:0 15px}}.marquee__text span{padding:0 20px}.marquee__text--right{animation-name:marquee-right}.shopify-challenge__container{padding:30px 22px}@media only screen and (min-width:769px){.shopify-challenge__container{padding:120px 0}}.newsletter-section{background-color:#1c2d3b;background-color:var(--colorNewsletter);color:#fff;color:var(--colorNewsletterText)}.newsletter{margin:0 auto;max-width:520px}@media only screen and (max-width:768px){.modal .newsletter .newsletter__title{padding-right:50px}}.newsletter-section .errors{margin-left:auto;margin-right:auto;max-width:520px}.newsletter-form-group{position:relative;max-width:400px;margin:0 auto}@media only screen and (max-width:768px){.newsletter-form-group{max-width:85%}.modal--newsletter .newsletter-form-group{max-width:none}}.newsletter-form-group__input{margin:0 auto;width:100%;border-bottom-color:currentColor;border-radius:0;padding-right:45px}.newsletter-form-group__input:focus{border-bottom-color:currentColor}.newsletter-form-group__input::placeholder{color:currentColor;opacity:1}.newsletter-form-group__submit{position:absolute;top:0;right:0;bottom:0;color:currentColor;padding-right:0}.newsletter-form-group__submit .icon{width:26px;height:24px}.map-section{position:relative;height:650px;width:100%;overflow:hidden}@media only screen and (min-width:769px){.map-section{height:500px}}.map-section .page-width{height:100%}.map-section--load-error{height:auto}.map-onboarding{position:absolute;top:0;left:0;bottom:0;width:100%;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;z-index:0}.map-section__overlay-wrapper{position:relative;height:100%}.map-section__overlay{position:relative;display:inline-block;background-color:#fff;background-color:var(--colorBody);padding:30px;margin:30px;z-index:3}@media only screen and (min-width:769px){.map-section__overlay{position:absolute;left:40px;margin:0 40px 40px;padding:40px;top:50%;transform:translateY(-50%);max-width:430px}}.map-section--load-error .map-section__overlay{position:static;transform:translateY(0)}.map-section__link{display:block;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.map-section__container{position:absolute!important;top:0;left:0;width:100%;height:150%;margin-bottom:-50%}@media only screen and (min-width:769px){.map-section__container{width:130%;height:100%;margin:0 -30% 0 0}}[data-animate_images=true] [data-aos=map-section__animation] .map-section__container{animation:fade-out .5s cubic-bezier(.26,.54,.32,1) 0s forwards;will-change:opacity,transform;opacity:0}[data-animate_images=true] [data-aos=map-section__animation].aos-animate .map-section__container{animation:fade-in 2.5s cubic-bezier(.26,.54,.32,1) 0s forwards}.social-section__wrapper{background:#fff;color:#000;border:1px solid;border-color:#32454f1a}.social-section__wrapper a{display:block}.social-section__wrapper .placeholder-svg{padding:0}.social-section__image{padding-bottom:100%;background-size:cover;background-repeat:no-repeat}.social-section__meta{padding:9px;font-size:12px;font-weight:400;font-family:sans-serif;line-height:1.4}@media only screen and (min-width:769px){.social-section__meta{font-size:13px;padding:14px}}.social-section__caption p{display:inline}.social-section__likes+.social-section__caption{margin-top:10px}.social-section__likes{display:flex;align-items:center}.social-section__likes:before{content:"";display:inline-block;height:24px;width:24px;margin-right:10px;background-repeat:no-repeat;background-size:24px;background-image:url(data:image/gif;base64,R0lGODlhJgAmAPcAAO9GUv/8/P/+/v/9/e9HUfBIU//7++9GUfSEjPN5gveepPFeavecovBNWP719u9IU/329vnAxPm/xPBIUvvU1vrU2O9UX/WCi/BGUfzv8fWPlf3y8vBMWfqzuPWOlPmprfmvtfqwtvivtO9LVfNsdfFcZe9IUv309PJpcfFpcfWKk/JqdPvEyPJga/Jia/FOWPeepfVwefRye/3o6f/z9f3z9f719fN4gPNjbfzo6fvX2fJlbvFWYPrR1PaLlPJwevFRXPz0+PzU2P+6wO9MWe5GUfyur/eqsPJZYvR5gPmxtvqvtfvU1/3k5PaWnfX09fJvePimrPJsdvWSm/FSXfJqcvvQ0vmorv3u7viorfaRmPWVmvvd3/u4u//9/vrs8fJmb/m+wf3q7PejqPm8wPnFyPnCx/BKV/BLV+9PWPBRXPBQWe9PWe9LVvFcZvaKk+5KVvBdZvvU2PWDivFaZP3y8/R6g/m+w+9RXP/Q0/bv7/ve4PacovJrdfFeafFaZfFWYfro7vWEjf7s7Pvj5PBLVPFha/uvsu5HUfz2+fn5+fWMk/R0ff3f4vaNlfqjqf7u7/JXYv76+vBVYPrb3v/6+vebofNmcPq8wPnHyvifpfrAxPzh4/BGU//7/P3v8f3t7v3j5f349/R7gvrFyf319fvO0vNrdfzl5/i0ufzW2fJZZPvKzvBXYvaYoP3l6fBQWvzd3/aKkvR/hvemrfakqvBPWvFfaveaof7j5f7x8fBZZPaRl/WOlvFncfN0fPaTm//5+v739/vT1fWFjPmtsv3p6fN3gfBPW/JncPrIy/q6v+9RXfBHUvBHU+9HUv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3MzI1OThFNUFCQ0QxMUU5QUY3NDhFMDFCODlFN0ZDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3MzI1OThFNkFCQ0QxMUU5QUY3NDhFMDFCODlFN0ZDMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjczMjU5OEUzQUJDRDExRTlBRjc0OEUwMUI4OUU3RkMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjczMjU5OEU0QUJDRDExRTlBRjc0OEUwMUI4OUU3RkMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAAAAAAAsAAAAACYAJgAACP8AoQkcSLCgwYMIEypcyHCggBllskxZ1MuViDx6DDpgkoqBBhVaxkjgFCAhBBYefOFx1qxZIUBQGOgoKbBRrWN/0Dh7VsCWIQTLPh3cAAKFiWfOkiJF+uKGGU/QehAD8qxqs6Qtny1QkEMAQQhHkFgFUFUpy2cpSMlJMKHlTqVVATRjswXUwAERVj1zW7Wv250/Eowou3NvX8MNPiQSSOhUy2Z7syKFTPnBg8N7z1I2XGKYgAFXNi+FvLT02beQNZ817KNUhipLUcd+azU15qSFD1vYwwrOW81XC2fN3Xd1WcJVOzgZbdUsccksJafOjfXNJcO4d161GpswacpwU1//jcGhdOnH25OSJcsSq3ay01u6SJP772HJpjMjhVu8Ko4+cnVXXHDm1dbeZIedJQMMkR0nHHLQAaAdbf1VxYsQazxDVoMFPoiVYSDaZhUZNCSxF3uZBYdbfto9Rttmt6DixR1ErIbbY4bhmCB7xu2FwSOKQKMLAgekR1t70O23Ym3HSZGLQAJQkMxxtYkIImqy7SRXKxIMMFAAYcThl5a2oZdZi/w1w0wUDhQkyhJ0NLffmNHd5t4zyPAByUEnFOMGd9ohJ6df21GBixgJ1aDEAhPmiCSCz02iwCALBdEFGEX2hx9mhu1CCxYNVRIBCZ08eBVpkRXmjB8h1NGQQAYoeMMIAXXG15dcBOwwxBOvfmmFHQVklR5mRaywSTC9EjRABXO0gSN8kyHySyYGJGtQLLI0EBmqzRQwiik0WVtQE8Co4VdVZ1ygilfiHmSMJpEcBosjlLSr0BdGtEDAMzxY8oq9C9mAiSCzHBIIwAxJEgoXwiDssEIBAQA7)}.instagram-image{display:block;height:0;padding-bottom:100%;background-size:cover;background-repeat:no-repeat}.instagram-image--error{height:auto;padding:10px;font-size:13px;text-align:center;color:#d02e2e}.instagram-image--error small{word-break:break-word;display:block;font-size:10px}.instagram__product-title{font-size:calc(var(--typeBaseSize)*.85 - 1.7px)}@media only screen and (min-width:769px){.instagram__product-title{font-size:calc(var(--typeBaseSize) - 2px)}}.instagram__product-title{font-style:italic;text-align:center;padding:5px}.instagram__product-title a{display:inline}.store-availability{display:flex;justify-content:space-around}.store-availability .icon{margin:6px 0 0;width:12px;height:12px}.store-availability .icon-in-stock{fill:#56ad6a}.store-availability .icon-out-of-stock{fill:#d02e2e}.store-availability+.store-availability{margin-top:20px}.store-availability__info{flex:0 1 90%;text-align:left;margin-left:10px}.store-availability__info>div{margin-bottom:5px}.store-availability__info>div:last-child{margin-bottom:0}.store-availability__info a{text-decoration:underline}.store-availability__small{font-size:.8em}.store-availability__small a{display:block;margin-top:10px}.messengermessageus--fixed.messengermessageus--fixed{top:auto;bottom:calc(100px + env(safe-area-inset-bottom))}#ShopifyChat#ShopifyChat{bottom:calc(100px + env(safe-area-inset-bottom))!important;z-index:17!important}.modal-open #ShopifyChat#ShopifyChat,.screen-layer-open #ShopifyChat#ShopifyChat{display:none}#ShopifyChat#ShopifyChat[isopen=true]{transform:scale(.8);bottom:calc(50px + env(safe-area-inset-bottom))!important}#tidio-chat iframe{bottom:calc(100px + env(safe-area-inset-bottom))!important}@media only screen and (min-width: 759px){.site-nav__thumb-menu .site-nav__thumb-button{display:none!important}} +/*# sourceMappingURL=/s/files/1/0624/0370/7118/t/2/assets/theme.css.map?v=78209606361295313341645958959 */ diff --git a/httpsgetaer.com.aublogsnews/details.html b/httpsgetaer.com.aublogsnews/details.html new file mode 100644 index 0000000..88f39f6 --- /dev/null +++ b/httpsgetaer.com.aublogsnews/details.html @@ -0,0 +1,727 @@ + + + + + + + + + News– Aer Australia + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ +
+
+ + + +
+ +
+
+ + +
+
+ +
+
+ + + + + + + + + + + + +
+
+ +
+ +

+ {{.Title}} +

+
+
+ +
+
+

+ {{.Article.Summary}} + +

+ + {{range .Article.Topics}} +

{{.Topic}}

+ {{$tlen := len .Pictures}} + {{if ne $tlen 0}} + {{range .Pictures}} + + {{end}} + {{end}} +

{{.Content}}

+ {{end}} + + + + + +
+ {{ if .Prev }} + + {{ end }} + {{ if .Next }} + + {{ end }} +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + +
+ +
+ + + +
+ + + + + + \ No newline at end of file diff --git a/httpsgetaer.com.aublogsnews/index.html b/httpsgetaer.com.aublogsnews/index.html new file mode 100644 index 0000000..ff36970 --- /dev/null +++ b/httpsgetaer.com.aublogsnews/index.html @@ -0,0 +1,732 @@ + + + + + + + + + News– Aer Australia + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ +
+
+ + + +
+ +
+
+ + +
+
+ +
+
+ +
+

+ LATEST ARTICLES +

+
+
+ {{ range .Articles }} +
+ + +
+ {{end}} + +
+ + +
+ +
+ +
+
+ + + + +
+
+ + +
+ +
+ + + +
+ + + + + + \ No newline at end of file diff --git a/httpsgetaer.com.aublogsnews/js/theme.js b/httpsgetaer.com.aublogsnews/js/theme.js new file mode 100644 index 0000000..a656e0a --- /dev/null +++ b/httpsgetaer.com.aublogsnews/js/theme.js @@ -0,0 +1,8437 @@ +/* +@license + Streamline by Archetype Themes (https://archetypethemes.co) + Access unminified JS in assets/theme.js + + Use our custom event listeners to tap into common functions. + Documentation - https://archetypethemes.co/blogs/streamline/javascript-events-for-developers + + document.addEventListener('page:loaded', function() { + // Stylesheet and theme scripts have loaded + }); +*/ + +window.theme = window.theme || {}; +window.Shopify = window.Shopify || {}; + +// Breakpoint values are used throughout many templates. +// We strongly suggest not changing them globally. +theme.bp = {}; +theme.config = { + cssLoaded: false, + bpSmall: false, + hasSessionStorage: true, + mediaQuerySmall: 'screen and (max-width: 768px)', + youTubeReady: false, + vimeoReady: false, + vimeoLoading: false, + isSafari: !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/), + isTouch: ('ontouchstart' in window) || window.DocumentTouch && window.document instanceof DocumentTouch || window.navigator.maxTouchPoints || window.navigator.msMaxTouchPoints ? true : false, + rtl: document.documentElement.getAttribute('dir') == 'rtl' ? true : false +}; + +if (console && console.log) { + console.log('Streamline theme ('+theme.settings.themeVersion+') by ARCHΞTYPE | Learn more at https://archetypethemes.co'); +} + +window.lazySizesConfig = window.lazySizesConfig || {}; +lazySizesConfig.expFactor = 4; + +// Trigger events when going between breakpoints +theme.config.bpSmall = matchMedia(theme.config.mediaQuerySmall).matches; +matchMedia(theme.config.mediaQuerySmall).addListener(function(mql) { + if (mql.matches) { + theme.config.bpSmall = true; + document.dispatchEvent(new CustomEvent('matchSmall')); + } else { + theme.config.bpSmall = false; + document.dispatchEvent(new CustomEvent('unmatchSmall')); + } +}); + +(function(){ + 'use strict'; + + theme.delegate = { + on: function(event, callback, options){ + if( !this.namespaces ) // save the namespaces on the DOM element itself + this.namespaces = {}; + + this.namespaces[event] = callback; + options = options || false; + + this.addEventListener(event.split('.')[0], callback, options); + return this; + }, + off: function(event) { + if (!this.namespaces) { return } + this.removeEventListener(event.split('.')[0], this.namespaces[event]); + delete this.namespaces[event]; + return this; + } + }; + + // Extend the DOM with these above custom methods + window.on = Element.prototype.on = theme.delegate.on; + window.off = Element.prototype.off = theme.delegate.off; + + theme.utils = { + defaultTo: function(value, defaultValue) { + return (value == null || value !== value) ? defaultValue : value + }, + + wrap: function(el, wrapper) { + el.parentNode.insertBefore(wrapper, el); + wrapper.appendChild(el); + }, + + debounce: function(wait, callback, immediate) { + var timeout; + return function() { + var context = this, args = arguments; + var later = function() { + timeout = null; + if (!immediate) callback.apply(context, args); + }; + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) callback.apply(context, args); + } + }, + + throttle: function(limit, callback) { + var waiting = false; + return function () { + if (!waiting) { + callback.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, limit); + } + } + }, + + prepareTransition: function(el, callback) { + el.addEventListener('transitionend', removeClass); + + function removeClass(evt) { + el.classList.remove('is-transitioning'); + el.removeEventListener('transitionend', removeClass); + } + + el.classList.add('is-transitioning'); + el.offsetWidth; // check offsetWidth to force the style rendering + + if (typeof callback === 'function') { + callback(); + } + }, + + // _.compact from lodash + // Creates an array with all falsey values removed. The values `false`, `null`, + // `0`, `""`, `undefined`, and `NaN` are falsey. + // _.compact([0, 1, false, 2, '', 3]); + // => [1, 2, 3] + compact: function(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } + } + return result; + }, + + serialize: function(form) { + var arr = []; + Array.prototype.slice.call(form.elements).forEach(function(field) { + if ( + !field.name || + field.disabled || + ['file', 'reset', 'submit', 'button'].indexOf(field.type) > -1 + ) + return; + if (field.type === 'select-multiple') { + Array.prototype.slice.call(field.options).forEach(function(option) { + if (!option.selected) return; + arr.push( + encodeURIComponent(field.name) + + '=' + + encodeURIComponent(option.value) + ); + }); + return; + } + if (['checkbox', 'radio'].indexOf(field.type) > -1 && !field.checked) + return; + arr.push( + encodeURIComponent(field.name) + '=' + encodeURIComponent(field.value) + ); + }); + return arr.join('&'); + } + }; + + theme.a11y = { + trapFocus: function(options) { + var eventsName = { + focusin: options.namespace ? 'focusin.' + options.namespace : 'focusin', + focusout: options.namespace + ? 'focusout.' + options.namespace + : 'focusout', + keydown: options.namespace + ? 'keydown.' + options.namespace + : 'keydown.handleFocus' + }; + + // Get every possible visible focusable element + var focusableEls = options.container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex^="-"])'); + var elArray = [].slice.call(focusableEls); + var focusableElements = elArray.filter(el => el.offsetParent !== null); + + var firstFocusable = focusableElements[0]; + var lastFocusable = focusableElements[focusableElements.length - 1]; + + if (!options.elementToFocus) { + options.elementToFocus = options.container; + } + + options.container.setAttribute('tabindex', '-1'); + options.elementToFocus.focus(); + + document.documentElement.off('focusin'); + document.documentElement.on(eventsName.focusout, function() { + document.documentElement.off(eventsName.keydown); + }); + + document.documentElement.on(eventsName.focusin, function(evt) { + if (evt.target !== lastFocusable && evt.target !== firstFocusable) return; + + document.documentElement.on(eventsName.keydown, function(evt) { + _manageFocus(evt); + }); + }); + + function _manageFocus(evt) { + if (evt.keyCode !== 9) return; + /** + * On the first focusable element and tab backward, + * focus the last element + */ + if (evt.target === firstFocusable && evt.shiftKey) { + evt.preventDefault(); + lastFocusable.focus(); + } + } + }, + removeTrapFocus: function(options) { + var eventName = options.namespace + ? 'focusin.' + options.namespace + : 'focusin'; + + if (options.container) { + options.container.removeAttribute('tabindex'); + } + + document.documentElement.off(eventName); + }, + + lockMobileScrolling: function(namespace, element) { + var el = element ? element : document.documentElement; + document.documentElement.classList.add('lock-scroll'); + el.on('touchmove' + namespace, function() { + return true; + }); + }, + + unlockMobileScrolling: function(namespace, element) { + document.documentElement.classList.remove('lock-scroll'); + var el = element ? element : document.documentElement; + el.off('touchmove' + namespace); + } + }; + + // Add class when tab key starts being used to show outlines + document.documentElement.on('keyup.tab', function(evt) { + if (evt.keyCode === 9) { + document.documentElement.classList.add('tab-outline'); + document.documentElement.off('keyup.tab'); + } + }); + + theme.Sections = function Sections() { + this.constructors = {}; + this.instances = []; + + document.addEventListener('shopify:section:load', this._onSectionLoad.bind(this)); + document.addEventListener('shopify:section:unload', this._onSectionUnload.bind(this)); + document.addEventListener('shopify:section:select', this._onSelect.bind(this)); + document.addEventListener('shopify:section:deselect', this._onDeselect.bind(this)); + document.addEventListener('shopify:block:select', this._onBlockSelect.bind(this)); + document.addEventListener('shopify:block:deselect', this._onBlockDeselect.bind(this)); + }; + + theme.Sections.prototype = Object.assign({}, theme.Sections.prototype, { + _createInstance: function(container, constructor, scope) { + var id = container.getAttribute('data-section-id'); + var type = container.getAttribute('data-section-type'); + + constructor = constructor || this.constructors[type]; + + if (typeof constructor === 'undefined') { + return; + } + + // If custom scope passed, check to see if instance + // is already initialized so we don't double up + if (scope) { + var instanceExists = this._findInstance(id); + if (instanceExists) { + this._removeInstance(id); + } + } + + // If a section fails to init, handle the error without letting all subsequest section registers to fail + try { + var instance = Object.assign(new constructor(container), { + id: id, + type: type, + container: container + }); + this.instances.push(instance); + } catch (e) { + console.error(e); + } + }, + + _findInstance: function(id) { + for (var i = 0; i < this.instances.length; i++) { + if (this.instances[i].id === id) { + return this.instances[i]; + } + } + }, + + _removeInstance: function(id) { + var i = this.instances.length; + var instance; + + while(i--) { + if (this.instances[i].id === id) { + instance = this.instances[i]; + this.instances.splice(i, 1); + break; + } + } + + return instance; + }, + + _onSectionLoad: function(evt, subSection, subSectionId) { + if (window.AOS) { AOS.refreshHard() } + if (theme && theme.initGlobals) { + theme.initGlobals(); + } + + var container = subSection ? subSection : evt.target; + var section = subSection ? subSection : evt.target.querySelector('[data-section-id]'); + + if (!section) { + return; + } + + this._createInstance(section); + + var instance = subSection ? subSectionId : this._findInstance(evt.detail.sectionId); + + // Check if we have subsections to load + var haveSubSections = container.querySelectorAll('[data-subsection]'); + if (haveSubSections.length) { + this.loadSubSections(container); + } + + // Run JS only in case of the section being selected in the editor + // before merchant clicks "Add" + if (instance && typeof instance.onLoad === 'function') { + instance.onLoad(evt); + } + + // Force editor to trigger scroll event when loading a section + setTimeout(function() { + window.dispatchEvent(new Event('scroll')); + }, 200); + }, + + _onSectionUnload: function(evt) { + this.instances = this.instances.filter(function(instance) { + var isEventInstance = instance.id === evt.detail.sectionId; + + if (isEventInstance) { + if (typeof instance.onUnload === 'function') { + instance.onUnload(evt); + } + } + + return !isEventInstance; + }); + }, + + loadSubSections: function(scope) { + if (!scope) { + return; + } + + var sections = scope.querySelectorAll('[data-section-id]'); + + sections.forEach(el => { + this._onSectionLoad(null, el, el.dataset.sectionId); + }); + }, + + _onSelect: function(evt) { + var instance = this._findInstance(evt.detail.sectionId); + + if ( + typeof instance !== 'undefined' && + typeof instance.onSelect === 'function' + ) { + instance.onSelect(evt); + } + }, + + _onDeselect: function(evt) { + var instance = this._findInstance(evt.detail.sectionId); + + if ( + typeof instance !== 'undefined' && + typeof instance.onDeselect === 'function' + ) { + instance.onDeselect(evt); + } + }, + + _onBlockSelect: function(evt) { + var instance = this._findInstance(evt.detail.sectionId); + + if ( + typeof instance !== 'undefined' && + typeof instance.onBlockSelect === 'function' + ) { + instance.onBlockSelect(evt); + } + }, + + _onBlockDeselect: function(evt) { + var instance = this._findInstance(evt.detail.sectionId); + + if ( + typeof instance !== 'undefined' && + typeof instance.onBlockDeselect === 'function' + ) { + instance.onBlockDeselect(evt); + } + }, + + register: function(type, constructor, scope) { + this.constructors[type] = constructor; + + var sections = document.querySelectorAll('[data-section-type="' + type + '"]'); + + if (scope) { + sections = scope.querySelectorAll('[data-section-type="' + type + '"]'); + } + + sections.forEach( + function(container) { + this._createInstance(container, constructor, scope); + }.bind(this) + ); + }, + + reinit: function(section) { + for (var i = 0; i < this.instances.length; i++) { + var instance = this.instances[i]; + if (instance['type'] === section) { + if (typeof instance.forceReload === 'function') { + instance.forceReload(); + } + } + } + } + }); + + /** + * Currency Helpers + * ----------------------------------------------------------------------------- + * A collection of useful functions that help with currency formatting + * + * Current contents + * - formatMoney - Takes an amount in cents and returns it as a formatted dollar value. + * - When theme.settings.superScriptPrice is enabled, format cents in tag + * - getBaseUnit - Splits unit price apart to get value + unit + * + */ + + theme.Currency = (function() { + var moneyFormat = '${{amount}}'; + var superScript = theme && theme.settings && theme.settings.superScriptPrice; + + function formatMoney(cents, format) { + if (!format) { + format = theme.settings.moneyFormat; + } + + if (typeof cents === 'string') { + cents = cents.replace('.', ''); + } + var value = ''; + var placeholderRegex = /\{\{\s*(\w+)\s*\}\}/; + var formatString = (format || moneyFormat); + + function formatWithDelimiters(number, precision, thousands, decimal) { + precision = theme.utils.defaultTo(precision, 2); + thousands = theme.utils.defaultTo(thousands, ','); + decimal = theme.utils.defaultTo(decimal, '.'); + + if (isNaN(number) || number == null) { + return 0; + } + + number = (number / 100.0).toFixed(precision); + + var parts = number.split('.'); + var dollarsAmount = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1' + thousands); + var centsAmount = parts[1] ? (decimal + parts[1]) : ''; + + return dollarsAmount + centsAmount; + } + + switch (formatString.match(placeholderRegex)[1]) { + case 'amount': + value = formatWithDelimiters(cents, 2); + + if (superScript && value && value.includes('.')) { + value = value.replace('.', '') + ''; + } + + break; + case 'amount_no_decimals': + value = formatWithDelimiters(cents, 0); + break; + case 'amount_with_comma_separator': + value = formatWithDelimiters(cents, 2, '.', ','); + + if (superScript && value && value.includes('.')) { + value = value.replace(',', '') + ''; + } + + break; + case 'amount_no_decimals_with_comma_separator': + value = formatWithDelimiters(cents, 0, '.', ','); + break; + case 'amount_no_decimals_with_space_separator': + value = formatWithDelimiters(cents, 0, ' '); + break; + } + + return formatString.replace(placeholderRegex, value); + } + + function getBaseUnit(variant) { + if (!variant) { + return; + } + + if (!variant.unit_price_measurement || !variant.unit_price_measurement.reference_value) { + return; + } + + return variant.unit_price_measurement.reference_value === 1 + ? variant.unit_price_measurement.reference_unit + : variant.unit_price_measurement.reference_value + + variant.unit_price_measurement.reference_unit; + } + + return { + formatMoney: formatMoney, + getBaseUnit: getBaseUnit + } + })(); + + theme.Images = (function() { + + /** + * Find the Shopify image attribute size + */ + function imageSize(src) { + if (!src) { + return '620x'; // default based on theme + } + + var match = src.match(/.+_((?:pico|icon|thumb|small|compact|medium|large|grande)|\d{1,4}x\d{0,4}|x\d{1,4})[_\.@]/); + + if (match !== null) { + return match[1]; + } else { + return null; + } + } + + /** + * Adds a Shopify size attribute to a URL + */ + function getSizedImageUrl(src, size) { + if (!src) { + return src; + } + + if (size == null) { + return src; + } + + if (size === 'master') { + return this.removeProtocol(src); + } + + var match = src.match(/\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?$/i); + + if (match != null) { + var prefix = src.split(match[0]); + var suffix = match[0]; + + return this.removeProtocol(prefix[0] + '_' + size + suffix); + } + + return null; + } + + function removeProtocol(path) { + return path.replace(/http(s)?:/, ''); + } + + function lazyloadImagePath(string) { + var image; + + if (string !== null) { + image = string.replace(/(\.[^.]*)$/, "_{width}x$1"); + } + + return image; + } + + return { + imageSize: imageSize, + getSizedImageUrl: getSizedImageUrl, + removeProtocol: removeProtocol, + lazyloadImagePath: lazyloadImagePath + }; + })(); + + theme.loadImageSection = function(container) { + // Wait until images inside container have lazyloaded class + function setAsLoaded() { + container.classList.remove('loading', 'loading--delayed'); + container.classList.add('loaded'); + } + + function checkForLazyloadedImage() { + return container.querySelector('.lazyloaded'); + } + + // If it has SVGs it's in the onboarding state so set as loaded + if (container.querySelector('svg')) { + setAsLoaded(); + return; + }; + + if (checkForLazyloadedImage()) { + setAsLoaded(); + return; + } + + var interval = setInterval(function() { + if (checkForLazyloadedImage()) { + clearInterval(interval); + setAsLoaded(); + } + }, 25); + }; + + // Init section function when it's visible, then disable observer + theme.initWhenVisible = function(options) { + var threshold = options.threshold ? options.threshold : 0; + + var observer = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + if (typeof options.callback === 'function') { + options.callback(); + observer.unobserve(entry.target); + } + } + }); + }, {rootMargin: '0px 0px '+ threshold +'px 0px'}); + + observer.observe(options.element); + }; + + /* + Options: + container + enableHistoryState - enable when on single product page to update URL + singleOptionSelector - selector for individual variant option (e.g. 'Blue' or 'Small') + originalSelectorId - selector for base variant selector (visually hidden) + variants - JSON parsed object of product variant info + */ + theme.Variants = (function() { + + function Variants(options) { + this.container = options.container; + this.variants = options.variants; + this.singleOptionSelector = options.singleOptionSelector; + this.originalSelectorId = options.originalSelectorId; + this.enableHistoryState = options.enableHistoryState; + this.currentlySelectedValues = this._getCurrentOptions(); + this.currentVariant = this._getVariantFromOptions(this.currentlySelectedValues); + + this.container.querySelectorAll(this.singleOptionSelector).forEach(el => { + el.addEventListener('change', this._onSelectChange.bind(this)); + }); + } + + Variants.prototype = Object.assign({}, Variants.prototype, { + + _getCurrentOptions: function() { + var result = []; + + this.container.querySelectorAll(this.singleOptionSelector).forEach(el => { + var type = el.getAttribute('type'); + + if (type === 'radio' || type === 'checkbox') { + if (el.checked) { + result.push({ + value: el.value, + index: el.dataset.index + }); + } + } else { + result.push({ + value: el.value, + index: el.dataset.index + }); + } + }); + + // remove any unchecked input values if using radio buttons or checkboxes + result = theme.utils.compact(result); + + return result; + }, + + _getVariantFromOptions: function(selectedValues) { + var variants = this.variants; + var found = false; + + if (selectedValues.length !== variants[0].options.length) return null; + + variants.forEach(function(variant) { + var match = true; + var options = variant.options; + + selectedValues.forEach(function(option) { + if (match) { + match = (variant[option.index] === option.value); + } + }); + + if (match) { + found = variant; + } + }); + + return found || null; + }, + + _onSelectChange: function(evt) { + var el = evt.srcElement + var type = el.getAttribute('type'); + + if (el.classList.contains('disabled')) { + this.container.querySelectorAll(this.singleOptionSelector).forEach(input => { + if (type === 'radio' || type === 'checkbox') { + if (input !== el) { + input.checked = false + } + } + }) + } + + this.currentlySelectedValues = this._getCurrentOptions(); + var variant = this._getVariantFromOptions(this.currentlySelectedValues); + + this.container.dispatchEvent(new CustomEvent('variantChange', { + detail: { + variant: variant, + currentlySelectedValues: this.currentlySelectedValues, + value: evt.srcElement.value, + index: evt.srcElement.parentElement.dataset.index + } + })); + + document.dispatchEvent(new CustomEvent('variant:change', { + detail: { + variant: variant, + currentlySelectedValues: this.currentlySelectedValues, + value: evt.srcElement.value, + index: evt.srcElement.parentElement.dataset.index + } + })); + + if (!variant) { + return; + } + + this._updateMasterSelect(variant); + this._updateImages(variant); + this._updatePrice(variant); + this._updateUnitPrice(variant); + this._updateSKU(variant); + this.currentVariant = variant; + + if (this.enableHistoryState) { + this._updateHistoryState(variant); + } + }, + + _updateImages: function(variant) { + var variantImage = variant.featured_image || {}; + var currentVariantImage = this.currentVariant && this.currentVariant.featured_image || {}; + + if (!variant.featured_image || variantImage.src === currentVariantImage.src) { + return; + } + + this.container.dispatchEvent(new CustomEvent('variantImageChange', { + detail: { + variant: variant + } + })); + }, + + _updatePrice: function(variant) { + if (this.currentVariant && variant.price === this.currentVariant.price && variant.compare_at_price === this.currentVariant.compare_at_price) { + return; + } + + this.container.dispatchEvent(new CustomEvent('variantPriceChange', { + detail: { + variant: variant + } + })); + }, + + _updateUnitPrice: function(variant) { + if (this.currentVariant && variant.unit_price === this.currentVariant.unit_price) { + return; + } + + this.container.dispatchEvent(new CustomEvent('variantUnitPriceChange', { + detail: { + variant: variant + } + })); + }, + + _updateSKU: function(variant) { + if (this.currentVariant && variant.sku === this.currentVariant.sku) { + return; + } + + this.container.dispatchEvent(new CustomEvent('variantSKUChange', { + detail: { + variant: variant + } + })); + }, + + _updateHistoryState: function(variant) { + if (!history.replaceState || !variant) { + return; + } + + var newurl = window.location.protocol + '//' + window.location.host + window.location.pathname + '?variant=' + variant.id; + window.history.replaceState({path: newurl}, '', newurl); + }, + + _updateMasterSelect: function(variant) { + this.container.querySelector(this.originalSelectorId).value = variant.id; + // Force a change event so Shop Pay installments works after a variant is changed + this.container.querySelector(this.originalSelectorId).dispatchEvent(new Event('change', { bubbles: true })); + } + }); + + return Variants; + })(); + + theme.rteInit = function() { + // Wrap tables so they become scrollable on small screens + document.querySelectorAll('.rte table').forEach(table => { + var wrapWith = document.createElement('div'); + wrapWith.classList.add('table-wrapper'); + theme.utils.wrap(table, wrapWith); + }); + + // Wrap video iframe embeds so they are responsive + document.querySelectorAll('.rte iframe[src*="youtube.com/embed"]').forEach(iframe => { + wrapVideo(iframe); + }); + document.querySelectorAll('.rte iframe[src*="player.vimeo"]').forEach(iframe => { + wrapVideo(iframe); + }); + + function wrapVideo(iframe) { + // Reset the src attribute on each iframe after page load + // for Chrome's "incorrect iFrame content on 'back'" bug. + // https://code.google.com/p/chromium/issues/detail?id=395791 + iframe.src = iframe.src; + var wrapWith = document.createElement('div'); + wrapWith.classList.add('video-wrapper'); + theme.utils.wrap(iframe, wrapWith); + } + + // Remove CSS that adds animated underline under image links + document.querySelectorAll('.rte a img').forEach(img => { + img.parentNode.classList.add('rte__image'); + }); + } + + theme.LibraryLoader = (function() { + var types = { + link: 'link', + script: 'script' + }; + + var status = { + requested: 'requested', + loaded: 'loaded' + }; + + var cloudCdn = 'https://cdn.shopify.com/shopifycloud/'; + + var libraries = { + youtubeSdk: { + tagId: 'youtube-sdk', + src: 'https://www.youtube.com/iframe_api', + type: types.script + }, + vimeo: { + tagId: 'vimeo-api', + src: 'https://player.vimeo.com/api/player.js', + type: types.script + }, + shopifyXr: { + tagId: 'shopify-model-viewer-xr', + src: cloudCdn + 'shopify-xr-js/assets/v1.0/shopify-xr.en.js', + type: types.script + }, + modelViewerUi: { + tagId: 'shopify-model-viewer-ui', + src: cloudCdn + 'model-viewer-ui/assets/v1.0/model-viewer-ui.en.js', + type: types.script + }, + modelViewerUiStyles: { + tagId: 'shopify-model-viewer-ui-styles', + src: cloudCdn + 'model-viewer-ui/assets/v1.0/model-viewer-ui.css', + type: types.link + } + }; + + function load(libraryName, callback) { + var library = libraries[libraryName]; + + if (!library) return; + if (library.status === status.requested) return; + + callback = callback || function() {}; + if (library.status === status.loaded) { + callback(); + return; + } + + library.status = status.requested; + + var tag; + + switch (library.type) { + case types.script: + tag = createScriptTag(library, callback); + break; + case types.link: + tag = createLinkTag(library, callback); + break; + } + + tag.id = library.tagId; + library.element = tag; + + var firstScriptTag = document.getElementsByTagName(library.type)[0]; + firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); + } + + function createScriptTag(library, callback) { + var tag = document.createElement('script'); + tag.src = library.src; + tag.addEventListener('load', function() { + library.status = status.loaded; + callback(); + }); + return tag; + } + + function createLinkTag(library, callback) { + var tag = document.createElement('link'); + tag.href = library.src; + tag.rel = 'stylesheet'; + tag.type = 'text/css'; + tag.addEventListener('load', function() { + library.status = status.loaded; + callback(); + }); + return tag; + } + + return { + load: load + }; + })(); + + window.vimeoApiReady = function() { + theme.config.vimeoLoading = true; + + // Because there's no way to check for the Vimeo API being loaded + // asynchronously, we use this terrible timeout to wait for it being ready + checkIfVimeoIsReady() + .then(function() { + theme.config.vimeoReady = true; + theme.config.vimeoLoading = false; + document.dispatchEvent(new CustomEvent('vimeoReady')); + }); + } + + function checkIfVimeoIsReady() { + var wait; + var timeout; + + var deferred = new Promise((resolve, reject) => { + wait = setInterval(function() { + if (!Vimeo) { + return; + } + + clearInterval(wait); + clearTimeout(timeout); + resolve(); + }, 500); + + timeout = setTimeout(function() { + clearInterval(wait); + reject(); + }, 4000); // subjective. test up to 8 times over 4 seconds + }); + + return deferred; + } + + theme.VimeoPlayer = (function() { + var classes = { + loading: 'loading', + loaded: 'loaded', + interactable: 'video-interactable' + } + + var defaults = { + background: true, + byline: false, + controls: false, + loop: true, + muted: true, + playsinline: true, + portrait: false, + title: false + }; + + function VimeoPlayer(divId, videoId, options) { + this.divId = divId; + this.el = document.getElementById(divId); + this.videoId = videoId; + this.iframe = null; + this.options = options; + + if (this.options && this.options.videoParent) { + this.parent = this.el.closest(this.options.videoParent); + } + + this.setAsLoading(); + + if (theme.config.vimeoReady) { + this.init(); + } else { + theme.LibraryLoader.load('vimeo', window.vimeoApiReady); + document.addEventListener('vimeoReady', this.init.bind(this)); + } + } + + VimeoPlayer.prototype = Object.assign({}, VimeoPlayer.prototype, { + init: function() { + var args = defaults; + args.id = this.videoId; + + this.videoPlayer = new Vimeo.Player(this.el, args); + + this.videoPlayer.ready().then(this.playerReady.bind(this)); + }, + + playerReady: function() { + this.iframe = this.el.querySelector('iframe'); + this.iframe.setAttribute('tabindex', '-1'); + + this.videoPlayer.setMuted(true); + + this.setAsLoaded(); + + // pause when out of view + var observer = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + this.play(); + } else { + this.pause(); + } + }); + }, {rootMargin: '0px 0px 50px 0px'}); + + observer.observe(this.iframe); + }, + + setAsLoading: function() { + if (!this.parent) return; + this.parent.classList.add(classes.loading); + }, + + setAsLoaded: function() { + if (!this.parent) return; + this.parent.classList.remove(classes.loading); + this.parent.classList.add(classes.loaded); + if (Shopify && Shopify.designMode) { + if (window.AOS) {AOS.refreshHard()} + } + }, + + enableInteraction: function() { + if (!this.parent) return; + this.parent.classList.add(classes.interactable); + }, + + play: function() { + if (this.videoPlayer && typeof this.videoPlayer.play === 'function') { + this.videoPlayer.play(); + } + }, + + pause: function() { + if (this.videoPlayer && typeof this.videoPlayer.pause === 'function') { + this.videoPlayer.pause(); + } + }, + + destroy: function() { + if (this.videoPlayer && typeof this.videoPlayer.destroy === 'function') { + this.videoPlayer.destroy(); + } + } + }); + + return VimeoPlayer; + })(); + + window.onYouTubeIframeAPIReady = function() { + theme.config.youTubeReady = true; + document.dispatchEvent(new CustomEvent('youTubeReady')); + } + + /*============================================================================ + YouTube SDK method + Parameters: + - player div id (required) + - arguments + - videoId (required) + - videoParent (selector, optional for section loading state) + - events (object, optional) + ==============================================================================*/ + theme.YouTube = (function() { + var classes = { + loading: 'loading', + loaded: 'loaded', + interactable: 'video-interactable' + } + + var defaults = { + width: 1280, + height: 720, + playerVars: { + autohide: 0, + autoplay: 1, + cc_load_policy: 0, + controls: 0, + fs: 0, + iv_load_policy: 3, + modestbranding: 1, + playsinline: 1, + rel: 0 + } + }; + + function YouTube(divId, options) { + this.divId = divId; + this.iframe = null; + + this.attemptedToPlay = false; + + // API callback events + defaults.events = { + onReady: this.onVideoPlayerReady.bind(this), + onStateChange: this.onVideoStateChange.bind(this) + }; + + this.options = Object.assign({}, defaults, options); + + if (this.options) { + if (this.options.videoParent) { + this.parent = document.getElementById(this.divId).closest(this.options.videoParent); + } + + // Most YT videos will autoplay. If in product media, + // will handle in theme.Product instead + if (!this.options.autoplay) { + this.options.playerVars.autoplay = this.options.autoplay; + } + + if (this.options.style === 'sound') { + this.options.playerVars.controls = 1; + this.options.playerVars.autoplay = 0; + } + + } + + this.setAsLoading(); + + if (theme.config.youTubeReady) { + this.init(); + } else { + theme.LibraryLoader.load('youtubeSdk'); + document.addEventListener('youTubeReady', this.init.bind(this)); + } + } + + YouTube.prototype = Object.assign({}, YouTube.prototype, { + init: function() { + this.videoPlayer = new YT.Player(this.divId, this.options); + }, + + onVideoPlayerReady: function(evt) { + this.iframe = document.getElementById(this.divId); // iframe once YT loads + this.iframe.setAttribute('tabindex', '-1'); + + if (this.options.style !== 'sound') { + evt.target.mute(); + } + + // pause when out of view + var observer = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + this.play(); + } else { + this.pause(); + } + }); + }, {rootMargin: '0px 0px 50px 0px'}); + + observer.observe(this.iframe); + }, + + onVideoStateChange: function(evt) { + switch (evt.data) { + case -1: // unstarted + // Handle low power state on iOS by checking if + // video is reset to unplayed after attempting to buffer + if (this.attemptedToPlay) { + this.setAsLoaded(); + this.enableInteraction(); + } + break; + case 0: // ended, loop it + this.play(evt); + break; + case 1: // playing + this.setAsLoaded(); + break; + case 3: // buffering + this.attemptedToPlay = true; + break; + } + }, + + setAsLoading: function() { + if (!this.parent) return; + this.parent.classList.add(classes.loading); + }, + + setAsLoaded: function() { + if (!this.parent) return; + this.parent.classList.remove(classes.loading); + this.parent.classList.add(classes.loaded); + if (Shopify && Shopify.designMode) { + if (window.AOS) {AOS.refreshHard()} + } + }, + + enableInteraction: function() { + if (!this.parent) return; + this.parent.classList.add(classes.interactable); + }, + + play: function() { + if (this.videoPlayer && typeof this.videoPlayer.playVideo === 'function') { + this.videoPlayer.playVideo(); + } + }, + + pause: function() { + if (this.videoPlayer && typeof this.videoPlayer.pauseVideo === 'function') { + this.videoPlayer.pauseVideo(); + } + }, + + destroy: function() { + if (this.videoPlayer && typeof this.videoPlayer.destroy === 'function') { + this.videoPlayer.destroy(); + } + } + }); + + return YouTube; + })(); + + // Prevent vertical scroll while using flickity sliders + (function() { + var e = !1; + var t; + + document.body.addEventListener('touchstart', function(i) { + if (!i.target.closest('.flickity-slider')) { + return e = !1; + void 0; + } + e = !0; + t = { + x: i.touches[0].pageX, + y: i.touches[0].pageY + } + }) + + document.body.addEventListener('touchmove', function(i) { + if (e && i.cancelable) { + var n = { + x: i.touches[0].pageX - t.x, + y: i.touches[0].pageY - t.y + }; + Math.abs(n.x) > Flickity.defaults.dragThreshold && i.preventDefault() + } + }, { passive: !1 }) + })(); + + + /** + * Ajax Renderer + * ----------------------------------------------------------------------------- + * Render sections without reloading the page. + * @param {Object[]} sections - The section to update on render. + * @param {string} sections[].sectionId - The ID of the section from Shopify. + * @param {string} sections[].nodeId - The ID of the DOM node to replace. + * @param {Function} sections[].onReplace (optional) - The custom render function. + * @param {boolean} debug - Output logs to console for debugging. + * + */ + + theme.AjaxRenderer = (function () { + function AjaxRenderer({ sections, onReplace, debug } = {}) { + this.sections = sections || []; + this.cachedSections = []; + this.onReplace = onReplace; + this.debug = Boolean(debug); + } + + AjaxRenderer.prototype = Object.assign({}, AjaxRenderer.prototype, { + renderPage: function (basePath, newParams, updateURLHash = true) { + const currentParams = new URLSearchParams(window.location.search); + const updatedParams = this.getUpdatedParams(currentParams, newParams) + + const sectionRenders = this.sections.map(section => { + + const url = `${basePath}?section_id=${section.sectionId}&${updatedParams.toString()}`; + const cachedSectionUrl = cachedSection => cachedSection.url === url; + + return this.cachedSections.some(cachedSectionUrl) + ? this.renderSectionFromCache(cachedSectionUrl, section) + : this.renderSectionFromFetch(url, section); + }); + + if (updateURLHash) this.updateURLHash(updatedParams); + + return Promise.all(sectionRenders); + }, + + renderSectionFromCache: function (url, section) { + const cachedSection = this.cachedSections.find(url); + + this.log(`[AjaxRenderer] rendering from cache: url=${cachedSection.url}`); + this.renderSection(cachedSection.html, section); + return Promise.resolve(section); + }, + + renderSectionFromFetch: function (url, section) { + this.log(`[AjaxRenderer] redering from fetch: url=${url}`); + + return new Promise((resolve, reject) => { + fetch(url) + .then(response => response.text()) + .then(responseText => { + const html = responseText; + this.cachedSections = [...this.cachedSections, { html, url }]; + this.renderSection(html, section); + resolve(section); + }) + .catch(err => reject(err)); + }); + }, + + renderSection: function (html, section) { + this.log( + `[AjaxRenderer] rendering section: section=${JSON.stringify(section)}`, + ); + + const newDom = new DOMParser().parseFromString(html, 'text/html'); + if (this.onReplace) { + this.onReplace(newDom, section); + } else { + if (typeof section.nodeId === 'string') { + var newContentEl = newDom.getElementById(section.nodeId); + if (!newContentEl) { + return; + } + + document.getElementById(section.nodeId).innerHTML = + newContentEl.innerHTML; + } else { + section.nodeId.forEach(id => { + document.getElementById(id).innerHTML = + newDom.getElementById(id).innerHTML; + }); + } + } + + return section; + }, + + getUpdatedParams: function (currentParams, newParams) { + const clone = new URLSearchParams(currentParams); + const preservedParams = ['sort_by', 'q', 'options[prefix]', 'type']; + + // Find what params need to be removed + // delete happens first as we cannot specify keys based off of values + for (const [key, value] of clone.entries()) { + if (!newParams.getAll(key).includes(value) && !preservedParams.includes(key)) { + clone.delete(key); + }; + } + + // Find what params need to be added + for (const [key, value] of newParams.entries()) { + if (!clone.getAll(key).includes(value) && value !== '') { + clone.append(key, value); + } + } + + return clone; + }, + + updateURLHash: function (searchParams) { + history.pushState( + {}, + '', + `${window.location.pathname}${ + searchParams && '?'.concat(searchParams) + }`, + ); + }, + + log: function (...args) { + if (this.debug) { + console.log(...args); + } + }, + }); + + return AjaxRenderer; + })(); + + if (window.Shopify && window.Shopify.theme && navigator && navigator.sendBeacon && window.Shopify.designMode) { + navigator.sendBeacon('https://api.archetypethemes.co/api/beacon', new URLSearchParams({ + shop: window.Shopify.shop, + themeName: window.theme && window.theme.settings && `${window.theme.settings.themeName} v${window.theme.settings.themeVersion}`, + role: window.Shopify.theme.role, + route: window.location.pathname, + themeId: window.Shopify.theme.id, + themeStoreId: window.Shopify.theme.theme_store_id || 0, + isThemeEditor: !!window.Shopify.designMode + })) + } + theme.cart = { + getCart: function() { + var url = ''.concat(theme.routes.cart, '?t=').concat(Date.now()); + return fetch(url, { + credentials: 'same-origin', + method: 'GET' + }).then(response => response.json()); + }, + + getCartProductMarkup: function() { + var url = ''.concat(theme.routes.cartPage, '?t=').concat(Date.now()); + + url = url.indexOf('?') === -1 ? (url + '?view=ajax') : (url + '&view=ajax'); + + return fetch(url, { + credentials: 'same-origin', + method: 'GET' + }) + .then(function(response) {return response.text()}); + }, + + changeItem: function(key, qty) { + return this._updateCart({ + url: ''.concat(theme.routes.cartChange, '?t=').concat(Date.now()), + data: JSON.stringify({ + id: key, + quantity: qty + }) + }) + }, + + _updateCart: function(params) { + return fetch(params.url, { + method: 'POST', + body: params.data, + credentials: 'same-origin', + headers: { + 'Content-Type': 'application/json', + 'X-Requested-With': 'XMLHttpRequest' + } + }) + .then(response => response.json()) + .then(function(cart) { + return cart; + }); + }, + + updateAttribute: function(key, value) { + return this._updateCart({ + url: '/cart/update.js', + data: JSON.stringify({ + attributes: { + [key]: theme.cart.attributeToString(value) + } + }) + }); + }, + + updateNote: function(note) { + return this._updateCart({ + url: '/cart/update.js', + data: JSON.stringify({ + note: theme.cart.attributeToString(note) + }) + }); + }, + + attributeToString: function(attribute) { + if ((typeof attribute) !== 'string') { + attribute += ''; + if (attribute === 'undefined') { + attribute = ''; + } + } + return attribute.trim(); + } + } + + /*============================================================================ + CartForm + - Prevent checkout when terms checkbox exists + - Listen to quantity changes, rebuild cart (both widget and page) + ==============================================================================*/ + theme.CartForm = (function() { + var selectors = { + products: '[data-products]', + qtySelector: '.js-qty__wrapper', + discounts: '[data-discounts]', + savings: '[data-savings]', + subTotal: '[data-subtotal]', + + cartBubble: '.cart-link__bubble', + cartNote: '[name="note"]', + termsCheckbox: '.cart__terms-checkbox', + checkoutBtn: '.cart__checkout' + }; + + var classes = { + btnLoading: 'btn--loading' + }; + + var config = { + requiresTerms: false + }; + + function CartForm(form) { + if (!form) { + return; + } + + this.form = form; + this.wrapper = form.parentNode; + this.location = form.dataset.location; + this.namespace = '.cart-' + this.location; + this.products = form.querySelector(selectors.products) + this.submitBtn = form.querySelector(selectors.checkoutBtn); + + this.discounts = form.querySelector(selectors.discounts); + this.savings = form.querySelector(selectors.savings); + this.subtotal = form.querySelector(selectors.subTotal); + this.termsCheckbox = form.querySelector(selectors.termsCheckbox); + this.noteInput = form.querySelector(selectors.cartNote); + + if (this.termsCheckbox) { + config.requiresTerms = true; + } + + this.init(); + } + + CartForm.prototype = Object.assign({}, CartForm.prototype, { + init: function() { + this.initQtySelectors(); + + document.addEventListener('cart:quantity' + this.namespace, this.quantityChanged.bind(this)); + + this.form.on('submit' + this.namespace, this.onSubmit.bind(this)); + + if (this.noteInput) { + this.noteInput.addEventListener('change', function() { + var newNote = this.value; + theme.cart.updateNote(newNote); + }); + } + + // Dev-friendly way to build the cart + document.addEventListener('cart:build', function() { + this.buildCart(); + }.bind(this)); + }, + + reInit: function() { + this.initQtySelectors(); + }, + + onSubmit: function(evt) { + this.submitBtn.classList.add(classes.btnLoading); + + if (config.requiresTerms) { + if (this.termsCheckbox.checked) { + // continue to checkout + } else { + alert(theme.strings.cartTermsConfirmation); + this.submitBtn.classList.remove(classes.btnLoading) + evt.preventDefault(); + return false; + } + } + }, + + /*============================================================================ + Query cart page to get markup + ==============================================================================*/ + _parseProductHTML: function(html) { + var parser = new DOMParser(); + var doc = parser.parseFromString(html, 'text/html'); + return { + items: doc.querySelector('.cart__items'), + discounts: doc.querySelector('.cart__discounts') + } + }, + + buildCart: function() { + theme.cart.getCartProductMarkup().then(this.cartMarkup.bind(this)); + }, + + cartMarkup: function(html) { + var markup = this._parseProductHTML(html); + var items = markup.items; + var count = parseInt(items.dataset.count); + var subtotal = items.dataset.cartSubtotal; + var savings = items.dataset.cartSavings; + + this.updateCartDiscounts(markup.discounts); + this.updateSavings(savings); + + if (count > 0) { + this.wrapper.classList.remove('is-empty'); + } else { + this.wrapper.classList.add('is-empty'); + } + + this.updateCount(count); + + // Append item markup + this.products.innerHTML = ''; + this.products.append(items); + + // Update subtotal + this.subtotal.innerHTML = theme.Currency.formatMoney(subtotal, theme.settings.moneyFormat); + + this.reInit(); + + if (window.AOS) { AOS.refreshHard() } + + if (Shopify && Shopify.StorefrontExpressButtons) { + Shopify.StorefrontExpressButtons.initialize(); + } + }, + + updateCartDiscounts: function(markup) { + if (!this.discounts) { + return; + } + this.discounts.innerHTML = ''; + this.discounts.append(markup); + }, + + /*============================================================================ + Quantity handling + ==============================================================================*/ + initQtySelectors: function() { + this.form.querySelectorAll(selectors.qtySelector).forEach(el => { + var selector = new theme.QtySelector(el, { + namespace: this.namespace, + isCart: true + }); + }); + }, + + quantityChanged: function(evt) { + var key = evt.detail[0]; + var qty = evt.detail[1]; + var el = evt.detail[2]; + + if (!key || !qty) { + return; + } + + // Disable qty selector so multiple clicks can't happen while loading + if (el) { + el.classList.add('is-loading'); + } + + theme.cart.changeItem(key, qty) + .then(function(cart) { + if (cart.item_count > 0) { + this.wrapper.classList.remove('is-empty'); + } else { + this.wrapper.classList.add('is-empty'); + } + + this.buildCart(); + + document.dispatchEvent(new CustomEvent('cart:updated', { + detail: { + cart: cart + } + })); + }.bind(this)) + .catch(function(XMLHttpRequest){}); + }, + + /*============================================================================ + Update elements of the cart + ==============================================================================*/ + updateSubtotal: function(subtotal) { + this.form.querySelector(selectors.subTotal).innerHTML = theme.Currency.formatMoney(subtotal, theme.settings.moneyFormat); + }, + + updateSavings: function(savings) { + if (!this.savings) { + return; + } + + if (savings > 0) { + var amount = theme.Currency.formatMoney(savings, theme.settings.moneyFormat); + this.savings.classList.remove('hide'); + this.savings.innerHTML = theme.strings.cartSavings.replace('[savings]', amount); + } else { + this.savings.classList.add('hide'); + } + }, + + updateCount: function(count) { + var countEls = document.querySelectorAll('.cart-link__bubble-num'); + + if (countEls.length) { + countEls.forEach(el => { + el.innerText = count; + }); + } + + // show/hide bubble(s) + var bubbles = document.querySelectorAll(selectors.cartBubble); + if (bubbles.length) { + if (count > 0) { + bubbles.forEach(b => { + b.classList.add('cart-link__bubble--visible'); + }); + } else { + bubbles.forEach(b => { + b.classList.remove('cart-link__bubble--visible'); + }); + } + } + } + }); + + return CartForm; + })(); + + // Either collapsible containers all acting individually, + // or tabs that can only have one open at a time + theme.collapsibles = (function() { + var selectors = { + trigger: '.collapsible-trigger', + module: '.collapsible-content', + moduleInner: '.collapsible-content__inner', + tabs: '.collapsible-trigger--tab' + }; + + var classes = { + hide: 'hide', + open: 'is-open', + autoHeight: 'collapsible--auto-height', + tabs: 'collapsible-trigger--tab' + }; + + var namespace = '.collapsible'; + + var isTransitioning = false; + + function init(scope) { + var el = scope ? scope : document; + el.querySelectorAll(selectors.trigger).forEach(trigger => { + var state = trigger.classList.contains(classes.open); + trigger.setAttribute('aria-expanded', state); + + trigger.off('click' + namespace); + trigger.on('click' + namespace, toggle); + }); + } + + function toggle(evt) { + if (isTransitioning) { + return; + } + + isTransitioning = true; + + var el = evt.currentTarget; + var isOpen = el.classList.contains(classes.open); + var isTab = el.classList.contains(classes.tabs); + var moduleId = el.getAttribute('aria-controls'); + var container = document.getElementById(moduleId); + + if (!moduleId) { + moduleId = el.dataset.controls; + } + + // No ID, bail + if (!moduleId) { + return; + } + + // If container=null, there isn't a matching ID. + // Check if data-id is set instead. Could be multiple. + // Select based on being in the same parent div. + if (!container) { + var multipleMatches = document.querySelectorAll('[data-id="' + moduleId + '"]'); + if (multipleMatches.length > 0) { + container = el.parentNode.querySelector('[data-id="' + moduleId + '"]'); + } + } + + if (!container) { + isTransitioning = false; + return; + } + + var height = container.querySelector(selectors.moduleInner).offsetHeight; + var isAutoHeight = container.classList.contains(classes.autoHeight); + var parentCollapsibleEl = container.parentNode.closest(selectors.module); + var childHeight = height; + + if (isTab) { + if(isOpen) { + isTransitioning = false; + return; + } + + var newModule; + document.querySelectorAll(selectors.tabs + '[data-id="'+ el.dataset.id +'"]').forEach(el => { + el.classList.remove(classes.open); + newModule = document.querySelector('#' + el.getAttribute('aria-controls')); + setTransitionHeight(newModule, 0, true); + }); + } + + // If isAutoHeight, set the height to 0 just after setting the actual height + // so the closing animation works nicely + if (isOpen && isAutoHeight) { + setTimeout(function() { + height = 0; + setTransitionHeight(container, height, isOpen, isAutoHeight); + }, 0); + } + + if (isOpen && !isAutoHeight) { + height = 0; + } + + el.setAttribute('aria-expanded', !isOpen); + if (isOpen) { + el.classList.remove(classes.open); + } else { + el.classList.add(classes.open); + } + + setTransitionHeight(container, height, isOpen, isAutoHeight); + + // If we are in a nested collapsible element like the mobile nav, + // also set the parent element's height + if (parentCollapsibleEl) { + var totalHeight = isOpen + ? parentCollapsibleEl.offsetHeight - childHeight + : height + parentCollapsibleEl.offsetHeight; + + setTransitionHeight(parentCollapsibleEl, totalHeight, false, false); + } + + // If Shopify Product Reviews app installed, + // resize container on 'Write review' click + // that shows form + if (window.SPR) { + var btn = container.querySelector('.spr-summary-actions-newreview'); + if (!btn) { return } + btn.off('click' + namespace); + btn.on('click' + namespace, function() { + height = container.querySelector(selectors.moduleInner).offsetHeight; + setTransitionHeight(container, height, isOpen, isAutoHeight); + }); + } + } + + function setTransitionHeight(container, height, isOpen, isAutoHeight) { + container.classList.remove(classes.hide); + theme.utils.prepareTransition(container, function() { + container.style.height = height+'px'; + if (isOpen) { + container.classList.remove(classes.open); + } else { + container.classList.add(classes.open); + } + }); + + if (!isOpen && isAutoHeight) { + var o = container; + window.setTimeout(function() { + o.css('height','auto'); + isTransitioning = false; + }, 500); + } else { + isTransitioning = false; + } + } + + return { + init: init + }; + })(); + + // Shopify-built select-like popovers for currency and language selection + theme.Disclosure = (function() { + var selectors = { + disclosureForm: '[data-disclosure-form]', + disclosureList: '[data-disclosure-list]', + disclosureToggle: '[data-disclosure-toggle]', + disclosureInput: '[data-disclosure-input]', + disclosureOptions: '[data-disclosure-option]' + }; + + var classes = { + listVisible: 'disclosure-list--visible' + }; + + function Disclosure(disclosure) { + this.container = disclosure; + this._cacheSelectors(); + this._setupListeners(); + } + + Disclosure.prototype = Object.assign({}, Disclosure.prototype, { + _cacheSelectors: function() { + this.cache = { + disclosureForm: this.container.closest(selectors.disclosureForm), + disclosureList: this.container.querySelector(selectors.disclosureList), + disclosureToggle: this.container.querySelector( + selectors.disclosureToggle + ), + disclosureInput: this.container.querySelector( + selectors.disclosureInput + ), + disclosureOptions: this.container.querySelectorAll( + selectors.disclosureOptions + ) + }; + }, + + _setupListeners: function() { + this.eventHandlers = this._setupEventHandlers(); + + this.cache.disclosureToggle.addEventListener( + 'click', + this.eventHandlers.toggleList + ); + + this.cache.disclosureOptions.forEach(function(disclosureOption) { + disclosureOption.addEventListener( + 'click', + this.eventHandlers.connectOptions + ); + }, this); + + this.container.addEventListener( + 'keyup', + this.eventHandlers.onDisclosureKeyUp + ); + + this.cache.disclosureList.addEventListener( + 'focusout', + this.eventHandlers.onDisclosureListFocusOut + ); + + this.cache.disclosureToggle.addEventListener( + 'focusout', + this.eventHandlers.onDisclosureToggleFocusOut + ); + + document.body.addEventListener('click', this.eventHandlers.onBodyClick); + }, + + _setupEventHandlers: function() { + return { + connectOptions: this._connectOptions.bind(this), + toggleList: this._toggleList.bind(this), + onBodyClick: this._onBodyClick.bind(this), + onDisclosureKeyUp: this._onDisclosureKeyUp.bind(this), + onDisclosureListFocusOut: this._onDisclosureListFocusOut.bind(this), + onDisclosureToggleFocusOut: this._onDisclosureToggleFocusOut.bind(this) + }; + }, + + _connectOptions: function(event) { + event.preventDefault(); + + this._submitForm(event.currentTarget.dataset.value); + }, + + _onDisclosureToggleFocusOut: function(event) { + var disclosureLostFocus = + this.container.contains(event.relatedTarget) === false; + + if (disclosureLostFocus) { + this._hideList(); + } + }, + + _onDisclosureListFocusOut: function(event) { + var childInFocus = event.currentTarget.contains(event.relatedTarget); + + var isVisible = this.cache.disclosureList.classList.contains( + classes.listVisible + ); + + if (isVisible && !childInFocus) { + this._hideList(); + } + }, + + _onDisclosureKeyUp: function(event) { + if (event.which !== 27) return; + this._hideList(); + this.cache.disclosureToggle.focus(); + }, + + _onBodyClick: function(event) { + var isOption = this.container.contains(event.target); + var isVisible = this.cache.disclosureList.classList.contains( + classes.listVisible + ); + + if (isVisible && !isOption) { + this._hideList(); + } + }, + + _submitForm: function(value) { + this.cache.disclosureInput.value = value; + this.cache.disclosureForm.submit(); + }, + + _hideList: function() { + this.cache.disclosureList.classList.remove(classes.listVisible); + this.cache.disclosureToggle.setAttribute('aria-expanded', false); + }, + + _toggleList: function() { + var ariaExpanded = + this.cache.disclosureToggle.getAttribute('aria-expanded') === 'true'; + this.cache.disclosureList.classList.toggle(classes.listVisible); + this.cache.disclosureToggle.setAttribute('aria-expanded', !ariaExpanded); + }, + + destroy: function() { + this.cache.disclosureToggle.removeEventListener( + 'click', + this.eventHandlers.toggleList + ); + + this.cache.disclosureOptions.forEach(function(disclosureOption) { + disclosureOption.removeEventListener( + 'click', + this.eventHandlers.connectOptions + ); + }, this); + + this.container.removeEventListener( + 'keyup', + this.eventHandlers.onDisclosureKeyUp + ); + + this.cache.disclosureList.removeEventListener( + 'focusout', + this.eventHandlers.onDisclosureListFocusOut + ); + + this.cache.disclosureToggle.removeEventListener( + 'focusout', + this.eventHandlers.onDisclosureToggleFocusOut + ); + + document.body.removeEventListener( + 'click', + this.eventHandlers.onBodyClick + ); + } + }); + + return Disclosure; + })(); + + theme.Drawers = (function() { + function Drawers(id, name) { + this.config = { + id: id, + close: '.js-drawer-close', + open: '.js-drawer-open-' + name, + openClass: 'js-drawer-open', + closingClass: 'js-drawer-closing', + activeDrawer: 'drawer--is-open', + namespace: '.drawer-' + name + }; + + this.nodes = { + page: document.querySelector('#MainContent') + }; + + this.drawer = document.querySelector('#' + id); + this.isOpen = false; + + if (!this.drawer) { + return; + } + + this.init(); + } + + Drawers.prototype = Object.assign({}, Drawers.prototype, { + init: function() { + // Setup open button(s) + document.querySelectorAll(this.config.open).forEach(openBtn => { + openBtn.setAttribute('aria-expanded', 'false'); + openBtn.addEventListener('click', this.open.bind(this)); + }); + + this.drawer.querySelector(this.config.close).addEventListener('click', this.close.bind(this)); + + // Close modal if a drawer is opened + document.addEventListener('modalOpen', function() { + this.close(); + }.bind(this)); + }, + + open: function(evt, returnFocusEl) { + if (evt) { + evt.preventDefault(); + } + + if (this.isOpen) { + return; + } + + // Without this the drawer opens, the click event bubbles up to $nodes.page which closes the drawer. + if (evt && evt.stopPropagation) { + evt.stopPropagation(); + // save the source of the click, we'll focus to this on close + evt.currentTarget.setAttribute('aria-expanded', 'true'); + this.activeSource = evt.currentTarget; + } else if (returnFocusEl) { + returnFocusEl.setAttribute('aria-expanded', 'true'); + this.activeSource = returnFocusEl; + } + + theme.utils.prepareTransition(this.drawer, function() { + this.drawer.classList.add(this.config.activeDrawer); + }.bind(this)); + + document.documentElement.classList.add(this.config.openClass); + this.isOpen = true; + + theme.a11y.trapFocus({ + container: this.drawer, + namespace: 'drawer_focus' + }); + + document.dispatchEvent(new CustomEvent('drawerOpen')); + document.dispatchEvent(new CustomEvent('drawerOpen.' + this.config.id)); + + this.bindEvents(); + }, + + close: function(evt) { + if (!this.isOpen) { + return; + } + + // Do not close if click event came from inside drawer + if (evt) { + if (evt.target.closest('.js-drawer-close')) { + // Do not close if using the drawer close button + } else if (evt.target.closest('.drawer')) { + return; + } + } + + // deselect any focused form elements + document.activeElement.blur(); + + theme.utils.prepareTransition(this.drawer, function() { + this.drawer.classList.remove(this.config.activeDrawer); + }.bind(this)); + + document.documentElement.classList.remove(this.config.openClass); + document.documentElement.classList.add(this.config.closingClass); + + window.setTimeout(function() { + document.documentElement.classList.remove(this.config.closingClass); + if (this.activeSource && this.activeSource.getAttribute('aria-expanded')) { + this.activeSource.setAttribute('aria-expanded', 'false'); + this.activeSource.focus(); + } + }.bind(this), 500); + + this.isOpen = false; + + theme.a11y.removeTrapFocus({ + container: this.drawer, + namespace: 'drawer_focus' + }); + + this.unbindEvents(); + }, + + bindEvents: function() { + // Clicking out of drawer closes it + window.on('click' + this.config.namespace, function(evt) { + this.close(evt) + return; + }.bind(this)); + + // Pressing escape closes drawer + window.on('keyup' + this.config.namespace, function(evt) { + if (evt.keyCode === 27) { + this.close(); + } + }.bind(this)); + + theme.a11y.lockMobileScrolling(this.config.namespace, this.nodes.page); + }, + + unbindEvents: function() { + window.off('click' + this.config.namespace); + window.off('keyup' + this.config.namespace); + + theme.a11y.unlockMobileScrolling(this.config.namespace, this.nodes.page); + } + }); + + return Drawers; + })(); + + theme.Modals = (function() { + function Modal(id, name, options) { + var defaults = { + close: '.js-modal-close', + open: '.js-modal-open-' + name, + openClass: 'modal--is-active', + closingClass: 'modal--is-closing', + bodyOpenClass: ['modal-open'], + bodyOpenSolidClass: 'modal-open--solid', + bodyClosingClass: 'modal-closing', + closeOffContentClick: true + }; + + this.id = id; + this.modal = document.getElementById(id); + + if (!this.modal) { + return false; + } + + this.modalContent = this.modal.querySelector('.modal__inner'); + + this.config = Object.assign(defaults, options); + this.modalIsOpen = false; + this.focusOnOpen = this.config.focusIdOnOpen ? document.getElementById(this.config.focusIdOnOpen) : this.modal; + this.isSolid = this.config.solid; + + this.init(); + } + + Modal.prototype.init = function() { + document.querySelectorAll(this.config.open).forEach(btn => { + btn.setAttribute('aria-expanded', 'false'); + btn.addEventListener('click', this.open.bind(this)); + }); + + this.modal.querySelectorAll(this.config.close).forEach(btn => { + btn.addEventListener('click', this.close.bind(this)); + }); + + // Close modal if a drawer is opened + document.addEventListener('drawerOpen', function() { + this.close(); + }.bind(this)); + }; + + Modal.prototype.open = function(evt) { + // Keep track if modal was opened from a click, or called by another function + var externalCall = false; + + // don't open an opened modal + if (this.modalIsOpen) { + return; + } + + // Prevent following href if link is clicked + if (evt) { + evt.preventDefault(); + } else { + externalCall = true; + } + + // Without this, the modal opens, the click event bubbles up to $nodes.page + // which closes the modal. + if (evt && evt.stopPropagation) { + evt.stopPropagation(); + // save the source of the click, we'll focus to this on close + this.activeSource = evt.currentTarget.setAttribute('aria-expanded', 'true'); + } + + if (this.modalIsOpen && !externalCall) { + this.close(); + } + + this.modal.classList.add(this.config.openClass); + + document.documentElement.classList.add(...this.config.bodyOpenClass); + + if (this.isSolid) { + document.documentElement.classList.add(this.config.bodyOpenSolidClass); + } + + this.modalIsOpen = true; + + theme.a11y.trapFocus({ + container: this.modal, + elementToFocus: this.focusOnOpen, + namespace: 'modal_focus' + }); + + document.dispatchEvent(new CustomEvent('modalOpen')); + document.dispatchEvent(new CustomEvent('modalOpen.' + this.id)); + + this.bindEvents(); + }; + + Modal.prototype.close = function(evt) { + // don't close a closed modal + if (!this.modalIsOpen) { + return; + } + + // Do not close modal if click happens inside modal content + if (evt) { + if (evt.target.closest('.js-modal-close')) { + // Do not close if using the modal close button + } else if (evt.target.closest('.modal__inner')) { + return; + } + } + + // deselect any focused form elements + document.activeElement.blur(); + + this.modal.classList.remove(this.config.openClass); + this.modal.classList.add(this.config.closingClass); + + document.documentElement.classList.remove(...this.config.bodyOpenClass); + document.documentElement.classList.add(this.config.bodyClosingClass); + + window.setTimeout(function() { + document.documentElement.classList.remove(this.config.bodyClosingClass); + this.modal.classList.remove(this.config.closingClass); + if (this.activeSource && this.activeSource.getAttribute('aria-expanded')) { + this.activeSource.setAttribute('aria-expanded', 'false').focus(); + } + }.bind(this), 500); // modal close css transition + + if (this.isSolid) { + document.documentElement.classList.remove(this.config.bodyOpenSolidClass); + } + + this.modalIsOpen = false; + + theme.a11y.removeTrapFocus({ + container: this.modal, + namespace: 'modal_focus' + }); + + document.dispatchEvent(new CustomEvent('modalClose.' + this.id)); + + this.unbindEvents(); + }; + + Modal.prototype.bindEvents = function() { + window.on('keyup.modal', function(evt) { + if (evt.keyCode === 27) { + this.close(); + } + }.bind(this)); + + if (this.config.closeOffContentClick) { + // Clicking outside of the modal content also closes it + this.modal.on('click.modal', this.close.bind(this)); + } + }; + + Modal.prototype.unbindEvents = function() { + document.documentElement.off('.modal'); + + if (this.config.closeOffContentClick) { + this.modal.off('.modal'); + } + }; + + return Modal; + })(); + + if (typeof window.noUiSlider === 'undefined') { + throw new Error('theme.PriceRange is missing vendor noUiSlider: // =require vendor/nouislider.js'); + } + + theme.PriceRange = (function () { + var defaultStep = 10; + var selectors = { + priceRange: '.price-range', + priceRangeSlider: '.price-range__slider', + priceRangeInputMin: '.price-range__input-min', + priceRangeInputMax: '.price-range__input-max', + priceRangeDisplayMin: '.price-range__display-min', + priceRangeDisplayMax: '.price-range__display-max', + }; + + function PriceRange(container, {onChange, onUpdate, ...sliderOptions} = {}) { + this.container = container; + this.onChange = onChange; + this.onUpdate = onUpdate; + this.sliderOptions = sliderOptions || {}; + + return this.init(); + } + + PriceRange.prototype = Object.assign({}, PriceRange.prototype, { + init: function () { + if (!this.container.classList.contains('price-range')) { + throw new Error('You must instantiate PriceRange with a valid container') + } + + this.formEl = this.container.closest('form'); + this.sliderEl = this.container.querySelector(selectors.priceRangeSlider); + this.inputMinEl = this.container.querySelector(selectors.priceRangeInputMin); + this.inputMaxEl = this.container.querySelector(selectors.priceRangeInputMax); + this.displayMinEl = this.container.querySelector(selectors.priceRangeDisplayMin); + this.displayMaxEl = this.container.querySelector(selectors.priceRangeDisplayMax); + + this.minRange = parseFloat(this.container.dataset.min) || 0; + this.minValue = parseFloat(this.container.dataset.minValue) || 0; + this.maxRange = parseFloat(this.container.dataset.max) || 100; + this.maxValue = parseFloat(this.container.dataset.maxValue) || this.maxRange; + + return this.createPriceRange(); + }, + + createPriceRange: function () { + if (this.sliderEl && this.sliderEl.noUiSlider && typeof this.sliderEl.noUiSlider.destroy === 'function') { + this.sliderEl.noUiSlider.destroy(); + } + + var slider = noUiSlider.create(this.sliderEl, { + connect: true, + step: defaultStep, + ...this.sliderOptions, + // Do not allow overriding these options + start: [this.minValue, this.maxValue], + range: { + min: this.minRange, + max: this.maxRange, + }, + }); + + slider.on('update', values => { + this.displayMinEl.innerHTML = theme.Currency.formatMoney( + values[0], + theme.settings.moneyFormat, + ); + this.displayMaxEl.innerHTML = theme.Currency.formatMoney( + values[1], + theme.settings.moneyFormat, + ); + + if (this.onUpdate) { + this.onUpdate(values); + } + }); + + slider.on('change', values => { + this.inputMinEl.value = values[0]; + this.inputMaxEl.value = values[1]; + + if (this.onChange) { + const formData = new FormData(this.formEl); + this.onChange(formData); + } + }); + + return slider; + }, + }); + + return PriceRange; + })(); + + theme.AjaxProduct = (function() { + var status = { + loading: false + }; + + function ProductForm(form, submit, args) { + this.form = form; + this.args = args; + + var submitSelector = submit ? submit : '.add-to-cart'; + + if (this.form) { + this.addToCart = form.querySelector(submitSelector); + this.form.addEventListener('submit', this.addItemFromForm.bind(this)); + } + }; + + ProductForm.prototype = Object.assign({}, ProductForm.prototype, { + addItemFromForm: function(evt, callback){ + evt.preventDefault(); + + if (status.loading) { + return; + } + + // Loading indicator on add to cart button + this.addToCart.classList.add('btn--loading'); + + status.loading = true; + + var data = theme.utils.serialize(this.form); + + fetch(theme.routes.cartAdd, { + method: 'POST', + body: data, + credentials: 'same-origin', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'X-Requested-With': 'XMLHttpRequest' + } + }) + .then(response => response.json()) + .then(function(data) { + if (data.status === 422) { + this.error(data); + } else { + var product = data; + this.success(product); + } + + status.loading = false; + this.addToCart.classList.remove('btn--loading'); + + // Reload page if adding product from a section on the cart page + if (document.body.classList.contains('template-cart')) { + window.scrollTo(0, 0); + location.reload(); + } + }.bind(this)); + }, + + success: function(product) { + var errors = this.form.querySelector('.errors'); + if (errors) { + errors.remove(); + } + + document.dispatchEvent(new CustomEvent('ajaxProduct:added', { + detail: { + product: product, + addToCartBtn: this.addToCart + } + })); + + if (this.args && this.args.scopedEventId) { + document.dispatchEvent(new CustomEvent('ajaxProduct:added:' + this.args.scopedEventId, { + detail: { + product: product, + addToCartBtn: this.addToCart + } + })); + } + }, + + error: function(error) { + if (!error.description) { + console.warn(error); + return; + } + + var errors = this.form.querySelector('.errors'); + if (errors) { + errors.remove(); + } + + var errorDiv = document.createElement('div'); + errorDiv.classList.add('errors', 'text-center'); + errorDiv.textContent = error.description; + this.form.append(errorDiv); + + document.dispatchEvent(new CustomEvent('ajaxProduct:error', { + detail: { + errorMessage: error.description + } + })); + + if (this.args && this.args.scopedEventId) { + document.dispatchEvent(new CustomEvent('ajaxProduct:error:' + this.args.scopedEventId, { + detail: { + errorMessage: error.description + } + })); + } + } + }); + + return ProductForm; + })(); + + theme.ProductMedia = (function() { + var modelJsonSections = {}; + var models = {}; + var xrButtons = {}; + + var selectors = { + mediaGroup: '[data-product-single-media-group]', + xrButton: '[data-shopify-xr]' + }; + + function init(modelViewerContainers, sectionId) { + modelJsonSections[sectionId] = { + loaded: false + }; + + modelViewerContainers.forEach(function(container, index) { + var mediaId = container.dataset.mediaId; + var modelViewerElement = container.querySelector('model-viewer'); + var modelId = modelViewerElement.dataset.modelId; + + if (index === 0) { + var mediaGroup = container.closest(selectors.mediaGroup); + var xrButton = mediaGroup.querySelector(selectors.xrButton); + xrButtons[sectionId] = { + element: xrButton, + defaultId: modelId + }; + } + + models[mediaId] = { + modelId: modelId, + sectionId: sectionId, + container: container, + element: modelViewerElement + }; + + }); + + window.Shopify.loadFeatures([ + { + name: 'shopify-xr', + version: '1.0', + onLoad: setupShopifyXr + }, + { + name: 'model-viewer-ui', + version: '1.0', + onLoad: setupModelViewerUi + } + ]); + + theme.LibraryLoader.load('modelViewerUiStyles'); + } + + function setupShopifyXr(errors) { + if (errors) return; + + if (!window.ShopifyXR) { + document.addEventListener('shopify_xr_initialized', function() { + setupShopifyXr(); + }); + return; + } + + for (var sectionId in modelJsonSections) { + if (modelJsonSections.hasOwnProperty(sectionId)) { + var modelSection = modelJsonSections[sectionId]; + + if (modelSection.loaded) continue; + + var modelJson = document.querySelector('#ModelJson-' + sectionId); + + window.ShopifyXR.addModels(JSON.parse(modelJson.innerHTML)); + modelSection.loaded = true; + } + } + window.ShopifyXR.setupXRElements(); + } + + function setupModelViewerUi(errors) { + if (errors) return; + + for (var key in models) { + if (models.hasOwnProperty(key)) { + var model = models[key]; + if (!model.modelViewerUi && Shopify) { + model.modelViewerUi = new Shopify.ModelViewerUI(model.element); + } + setupModelViewerListeners(model); + } + } + } + + function setupModelViewerListeners(model) { + var xrButton = xrButtons[model.sectionId]; + + model.container.addEventListener('mediaVisible', function() { + xrButton.element.setAttribute('data-shopify-model3d-id', model.modelId); + if (theme.config.isTouch) return; + model.modelViewerUi.play(); + }); + + model.container.addEventListener('mediaHidden', function() { + xrButton.element.setAttribute('data-shopify-model3d-id', xrButton.defaultId); + model.modelViewerUi.pause(); + }); + + model.container.addEventListener('xrLaunch', function() { + model.modelViewerUi.pause(); + }); + } + + function removeSectionModels(sectionId) { + for (var key in models) { + if (models.hasOwnProperty(key)) { + var model = models[key]; + if (model.sectionId === sectionId) { + delete models[key]; + } + } + } + delete modelJsonSections[sectionId]; + } + + return { + init: init, + removeSectionModels: removeSectionModels + }; + })(); + + theme.QtySelector = (function() { + var selectors = { + input: '.js-qty__num', + plus: '.js-qty__adjust--plus', + minus: '.js-qty__adjust--minus' + }; + + function QtySelector(el, options) { + this.wrapper = el; + this.plus = el.querySelector(selectors.plus); + this.minus = el.querySelector(selectors.minus); + this.input = el.querySelector(selectors.input); + this.minValue = this.input.getAttribute('min') || 1; + + var defaults = { + namespace: null, + isCart: false, + key: this.input.dataset.id + }; + + this.options = Object.assign({}, defaults, options); + + this.init(); + } + + QtySelector.prototype = Object.assign({}, QtySelector.prototype, { + init: function() { + this.plus.addEventListener('click', function() { + var qty = this._getQty(); + this._change(qty + 1); + }.bind(this)); + + this.minus.addEventListener('click', function() { + var qty = this._getQty(); + this._change(qty - 1); + }.bind(this)); + + this.input.addEventListener('change', function(evt) { + this._change(this._getQty()); + }.bind(this)); + }, + + _getQty: function() { + var qty = this.input.value; + if((parseFloat(qty) == parseInt(qty)) && !isNaN(qty)) { + // We have a valid number! + } else { + // Not a number. Default to 1. + qty = 1; + } + return parseInt(qty); + }, + + _change: function(qty) { + if (qty <= this.minValue) { + qty = this.minValue; + } + + this.input.value = qty; + + if (this.options.isCart) { + document.dispatchEvent(new CustomEvent('cart:quantity' + this.options.namespace, { + detail: [this.options.key, qty, this.wrapper] + })); + } + } + }); + + return QtySelector; + })(); + + // theme.Slideshow handles all flickity based sliders + // Child navigation is only setup to work on product images + theme.Slideshow = (function() { + var classes = { + animateOut: 'animate-out', + isPaused: 'is-paused', + isActive: 'is-active' + }; + + var selectors = { + allSlides: '.slideshow__slide', + currentSlide: '.is-selected', + wrapper: '.slideshow-wrapper', + pauseButton: '.slideshow__pause' + }; + + var productSelectors = { + thumb: '.product__thumb-item:not(.hide)', + links: '.product__thumb-item:not(.hide) a', + arrow: '.product__thumb-arrow' + }; + + var defaults = { + adaptiveHeight: false, + autoPlay: false, + avoidReflow: false, // custom by Archetype + childNav: null, // element. Custom by Archetype instead of asNavFor + childNavScroller: null, // element + childVertical: false, + dragThreshold: 7, + fade: false, + friction: 0.8, + initialIndex: 0, + pageDots: false, + pauseAutoPlayOnHover: false, + prevNextButtons: false, + rightToLeft: theme.config.rtl, + selectedAttraction: 0.14, + setGallerySize: true, + wrapAround: true + }; + + function slideshow(el, args) { + this.el = el; + this.args = Object.assign({}, defaults, args); + + // Setup listeners as part of arguments + this.args.on = { + ready: this.init.bind(this), + change: this.slideChange.bind(this), + settle: this.afterChange.bind(this) + }; + + if (this.args.childNav) { + this.childNavEls = this.args.childNav.querySelectorAll(productSelectors.thumb); + this.childNavLinks = this.args.childNav.querySelectorAll(productSelectors.links); + this.arrows = this.args.childNav.querySelectorAll(productSelectors.arrow); + if (this.childNavLinks.length) { + this.initChildNav(); + } + } + + if (this.args.avoidReflow) { + avoidReflow(el); + } + + this.slideshow = new Flickity(el, this.args); + + if (this.args.autoPlay) { + var wrapper = el.closest(selectors.wrapper); + this.pauseBtn = wrapper.querySelector(selectors.pauseButton); + if (this.pauseBtn) { + this.pauseBtn.addEventListener('click', this._togglePause.bind(this)); + } + } + + // Reset dimensions on resize + window.on('resize', theme.utils.debounce(300, function() { + this.resize(); + }.bind(this))); + + // Set flickity-viewport height to first element to + // avoid awkward page reflows while initializing. + // Must be added in a `style` tag because element does not exist yet. + // Slideshow element must have an ID + function avoidReflow(el) { + if (!el.id) return; + var firstChild = el.firstChild; + while(firstChild != null && firstChild.nodeType == 3){ // skip TextNodes + firstChild = firstChild.nextSibling; + } + var style = document.createElement('style'); + style.innerHTML = `#${el.id} .flickity-viewport{height:${firstChild.offsetHeight}px}`; + document.head.appendChild(style); + } + } + + slideshow.prototype = Object.assign({}, slideshow.prototype, { + init: function(el) { + this.currentSlide = this.el.querySelector(selectors.currentSlide); + + // Optional onInit callback + if (this.args.callbacks && this.args.callbacks.onInit) { + if (typeof this.args.callbacks.onInit === 'function') { + this.args.callbacks.onInit(this.currentSlide); + } + } + + if (window.AOS) { AOS.refresh() } + }, + + slideChange: function(index) { + // Outgoing fade styles + if (this.args.fade && this.currentSlide) { + this.currentSlide.classList.add(classes.animateOut); + this.currentSlide.addEventListener('transitionend', function() { + this.currentSlide.classList.remove(classes.animateOut); + }.bind(this)); + } + + // Match index with child nav + if (this.args.childNav) { + this.childNavGoTo(index); + } + + // Optional onChange callback + if (this.args.callbacks && this.args.callbacks.onChange) { + if (typeof this.args.callbacks.onChange === 'function') { + this.args.callbacks.onChange(index); + } + } + + // Show/hide arrows depending on selected index + if (this.arrows && this.arrows.length) { + this.arrows[0].classList.toggle('hide', index === 0); + this.arrows[1].classList.toggle('hide', index === (this.childNavLinks.length - 1)); + } + }, + afterChange: function(index) { + // Remove all fade animation classes after slide is done + if (this.args.fade) { + this.el.querySelectorAll(selectors.allSlides).forEach(slide => { + slide.classList.remove(classes.animateOut); + }); + } + + this.currentSlide = this.el.querySelector(selectors.currentSlide); + + // Match index with child nav (in case slider height changed first) + if (this.args.childNav) { + this.childNavGoTo(this.slideshow.selectedIndex); + } + }, + destroy: function() { + if (this.args.childNav && this.childNavLinks.length) { + this.childNavLinks.forEach(a => { + a.classList.remove(classes.isActive); + }); + } + this.slideshow.destroy(); + }, + reposition: function() { + this.slideshow.reposition(); + }, + _togglePause: function() { + if (this.pauseBtn.classList.contains(classes.isPaused)) { + this.pauseBtn.classList.remove(classes.isPaused); + this.slideshow.playPlayer(); + } else { + this.pauseBtn.classList.add(classes.isPaused); + this.slideshow.pausePlayer(); + } + }, + resize: function() { + this.slideshow.resize(); + }, + play: function() { + this.slideshow.playPlayer(); + }, + pause: function() { + this.slideshow.pausePlayer(); + }, + goToSlide: function(i) { + this.slideshow.select(i); + }, + setDraggable: function(enable) { + this.slideshow.options.draggable = enable; + this.slideshow.updateDraggable(); + }, + + initChildNav: function() { + this.childNavLinks[this.args.initialIndex].classList.add('is-active'); + + // Setup events + this.childNavLinks.forEach((link, i) => { + // update data-index because image-set feature may be enabled + link.setAttribute('data-index', i); + + link.addEventListener('click', function(evt) { + evt.preventDefault(); + this.goToSlide(this.getChildIndex(evt.currentTarget)) + }.bind(this)); + link.addEventListener('focus', function(evt) { + this.goToSlide(this.getChildIndex(evt.currentTarget)) + }.bind(this)); + link.addEventListener('keydown', function(evt) { + if (evt.keyCode === 13) { + this.goToSlide(this.getChildIndex(evt.currentTarget)) + } + }.bind(this)); + }); + + // Setup optional arrows + if (this.arrows.length) { + this.arrows.forEach(arrow => { + arrow.addEventListener('click', this.arrowClick.bind(this)); + });; + } + }, + + getChildIndex: function(target) { + return parseInt(target.dataset.index); + }, + + childNavGoTo: function(index) { + this.childNavLinks.forEach(a => { + a.blur(); + a.classList.remove(classes.isActive); + }); + + var el = this.childNavLinks[index]; + el.classList.add(classes.isActive); + + if (!this.args.childNavScroller) { + return; + } + + if (this.args.childVertical) { + var elTop = el.offsetTop; + this.args.childNavScroller.scrollTop = elTop - 100; + } else { + var elLeft = el.offsetLeft; + this.args.childNavScroller.scrollLeft = elLeft - 100; + } + }, + + arrowClick: function(evt) { + if (evt.currentTarget.classList.contains('product__thumb-arrow--prev')) { + this.slideshow.previous(); + } else { + this.slideshow.next(); + } + } + }); + + return slideshow; + })(); + + /*============================================================================ + VariantAvailability + - Cross out sold out or unavailable variants + - To disable, set dynamicVariantsEnable to false in theme.liquid + - Required markup: + - class=variant-input-wrap to wrap select or button group + - class=variant-input to wrap button/label + ==============================================================================*/ + + theme.VariantAvailability = (function() { + var classes = { + disabled: 'disabled' + }; + + function availability(args) { + this.type = args.type; + this.variantsObject = args.variantsObject; + this.currentVariantObject = args.currentVariantObject; + this.container = args.container; + this.namespace = args.namespace; + + this.init(); + } + + availability.prototype = Object.assign({}, availability.prototype, { + init: function() { + this.container.on('variantChange' + this.namespace, this.setAvailability.bind(this)); + + // Set default state based on current selected variant + this.setInitialAvailability(); + }, + + // Create a list of all options. If any variant exists and is in stock with that option, it's considered available + createAvailableOptionsTree(variants, lastSelectedIndex, lastSelectedValue, currentlySelectedValues = []) { + // Reduce variant array into option availability tree + return variants.reduce((options, variant) => { + + const numberOfOptionTypes = variant.options.length; + + // Check each option group (e.g. option1, option2, option3) of the variant + Object.keys(options).forEach(index => { + + if (variant[index] === null) return; + + let entry = options[index].find(option => option.value === variant[index]); + + if (typeof entry === 'undefined') { + // If option has yet to be added to the options tree, add it + entry = {value: variant[index], soldOut: true} + options[index].push(entry); + } + + if (currentlySelectedValues.length > 0) { + // If the user has selected a value + if (numberOfOptionTypes === 1) { + // If we're dealing with a single variant selector, enable options that are available + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } else if (numberOfOptionTypes === 2) { + // If we're dealing with a double variant selector + if (currentlySelectedValues.some(({value, index}) => variant[index] === value)) { + // Only enable options that have at least one match (.some()) with an available variant + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } + } else if (numberOfOptionTypes === 3) { + // If we're dealing with a triple variant selector + if (currentlySelectedValues.length === 1) { + // If only one value has been selected + if (index !== lastSelectedIndex) { + // If we're checking an option that is not part of the group that was just selected + if (currentlySelectedValues.every(({value, index}) => variant[index] === value)) { + // Only enable options from variants that match the currently selected value + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } + } else { + // Other options in the same group of the one that was selected should remain unchanged + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } + + } else if (currentlySelectedValues.length === 2) { + // If only two values have been selected + if (currentlySelectedValues.every(({value, index}) => variant[index] === value)) { + // Only enable options from variants that match the 2 currently selected values + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } + } else if (currentlySelectedValues.length === 3) { + // If all three values have been selected + // Check how many selected option values match a variant + const variantOptionsThatMatchCurrent = currentlySelectedValues.reduce((count, {value, index}) => { + return variant[index] === value ? count + 1 : count; + },0) + + // Only enable an option if an available variant matches any 2 currently selected values + if (variantOptionsThatMatchCurrent >= 2) { + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } + } + } + } else { + // If the user has not selected a value yet, show all options that are available. + // An option will only initially appear disabled if it is out of stock/unavailable across all variants + entry.soldOut = entry.soldOut && variant.available ? false : entry.soldOut; + } + }) + + return options; + }, { option1: [], option2: [], option3: []}) + }, + + setInitialAvailability: function() { + this.container.querySelectorAll('.variant-input-wrap').forEach(group => { + this.disableVariantGroup(group); + }); + + const initialOptions = this.createAvailableOptionsTree(this.variantsObject); + + for (var [option, values] of Object.entries(initialOptions)) { + this.manageOptionState(option, values); + } + }, + + setAvailability: function(evt) { + + const {value: lastSelectedValue, index: lastSelectedIndex, currentlySelectedValues} = evt.detail; + + // Object to hold all options by value. + // This will be what sets a button/dropdown as + // sold out or unavailable (not a combo set as purchasable) + const valuesToManage = this.createAvailableOptionsTree(this.variantsObject, lastSelectedIndex, lastSelectedValue, currentlySelectedValues) + + // Disable all options to start. + // If coming from a variant change event, do not disable + // options inside current index group + this.container.querySelectorAll('.variant-input-wrap').forEach(group => { + this.disableVariantGroup(group); + }); + + // Loop through all option levels and send each + // value w/ args to function that determines to show/hide/enable/disable + for (var [option, values] of Object.entries(valuesToManage)) { + this.manageOptionState(option, values, lastSelectedValue); + } + }, + + manageOptionState: function(option, values, selectedValue) { + var group = this.container.querySelector('.variant-input-wrap[data-index="'+ option +'"]'); + + // Loop through each option value + values.forEach(obj => { + this.enableVariantOption(group, obj, selectedValue); + }); + }, + + enableVariantOption: function(group, obj, selectedValue) { + // Selecting by value so escape it + var value = obj.value.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1'); + + if (this.type === 'dropdown') { + group.querySelector('option[value="'+ value +'"]').disabled = false; + } else { + var buttonGroup = group.querySelector('.variant-input[data-value="'+ value +'"]'); + var input = buttonGroup.querySelector('input'); + var label = buttonGroup.querySelector('label'); + + // Variant exists - enable & show variant + input.classList.remove(classes.disabled); + label.classList.remove(classes.disabled); + + // Variant sold out - cross out option (remains selectable) + if (obj.soldOut) { + input.classList.add(classes.disabled); + label.classList.add(classes.disabled); + + if (value !== selectedValue) { + input.checked = false + } + } + } + }, + + disableVariantGroup: function(group) { + if (this.type === 'dropdown') { + group.querySelectorAll('option').forEach(option => { + option.disabled = true; + }); + } else { + group.querySelectorAll('input').forEach(input => { + input.classList.add(classes.disabled); + }); + group.querySelectorAll('label').forEach(label => { + label.classList.add(classes.disabled); + }); + } + } + + }); + + return availability; + })(); + + // Video modal will auto-initialize for any anchor link that points to YouTube + // MP4 videos must manually be enabled with: + // - .product-video-trigger--mp4 (trigger button) + // - .product-video-mp4-sound video player element (cloned into modal) + // - see media.liquid for example of this + theme.videoModal = function() { + var youtubePlayer; + + var videoHolderId = 'VideoHolder'; + var selectors = { + youtube: 'a[href*="youtube.com/watch"], a[href*="youtu.be/"]', + mp4Trigger: '.product-video-trigger--mp4', + mp4Player: '.product-video-mp4-sound' + }; + + var youtubeTriggers = document.querySelectorAll(selectors.youtube); + var mp4Triggers = document.querySelectorAll(selectors.mp4Trigger); + + if (!youtubeTriggers.length && !mp4Triggers.length) { + return; + } + + var videoHolderDiv = document.getElementById(videoHolderId); + + if (youtubeTriggers.length) { + theme.LibraryLoader.load('youtubeSdk'); + } + + var modal = new theme.Modals('VideoModal', 'video-modal', { + closeOffContentClick: true, + bodyOpenClass: ['modal-open', 'video-modal-open'], + solid: true + }); + + youtubeTriggers.forEach(btn => { + btn.addEventListener('click', triggerYouTubeModal); + }); + + mp4Triggers.forEach(btn => { + btn.addEventListener('click', triggerMp4Modal); + }); + + document.addEventListener('modalClose.VideoModal', closeVideoModal); + + function triggerYouTubeModal(evt) { + // If not already loaded, treat as normal link + if (!theme.config.youTubeReady) { + return; + } + + evt.preventDefault(); + emptyVideoHolder(); + + modal.open(evt); + + var videoId = getYoutubeVideoId(evt.currentTarget.getAttribute('href')); + youtubePlayer = new theme.YouTube( + videoHolderId, + { + videoId: videoId, + style: 'sound', + events: { + onReady: onYoutubeReady + } + } + ); + } + + function triggerMp4Modal(evt) { + emptyVideoHolder(); + + var el = evt.currentTarget; + var player = el.parentNode.querySelector(selectors.mp4Player); + + // Clone video element and place it in the modal + var playerClone = player.cloneNode(true); + playerClone.classList.remove('hide'); + + videoHolderDiv.append(playerClone); + modal.open(evt); + + // Play new video element + videoHolderDiv.querySelector('video').play(); + } + + function onYoutubeReady(evt) { + evt.target.unMute(); + evt.target.playVideo(); + } + + function getYoutubeVideoId(url) { + var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/; + var match = url.match(regExp); + return (match&&match[7].length==11)? match[7] : false; + } + + function emptyVideoHolder() { + videoHolderDiv.innerHTML = ''; + } + + function closeVideoModal() { + if (youtubePlayer && typeof youtubePlayer.destroy === 'function') { + youtubePlayer.destroy(); + } else { + emptyVideoHolder(); + } + } + }; + + + /*============================================================================ + ToolTip + ==============================================================================*/ + + class ToolTip extends HTMLElement { + constructor() { + super(); + this.el = this; + this.inner = this.querySelector('[data-tool-tip-inner]'); + this.closeButton = this.querySelector('[data-tool-tip-close]'); + this.toolTipContent = this.querySelector('[data-tool-tip-content]'); + + this.triggers = document.querySelectorAll('[data-tool-tip-trigger]'); + + document.addEventListener('tooltip:open', e => { + this._open(e.detail.context, e.detail.content); + }); + } + + _open(context, insertedHtml) { + this.toolTipContent.innerHTML = insertedHtml; + + theme.a11y.trapFocus({ + container: this.el, + namespace: 'tooltip_focus' + }); + + if (this.closeButton) { + this.closeButton.on('click' + '.tooltip-close', () => { + this._close(); + }); + } + + document.documentElement.on('click' + '.tooltip-outerclick', event => { + if (this.el.dataset.toolTipOpen === 'true' && !this.inner.contains(event.target)) this._close(); + }); + + document.documentElement.on('keydown' + '.tooltip-esc', event => { + if (event.code === 'Escape') this._close(); + }); + + this.el.dataset.toolTipOpen = true; + this.el.dataset.toolTip = context; + } + + _close() { + this.toolTipContent.innerHTML = ''; + this.el.dataset.toolTipOpen = 'false'; + this.el.dataset.toolTip = ''; + + theme.a11y.removeTrapFocus({ + container: this.el, + namespace: 'tooltip_focus' + }); + + this.closeButton.off('click' + '.tooltip-close'); + document.documentElement.off('click' + '.tooltip-outerclick'); + document.documentElement.off('keydown' + '.tooltip-esc'); + } + } + + customElements.define('tool-tip', ToolTip); + + /*============================================================================ + ToolTipTrigger + ==============================================================================*/ + + class ToolTipTrigger extends HTMLElement { + constructor() { + super(); + this.el = this; + this.toolTipContent = this.querySelector('[data-tool-tip-content]'); + + this.init(); + } + + init() { + //Create and dispatch customEvent + const toolTipOpen = new CustomEvent('tooltip:open', { + detail: { + context: this.dataset.toolTip, + content: this.toolTipContent.innerHTML + }, + bubbles: true + }); + + this.el.addEventListener('click', e => { + e.stopPropagation(); + this.dispatchEvent(toolTipOpen); + }); + } + } + + customElements.define('tool-tip-trigger', ToolTipTrigger); + + + theme.ProductScreen = (function() { + var originalTitle = document.title; + var namespace = 'productscreen'; + var windowPosition = 0; + var page = document.getElementById('MainContent'); + + var config = { + close: '.js-screen-close', + openClass: 'screen-layer--is-active', + closeSlideAnimate: ['screen-layer--is-sliding'], + bodyOpenClass: 'screen-layer-open', + bodyClosingClass: ['screen-layer-closing'], + bodyCloseAnimate: ['screen-layer-closing', 'screen-layer-animating'], + loaderStart: 200, + pullToCloseThreshold: -100 + } + + function ProductScreen(id, name) { + this.id = id; + this.screen = document.getElementById(id); + + if (!this.screen) { + return; + } + + this.nodes = { + loader: document.getElementById('OverscrollLoader').querySelector('.icon-loader__path'), + screenContent: this.screen.querySelector('.screen-layer__inner'), + photoswipe: document.querySelector('.pswp') + }; + + this.title = this.screen.dataset.productTitle; + this.openBtnClass = '.js-screen-open-' + name; + + this.initialized = false; // opened at least once + this.isOpen = false; + this.focusOnOpen = config.focusOnOpen ? this.screen.querySelector(config.focusOnOpen) : this.screen; + + this.init(); + } + + ProductScreen.prototype = Object.assign({}, ProductScreen.prototype, { + init: function() { + var openBtns = document.querySelectorAll(this.openBtnClass); + + openBtns.forEach(btn => { + btn.setAttribute('aria-expanded', 'false'); + btn.addEventListener('click', this.open.bind(this)); + }); + + var closeBtns = this.screen.querySelectorAll(config.close); + closeBtns.forEach(btn => { + btn.on('click.' + namespace, function(evt) { + this.close(false, { noAnimate: true, back: true }); + }.bind(this)); + }); + + // Close screen if product added to sticky cart + if (theme.settings.cartType === 'sticky') { + document.addEventListener('ajaxProduct:added:' + this.id, function() { + theme.headerNav.toggleThumbMenu(false, true); + var args = { back: true }; + this.close(false, args); + }.bind(this)); + + document.addEventListener('ajaxProduct:error:' + this.id, function() { + if (this.initialized) { + this.open(); + } + }.bind(this)); + } + }, + + open: function(evt, data) { + // Update reference to screen in case filters reloaded it + this.screen = document.getElementById(this.id); + + // Keep track if modal was opened from a click, or called by another function + var externalCall = false; + var args = { + updateCurrentPath: data ? data.updateCurrentPath : true + }; + + if (this.isOpen) { + return; + } + + // Prevent following href if link is clicked + if (evt) { + evt.preventDefault(); + } else { + externalCall = true; + } + + // Without this, the modal opens, the click event bubbles up to nodes.page + // which closes the modal. + if (evt && evt.stopPropagation) { + evt.stopPropagation(); + // save the source of the click, we'll focus to this on close + this.activeSource = evt.currentTarget; + } + + if (this.isOpen && !externalCall) { + this.close(); + } + + windowPosition = window.scrollY; + + theme.utils.prepareTransition(this.screen, function() { + this.screen.classList.add(config.openClass); + }.bind(this)); + + document.documentElement.classList.add(config.bodyOpenClass); + document.body.classList.add(config.bodyOpenClass); + this.nodes.screenContent.scrollTo(0,0); + window.scrollTo(0,0); + + theme.a11y.trapFocus({ + container: this.screen, + elementToFocus: this.focusOnOpen, + namespace: namespace + }); + + if (this.activeSource && this.activeSource.hasAttribute('aria-expanded')) { + this.activeSource.setAttribute('aria-expanded', 'true'); + } + + var newUrl = this.activeSource.dataset.url; + + document.dispatchEvent(new CustomEvent('productModalOpen.' + this.id)); + document.dispatchEvent(new CustomEvent('newPopstate', { + detail: { + screen: this, + url: newUrl, + updateCurrentPath: args.updateCurrentPath + } + })); + + this.initialized = true; + this.isOpen = true; + document.title = this.title; + + // Trigger Google Analytics page view if enabled + if (window.ga) { ga('send', 'pageview', { page: newUrl }) } + + this.bindEvents(); + }, + + close: function(evt, args) { + var evtData = args ? args : (evt ? evt.data : null); + var goBack = evtData ? evtData.back : false; + var noAnimate = (evtData && evtData.noAnimate) ? true : false; + document.body.removeAttribute('style'); + this.nodes.loader.style.strokeDashoffset = config.loaderStart; + + if (goBack) { + document.dispatchEvent(new CustomEvent('newPopstate', { + detail: { + screen: this, + back: true + } + })); + } + + var closeClass = noAnimate ? [] : config.closeSlideAnimate; + var bodyCloseClass = noAnimate ? config.bodyClosingClass : config.bodyCloseAnimate; + + // Don't close if already closed + if (!this.isOpen) { + return; + } + + // deselect any focused form elements + document.activeElement.blur(); + + theme.utils.prepareTransition(this.screen, function() { + this.screen.classList.remove(config.openClass); + this.screen.classList.add(...closeClass); + this.screen.classList.remove('is-transitioning'); + }.bind(this)); + + document.documentElement.classList.remove(config.bodyOpenClass); + document.body.classList.remove(config.bodyOpenClass); + document.documentElement.classList.add(...bodyCloseClass); + document.body.classList.add(...bodyCloseClass); + + window.setTimeout(function() { + this.screen.classList.remove(...closeClass); + document.documentElement.classList.remove(...bodyCloseClass); + document.body.classList.remove(...bodyCloseClass); + window.scrollTo(0, windowPosition); + }.bind(this), 500); // duration of css animation + + theme.a11y.removeTrapFocus({ + container: this.screen, + namespace: namespace + }); + + if (this.activeSource && this.activeSource.hasAttribute('aria-expanded')) { + this.activeSource.setAttribute('aria-expanded', 'false'); + this.activeSource.focus(); + } + + document.dispatchEvent(new CustomEvent('productModalClose')); + document.dispatchEvent(new CustomEvent('productModalClose.' + this.id)); + + window.scrollTo(0, windowPosition); + + this.isOpen = false; + document.title = originalTitle; + + if (window.ga) { ga('send', 'pageview') } + + this.unbindEvents(); + }, + + bindEvents: function() { + // Pressing escape closes modal, unless the photoswipe screen is open + window.on('keyup.' + namespace, function(evt) { + if (evt.keyCode === 27) { + if (this.nodes.photoswipe.classList.contains('pswp--open')) { + return; + } + if (document.body.classList.contains('js-drawer-open')) { + return; + } + + this.close(false, { back: true }); + } + }.bind(this)); + + // If scrolling up while at top, close modal + var bgAmount = 0; + var loaderAmount = 0; + + window.on('touchmove.' + namespace, theme.utils.throttle(15, function() { + var pos = window.scrollY; + if (pos >= 0) { + return; + } + + bgAmount = -(pos/100); + document.body.style.background = 'rgba(0,0,0,' + bgAmount + ')'; + + // stroke fills from 200-0 (0 = full) + loaderAmount = config.loaderStart + (pos * 2); // pos is negative number + + if (pos <= config.pullToCloseThreshold) { + loaderAmount = 0; + } + + this.nodes.loader.style.strokeDashoffset = loaderAmount; + }.bind(this))); + + window.on('touchend.' + namespace, function() { + var pos = window.scrollY; + if (pos < config.pullToCloseThreshold) { + var args = { back: true }; + this.close(false, args); + } + }.bind(this)); + }, + + unbindEvents: function() { + window.off('keyup.' + namespace); + window.off('touchmove.' + namespace); + window.off('touchend.' + namespace); + } + }); + + return ProductScreen; + })(); + + /* + Quick shop modals, or product screens, live inside + product-grid-item markup until page load, where they're + moved to #ProductScreens at the bottom of the page + */ + + theme.QuickShopScreens = (function() { + var startingUrl = window.location.pathname + window.location.search; + var currentPath = startingUrl; + var prevPath = null; + var currentScreen = null; + if ('scrollRestoration' in history) { + history.scrollRestoration = 'manual'; + } + + var selectors = { + screensWrap: '#ProductScreens', + screens: '[data-product-id]', + trigger: '.quick-product__btn' + }; + + var activeIds = []; + + function init(container) { + if (!theme.settings.quickView) { + return; + } + + var productIds = getProductIds(); + initProductScreens(productIds); + initHistoryWatcher(); + } + + function initHistoryWatcher() { + // No need to adjust URL in the editor since it handles the navigation + if (Shopify.designMode) { + return; + } + + // Listen for product screens opening + document.addEventListener('newPopstate', function(evt) { + if (!evt.detail) { + return; + } + + var data = evt.detail; + + currentScreen = data.screen; + // Manually trigger back, comes from esc key or close btns + if (data.back) { + prevPath = location.pathname; + currentPath = startingUrl; + history.pushState({}, '', startingUrl); + } + + if (data.url) { + if (data.updateCurrentPath) { + prevPath = location.pathname; + currentPath = data.url; + history.pushState({}, '', data.url); + } + } + }); + + window.addEventListener('popstate', function(evt) { + var goToUrl = false; + prevPath = currentPath; + + // Hash change or no change, let browser take over + if (location.pathname === currentPath) { + return; + } + + prevPath = currentPath; + currentPath = location.pathname; + + // Back to where we started. Close existing screen if open + if (location.pathname === startingUrl) { + if (currentScreen && currentScreen.isOpen) { + closeScreen(currentScreen); + } + return; + } + + // Opening product + if (location.pathname.indexOf('/products/') !== -1) { + if (currentScreen) { + currentScreen.open(); + } else { + // No screen sent to function, trigger new click + var btn = document.querySelector('.quick-product__btn[href="'+ location.pathname +'"]'); + btn.dispatchEvent(new Event('click'), { updateCurrentPath: false }); + } + + return; + } + + if (evt.originalEvent && evt.originalEvent.state) { + if (currentScreen && currentScreen.isOpen) { + closeScreen(currentScreen); + history.replaceState({}, '', startingUrl); + return; + } + + goToUrl = true; + } else { + if (currentScreen) { + if (currentScreen.isOpen) { + closeScreen(currentScreen); + return; + } + } else { + // No state/modal. Navigate to where browser wants + goToUrl = true; + } + } + + // Fallback if none of our conditions are met + if (goToUrl) { + window.location.href = location.href; + } + }.bind(this)); + } + + function closeScreen(screen) { + screen.close(); + currentScreen = null; + window.dispatchEvent(new Event('resize')); + } + + function getProductIds(scope) { + var ids = []; + + var triggers = scope ? scope.querySelectorAll(selectors.trigger) : document.querySelectorAll(selectors.trigger); + + triggers.forEach(trigger => { + var id = trigger.dataset.productId; + + // If another identical modal exists, remove from DOM + if (ids.indexOf(id) > -1) { + var duplicate = document.querySelector('.screen-layer--product[data-product-id="' + id + '"]'); + if (duplicate) { + duplicate.parentNode.removeChild(duplicate); + } + return; + } + + ids.push(id); + }); + + return ids; + } + + function getIdsFromTriggers(triggers) { + var ids = []; + + triggers.forEach(trigger => { + var id = trigger.dataset.productId; + ids.push(id); + }); + + return ids; + } + + function initProductScreens(ids) { + var screenId; + var screenLayer; + var screens = document.createDocumentFragment(); + + // Init screens if they're not duplicates + for (var i = 0; i < ids.length; i++) { + if (activeIds.indexOf(ids[i]) === -1) { + screenId = 'ProductScreen-' + ids[i]; + screenLayer = document.getElementById(screenId); + + if (screenLayer) { + screens.appendChild(screenLayer); + activeIds.push(ids[i]); + } + } + } + + // Append screens to bottom of page + document.querySelector(selectors.screensWrap).appendChild(screens); + + // Init active screens once they're appended + for (var i = 0; i < activeIds.length; i++) { + screenId = 'ProductScreen-' + activeIds[i]; + new theme.ProductScreen(screenId, 'product-' + activeIds[i]); + } + } + + // Section unloaded in theme editor. + // Check if product exists in any other area + // of the page, remove other's section.instance + function unload(container) { + if (!theme.settings.quickView) { + return; + } + + var removeIds = []; + var productIds = getProductIds(container); + + // Get ids from buttons not in removed section + var activeButtons = document.querySelectorAll(selectors.trigger); + var stillActiveIds = getIdsFromTriggers(activeButtons); + + // If ID exists on active button, do not add to IDs to remove + for (var i = 0; i < productIds.length; i++) { + var id = productIds[i]; + if (stillActiveIds.indexOf(id) === -1) { + removeIds.push(id); + } + } + + for (var i = 0; i < removeIds.length; i++) { + sections._removeInstance(removeIds[i]); + } + } + + // Section container is sent, so must re-scrape for product IDs + function reInit(container) { + if (!theme.settings.quickView) { + return; + } + + var newProductIds = getProductIds(container); + removeDuplicateModals(newProductIds, container); + initProductScreens(newProductIds); + + // Re-register product templates in quick view modals. + // Will not double-register. + var screens = document.getElementById('ProductScreens'); + theme.sections.register('product-template', theme.Product, screens); + } + + function removeDuplicateModals(ids, container) { + for (var i = 0; i < ids.length; i++) { + var duplicate = container.querySelector('.screen-layer--product[data-product-id="' + ids[i] + '"]'); + if (duplicate) { + duplicate.parentNode.removeChild(duplicate); + } + } + } + + return { + init: init, + unload: unload, + reInit: reInit + }; + })(); + + theme.HoverProductGrid = (function() { + var selectors = { + product: '.grid-product', + slider: '.product-slider', + }; + + function HoverProductGrid(container) { + this.container = container; + this.sectionId = this.container.getAttribute('data-section-id'); + this.namespace = '.product-image-slider-' + this.sectionId; + this.activeIds = []; + this.allSliders = {}; + + if (!theme.settings.hoverProductGrid) { + return; + } + + this.products = container.querySelectorAll(selectors.product); + this.slidersMobile = (container.dataset.productSlidersMobile === 'true'); + + // No products means no sliders + if (this.products.length === 0) { + return; + } + + this.init(); + } + + HoverProductGrid.prototype = Object.assign({}, HoverProductGrid.prototype, { + init: function() { + this.destroyAllSliders(); + this.setupEventType(); + this.listnerSetup(); + }, + + setupEventType: function() { + this.products.forEach(prod => { + prod.off('mouseenter' + this.namespace); + prod.off('mouseout' + this.namespace); + }); + + window.off('scroll' + this.namespace); + + if (theme.config.bpSmall) { + if (this.slidersMobile) { + this.inViewSliderInit(); + } + } else { + this.mouseSliderInit(); + } + }, + + listnerSetup: function() { + document.addEventListener('matchSmall', function() { + this.destroyAllSliders(); + this.setupEventType(); + }.bind(this)); + document.addEventListener('unmatchSmall', function() { + this.destroyAllSliders(); + this.setupEventType(); + }.bind(this)); + }, + + inViewSliderInit: function() { + this.products.forEach(prod => { + var observer = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + var slider = prod.querySelector(selectors.slider); + if (theme.config.bpSmall) { + if (entry.isIntersecting) { + this.initSlider(slider); + } else { + this.destroySlider(slider); + } + } + }); + }, {threshold: 1}); + + observer.observe(prod); + }); + }, + + mouseSliderInit: function() { + this.products.forEach(prod => { + var slider = prod.querySelector(selectors.slider); + + prod.on('mouseenter' + this.namespace, function() { + this.initSlider(slider); + }.bind(this)); + + prod.on('mouseleave' + this.namespace, function(evt) { + this.destroySlider(slider); + }.bind(this)); + }); + }, + + initSlider: function(slider) { + if (!slider.dataset || slider.dataset.imageCount < 2) { + return; + } + + if (this.activeIds.indexOf(slider.dataset.id) !== -1) { + return; + } + + slider.classList.add('product-slider--init'); + this.allSliders[slider.dataset.id] = new theme.Slideshow(slider, { + autoPlay: 1050, + fade: true, + avoidReflow: true + }); + + this.activeIds.push(slider.dataset.id); + }, + + destroySlider: function(slider) { + if (!slider.dataset || slider.dataset.imageCount < 2) { + return; + } + + var alreadyActive = this.activeIds.indexOf(slider.dataset.id); + if (alreadyActive !== -1) { + this.activeIds.splice(alreadyActive, 1); + + var flickity = this.allSliders[slider.dataset.id]; + if (flickity && typeof flickity.destroy === 'function') { + flickity.destroy(); + } + } + }, + + destroyAllSliders: function() { + this.products.forEach(prod => { + var slider = prod.querySelector(selectors.slider); + this.destroySlider(slider); + }); + } + }); + + return HoverProductGrid; + })(); + + theme.slideNav = (function() { + + var selectors = { + container: '#PageContainer', + navWrapper: '.slide-nav__overflow', + nav: '#SlideNav', + toggleBtn: '.js-toggle-slide-nav', + subNavToggleBtn: '.js-toggle-submenu', + thumbNavToggle: '.site-nav__thumb-button' + }; + + var classes = { + subNavLink: 'slide-nav__sublist-link', + return: 'slide-nav__return-btn', + isActive: 'is-active', + isOpen: 'js-menu--is-open', + subNavShowing: 'sub-nav--is-open', + thirdNavShowing: 'third-nav--is-open' + }; + + var namespace = '.slideNav'; + + var isTransitioning; + var activeSubNav; + var activeTrigger; + var pageSlide = true; + var menuLevel = 1; + var container; + var navWrapper; + var toggleBtns; + var subNavToggleBtns; + var activeMenuToggle = null; + + function init() { + var thumbNavToggle = document.querySelector(selectors.thumbNavToggle); + if (thumbNavToggle) { + pageSlide = false; + } + + container = document.querySelector(selectors.container); + navWrapper = document.querySelector(selectors.navWrapper); + + toggleBtns = document.querySelectorAll(selectors.toggleBtn); + subNavToggleBtns = document.querySelectorAll(selectors.subNavToggleBtn); + + toggleBtns.forEach(btn => { + btn.on('click' + namespace, toggleNav); + }); + + subNavToggleBtns.forEach(btn => { + btn.on('click' + namespace, toggleSubNav); + }); + } + + function toggleNav(evt) { + activeMenuToggle = evt.currentTarget; + if (activeMenuToggle.classList.contains(classes.isActive)) { + closeNav(); + } else { + openNav(); + } + } + + function openNav(evt) { + toggleBtns.forEach(btn => { + btn.classList.add(classes.isActive); + }); + + theme.utils.prepareTransition(navWrapper, function() { + navWrapper.classList.add(classes.isOpen); + }); + + if (pageSlide) { + var navWrapperHeight = document.querySelector(selectors.navWrapper).clientHeight; + container.style.transform = 'translate3d(0, ' + navWrapperHeight + 'px, 0)'; + } + + navWrapper.setAttribute('tabindex', '-1'); + navWrapper.focus(); + + // close on escape + window.on('keyup' + namespace, function(evt) { + if (evt.keyCode === 27) { + closeNav(); + } + }); + } + + function closeNav() { + toggleBtns.forEach(btn => { + btn.classList.remove(classes.isActive); + }); + + theme.utils.prepareTransition(navWrapper, function() { + navWrapper.classList.remove(classes.isOpen); + }); + + if (pageSlide) { + container.removeAttribute('style'); + } + + activeMenuToggle.focus(); + activeMenuToggle = null; + + window.off('keyup' + namespace); + } + + function toggleSubNav(evt) { + if (isTransitioning) { + return; + } + + var toggleBtn = evt.currentTarget; + var isReturn = toggleBtn.classList.contains(classes.return); + isTransitioning = true; + + if (isReturn) { + // Close all subnavs by removing active class on buttons + var btns = document.querySelectorAll(selectors.subNavToggleBtn + '[data-level="' + (menuLevel - 1) + '"]'); + btns.forEach(btn => { + btn.classList.remove(classes.isActive); + }); + + var menus = document.querySelectorAll('.slide-nav__dropdown[data-level="' + (menuLevel) + '"]'); + menus.forEach(menu => { + theme.utils.prepareTransition(menu, function() { + menu.classList.remove(classes.isActive); + }); + }); + + if (activeTrigger) { + activeTrigger.classList.remove(classes.isActive); + } + } else { + toggleBtn.classList.add(classes.isActive); + + var dropdown = toggleBtn.nextElementSibling; + theme.utils.prepareTransition(dropdown, function() { + dropdown.classList.add(classes.isActive); + }); + } + + activeTrigger = toggleBtn; + + goToSubnav(toggleBtn.dataset.target); + } + + function goToSubnav(target) { + var targetMenu = target + ? document.querySelector('.slide-nav__dropdown[data-parent="' + target + '"]') + : document.querySelector(selectors.nav); + + menuLevel = targetMenu.dataset.level ? parseInt(targetMenu.dataset.level) : 1; + + activeSubNav = targetMenu; + + // Unused? + // var $elementToFocus = target + // ? $targetMenu.find('.' + classes.subNavLink + ':first') + // : $activeTrigger; + + var translateMenuHeight = targetMenu.clientHeight; + + var openNavClass = + menuLevel > 2 ? classes.thirdNavShowing : classes.subNavShowing; + + navWrapper.style.height = translateMenuHeight + 'px'; + navWrapper.classList.remove(classes.thirdNavShowing); + navWrapper.classList.add(openNavClass); + + if (!target) { + // Show top level nav + navWrapper.classList.remove(classes.thirdNavShowing); + navWrapper.classList.remove(classes.subNavShowing); + } + + isTransitioning = false; + + // Match height of subnav + if (pageSlide) { + container.style.transform = 'translate3d(0, ' + translateMenuHeight + 'px, 0)'; + } + } + + function unload() { + window.off(namespace); + } + + return { + init: init, + unload: unload + }; + })(); + + window.onpageshow = function(evt) { + // Removes unload class when returning to cached page + if (evt.persisted) { + document.body.classList.remove('unloading'); + document.querySelectorAll('.cart__checkout').forEach(el => { + el.classList.remove('btn--loading'); + }); + document.querySelectorAll('#StickySubmit').forEach(btn => { + btn.classList.remove('btn--loading'); + }); + } + + // Reset scroll position when coming from back button + var historyPage = event.persisted || (typeof window.performance != 'undefined' && window.performance.navigation && window.performance.navigation.type === 2); + if (historyPage) { + theme.resetScrollPosition(); + } + }; + + theme.resetScrollPosition = function() { + if (!theme.config.hasSessionStorage) { return; } + var pathName = document.location.pathname; + + if (sessionStorage['scrollPosition_' + pathName]) { + window.scrollTo(0, sessionStorage.getItem('scrollPosition_' + pathName)); + } + }; + + theme.storeScrollPositionOnUnload = function() { + if (!theme.config.hasSessionStorage) { return; } + var eventName = theme.config.isSafari ? 'pagehide' : 'beforeunload'; + + window.addEventListener(eventName, function (event) { + var pos = window.scrollY; + + sessionStorage.setItem('scrollPosition_' + document.location.pathname, pos.toString()); + }); + }; + + theme.pageTransitions = function() { + if (document.body.dataset.transitions === 'true') { + + // Hack test to fix Safari page cache issue. + // window.onpageshow doesn't always run when navigating + // back to the page, so the unloading class remains, leaving + // a white page. Setting a timeout to remove that class when leaving + // the page actually finishes running when they come back. + if (theme.config.isSafari) { + document.querySelectorAll('a').forEach(a => { + window.setTimeout(function() { + document.body.classList.remove('unloading'); + }, 1200); + }); + } + + // Add disable transition class to malito, anchor, and YouTube links + // Add disable transition class to various link types + document.querySelectorAll('a[href^="mailto:"], a[href^="#"], a[target="_blank"], a[href*="youtube.com/watch"], a[href*="youtu.be/"], a[download]').forEach(el => { + el.classList.add('js-no-transition'); + }); + + document.querySelectorAll('a:not(.js-no-transition)').forEach(el => { + el.addEventListener('click', function(evt) { + if (evt.metaKey) return true; + var src = el.getAttribute('href'); + + // Bail if it's a hash link + if(src.indexOf(location.pathname) >= 0 && src.indexOf('#') >= 0) { + return true; + } + + evt.preventDefault(); + document.body.classList.add('unloading'); + window.setTimeout(function() { + location.href = src; + }, 50); + }); + }); + } + }; + + theme.headerNav = (function() { + + var selectors = { + wrapper: '.header-wrapper', + siteHeader: '.site-header', + logo: '.site-header__logo img', + navItems: '.site-nav__item', + navLinks: '.site-nav__link', + navLinksWithDropdown: '.site-nav__link--has-dropdown', + navDropdownLinks: '.site-nav__dropdown-link--second-level', + thumbMenu: '.site-nav__thumb-menu' + }; + + var classes = { + hasDropdownClass: 'site-nav--has-dropdown', + hasSubDropdownClass: 'site-nav__deep-dropdown-trigger', + dropdownActive: 'is-focused', + stickyCartActive: 'body--sticky-cart-open', + overlayEnabledClass: 'header-wrapper--overlay', + overlayedClass: 'is-light', + thumbMenuInactive: 'site-nav__thumb-menu--inactive', + stickyClass: 'site-header--sticky', + overlayStickyClass: 'header-wrapper--sticky', + openTransitionClass: 'site-header--opening' + }; + + var config = { + namespace: '.siteNav', + overlayHeader: false, + stickyActive: false, + forceStickyOnMobile: false, + forceCloseThumbNav: false + }; + + // Elements used in resize functions, defined in init + var wrapper; + var siteHeader; + + function init() { + wrapper = document.querySelector(selectors.wrapper); + siteHeader = document.querySelector(selectors.siteHeader); + + // Reset config + theme.settings.overlayHeader = (siteHeader.dataset.overlay === 'true'); + config.stickyActive = false; + + accessibleDropdowns(); + var searchModal = new theme.Modals('SearchModal', 'search-modal', { + closeOffContentClick: false, + focusIdOnOpen: 'SearchModalInput' + }); + + // One listener for all header-related resize and load functions + window.on('resize' + config.namespace, theme.utils.debounce(150, headerResize)); + window.on('load' + config.namespace, headerLoad); + + // Determine type of header: + // desktop: sticky bar | sticky button | top only + // mobile: always sticky button + setHeaderStyle(); + + // Sticky menu (bar or thumb) on scroll + window.on('scroll' + config.namespace, theme.utils.throttle(150, stickyMenuOnScroll)); + // Make sure it fires after scrolling, to be safe and sure + // the height is properly set + window.on('scroll' + config.namespace, theme.utils.debounce(150, stickyMenuOnScroll)); + + // Make sure sticky nav appears after header is reloaded in editor + if (Shopify.designMode) { + window.dispatchEvent(new Event('resize')); + } + } + + function headerLoad() { + resizeLogo(); + initStickyThumbMenu(); + + if (config.headerStyle === 'bar') { + initStickyBarMenu(); + } + } + + function headerResize() { + resizeLogo(); + setHeaderStyle(); + + if (config.headerStyle === 'bar') { + stickyHeaderHeight(); + } + } + + function setHeaderStyle() { + if (theme.config.bpSmall) { + config.headerStyle = 'button'; + } else { + config.headerStyle = wrapper.dataset.headerStyle; + } + + config.stickyThreshold = config.headerStyle === 'button' ? 100 : 250; + + if (config.headerStyle !== 'button') { + toggleThumbMenu(false); + } + } + + function resizeLogo() { + document.querySelectorAll(selectors.logo).forEach(logo => { + var logoWidthOnScreen = logo.clientWidth; + var containerWidth = logo.closest('.header-item').clientWidth; + + // If image exceeds container, let's make it smaller + if (logoWidthOnScreen > containerWidth) { + logo.style.maxWidth = containerWidth; + } + else { + logo.removeAttribute('style') + } + }); + } + + function accessibleDropdowns() { + var hasActiveDropdown = false; + var hasActiveSubDropdown = false; + var closeOnClickActive = false; + + // Touch devices open dropdown on first click, navigate to link on second + if (theme.config.isTouch) { + document.querySelectorAll(selectors.navLinksWithDropdown).forEach(el => { + el.on('touchend' + config.namespace, function(evt) { + var parent = evt.currentTarget.parentNode; + if (!parent.classList.contains(classes.dropdownActive)) { + evt.preventDefault(); + closeDropdowns(); + openFirstLevelDropdown(evt.currentTarget); + } else { + window.location.replace(evt.currentTarget.getAttribute('href')); + } + }); + }); + } + + // Open/hide top level dropdowns + document.querySelectorAll(selectors.navLinks).forEach(el => { + el.on('focusin' + config.namespace, accessibleMouseEvent); + el.on('mouseover' + config.namespace, accessibleMouseEvent); + el.on('mouseleave' + config.namespace, closeDropdowns); + }); + + document.querySelectorAll(selectors.navDropdownLinks).forEach(el => { + if (theme.config.isTouch) { + el.on('touchend' + config.namespace, function(evt) { + var parent = evt.currentTarget.parentNode; + + // Open third level menu or go to link based on active state + if (parent.classList.contains(classes.hasSubDropdownClass)) { + if (!parent.classList.contains(classes.dropdownActive)) { + evt.preventDefault(); + closeThirdLevelDropdown(); + openSecondLevelDropdown(evt.currentTarget); + } else { + window.location.replace(evt.currentTarget.getAttribute('href')); + } + } else { + // No third level nav, go to link + window.location.replace(evt.currentTarget.getAttribute('href')); + } + }); + } + + // Open/hide sub level dropdowns + el.on('focusin' + config.namespace, function(evt) { + closeThirdLevelDropdown(); + openSecondLevelDropdown(evt.currentTarget, true); + }) + }); + + function accessibleMouseEvent(evt) { + if (hasActiveDropdown) { + closeSecondLevelDropdown(); + } + + if (hasActiveSubDropdown) { + closeThirdLevelDropdown(); + } + + openFirstLevelDropdown(evt.currentTarget); + } + + // Private dropdown functions + function openFirstLevelDropdown(el) { + var parent = el.parentNode; + if (parent.classList.contains(classes.hasDropdownClass)) { + parent.classList.add(classes.dropdownActive); + hasActiveDropdown = true; + } + + if (!theme.config.isTouch) { + if (!closeOnClickActive) { + var eventType = theme.config.isTouch ? 'touchend' : 'click'; + closeOnClickActive = true; + document.documentElement.on(eventType + config.namespace, function() { + closeDropdowns(); + document.documentElement.off(eventType + config.namespace); + closeOnClickActive = false; + }.bind(this)); + } + } + } + + function openSecondLevelDropdown(el, skipCheck) { + var parent = el.parentNode; + if (parent.classList.contains(classes.hasSubDropdownClass) || skipCheck) { + parent.classList.add(classes.dropdownActive); + hasActiveSubDropdown = true; + } + } + + function closeDropdowns() { + closeSecondLevelDropdown(); + closeThirdLevelDropdown(); + } + + function closeSecondLevelDropdown() { + document.querySelectorAll(selectors.navItems).forEach(el => { + el.classList.remove(classes.dropdownActive) + }); + } + + function closeThirdLevelDropdown() { + document.querySelectorAll(selectors.navDropdownLinks).forEach(el => { + el.parentNode.classList.remove(classes.dropdownActive); + }); + } + } + + function initStickyBarMenu() { + var wrapWith = document.createElement('div'); + wrapWith.classList.add('site-header-sticky'); + theme.utils.wrap(siteHeader, wrapWith); + + // No need to set a height on wrapper if positioned absolutely already + if (theme.settings.overlayHeader) { + return; + } + + stickyHeaderHeight(); + setTimeout(function() { + stickyHeaderHeight(); + + // Don't let height get stuck on 0 + var stickyHeader = document.querySelector('.site-header-sticky'); + if (stickyHeader.offsetHeight === 0) { + setTimeout(function() { + window.dispatchEvent(new Event('resize')); + }, 500); + } + }, 200); + } + + function stickyHeaderHeight() { + var stickyHeader = document.querySelector('.site-header-sticky'); + if (stickyHeader) { + var h = siteHeader.offsetHeight; + stickyHeader.style.height = h + 'px'; + } + } + + function initStickyThumbMenu() { + if (document.body.classList.contains(classes.stickyCartActive)) { + return; + } + + if (theme.config.bpSmall && theme.template !== 'product') { + setTimeout(function() { + config.forceStickyOnMobile = true; + toggleThumbMenu(true); + }, 25); + } + } + + function stickyMenuOnScroll(evt) { + if (window.scrollY > config.stickyThreshold) { + if (config.forceStickyOnMobile) { + config.forceStickyOnMobile = false; + } + + if (config.stickyActive) { + return; + } + + if (config.headerStyle === 'button') { + toggleThumbMenu(true); + } else if (config.headerStyle === 'bar') { + toggleBarMenu(true); + } + } else { + // If menu is shown on mobile page load, do not + // automatically hide it when you start scrolling + if (config.forceStickyOnMobile) { + return; + } + + if (!config.stickyActive) { + return; + } + + if (config.headerStyle === 'button') { + if (!theme.config.bpSmall) { + toggleThumbMenu(false); + } + } else if (config.headerStyle === 'bar') { + toggleBarMenu(false); + } + + if (!theme.settings.overlayHeader) { + stickyHeaderHeight(); + } + } + } + + function toggleThumbMenu(active, forceClose) { + // If forced close, will not open again until page refreshes + // because sticky nav is open + if (config.forceCloseThumbNav) { + return; + } + + // If thumb menu is open, do not hide menu button + var thumbBtn = document.querySelector('.slide-nav__overflow--thumb'); + if (thumbBtn.classList.contains('js-menu--is-open')) { + return; + } + + const menuElement = document.querySelector(selectors.thumbMenu) + menuElement && menuElement.classList.toggle(classes.thumbMenuInactive, !active); + + config.stickyActive = active; + config.forceCloseThumbNav = forceClose; + } + + function toggleBarMenu(active) { + if (config.headerStyle !== 'bar') { + return; + } + + if (active) { + siteHeader.classList.add(classes.stickyClass); + if (theme.settings.overlayHeader) { + wrapper.classList.remove(classes.overlayedClass); + wrapper.classList.add(classes.overlayStickyClass); + } + + // Add open transition class after element is set to fixed + // so CSS animation is applied correctly + setTimeout(function() { + siteHeader.classList.add(classes.openTransitionClass); + }, 100); + } else { + siteHeader.classList.remove(classes.openTransitionClass); + siteHeader.classList.remove(classes.stickyClass); + + if (theme.settings.overlayHeader) { + wrapper.classList.add(classes.overlayedClass); + wrapper.classList.remove(classes.overlayStickyClass); + } + } + + config.stickyActive = active; + } + + // If the header setting to overlay the menu on the collection image + // is enabled but the collection setting is disabled, we need to undo + // the init of the sticky nav + function disableOverlayHeader() { + wrapper.classList.remove(config.overlayEnabledClass); + wrapper.classList.remove(config.overlayedClass); + theme.settings.overlayHeader = false; + } + + function unload() { + window.off(config.namespace); + } + + return { + init: init, + disableOverlayHeader: disableOverlayHeader, + toggleThumbMenu: toggleThumbMenu, + unload: unload + }; + })(); + + theme.articleImages = function() { + var wrappers = document.querySelectorAll('.rte--indented-images'); + + if (!wrappers.length) { + return; + } + + wrappers.forEach(wrapper => { + wrapper.querySelectorAll('img').forEach(image => { + var attr = image.getAttribute('style'); + // Check if undefined for float: none + if (!attr || attr == 'float: none;') { + // Remove grid-breaking styles if image is not wider than parent + if (image.width < wrapper.offsetWidth) { + image.classList.add('rte__no-indent'); + } + } + }); + }); + }; + + theme.customerTemplates = function() { + checkUrlHash(); + initEventListeners(); + resetPasswordSuccess(); + customerAddressForm(); + + function checkUrlHash() { + var hash = window.location.hash; + + // Allow deep linking to recover password form + if (hash === '#recover') { + toggleRecoverPasswordForm(); + } + } + + function toggleRecoverPasswordForm() { + var passwordForm = document.getElementById('RecoverPasswordForm').classList.toggle('hide'); + var loginForm = document.getElementById('CustomerLoginForm').classList.toggle('hide'); + } + + function initEventListeners() { + // Show reset password form + var recoverForm = document.getElementById('RecoverPassword'); + if (recoverForm) { + recoverForm.addEventListener('click', function(evt) { + evt.preventDefault(); + toggleRecoverPasswordForm(); + }); + } + + // Hide reset password form + var hideRecoverPassword = document.getElementById('HideRecoverPasswordLink'); + if (hideRecoverPassword) { + hideRecoverPassword.addEventListener('click', function(evt) { + evt.preventDefault(); + toggleRecoverPasswordForm(); + }); + } + } + + function resetPasswordSuccess() { + var formState = document.querySelector('.reset-password-success'); + + // check if reset password form was successfully submitted + if (!formState) { + return; + } + + // show success message + document.getElementById('ResetSuccess').classList.remove('hide'); + } + + function customerAddressForm() { + var newAddressForm = document.getElementById('AddressNewForm'); + var addressForms = document.querySelectorAll('.js-address-form'); + + if (!newAddressForm || !addressForms.length) { + return; + } + + // Country/province selector can take a short time to load + setTimeout(function() { + document.querySelectorAll('.js-address-country').forEach(el => { + var countryId = el.dataset.countryId; + var provinceId = el.dataset.provinceId; + var provinceContainerId = el.dataset.provinceContainerId; + + new Shopify.CountryProvinceSelector( + countryId, + provinceId, + { + hideElement: provinceContainerId + } + ); + }); + }, 1000); + + // Toggle new/edit address forms + document.querySelectorAll('.address-new-toggle').forEach(el => { + el.addEventListener('click', function() { + newAddressForm.classList.toggle('hide'); + }); + }); + + document.querySelectorAll('.address-edit-toggle').forEach(el => { + el.addEventListener('click', function(evt) { + var formId = evt.currentTarget.dataset.formId; + document.getElementById('EditAddress_' + formId).classList.toggle('hide'); + }); + }); + + document.querySelectorAll('.address-delete').forEach(el => { + el.addEventListener('click', function(evt) { + var formId = evt.currentTarget.dataset.formId; + var confirmMessage = evt.currentTarget.dataset.confirmMessage; + + if (confirm(confirmMessage || 'Are you sure you wish to delete this address?')) { + if (Shopify) { + Shopify.postLink('/account/addresses/' + formId, {parameters: {_method: 'delete'}}); + } + } + }) + }); + } + }; + + theme.CartDrawer = (function() { + var selectors = { + drawer: '#CartDrawer', + form: '#CartDrawerForm' + }; + + function CartDrawer() { + this.form = document.querySelector(selectors.form); + this.drawer = new theme.Drawers('CartDrawer', 'cart'); + + this.init(); + } + + CartDrawer.prototype = Object.assign({}, CartDrawer.prototype, { + init: function() { + this.cartForm = new theme.CartForm(this.form); + this.cartForm.buildCart(); + + document.addEventListener('ajaxProduct:added', function(evt) { + document.body.classList.add('cart-has-items'); + this.cartForm.buildCart(); + this.open(); + }.bind(this)); + + // Dev-friendly way to open cart + document.addEventListener('cart:open', this.open.bind(this)); + document.addEventListener('cart:close', this.close.bind(this)); + }, + + open: function() { + this.drawer.open(); + }, + + close: function() { + this.drawer.close(); + } + }); + + return CartDrawer; + })(); + + theme.refreshCart = function() { + if (theme.settings.cartType === 'sticky' && theme.StickyCart) { + theme.cart.getCart().then(function(cart) { + theme.StickyCart.refresh(cart); + }); + } + }; + + theme.StickyCart = (function() { + var config = { + namespace: '.ajaxcart' + }; + + var selectors = { + cart: '#StickyCart', + items: '#StickyItems', + subtotal: '#StickySubtotal', + submit: '#StickySubmit' + }; + + var classes = { + cartTemplate: 'template-cart', + active: 'sticky-cart--open', + activeBodyClass: 'body--sticky-cart-open' + }; + + function StickyCart() { + this.status = { + loaded: false, + loading: false, + open: document.body.classList.contains(classes.activeBodyClass) + }; + + if (!document.querySelector(selectors.cart)) { + return; + } + + this.initEventListeners(); + } + + function refresh(cart) { + if (document.body.classList.contains(classes.cartTemplate)) { + return; + } + + if (cart.item_count > 0) { + document.body.classList.add(classes.activeBodyClass); + document.querySelector(selectors.cart).classList.add(classes.active); + } else { + document.body.classList.remove(classes.activeBodyClass); + document.querySelector(selectors.cart).classList.remove(classes.active); + } + + document.querySelector(selectors.items).innerText = theme.strings.cartItems.replace('[count]', cart.item_count); + document.querySelector(selectors.subtotal).innerHTML = theme.Currency.formatMoney(cart.total_price, theme.settings.moneyFormat); + } + + StickyCart.prototype = Object.assign({}, StickyCart.prototype, { + initEventListeners: function() { + var submitBtn = document.querySelector(selectors.submit); + submitBtn.addEventListener('click', function() { + submitBtn.classList.add('btn--loading'); + }); + + document.addEventListener('ajaxProduct:added', function() { + this.hideCart(); + theme.cart.getCart().then(function(cart) { + this.buildCart(cart, true); + }.bind(this)); + }.bind(this)); + }, + + hideCart: function() { + document.body.classList.remove(classes.activeBodyClass); + document.querySelector(selectors.cart).classList.remove(classes.active); + }, + + showCart: function(count, subtotal) { + if (count) { + document.querySelector(selectors.items).innerText = theme.strings.cartItems.replace('[count]', count); + } + if (subtotal) { + document.querySelector(selectors.subtotal).innerHTML = theme.Currency.formatMoney(subtotal, theme.settings.moneyFormat); + } + + document.body.classList.add(classes.activeBodyClass); + document.querySelector(selectors.cart).classList.add(classes.active); + + this.status.open = true; + }, + + buildCart: function(cart, open) { + this.loading(true); + + this.status.loaded = true; + this.loading(false); + + // If specifically asked, open the cart (only happens after product added from form) + if (open === true) { + this.showCart(cart.item_count, cart.total_price); + } + }, + + loading: function(state) { + this.status.loading = state; + + if (state) { + document.querySelector(selectors.cart).classList.add('is-loading'); + } else { + document.querySelector(selectors.cart).classList.remove('is-loading'); + } + }, + + updateError: function(XMLHttpRequest) { + if (XMLHttpRequest.responseJSON && XMLHttpRequest.responseJSON.description) { + console.warn(XMLHttpRequest.responseJSON.description); + } + } + }); + + return { + init: StickyCart, + refresh: refresh + } + })(); + + + theme.Product = (function() { + var videoObjects = {}; + + var classes = { + onSale: 'sale-price', + disabled: 'disabled', + isModal: 'is-modal', + loading: 'loading', + loaded: 'loaded', + hidden: 'hide', + visuallyHide: 'visually-invisible', + thumbActive: 'thumb--current' + }; + + var selectors = { + variantsJson: '[data-variant-json]', + currentVariantJson: '[data-current-variant-json]', + + imageContainer: '[data-product-images]', + mainSlider: '[data-product-photos]', + thumbSlider: '[data-product-thumbs]', + thumbScroller: '[data-product-thumbs-scroller]', + photo: '[data-product-photo]', + photoThumbs: '[data-product-thumb]', + photoThumbItem: '[data-product-thumb-item]', + zoomButton: '.product__photo-zoom', + + priceWrapper: '[data-price-wrapper]', + price: '[data-product-price]', + comparePrice: '[data-product-price-compare]', + priceA11y: '[data-price-a11y]', + comparePriceA11y: '[data-compare-a11y]', + sku: '[data-sku]', + inventory: '[data-product-inventory]', + incomingInventory: '[data-product-incoming-inventory]', + unitWrapper: '[data-product-unit-wrapper]', + + addToCart: '[data-add-to-cart]', + addToCartText: '[data-add-to-cart-text]', + + variantType: '.variant-wrapper', + originalSelectorId: '[data-product-select]', + singleOptionSelector: '[data-variant-input]', + variantColorSwatch: '[data-color-swatch]', + + productImageMain: '.product-image-main', + productVideo: '.product__video', + videoParent: '.product__video-wrapper', + slide: '.product-main-slide', + currentSlide: '.is-selected', + startingSlide: '.starting-slide', + + media: '[data-product-media-type-model]', + closeMedia: '.product-single__close-media', + + blocks: '[data-product-blocks]', + blocksHolder: '[data-blocks-holder]', + formContainer: '.product-single__form', + availabilityContainer: '[data-store-availability]' + }; + + function Product(container) { + this.container = container; + this.sectionId = container.getAttribute('data-section-id') + this.productId = container.getAttribute('data-product-id') + + this.inModal = (container.dataset.modal === 'true'); + this.modal; + + this.namespace = '.product-' + this.sectionId; + this.namespaceImages = '.product-image-' + this.sectionId; + + this.settings = { + enableHistoryState: (container.dataset.history === 'true') || false, + namespace: '.product-' + this.sectionId, + inventory: false, + inventoryThreshold: 10, + modalInit: false, + hasImages: true, + hasVideos: container.querySelectorAll(selectors.productVideo).length || false, + videoStyle: container.dataset.videoStyle, + has3d: false, + imageSetName: null, + imageSetIndex: null, + currentImageSet: null, + stackedImages: container.dataset.imagesStacked || false, + stackedCurrent: 0, + stackedImagePositions: [], + imageSize: '620x', + currentSlideIndex: 0, + videoLooping: container.dataset.videoLooping + }; + + this.videos = {}; + + // Overwrite some settings when loaded in modal + if (this.inModal) { + this.settings.enableHistoryState = false; + this.namespace = '.product-' + this.sectionId + '-modal'; + this.modal = document.getElementById('ProductScreen-' + this.sectionId); + } + + this.init(); + } + + Product.prototype = Object.assign({}, Product.prototype, { + init: function() { + this.mainSlider = this.container.querySelector(selectors.mainSlider); + this.thumbSlider = this.container.querySelector(selectors.thumbSlider); + this.firstProductImage = this.mainSlider.querySelector('img'); + + if (!this.firstProductImage) { + this.settings.hasImages = false; + } + + var dataSetEl = this.mainSlider.querySelector('[data-set-name]'); + this.settings.imageSetName = dataSetEl ? dataSetEl.dataset.setName : false; + + if (this.inModal) { + this.container.classList.add(classes.isModal); + document.removeEventListener('productModalOpen.ProductScreen-' + this.sectionId, this.openModalProduct.bind(this)); + document.removeEventListener('productModalClose.ProductScreen-' + this.sectionId, this.openModalProduct.bind(this)); + document.addEventListener('productModalOpen.ProductScreen-' + this.sectionId, this.openModalProduct.bind(this)); + document.addEventListener('productModalClose.ProductScreen-' + this.sectionId, this.closeModalProduct.bind(this)); + } + + if (!this.inModal) { + this.formSetup(); + this.preImageSetup(); + this.videoSetup(); + this.initProductSlider(); + } + }, + + formSetup: function() { + this.initAjaxProductForm(); + this.availabilitySetup(); + this.initVariants(); + + // We know the current variant now so setup image sets + if (this.settings.imageSetName) { + this.updateImageSet(); + } + }, + + availabilitySetup: function() { + var container = this.container.querySelector(selectors.availabilityContainer); + if (container) { + this.storeAvailability = new theme.StoreAvailability(container); + } + }, + + initVariants: function() { + var variantJson = this.container.querySelector(selectors.variantsJson); + + if (!variantJson) { + return; + } + + this.variantsObject = JSON.parse(variantJson.innerHTML); + + var options = { + container: this.container, + enableHistoryState: this.settings.enableHistoryState, + singleOptionSelector: selectors.singleOptionSelector, + originalSelectorId: selectors.originalSelectorId, + variants: this.variantsObject + }; + + var swatches = this.container.querySelectorAll(selectors.variantColorSwatch); + + if (swatches.length) { + swatches.forEach(swatch => { + swatch.addEventListener('change', function(evt) { + var color = swatch.dataset.colorName; + var index = swatch.dataset.colorIndex; + this.updateColorName(color, index); + }.bind(this)) + }); + } + + this.variants = new theme.Variants(options); + + // Product availability on page load + if (this.storeAvailability) { + var variant_id = this.variants.currentVariant ? this.variants.currentVariant.id : this.variants.variants[0].id; + + this.storeAvailability.updateContent(variant_id); + this.container.on('variantChange' + this.settings.namespace, this.updateAvailability.bind(this)); + } + + this.container.on('variantChange' + this.namespace, this.updateCartButton.bind(this)); + this.container.on('variantImageChange' + this.settings.namespace, this.updateVariantImage.bind(this)); + this.container.on('variantPriceChange' + this.settings.namespace, this.updatePrice.bind(this)); + this.container.on('variantUnitPriceChange' + this.settings.namespace, this.updateUnitPrice.bind(this)); + + if (this.container.querySelectorAll(selectors.sku).length) { + this.container.on('variantSKUChange' + this.settings.namespace, this.updateSku.bind(this)); + } + + var inventoryEl = this.container.querySelector(selectors.inventory); + if (inventoryEl) { + this.settings.inventory = true; + this.settings.inventoryThreshold = inventoryEl.dataset.threshold; + this.container.on('variantChange' + this.settings.namespace, this.updateInventory.bind(this)); + } + + // Update individual variant availability on each selection + if (theme.settings.dynamicVariantsEnable) { + var currentVariantJson = this.container.querySelector(selectors.currentVariantJson); + + if (currentVariantJson) { + var variantType = this.container.querySelector(selectors.variantType); + + if (variantType) { + new theme.VariantAvailability({ + container: this.container, + namespace: this.settings.namespace, + type: variantType.dataset.type, + variantsObject: this.variantsObject, + currentVariantObject: JSON.parse(currentVariantJson.innerHTML), + form: this.container.querySelector(selectors.formContainer) + }); + } + } + } + + // image set names variant change listeners + if (this.settings.imageSetName) { + var variantWrapper = this.container.querySelector('.variant-input-wrap[data-handle="'+this.settings.imageSetName+'"]'); + if (variantWrapper) { + this.settings.imageSetIndex = variantWrapper.dataset.index; + this.container.on('variantChange' + this.settings.namespace, this.updateImageSet.bind(this)) + } else { + this.settings.imageSetName = null; + } + + // Retrigger image sets after screen size change + window.on('resize' + this.namespaceImages, theme.utils.debounce(200, function(){ + // Reset currentImageSet on desktop to hide + // unrelated stacked images. + // On mobile the slideshow initializes and + // automatically resets visible photos + if (!theme.config.bpSmall) { + this.settings.currentImageSet = null; + } + this.updateImageSet(); + }.bind(this))); + } + }, + + initAjaxProductForm: function() { + if (theme.settings.cartType === 'drawer' || theme.settings.cartType === 'sticky') { + var form = this.container.querySelector(selectors.formContainer); + + new theme.AjaxProduct(form, selectors.addToCart, { + scopedEventId: 'ProductScreen-' + this.sectionId + }); + } + }, + + /*============================================================================ + Variant change methods + ==============================================================================*/ + updateColorName: function(color, index) { + // Updates on radio button change, not variant.js + var label = this.container.querySelector('[data-color-label][data-color-label-index="'+index+'"]'); + if (label) { + label.textContent = color; + } + }, + + updateCartButton: function(evt) { + var variant = evt.detail.variant; + var cartBtn = this.container.querySelector(selectors.addToCart); + var cartBtnText = this.container.querySelector(selectors.addToCartText); + + if (variant) { + if (variant.available) { + // Available, enable the submit button and change text + cartBtn.classList.remove(classes.disabled); + cartBtn.disabled = false; + var defaultText = cartBtnText.dataset.defaultText; + cartBtnText.textContent = defaultText; + } else { + // Sold out, disable the submit button and change text + cartBtn.classList.add(classes.disabled); + cartBtn.disabled = true; + cartBtnText.textContent = theme.strings.soldOut; + } + } else { + // The variant doesn't exist, disable submit button + cartBtn.classList.add(classes.disabled); + cartBtn.disabled = true; + cartBtnText.textContent = theme.strings.unavailable; + } + }, + + updatePrice: function(evt) { + var variant = evt.detail.variant; + + if (variant) { + // Regular price + this.container.querySelector(selectors.price).innerHTML = theme.Currency.formatMoney(variant.price, theme.settings.moneyFormat); + + // Sale price, if necessary + if (variant.compare_at_price > variant.price) { + this.container.querySelector(selectors.comparePrice).innerHTML = theme.Currency.formatMoney(variant.compare_at_price, theme.settings.moneyFormat); + this.container.querySelector(selectors.priceWrapper).classList.remove(classes.hidden); + this.container.querySelector(selectors.price).classList.add(classes.onSale); + this.container.querySelector(selectors.comparePriceA11y).setAttribute('aria-hidden', 'false'); + this.container.querySelector(selectors.priceA11y).setAttribute('aria-hidden', 'false'); + } else { + this.container.querySelector(selectors.priceWrapper).classList.add(classes.hidden); + this.container.querySelector(selectors.price).classList.remove(classes.onSale); + this.container.querySelector(selectors.comparePriceA11y).setAttribute('aria-hidden', 'true'); + this.container.querySelector(selectors.priceA11y).setAttribute('aria-hidden', 'true'); + } + } + }, + + updateUnitPrice: function(evt) { + var variant = evt.detail.variant; + + if (variant && variant.unit_price) { + var price = theme.Currency.formatMoney(variant.unit_price, theme.settings.moneyFormat); + var base = theme.Currency.getBaseUnit(variant); + + var el = this.container.querySelector(selectors.unitWrapper); + el.innerHTML = price + '/' + base; + el.classList.remove(...[classes.hidden, classes.visuallyHide]); + } else { + this.container.querySelector(selectors.unitWrapper).classList.add(classes.visuallyHide); + } + }, + + imageSetArguments: function(variant) { + var variant = variant ? variant : (this.variants ? this.variants.currentVariant : null); + if (!variant) return; + + var setValue = this.settings.currentImageSet = this.getImageSetName(variant[this.settings.imageSetIndex]); + var set = this.settings.imageSetName + '_' + setValue; + + // Always start on index 0 + this.settings.currentSlideIndex = 0; + + // Return object that adds cellSelector to mainSliderArgs + return { + cellSelector: '[data-group="'+set+'"]', + imageSet: set, + initialIndex: this.settings.currentSlideIndex + } + }, + + updateImageSet: function(evt, reload) { + // If called directly, use current variant + var variant = (evt && evt.detail) ? evt.detail.variant : (this.variants ? this.variants.currentVariant : null); + if (!variant) { + return; + } + + var setValue = this.getImageSetName(variant[this.settings.imageSetIndex]); + var set = this.settings.imageSetName + '_' + setValue; + + // Already on the current image group + if (this.settings.currentImageSet === setValue) { + return; + } + + if (!theme.config.bpSmall && this.settings.stackedImages) { + // Hide all thumbs and main images that are part of group + this.container.querySelectorAll('[data-group]').forEach(el => { + el.classList.add(classes.hidden); + + // Show if in group + if (el.dataset.group && el.dataset.group === set) { + el.classList.remove(classes.hidden); + } + }); + + // reset stacked position + this.stackedImagePositions(); + AOS.refresh(); + this.settings.currentImageSet = setValue; + return; + } else { + // Reset image set visibility (required between breakpoints) + if (theme.config.bpSmall && this.settings.stackedImages) { + this.container.querySelectorAll('[data-group]').forEach(el => { + el.classList.remove(classes.hidden); + }); + } + + this.initProductSlider(variant); + } + }, + + // Show/hide thumbnails based on current image set + updateImageSetThumbs: function(set) { + if (!this.settings.stackedImages) { + this.thumbSlider.querySelectorAll('.product__thumb-item').forEach(thumb => { + thumb.classList.toggle(classes.hidden, thumb.dataset.group !== set); + }); + } + }, + + getImageSetName: function(string) { + return string.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/-$/, '').replace(/^-/, ''); + }, + + updateSku: function(evt) { + var variant = evt.detail.variant; + var newSku = ''; + var hideSku = true; + + if (variant) { + if (variant.sku) { + newSku = variant.sku; + hideSku = false; + } + + this.container.querySelectorAll(selectors.sku).forEach(el => { + el.classList.toggle(classes.hidden, hideSku); + el.textContent = newSku; + }); + } + }, + + updateInventory: function(evt) { + var variant = evt.detail.variant; + + // Hide stock if no inventory management or policy is continue + if (!variant || !variant.inventory_management || variant.inventory_policy === 'continue') { + this.toggleInventoryQuantity(variant, false); + this.toggleIncomingInventory(false); + return; + } + + if (variant.inventory_management === 'shopify' && window.inventories && window.inventories[this.productId]) { + var variantInventoryObject = window.inventories[this.productId][variant.id]; + + // Hide stock if policy is continue + if (variantInventoryObject.policy === 'continue') { + this.toggleInventoryQuantity(variant, false); + this.toggleIncomingInventory(false); + return; + } + + var quantity = variantInventoryObject.quantity; + var showInventory = true; + var showIncomingInventory = false; + + if (quantity <= 0 || quantity > this.settings.inventoryThreshold) { + showInventory = false; + } + + this.toggleInventoryQuantity(variant, showInventory, quantity); + + // Only show incoming inventory when: + // - inventory notice itself is hidden + // - have incoming inventory + // - current quantity is below theme setting threshold + if (!showInventory && variantInventoryObject.incoming === 'true' && quantity <= this.settings.inventoryThreshold) { + showIncomingInventory = true; + } + + this.toggleIncomingInventory(showIncomingInventory, variant.available, variantInventoryObject.next_incoming_date); + } + }, + + updateAvailability: function(evt) { + var variant = evt.detail.variant; + if (!variant) { + return; + } + + this.storeAvailability.updateContent(variant.id); + }, + + toggleInventoryQuantity: function(variant, show, qty) { + if (!this.settings.inventory) { + show = false; + } + + var el = this.container.querySelector(selectors.inventory); + var salesPoint = el.closest('.product-block'); + + if (parseInt(qty) <= parseInt(this.settings.inventoryThreshold)) { + el.parentNode.classList.add('inventory--low') + el.textContent = theme.strings.stockLabel.replace('[count]', qty); + } else { + el.parentNode.classList.remove('inventory--low') + el.textContent = theme.strings.inStockLabel; + } + + if (variant && variant.available) { + el.parentNode.classList.remove(classes.hidden); + if (salesPoint) { + salesPoint.classList.remove(classes.hidden); + } + } else { + el.parentNode.classList.add(classes.hidden); + if (salesPoint) { + salesPoint.classList.add(classes.hidden); + } + } + }, + + toggleIncomingInventory: function(show, available, date) { + var el = this.container.querySelector(selectors.incomingInventory); + var salesPoint = el.closest('.product-block'); + + if (!el) { + return; + } + + var textEl = el.querySelector('.js-incoming-text'); + + if (show) { + var string = available ? + theme.strings.willNotShipUntil.replace('[date]', date) : + theme.strings.willBeInStockAfter.replace('[date]', date); + + if (!date) { + string = theme.strings.waitingForStock; + } + + el.classList.remove(classes.hidden); + if (salesPoint) { + salesPoint.classList.remove(classes.hidden); + } + textEl.textContent = string; + } else { + el.classList.add(classes.hidden); + } + }, + + /*============================================================================ + Product videos + ==============================================================================*/ + videoSetup: function() { + var productVideos = this.mainSlider.querySelectorAll(selectors.productVideo); + + // Stop if there are 0 videos + if (!productVideos.length) { + return false; + } + + productVideos.forEach(vid => { + var type = vid.dataset.videoType; + if (type === 'youtube') { + this.initYoutubeVideo(vid); + } else if (type === 'mp4') { + this.initMp4Video(vid); + } + }); + }, + + initYoutubeVideo: function(div) { + videoObjects[div.id] = new theme.YouTube( + div.id, + { + videoId: div.dataset.youtubeId, + videoParent: selectors.videoParent, + autoplay: false, // will handle this in callback + style: div.dataset.videoStyle, + loop: div.dataset.videoLoop, + events: { + onReady: this.youtubePlayerReady.bind(this), + onStateChange: this.youtubePlayerStateChange.bind(this) + } + } + ); + }, + + // Comes from YouTube SDK + // Get iframe ID with evt.target.getIframe().id + // Then access product video players with videoObjects[id] + youtubePlayerReady: function(evt) { + var iframeId = evt.target.getIframe().id; + + if (!videoObjects[iframeId]) { + // No youtube player data + return; + } + + var obj = videoObjects[iframeId]; + var player = obj.videoPlayer; + + if (obj.options.style !== 'sound') { + player.mute(); + } + + obj.parent.classList.remove('loading'); + obj.parent.classList.add('loaded'); + + // If we have an element, it is in the visible/first slide, + // and is muted, play it + if (this._isFirstSlide(iframeId) && obj.options.style !== 'sound') { + player.playVideo(); + } + }, + + _isFirstSlide: function(id) { + return this.mainSlider.querySelector(selectors.startingSlide + ' ' + '#' + id); + }, + + youtubePlayerStateChange: function(evt) { + var iframeId = evt.target.getIframe().id; + var obj = videoObjects[iframeId]; + + switch (evt.data) { + case -1: // unstarted + // Handle low power state on iOS by checking if + // video is reset to unplayed after attempting to buffer + if (obj.attemptedToPlay) { + obj.parent.classList.add('video-interactable'); + } + break; + case 0: // ended + if (obj && obj.options.loop === 'true') { + obj.videoPlayer.playVideo(); + } + break; + case 3: // buffering + obj.attemptedToPlay = true; + break; + } + }, + + initMp4Video: function(div) { + videoObjects[div.id] = { + id: div.id, + type: 'mp4' + }; + + if (this._isFirstSlide(div.id)) { + this.playMp4Video(div.id); + } + }, + + stopVideos: function() { + for (var [id, vid] of Object.entries(videoObjects)) { + if (vid.videoPlayer) { + if (typeof vid.videoPlayer.stopVideo === 'function') { + vid.videoPlayer.stopVideo(); // YouTube player + } + } else if (vid.type === 'mp4') { + this.stopMp4Video(vid.id); // MP4 player + } + } + }, + + _getVideoType: function(video) { + return video.getAttribute('data-video-type'); + }, + + _getVideoDivId: function(video) { + return video.id; + }, + + playMp4Video: function(id) { + var player = this.container.querySelector('#' + id); + var playPromise = player.play(); + + player.setAttribute('controls', ''); + player.focus(); + + // When existing focus on the element, go back to thumbnail + player.addEventListener('focusout', this.returnFocusToThumbnail.bind(this)); + + if (playPromise !== undefined) { + playPromise.then(function() { + // Playing as expected + }) + .catch(function(error) { + // Likely low power mode on iOS, show controls + player.setAttribute('controls', ''); + player.closest(selectors.videoParent).setAttribute('data-video-style', 'unmuted'); + }); + } + }, + + stopMp4Video: function(id) { + var player = this.container.querySelector('#' + id); + player.removeEventListener('focusout', this.returnFocusToThumbnail.bind(this)); + if (player && typeof player.pause === 'function') { + player.removeAttribute('controls'); + player.pause(); + } + }, + + returnFocusToThumbnail: function(evt) { + // Only return focus to active thumbnail if relatedTarget + // is a thumbnail, otherwise user may have clicked elsewhere on the page + if (evt.relatedTarget && evt.relatedTarget.classList.contains('product__thumb')) { + var thumb = this.container.querySelector('.product__thumb-item[data-index="'+ this.settings.currentSlideIndex +'"] a'); + if (thumb) { + thumb.focus(); + } + } + }, + + /*============================================================================ + Product images + ==============================================================================*/ + preImageSetup: function() { + this.setImageSizes(); + this.initImageSwitch(); + this.initImageZoom(); + this.customMediaListners(); + this.initModelViewerLibraries(); + this.initShopifyXrLaunch(); + theme.collapsibles.init(this.container); + + if (window.SPR) {SPR.initDomEls();SPR.loadBadges()} + }, + + initProductSlider: function(variant) { + // Stop if only a single image, but add active class to first slide + if (this.mainSlider.querySelectorAll(selectors.slide).length <= 1) { + var slide = this.mainSlider.querySelector(selectors.slide); + if (slide) { + slide.classList.add('is-selected'); + } + return; + } + + this.settings.has3d = this.container.querySelectorAll(selectors.media).length; + + if (this.settings.videoStyle !== 'muted') { + theme.videoModal(true); + } + + // If variant argument exists, slideshow is reinitializing because of the + // image set feature enabled and switching to a new group. + // currentSlideIndex + if (!variant) { + var activeSlide = this.mainSlider.querySelector(selectors.startingSlide); + this.settings.currentSlideIndex = this._slideIndex(activeSlide); + } + + var mainSliderArgs = { + adaptiveHeight: true, + avoidReflow: true, + initialIndex: this.settings.currentSlideIndex, + childNav: this.thumbSlider, + childNavScroller: this.container.querySelector(selectors.thumbScroller), + childVertical: this.thumbSlider.dataset.position === 'beside', + fade: this.settings.stackedImages ? false : true, + pageDots: true, // mobile only with CSS + wrapAround: true, + callbacks: { + onInit: this.onSliderInit.bind(this), + onChange: this.onSlideChange.bind(this) + } + }; + + // Override default settings if image set feature enabled + if (this.settings.imageSetName) { + var imageSetArgs = this.imageSetArguments(variant); + mainSliderArgs = Object.assign({}, mainSliderArgs, imageSetArgs); + this.updateImageSetThumbs(mainSliderArgs.imageSet); + } + + this.initSliders(mainSliderArgs); + + // Re-init slider when a breakpoint is hit + document.addEventListener('matchSmall', function() { + this.initSliders(mainSliderArgs, true); + }.bind(this)); + document.addEventListener('unmatchSmall', function() { + this.initSliders(mainSliderArgs, true); + }.bind(this)); + }, + + onSliderInit: function(slide) { + // If slider is initialized with image set feature active, + // initialize any videos/media when they are first slide + if (this.settings.imageSetName) { + this.prepMediaOnSlide(slide); + } + + // If height is 0, trigger resize to force height recalculation + var height = this.mainSlider.offsetHeight; + if (height === 0) { + setTimeout(function() { + window.dispatchEvent(new Event('resize')); + }, 250); + } + }, + + onSlideChange: function(index) { + if (!this.flickity) return; + + var prevSlide = this.mainSlider.querySelector('.product-main-slide[data-index="'+this.settings.currentSlideIndex+'"]'); + + // If imageSetName exists, use a more specific selector + var nextSlide = this.settings.imageSetName ? + this.mainSlider.querySelectorAll('.flickity-slider .product-main-slide')[index] : + this.mainSlider.querySelector('.product-main-slide[data-index="'+index+'"]'); + + prevSlide.setAttribute('tabindex', '-1'); + nextSlide.setAttribute('tabindex', 0); + + // Pause any existing slide video/media + this.stopMediaOnSlide(prevSlide); + + // Prep next slide video/media + this.prepMediaOnSlide(nextSlide); + + // Update current slider index + this.settings.currentSlideIndex = index; + }, + + stopMediaOnSlide(slide) { + // Stop existing video + var video = slide.querySelector(selectors.productVideo); + if (video) { + var videoType = this._getVideoType(video); + var videoId = this._getVideoDivId(video); + if (videoType === 'youtube') { + if (videoObjects[videoId].videoPlayer) { + videoObjects[videoId].videoPlayer.stopVideo(); + return; + } + } else if (videoType === 'mp4') { + this.stopMp4Video(videoId); + return; + } + } + + // Stop existing media + var currentMedia = slide.querySelector(selectors.media); + if (currentMedia) { + currentMedia.dispatchEvent( + new CustomEvent('mediaHidden', { + bubbles: true, + cancelable: true + }) + ); + } + }, + + prepMediaOnSlide(slide) { + var video = slide.querySelector(selectors.productVideo); + if (video) { + this.flickity.reposition(); + var videoType = this._getVideoType(video); + var videoId = this._getVideoDivId(video); + if (videoType === 'youtube') { + if (videoObjects[videoId].videoPlayer && videoObjects[videoId].options.style !== 'sound') { + videoObjects[videoId].videoPlayer.playVideo(); + return; + } + } else if (videoType === 'mp4') { + this.playMp4Video(videoId); + } + } + + var nextMedia = slide.querySelector(selectors.media); + if (nextMedia) { + nextMedia.dispatchEvent( + new CustomEvent('mediaVisible', { + bubbles: true, + cancelable: true + }) + ); + slide.querySelector('.shopify-model-viewer-ui__button').setAttribute('tabindex', 0); + slide.querySelector('.product-single__close-media').setAttribute('tabindex', 0); + } + + this.hideZoomOverlay(nextMedia); + }, + + _slideIndex: function(el) { + return el.getAttribute('data-index'); + }, + + initImageZoom: function() { + var container = this.container.querySelector(selectors.imageContainer); + + if (!container) { + return; + } + + var imageZoom = new theme.Photoswipe(container, this.sectionId); + + container.addEventListener('photoswipe:afterChange', function(evt) { + if (this.flickity) { + this.flickity.goToSlide(evt.detail.index); + } + }.bind(this)); + }, + + getThumbIndex: function(target) { + return target.dataset.index; + }, + + setImageSizes: function() { + if (!this.settings.hasImages) { + return; + } + + // Get srcset image src, works on most modern browsers + // otherwise defaults to settings.imageSize + var currentImage = this.firstProductImage.currentSrc; + + if (currentImage) { + this.settings.imageSize = theme.Images.imageSize(currentImage); + } + }, + + updateVariantImage: function(evt) { + var variant = evt.detail.variant; + var sizedImgUrl = theme.Images.getSizedImageUrl(variant.featured_media.preview_image.src, this.settings.imageSize); + + var newImage = this.container.querySelector('.product-main-slide[data-id="' + variant.featured_media.id + '"]'); + var imageIndex = this.getThumbIndex(newImage); + + // No image, bail + if (typeof imageIndex === 'undefined') { + return; + } + + if (!theme.config.bpSmall && this.settings.stackedImages) { + this.stackedScrollTo(imageIndex); + } else { + if (this.flickity) { + this.flickity.goToSlide(imageIndex); + } + } + }, + + initImageSwitch: function() { + var thumbs = this.container.querySelectorAll(selectors.photoThumbs); + if (!thumbs.length) { + return; + } + + thumbs.forEach(thumb => { + thumb.addEventListener('click', function(evt) { + evt.preventDefault(); + if (!theme.config.bpSmall && this.settings.stackedImages) { + var index = this.getThumbIndex(thumb); + this.stackedScrollTo(index); + } + }.bind(this)); + + thumb.addEventListener('focus', function(evt) { + var index = this.getThumbIndex(thumb); + if (!theme.config.bpSmall) { + if (this.settings.stackedImages) { + this.container.querySelectorAll(selectors.photoThumbItem).forEach(el => { + el.classList.remove(classes.thumbActive); + }); + this.stackedScrollTo(index); + } else { + if (this.flickity) { + this.flickity.goToSlide(index); + } + } + } + }.bind(this)); + + thumb.addEventListener('keydown', function(evt) { + if (evt.keyCode === 13) { + this.container.querySelector(selectors.currentSlide).focus(); + } + }.bind(this)); + }); + }, + + stackedImagesInit: function() { + window.off(this.namespaceImages); + this.stackedImagePositions(); + + if (this.inModal) { + // Slight delay in modal to accommodate loading videos + setTimeout(function() { + this.stackedActive(this.settings.stackedCurrent); + }.bind(this), 1000); + } else { + this.stackedActive(this.settings.stackedCurrent); + } + + // update image positions on resize + window.on('resize' + this.namespaceImages, theme.utils.debounce(200, this.stackedImagePositions.bind(this))); + + // scroll listener to mark active thumbnail + window.on('scroll' + this.namespaceImages, theme.utils.throttle(200, function() { + var goal = window.scrollY; + var closest = this.settings.stackedImagePositions.reduce(function(prev, curr) { + return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev); + }); + var index = this.settings.stackedImagePositions.indexOf(closest); + if (this.settings.stackedCurrent !== index) { + this.stackedActive(index); + } + }.bind(this))); + }, + + stackedImagePositions: function() { + var positions = []; + this.container.querySelectorAll(selectors.photo).forEach(el => { + positions.push(Math.round(el.offsetTop)) + }); + this.settings.stackedImagePositions = positions; + }, + + stackedScrollTo: function(index) { + var img = this.container.querySelectorAll(selectors.photo)[index]; + if (!img) { + return; + } + + // Scroll to top of large image + var pos = img.offsetTop; + + window.scroll({ + top: pos, + behavior: 'smooth' + }); + }, + + stackedActive: function(index) { + this.container.querySelectorAll(selectors.photoThumbItem).forEach(el => { + el.classList.remove(classes.thumbActive); + el.classList.remove('is-active'); + }); + + var thumb = this.container.querySelectorAll(selectors.photoThumbItem)[index]; + if (thumb) { + thumb.classList.add(classes.thumbActive); + this.settings.currentSlideIndex = thumb.dataset.index; + } + + if (this.settings.hasVideos) { + this.stopVideos(); + + var video = this.container.querySelectorAll(selectors.photo)[index].querySelector('.product__video'); + + if (video) { + var videoType = this._getVideoType(video); + var videoId = this._getVideoDivId(video); + if (videoType === 'youtube') { + if (videoObjects[videoId].videoPlayer && videoObjects[videoId].options.style !== 'sound') { + videoObjects[videoId].videoPlayer.playVideo(); + return; + } + } else if (videoType === 'mp4') { + this.playMp4Video(videoId); + } + } + } + + if (this.settings.has3d) { + var allMedia = this.container.querySelectorAll(selectors.media); + if (allMedia.length) { + allMedia.forEach(el => { + el.dispatchEvent( + new CustomEvent('mediaHidden') + ); + }); + } + + var media = this.container.querySelectorAll(selectors.photo)[index].querySelector(selectors.media); + + if (media) { + media.dispatchEvent( + new CustomEvent('mediaVisible') + ); + } + } + + this.settings.stackedCurrent = index; + }, + + initSliders: function(args, reload) { + this.destroyImageCarousels(); + var imageContainer = this.container.querySelector(selectors.imageContainer); + + if (!theme.config.bpSmall && this.settings.stackedImages) { + this.stackedImagesInit(); + imageContainer.setAttribute('data-has-slideshow', 'false'); + } else { + this.flickity = new theme.Slideshow(this.mainSlider, args); + imageContainer.setAttribute('data-has-slideshow', 'true'); + } + }, + + destroyImageCarousels: function() { + if (this.flickity && typeof this.flickity.destroy === 'function') { + this.flickity.destroy(); + } + }, + + hideZoomOverlay: function(hide) { + var btn = this.container.querySelector(selectors.zoomButton); + if (hide) { + if (btn) { + btn.classList.add(classes.hidden); + } + } else { + if (btn) { + btn.classList.remove(classes.hidden); + } + } + }, + + /*============================================================================ + Products when in quick view modal + ==============================================================================*/ + openModalProduct: function() { + var initialized = false; + + if (!this.settings.modalInit) { + this.blocksHolder = this.container.querySelector(selectors.blocksHolder); + + var url = this.blocksHolder.dataset.url; + + fetch(url).then(function(response) { + return response.text(); + }).then(function(html) { + var parser = new DOMParser(); + var doc = parser.parseFromString(html, 'text/html'); + var blocks = doc.querySelector(selectors.blocks); + + // Because the same product could be opened in quick view + // on the page we load the form elements from, we need to + // update any `id`, `for`, and `form` attributes + blocks.querySelectorAll('[id]').forEach(el => { + // Update input `id` + var val = el.getAttribute('id'); + el.setAttribute('id', val + '-modal'); + + // Update related label if it exists + var label = blocks.querySelector(`[for="${val}"]`); + if (label) { + label.setAttribute('for', val + '-modal'); + } + + // Update any collapsible elements + var collapsibleTrigger = blocks.querySelector(`[aria-controls="${val}"]`); + if (collapsibleTrigger) { + collapsibleTrigger.setAttribute('aria-controls', val + '-modal'); + } + }); + + // Update any elements with `form` attribute. + // Form element already has `-modal` appended + var form = blocks.querySelector(selectors.formContainer); + var formId = form.getAttribute('id'); + blocks.querySelectorAll('[form]').forEach(el => { + el.setAttribute('form', formId); + }); + + this.blocksHolder.innerHTML = ''; + this.blocksHolder.append(blocks); + + this.formSetup(); + this.updateModalProductInventory(); + + if (Shopify && Shopify.PaymentButton) { + Shopify.PaymentButton.init(); + } + + // Re-hook up collapsible box triggers + theme.collapsibles.init(this.container); + + // Append sections to page + var allSections = doc.querySelectorAll('#MainContent .shopify-section:not(.shopify-section__product)'); + if (allSections.length) { + this.loadProductSections(allSections); + } + + var socialDiv = doc.querySelector('.index-section.social-section'); + if (socialDiv) { + this.loadSocialSection(socialDiv); + } + + if (window.SPR) { + SPR.initDomEls();SPR.loadBadges(); + } + + theme.sections.loadSubSections(this.modal); + + document.dispatchEvent(new CustomEvent('quickview:loaded', { + detail: { + productId: this.sectionId + } + })); + + this.preImageSetup(); + this.initProductSlider(); + this.settings.modalInit = true; + }.bind(this)); + } else { + initialized = true; + if (!theme.config.bpSmall && this.settings.stackedImages) { + this.stackedActive(0); + } + } + + document.dispatchEvent(new CustomEvent('quickview:open', { + detail: { + initialized: initialized, + productId: this.sectionId + } + })); + }, + + // Recommended products and quick view load via JS and don't add variant inventory to the + // global variable that we later check. This function scrapes a data div + // to get that info and manually add the values. + updateModalProductInventory: function() { + window.inventories = window.inventories || {}; + this.container.querySelectorAll('.js-product-inventory-data').forEach(el => { + var productId = el.dataset.productId; + window.inventories[productId] = {}; + + el.querySelectorAll('.js-variant-inventory-data').forEach(el => { + window.inventories[productId][el.dataset.id] = { + 'quantity': el.dataset.quantity, + 'policy': el.dataset.policy, + 'incoming': el.dataset.incoming, + 'next_incoming_date': el.dataset.date + } + }); + }); + }, + + closeModalProduct: function() { + this.stopVideos(); + this.unloadProductSections(); + this.unloadSocialSection(); + this.settings.modalInit = false; + window.off(this.namespace); + }, + + unloadProductSections: function() { + var holder = document.querySelector('#ProductSectionsHolder-' + this.productId); + + if (holder) { + holder.innerHTML = ''; + } + }, + + loadProductSections: function(content) { + var holder = document.querySelector('#ProductSectionsHolder-' + this.productId); + if (holder) { + holder.innerHTML = ''; + holder.append(...content); + + // Re-hook up collapsible box triggers + theme.collapsibles.init(holder); + } + }, + + loadSocialSection: function(content) { + var holder = document.querySelector('#SocialSectionHolder-' + this.productId); + if (holder) { + holder.replaceWith(content); + } + }, + + unloadSocialSection: function() { + var holder = document.querySelector('#SocialSectionHolder-' + this.productId); + if (holder) { + holder.innerHTML = ''; + } + }, + + /*============================================================================ + Product media (3D) + ==============================================================================*/ + initModelViewerLibraries: function() { + var modelViewerElements = this.container.querySelectorAll(selectors.media); + if (modelViewerElements.length < 1) return; + + theme.ProductMedia.init(modelViewerElements, this.sectionId); + }, + + initShopifyXrLaunch: function() { + document.addEventListener( + 'shopify_xr_launch', + function() { + var currentMedia = this.container.querySelector( + selectors.productMediaWrapper + + ':not(.' + + self.classes.hidden + + ')' + ); + currentMedia.dispatchEvent( + new CustomEvent('xrLaunch', { + bubbles: true, + cancelable: true + }) + ); + }.bind(this) + ); + }, + + customMediaListners: function() { + this.container.querySelectorAll(selectors.closeMedia).forEach(el => { + el.addEventListener('click', function() { + if (this.settings.stackedImages) { + var slide = this.mainSlider.querySelector('.product-main-slide[data-index="'+this.settings.currentSlideIndex+'"]'); + } else { + var slide = this.mainSlider.querySelector(selectors.currentSlide); + } + + var media = slide.querySelector(selectors.media); + if (media) { + media.dispatchEvent( + new CustomEvent('mediaHidden', { + bubbles: true, + cancelable: true + }) + ); + } + }.bind(this)) + }); + + + var modelViewers = this.container.querySelectorAll('model-viewer'); + if (modelViewers.length) { + modelViewers.forEach(el => { + el.addEventListener('shopify_model_viewer_ui_toggle_play', function(evt) { + this.mediaLoaded(evt); + }.bind(this)); + + el.addEventListener('shopify_model_viewer_ui_toggle_pause', function(evt) { + this.mediaUnloaded(evt); + }.bind(this)); + }); + } + }, + + mediaLoaded: function(evt) { + this.container.querySelectorAll(selectors.closeMedia).forEach(el => { + el.classList.remove(classes.hidden); + }); + + if (this.flickity) { + this.flickity.setDraggable(false); + } + }, + + mediaUnloaded: function(evt) { + this.container.querySelectorAll(selectors.closeMedia).forEach(el => { + el.classList.add(classes.hidden); + }); + + if (this.flickity) { + this.flickity.setDraggable(true); + } + }, + + onUnload: function() { + window.off(this.namespace); + this.container.off(this.namespace); + this.destroyImageCarousels(); + theme.ProductMedia.removeSectionModels(this.sectionId); + + if (AOS) { + AOS.refresh(); + } + } + }); + + return Product; + })(); + + theme.Blog = (function() { + + function Blog(container) { + this.tagFilters(); + } + + Blog.prototype = Object.assign({}, Blog.prototype, { + tagFilters: function() { + var filterBy = document.getElementById('BlogTagFilter'); + + if (!filterBy) { + return; + } + + filterBy.addEventListener('change', function() { + location.href = filterBy.value; + }); + } + }); + + return Blog; + })(); + + theme.HeaderSection = (function() { + function HeaderSection(container) { + this.initDrawers(); + theme.headerNav.init(); + theme.slideNav.init(); + + // Reload any slideshow when the header is reloaded to make sure the + // sticky header works as expected (it can be anywhere in the sections.instance array) + if (Shopify && Shopify.designMode) { + theme.sections.reinit('slideshow-section'); + + // Set a timer to resize the header in case the logo changes size + setTimeout(function() { + window.dispatchEvent(new Event('resize')); + }, 500); + } + } + + HeaderSection.prototype = Object.assign({}, HeaderSection.prototype, { + initDrawers: function() { + if (theme.settings.cartType === 'drawer') { + if (!document.body.classList.contains('template-cart')) { + new theme.CartDrawer(); + } + } + }, + + onUnload: function() { + theme.headerNav.unload(); + theme.slideNav.unload(); + } + }); + + return HeaderSection; + })(); + + theme.FooterSection = (function() { + + var selectors = { + locale: '[data-disclosure-locale]', + currency: '[data-disclosure-currency]' + }; + + function FooterSection(container) { + this.container = container; + this.localeDisclosure = null; + this.currencyDisclosure = null; + + theme.initWhenVisible({ + element: this.container, + callback: this.init.bind(this), + threshold: 1000 + }); + } + + FooterSection.prototype = Object.assign({}, FooterSection.prototype, { + init: function() { + var localeEl = this.container.querySelector(selectors.locale); + var currencyEl = this.container.querySelector(selectors.currency); + + if (localeEl) { + this.localeDisclosure = new theme.Disclosure(localeEl); + } + + if (currencyEl) { + this.currencyDisclosure = new theme.Disclosure(currencyEl); + } + }, + onUnload: function() { + if (this.localeDisclosure) { + this.localeDisclosure.destroy(); + } + + if (this.currencyDisclosure) { + this.currencyDisclosure.destroy(); + } + } + }); + + return FooterSection; + })(); + + theme.Collection = (function() { + var isAnimating = false; + + var selectors = { + sortSelect: '#SortBy' + }; + + function Collection(container) { + this.container = container; + this.sectionId = container.getAttribute('data-section-id') + this.namespace = '.collection-' + this.sectionId; + + var hasHeroImage = document.querySelector('.collection-hero'); + + if (hasHeroImage) { + this.checkIfNeedReload(); + } else if (theme.settings.overlayHeader) { + theme.headerNav.disableOverlayHeader(); + } + + this.init(); + } + + Collection.prototype = Object.assign({}, Collection.prototype, { + init: function() { + // init is called on load and when tags are selected + this.container = this.container; + this.sectionId = this.container.getAttribute('data-section-id') + + this.sortSelect = document.querySelector(selectors.sortSelect); + if (this.sortSelect) { + this.sortSelect.on('change', this.onSortChange.bind(this)); + this.defaultSort = this.getDefaultSortValue(); + } + + new theme.HoverProductGrid(this.container); + + this.sortTags(); + this.bindBackButton(); + }, + + getSortValue: function() { + return this.sortSelect.value || this.defaultSort; + }, + + getDefaultSortValue: function() { + return this.sortSelect.dataset.sortBy; + }, + + onSortChange: function() { + this.queryParams = new URLSearchParams(window.location.search); + + this.queryParams.set('sort_by', this.getSortValue()); + this.queryParams.delete('page'); // Delete if it exists + + window.location.search = this.queryParams.toString(); + }, + + sortTags: function() { + var sortTags = document.getElementById('SortTags'); + + if (!sortTags) { + return; + } + + sortTags.on('change', function(evt) { + location.href = sortTags.value; + }); + }, + + bindBackButton: function() { + window.off('popstate' + this.namespace); + window.on('popstate' + this.namespace, (state) => { + if (state) { + // Bail if it's a hash link + if (location.href.indexOf(location.pathname) >= 0) { + return true; + } + + const newUrl = new URL(window.location.href); + + theme.CollectionAjaxFilter(newUrl, false).then(() => { + isAnimating = false; + this.initPriceRange(); + }); + } + }); + }, + + // A liquid variable in the header needs a full page refresh + // if the collection header hero image setting is enabled + // and the header is set to sticky. Only necessary in the editor. + checkIfNeedReload: function() { + if (!Shopify.designMode) { + return; + } + + if (!theme.settings.overlayHeader) { + return; + } + + var headerWrapper = document.querySelector('.header-wrapper'); + if (!headerWrapper.classList.contains('header-wrapper--overlay')) { + location.reload(); + } + }, + + forceReload: function() { + this.onUnload(); + this.init(); + }, + + onUnload: function() { + window.off(this.namespace); + this.container.off(this.namespace); + } + + }); + + return Collection; + })(); + + theme.CollectionFilter = (function() { + var isAnimating = false; + + var selectors = { + activeTagList: '.tag-list--active-tags', + activeTags: '.tag-list a', + filters: '.collection-filter', + priceRange: '.price-range', + tags: '.tag-list input', + tagsForm: '.filter-form', + }; + + var classes = { + activeTag: 'tag--active', + removeTagParent: 'tag--remove' + }; + + function CollectionFilter(container) { + this.container = container; + this.sectionId = container.getAttribute('data-section-id'); + this.namespace = '.collection-filter-' + this.sectionId; + + this.init(); + } + + CollectionFilter.prototype = Object.assign({}, CollectionFilter.prototype, { + init: function() { + document.querySelectorAll(selectors.activeTags).forEach(tag => { + tag.on('click' + this.namespace, this.onTagClick.bind(this)); + }); + + document.querySelectorAll(selectors.tagsForm).forEach(form => { + form.addEventListener('input', this.onFormSubmit.bind(this)); + }); + + this.initPriceRange(); + }, + + initPriceRange: function() { + const priceRangeEls = document.querySelectorAll(selectors.priceRange) + priceRangeEls.forEach((el) => new theme.PriceRange(el, { + // onChange passes in formData + onChange: this.renderFromFormData.bind(this), + })); + }, + + onTagClick: function(evt) { + var tag = evt.currentTarget; + + if (tag.classList.contains('no-ajax')) { + return; + } + + evt.preventDefault(); + if (isAnimating) { + return; + } + + isAnimating = true; + + const parent = tag.parentNode; + const newUrl = new URL(tag.href); + + this.renderActiveTag(parent, tag); + this.startLoading(); + this.renderCollectionPage(newUrl.searchParams); + }, + + onFormSubmit: function(evt) { + const tag = evt.target; + + // Do not ajax-load collection links + if (tag.classList.contains('no-ajax')) { + return; + } + + evt.preventDefault(); + if (isAnimating) { + return; + } + + isAnimating = true; + + const parent = tag.closest('li'); + const formEl = tag.closest('form'); + const formData = new FormData(formEl); + + this.renderActiveTag(parent, tag); + this.startLoading(); + this.renderFromFormData(formData); + }, + + renderCollectionPage: function(searchParams) { + theme.CollectionAjaxFilter(searchParams) + .then(() => { + isAnimating = false; + this.initPriceRange(); + document.dispatchEvent(new CustomEvent('collection:reloaded')); + }); + }, + + renderFromFormData: function(formData) { + const searchParams = new URLSearchParams(formData); + this.renderCollectionPage(searchParams); + }, + + renderActiveTag: function(parent, el) { + const textEl = parent.querySelector('.tag__text'); + + if (parent.classList.contains(classes.activeTag)) { + parent.classList.remove(classes.activeTag); + } else { + // If adding a tag, show new tag right away. + // Otherwise, remove it before ajax finishes + if (el.closest('li').classList.contains(classes.removeTagParent)) { + parent.remove(); + } else { + const newTag = document.createElement('li'); + newTag.classList.add(...['tag', 'tag--remove']); + const tagLink = document.createElement('a'); + tagLink.classList.add(...['btn', 'btn--small', 'js-no-transition']); + tagLink.innerText = textEl.innerText; + + newTag.appendChild(tagLink); + + const tagList = document.querySelector(selectors.activeTagList); + if (tagList) tagList.append(newTag); + } + + parent.classList.add(classes.activeTag); + } + }, + + startLoading: function() { + document.querySelectorAll('.grid-product').forEach(el => { + el.classList.add('unload'); + }); + }, + + forceReload: function() { + this.init(); + } + }); + + return CollectionFilter; + })(); + + theme.CollectionAjaxFilter = function (searchParams, updateURLHash = true) { + const selectors = { + filterWrapperId: 'CollectionFiltersSection', + productWrapperId: 'CollectionGrid', + productContentId: 'CollectionAjaxContent', + }; + const filterWrapper = document.getElementById(selectors.filterWrapperId); + const productWrapper = document.getElementById(selectors.productWrapperId); + + const ajaxRenderer = new theme.AjaxRenderer({ + sections: [ + { + sectionId: filterWrapper.dataset.sectionId, + nodeId: selectors.filterWrapperId, + }, + { + sectionId: productWrapper.dataset.sectionId, + nodeId: selectors.productContentId, + }, + ] + }); + + return ajaxRenderer + .renderPage(window.location.pathname, searchParams, updateURLHash) + .then(() => { + theme.sections.reinit('collection-grid'); + theme.sections.reinit('collection-filter'); + + const newProductContent = document.getElementById( + selectors.productContentId, + ); + theme.reinitProductGridItem(newProductContent); + theme.QuickShopScreens.reInit(newProductContent); + }); + }; + + // Handles multiple section interactions: + // - Featured collection slider + // - Featured collection grid (hover product sliders only) + // - Related products + // - Social reviews + // + // Options: + // - scrollable: overflow div with arrows + // - infinite pagination: only in slider format + + theme.FeaturedCollection = (function() { + var selectors = { + scrollWrap: '[data-pagination-wrapper]', + productContainer: '[data-product-container]', + collectionProductContainer: '[data-collection-container]', + product: '[data-product-grid]', + arrows: '[data-arrow]' + }; + + var classes = { + loading: 'collection-loading', + arrowLeft: 'overflow-scroller__arrow--left', + disableScrollLeft: 'overflow-scroller--disable-left', + disableScrollRight: 'overflow-scroller--disable-right' + }; + + function FeaturedCollection(container) { + this.container = container; + this.sectionId = this.container.getAttribute('data-section-id'); + this.scrollWrap = this.container.querySelector(selectors.scrollWrap); + this.scrollArrows = this.container.querySelectorAll(selectors.arrows); + this.namespace = '.featured-collection-' + this.sectionId; + + this.options = { + scrollable: this.container.dataset.scrollable, + paginate: this.container.dataset.paginate + }; + + var paginateBy = this.container.dataset.paginateBy; + var productCount = this.container.dataset.collectionCount; + + this.settings = { + url: this.container.dataset.collectionUrl, + page: 1, + pageCount: this.options.paginate ? Math.ceil(productCount / paginateBy) : 0, + itemsToScroll: 3, + gridItemWidth: this.container.dataset.gridItemWidth + }; + + this.state = { + isInit: false, + loading: false, + scrollerEnabled: false, + loadedAllProducts: false, + scrollable: this.options.scrollable, + scrollInterval: null, + scrollSpeed: 3 // smaller is faster + }; + + this.sizing = { + scroller: 0, + itemWidth: 0 + }; + + theme.initWhenVisible({ + element: this.container, + callback: this.init.bind(this) + }); + } + + FeaturedCollection.prototype = Object.assign({}, FeaturedCollection.prototype, { + init: function() { + new theme.HoverProductGrid(this.container); + + if (!this.state.scrollable) { + return; + } + + this.sizing = this.getScrollWidths(); + + window.on('resize' + this.namespace, theme.utils.debounce(200, this.handleResize.bind(this))); + + this.toggleScrollListener(this.state.scrollable); + this.arrowListeners(this.state.scrollable); + + this.state.isInit = true; + }, + + reInit: function() { + new theme.HoverProductGrid(this.container); + + if (this.state.scrollable) { + this.sizing = this.getScrollWidths(); + this.toggleScrollListener(this.state.scrollable); + } + + theme.reinitProductGridItem(); + }, + + loadingState: function(loading) { + this.state.loading = loading; + this.container.classList.toggle(classes.loading, loading); + }, + + getScrollWidths: function() { + var container = this.scrollWrap.offsetWidth; + var scroller = this.scrollWrap.scrollWidth; + var item = this.scrollWrap.querySelector('.grid__item'); + var itemWidth = item.offsetWidth; + + // First time this runs there is a 200px CSS animation that JS doesn't + // take into account, so manually subtract from the scroller width + if (!this.state.isInit) { + scroller = scroller - 200; + } + + if (scroller <= container) { + this.disableArrow(null, true); + } + + return { + scroller: scroller, + scrollSize: scroller - container, + itemWidth: itemWidth + }; + }, + + handleResize: function() { + if (this.state.scrollable) { + this.sizing = this.getScrollWidths(); + } + this.toggleScrollListener(this.state.scrollable); + this.arrowListeners(this.state.scrollable); + }, + + toggleScrollListener: function(enable) { + if (enable) { + if (this.state.scrollerEnabled) { return; } + this.scrollWrap.on('scroll' + this.namespace, theme.utils.throttle(250, this.scrollCheck.bind(this))); + this.state.scrollerEnabled = true; + } else { + this.scrollWrap.off('scroll' + this.namespace); + this.state.scrollerEnabled = false; + } + }, + + scrollCheck: function(evt) { + if (this.state.loading) { + this.toggleScrollListener(false); + return; + } + + // If a value is 0, we need to recalculate starting points + if (this.sizing.scrollSize === 0) { + this.sizing = this.getScrollWidths(); + } + + var scrollLeft = evt.currentTarget.scrollLeft ? evt.currentTarget.scrollLeft : 0; + var percent = Math.floor(scrollLeft / this.sizing.scrollSize * 100); + var fromEnd = this.sizing.scrollSize - scrollLeft; + + if (this.options.paginate) { + if (!this.state.loadedAllProducts && percent > 50) { + this.getNewProducts(); + } + } + + if (!percent) { + percent = 0; + } + + this.disableArrow(percent); + }, + + arrowListeners: function(enable) { + this.scrollArrows.forEach(arrow => { + arrow.off('click' + this.namespace); + if (enable) { + arrow.classList.remove('hide'); + arrow.on('click' + this.namespace, this.arrowScroll.bind(this)); + } else { + arrow.classList.add('hide'); + } + }); + }, + + arrowScroll: function(evt) { + var direction = evt.currentTarget.classList.contains(classes.arrowLeft) ? 'left' : 'right'; + var iteration = theme.config.bpSmall ? 1 : 2; + + if (evt.type === 'mouseenter') { + this.state.scrollInterval = setInterval(function(){ + var currentPos = this.scrollWrap.scrollLeft; + var newPos = direction === 'left' ? (currentPos - iteration) : (currentPos + iteration); + this.scrollWrap.scrollLeft = newPos; + }.bind(this), this.state.scrollSpeed); + } else if (evt.type === 'mouseleave') { + clearInterval(this.state.scrollInterval); + } else if (evt.type === 'click') { + clearInterval(this.state.scrollInterval); + var currentPos = this.scrollWrap.scrollLeft; + var scrollAmount = this.sizing.itemWidth * this.settings.itemsToScroll; + var newPos = direction === 'left' ? (currentPos - scrollAmount) : (currentPos + scrollAmount); + + this.scrollWrap.scroll({ + left: newPos, + behavior: 'smooth' + }); + } + + if (newPos <= 0) { + this.disableArrow(newPos); + } + }, + + disableArrow: function(pos, all) { + this.scrollArrows.forEach(arrow => { + arrow.classList.remove(classes.disableScrollRight); + arrow.classList.remove(classes.disableScrollLeft); + + if (all) { + arrow.classList.add(classes.disableScrollRight); + arrow.classList.add(classes.disableScrollLeft); + return; + } + + // Max left scroll + if (pos <= 10) { + arrow.classList.add(classes.disableScrollLeft); + return; + } + + // Max right scroll + if (pos >= 96) { + arrow.classList.add(classes.disableScrollRight); + return; + } + }); + }, + + getNewProducts: function() { + this.loadingState(true); + var newPage = this.settings.page + 1; + var itemWidth = this.settings.gridItemWidth; + + // No more pages, disable features + if (newPage > this.settings.pageCount) { + this.loadingState(false); + this.state.loadedAllProducts = true; + return; + } + + // URL not defined (recommended products), disable loading + if (this.settings.url === undefined) { + this.loadingState(false); + this.state.loadedAllProducts = true; + return; + } + + var newUrl = this.settings.url + '?page=' + (newPage); + + fetch(newUrl).then(function(response) { + return response.text(); + }).then(function(html) { + var parser = new DOMParser(); + var doc = parser.parseFromString(html, 'text/html'); + var newProducts = doc.querySelectorAll(selectors.collectionProductContainer + ' .grid-product'); + var fragment = document.createDocumentFragment(); + + newProducts.forEach(prod => { + prod.classList.add(itemWidth); + fragment.appendChild(prod); + }); + + this.container.querySelector(selectors.productContainer).appendChild(fragment); + + this.ajaxSuccess(); + }.bind(this)); + }, + + ajaxSuccess: function() { + this.loadingState(false); + this.settings.page = this.settings.page + 1; + this.reInit(); + }, + + forceReload: function() { + this.onUnload(); + this.init(); + }, + + // Only runs in the editor while a user is activating. + // Rearranges quick shop modals to fix potentially broken layout + onLoad: function() { + theme.QuickShopScreens.reInit(this.container); + }, + + onUnload: function() { + window.off(this.namespace); + window.dispatchEvent(new Event('resize')); + this.scrollWrap.off(this.namespace); + theme.QuickShopScreens.unload(this.container); + } + + }); + + return FeaturedCollection; + })(); + + theme.Testimonials = (function() { + var defaults = { + adaptiveHeight: false, + avoidReflow: true, + pageDots: true, + prevNextButtons: false, + wrapAround: true + }; + + function Testimonials(container) { + this.container = container; + var sectionId = container.getAttribute('data-section-id') + this.slideshow = container.querySelector('#Testimonials-' + sectionId); + + if (!this.slideshow) { return } + + theme.initWhenVisible({ + element: this.container, + callback: this.init.bind(this), + threshold: 600 + }); + } + + Testimonials.prototype = Object.assign({}, Testimonials.prototype, { + init: function(obj, args) { + // Do not wrap when only a few blocks + if (this.slideshow.dataset.count <= 3) { + defaults.wrapAround = false; + defaults.contain = true; + } + + this.flickity = new theme.Slideshow(this.slideshow, defaults); + this.flickity.resize(); + }, + + onUnload: function() { + if (this.flickity && typeof this.flickity.destroy === 'function') { + this.flickity.destroy(); + } + }, + + onDeselect: function() { + if (this.flickity && typeof this.flickity.play === 'function') { + this.flickity.play(); + } + }, + + onBlockSelect: function(evt) { + var slide = this.slideshow.querySelector('.testimonials-slide--' + evt.detail.blockId) + var index = parseInt(slide.dataset.index); + + clearTimeout(this.timeout); + + if (this.flickity && typeof this.flickity.pause === 'function') { + this.flickity.goToSlide(index); + this.flickity.pause(); + } + }, + + onBlockDeselect: function() { + if (this.flickity && typeof this.flickity.play === 'function') { + this.flickity.play(); + } + } + }); + + return Testimonials; + })(); + + theme.HeroAnimated = (function() { + + var classes = { + active: 'animated__slide--active', + inactive: 'animated__slide--inactive' + } + + function HeroAnimated(container) { + this.container = container; + var imageCount = container.dataset.count; + + var imageContainer = container.querySelector('.hero'); + if (imageContainer) { + theme.loadImageSection(imageContainer); + } + this.allImages = Array.from(container.querySelectorAll('.animated__slide')); + + this.state = { + activeIndex: 0 + }; + + if (imageCount === 1) { + this.setFades(true); + return; + } + + this.interval; + this.intervalSpeed = container.dataset.interval; + this.maxIndex = imageCount - 1; + + theme.initWhenVisible({ + element: this.container, + callback: this.initInterval.bind(this) + }); + } + + HeroAnimated.prototype = Object.assign({}, HeroAnimated.prototype, { + initInterval: function() { + + // Check if all image wrappers have loaded class before starting fades + var imagesHaveLoaded = this.allImages.every((element) => { + return element.querySelector('.hero__image-wrapper').classList.contains('loaded') + }); + + if (imagesHaveLoaded) { + this.setFades(true); + this.interval = setInterval(function() { + this.setFades(); + }.bind(this), this.intervalSpeed); + } else { + setTimeout(this.initInterval.bind(this), 200); + } + }, + + setFades: function(first) { + // Get next image index + var nextIndex = this.state.activeIndex === this.maxIndex ? 0 : this.state.activeIndex + 1; + + if (first) { + nextIndex = this.state.activeIndex; + } + + // Unset existing image + if (!first) { + var image = this.allImages[this.state.activeIndex]; + image.classList.remove(classes.active); + image.classList.add(classes.inactive); + } + + // Set next image as active + var nextImage = this.allImages[nextIndex]; + nextImage.classList.remove(classes.inactive); + nextImage.classList.add(classes.active); + + this.state.activeIndex = nextIndex; + }, + + onUnload: function() { + clearInterval(this.interval); + } + }); + + return HeroAnimated; + })(); + + + theme.Maps = (function() { + var config = { + zoom: 14 + }; + var apiStatus = null; + var mapsToLoad = []; + + var errors = {}; + + var selectors = { + section: '[data-section-type="map"]', + map: '[data-map]', + mapOverlay: '.map-section__overlay' + }; + + // Global function called by Google on auth errors. + // Show an auto error message on all map instances. + window.gm_authFailure = function() { + if (!Shopify.designMode) { + return; + } + + document.querySelectorAll(selectors.section).forEach(section => { + section.classList.add('map-section--load-error'); + }); + + document.querySelectorAll(selectors.map).forEach(map => { + map.parentNode.removeChild(map); + }); + + window.mapError(theme.strings.authError); + }; + + window.mapError = function(error) { + var message = document.createElement('div'); + message.classList.add('map-section__error', 'errors', 'text-center'); + message.innerHTML = error; + document.querySelectorAll(selectors.mapOverlay).forEach(overlay => { + overlay.parentNode.prepend(message); + }); + document.querySelectorAll('.map-section__link').forEach(link => { + link.classList.add('hide'); + }); + }; + + function Map(container) { + this.container = container; + this.sectionId = this.container.getAttribute('data-section-id'); + this.namespace = '.map-' + this.sectionId; + this.map = container.querySelector(selectors.map); + this.key = this.map.dataset.apiKey; + + errors = { + addressNoResults: theme.strings.addressNoResults, + addressQueryLimit: theme.strings.addressQueryLimit, + addressError: theme.strings.addressError, + authError: theme.strings.authError + }; + + if (!this.key) { + return; + } + + theme.initWhenVisible({ + element: this.container, + callback: this.prepMapApi.bind(this), + threshold: 20 + }); + } + + // API has loaded, load all Map instances in queue + function initAllMaps() { + mapsToLoad.forEach(instance => { + instance.createMap(); + }); + } + + function geolocate(map) { + var geocoder = new google.maps.Geocoder(); + + if (!map) { + return; + } + + var address = map.dataset.addressSetting; + + var deferred = new Promise((resolve, reject) => { + geocoder.geocode({ address: address }, function(results, status) { + if (status !== google.maps.GeocoderStatus.OK) { + reject(status); + } + resolve(results); + }); + }); + + return deferred; + } + + Map.prototype = Object.assign({}, Map.prototype, { + prepMapApi: function() { + if (apiStatus === 'loaded') { + this.createMap(); + } else { + mapsToLoad.push(this); + + if (apiStatus !== 'loading') { + apiStatus = 'loading'; + if (typeof window.google === 'undefined' || typeof window.google.maps === 'undefined' ) { + + var script = document.createElement('script'); + script.onload = function () { + apiStatus = 'loaded'; + initAllMaps(); + }; + script.src = 'https://maps.googleapis.com/maps/api/js?key=' + this.key; + document.head.appendChild(script); + } + } + } + }, + + createMap: function() { + var mapDiv = this.map; + + return geolocate(mapDiv) + .then( + function(results) { + var mapOptions = { + zoom: config.zoom, + backgroundColor: 'none', + center: results[0].geometry.location, + draggable: false, + clickableIcons: false, + scrollwheel: false, + disableDoubleClickZoom: true, + disableDefaultUI: true + }; + + var map = (this.map = new google.maps.Map(mapDiv, mapOptions)); + var center = (this.center = map.getCenter()); + + var marker = new google.maps.Marker({ + map: map, + position: map.getCenter() + }); + + google.maps.event.addDomListener( + window, + 'resize', + theme.utils.debounce(250, function() { + google.maps.event.trigger(map, 'resize'); + map.setCenter(center); + mapDiv.removeAttribute('style'); + }) + ); + + if (Shopify.designMode) { + if (window.AOS) { AOS.refreshHard() } + } + }.bind(this) + ) + .catch(function(status) { + var errorMessage; + + switch (status) { + case 'ZERO_RESULTS': + errorMessage = errors.addressNoResults; + break; + case 'OVER_QUERY_LIMIT': + errorMessage = errors.addressQueryLimit; + break; + case 'REQUEST_DENIED': + errorMessage = errors.authError; + break; + default: + errorMessage = errors.addressError; + break; + } + + // Show errors only to merchant in the editor. + if (Shopify.designMode) { + window.mapError(errorMessage); + } + }); + }, + + onUnload: function() { + if (this.map.length === 0) { + return; + } + // Causes a harmless JS error when a section without an active map is reloaded + if (google && google.maps && google.maps.event) { + google.maps.event.clearListeners(this.map, 'resize'); + } + } + }); + + return Map; + })(); + + theme.SlideshowSection = (function() { + + var selectors = { + parallaxContainer: '.parallax-container' + }; + + function SlideshowSection(container) { + this.container = container; + var sectionId = container.getAttribute('data-section-id'); + this.slideshow = container.querySelector('#Slideshow-' + sectionId); + this.namespace = '.' + sectionId; + + this.initialIndex = 0; + + if (!this.slideshow) { return } + + // Get shopify-created div that section markup lives in, + // then get index of it inside its parent + var sectionEl = container.parentElement; + var sectionIndex = [].indexOf.call(sectionEl.parentElement.children, sectionEl); + + if (sectionIndex === 0) { + this.init(); + } else { + theme.initWhenVisible({ + element: this.container, + callback: this.init.bind(this) + }); + } + + } + + SlideshowSection.prototype = Object.assign({}, SlideshowSection.prototype, { + init: function() { + var slides = this.slideshow.querySelectorAll('.slideshow__slide'); + + if (this.container.hasAttribute('data-immediate-load')) { + this.slideshow.classList.remove('loading', 'loading--delayed'); + this.slideshow.classList.add('loaded'); + } else { + // Wait for image to load before marking as done + theme.loadImageSection(this.slideshow); + } + + if (slides.length > 1) { + var sliderArgs = { + prevNextButtons: this.slideshow.hasAttribute('data-arrows'), + pageDots: this.slideshow.hasAttribute('data-dots'), + fade: true, + setGallerySize: false, + initialIndex: this.initialIndex, + autoPlay: this.slideshow.dataset.autoplay === 'true' + ? parseInt(this.slideshow.dataset.speed) + : false + }; + + this.flickity = new theme.Slideshow(this.slideshow, sliderArgs); + } else { + // Add loaded class to first slide + slides[0].classList.add('is-selected'); + } + + if (this.container.hasAttribute('data-parallax')) { + // Create new parallax for each slideshow image + this.container.querySelectorAll(selectors.parallaxContainer).forEach(function(el, i) { + new theme.Parallax(el, { + namespace: this.namespace + '-parallax-' + i + }); + }.bind(this)); + } + }, + + forceReload: function() { + this.onUnload(); + this.init(); + }, + + onUnload: function() { + if (this.flickity && typeof this.flickity.destroy === 'function') { + this.flickity.destroy(); + } + }, + + onDeselect: function() { + if (this.flickity && typeof this.flickity.play === 'function') { + this.flickity.play(); + } + }, + + onBlockSelect: function(evt) { + var slide = this.slideshow.querySelector('.slideshow__slide--' + evt.detail.blockId) + var index = parseInt(slide.dataset.index); + + if (this.flickity && typeof this.flickity.pause === 'function') { + this.flickity.goToSlide(index); + this.flickity.pause(); + } else { + // If section reloads, slideshow might not have been setup yet, wait a second and try again + this.initialIndex = index; + setTimeout(function() { + if (this.flickity && typeof this.flickity.pause === 'function') { + this.flickity.pause(); + } + }.bind(this), 1000); + } + }, + + onBlockDeselect: function() { + if (this.flickity && typeof this.flickity.play === 'function') { + if (this.flickity.args.autoPlay) { + this.flickity.play(); + } + } + } + }); + + return SlideshowSection; + })(); + + theme.NewsletterPopup = (function() { + function NewsletterPopup(container) { + this.container = container; + var sectionId = this.container.getAttribute('data-section-id'); + this.cookieName = 'newsletter-' + sectionId; + + if (!container) { + return; + } + + // Prevent popup on Shopify robot challenge page + if (window.location.pathname === '/challenge') { + return; + } + + // Prevent popup on password page + if (window.location.pathname === '/password') { + return; + } + + this.data = { + secondsBeforeShow: container.dataset.delaySeconds, + daysBeforeReappear: container.dataset.delayDays, + cookie: Cookies.get(this.cookieName), + testMode: container.dataset.testMode + }; + + this.modal = new theme.Modals('NewsletterPopup-' + sectionId, 'newsletter-popup-modal'); + + // Set cookie if optional button is clicked + var btn = container.querySelector('.popup-cta a'); + if (btn) { + btn.addEventListener('click', function(){ + this.closePopup(true); + }.bind(this)); + } + + // Open modal if errors or success message exist + if (container.querySelector('.errors') || container.querySelector('.note--success')) { + this.modal.open(); + } + + // Set cookie as opened if success message + if (container.querySelector('.note--success')) { + this.closePopup(true); + return; + } + + document.addEventListener('modalClose.' + container.id, this.closePopup.bind(this)); + + if (!this.data.cookie || this.data.testMode === 'true') { + this.initPopupDelay(); + } + } + + NewsletterPopup.prototype = Object.assign({}, NewsletterPopup.prototype, { + initPopupDelay: function() { + if (Shopify && Shopify.designMode) { + return; + } + setTimeout(function() { + this.modal.open(); + }.bind(this), this.data.secondsBeforeShow * 1000); + }, + + closePopup: function(success) { + // Remove a cookie in case it was set in test mode + if (this.data.testMode === 'true') { + Cookies.remove(this.cookieName, { path: '/' }); + return; + } + + var expiry = success ? 200 : this.data.daysBeforeReappear; + Cookies.set(this.cookieName, 'opened', { path: '/', expires: expiry }); + }, + + onLoad: function() { + this.modal.open(); + }, + + onSelect: function() { + this.modal.open(); + }, + + onDeselect: function() { + this.modal.close(); + } + }); + + return NewsletterPopup; + })(); + + theme.PasswordHeader = (function() { + function PasswordHeader() { + this.init(); + } + + PasswordHeader.prototype = Object.assign({}, PasswordHeader.prototype, { + init: function() { + if (!document.querySelector('#LoginModal')) { + return; + } + + var passwordModal = new theme.Modals('LoginModal', 'login-modal', { + focusIdOnOpen: 'password', + solid: true + }); + + // Open modal if errors exist + if (document.querySelectorAll('.errors').length) { + passwordModal.open(); + } + } + }); + + return PasswordHeader; + })(); + + theme.Photoswipe = (function() { + var selectors = { + trigger: '.js-photoswipe__zoom', + images: '.photoswipe__image', + slideshowTrack: '.flickity-viewport ', + activeImage: '.is-selected' + }; + + function Photoswipe(container, sectionId) { + this.container = container; + this.sectionId = sectionId; + this.namespace = '.photoswipe-' + this.sectionId; + this.gallery; + this.images; + this.items; + this.inSlideshow = false; + + if (!container || container.dataset.zoom === 'false') { + return; + } + + this.init(); + } + + Photoswipe.prototype = Object.assign({}, Photoswipe.prototype, { + init: function() { + this.container.querySelectorAll(selectors.trigger).forEach(trigger => { + trigger.on('click' + this.namespace, this.triggerClick.bind(this)); + }); + }, + + triggerClick: function(evt) { + // Streamline changes between a slideshow and + // stacked images, so recheck if we are still + // working with a slideshow when initializing zoom + if (this.container.dataset && this.container.dataset.hasSlideshow === 'true') { + this.inSlideshow = true; + } else { + this.inSlideshow = false; + } + + this.items = this.getImageData(); + + var image = this.inSlideshow ? this.container.querySelector(selectors.activeImage) : evt.currentTarget; + + var index = this.inSlideshow ? this.getChildIndex(image) : image.dataset.index; + + this.initGallery(this.items, index); + }, + + // Because of image set feature, need to get index based on location in parent + getChildIndex: function(el) { + var i = 0; + while( (el = el.previousSibling) != null ) { + i++; + } + + // 1-based index required + return i + 1; + }, + + getImageData: function() { + this.images = this.inSlideshow + ? this.container.querySelectorAll(selectors.slideshowTrack + selectors.images) + : this.container.querySelectorAll(selectors.images); + + var items = []; + var options = {}; + + this.images.forEach(el => { + var item = { + msrc: el.currentSrc || el.src, + src: el.getAttribute('data-photoswipe-src'), + w: el.getAttribute('data-photoswipe-width'), + h: el.getAttribute('data-photoswipe-height'), + el: el, + initialZoomLevel: 0.5 + } + + items.push(item); + }); + + return items; + }, + + initGallery: function(items, index) { + var pswpElement = document.querySelectorAll('.pswp')[0]; + + var options = { + allowPanToNext: false, + captionEl: false, + closeOnScroll: false, + counterEl: false, + history: false, + index: index - 1, + pinchToClose: false, + preloaderEl: false, + scaleMode: 'zoom', + shareEl: false, + tapToToggleControls: false, + getThumbBoundsFn: function(index) { + var pageYScroll = window.pageYOffset || document.documentElement.scrollTop; + var thumbnail = items[index].el; + var rect = thumbnail.getBoundingClientRect(); + return {x:rect.left, y:rect.top + pageYScroll, w:rect.width}; + } + } + + this.gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options); + this.gallery.listen('afterChange', this.afterChange.bind(this)); + this.gallery.init(); + + this.preventiOS15Scrolling(); + }, + + afterChange: function() { + var index = this.gallery.getCurrentIndex(); + this.container.dispatchEvent(new CustomEvent('photoswipe:afterChange', { + detail: { + index: index + } + })); + }, + + syncHeight: function() { + document.documentElement.style.setProperty( + "--window-inner-height", + `${window.innerHeight}px` + ); + }, + + // Fix poached from https://gist.github.com/dimsemenov/0b8c255c0d87f2989e8ab876073534ea + preventiOS15Scrolling: function() { + let initialScrollPos; + + if (!/iPhone|iPad|iPod/i.test(window.navigator.userAgent)) return; + + this.syncHeight(); + + // Store scroll position to restore it later + initialScrollPos = window.scrollY; + + // Add class to root element when PhotoSwipe opens + document.documentElement.classList.add('pswp-open-in-ios'); + + window.addEventListener('resize', this.syncHeight); + + this.gallery.listen('destroy', () => { + document.documentElement.classList.remove('pswp-open-in-ios'); + window.scrollTo(0, initialScrollPos); + }); + } + }); + + return Photoswipe; + })(); + + + theme.Recommendations = (function() { + var selectors = { + placeholder: '.product-recommendations-placeholder', + sectionClass: ' .product-recommendations', + productResults: '.grid-product' + } + + function Recommendations(container) { + this.container = container; + this.sectionId = container.getAttribute('data-section-id'); + this.url = container.dataset.url; + + selectors.recommendations = 'Recommendations-' + this.sectionId; + + theme.initWhenVisible({ + element: container, + callback: this.init.bind(this), + threshold: 500 + }); + } + + Recommendations.prototype = Object.assign({}, Recommendations.prototype, { + init: function() { + var section = document.getElementById(selectors.recommendations); + + if (!section || section.dataset.enable === 'false') { + return; + } + + var id = section.dataset.productId; + var limit = section.dataset.limit; + + var url = this.url + '?section_id=product-recommendations&limit='+ limit +'&product_id=' + id; + + // When section his hidden and shown, make sure it starts empty + if (Shopify.designMode) { + var wrapper = section.querySelector(selectors.sectionClass) + if (wrapper) { + wrapper.innerHTML = ''; + } + } + + fetch(url).then(function(response) { + return response.text(); + }).then(function(html) { + // Convert the HTML string into a document object + var parser = new DOMParser(); + var doc = parser.parseFromString(html, 'text/html'); + var div = doc.querySelector(selectors.sectionClass); + var placeholder = section.querySelector(selectors.placeholder); + if (!placeholder) { + return; + } + + placeholder.innerHTML = ''; + + if (!div) { + this.container.classList.add('hide'); + if (AOS) { AOS.refreshHard() } + return; + } + + placeholder.appendChild(div); + + theme.reinitProductGridItem(section); + + document.dispatchEvent(new CustomEvent('recommendations:loaded', { + detail: { + section: section + } + })); + + // If no results, hide the entire section + var results = div.querySelectorAll(selectors.productResults); + if (results.length === 0) { + this.container.classList.add('hide'); + } + }.bind(this)); + } + }); + + return Recommendations; + })(); + + theme.StoreAvailability = (function() { + var selectors = { + drawerOpenBtn: '.js-drawer-open-availability', + modalOpenBtn: '.js-modal-open-availability', + productTitle: '[data-availability-product-title]' + }; + + function StoreAvailability(container) { + this.container = container; + this.baseUrl = container.dataset.baseUrl; + this.productTitle = container.dataset.productName; + } + + StoreAvailability.prototype = Object.assign({}, StoreAvailability.prototype, { + updateContent: function(variantId) { + var variantSectionUrl = + this.baseUrl + + '/variants/' + + variantId + + '/?section_id=store-availability'; + + var self = this; + + fetch(variantSectionUrl) + .then(function(response) { + return response.text(); + }) + .then(function(html) { + if (html.trim() === '') { + this.container.innerHTML = ''; + return; + } + + self.container.innerHTML = html; + self.container.innerHTML = self.container.firstElementChild.innerHTML; + + // Setup drawer if have open button + if (self.container.querySelector(selectors.drawerOpenBtn)) { + self.drawer = new theme.Drawers('StoreAvailabilityDrawer', 'availability'); + } + + // Setup modal if have open button + if (self.container.querySelector(selectors.modalOpenBtn)) { + self.modal = new theme.Modals('StoreAvailabilityModal', 'availability'); + } + + var title = self.container.querySelector(selectors.productTitle); + if (title) { + title.textContent = self.productTitle; + } + }); + } + }); + + return StoreAvailability; + })(); + + theme.VideoSection = (function() { + var selectors = { + videoParent: '.video-parent-section' + }; + + function videoSection(container) { + this.container = container; + this.sectionId = container.getAttribute('data-section-id'); + this.namespace = '.video-' + this.sectionId; + this.videoObject; + + theme.initWhenVisible({ + element: this.container, + callback: this.init.bind(this), + threshold: 500 + }); + } + + videoSection.prototype = Object.assign({}, videoSection.prototype, { + init: function() { + var dataDiv = this.container.querySelector('.video-div'); + if (!dataDiv) { + return; + } + var type = dataDiv.dataset.type; + + switch(type) { + case 'youtube': + var videoId = dataDiv.dataset.videoId; + this.initYoutubeVideo(videoId); + break; + case 'vimeo': + var videoId = dataDiv.dataset.videoId; + this.initVimeoVideo(videoId); + break; + case 'mp4': + this.initMp4Video(); + break; + } + }, + + initYoutubeVideo: function(videoId) { + this.videoObject = new theme.YouTube( + 'YouTubeVideo-' + this.sectionId, + { + videoId: videoId, + videoParent: selectors.videoParent + } + ); + }, + + initVimeoVideo: function(videoId) { + this.videoObject = new theme.VimeoPlayer( + 'Vimeo-' + this.sectionId, + videoId, + { + videoParent: selectors.videoParent + } + ); + }, + + initMp4Video: function() { + var mp4Video = 'Mp4Video-' + this.sectionId; + var mp4Div = document.getElementById(mp4Video); + var parent = mp4Div.closest(selectors.videoParent); + + if (mp4Div) { + parent.classList.add('loaded'); + + var playPromise = document.querySelector('#' + mp4Video).play(); + + // Edge does not return a promise (video still plays) + if (playPromise !== undefined) { + playPromise.then(function() { + // playback normal + }).catch(function() { + mp4Div.setAttribute('controls', ''); + parent.classList.add('video-interactable'); + }); + } + } + }, + + onUnload: function(evt) { + var sectionId = evt.target.id.replace('shopify-section-', ''); + if (this.videoObject && typeof this.videoObject.destroy === 'function') { + this.videoObject.destroy(); + } + } + }); + + return videoSection; + })(); + + + theme.isStorageSupported = function(type) { + // Return false if we are in an iframe without access to sessionStorage + if (window.self !== window.top) { + return false; + } + + var testKey = 'test'; + var storage; + if (type === 'session') { + storage = window.sessionStorage; + } + if (type === 'local') { + storage = window.localStorage; + } + + try { + storage.setItem(testKey, '1'); + storage.removeItem(testKey); + return true; + } catch (error) { + return false; + } + }; + + theme.reinitProductGridItem = function() { + if (AOS) { + AOS.refreshHard(); + } + + // Refresh reviews app + if (window.SPR) { + SPR.initDomEls();SPR.loadBadges(); + } + + // Re-hook up collapsible box triggers + theme.collapsibles.init(); + }; + + theme.reviewAppLinkListener = function() { + document.addEventListener('click', function (evt) { + if (!window.SPR) { + return; + } + + var parent = evt.target.parentNode; + var scroller = null; + + if (parent.matches('.spr-pagination-next') || parent.matches('.spr-pagination-page')) { + scroller = parent.closest('.spr-reviews'); + } + + if (scroller) { + scroller.scrollTo(0,0); + } + }); + }; + + theme.checkForAnchorLink = function() { + if(window.location.hash) { + var el = document.querySelector(window.location.hash); + if (el) { + window.scrollTo(0, el.offsetTop - 100); + } + } + }; + + theme.init = function() { + theme.QuickShopScreens.init(); + theme.rteInit(); + theme.articleImages(); + theme.collapsibles.init(); + if (theme.settings.cartType === 'sticky') { + new theme.StickyCart.init(); + } + theme.videoModal(); + + // Two ways to determine if page was loaded from cache from back button + // Most use `pageshow` + evt.persisted, Chrome uses `performance.navigation.type` + window.addEventListener('pageshow', function(evt) { + if (evt.persisted) { + theme.refreshCart(); + } + }); + + if (performance && performance.navigation.type === 2) { + theme.refreshCart(); + } + }; + + theme.initSecondary = function() { + document.body.classList.add('js-animate'); + + AOS.init({ + easing: 'ease-out-quad', + once: false, + mirror: true, + offset: 100, + disableMutationObserver: true + }); + + document.addEventListener('lazyloaded', function(evt) { + var img = evt.target + if (img) { + img.parentNode.classList.add('loaded'); + } + }); + + theme.storeScrollPositionOnUnload(); + theme.reviewAppLinkListener(); + theme.checkForAnchorLink(); + }; + + /*============================================================================ + Things that don't require DOM to be ready + ==============================================================================*/ + theme.config.hasSessionStorage = theme.isStorageSupported('session'); + theme.config.hasLocalStorage = theme.isStorageSupported('local'); + + /*============================================================================ + Things that require DOM to be ready + ==============================================================================*/ + function DOMready(callback) { + if (document.readyState != 'loading') callback(); + else document.addEventListener('DOMContentLoaded', callback); + } + + DOMready(function(){ + theme.sections = new theme.Sections(); + + theme.init(); + + if (theme.settings.isCustomerTemplate) { + theme.customerTemplates(); + } + + theme.sections.register('slideshow-section', theme.SlideshowSection); + theme.sections.register('header-section', theme.HeaderSection); + theme.sections.register('hero-animated', theme.HeroAnimated); + theme.sections.register('video-section', theme.VideoSection); + theme.sections.register('product', theme.Product); + theme.sections.register('product-recommendations', theme.Recommendations); + theme.sections.register('password-header', theme.PasswordHeader); + theme.sections.register('product-template', theme.Product); + theme.sections.register('featured-collection', theme.FeaturedCollection); + theme.sections.register('collection-grid', theme.Collection); + theme.sections.register('collection-filter', theme.CollectionFilter); + theme.sections.register('testimonials', theme.Testimonials); + theme.sections.register('newsletter-popup', theme.NewsletterPopup); + theme.sections.register('map', theme.Maps); + theme.sections.register('blog', theme.Blog); + theme.sections.register('footer-section', theme.FooterSection); + theme.sections.register('store-availability', theme.StoreAvailability); + + if (document.body.classList.contains('template-cart')) { + var cartPageForm = document.getElementById('CartPageForm'); + if (cartPageForm) { + new theme.CartForm(cartPageForm); + } + } + + theme.pageTransitions(); + + theme.initSecondary(); + document.dispatchEvent(new CustomEvent('page:loaded')); + }); +})(); diff --git a/httpsgetaer.com.aublogsnews/js/vendor-v6.js b/httpsgetaer.com.aublogsnews/js/vendor-v6.js new file mode 100644 index 0000000..0c2a6db --- /dev/null +++ b/httpsgetaer.com.aublogsnews/js/vendor-v6.js @@ -0,0 +1,77 @@ +/* +@license +Streamline by Archetype Themes (https://archetypethemes.co) + +Plugins: +JavaScript Cookie 2.2.0 +Flickity 2.3.0 with customizations by Archetype +Flickity Fade 1.0.0 with customizations by Archetype +AOS 2.3.4 +Photoswipe 4.1.3 +Photoswipe UI 4.1.2 with customizations by Archetype +noUiSlider 15.2.0 + +Lazysizes for image loading: +core 4.0.2 +respimg 4.0.1 +rias 4.0.1 +bgset 4.0.1 +object-fit 4.1.2 +parent-fit 4.1.2 +*/ +/*! lazysizes respimg - v4.0.1 */ +!function(t,e){var i=function(){e(t.lazySizes),t.removeEventListener("lazyunveilread",i,!0)};e=e.bind(null,t,t.document),"object"==typeof module&&module.exports?e(require("lazysizes"),require("../fix-ios-sizes/fix-ios-sizes")):t.lazySizes?i():t.addEventListener("lazyunveilread",i,!0)}(window,(function(t,e,i){"use strict";var n,o=i&&i.cfg||t.lazySizesConfig,r=e.createElement("img"),s="sizes"in r&&"srcset"in r,a=/\s+\d+h/g,l=function(){var t=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,i=Array.prototype.forEach;return function(n){var o=e.createElement("img"),r=function(e){var i,n=e.getAttribute(lazySizesConfig.srcsetAttr);n&&(n.match(t)&&((i="w"==RegExp.$2?RegExp.$1/RegExp.$3:RegExp.$3/RegExp.$1)&&e.setAttribute("data-aspectratio",i)),e.setAttribute(lazySizesConfig.srcsetAttr,n.replace(a,"")))},s=function(t){var e=t.target.parentNode;e&&"PICTURE"==e.nodeName&&i.call(e.getElementsByTagName("source"),r),r(t.target)},l=function(){o.currentSrc&&e.removeEventListener("lazybeforeunveil",s)};n[1]&&(e.addEventListener("lazybeforeunveil",s),o.onload=l,o.onerror=l,o.srcset="data:,a 1w 1h",o.complete&&l())}}();if(o||(o={},t.lazySizesConfig=o),o.supportsType||(o.supportsType=function(t){return!t}),!t.picturefill&&!o.pf){if(t.HTMLPictureElement&&s)return e.msElementsFromPoint&&l(navigator.userAgent.match(/Edge\/(\d+)/)),void(o.pf=function(){});o.pf=function(e){var i,o;if(!t.picturefill)for(i=0,o=e.elements.length;o>i;i++)n(e.elements[i])},n=function(){var r=function(t,e){return t.w-e.w},l=/^\s*\d+\.*\d*px\s*$/,c=function(){var t,e=/(([^,\s].[^\s]+)\s+(\d+)w)/g,i=/\s/,n=function(e,i,n,o){t.push({c:i,u:n,w:1*o})};return function(o){return t=[],(o=o.trim()).replace(a,"").replace(e,n),t.length||!o||i.test(o)||t.push({c:o,u:o,w:99}),t}}(),u=function(){u.init||(u.init=!0,addEventListener("resize",function(){var t,i=e.getElementsByClassName("lazymatchmedia"),o=function(){var t,e;for(t=0,e=i.length;e>t;t++)n(i[t])};return function(){clearTimeout(t),t=setTimeout(o,66)}}()))},d=function(e,n){var r,s=e.getAttribute("srcset")||e.getAttribute(o.srcsetAttr);!s&&n&&(s=e._lazypolyfill?e._lazypolyfill._set:e.getAttribute(o.srcAttr)||e.getAttribute("src")),e._lazypolyfill&&e._lazypolyfill._set==s||(r=c(s||""),n&&e.parentNode&&(r.isPicture="PICTURE"==e.parentNode.nodeName.toUpperCase(),r.isPicture&&t.matchMedia&&(i.aC(e,"lazymatchmedia"),u())),r._set=s,Object.defineProperty(e,"_lazypolyfill",{value:r,writable:!0}))},f=function(e){var n=t.devicePixelRatio||1,o=i.getX&&i.getX(e);return Math.min(o||n,2.5,n)},h=function(e){return t.matchMedia?(h=function(t){return!t||(matchMedia(t)||{}).matches})(e):!e},p=function(t){var e,n,s,a,c,u,p;if(d(a=t,!0),(c=a._lazypolyfill).isPicture)for(n=0,s=(e=t.parentNode.getElementsByTagName("source")).length;s>n;n++)if(o.supportsType(e[n].getAttribute("type"),t)&&h(e[n].getAttribute("media"))){a=e[n],d(a),c=a._lazypolyfill;break}return c.length>1?(p=a.getAttribute("sizes")||"",p=l.test(p)&&parseInt(p,10)||i.gW(t,t.parentNode),c.d=f(t),!c.src||!c.w||c.wr;r++)if((o=t[r]).d=o.w/t.w,o.d>=t.d){!o.cached&&(e=t[r-1])&&e.d>t.d-.13*Math.pow(t.d,2.2)&&(i=Math.pow(e.d-.6,1.6),e.cached&&(e.d+=.15*i),e.d+(o.d-t.d)*i>t.d&&(o=e));break}return o}(c.sort(r)),c.src=u):u=c.src):u=c[0],u},m=function(t){if(!s||!t.parentNode||"PICTURE"==t.parentNode.nodeName.toUpperCase()){var e=p(t);e&&e.u&&t._lazypolyfill.cur!=e.u&&(t._lazypolyfill.cur=e.u,e.cached=!0,t.setAttribute(o.srcAttr,e.u),t.setAttribute("src",e.u))}};return m.parse=c,m}(),o.loadedClass&&o.loadingClass&&function(){var t=[];['img[sizes$="px"][srcset].',"picture > img:not([srcset])."].forEach((function(e){t.push(e+o.loadedClass),t.push(e+o.loadingClass)})),o.pf({elements:e.querySelectorAll(t.join(", "))})}()}})),function(t,e){var i=function(){e(t.lazySizes),t.removeEventListener("lazyunveilread",i,!0)};e=e.bind(null,t,t.document),"object"==typeof module&&module.exports?e(require("lazysizes")):t.lazySizes?i():t.addEventListener("lazyunveilread",i,!0)}(window,(function(t,e,i){"use strict";function n(e,i){var n,o,r,s,a=t.getComputedStyle(e);for(n in o=e.parentNode,s={isPicture:!(!o||!d.test(o.nodeName||""))},r=function(t,i){var n=e.getAttribute("data-"+t);if(!n){var o=a.getPropertyValue("--ls-"+t);o&&(n=o.trim())}if(n){if("true"==n)n=!0;else if("false"==n)n=!1;else if(u.test(n))n=parseFloat(n);else if("function"==typeof l[t])n=l[t](e,n);else if(m.test(n))try{n=JSON.parse(n)}catch(t){}s[t]=n}else t in l&&"function"!=typeof l[t]?s[t]=l[t]:i&&"function"==typeof l[t]&&(s[t]=l[t](e,n))},l)r(n);return i.replace(p,(function(t,e){e in s||r(e,!0)})),s}function o(t,i,n){var o=0,r=0,s=n;if(t){if("container"===i.ratio){for(o=s.scrollWidth,r=s.scrollHeight;!(o&&r||s===e);)o=(s=s.parentNode).scrollWidth,r=s.scrollHeight;o&&r&&(i.ratio=r/o)}(t=function(t,e){var i=[];return i.srcset=[],e.absUrl&&(v.setAttribute("href",t),t=v.href),t=((e.prefix||"")+t+(e.postfix||"")).replace(p,(function(t,i){return c[typeof e[i]]?e[i]:t})),e.widths.forEach((function(n){var o=e.widthmap[n]||n,r={u:t.replace(f,o).replace(h,e.ratio?Math.round(n*e.ratio):""),w:n};i.push(r),i.srcset.push(r.c=r.u+" "+n+"w")})),i}(t,i)).isPicture=i.isPicture,b&&"IMG"==n.nodeName.toUpperCase()?n.removeAttribute(a.srcsetAttr):n.setAttribute(a.srcsetAttr,t.srcset.join(", ")),Object.defineProperty(n,"_lazyrias",{value:t,writable:!0})}}function r(t,e){var o=n(t,e);return l.modifyOptions.call(t,{target:t,details:o,detail:o}),i.fire(t,"lazyriasmodifyoptions",o),o}function s(t){return t.getAttribute(t.getAttribute("data-srcattr")||l.srcAttr)||t.getAttribute(a.srcsetAttr)||t.getAttribute(a.srcAttr)||t.getAttribute("data-pfsrcset")||""}var a,l,c={string:1,number:1},u=/^\-*\+*\d+\.*\d*$/,d=/^picture$/i,f=/\s*\{\s*width\s*\}\s*/i,h=/\s*\{\s*height\s*\}\s*/i,p=/\s*\{\s*([a-z0-9]+)\s*\}\s*/gi,m=/^\[.*\]|\{.*\}$/,g=/^(?:auto|\d+(px)?)$/,v=e.createElement("a"),y=e.createElement("img"),b="srcset"in y&&!("sizes"in y),x=!!t.HTMLPictureElement&&!b;!function(){var e,n={prefix:"",postfix:"",srcAttr:"data-src",absUrl:!1,modifyOptions:function(){},widthmap:{},ratio:!1};for(e in(a=i&&i.cfg||t.lazySizesConfig)||(a={},t.lazySizesConfig=a),a.supportsType||(a.supportsType=function(t){return!t}),a.rias||(a.rias={}),"widths"in(l=a.rias)||(l.widths=[],function(t){for(var e,i=0;!e||3e3>e;)(i+=5)>30&&(i+=1),e=36*i,t.push(e)}(l.widths)),n)e in l||(l[e]=n[e])}(),addEventListener("lazybeforesizes",(function(t){var e,n,c,u,d,h,p,m,v,y,b,S,E;if(t.detail.instance==i&&(e=t.target,t.detail.dataAttr&&!t.defaultPrevented&&!l.disabled&&(v=e.getAttribute(a.sizesAttr)||e.getAttribute("sizes"))&&g.test(v))){if(c=r(e,n=s(e)),b=f.test(c.prefix)||f.test(c.postfix),c.isPicture&&(u=e.parentNode))for(h=0,p=(d=u.getElementsByTagName("source")).length;p>h;h++)(b||f.test(m=s(d[h])))&&(o(m,c,d[h]),S=!0);b||f.test(n)?(o(n,c,e),S=!0):S&&((E=[]).srcset=[],E.isPicture=!0,Object.defineProperty(e,"_lazyrias",{value:E,writable:!0})),S&&(x?e.removeAttribute(a.srcAttr):"auto"!=v&&(y={width:parseInt(v,10)},w({target:e,detail:y})))}}),!0);var w=function(){var n=function(t,e){return t.w-e.w},o=function(t,e){var n;return!t._lazyrias&&i.pWS&&(n=i.pWS(t.getAttribute(a.srcsetAttr||""))).length&&(Object.defineProperty(t,"_lazyrias",{value:n,writable:!0}),e&&t.parentNode&&(n.isPicture="PICTURE"==t.parentNode.nodeName.toUpperCase())),t._lazyrias},r=function(e){var n=t.devicePixelRatio||1,o=i.getX&&i.getX(e);return Math.min(o||n,2.4,n)},s=function(e,i){var s,a,l,c,u,d;if((u=e._lazyrias).isPicture&&t.matchMedia)for(a=0,l=(s=e.parentNode.getElementsByTagName("source")).length;l>a;a++)if(o(s[a])&&!s[a].getAttribute("type")&&(!(c=s[a].getAttribute("media"))||(matchMedia(c)||{}).matches)){u=s[a]._lazyrias;break}return(!u.w||u.wr;r++)if((o=t[r]).d=o.w/t.w,o.d>=t.d){!o.cached&&(e=t[r-1])&&e.d>t.d-.13*Math.pow(t.d,2.2)&&(i=Math.pow(e.d-.6,1.6),e.cached&&(e.d+=.15*i),e.d+(o.d-t.d)*i>t.d&&(o=e));break}return o}(u.sort(n))),d},l=function(n){if(n.detail.instance==i){var r,c=n.target;return!b&&(t.respimage||t.picturefill||lazySizesConfig.pf)?void e.removeEventListener("lazybeforesizes",l):void(("_lazyrias"in c||n.detail.dataAttr&&o(c,!0))&&(r=s(c,n.detail.width),r&&r.u&&c._lazyrias.cur!=r.u&&(c._lazyrias.cur=r.u,r.cached=!0,i.rAF((function(){c.setAttribute(a.srcAttr,r.u),c.setAttribute("src",r.u)})))))}};return x?l=function(){}:addEventListener("lazybeforesizes",l),l}()})),function(t,e){var i=function(){e(t.lazySizes),t.removeEventListener("lazyunveilread",i,!0)};e=e.bind(null,t,t.document),"object"==typeof module&&module.exports?e(require("lazysizes")):t.lazySizes?i():t.addEventListener("lazyunveilread",i,!0)}(window,(function(t,e,i){"use strict";if(t.addEventListener){var n=/\s+/g,o=/\s*\|\s+|\s+\|\s*/g,r=/^(.+?)(?:\s+\[\s*(.+?)\s*\])?$/,s=/\(|\)|'/,a={contain:1,cover:1},l=function(t,i,s){var a=e.createElement("picture"),l=i.getAttribute(lazySizesConfig.sizesAttr),c=i.getAttribute("data-ratio"),u=i.getAttribute("data-optimumx");i._lazybgset&&i._lazybgset.parentNode==i&&i.removeChild(i._lazybgset),Object.defineProperty(s,"_lazybgset",{value:i,writable:!0}),Object.defineProperty(i,"_lazybgset",{value:a,writable:!0}),t=t.replace(n," ").split(o),a.style.display="none",s.className=lazySizesConfig.lazyClass,1!=t.length||l||(l="auto"),t.forEach((function(t){var i=e.createElement("source");l&&"auto"!=l&&i.setAttribute("sizes",l),t.match(r)&&(i.setAttribute(lazySizesConfig.srcsetAttr,RegExp.$1),RegExp.$2&&i.setAttribute("media",lazySizesConfig.customMedia[RegExp.$2]||RegExp.$2)),a.appendChild(i)})),l&&(s.setAttribute(lazySizesConfig.sizesAttr,l),i.removeAttribute(lazySizesConfig.sizesAttr),i.removeAttribute("sizes")),u&&s.setAttribute("data-optimumx",u),c&&s.setAttribute("data-ratio",c),a.appendChild(s),i.appendChild(a)},c=function(t){if(t.target._lazybgset){var e=t.target,n=e._lazybgset,o=e.currentSrc||e.src;o&&(n.style.backgroundImage="url("+(s.test(o)?JSON.stringify(o):o)+")"),e._lazybgsetLoading&&(i.fire(n,"_lazyloaded",{},!1,!0),delete e._lazybgsetLoading)}};addEventListener("lazybeforeunveil",(function(t){var n,o,r;!t.defaultPrevented&&(n=t.target.getAttribute("data-bgset"))&&(r=t.target,(o=e.createElement("img")).alt="",o._lazybgsetLoading=!0,t.detail.firesLoad=!0,l(n,r,o),setTimeout((function(){i.loader.unveil(o),i.rAF((function(){i.fire(o,"_lazyloaded",{},!0,!0),o.complete&&c({target:o})}))})))})),e.addEventListener("load",c,!0),t.addEventListener("lazybeforesizes",(function(t){if(t.detail.instance==i&&t.target._lazybgset&&t.detail.dataAttr){var e=function(t){var e;return e=(getComputedStyle(t)||{getPropertyValue:function(){}}).getPropertyValue("background-size"),!a[e]&&a[t.style.backgroundSize]&&(e=t.style.backgroundSize),e}(t.target._lazybgset);a[e]&&(t.target._lazysizesParentFit=e,i.rAF((function(){t.target.setAttribute("data-parent-fit",e),t.target._lazysizesParentFit&&delete t.target._lazysizesParentFit})))}}),!0),e.documentElement.addEventListener("lazybeforesizes",(function(t){!t.defaultPrevented&&t.target._lazybgset&&t.detail.instance==i&&(t.detail.width=function(t){var e=i.gW(t,t.parentNode);return(!t._lazysizesWidth||e>t._lazysizesWidth)&&(t._lazysizesWidth=e),t._lazysizesWidth}(t.target._lazybgset))}))}})),function(t,e){var i=function(n){e(t.lazySizes,n),t.removeEventListener("lazyunveilread",i,!0)};e=e.bind(null,t,t.document),"object"==typeof module&&module.exports?e(require("lazysizes")):t.lazySizes?i():t.addEventListener("lazyunveilread",i,!0)}(window,(function(t,e,i,n){"use strict";var o=e.createElement("a").style,r="objectFit"in o,s=/object-fit["']*\s*:\s*["']*(contain|cover)/,a=/object-position["']*\s*:\s*["']*(.+?)(?=($|,|'|"|;))/,l="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",c=/\(|\)|'/,u={center:"center","50% 50%":"center"};if(!r||!(r&&"objectPosition"in o)){var d=function(t){if(t.detail.instance==i){var e=t.target,n=function(t){var e=(getComputedStyle(t,null)||{}).fontFamily||"",i=e.match(s)||"",n=i&&e.match(a)||"";return n&&(n=n[1]),{fit:i&&i[1]||"",position:u[n]||n||"center"}}(e);!n.fit||r&&"center"==n.position||function(t,e){var n,o,r=i.cfg,s=t.cloneNode(!1),a=s.style,u=function(){var e=t.currentSrc||t.src;e&&o!==e&&(o=e,a.backgroundImage="url("+(c.test(e)?JSON.stringify(e):e)+")",n||(n=!0,i.rC(s,r.loadingClass),i.aC(s,r.loadedClass)))},d=function(){i.rAF(u)};t._lazysizesParentFit=e.fit,t.addEventListener("lazyloaded",d,!0),t.addEventListener("load",d,!0),s.addEventListener("load",(function(){var t=s.currentSrc||s.src;t&&t!=l&&(s.src=l,s.srcset="")})),i.rAF((function(){var n=t,o=t.parentNode;"PICTURE"==o.nodeName.toUpperCase()&&(n=o,o=o.parentNode),i.rC(s,r.loadedClass),i.rC(s,r.lazyClass),i.aC(s,r.loadingClass),i.aC(s,r.objectFitClass||"lazysizes-display-clone"),s.getAttribute(r.srcsetAttr)&&s.setAttribute(r.srcsetAttr,""),s.getAttribute(r.srcAttr)&&s.setAttribute(r.srcAttr,""),s.src=l,s.srcset="",a.backgroundRepeat="no-repeat",a.backgroundPosition=e.position,a.backgroundSize=e.fit,n.style.display="none",t.setAttribute("data-parent-fit",e.fit),t.setAttribute("data-parent-container","prev"),o.insertBefore(s,n),t._lazysizesParentFit&&delete t._lazysizesParentFit,t.complete&&u()}))}(e,n)}};t.addEventListener("lazyunveilread",d,!0),n&&n.detail&&d(n)}})),function(t,e){var i=function(){e(t.lazySizes),t.removeEventListener("lazyunveilread",i,!0)};e=e.bind(null,t,t.document),"object"==typeof module&&module.exports?e(require("lazysizes")):t.lazySizes?i():t.addEventListener("lazyunveilread",i,!0)}(window,(function(t,e,i){"use strict";if(t.addEventListener){var n=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,o=/parent-fit["']*\s*:\s*["']*(contain|cover|width)/,r=/parent-container["']*\s*:\s*["']*(.+?)(?=(\s|$|,|'|"|;))/,s=/^picture$/i,a={getParent:function(e,i){var n=e,o=e.parentNode;return i&&"prev"!=i||!o||!s.test(o.nodeName||"")||(o=o.parentNode),"self"!=i&&(n="prev"==i?e.previousElementSibling:i&&(o.closest||t.jQuery)&&(o.closest?o.closest(i):jQuery(o).closest(i)[0])||o),n},getFit:function(t){var e,i,n=function(t){return getComputedStyle(t,null)||{}}(t),s=n.content||n.fontFamily,l={fit:t._lazysizesParentFit||t.getAttribute("data-parent-fit")};return!l.fit&&s&&(e=s.match(o))&&(l.fit=e[1]),l.fit?(!(i=t._lazysizesParentContainer||t.getAttribute("data-parent-container"))&&s&&(e=s.match(r))&&(i=e[1]),l.parent=a.getParent(t,i)):l.fit=n.objectFit,l},getImageRatio:function(e){var i,o,r,a,l,c=e.parentNode,u=c&&s.test(c.nodeName||"")?c.querySelectorAll("source, img"):[e];for(i=0;i40&&(i=e/n)&&("cover"==a&&o>i||"contain"==a&&i>o)&&(r=e*(o/i)),r):e}};i.parentFit=a,e.addEventListener("lazybeforesizes",(function(t){if(!t.defaultPrevented&&t.detail.instance==i){var e=t.target;t.detail.width=a.calculateSize(e,t.detail.width)}}))}})),function(t,e){var i=function(t,e){"use strict";if(e.getElementsByClassName){var i,n,o=e.documentElement,r=t.Date,s=t.HTMLPictureElement,a="addEventListener",l="getAttribute",c=t[a],u=t.setTimeout,d=t.requestAnimationFrame||u,f=t.requestIdleCallback,h=/^picture$/i,p=["load","error","lazyincluded","_lazyloaded"],m={},g=Array.prototype.forEach,v=function(t,e){return m[e]||(m[e]=new RegExp("(\\s|^)"+e+"(\\s|$)")),m[e].test(t[l]("class")||"")&&m[e]},y=function(t,e){v(t,e)||t.setAttribute("class",(t[l]("class")||"").trim()+" "+e)},b=function(t,e){var i;(i=v(t,e))&&t.setAttribute("class",(t[l]("class")||"").replace(i," "))},x=function(t,e,i){var n=i?a:"removeEventListener";i&&x(t,e),p.forEach((function(i){t[n](i,e)}))},w=function(t,n,o,r,s){var a=e.createEvent("CustomEvent");return o||(o={}),o.instance=i,a.initCustomEvent(n,!r,!s,o),t.dispatchEvent(a),a},S=function(e,i){var o;!s&&(o=t.picturefill||n.pf)?o({reevaluate:!0,elements:[e]}):i&&i.src&&(e.src=i.src)},E=function(t,e){return(getComputedStyle(t,null)||{})[e]},C=function(t,e,i){for(i=i||t.offsetWidth;i49?function(){f(a,{timeout:s}),s!==n.ricTimeout&&(s=n.ricTimeout)}:A((function(){u(a)}),!0);return function(t){var n;(t=!0===t)&&(s=33),e||(e=!0,(n=o-(r.now()-i))<0&&(n=0),t||n<9?l():u(l,n))}},k=function(t){var e,i,n=function(){e=null,t()},o=function(){var t=r.now()-i;t<99?u(o,99-t):(f||n)(n)};return function(){i=r.now(),e||(e=u(o,99))}};!function(){var e,i={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(e in n=t.lazySizesConfig||t.lazysizesConfig||{},i)e in n||(n[e]=i[e]);t.lazySizesConfig=n,u((function(){n.init&&I()}))}();var D=function(){var s,d,f,p,m,C,D,I,M,T,L,N,F,O,R=/^img$/i,U=/^iframe$/i,j="onscroll"in t&&!/glebot/.test(navigator.userAgent),W=0,H=0,V=-1,q=function(t){H--,t&&t.target&&x(t.target,q),(!t||H<0||!t.target)&&(H=0)},B=function(t,i){var n,r=t,s="hidden"==E(e.body,"visibility")||"hidden"!=E(t,"visibility");for(I-=i,L+=i,M-=i,T+=i;s&&(r=r.offsetParent)&&r!=e.body&&r!=o;)(s=(E(r,"opacity")||1)>0)&&"visible"!=E(r,"overflow")&&(n=r.getBoundingClientRect(),s=T>n.left&&Mn.top-1&&I500&&o.clientWidth>500?500:370),N=n.expand,F=N*n.expFactor),W2&&p>2&&!e.hidden?(W=F,V=0):W=p>1&&V>1&&H<6?N:0;for(;r=h&&(I=a.top)<=D&&(T=a.right)>=h*O&&(M=a.left)<=C&&(L||T||M||I)&&(n.loadHidden||"hidden"!=E(v[r],"visibility"))&&(d&&H<3&&!m&&(p<3||V<4)||B(v[r],f))){if(Q(v[r]),u=!0,H>9)break}else!u&&d&&!c&&H<4&&V<4&&p>2&&(s[0]||n.preloadAfterLoad)&&(s[0]||!m&&(L||T||M||I||"auto"!=v[r][l](n.sizesAttr)))&&(c=s[0]||v[r]);else Q(v[r]);c&&!u&&Q(c)}},X=P(Z),G=function(t){y(t.target,n.loadedClass),b(t.target,n.loadingClass),x(t.target,Y),w(t.target,"lazyloaded")},$=A(G),Y=function(t){$({target:t.target})},K=function(t){var e,i=t[l](n.srcsetAttr);(e=n.customMedia[t[l]("data-media")||t[l]("media")])&&t.setAttribute("media",e),i&&t.setAttribute("srcset",i)},J=A((function(t,e,i,o,r){var s,a,c,d,p,m;(p=w(t,"lazybeforeunveil",e)).defaultPrevented||(o&&(i?y(t,n.autosizesClass):t.setAttribute("sizes",o)),a=t[l](n.srcsetAttr),s=t[l](n.srcAttr),r&&(d=(c=t.parentNode)&&h.test(c.nodeName||"")),m=e.firesLoad||"src"in t&&(a||s||d),p={target:t},m&&(x(t,q,!0),clearTimeout(f),f=u(q,2500),y(t,n.loadingClass),x(t,Y,!0)),d&&g.call(c.getElementsByTagName("source"),K),a?t.setAttribute("srcset",a):s&&!d&&(U.test(t.nodeName)?function(t,e){try{t.contentWindow.location.replace(e)}catch(i){t.src=e}}(t,s):t.src=s),r&&(a||d)&&S(t,{src:s})),t._lazyRace&&delete t._lazyRace,b(t,n.lazyClass),z((function(){(!m||t.complete&&t.naturalWidth>1)&&(m?q(p):H--,G(p))}),!0)})),Q=function(t){var e,i=R.test(t.nodeName),o=i&&(t[l](n.sizesAttr)||t[l]("sizes")),r="auto"==o;(!r&&d||!i||!t[l]("src")&&!t.srcset||t.complete||v(t,n.errorClass)||!v(t,n.lazyClass))&&(e=w(t,"lazyunveilread").detail,r&&_.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,H++,J(t,e,r,o,i))},tt=function(){if(!d){if(r.now()-m<999)return void u(tt,999);var t=k((function(){n.loadMode=3,X()}));d=!0,n.loadMode=3,X(),c("scroll",(function(){3==n.loadMode&&(n.loadMode=2),t()}),!0)}};return{_:function(){m=r.now(),i.elements=e.getElementsByClassName(n.lazyClass),s=e.getElementsByClassName(n.lazyClass+" "+n.preloadClass),O=n.hFac,c("scroll",X,!0),c("resize",X,!0),t.MutationObserver?new MutationObserver(X).observe(o,{childList:!0,subtree:!0,attributes:!0}):(o[a]("DOMNodeInserted",X,!0),o[a]("DOMAttrModified",X,!0),setInterval(X,999)),c("hashchange",X,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach((function(t){e[a](t,X,!0)})),/d$|^c/.test(e.readyState)?tt():(c("load",tt),e[a]("DOMContentLoaded",X),u(tt,2e4)),i.elements.length?(Z(),z._lsFlush()):X()},checkElems:X,unveil:Q}}(),_=function(){var t,i=A((function(t,e,i,n){var o,r,s;if(t._lazysizesWidth=n,n+="px",t.setAttribute("sizes",n),h.test(e.nodeName||""))for(r=0,s=(o=e.getElementsByTagName("source")).length;r0&&void 0!==arguments[0]&&arguments[0];if(t&&(p=!0),p)return h=(0,d.default)(h,g),(0,u.default)(h,g.once),h},y=function(){h=(0,f.default)(),v()};t.exports={init:function(t){return g=o(g,t),h=(0,f.default)(),function(t){return!0===t||"mobile"===t&&c.default.mobile()||"phone"===t&&c.default.phone()||"tablet"===t&&c.default.tablet()||"function"==typeof t&&!0===t()}(g.disable)||m?void h.forEach((function(t,e){t.node.removeAttribute("data-aos"),t.node.removeAttribute("data-aos-easing"),t.node.removeAttribute("data-aos-duration"),t.node.removeAttribute("data-aos-delay")})):(document.querySelector("body").setAttribute("data-aos-easing",g.easing),document.querySelector("body").setAttribute("data-aos-duration",g.duration),document.querySelector("body").setAttribute("data-aos-delay",g.delay),"DOMContentLoaded"===g.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?v(!0):"load"===g.startEvent?window.addEventListener(g.startEvent,(function(){v(!0)})):document.addEventListener(g.startEvent,(function(){v(!0)})),window.addEventListener("resize",(0,a.default)(v,50,!0)),window.addEventListener("orientationchange",(0,a.default)(v,50,!0)),window.addEventListener("scroll",(0,s.default)((function(){(0,u.default)(h,g.once)}),99)),g.disableMutationObserver||(0,l.default)("[data-aos]",y),h)},refresh:v,refreshHard:y}},function(t,e){},,,,,function(t,e){(function(e){"use strict";function i(t,e,i){function o(e){var i=f,n=h;return f=h=void 0,y=e,m=t.apply(n,i)}function s(t){return y=t,g=setTimeout(c,e),S?o(t):m}function l(t){var i=t-v;return void 0===v||i>=e||i<0||E&&t-y>=p}function c(){var t=w();return l(t)?u(t):void(g=setTimeout(c,function(t){var i=e-(t-v);return E?x(i,p-(t-y)):i}(t)))}function u(t){return g=void 0,C&&f?o(t):(f=h=void 0,m)}function d(){var t=w(),i=l(t);if(f=arguments,h=this,v=t,i){if(void 0===g)return s(v);if(E)return g=setTimeout(c,e),o(v)}return void 0===g&&(g=setTimeout(c,e)),m}var f,h,p,m,g,v,y=0,S=!1,E=!1,C=!0;if("function"!=typeof t)throw new TypeError(a);return e=r(e)||0,n(i)&&(S=!!i.leading,p=(E="maxWait"in i)?b(r(i.maxWait)||0,e):p,C="trailing"in i?!!i.trailing:C),d.cancel=function(){void 0!==g&&clearTimeout(g),y=0,f=v=h=g=void 0},d.flush=function(){return void 0===g?m:u(w())},d}function n(t){var e=void 0===t?"undefined":s(t);return!!t&&("object"==e||"function"==e)}function o(t){return"symbol"==(void 0===t?"undefined":s(t))||function(t){return!!t&&"object"==(void 0===t?"undefined":s(t))}(t)&&y.call(t)==c}function r(t){if("number"==typeof t)return t;if(o(t))return l;if(n(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=n(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(u,"");var i=f.test(t);return i||h.test(t)?p(t.slice(2),i?2:8):d.test(t)?l:+t}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a="Expected a function",l=NaN,c="[object Symbol]",u=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,h=/^0o[0-7]+$/i,p=parseInt,m="object"==(void 0===e?"undefined":s(e))&&e&&e.Object===Object&&e,g="object"==("undefined"==typeof self?"undefined":s(self))&&self&&self.Object===Object&&self,v=m||g||Function("return this")(),y=Object.prototype.toString,b=Math.max,x=Math.min,w=function(){return v.Date.now()};t.exports=function(t,e,o){var r=!0,s=!0;if("function"!=typeof t)throw new TypeError(a);return n(o)&&(r="leading"in o?!!o.leading:r,s="trailing"in o?!!o.trailing:s),i(t,e,{leading:r,maxWait:e,trailing:s})}}).call(e,function(){return this}())},function(t,e){(function(e){"use strict";function i(t){var e=void 0===t?"undefined":r(t);return!!t&&("object"==e||"function"==e)}function n(t){return"symbol"==(void 0===t?"undefined":r(t))||function(t){return!!t&&"object"==(void 0===t?"undefined":r(t))}(t)&&v.call(t)==l}function o(t){if("number"==typeof t)return t;if(n(t))return a;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(c,"");var o=d.test(t);return o||f.test(t)?h(t.slice(2),o?2:8):u.test(t)?a:+t}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s="Expected a function",a=NaN,l="[object Symbol]",c=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,f=/^0o[0-7]+$/i,h=parseInt,p="object"==(void 0===e?"undefined":r(e))&&e&&e.Object===Object&&e,m="object"==("undefined"==typeof self?"undefined":r(self))&&self&&self.Object===Object&&self,g=p||m||Function("return this")(),v=Object.prototype.toString,y=Math.max,b=Math.min,x=function(){return g.Date.now()};t.exports=function(t,e,n){function r(e){var i=f,n=h;return f=h=void 0,w=e,m=t.apply(n,i)}function a(t){return w=t,g=setTimeout(c,e),S?r(t):m}function l(t){var i=t-v;return void 0===v||i>=e||i<0||E&&t-w>=p}function c(){var t=x();return l(t)?u(t):void(g=setTimeout(c,function(t){var i=e-(t-v);return E?b(i,p-(t-w)):i}(t)))}function u(t){return g=void 0,C&&f?r(t):(f=h=void 0,m)}function d(){var t=x(),i=l(t);if(f=arguments,h=this,v=t,i){if(void 0===g)return a(v);if(E)return g=setTimeout(c,e),r(v)}return void 0===g&&(g=setTimeout(c,e)),m}var f,h,p,m,g,v,w=0,S=!1,E=!1,C=!0;if("function"!=typeof t)throw new TypeError(s);return e=o(e)||0,i(n)&&(S=!!n.leading,p=(E="maxWait"in n)?y(o(n.maxWait)||0,e):p,C="trailing"in n?!!n.trailing:C),d.cancel=function(){void 0!==g&&clearTimeout(g),w=0,f=v=h=g=void 0},d.flush=function(){return void 0===g?m:u(x())},d}}).call(e,function(){return this}())},function(t,e){"use strict";function i(t){t&&t.forEach((function(t){var e=Array.prototype.slice.call(t.addedNodes),i=Array.prototype.slice.call(t.removedNodes);e.concat(i).filter((function(t){return t.hasAttribute&&t.hasAttribute("data-aos")})).length&&r()}))}Object.defineProperty(e,"__esModule",{value:!0});var n=window.document,o=window.MutationObserver||window.WebKitMutationObserver,r=function(){};e.default=function(t,e){var s=new o(i);r=e,s.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}},function(t,e){"use strict";function i(){return navigator.userAgent||navigator.vendor||window.opera||""}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;it.position?t.node.classList.add("aos-animate"):void 0!==n&&("false"===n||!i&&"true"!==n)&&t.node.classList.remove("aos-animate")}(t,n+i,e)}))}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(t){return t&&t.__esModule?t:{default:t}}(i(12));e.default=function(t,e){return t.forEach((function(t,i){t.node.classList.add("aos-init"),t.position=(0,n.default)(t.node,e.offset)})),t}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(t){return t&&t.__esModule?t:{default:t}}(i(13));e.default=function(t,e){var i=0,o=0,r=window.innerHeight,s={offset:t.getAttribute("data-aos-offset"),anchor:t.getAttribute("data-aos-anchor"),anchorPlacement:t.getAttribute("data-aos-anchor-placement")};switch(s.offset&&!isNaN(s.offset)&&(o=parseInt(s.offset)),s.anchor&&document.querySelectorAll(s.anchor)&&(t=document.querySelectorAll(s.anchor)[0]),i=(0,n.default)(t).top,s.anchorPlacement){case"top-bottom":break;case"center-bottom":i+=t.offsetHeight/2;break;case"bottom-bottom":i+=t.offsetHeight;break;case"top-center":i+=r/2;break;case"bottom-center":i+=r/2+t.offsetHeight;break;case"center-center":i+=r/2+t.offsetHeight/2;break;case"top-top":i+=r;break;case"bottom-top":i+=t.offsetHeight+r;break;case"center-top":i+=t.offsetHeight/2+r}return s.anchorPlacement||s.offset||isNaN(e)||(o=e),i+o}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default=function(t){for(var e=0,i=0;t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop);)e+=t.offsetLeft-("BODY"!=t.tagName?t.scrollLeft:0),i+=t.offsetTop-("BODY"!=t.tagName?t.scrollTop:0),t=t.offsetParent;return{top:i,left:e}}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default=function(t){t=t||document.querySelectorAll("[data-aos]");var e=[];return[].forEach.call(t,(function(t,i){e.push({node:t})})),e}}])})),function(t){var e=!1;if("function"==typeof define&&define.amd&&(define(t),e=!0),"object"==typeof exports&&(module.exports=t(),e=!0),!e){var i=window.Cookies,n=window.Cookies=t();n.noConflict=function(){return window.Cookies=i,n}}}((function(){function t(){for(var t=0,e={};t1){if("number"==typeof(r=t({path:"/"},n.defaults,r)).expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*r.expires),r.expires=a}r.expires=r.expires?r.expires.toUTCString():"";try{s=JSON.stringify(o),/^[\{\[]/.test(s)&&(o=s)}catch(t){}o=i.write?i.write(o,e):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=(e=(e=encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var l="";for(var c in r)r[c]&&(l+="; "+c,!0!==r[c]&&(l+="="+r[c]));return document.cookie=e+"="+o+l}e||(s={});for(var u=document.cookie?document.cookie.split("; "):[],d=/(%[0-9A-Z]{2})+/g,f=0;f1&&(t=e.modulo(t,this.slideableWidth),t-=this.slideableWidth,this.shiftWrapCells(t)),this.setTranslateX(t,this.isAnimating),this.dispatchScrollEvent()},setTranslateX:function(t,e){t+=this.cursorPosition,t=this.options.rightToLeft?-t:t;var i=this.getPositionValue(t);this.slider.style.transform=e?"translate3d("+i+",0,0)":"translateX("+i+")"},dispatchScrollEvent:function(){var t=this.slides[0];if(t){var e=-this.x-t.target,i=e/this.slidesWidth;this.dispatchEvent("scroll",null,[i,e])}},positionSliderAtSelected:function(){this.cells.length&&(this.x=-this.selectedSlide.target,this.velocity=0,this.positionSlider())},getPositionValue:function(t){return this.options.percentPosition?.01*Math.round(t/this.size.innerWidth*1e4)+"%":Math.round(t)+"px"},settle:function(t){!this.isPointerDown&&Math.round(100*this.x)==Math.round(100*t)&&this.restingFrames++,this.restingFrames>2&&(this.isAnimating=!1,delete this.isFreeScrolling,this.positionSlider(),this.dispatchEvent("settle",null,[this.selectedIndex]))},shiftWrapCells:function(t){var e=this.cursorPosition+t;this._shiftCells(this.beforeShiftCells,e,-1);var i=this.size.innerWidth-(t+this.slideableWidth+this.cursorPosition);this._shiftCells(this.afterShiftCells,i,1)},_shiftCells:function(t,e,i){for(var n=0;n0?i:0;o.wrapShift(r),e-=o.size.outerWidth}},_unshiftCells:function(t){if(t&&t.length)for(var e=0;e0){var i=this.cells[t-1];e=i.x+i.size.outerWidth}for(var n=this.cells.length,o=t;o0;){var o=this.cells[e];if(!o)break;n.push(o),e+=i,t-=o.size.outerWidth}return n},d._containSlides=function(){if(this.options.contain&&!this.options.wrapAround&&this.cells.length){var t=this.options.rightToLeft,e=t?"marginRight":"marginLeft",i=t?"marginLeft":"marginRight",n=this.slideableWidth-this.getLastCell().size[i],o=n1))return t;var i=n.modulo(t,e),o=Math.abs(i-this.selectedIndex),r=Math.abs(i+e-this.selectedIndex),s=Math.abs(i-e-this.selectedIndex);!this.isDragSelect&&r=e&&(this.x+=this.slideableWidth)},d.previous=function(t,e){this.select(this.selectedIndex-1,t,e)},d.next=function(t,e){this.select(this.selectedIndex+1,t,e)},d.updateSelectedSlide=function(){var t=this.slides[this.selectedIndex];t&&(this.unselectSelectedSlide(),this.selectedSlide=t,t.select(),this.selectedCells=t.cells,this.selectedElements=t.getCellElements(),this.selectedCell=t.cells[0],this.selectedElement=this.selectedElements[0])},d.unselectSelectedSlide=function(){this.selectedSlide&&this.selectedSlide.unselect()},d.selectInitialIndex=function(){var t=this.options.initialIndex;if(this.isInitActivated)this.select(this.selectedIndex,!1,!0);else{if(t&&"string"==typeof t)if(this.queryCell(t))return void this.selectCell(t,!1,!0);var e=0;t&&this.slides[t]&&(e=t),this.select(e,!1,!0)}},d.selectCell=function(t,e,i){var n=this.queryCell(t);if(n){var o=this.getCellSlideIndex(n);this.select(o,e,i)}},d.getCellSlideIndex=function(t){for(var e=0;e *"),this.getCell(t))},d.getAdjacentCellElements=function(t,e){if(!t)return this.selectedSlide.getCellElements();e=void 0===e?this.selectedIndex:e;var i=this.slides.length;if(1+2*t>=i)return this.getCellElements();for(var o=[],r=e-t;r<=e+t;r++){var s=this.options.wrapAround?n.modulo(r,i):r,a=this.slides[s];a&&(o=o.concat(a.getCellElements()))}return o},d.queryCell=function(t){if("number"==typeof t)return this.cells[t];if("string"==typeof t){if(t.match(/^[#.]?[\d/]/))return;t=this.element.querySelector(t)}return this.getCell(t)},d.uiChange=function(){this.emitEvent("uiChange")},d.childUIPointerDown=function(t){"touchstart"!=t.type&&t.preventDefault(),this.focus()},d.onresize=function(){this.resize()},n.debounceMethod(u,"onresize",150),d.resize=function(){if(this.isActive&&!this.isAnimating&&!this.isDragging){this.getSize(),this.options.wrapAround&&(this.x=n.modulo(this.x,this.slideableWidth)),this.positionCells(),this._getWrapShiftCells(),this.setGallerySize(),this.emitEvent("resize");var t=this.selectedElements&&this.selectedElements[0];this.selectCell(t,!1,!0)}},d.onkeydown=function(t){var e=document.activeElement&&document.activeElement!=this.element;if(this.options.accessibility&&!e){var i=u.keyboardHandlers[t.keyCode];i&&i.call(this)}},u.keyboardHandlers={37:function(){var t=this.options.rightToLeft?"next":"previous";this.uiChange(),this[t]()},39:function(){var t=this.options.rightToLeft?"previous":"next";this.uiChange(),this[t]()}},d.focus=function(){var e=t.pageYOffset;this.element.focus({preventScroll:!0}),t.pageYOffset!=e&&t.scrollTo(t.pageXOffset,e)},d.deactivate=function(){this.isActive&&(this.element.classList.remove("flickity-enabled"),this.element.classList.remove("flickity-rtl"),this.unselectSelectedSlide(),this.cells.forEach((function(t){t.destroy()})),this.element.removeChild(this.viewport),a(this.slider.children,this.element),this.options.accessibility&&(this.element.removeAttribute("tabIndex"),this.element.removeEventListener("keydown",this)),this.isActive=!1,this.emitEvent("deactivate"))},d.destroy=function(){this.deactivate(),t.removeEventListener("resize",this),this.allOff(),this.emitEvent("destroy"),delete this.element.flickityGUID,delete c[this.guid]},n.extend(d,s),u.data=function(t){var e=(t=n.getQueryElement(t))&&t.flickityGUID;return e&&c[e]},n.htmlInit(u,"flickity"),u.Cell=o,u.Slide=r,u})), +/*! + * Unipointer v2.4.0 + * base class for doing one thing with pointer event + * MIT license + */ +function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],(function(i){return e(t,i)})):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,(function(t,e){function i(){}var n=i.prototype=Object.create(e.prototype);n.bindStartEvent=function(t){this._bindStartEvent(t,!0)},n.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},n._bindStartEvent=function(e,i){var n=(i=void 0===i||i)?"addEventListener":"removeEventListener",o="mousedown";"ontouchstart"in t?o="touchstart":t.PointerEvent&&(o="pointerdown"),e[n](o,this)},n.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},n.getTouch=function(t){for(var e=0;e3||Math.abs(t.y)>3},n.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e]),this._dragPointerUp(t,e)},n._dragPointerUp=function(t,e){this.isDragging?this._dragEnd(t,e):this._staticClick(t,e)},n._dragStart=function(t,e){this.isDragging=!0,this.isPreventingClicks=!0,this.dragStart(t,e)},n.dragStart=function(t,e){this.emitEvent("dragStart",[t,e])},n._dragMove=function(t,e,i){this.isDragging&&this.dragMove(t,e,i)},n.dragMove=function(t,e,i){t.preventDefault(),this.emitEvent("dragMove",[t,e,i])},n._dragEnd=function(t,e){this.isDragging=!1,setTimeout(function(){delete this.isPreventingClicks}.bind(this)),this.dragEnd(t,e)},n.dragEnd=function(t,e){this.emitEvent("dragEnd",[t,e])},n.onclick=function(t){this.isPreventingClicks&&t.preventDefault()},n._staticClick=function(t,e){this.isIgnoringMouseUp&&"mouseup"==t.type||(this.staticClick(t,e),"mouseup"!=t.type&&(this.isIgnoringMouseUp=!0,setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)))},n.staticClick=function(t,e){this.emitEvent("staticClick",[t,e])},i.getPointerPoint=e.getPointerPoint,i})),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/drag",["./flickity","unidragger/unidragger","fizzy-ui-utils/utils"],(function(i,n,o){return e(t,i,n,o)})):"object"==typeof module&&module.exports?module.exports=e(t,require("./flickity"),require("unidragger"),require("fizzy-ui-utils")):t.Flickity=e(t,t.Flickity,t.Unidragger,t.fizzyUIUtils)}(window,(function(t,e,i,n){n.extend(e.defaults,{draggable:">1",dragThreshold:3}),e.createMethods.push("_createDrag");var o=e.prototype;n.extend(o,i.prototype),o._touchActionValue="pan-y",o._createDrag=function(){this.on("activate",this.onActivateDrag),this.on("uiChange",this._uiChangeDrag),this.on("deactivate",this.onDeactivateDrag),this.on("cellChange",this.updateDraggable)},o.onActivateDrag=function(){this.handles=[this.viewport],this.bindHandles(),this.updateDraggable()},o.onDeactivateDrag=function(){this.unbindHandles(),this.element.classList.remove("is-draggable")},o.updateDraggable=function(){">1"==this.options.draggable?this.isDraggable=this.slides.length>1:this.isDraggable=this.options.draggable,this.isDraggable?this.element.classList.add("is-draggable"):this.element.classList.remove("is-draggable")},o.bindDrag=function(){this.options.draggable=!0,this.updateDraggable()},o.unbindDrag=function(){this.options.draggable=!1,this.updateDraggable()},o._uiChangeDrag=function(){delete this.isFreeScrolling},o.pointerDown=function(e,i){this.isDraggable?this.okayPointerDown(e)&&(this._pointerDownPreventDefault(e),this.pointerDownFocus(e),document.activeElement!=this.element&&this.pointerDownBlur(),this.dragX=this.x,this.viewport.classList.add("is-pointer-down"),this.pointerDownScroll=s(),t.addEventListener("scroll",this),this._pointerDownDefault(e,i)):this._pointerDownDefault(e,i)},o._pointerDownDefault=function(t,e){this.pointerDownPointer={pageX:e.pageX,pageY:e.pageY},this._bindPostStartEvents(t),this.dispatchEvent("pointerDown",t,[e])};var r={INPUT:!0,TEXTAREA:!0,SELECT:!0};function s(){return{x:t.pageXOffset,y:t.pageYOffset}}return o.pointerDownFocus=function(t){r[t.target.nodeName]||this.focus()},o._pointerDownPreventDefault=function(t){var e="touchstart"==t.type,i="touch"==t.pointerType,n=r[t.target.nodeName];e||i||n||t.preventDefault()},o.hasDragStarted=function(t){return Math.abs(t.x)>this.options.dragThreshold},o.pointerUp=function(t,e){delete this.isTouchScrolling,this.viewport.classList.remove("is-pointer-down"),this.dispatchEvent("pointerUp",t,[e]),this._dragPointerUp(t,e)},o.pointerDone=function(){t.removeEventListener("scroll",this),delete this.pointerDownScroll},o.dragStart=function(e,i){this.isDraggable&&(this.dragStartPosition=this.x,this.startAnimation(),t.removeEventListener("scroll",this),this.dispatchEvent("dragStart",e,[i]))},o.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.dispatchEvent("pointerMove",t,[e,i]),this._dragMove(t,e,i)},o.dragMove=function(t,e,i){if(this.isDraggable){t.preventDefault(),this.previousDragX=this.dragX;var n=this.options.rightToLeft?-1:1;this.options.wrapAround&&(i.x%=this.slideableWidth);var o=this.dragStartPosition+i.x*n;if(!this.options.wrapAround&&this.slides.length){var r=Math.max(-this.slides[0].target,this.dragStartPosition);o=o>r?.5*(o+r):o;var s=Math.min(-this.getLastSlide().target,this.dragStartPosition);o=othis.slides[0].target&&-n1,r=o?n.modulo(e,i):e,s=this.slides[r];if(!s)return null;var a=o?this.slideableWidth*Math.floor(e/i):0;return t-(s.target+a)},o.dragEndBoostSelect=function(){if(void 0===this.previousDragX||!this.dragMoveTime||new Date-this.dragMoveTime>100)return 0;var t=this.getSlideDistance(-this.dragX,this.selectedIndex),e=this.previousDragX-this.dragX;return t>0&&e>0?1:t<0&&e<0?-1:0},o.staticClick=function(t,e){var i=this.getParentCell(t.target),n=i&&i.element,o=i&&this.cells.indexOf(i);this.dispatchEvent("staticClick",t,[e,n,o])},o.onscroll=function(){var t=s(),e=this.pointerDownScroll.x-t.x,i=this.pointerDownScroll.y-t.y;(Math.abs(e)>3||Math.abs(i)>3)&&this._pointerDone()},e})),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/prev-next-button",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],(function(i,n,o){return e(t,i,n,o)})):"object"==typeof module&&module.exports?module.exports=e(t,require("./flickity"),require("unipointer"),require("fizzy-ui-utils")):e(t,t.Flickity,t.Unipointer,t.fizzyUIUtils)}(window,(function(t,e,i,n){"use strict";var o="http://www.w3.org/2000/svg";function r(t,e){this.direction=t,this.parent=e,this._create()}r.prototype=Object.create(i.prototype),r.prototype._create=function(){this.isEnabled=!0,this.isPrevious=-1==this.direction;var t=this.parent.options.rightToLeft?1:-1;this.isLeft=this.direction==t;var e=this.element=document.createElement("button");e.className="flickity-button flickity-prev-next-button",e.className+=this.isPrevious?" flickity-previous":" flickity-next",e.setAttribute("type","button"),this.disable(),e.setAttribute("aria-label",this.isPrevious?"Previous":"Next");var i=this.createSVG();e.appendChild(i),this.parent.on("select",this.update.bind(this)),this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))},r.prototype.activate=function(){this.bindStartEvent(this.element),this.element.addEventListener("click",this),this.parent.element.appendChild(this.element)},r.prototype.deactivate=function(){this.parent.element.removeChild(this.element),this.unbindStartEvent(this.element),this.element.removeEventListener("click",this)},r.prototype.createSVG=function(){var t=document.createElementNS(o,"svg");t.setAttribute("class","flickity-button-icon"),t.setAttribute("viewBox","0 0 100 100");var e=document.createElementNS(o,"path"),i=function(t){if("string"==typeof t)return t;return"M "+t.x0+",50 L "+t.x1+","+(t.y1+50)+" L "+t.x2+","+(t.y2+50)+" L "+t.x3+",50 L "+t.x2+","+(50-t.y2)+" L "+t.x1+","+(50-t.y1)+" Z"}(this.parent.options.arrowShape);return e.setAttribute("d",i),e.setAttribute("class","arrow"),this.isLeft||e.setAttribute("transform","translate(100, 100) rotate(180) "),t.appendChild(e),t},r.prototype.handleEvent=n.handleEvent,r.prototype.onclick=function(){if(this.isEnabled){this.parent.uiChange();var t=this.isPrevious?"previous":"next";this.parent[t]()}},r.prototype.enable=function(){this.isEnabled||(this.element.disabled=!1,this.isEnabled=!0)},r.prototype.disable=function(){this.isEnabled&&(this.element.disabled=!0,this.isEnabled=!1)},r.prototype.update=function(){var t=this.parent.slides;if(this.parent.options.wrapAround&&t.length>1)this.enable();else{var e=t.length?t.length-1:0,i=this.isPrevious?0:e;this[this.parent.selectedIndex==i?"disable":"enable"]()}},r.prototype.destroy=function(){this.deactivate(),this.allOff()},n.extend(e.defaults,{prevNextButtons:!0,arrowShape:{x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}}),e.createMethods.push("_createPrevNextButtons");var s=e.prototype;return s._createPrevNextButtons=function(){this.options.prevNextButtons&&(this.prevButton=new r(-1,this),this.nextButton=new r(1,this),this.on("activate",this.activatePrevNextButtons))},s.activatePrevNextButtons=function(){this.prevButton.activate(),this.nextButton.activate(),this.on("deactivate",this.deactivatePrevNextButtons)},s.deactivatePrevNextButtons=function(){this.prevButton.deactivate(),this.nextButton.deactivate(),this.off("deactivate",this.deactivatePrevNextButtons)},e.PrevNextButton=r,e})),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/page-dots",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],(function(i,n,o){return e(t,i,n,o)})):"object"==typeof module&&module.exports?module.exports=e(t,require("./flickity"),require("unipointer"),require("fizzy-ui-utils")):e(t,t.Flickity,t.Unipointer,t.fizzyUIUtils)}(window,(function(t,e,i,n){function o(t){this.parent=t,this._create()}o.prototype=Object.create(i.prototype),o.prototype._create=function(){this.holder=document.createElement("ol"),this.holder.className="flickity-page-dots",this.dots=[],this.handleClick=this.onClick.bind(this),this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))},o.prototype.activate=function(){this.setDots(),this.holder.addEventListener("click",this.handleClick),this.bindStartEvent(this.holder),this.parent.element.appendChild(this.holder)},o.prototype.deactivate=function(){this.holder.removeEventListener("click",this.handleClick),this.unbindStartEvent(this.holder),this.parent.element.removeChild(this.holder)},o.prototype.setDots=function(){var t=this.parent.slides.length-this.dots.length;t>0?this.addDots(t):t<0&&this.removeDots(-t)},o.prototype.addDots=function(t){for(var e=document.createDocumentFragment(),i=[],n=this.dots.length,o=n+t,r=n;r.5?t.a:t.b);null!=this.fadeHideIndex&&this.fadeHideIndex!=r&&this.fadeHideIndex!=t.a&&(this.fadeHideIndex,t.b);this.fadeHideIndex=r}},o.getFadeIndexes=function(){return this.isDragging||this.didDragEnd?this.options.wrapAround?this.getFadeDragWrapIndexes():this.getFadeDragLimitIndexes():{a:this.fadeIndex,b:this.selectedIndex}},o.getFadeDragWrapIndexes=function(){var t=this.slides.map((function(t,e){return this.getSlideDistance(-this.x,e)}),this),i=t.map((function(t){return Math.abs(t)})),n=Math.min.apply(Math,i),o=i.indexOf(n),r=t[o],s=this.slides.length,a=r>=0?1:-1;return{a:o,b:e.modulo(o+a,s)}},o.getFadeDragLimitIndexes=function(){for(var t=0,e=0;e0&&(r=parseInt(r[1],10))>=1&&r<8&&(i.isOldIOSPhone=!0)}var s=n.match(/Android\s([0-9\.]*)/),a=s?s[1]:0;(a=parseFloat(a))>=1&&(a<4.4&&(i.isOldAndroid=!0),i.androidVersion=a),i.isMobileOpera=/opera mini|opera mobi/i.test(n)}for(var l,c,u=["transform","perspective","animationName"],d=["","webkit","Moz","ms","O"],f=0;f<4;f++){e=d[f];for(var h=0;h<3;h++)l=u[h],c=e+(e?l.charAt(0).toUpperCase()+l.slice(1):l),!i[l]&&c in t&&(i[l]=c);e&&!i.raf&&(e=e.toLowerCase(),i.raf=window[e+"RequestAnimationFrame"],i.raf&&(i.caf=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]))}if(!i.raf){var p=0;i.raf=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-p)),n=window.setTimeout((function(){t(e+i)}),i);return p=e+i,n},i.caf=function(t){clearTimeout(t)}}return i.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,o.features=i,i}};o.detectFeatures(),o.features.oldIE&&(o.bind=function(t,e,i,n){e=e.split(" ");for(var o,r=(n?"detach":"attach")+"Event",s=function(){i.handleEvent.call(i)},a=0;ae-1?t-e:t<0?e+t:t},Et={},Ct=function(t,e){return Et[t]||(Et[t]=[]),Et[t].push(e)},zt=function(t){var e=Et[t];if(e){var i=Array.prototype.slice.call(arguments);i.shift();for(var n=0;nr.currItem.fitRatio?xt||(Ye(r.currItem,!1,!0),xt=!0):xt&&(Ye(r.currItem),xt=!1)),kt(et,dt.x,dt.y,g))},_t=function(t){t.container&&kt(t.container.style,t.initialPosition.x,t.initialPosition.y,t.initialZoomLevel,t)},It=function(t,e){e[k]=y+t+"px, 0px"+b},Mt=function(t,e){if(!s.loop&&e){var i=u+(mt.x*ht-t)/mt.x,n=Math.round(t-ue.x);(i<0&&n>0||i>=We()-1&&n<0)&&(t=ue.x+n*s.mainScrollEndFriction)}ue.x=t,It(t,d)},Tt=function(t,e){var i=de[t]-pt[t];return ut[t]+ct[t]+i-i*(e/v)},Lt=function(t,e){t.x=e.x,t.y=e.y,e.id&&(t.id=e.id)},Nt=function(t){t.x=Math.round(t.x),t.y=Math.round(t.y)},Ft=null,Ot=function(){Ft&&(o.unbind(document,"mousemove",Ot),o.addClass(t,"pswp--has_mouse"),s.mouseUsed=!0,zt("mouseUsed")),Ft=setTimeout((function(){Ft=null}),100)},Rt=function(t,e){var i=Ze(r.currItem,ft,t);return e&&(tt=i),i},Ut=function(t){return t||(t=r.currItem),t.initialZoomLevel},jt=function(t){return t||(t=r.currItem),t.w>0?s.maxSpreadZoom:1},Wt=function(t,e,i,n){return n===r.currItem.initialZoomLevel?(i[t]=r.currItem.initialPosition[t],!0):(i[t]=Tt(t,n),i[t]>e.min[t]?(i[t]=e.min[t],!0):i[t]=n)return Xt(t),r(i),void(s&&s());r((i-e)*o(a/n)+e),Bt[t].raf=I(c)}};c()},Kt={shout:zt,listen:Ct,viewportSize:ft,options:s,isMainScrollAnimating:function(){return it},getZoomLevel:function(){return g},getCurrentIndex:function(){return u},isDragging:function(){return B},isZooming:function(){return J},setScrollOffset:function(t,e){pt.x=t,F=pt.y=e,zt("updateScrollOffset",pt)},applyZoomPan:function(t,e,i,n){dt.x=e,dt.y=i,g=t,Dt(n)},init:function(){if(!a&&!l){var i;r.framework=o,r.template=t,r.bg=o.getChildByClass(t,"pswp__bg"),T=t.className,a=!0,O=o.detectFeatures(),I=O.raf,M=O.caf,k=O.transform,N=O.oldIE,r.scrollWrap=o.getChildByClass(t,"pswp__scroll-wrap"),r.container=o.getChildByClass(r.scrollWrap,"pswp__container"),d=r.container.style,r.itemHolders=S=[{el:r.container.children[0],wrap:0,index:-1},{el:r.container.children[1],wrap:0,index:-1},{el:r.container.children[2],wrap:0,index:-1}],S[0].el.style.display=S[2].el.style.display="none",function(){if(k){var e=O.perspective&&!_;return y="translate"+(e?"3d(":"("),void(b=O.perspective?", 0px)":")")}k="left",o.addClass(t,"pswp--ie"),It=function(t,e){e.left=t+"px"},_t=function(t){var e=t.fitRatio>1?1:t.fitRatio,i=t.container.style,n=e*t.w,o=e*t.h;i.width=n+"px",i.height=o+"px",i.left=t.initialPosition.x+"px",i.top=t.initialPosition.y+"px"},Dt=function(){if(et){var t=et,e=r.currItem,i=e.fitRatio>1?1:e.fitRatio,n=i*e.w,o=i*e.h;t.width=n+"px",t.height=o+"px",t.left=dt.x+"px",t.top=dt.y+"px"}}}(),m={resize:r.updateSize,orientationchange:function(){clearTimeout(R),R=setTimeout((function(){ft.x!==r.scrollWrap.clientWidth&&r.updateSize()}),500)},scroll:qt,keydown:Ht,click:Vt};var n=O.isOldIOSPhone||O.isOldAndroid||O.isMobileOpera;for(O.animationName&&O.transform&&!n||(s.showAnimationDuration=s.hideAnimationDuration=0),i=0;i=We())&&(u=0),r.currItem=je(u),(O.isOldIOSPhone||O.isOldAndroid)&&(vt=!1),t.setAttribute("aria-hidden","false"),s.modal&&(vt?t.style.position="fixed":(t.style.position="absolute",t.style.top=o.getScrollY()+"px")),void 0===F&&(zt("initialLayout"),F=L=o.getScrollY());var c="pswp--open ";for(s.mainClass&&(c+=s.mainClass+" "),s.showHideOpacity&&(c+="pswp--animate_opacity "),c+=_?"pswp--touch":"pswp--notouch",c+=O.animationName?" pswp--css_animation":"",c+=O.svg?" pswp--svg":"",o.addClass(t,c),r.updateSize(),f=-1,gt=null,i=0;i<3;i++)It((i+f)*mt.x,S[i].el.style);N||o.bind(r.scrollWrap,p,r),Ct("initialZoomInEnd",(function(){r.setContent(S[0],u-1),r.setContent(S[2],u+1),S[0].el.style.display=S[2].el.style.display="block",s.focus&&t.focus(),o.bind(document,"keydown",r),O.transform&&o.bind(r.scrollWrap,"click",r),s.mouseUsed||o.bind(document,"mousemove",Ot),o.bind(window,"resize scroll orientationchange",r),zt("bindEvents")})),r.setContent(S[1],u),r.updateCurrItem(),zt("afterInit"),vt||(x=setInterval((function(){Zt||B||J||g!==r.currItem.initialZoomLevel||r.updateSize()}),1e3)),o.addClass(t,"pswp--visible")}},close:function(){a&&(a=!1,l=!0,zt("close"),o.unbind(window,"resize scroll orientationchange",r),o.unbind(window,"scroll",m.scroll),o.unbind(document,"keydown",r),o.unbind(document,"mousemove",Ot),O.transform&&o.unbind(r.scrollWrap,"click",r),B&&o.unbind(window,h,r),clearTimeout(R),zt("unbindEvents"),He(r.currItem,null,!0,r.destroy))},destroy:function(){zt("destroy"),Fe&&clearTimeout(Fe),t.setAttribute("aria-hidden","true"),t.className=T,x&&clearInterval(x),o.unbind(r.scrollWrap,p,r),o.unbind(window,"scroll",r),pe(),$t(),Et=null},panTo:function(t,e,i){i||(t>tt.min.x?t=tt.min.x:ttt.min.y?e=tt.min.y:e=3&&(f+=gt+(gt>0?-3:3),i=3);for(var n=0;n0?(e=S.shift(),S[2]=e,f++,It((f+2)*mt.x,e.el.style),r.setContent(e,u-i+n+1+1)):(e=S.pop(),S.unshift(e),f--,It(f*mt.x,e.el.style),r.setContent(e,u+i-n-1-1));if(et&&1===Math.abs(gt)){var o=je(E);o.initialZoomLevel!==g&&(Ze(o,ft),Ye(o),_t(o))}gt=0,r.updateCurrZoomItem(),E=u,zt("afterChange")}}},updateSize:function(e){if(!vt&&s.modal){var i=o.getScrollY();if(F!==i&&(t.style.top=i+"px",F=i),!e&&bt.x===window.innerWidth&&bt.y===window.innerHeight)return;bt.x=window.innerWidth,bt.y=window.innerHeight,t.style.height=bt.y+"px"}if(ft.x=r.scrollWrap.clientWidth,ft.y=r.scrollWrap.clientHeight,qt(),mt.x=ft.x+Math.round(ft.x*s.spacing),mt.y=ft.y,Mt(mt.x*ht),zt("beforeResize"),void 0!==f){for(var n,a,l,c=0;c<3;c++)n=S[c],It((c+f)*mt.x,n.el.style),l=u+c-1,s.loop&&We()>2&&(l=St(l)),(a=je(l))&&(w||a.needsUpdate||!a.bounds)?(r.cleanSlide(a),r.setContent(n,l),1===c&&(r.currItem=a,r.updateCurrZoomItem(!0)),a.needsUpdate=!1):-1===n.index&&l>=0&&r.setContent(n,l),a&&a.container&&(Ze(a,ft),Ye(a),_t(a));w=!1}v=g=r.currItem.initialZoomLevel,(tt=r.currItem.bounds)&&(dt.x=tt.center.x,dt.y=tt.center.y,Dt(!0)),zt("resize")},zoomTo:function(t,e,i,n,r){e&&(v=g,de.x=Math.abs(e.x)-dt.x,de.y=Math.abs(e.y)-dt.y,Lt(ut,dt));var s=Rt(t,!1),a={};Wt("x",s,a,t),Wt("y",s,a,t);var l=g,c=dt.x,u=dt.y;Nt(a);var d=function(e){1===e?(g=t,dt.x=a.x,dt.y=a.y):(g=(t-l)*e+l,dt.x=(a.x-c)*e+c,dt.y=(a.y-u)*e+u),r&&r(e),Dt(1===e)};i?Yt("customZoomTo",0,1,i,n||o.easing.sine.inOut,d):d(1)}},Jt={},Qt={},te={},ee={},ie={},ne=[],oe={},re=[],se={},ae=0,le={x:0,y:0},ce=0,ue={x:0,y:0},de={x:0,y:0},fe={x:0,y:0},he=function(t,e){return se.x=Math.abs(t.x-e.x),se.y=Math.abs(t.y-e.y),Math.sqrt(se.x*se.x+se.y*se.y)},pe=function(){$&&(M($),$=null)},me=function(){B&&($=I(me),De())},ge=function(t,e){return!(!t||t===document)&&(!(t.getAttribute("class")&&t.getAttribute("class").indexOf("pswp__scroll-wrap")>-1)&&(e(t)?t:ge(t.parentNode,e)))},ve={},ye=function(t,e){return ve.prevent=!ge(t.target,s.isClickableElement),zt("preventDragEvent",t,e,ve),ve.prevent},be=function(t,e){return e.x=t.pageX,e.y=t.pageY,e.id=t.identifier,e},xe=function(t,e,i){i.x=.5*(t.x+e.x),i.y=.5*(t.y+e.y)},we=function(){var t=dt.y-r.currItem.initialPosition.y;return 1-Math.abs(t/(ft.y/2))},Se={},Ee={},Ce=[],ze=function(t){for(;Ce.length>0;)Ce.pop();return D?(lt=0,ne.forEach((function(t){0===lt?Ce[0]=t:1===lt&&(Ce[1]=t),lt++}))):t.type.indexOf("touch")>-1?t.touches&&t.touches.length>0&&(Ce[0]=be(t.touches[0],Se),t.touches.length>1&&(Ce[1]=be(t.touches[1],Ee))):(Se.x=t.pageX,Se.y=t.pageY,Se.id="",Ce[0]=Se),Ce},Ae=function(t,e){var i,n,o,a,l=dt[t]+e[t],c=e[t]>0,u=ue.x+e.x,d=ue.x-oe.x;if(i=l>tt.min[t]||ltt.min[t]&&(i=s.panEndFriction,tt.min[t]-l,n=tt.min[t]-ut[t]),(n<=0||d<0)&&We()>1?(a=u,d<0&&u>oe.x&&(a=oe.x)):tt.min.x!==tt.max.x&&(o=l)):(l0)&&We()>1?(a=u,d>0&&ur.currItem.fitRatio&&(dt[t]+=e[t]*i)},Pe=function(t){if(!("mousedown"===t.type&&t.button>0))if(Ue)t.preventDefault();else if(!q||"mousedown"!==t.type){if(ye(t,!0)&&t.preventDefault(),zt("pointerDown"),D){var e=o.arraySearch(ne,t.pointerId,"id");e<0&&(e=ne.length),ne[e]={x:t.pageX,y:t.pageY,id:t.pointerId}}var i=ze(t),n=i.length;K=null,$t(),B&&1!==n||(B=ot=!0,o.bind(window,h,r),H=at=rt=V=Y=G=Z=X=!1,nt=null,zt("firstTouchStart",i),Lt(ut,dt),ct.x=ct.y=0,Lt(ee,i[0]),Lt(ie,ee),oe.x=mt.x*ht,re=[{x:ee.x,y:ee.y}],j=U=At(),Rt(g,!0),pe(),me()),!J&&n>1&&!it&&!Y&&(v=g,X=!1,J=Z=!0,ct.y=ct.x=0,Lt(ut,dt),Lt(Jt,i[0]),Lt(Qt,i[1]),xe(Jt,Qt,fe),de.x=Math.abs(fe.x)-dt.x,de.y=Math.abs(fe.y)-dt.y,Q=he(Jt,Qt))}},ke=function(t){if(t.preventDefault(),D){var e=o.arraySearch(ne,t.pointerId,"id");if(e>-1){var i=ne[e];i.x=t.pageX,i.y=t.pageY}}if(B){var n=ze(t);if(nt||G||J)K=n;else if(ue.x!==mt.x*ht)nt="h";else{var r=Math.abs(n[0].x-ee.x)-Math.abs(n[0].y-ee.y);Math.abs(r)>=10&&(nt=r>0?"h":"v",K=n)}}},De=function(){if(K){var t=K.length;if(0!==t)if(Lt(Jt,K[0]),te.x=Jt.x-ee.x,te.y=Jt.y-ee.y,J&&t>1){if(ee.x=Jt.x,ee.y=Jt.y,!te.x&&!te.y&&function(t,e){return t.x===e.x&&t.y===e.y}(K[1],Qt))return;Lt(Qt,K[1]),X||(X=!0,zt("zoomGestureStarted"));var e=he(Jt,Qt),i=Le(e);i>r.currItem.initialZoomLevel+r.currItem.initialZoomLevel/15&&(at=!0);var n=1,o=Ut(),a=jt();if(i1&&(n=1),i=o-n*(o/3);else i>a&&((n=(i-a)/(6*o))>1&&(n=1),i=a+n*o);n<0&&(n=0),e,xe(Jt,Qt,le),ct.x+=le.x-fe.x,ct.y+=le.y-fe.y,Lt(fe,le),dt.x=Tt("x",i),dt.y=Tt("y",i),H=i>g,g=i,Dt()}else{if(!nt)return;if(ot&&(ot=!1,Math.abs(te.x)>=10&&(te.x-=K[0].x-ie.x),Math.abs(te.y)>=10&&(te.y-=K[0].y-ie.y)),ee.x=Jt.x,ee.y=Jt.y,0===te.x&&0===te.y)return;if("v"===nt&&s.closeOnVerticalDrag&&"fit"===s.scaleMode&&g===r.currItem.initialZoomLevel){ct.y+=te.y,dt.y+=te.y;var c=we();return V=!0,zt("onVerticalDrag",c),Pt(c),void Dt()}!function(t,e,i){if(t-j>50){var n=re.length>2?re.shift():{};n.x=e,n.y=i,re.push(n),j=t}}(At(),Jt.x,Jt.y),G=!0,tt=r.currItem.bounds,Ae("x",te)||(Ae("y",te),Nt(dt),Dt())}}},_e=function(t){if(O.isOldAndroid){if(q&&"mouseup"===t.type)return;t.type.indexOf("touch")>-1&&(clearTimeout(q),q=setTimeout((function(){q=0}),600))}var e;if(zt("pointerUp"),ye(t,!1)&&t.preventDefault(),D){var i=o.arraySearch(ne,t.pointerId,"id");if(i>-1)if(e=ne.splice(i,1)[0],navigator.msPointerEnabled){e.type={4:"mouse",2:"touch",3:"pen"}[t.pointerType],e.type||(e.type=t.pointerType||"mouse")}else e.type=t.pointerType||"mouse"}var n,a=ze(t),l=a.length;if("mouseup"===t.type&&(l=0),2===l)return K=null,!0;1===l&&Lt(ie,a[0]),0!==l||nt||it||(e||("mouseup"===t.type?e={x:t.pageX,y:t.pageY,type:"mouse"}:t.changedTouches&&t.changedTouches[0]&&(e={x:t.changedTouches[0].pageX,y:t.changedTouches[0].pageY,type:"touch"})),zt("touchRelease",t,e));var c=-1;if(0===l&&(B=!1,o.unbind(window,h,r),pe(),J?c=0:-1!==ce&&(c=At()-ce)),ce=1===l?At():-1,n=-1!==c&&c<150?"zoom":"swipe",J&&l<2&&(J=!1,1===l&&(n="zoomPointerUp"),zt("zoomGestureEnded")),K=null,G||X||it||V)if($t(),W||(W=Ie()),W.calculateSwipeSpeed("x"),V){if(we()r.currItem.fitRatio&&Me(W):Ne())}},Ie=function(){var t,e,i={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(n){re.length>1?(t=At()-j+50,e=re[re.length-2][n]):(t=At()-U,e=ie[n]),i.lastFlickOffset[n]=ee[n]-e,i.lastFlickDist[n]=Math.abs(i.lastFlickOffset[n]),i.lastFlickDist[n]>20?i.lastFlickSpeed[n]=i.lastFlickOffset[n]/t:i.lastFlickSpeed[n]=0,Math.abs(i.lastFlickSpeed[n])<.1&&(i.lastFlickSpeed[n]=0),i.slowDownRatio[n]=.95,i.slowDownRatioReverse[n]=1-i.slowDownRatio[n],i.speedDecelerationRatio[n]=1},calculateOverBoundsAnimOffset:function(t,e){i.backAnimStarted[t]||(dt[t]>tt.min[t]?i.backAnimDestination[t]=tt.min[t]:dt[t]30&&(c||e.lastFlickOffset.x>20)?n=-1:l<-30&&(c||e.lastFlickOffset.x<-20)&&(n=1)}n&&((u+=n)<0?(u=s.loop?We()-1:0,a=!0):u>=We()&&(u=s.loop?0:We()-1,a=!0),a&&!s.loop||(gt+=n,ht-=n,i=!0));var d,f=mt.x*ht,h=Math.abs(f-ue.x);return i||f>ue.x==e.lastFlickSpeed.x>0?(d=Math.abs(e.lastFlickSpeed.x)>0?h/Math.abs(e.lastFlickSpeed.x):333,d=Math.min(d,400),d=Math.max(d,250)):d=333,ae===u&&(i=!1),it=!0,zt("mainScrollAnimStart"),Yt("mainScroll",ue.x,f,d,o.easing.cubic.out,Mt,(function(){$t(),it=!1,ae=-1,(i||ae!==u)&&r.updateCurrItem(),zt("mainScrollAnimComplete")})),i&&r.updateCurrItem(!0),i},Le=function(t){return 1/Q*t*v},Ne=function(){var t=g,e=Ut(),i=jt();gi&&(t=i);var n,s=st;return rt&&!H&&!at&&g1||navigator.msMaxTouchPoints>1),r.likelyTouchDevice=_,m[C]=Pe,m[z]=ke,m[A]=_e,P&&(m[P]=m[A]),O.touch&&(p+=" mousedown",h+=" mousemove mouseup",m.mousedown=m[C],m.mousemove=m[z],m.mouseup=m[A]),_||(s.allowPanToNext=!1)}}});var Fe,Oe,Re,Ue,je,We,He=function(e,i,n,a){var l;Fe&&clearTimeout(Fe),Ue=!0,Re=!0,e.initialLayout?(l=e.initialLayout,e.initialLayout=null):l=s.getThumbBoundsFn&&s.getThumbBoundsFn(u);var d=n?s.hideAnimationDuration:s.showAnimationDuration,f=function(){Xt("initialZoom"),n?(r.template.removeAttribute("style"),r.bg.removeAttribute("style")):(Pt(1),i&&(i.style.display="block"),o.addClass(t,"pswp--animated-in"),zt("initialZoom"+(n?"OutEnd":"InEnd"))),a&&a(),Ue=!1};if(!d||!l||void 0===l.x)return zt("initialZoom"+(n?"Out":"In")),g=e.initialZoomLevel,Lt(dt,e.initialPosition),Dt(),t.style.opacity=n?0:1,Pt(1),void(d?setTimeout((function(){f()}),d):f());var h,p;h=c,p=!r.currItem.src||r.currItem.loadError||s.showHideOpacity,e.miniImg&&(e.miniImg.style.webkitBackfaceVisibility="hidden"),n||(g=l.w/e.w,dt.x=l.x,dt.y=l.y-L,r[p?"template":"bg"].style.opacity=.001,Dt()),Gt("initialZoom"),n&&!h&&o.removeClass(t,"pswp--animated-in"),p&&(n?o[(h?"remove":"add")+"Class"](t,"pswp--animate_opacity"):setTimeout((function(){o.addClass(t,"pswp--animate_opacity")}),30)),Fe=setTimeout((function(){if(zt("initialZoom"+(n?"Out":"In")),n){var i=l.w/e.w,r={x:dt.x,y:dt.y},s=g,a=st,c=function(e){1===e?(g=i,dt.x=l.x,dt.y=l.y-F):(g=(i-s)*e+s,dt.x=(l.x-r.x)*e+r.x,dt.y=(l.y-F-r.y)*e+r.y),Dt(),p?t.style.opacity=1-e:Pt(a-e*a)};h?Yt("initialZoom",0,1,d,o.easing.cubic.out,c,f):(c(1),Fe=setTimeout(f,d+20))}else g=e.initialZoomLevel,Lt(dt,e.initialPosition),Dt(),Pt(1),p?t.style.opacity=1:Pt(1),Fe=setTimeout(f,d+20)}),n?25:90)},Ve={},qe=[],Be={index:0,errorMsg:'
The image could not be loaded.
',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return Oe.length}},Ze=function(t,e,i){if(t.src&&!t.loadError){var n=!i;if(n&&(t.vGap||(t.vGap={top:0,bottom:0}),zt("parseVerticalMargin",t)),Ve.x=e.x,Ve.y=e.y-t.vGap.top-t.vGap.bottom,n){var o=Ve.x/t.w,r=Ve.y/t.h;t.fitRatio=o1&&(i=1),t.initialZoomLevel=i,t.bounds||(t.bounds={center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}})}if(!i)return;return function(t,e,i){var n=t.bounds;n.center.x=Math.round((Ve.x-e)/2),n.center.y=Math.round((Ve.y-i)/2)+t.vGap.top,n.max.x=e>Ve.x?Math.round(Ve.x-e):n.center.x,n.max.y=i>Ve.y?Math.round(Ve.y-i)+t.vGap.top:n.center.y,n.min.x=e>Ve.x?0:n.center.x,n.min.y=i>Ve.y?t.vGap.top:n.center.y}(t,t.w*i,t.h*i),n&&i===t.initialZoomLevel&&(t.initialPosition=t.bounds.center),t.bounds}return t.w=t.h=0,t.initialZoomLevel=t.fitRatio=1,t.bounds={center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}},t.initialPosition=t.bounds.center,t.bounds},Xe=function(t,e,i,n,o,s){e.loadError||n&&(e.imageAppended=!0,Ye(e,n,e===r.currItem&&xt),i.appendChild(n),s&&setTimeout((function(){e&&e.loaded&&e.placeholder&&(e.placeholder.style.display="none",e.placeholder=null)}),500))},Ge=function(t){t.loading=!0,t.loaded=!1;var e=t.img=o.createEl("pswp__img","img"),i=function(){t.loading=!1,t.loaded=!0,t.loadComplete?t.loadComplete(t):t.img=null,e.onload=e.onerror=null,e=null};return e.onload=i,e.onerror=function(){t.loadError=!0,i()},e.src=t.src,e},$e=function(t,e){if(t.src&&t.loadError&&t.container)return e&&(t.container.innerHTML=""),t.container.innerHTML=s.errorMsg.replace("%url%",t.src),!0},Ye=function(t,e,i){if(t.src){e||(e=t.container.lastChild);var n=i?t.w:Math.round(t.w*t.fitRatio),o=i?t.h:Math.round(t.h*t.fitRatio);t.placeholder&&!t.loaded&&(t.placeholder.style.width=n+"px",t.placeholder.style.height=o+"px"),e.style.width=n+"px",e.style.height=o+"px"}},Ke=function(){if(qe.length){for(var t,e=0;e=0,o=Math.min(i[0],We()),a=Math.min(i[1],We());for(e=1;e<=(n?a:o);e++)r.lazyLoadItem(u+e);for(e=1;e<=(n?o:a);e++)r.lazyLoadItem(u-e)})),Ct("initialLayout",(function(){r.currItem.initialLayout=s.getThumbBoundsFn&&s.getThumbBoundsFn(u)})),Ct("mainScrollAnimComplete",Ke),Ct("initialZoomInEnd",Ke),Ct("destroy",(function(){for(var t,e=0;e=0&&(void 0!==Oe[t]&&Oe[t])},allowProgressiveImg:function(){return s.forceProgressiveLoading||!_||s.mouseUsed||screen.width>1200},setContent:function(t,e){s.loop&&(e=St(e));var i=r.getItemAt(t.index);i&&(i.container=null);var n,l=r.getItemAt(e);if(l){zt("gettingData",e,l),t.index=e,t.item=l;var c=l.container=o.createEl("pswp__zoom-wrap");if(!l.src&&l.html&&(l.html.tagName?c.appendChild(l.html):c.innerHTML=l.html),$e(l),Ze(l,ft),!l.src||l.loadError||l.loaded)l.src&&!l.loadError&&((n=o.createEl("pswp__img","img")).style.opacity=1,n.src=l.src,Ye(l,n),Xe(0,l,c,n));else{if(l.loadComplete=function(i){if(a){if(t&&t.index===e){if($e(i,!0))return i.loadComplete=i.img=null,Ze(i,ft),_t(i),void(t.index===u&&r.updateCurrZoomItem());i.imageAppended?!Ue&&i.placeholder&&(i.placeholder.style.display="none",i.placeholder=null):O.transform&&(it||Ue)?qe.push({item:i,baseDiv:c,img:i.img,index:e,holder:t,clearPlaceholder:!0}):Xe(0,i,c,i.img,0,!0)}i.loadComplete=null,i.img=null,zt("imageLoadComplete",e,i)}},o.features.transform){var d="pswp__img pswp__img--placeholder";d+=l.msrc?"":" pswp__img--placeholder--blank";var f=o.createEl(d,l.msrc?"img":"");l.msrc&&(f.src=l.msrc),Ye(l,f),c.appendChild(f),l.placeholder=f}l.loading||Ge(l),r.allowProgressiveImg()&&(!Re&&O.transform?qe.push({item:l,baseDiv:c,img:l.img,index:e,holder:t}):Xe(0,l,c,l.img,0,!0))}Re||e!==u?_t(l):(et=c.style,He(l,n||l.img)),t.el.innerHTML="",t.el.appendChild(c)}else t.el.innerHTML=""},cleanSlide:function(t){t.img&&(t.img.onload=t.img.onerror=null),t.loaded=t.loading=t.img=t.imageAppended=!1}}});var Je,Qe,ti={},ei=function(t,e,i){var n=document.createEvent("CustomEvent"),o={origEvent:t,target:t.target,releasePoint:e,pointerType:i||"touch"};n.initCustomEvent("pswpTap",!0,!0,o),t.target.dispatchEvent(n)};wt("Tap",{publicMethods:{initTap:function(){Ct("firstTouchStart",r.onTapStart),Ct("touchRelease",r.onTapRelease),Ct("destroy",(function(){ti={},Je=null}))},onTapStart:function(t){t.length>1&&(clearTimeout(Je),Je=null)},onTapRelease:function(t,e){var i,n;if(e&&(!G&&!Z&&!Zt)){var r=e;if(Je&&(clearTimeout(Je),Je=null,i=r,n=ti,Math.abs(i.x-n.x)<25&&Math.abs(i.y-n.y)<25))return void zt("doubleTap",r);if("mouse"===e.type)return void ei(t,e,"mouse");if("BUTTON"===t.target.tagName.toUpperCase()||o.hasClass(t.target,"pswp__single-tap"))return void ei(t,e);Lt(ti,r),Je=setTimeout((function(){ei(t,e),Je=null}),300)}}}}),wt("DesktopZoom",{publicMethods:{initDesktopZoom:function(){N||(_?Ct("mouseUsed",(function(){r.setupDesktopZoom()})):r.setupDesktopZoom(!0))},setupDesktopZoom:function(e){Qe={};var i="wheel mousewheel DOMMouseScroll";Ct("bindEvents",(function(){o.bind(t,i,r.handleMouseWheel)})),Ct("unbindEvents",(function(){Qe&&o.unbind(t,i,r.handleMouseWheel)})),r.mouseZoomedIn=!1;var n,s=function(){r.mouseZoomedIn&&(o.removeClass(t,"pswp--zoomed-in"),r.mouseZoomedIn=!1),g<1?o.addClass(t,"pswp--zoom-allowed"):o.removeClass(t,"pswp--zoom-allowed"),a()},a=function(){n&&(o.removeClass(t,"pswp--dragging"),n=!1)};Ct("resize",s),Ct("afterChange",s),Ct("pointerDown",(function(){r.mouseZoomedIn&&(n=!0,o.addClass(t,"pswp--dragging"))})),Ct("pointerUp",a),e||s()},handleMouseWheel:function(t){if(g<=r.currItem.fitRatio)return s.modal&&(!s.closeOnScroll||Zt||B?t.preventDefault():k&&Math.abs(t.deltaY)>2&&(c=!0,r.close())),!0;if(t.stopPropagation(),Qe.x=0,"deltaX"in t)1===t.deltaMode?(Qe.x=18*t.deltaX,Qe.y=18*t.deltaY):(Qe.x=t.deltaX,Qe.y=t.deltaY);else if("wheelDelta"in t)t.wheelDeltaX&&(Qe.x=-.16*t.wheelDeltaX),t.wheelDeltaY?Qe.y=-.16*t.wheelDeltaY:Qe.y=-.16*t.wheelDelta;else{if(!("detail"in t))return;Qe.y=t.detail}Rt(g,!0);var e=dt.x-Qe.x,i=dt.y-Qe.y;(s.modal||e<=tt.min.x&&e>=tt.max.x&&i<=tt.min.y&&i>=tt.max.y)&&t.preventDefault(),r.panTo(e,i)},toggleDesktopZoom:function(e){e=e||{x:ft.x/2+pt.x,y:ft.y/2+pt.y};var i=s.getDoubleTapZoom(!0,r.currItem),n=g===i;r.mouseZoomedIn=!n,r.zoomTo(n?r.currItem.initialZoomLevel:i,e,333),o[(n?"remove":"add")+"Class"](t,"pswp--zoomed-in")}}}),o.extend(r,Kt)}})), +/*! PhotoSwipe Default UI - 4.1.3 - 2019-01-08 +* http://photoswipe.com +* Copyright (c) 2019 Dmitry Semenov; */ +function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.PhotoSwipeUI_Default=e()}(this,(function(){"use strict";return function(t,e){var i,n,o,r,s,a,l,c,u,d,f,h,p,m,g,v,y,b,x=this,w=!1,S=!0,E=!0,C={barsSize:{top:44,bottom:"auto"},closeElClasses:["item","caption","zoom-wrap","ui","top-bar"],timeToIdle:4e3,timeToIdleOutside:1e3,loadingIndicatorDelay:1e3,addCaptionHTMLFn:function(t,e){return t.title?(e.children[0].innerHTML=t.title,!0):(e.children[0].innerHTML="",!1)},closeEl:!0,captionEl:!0,fullscreenEl:!0,zoomEl:!0,shareEl:!0,counterEl:!0,arrowEl:!0,preloaderEl:!0,tapToClose:!1,tapToToggleControls:!0,clickToCloseNonZoomable:!0,shareButtons:[{id:"facebook",label:"Share on Facebook",url:"https://www.facebook.com/sharer/sharer.php?u={{url}}"},{id:"twitter",label:"Tweet",url:"https://twitter.com/intent/tweet?text={{text}}&url={{url}}"},{id:"pinterest",label:"Pin it",url:"http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"},{id:"download",label:"Download image",url:"{{raw_image_url}}",download:!0}],getImageURLForShare:function(){return t.currItem.src||""},getPageURLForShare:function(){return window.location.href},getTextForShare:function(){return t.currItem.title||""},indexIndicatorSep:" / ",fitControlsWidth:1200},z=function(t){if(v)return!0;t=t||window.event,g.timeToIdle&&g.mouseUsed&&!u&&L();for(var i,n,o=(t.target||t.srcElement).getAttribute("class")||"",r=0;r-1&&(i.onTap(),n=!0);if(n){t.stopPropagation&&t.stopPropagation(),v=!0;var s=e.features.isOldAndroid?600:30;setTimeout((function(){v=!1}),s)}},A=function(t,i,n){e[(n?"add":"remove")+"Class"](t,"pswp__"+i)},P=function(){var t=1===g.getNumItemsFn();t!==m&&(A(n,"ui--one-slide",t),m=t)},k=function(){A(l,"share-modal--hidden",E)},D=function(){return(E=!E)?(e.removeClass(l,"pswp__share-modal--fade-in"),setTimeout((function(){E&&k()}),300)):(k(),setTimeout((function(){E||e.addClass(l,"pswp__share-modal--fade-in")}),30)),E||I(),!1},_=function(e){var i=(e=e||window.event).target||e.srcElement;return t.shout("shareLinkClick",e,i),!!i.href&&(!!i.hasAttribute("download")||(window.open(i.href,"pswp_share","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left="+(window.screen?Math.round(screen.width/2-275):100)),E||D(),!1))},I=function(){for(var t,e,i,n,o="",r=0;r