/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
body.compensate-for-scrollbar{overflow:hidden}.fancybox-active{height:auto}.fancybox-is-hidden{left:-9999px;margin:0;position:absolute!important;top:-9999px;visibility:hidden}.fancybox-container{-webkit-backface-visibility:hidden;height:100%;left:0;outline:none;position:fixed;-webkit-tap-highlight-color:transparent;top:0;touch-action:manipulation;transform:translateZ(0);width:100%;z-index:99992}.fancybox-container *{box-sizing:border-box}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{bottom:0;left:0;position:absolute;right:0;top:0}.fancybox-outer{-webkit-overflow-scrolling:touch;overflow-y:auto}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.9;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption,.fancybox-infobar,.fancybox-navigation .fancybox-button,.fancybox-toolbar{direction:ltr;opacity:0;position:absolute;transition:opacity .25s ease,visibility 0s ease .25s;visibility:hidden;z-index:99997}.fancybox-show-caption .fancybox-caption,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-nav .fancybox-navigation .fancybox-button,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;transition:opacity .25s ease 0s,visibility 0s ease 0s;visibility:visible}.fancybox-infobar{color:#ccc;font-size:13px;-webkit-font-smoothing:subpixel-antialiased;height:44px;left:0;line-height:44px;min-width:44px;mix-blend-mode:difference;padding:0 10px;pointer-events:none;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fancybox-toolbar{right:0;top:0}.fancybox-stage{direction:ltr;overflow:visible;transform:translateZ(0);z-index:99994}.fancybox-is-open .fancybox-stage{overflow:hidden}.fancybox-slide{-webkit-backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:absolute;text-align:center;top:0;transition-property:transform,opacity;white-space:normal;width:100%;z-index:99994}.fancybox-slide:before{content:"";display:inline-block;font-size:0;height:100%;vertical-align:middle;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:hidden;padding:44px 0}.fancybox-slide--image:before{display:none}.fancybox-slide--html{padding:6px}.fancybox-content{background:#fff;display:inline-block;margin:0;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:relative;text-align:left;vertical-align:middle}.fancybox-slide--image .fancybox-content{animation-timing-function:cubic-bezier(.5,0,.14,1);-webkit-backface-visibility:hidden;background:transparent;background-repeat:no-repeat;background-size:100% 100%;left:0;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform-origin:top left;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:99995}.fancybox-can-zoomOut .fancybox-content{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-content{cursor:zoom-in}.fancybox-can-pan .fancybox-content,.fancybox-can-swipe .fancybox-content{cursor:grab}.fancybox-is-grabbing .fancybox-content{cursor:grabbing}.fancybox-container [data-selectable=true]{cursor:text}.fancybox-image,.fancybox-spaceball{background:transparent;border:0;height:100%;left:0;margin:0;max-height:none;max-width:none;padding:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content,.fancybox-slide--map .fancybox-content,.fancybox-slide--pdf .fancybox-content,.fancybox-slide--video .fancybox-content{height:100%;overflow:visible;padding:0;width:100%}.fancybox-slide--video .fancybox-content{background:#000}.fancybox-slide--map .fancybox-content{background:#e5e3df}.fancybox-slide--iframe .fancybox-content{background:#fff}.fancybox-iframe,.fancybox-video{background:transparent;border:0;display:block;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.fancybox-iframe{left:0;position:absolute;top:0}.fancybox-error{background:#fff;cursor:default;max-width:400px;padding:40px;width:100%}.fancybox-error p{color:#444;font-size:16px;line-height:20px;margin:0;padding:0}.fancybox-button{background:rgba(30,30,30,.6);border:0;border-radius:0;box-shadow:none;cursor:pointer;display:inline-block;height:44px;margin:0;padding:10px;position:relative;transition:color .2s;vertical-align:top;visibility:inherit;width:44px}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:hover{color:#fff}.fancybox-button:focus{outline:none}.fancybox-button.fancybox-focus{outline:1px dotted}.fancybox-button[disabled],.fancybox-button[disabled]:hover{color:#888;cursor:default;outline:none}.fancybox-button div{height:100%}.fancybox-button svg{display:block;height:100%;overflow:visible;position:relative;width:100%}.fancybox-button svg path{fill:currentColor;stroke-width:0}.fancybox-button--fsenter svg:nth-child(2),.fancybox-button--fsexit svg:first-child,.fancybox-button--pause svg:first-child,.fancybox-button--play svg:nth-child(2){display:none}.fancybox-progress{background:#ff5268;height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;z-index:99998}.fancybox-close-small{background:transparent;border:0;border-radius:0;color:#ccc;cursor:pointer;opacity:.8;padding:8px;position:absolute;right:-12px;top:-44px;z-index:401}.fancybox-close-small:hover{color:#fff;opacity:1}.fancybox-slide--html .fancybox-close-small{color:currentColor;padding:10px;right:0;top:0}.fancybox-slide--image.fancybox-is-scaling .fancybox-content{overflow:hidden}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small{display:none}.fancybox-navigation .fancybox-button{background-clip:content-box;height:100px;opacity:0;position:absolute;top:calc(50% - 50px);width:70px}.fancybox-navigation .fancybox-button div{padding:7px}.fancybox-navigation .fancybox-button--arrow_left{left:0;left:env(safe-area-inset-left);padding:31px 26px 31px 6px}.fancybox-navigation .fancybox-button--arrow_right{padding:31px 6px 31px 26px;right:0;right:env(safe-area-inset-right)}.fancybox-caption{background:linear-gradient(0deg,rgba(0,0,0,.85),rgba(0,0,0,.3) 50%,rgba(0,0,0,.15) 65%,rgba(0,0,0,.075) 75.5%,rgba(0,0,0,.037) 82.85%,rgba(0,0,0,.019) 88%,transparent);bottom:0;color:#eee;font-size:14px;font-weight:400;left:0;line-height:1.5;padding:75px 44px 25px;pointer-events:none;right:0;text-align:center;z-index:99996}@supports (padding:max(0px)){.fancybox-caption{padding:75px max(44px,env(safe-area-inset-right)) max(25px,env(safe-area-inset-bottom)) max(44px,env(safe-area-inset-left))}}.fancybox-caption--separate{margin-top:-50px}.fancybox-caption__body{max-height:50vh;overflow:auto;pointer-events:all}.fancybox-caption a,.fancybox-caption a:link,.fancybox-caption a:visited{color:#ccc;text-decoration:none}.fancybox-caption a:hover{color:#fff;text-decoration:underline}.fancybox-loading{animation:a 1s linear infinite;background:transparent;border:4px solid;border-color:#888 #888 #fff;border-radius:50%;height:50px;left:50%;margin:-25px 0 0 -25px;opacity:.7;padding:0;position:absolute;top:50%;width:50px;z-index:99999}@keyframes a{to{transform:rotate(1turn)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{opacity:0;transform:translate3d(-100%,0,0)}.fancybox-fx-slide.fancybox-slide--next{opacity:0;transform:translate3d(100%,0,0)}.fancybox-fx-slide.fancybox-slide--current{opacity:1;transform:translateZ(0)}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{opacity:0;transform:scale3d(1.5,1.5,1.5)}.fancybox-fx-zoom-in-out.fancybox-slide--next{opacity:0;transform:scale3d(.5,.5,.5)}.fancybox-fx-zoom-in-out.fancybox-slide--current{opacity:1;transform:scaleX(1)}.fancybox-fx-rotate.fancybox-slide--previous{opacity:0;transform:rotate(-1turn)}.fancybox-fx-rotate.fancybox-slide--next{opacity:0;transform:rotate(1turn)}.fancybox-fx-rotate.fancybox-slide--current{opacity:1;transform:rotate(0deg)}.fancybox-fx-circular.fancybox-slide--previous{opacity:0;transform:scale3d(0,0,0) translate3d(-100%,0,0)}.fancybox-fx-circular.fancybox-slide--next{opacity:0;transform:scale3d(0,0,0) translate3d(100%,0,0)}.fancybox-fx-circular.fancybox-slide--current{opacity:1;transform:scaleX(1) translateZ(0)}.fancybox-fx-tube.fancybox-slide--previous{transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{transform:translateZ(0) scale(1)}@media (max-height:576px){.fancybox-slide{padding-left:6px;padding-right:6px}.fancybox-slide--image{padding:6px 0}.fancybox-close-small{right:-6px}.fancybox-slide--image .fancybox-close-small{background:#4e4e4e;color:#f2f4f6;height:36px;opacity:1;padding:6px;right:0;top:0;width:36px}.fancybox-caption{padding-left:12px;padding-right:12px}@supports (padding:max(0px)){.fancybox-caption{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}}.fancybox-share{background:#f4f4f4;border-radius:3px;max-width:90%;padding:30px;text-align:center}.fancybox-share h1{color:#222;font-size:35px;font-weight:700;margin:0 0 20px}.fancybox-share p{margin:0;padding:0}.fancybox-share__button{border:0;border-radius:3px;display:inline-block;font-size:14px;font-weight:700;line-height:40px;margin:0 5px 10px;min-width:130px;padding:0 15px;text-decoration:none;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.fancybox-share__button:link,.fancybox-share__button:visited{color:#fff}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{height:25px;margin-right:7px;position:relative;top:-1px;vertical-align:middle;width:25px}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{background:transparent;border:0;border-bottom:1px solid #d7d7d7;border-radius:0;color:#5d5b5b;font-size:14px;margin:10px 0 0;outline:none;padding:10px 15px;width:100%}.fancybox-thumbs{background:#ddd;bottom:0;display:none;margin:0;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;padding:2px 2px 4px;position:absolute;right:0;-webkit-tap-highlight-color:rgba(0,0,0,0);top:0;width:212px;z-index:99995}.fancybox-thumbs-x{overflow-x:auto;overflow-y:hidden}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs__list{font-size:0;height:100%;list-style:none;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;position:relative;white-space:nowrap;width:100%}.fancybox-thumbs-x .fancybox-thumbs__list{overflow:hidden}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar{width:7px}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs__list a{backface-visibility:hidden;background-color:rgba(0,0,0,.1);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;float:left;height:75px;margin:2px;max-height:calc(100% - 8px);max-width:calc(50% - 4px);outline:none;overflow:hidden;padding:0;position:relative;-webkit-tap-highlight-color:transparent;width:100px}.fancybox-thumbs__list a:before{border:6px solid #ff5268;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.25,.46,.45,.94);z-index:99991}.fancybox-thumbs__list a:focus:before{opacity:.5}.fancybox-thumbs__list a.fancybox-thumbs-active:before{opacity:1}@media (max-width:576px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs__list a{max-width:calc(100% - 10px)}}[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;overflow:hidden;width:auto!important;height:auto!important;z-index:0}.simplebar-mask,.simplebar-offset{position:absolute;padding:0;margin:0;left:0;top:0;bottom:0;right:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.simplebar-content:after,.simplebar-content:before{content:" ";display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;z-index:-1}.simplebar-height-auto-observer,.simplebar-track{position:absolute;overflow:hidden;pointer-events:none}.simplebar-track{z-index:1;right:0;bottom:0}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:"";background:#000;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition:opacity 0s linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}@charset "UTF-8";:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:.875em;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333333%;max-width:33.33333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;print-color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);overflow:hidden;font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentcolor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714286%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd}blockquote,img,pre,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}@keyframes bs-notify-fadeOut{0%{opacity:.9}to{opacity:0}}.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px \0;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:inline-flex;align-items:center;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:hsla(0,0%,100%,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select select:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select select:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none;height:auto}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:none!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:100%;width:100%;text-align:left;overflow:hidden;flex:0 1 auto}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{position:absolute;padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:none!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:hsla(0,0%,100%,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;box-sizing:border-box}.bootstrap-select .dropdown-menu .notify.fadeOut{animation:bs-notify-fadeOut .3s linear .75s forwards}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:"\A0"}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:"";display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;transform-style:preserve-3d;transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:"";border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid hsla(0,0%,80%,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:"";border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid hsla(0,0%,80%,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}@keyframes plyr-progress{to{background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:var(--plyr-font-weight-regular,400);line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:var(--plyr-badge-background,#4a5464);border-radius:var(--plyr-badge-border-radius,2px);color:var(--plyr-badge-text-color,#fff);font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:var(--plyr-font-size-small,13px);left:0;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:var(--plyr-font-size-base,15px);padding:calc(var(--plyr-control-spacing,10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(calc(var(--plyr-control-spacing,10px)*-4))}.plyr__caption{background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:transparent;border:0;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:calc(var(--plyr-control-spacing,10px)*0.7);position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:calc(var(--plyr-control-spacing,10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:calc(var(--plyr-control-spacing,10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 calc(var(--plyr-control-spacing,10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:var(--plyr-menu-background,hsla(0,0%,100%,.9));border-radius:4px;bottom:100%;box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:var(--plyr-menu-color,#4a5464);font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border-top:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:var(--plyr-menu-background,hsla(0,0%,100%,.9));border-style:solid;border-width:var(--plyr-menu-arrow-size,4px);content:"";height:0;position:absolute;right:calc(var(--plyr-control-icon-size,18px)/2 + var(--plyr-control-spacing,10px)*0.7 - var(--plyr-menu-arrow-size,4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:calc(var(--plyr-control-spacing,10px)*0.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding:calc(var(--plyr-control-spacing,10px)*0.7/1.5) calc(var(--plyr-control-spacing,10px)*0.7*1.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:calc(var(--plyr-control-spacing,10px)*0.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:var(--plyr-menu-arrow-color,#728197);right:calc(var(--plyr-control-spacing,10px)*0.7*1.5 - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--forward.plyr__tab-focus:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:var(--plyr-font-weight-regular,400);margin:calc(var(--plyr-control-spacing,10px)*0.7);margin-bottom:calc(var(--plyr-control-spacing,10px)*0.7/2);padding-left:calc(var(--plyr-control-spacing,10px)*0.7*4);position:relative;width:calc(100% - var(--plyr-control-spacing,10px)*0.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:var(--plyr-menu-arrow-color,#728197);left:calc(var(--plyr-control-spacing,10px)*0.7*1.5 - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--back:before{background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:1px;left:0;margin-top:calc(var(--plyr-control-spacing,10px)*0.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:calc(var(--plyr-control-spacing,10px)*0.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:rgba(0,0,0,.1);content:"";display:block;flex-shrink:0;height:16px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:rgba(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc(var(--plyr-control-spacing,10px)*0.7*-1 - -2);overflow:hidden;padding-left:calc(var(--plyr-control-spacing,10px)*0.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:transparent;border:0;border-radius:calc(var(--plyr-range-thumb-height,13px)*2);color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));display:block;height:calc(var(--plyr-range-thumb-active-shadow-width,3px)*2 + var(--plyr-range-thumb-height,13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:transparent;border:0;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(90deg,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:var(--plyr-range-thumb-height,13px);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:var(--plyr-range-thumb-height,13px);-webkit-appearance:none;margin-top:calc(var(--plyr-range-thumb-height,13px)/2*-1 - var(--plyr-range-track-height,5px)/2*-1)}.plyr--full-ui input[type=range]::-moz-range-track{background:transparent;border:0;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:transparent;border:0;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:transparent;border:0;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:var(--plyr-range-thumb-height,13px);position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:var(--plyr-range-thumb-height,13px);margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr__poster{background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster{display:none}.plyr__time{font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"\2044";margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:var(--plyr-tooltip-radius,3px);bottom:100%;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:var(--plyr-tooltip-color,#4a5464);font-size:var(--plyr-font-size-small,13px);font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:calc(var(--plyr-control-spacing,10px)/2*2);opacity:0;padding:calc(var(--plyr-control-spacing,10px)/2) calc(var(--plyr-control-spacing,10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:calc(var(--plyr-tooltip-arrow-size,4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip,.plyr__controls>.plyr__control:first-child .plyr__tooltip{left:0;transform:translateY(10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child .plyr__tooltip:before{left:calc(var(--plyr-control-icon-size,18px)/2 + var(--plyr-control-spacing,10px)*0.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:calc(var(--plyr-control-icon-size,18px)/2 + var(--plyr-control-spacing,10px)*0.7);transform:translateX(50%)}.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:calc(var(--plyr-range-thumb-height,13px)*0.5);margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress__buffer,.plyr__progress input[type=range]{margin-left:calc(var(--plyr-range-thumb-height,13px)*-0.5);margin-right:calc(var(--plyr-range-thumb-height,13px)*-0.5);width:calc(100% + var(--plyr-range-thumb-height,13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));left:0}.plyr__progress__buffer{-webkit-appearance:none;background:transparent;border:0;border-radius:100px;height:var(--plyr-range-track-height,5px);left:0;margin-top:calc(var(--plyr-range-track-height,5px)/2*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:transparent}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 0,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 0,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 0,transparent);background-repeat:repeat-x;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:calc(var(--plyr-control-spacing,10px)/2);margin-right:calc(var(--plyr-control-spacing,10px)/2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:var(--plyr-audio-control-color,#4a5464);padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:var(--plyr-video-background,var(--plyr-video-background,#000));overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:var(--plyr-video-background,var(--plyr-video-background,#000));margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{aspect-ratio:16/9}@supports not (aspect-ratio:16/9){.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%;position:relative}}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:var(--plyr-video-control-color,#fff);left:0;padding:calc(var(--plyr-control-spacing,10px)/2);padding-top:calc(var(--plyr-control-spacing,10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:var(--plyr-control-spacing,10px);padding-top:calc(var(--plyr-control-spacing,10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));border:0;border-radius:100%;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:calc(var(--plyr-control-spacing,10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--video .plyr__progress__buffer{color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen video{height:100%}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:fullscreen .plyr__captions{font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:2px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:var(--plyr-range-track-height,5px);left:0;margin:-var(--plyr-range-track-height,5px)/2 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:3px;bottom:100%;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:calc(var(--plyr-control-spacing,10px)/2*2);opacity:0;padding:var(--plyr-tooltip-radius,3px);pointer-events:none;position:absolute;transform:translateY(10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:calc(var(--plyr-tooltip-arrow-size,4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);color:#fff;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;-o-object-fit:contain;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-wp8-horizontal,.swiper-container-wp8-horizontal>.swiper-wrapper{touch-action:pan-y}.swiper-container-wp8-vertical,.swiper-container-wp8-vertical>.swiper-wrapper{touch-action:pan-x}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s steps(12) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' stroke='%236c6c6c' stroke-width='11' stroke-linecap='round' d='M60 7v20'/%3E%3C/defs%3E%3Cuse xlink:href='%23a' opacity='.27'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(30 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(60 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(90 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(120 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(150 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.37' transform='rotate(180 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.46' transform='rotate(210 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.56' transform='rotate(240 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.66' transform='rotate(270 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.75' transform='rotate(300 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.85' transform='rotate(330 60 60)'/%3E%3C/svg%3E");background-position:50%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' stroke='%23fff' stroke-width='11' stroke-linecap='round' d='M60 7v20'/%3E%3C/defs%3E%3Cuse xlink:href='%23a' opacity='.27'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(30 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(60 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(90 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(120 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(150 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.37' transform='rotate(180 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.46' transform='rotate(210 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.56' transform='rotate(240 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.66' transform='rotate(270 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.75' transform='rotate(300 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.85' transform='rotate(330 60 60)'/%3E%3C/svg%3E")}@keyframes swiper-preloader-spin{to{transform:rotate(1turn)}}.datepickers-container{position:absolute;left:0;top:0}@media print{.datepickers-container{display:none}}.datepicker{background:#fff;border:1px solid #dbdbdb;box-shadow:0 4px 12px rgba(0,0,0,.15);border-radius:4px;box-sizing:content-box;font-family:Tahoma,sans-serif;font-size:14px;color:#4a4a4a;width:250px;position:absolute;left:-100000px;opacity:0;transition:opacity .3s ease,transform .3s ease,left 0s .3s;z-index:100}.datepicker.-from-top-{transform:translateY(-8px)}.datepicker.-from-right-{transform:translateX(8px)}.datepicker.-from-bottom-{transform:translateY(8px)}.datepicker.-from-left-{transform:translateX(-8px)}.datepicker.active{opacity:1;transform:translate(0);transition:opacity .3s ease,transform .3s ease,left 0s 0s}.datepicker-inline .datepicker{border-color:#d7d7d7;box-shadow:none;position:static;left:auto;right:auto;opacity:1;transform:none}.datepicker-inline .datepicker--pointer{display:none}.datepicker--content{box-sizing:content-box;padding:4px}.-only-timepicker- .datepicker--content{display:none}.datepicker--pointer{position:absolute;background:#fff;border-top:1px solid #dbdbdb;border-right:1px solid #dbdbdb;width:10px;height:10px;z-index:-1}.-top-center- .datepicker--pointer,.-top-left- .datepicker--pointer,.-top-right- .datepicker--pointer{top:calc(100% - 4px);transform:rotate(135deg)}.-right-bottom- .datepicker--pointer,.-right-center- .datepicker--pointer,.-right-top- .datepicker--pointer{right:calc(100% - 4px);transform:rotate(225deg)}.-bottom-center- .datepicker--pointer,.-bottom-left- .datepicker--pointer,.-bottom-right- .datepicker--pointer{bottom:calc(100% - 4px);transform:rotate(315deg)}.-left-bottom- .datepicker--pointer,.-left-center- .datepicker--pointer,.-left-top- .datepicker--pointer{left:calc(100% - 4px);transform:rotate(45deg)}.-bottom-left- .datepicker--pointer,.-top-left- .datepicker--pointer{left:10px}.-bottom-right- .datepicker--pointer,.-top-right- .datepicker--pointer{right:10px}.-bottom-center- .datepicker--pointer,.-top-center- .datepicker--pointer{left:calc(50% - 5px)}.-left-top- .datepicker--pointer,.-right-top- .datepicker--pointer{top:10px}.-left-bottom- .datepicker--pointer,.-right-bottom- .datepicker--pointer{bottom:10px}.-left-center- .datepicker--pointer,.-right-center- .datepicker--pointer{top:calc(50% - 5px)}.datepicker--body{display:none}.datepicker--body.active{display:block}.datepicker--cells{display:flex;flex-wrap:wrap}.datepicker--cell{border-radius:4px;box-sizing:border-box;cursor:pointer;display:flex;position:relative;align-items:center;justify-content:center;height:32px;z-index:1}.datepicker--cell.-focus-{background:#f0f0f0}.datepicker--cell.-current-{color:#4eb5e6}.datepicker--cell.-current-.-focus-{color:#4a4a4a}.datepicker--cell.-current-.-in-range-{color:#4eb5e6}.datepicker--cell.-in-range-{background:rgba(92,196,239,.1);color:#4a4a4a;border-radius:0}.datepicker--cell.-in-range-.-focus-{background-color:rgba(92,196,239,.2)}.datepicker--cell.-disabled-{cursor:default;color:#aeaeae}.datepicker--cell.-disabled-.-focus-{color:#aeaeae}.datepicker--cell.-disabled-.-in-range-{color:#a1a1a1}.datepicker--cell.-disabled-.-current-.-focus-{color:#aeaeae}.datepicker--cell.-range-from-{border:1px solid rgba(92,196,239,.5);background-color:rgba(92,196,239,.1);border-radius:4px 0 0 4px}.datepicker--cell.-range-to-{border:1px solid rgba(92,196,239,.5);background-color:rgba(92,196,239,.1);border-radius:0 4px 4px 0}.datepicker--cell.-range-from-.-range-to-{border-radius:4px}.datepicker--cell.-selected-{border:none}.datepicker--cell.-selected-,.datepicker--cell.-selected-.-current-{color:#fff;background:#5cc4ef}.datepicker--cell.-selected-.-focus-{background:#45bced}.datepicker--cell:empty{cursor:default}.datepicker--days-names{display:flex;flex-wrap:wrap;margin:8px 0 3px}.datepicker--day-name{color:#ff9a19;display:flex;align-items:center;justify-content:center;flex:1;text-align:center;text-transform:uppercase;font-size:.8em}.datepicker--cell-day{width:14.28571429%}.datepicker--cells-months{height:170px}.datepicker--cell-month{width:33.33%;height:25%}.datepicker--cells-years,.datepicker--years{height:170px}.datepicker--cell-year{width:25%;height:33.33%}.datepicker--cell-day.-other-month-,.datepicker--cell-year.-other-decade-{color:#dedede}.datepicker--cell-day.-other-month-:hover,.datepicker--cell-year.-other-decade-:hover{color:#c5c4c4}.-disabled-.-focus-.datepicker--cell-day.-other-month-,.-disabled-.-focus-.datepicker--cell-year.-other-decade-{color:#dedede}.-selected-.datepicker--cell-day.-other-month-,.-selected-.datepicker--cell-year.-other-decade-{color:#fff;background:#a2ddf6}.-selected-.-focus-.datepicker--cell-day.-other-month-,.-selected-.-focus-.datepicker--cell-year.-other-decade-{background:#8ad5f4}.-in-range-.datepicker--cell-day.-other-month-,.-in-range-.datepicker--cell-year.-other-decade-{background-color:rgba(92,196,239,.1);color:#ccc}.-in-range-.-focus-.datepicker--cell-day.-other-month-,.-in-range-.-focus-.datepicker--cell-year.-other-decade-{background-color:rgba(92,196,239,.2)}.datepicker--cell-day.-other-month-:empty,.datepicker--cell-year.-other-decade-:empty{background:none;border:none}.datepicker--nav{display:flex;justify-content:space-between;border-bottom:1px solid #efefef;min-height:32px;padding:4px}.-only-timepicker- .datepicker--nav{display:none}.datepicker--nav-action,.datepicker--nav-title{display:flex;cursor:pointer;align-items:center;justify-content:center}.datepicker--nav-action{width:32px;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.datepicker--nav-action:hover{background:#f0f0f0}.datepicker--nav-action.-disabled-{visibility:hidden}.datepicker--nav-action svg{width:32px;height:32px}.datepicker--nav-action path{fill:none;stroke:#9c9c9c;stroke-width:2px}.datepicker--nav-title{border-radius:4px;padding:0 8px}.datepicker--nav-title i{font-style:normal;color:#9c9c9c;margin-left:5px}.datepicker--nav-title:hover{background:#f0f0f0}.datepicker--nav-title.-disabled-{cursor:default;background:none}.datepicker--buttons{display:flex;padding:4px;border-top:1px solid #efefef}.datepicker--button{color:#4eb5e6;cursor:pointer;border-radius:4px;flex:1;display:inline-flex;justify-content:center;align-items:center;height:32px}.datepicker--button:hover{color:#4a4a4a;background:#f0f0f0}@font-face{font-family:archer;src:url(/themes/custom/boots/assets/fonts/archer/archer-regular.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/archer/archer-regular.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:archer;src:url(/themes/custom/boots/assets/fonts/archer/archer-medium.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/archer/archer-medium.woff) format("woff");font-weight:500;font-style:normal}@font-face{font-family:archer;src:url(/themes/custom/boots/assets/fonts/archer/archer-bold.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/archer/archer-bold.woff) format("woff");font-weight:700;font-style:normal}@font-face{font-family:helvetica;src:url(/themes/custom/boots/assets/fonts/helvetica/helvetica-regular.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/helvetica/helvetica-regular.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:helvetica;src:url(/themes/custom/boots/assets/fonts/helvetica/helvetica-medium.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/helvetica/helvetica-medium.woff) format("woff");font-weight:500;font-style:normal}@font-face{font-family:helvetica;src:url(/themes/custom/boots/assets/fonts/helvetica/helvetica-bold.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/helvetica/helvetica-bold.woff) format("woff");font-weight:700;font-style:normal}@font-face{font-family:helvetica-condensed;src:url(/themes/custom/boots/assets/fonts/helvetica-condensed/helvetica_condensed-regular.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/helvetica-condensed/helvetica_condensed-regular.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:helvetica-condensed;src:url(/themes/custom/boots/assets/fonts/helvetica-condensed/helvetica_condensed-medium.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/helvetica-condensed/helvetica_condensed-medium.woff) format("woff");font-weight:500;font-style:normal}@font-face{font-family:helvetica-condensed;src:url(/themes/custom/boots/assets/fonts/helvetica-condensed/helvetica_condensed-bold.woff2) format("woff2"),url(/themes/custom/boots/assets/fonts/helvetica-condensed/helvetica_condensed-bold.woff) format("woff");font-weight:700;font-style:normal}*{outline:none!important}html{font-size:10px}body{position:relative;font-family:helvetica,sans-serif;font-size:1.3rem;line-height:1.8;font-weight:400;color:#0d2340;letter-spacing:.05rem}h1,h2,h3,h4,h5{line-height:inherit}label{font-weight:400;margin-bottom:0}label:not(:last-child){margin-bottom:1rem}b,strong{font-weight:700}a{color:inherit;transition:all .2s ease-in-out}a:active,a:focus,a:hover{color:#00b8de;text-decoration:none}button{background-color:transparent;padding:0;cursor:pointer;border:0;transition:all .2s ease-in-out}dl,ol,ul{padding:0;margin:0;list-style:none}hr{border-color:inherit}.u-m-5{margin:.5rem!important}.u-p-5{padding:.5rem!important}.u-mt-5{margin-top:.5rem!important}.u-pt-5{padding-top:.5rem!important}.u-nmt-5{margin-top:-.5rem!important}.u-mb-5{margin-bottom:.5rem!important}.u-pb-5{padding-bottom:.5rem!important}.u-nmb-5{margin-bottom:-.5rem!important}.u-ml-5{margin-left:.5rem!important}.u-pl-5{padding-left:.5rem!important}.u-nml-5{margin-left:-.5rem!important}.u-mr-5{margin-right:.5rem!important}.u-pr-5{padding-right:.5rem!important}.u-nmr-5{margin-right:-.5rem!important}.u-my-5{margin-top:.5rem!important;margin-bottom:.5rem!important}.u-py-5{padding-top:.5rem!important;padding-bottom:.5rem!important}.u-nmy-5{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.u-mx-5{margin-left:.5rem!important;margin-right:.5rem!important}.u-px-5{padding-left:.5rem!important;padding-right:.5rem!important}.u-nmx-5{margin-left:-.5rem!important;margin-right:-.5rem!important}.u-m-10{margin:1rem!important}.u-p-10{padding:1rem!important}.u-mt-10{margin-top:1rem!important}.u-pt-10{padding-top:1rem!important}.u-nmt-10{margin-top:-1rem!important}.u-mb-10{margin-bottom:1rem!important}.u-pb-10{padding-bottom:1rem!important}.u-nmb-10{margin-bottom:-1rem!important}.u-ml-10{margin-left:1rem!important}.u-pl-10{padding-left:1rem!important}.u-nml-10{margin-left:-1rem!important}.u-mr-10{margin-right:1rem!important}.u-pr-10{padding-right:1rem!important}.u-nmr-10{margin-right:-1rem!important}.u-my-10{margin-top:1rem!important;margin-bottom:1rem!important}.u-py-10{padding-top:1rem!important;padding-bottom:1rem!important}.u-nmy-10{margin-top:-1rem!important;margin-bottom:-1rem!important}.u-mx-10{margin-left:1rem!important;margin-right:1rem!important}.u-px-10{padding-left:1rem!important;padding-right:1rem!important}.u-nmx-10{margin-left:-1rem!important;margin-right:-1rem!important}.u-m-15{margin:1.5rem!important}.u-p-15{padding:1.5rem!important}.u-mt-15{margin-top:1.5rem!important}.u-pt-15{padding-top:1.5rem!important}.u-nmt-15{margin-top:-1.5rem!important}.u-mb-15{margin-bottom:1.5rem!important}.u-pb-15{padding-bottom:1.5rem!important}.u-nmb-15{margin-bottom:-1.5rem!important}.u-ml-15{margin-left:1.5rem!important}.u-pl-15{padding-left:1.5rem!important}.u-nml-15{margin-left:-1.5rem!important}.u-mr-15{margin-right:1.5rem!important}.u-pr-15{padding-right:1.5rem!important}.u-nmr-15{margin-right:-1.5rem!important}.u-my-15{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.u-py-15{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.u-nmy-15{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.u-mx-15{margin-left:1.5rem!important;margin-right:1.5rem!important}.u-px-15{padding-left:1.5rem!important;padding-right:1.5rem!important}.u-nmx-15{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.u-m-20{margin:2rem!important}.u-p-20{padding:2rem!important}.u-mt-20{margin-top:2rem!important}.u-pt-20{padding-top:2rem!important}.u-nmt-20{margin-top:-2rem!important}.u-mb-20{margin-bottom:2rem!important}.u-pb-20{padding-bottom:2rem!important}.u-nmb-20{margin-bottom:-2rem!important}.u-ml-20{margin-left:2rem!important}.u-pl-20{padding-left:2rem!important}.u-nml-20{margin-left:-2rem!important}.u-mr-20{margin-right:2rem!important}.u-pr-20{padding-right:2rem!important}.u-nmr-20{margin-right:-2rem!important}.u-my-20{margin-top:2rem!important;margin-bottom:2rem!important}.u-py-20{padding-top:2rem!important;padding-bottom:2rem!important}.u-nmy-20{margin-top:-2rem!important;margin-bottom:-2rem!important}.u-mx-20{margin-left:2rem!important;margin-right:2rem!important}.u-px-20{padding-left:2rem!important;padding-right:2rem!important}.u-nmx-20{margin-left:-2rem!important;margin-right:-2rem!important}.u-m-25{margin:2.5rem!important}.u-p-25{padding:2.5rem!important}.u-mt-25{margin-top:2.5rem!important}.u-pt-25{padding-top:2.5rem!important}.u-nmt-25{margin-top:-2.5rem!important}.u-mb-25{margin-bottom:2.5rem!important}.u-pb-25{padding-bottom:2.5rem!important}.u-nmb-25{margin-bottom:-2.5rem!important}.u-ml-25{margin-left:2.5rem!important}.u-pl-25{padding-left:2.5rem!important}.u-nml-25{margin-left:-2.5rem!important}.u-mr-25{margin-right:2.5rem!important}.u-pr-25{padding-right:2.5rem!important}.u-nmr-25{margin-right:-2.5rem!important}.u-my-25{margin-top:2.5rem!important;margin-bottom:2.5rem!important}.u-py-25{padding-top:2.5rem!important;padding-bottom:2.5rem!important}.u-nmy-25{margin-top:-2.5rem!important;margin-bottom:-2.5rem!important}.u-mx-25{margin-left:2.5rem!important;margin-right:2.5rem!important}.u-px-25{padding-left:2.5rem!important;padding-right:2.5rem!important}.u-nmx-25{margin-left:-2.5rem!important;margin-right:-2.5rem!important}.u-m-30{margin:3rem!important}.u-p-30{padding:3rem!important}.u-mt-30{margin-top:3rem!important}.u-pt-30{padding-top:3rem!important}.u-nmt-30{margin-top:-3rem!important}.u-mb-30{margin-bottom:3rem!important}.u-pb-30{padding-bottom:3rem!important}.u-nmb-30{margin-bottom:-3rem!important}.u-ml-30{margin-left:3rem!important}.u-pl-30{padding-left:3rem!important}.u-nml-30{margin-left:-3rem!important}.u-mr-30{margin-right:3rem!important}.u-pr-30{padding-right:3rem!important}.u-nmr-30{margin-right:-3rem!important}.u-my-30{margin-top:3rem!important;margin-bottom:3rem!important}.u-py-30{padding-top:3rem!important;padding-bottom:3rem!important}.u-nmy-30{margin-top:-3rem!important;margin-bottom:-3rem!important}.u-mx-30{margin-left:3rem!important;margin-right:3rem!important}.u-px-30{padding-left:3rem!important;padding-right:3rem!important}.u-nmx-30{margin-left:-3rem!important;margin-right:-3rem!important}.u-m-35{margin:3.5rem!important}.u-p-35{padding:3.5rem!important}.u-mt-35{margin-top:3.5rem!important}.u-pt-35{padding-top:3.5rem!important}.u-nmt-35{margin-top:-3.5rem!important}.u-mb-35{margin-bottom:3.5rem!important}.u-pb-35{padding-bottom:3.5rem!important}.u-nmb-35{margin-bottom:-3.5rem!important}.u-ml-35{margin-left:3.5rem!important}.u-pl-35{padding-left:3.5rem!important}.u-nml-35{margin-left:-3.5rem!important}.u-mr-35{margin-right:3.5rem!important}.u-pr-35{padding-right:3.5rem!important}.u-nmr-35{margin-right:-3.5rem!important}.u-my-35{margin-top:3.5rem!important;margin-bottom:3.5rem!important}.u-py-35{padding-top:3.5rem!important;padding-bottom:3.5rem!important}.u-nmy-35{margin-top:-3.5rem!important;margin-bottom:-3.5rem!important}.u-mx-35{margin-left:3.5rem!important;margin-right:3.5rem!important}.u-px-35{padding-left:3.5rem!important;padding-right:3.5rem!important}.u-nmx-35{margin-left:-3.5rem!important;margin-right:-3.5rem!important}.u-m-40{margin:4rem!important}.u-p-40{padding:4rem!important}.u-mt-40{margin-top:4rem!important}.u-pt-40{padding-top:4rem!important}.u-nmt-40{margin-top:-4rem!important}.u-mb-40{margin-bottom:4rem!important}.u-pb-40{padding-bottom:4rem!important}.u-nmb-40{margin-bottom:-4rem!important}.u-ml-40{margin-left:4rem!important}.u-pl-40{padding-left:4rem!important}.u-nml-40{margin-left:-4rem!important}.u-mr-40{margin-right:4rem!important}.u-pr-40{padding-right:4rem!important}.u-nmr-40{margin-right:-4rem!important}.u-my-40{margin-top:4rem!important;margin-bottom:4rem!important}.u-py-40{padding-top:4rem!important;padding-bottom:4rem!important}.u-nmy-40{margin-top:-4rem!important;margin-bottom:-4rem!important}.u-mx-40{margin-left:4rem!important;margin-right:4rem!important}.u-px-40{padding-left:4rem!important;padding-right:4rem!important}.u-nmx-40{margin-left:-4rem!important;margin-right:-4rem!important}.u-m-45{margin:4.5rem!important}.u-p-45{padding:4.5rem!important}.u-mt-45{margin-top:4.5rem!important}.u-pt-45{padding-top:4.5rem!important}.u-nmt-45{margin-top:-4.5rem!important}.u-mb-45{margin-bottom:4.5rem!important}.u-pb-45{padding-bottom:4.5rem!important}.u-nmb-45{margin-bottom:-4.5rem!important}.u-ml-45{margin-left:4.5rem!important}.u-pl-45{padding-left:4.5rem!important}.u-nml-45{margin-left:-4.5rem!important}.u-mr-45{margin-right:4.5rem!important}.u-pr-45{padding-right:4.5rem!important}.u-nmr-45{margin-right:-4.5rem!important}.u-my-45{margin-top:4.5rem!important;margin-bottom:4.5rem!important}.u-py-45{padding-top:4.5rem!important;padding-bottom:4.5rem!important}.u-nmy-45{margin-top:-4.5rem!important;margin-bottom:-4.5rem!important}.u-mx-45{margin-left:4.5rem!important;margin-right:4.5rem!important}.u-px-45{padding-left:4.5rem!important;padding-right:4.5rem!important}.u-nmx-45{margin-left:-4.5rem!important;margin-right:-4.5rem!important}.u-m-50{margin:5rem!important}.u-p-50{padding:5rem!important}.u-mt-50{margin-top:5rem!important}.u-pt-50{padding-top:5rem!important}.u-nmt-50{margin-top:-5rem!important}.u-mb-50{margin-bottom:5rem!important}.u-pb-50{padding-bottom:5rem!important}.u-nmb-50{margin-bottom:-5rem!important}.u-ml-50{margin-left:5rem!important}.u-pl-50{padding-left:5rem!important}.u-nml-50{margin-left:-5rem!important}.u-mr-50{margin-right:5rem!important}.u-pr-50{padding-right:5rem!important}.u-nmr-50{margin-right:-5rem!important}.u-my-50{margin-top:5rem!important;margin-bottom:5rem!important}.u-py-50{padding-top:5rem!important;padding-bottom:5rem!important}.u-nmy-50{margin-top:-5rem!important;margin-bottom:-5rem!important}.u-mx-50{margin-left:5rem!important;margin-right:5rem!important}.u-px-50{padding-left:5rem!important;padding-right:5rem!important}.u-nmx-50{margin-left:-5rem!important;margin-right:-5rem!important}.u-m-55{margin:5.5rem!important}.u-p-55{padding:5.5rem!important}.u-mt-55{margin-top:5.5rem!important}.u-pt-55{padding-top:5.5rem!important}.u-nmt-55{margin-top:-5.5rem!important}.u-mb-55{margin-bottom:5.5rem!important}.u-pb-55{padding-bottom:5.5rem!important}.u-nmb-55{margin-bottom:-5.5rem!important}.u-ml-55{margin-left:5.5rem!important}.u-pl-55{padding-left:5.5rem!important}.u-nml-55{margin-left:-5.5rem!important}.u-mr-55{margin-right:5.5rem!important}.u-pr-55{padding-right:5.5rem!important}.u-nmr-55{margin-right:-5.5rem!important}.u-my-55{margin-top:5.5rem!important;margin-bottom:5.5rem!important}.u-py-55{padding-top:5.5rem!important;padding-bottom:5.5rem!important}.u-nmy-55{margin-top:-5.5rem!important;margin-bottom:-5.5rem!important}.u-mx-55{margin-left:5.5rem!important;margin-right:5.5rem!important}.u-px-55{padding-left:5.5rem!important;padding-right:5.5rem!important}.u-nmx-55{margin-left:-5.5rem!important;margin-right:-5.5rem!important}.u-m-60{margin:6rem!important}.u-p-60{padding:6rem!important}.u-mt-60{margin-top:6rem!important}.u-pt-60{padding-top:6rem!important}.u-nmt-60{margin-top:-6rem!important}.u-mb-60{margin-bottom:6rem!important}.u-pb-60{padding-bottom:6rem!important}.u-nmb-60{margin-bottom:-6rem!important}.u-ml-60{margin-left:6rem!important}.u-pl-60{padding-left:6rem!important}.u-nml-60{margin-left:-6rem!important}.u-mr-60{margin-right:6rem!important}.u-pr-60{padding-right:6rem!important}.u-nmr-60{margin-right:-6rem!important}.u-my-60{margin-top:6rem!important;margin-bottom:6rem!important}.u-py-60{padding-top:6rem!important;padding-bottom:6rem!important}.u-nmy-60{margin-top:-6rem!important;margin-bottom:-6rem!important}.u-mx-60{margin-left:6rem!important;margin-right:6rem!important}.u-px-60{padding-left:6rem!important;padding-right:6rem!important}.u-nmx-60{margin-left:-6rem!important;margin-right:-6rem!important}.u-m-65{margin:6.5rem!important}.u-p-65{padding:6.5rem!important}.u-mt-65{margin-top:6.5rem!important}.u-pt-65{padding-top:6.5rem!important}.u-nmt-65{margin-top:-6.5rem!important}.u-mb-65{margin-bottom:6.5rem!important}.u-pb-65{padding-bottom:6.5rem!important}.u-nmb-65{margin-bottom:-6.5rem!important}.u-ml-65{margin-left:6.5rem!important}.u-pl-65{padding-left:6.5rem!important}.u-nml-65{margin-left:-6.5rem!important}.u-mr-65{margin-right:6.5rem!important}.u-pr-65{padding-right:6.5rem!important}.u-nmr-65{margin-right:-6.5rem!important}.u-my-65{margin-top:6.5rem!important;margin-bottom:6.5rem!important}.u-py-65{padding-top:6.5rem!important;padding-bottom:6.5rem!important}.u-nmy-65{margin-top:-6.5rem!important;margin-bottom:-6.5rem!important}.u-mx-65{margin-left:6.5rem!important;margin-right:6.5rem!important}.u-px-65{padding-left:6.5rem!important;padding-right:6.5rem!important}.u-nmx-65{margin-left:-6.5rem!important;margin-right:-6.5rem!important}.u-m-70{margin:7rem!important}.u-p-70{padding:7rem!important}.u-mt-70{margin-top:7rem!important}.u-pt-70{padding-top:7rem!important}.u-nmt-70{margin-top:-7rem!important}.u-mb-70{margin-bottom:7rem!important}.u-pb-70{padding-bottom:7rem!important}.u-nmb-70{margin-bottom:-7rem!important}.u-ml-70{margin-left:7rem!important}.u-pl-70{padding-left:7rem!important}.u-nml-70{margin-left:-7rem!important}.u-mr-70{margin-right:7rem!important}.u-pr-70{padding-right:7rem!important}.u-nmr-70{margin-right:-7rem!important}.u-my-70{margin-top:7rem!important;margin-bottom:7rem!important}.u-py-70{padding-top:7rem!important;padding-bottom:7rem!important}.u-nmy-70{margin-top:-7rem!important;margin-bottom:-7rem!important}.u-mx-70{margin-left:7rem!important;margin-right:7rem!important}.u-px-70{padding-left:7rem!important;padding-right:7rem!important}.u-nmx-70{margin-left:-7rem!important;margin-right:-7rem!important}.row-spacing{margin-bottom:-3.5rem}@media (max-width:767px){.row-spacing{margin-bottom:-3.5rem}}.row-spacing [class*=" col-"],.row-spacing [class^=col-]{margin-bottom:3.5rem}@media (max-width:767px){.row-spacing [class*=" col-"],.row-spacing [class^=col-]{margin-bottom:3.5rem}}@media (max-width:575px){.row-spacing.wide{margin-right:-45px;margin-left:-45px}}@media (max-width:575px){.row-spacing.wide [class*=" col-"],.row-spacing.wide [class^=col-]{padding:0 1.5rem}.row-spacing.wide [class*=" col-"]:not(.full-span),.row-spacing.wide [class^=col-]:not(.full-span){padding:0 45px}}.section-spacing:not(:first-child){margin-top:7rem}.section-spacing:not(:last-child){margin-bottom:7rem}.field-spacing:not(:first-child){margin-top:8rem}.field-spacing:not(:last-child){margin-bottom:8rem}@media (max-width:767px){.field-spacing:not(:first-child){margin-top:5rem}.field-spacing:not(:last-child){margin-bottom:5rem}}.color-navy{color:#0d2340!important}.color-blue{color:#00b8de!important}.color-pink{color:#d4117f!important}.color-grey{color:#a1abb9!important}.color-grey--light{color:#d1d9da!important}.color-grey--f7{color:#f7f8fa!important}.color-black{color:#000!important}.bgcolor-navy,.color-white{color:#fff!important}.bgcolor-navy{background-color:#0d2340!important}.bgcolor-blue{background-color:#00b8de!important;color:#fff!important}.bgcolor-pink{background-color:#d4117f!important;color:#fff!important}.bgcolor-grey{background-color:#a1abb9!important;color:#fff!important}.bgcolor-grey--light{background-color:#d1d9da!important;color:#0d2340!important}.bgcolor-grey--f7{background-color:#f7f8fa!important;color:#0d2340!important}.bgcolor-black{background-color:#000!important;color:#fff!important}.bgcolor-white{background-color:#fff!important;color:#0d2340!important}.ff-helvetica{font-family:helvetica,sans-serif!important}.ff-helvetica-condensed{font-family:helvetica-condensed,sans-serif!important}.ff-archer{font-family:archer,serif!important}.fw-regular{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-bold{font-weight:700!important}.fz-sm{font-size:85%!important}.fz-lg{font-size:120%!important}.tt-uppercase{text-transform:uppercase}.tt-lowercase{text-transform:lowercase}@media (min-width:1500px){.container--wide{max-width:1350px}}@media (min-width:992px){.container--inset{max-width:900px}}@media (min-width:992px){.container--tight{max-width:800px}}.container--eval{margin-bottom:5rem;padding-left:0!important;padding-right:0!important}.container--eval .box-page-info{padding:5rem 0 2rem!important}.container--eval .box-page-info .social__dropdown{position:absolute;top:3rem;right:3rem}@media (max-width:991px){.container--eval .box-page-info{padding:5rem 0 0 2rem!important}}.container--eval .filter--eval{margin-bottom:3rem!important}.container--eval .filter--eval__box{background-color:#00b8de;margin-left:15px;margin-right:15px;margin-top:-3rem}@media (max-width:991px){.container--eval .filter--eval__box{padding:0 4rem!important}}.container--eval label{color:#fff!important}.no-scroll{position:relative;overflow:hidden}@font-face{font-family:icomoon;src:url(/themes/custom/boots/assets/fonts/icomoon/icomoon.woff2?qvvclu=) format("woff2"),url(/themes/custom/boots/assets/fonts/icomoon/icomoon.woff?qvvclu=) format("woff");font-weight:400;font-style:normal}[class*=" ico-"],[class^=ico-]{font-family:icomoon!important;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}.ico-arrow-down:before{content:"\E900"}.ico-arrow-left:before{content:"\E901"}.ico-arrow-right:before{content:"\E902"}.ico-arrow-up:before{content:"\E903"}.ico-bubble:before{content:"\E904"}.ico-chevron-down:before{content:"\E905"}.ico-chevron-left:before{content:"\E906"}.ico-chevron-right:before{content:"\E907"}.ico-chevron-up:before{content:"\E908"}.ico-close-quote:before{content:"\E909"}.ico-close:before{content:"\E90A"}.ico-comments:before{content:"\E90B"}.ico-download:before{content:"\E90C"}.ico-duration:before{content:"\E90D"}.ico-facebook:before{content:"\E90E"}.ico-hat:before{content:"\E90F"}.ico-heart:before{content:"\E910"}.ico-instagram:before{content:"\E911"}.ico-link:before{content:"\E912"}.ico-linkedin:before{content:"\E913"}.ico-location:before{content:"\E914"}.ico-loop:before{content:"\E915"}.ico-mail:before{content:"\E916"}.ico-minus:before{content:"\E917"}.ico-open-quote:before{content:"\E918"}.ico-phone:before{content:"\E919"}.ico-pin:before{content:"\E91A"}.ico-play:before{content:"\E91B"}.ico-plus:before{content:"\E91C"}.ico-refresh:before{content:"\E91D"}.ico-share:before{content:"\E91E"}.ico-stopwatch:before{content:"\E91F"}.ico-suitcase:before{content:"\E920"}.ico-twitter:before{content:"\E921"}.ico-upload:before{content:"\E922"}.ico-user:before{content:"\E923"}.ico-warning:before{content:"\E924"}.ico-youtube:before{content:"\E925"}.ico-folders:before{content:"\E926"}.ico-calendar:before{content:"\E927"}.ico-home:before{content:"\E928"}.ico-plaquettes:before{content:"\E929"}.ico-user-outline:before{content:"\E92A"}.ico-check:before{content:"\E92B"}.hamburger{padding:5px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.8}.hamburger-box{width:35px;height:23px;display:inline-block;position:relative}@media (max-width:991px){.hamburger-box{width:25px;height:16px}}.hamburger-inner{display:block;top:50%;margin-top:-1.5px}@media (max-width:991px){.hamburger-inner{margin-top:-1px}}.hamburger-inner,.hamburger-inner:after,.hamburger-inner:before{width:35px;height:3px;background-color:#12202f;border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}@media (max-width:991px){.hamburger-inner,.hamburger-inner:after,.hamburger-inner:before{width:25px;height:2px}}.hamburger-inner:after,.hamburger-inner:before{content:"";display:block}.hamburger-inner:before{top:-10px}@media (max-width:991px){.hamburger-inner:before{top:-7px}}.hamburger-inner:after{bottom:-10px}@media (max-width:991px){.hamburger-inner:after{bottom:-7px}}.hamburger--elastic .hamburger-inner{top:1.5px;transition-duration:.4s;transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}@media (max-width:991px){.hamburger--elastic .hamburger-inner{top:1px}}.hamburger--elastic .hamburger-inner:before{top:10px;transition:opacity .15s ease .4s}@media (max-width:991px){.hamburger--elastic .hamburger-inner:before{top:7px}}.hamburger--elastic .hamburger-inner:after{top:20px;transition:transform .4s cubic-bezier(.68,-.55,.265,1.55)}@media (max-width:991px){.hamburger--elastic .hamburger-inner:after{top:14px}}.hamburger--elastic.is-active .hamburger-inner{transform:translateY(10px) rotate(135deg);transition-delay:.1s}@media (max-width:991px){.hamburger--elastic.is-active .hamburger-inner{transform:translateY(7px) rotate(135deg)}}.hamburger--elastic.is-active .hamburger-inner:before{transition-delay:0s;opacity:0}.hamburger--elastic.is-active .hamburger-inner:after{transform:translateY(-20px) rotate(-270deg);transition-delay:.1s}@media (max-width:991px){.hamburger--elastic.is-active .hamburger-inner:after{transform:translateY(-14px) rotate(-270deg)}}.hamburger--elastic.is-active .hamburger-inner,.hamburger--elastic.is-active .hamburger-inner:after,.hamburger--elastic.is-active .hamburger-inner:before{background-color:#a1abb9}.swiper-lazy{opacity:0;transition:all .2s ease-in-out}.swiper-lazy-loaded{opacity:1}.swiper-lazy-preloader{z-index:-1}.plyr--stopped .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr:not(.plyr--stopped) .plyr__poster{visibility:hidden;opacity:0}.bootstrap-select{width:100%!important}.bootstrap-select:not(:last-child){margin-bottom:2rem}.bootstrap-select .dropdown-toggle{background-color:#fff;color:#0d2340;padding:1.25rem 2rem}.bootstrap-select .dropdown-toggle:active,.bootstrap-select .dropdown-toggle:focus,.bootstrap-select .dropdown-toggle:hover{outline:none!important;color:#0d2340;background-color:#fff!important;border-color:#00b8de!important}.bootstrap-select .dropdown-toggle:after{content:"\E905";font-family:icomoon;margin-top:0;color:#d4117f;font-size:1rem;margin-left:1rem;font-weight:400;width:auto;height:auto;border:0;transition:all .2s ease-in-out}.bootstrap-select .dropdown-toggle.bs-placeholder{color:#0d2340}.bootstrap-select .dropdown-toggle.bs-placeholder:hover{background-color:#fff!important;border-color:#00b8de!important;color:#d4117f}.bootstrap-select .filter-option.inner.inner{color:#0d2340}.bootstrap-select .dropdown-menu{background-color:#fff;font-size:inherit;min-width:100%!important;border:none!important;padding:0;margin:0;border-radius:0;box-shadow:0 10px 20px -5px rgba(0,0,0,.5)}.bootstrap-select .dropdown-menu li a{color:#0d2340;padding:1rem 2rem;font-size:1.3rem;text-transform:uppercase;border-top:.1rem solid rgba(209,217,218,.5)}.bootstrap-select .dropdown-menu li.selected a,.bootstrap-select .dropdown-menu li:active a,.bootstrap-select .dropdown-menu li a:hover{background-color:#fff;color:#d4117f}.bootstrap-select .dropdown-menu li .bs-ok-default.check-mark{top:.8rem!important}.bootstrap-select.show .dropdown-toggle{background-color:#fff;border-radius:0;border-color:transparent!important}.bootstrap-select.show .dropdown-toggle:after{transform:rotate(180deg)}.bootstrap-select.show .dropdown-toggle:hover{border-color:#00b8de}.selectbox--icon .dropdown-toggle{padding:2rem 2rem 2rem 5rem;font-size:1.4rem;height:10rem}.selectbox--icon .dropdown-toggle .filter-option{padding-right:2rem;height:auto}.selectbox--icon .dropdown-toggle:after{margin-top:0;position:absolute;top:50%;transform:translateY(-50%) rotate(0deg);right:2rem}.selectbox--icon .dropdown-toggle:before{position:absolute;top:50%;transform:translateY(-50%);font-size:2.2rem;color:#00b8de;left:2rem}@media (max-width:991px){.selectbox--icon .dropdown-toggle{padding:2rem 2rem 2rem 5.5rem;height:7rem}}.selectbox--icon.show .dropdown-toggle{padding:2rem 2rem 2rem 5rem}@media (max-width:991px){.selectbox--icon.show .dropdown-toggle{padding:4rem 2rem 4rem 5.5rem}}.selectbox--icon.show .dropdown-toggle:after{transform:translateY(-50%) rotate(180deg)}.selectbox--icon.heart .dropdown-toggle:before{content:"\E910";font-family:icomoon}.selectbox--icon.user-outline .dropdown-toggle:before{content:"\E92A";font-family:icomoon}.selectbox--icon.comments .dropdown-toggle:before{content:"\E90B";font-family:icomoon}.selectbox--dark .dropdown-toggle{background-color:hsla(0,0%,100%,.12);color:#fff!important}.selectbox--dark .dropdown-toggle:active,.selectbox--dark .dropdown-toggle:focus,.selectbox--dark .dropdown-toggle:hover{outline:none!important;color:#fff;background-color:hsla(0,0%,100%,.12)!important;border-color:#fff!important}.selectbox--dark .dropdown-toggle.bs-placeholder{color:#fff}.selectbox--dark .dropdown-toggle.bs-placeholder:hover{background-color:hsla(0,0%,100%,.12)!important;border-color:#fff!important;color:#fff}.selectbox--dark .filter-option.inner.inner{color:#0d2340}.selectbox--dark .dropdown-menu{background-color:#0d2340}.selectbox--dark .dropdown-menu li a{color:#fff;border-top:.1rem solid hsla(0,0%,59.2%,.11);background-color:hsla(0,0%,100%,.12)}.selectbox--dark .dropdown-menu li a:hover{background-color:hsla(0,0%,100%,.12);color:#d4117f}.selectbox--dark .dropdown-menu li.selected a,.selectbox--dark .dropdown-menu li:active a{background-color:#fff;color:#d4117f}.selectbox--dark .dropdown-menu li .bs-ok-default.check-mark{top:.8rem!important}.selectbox--dark.show .dropdown-toggle{background-color:hsla(0,0%,100%,.12)!important;border-color:#fff!important}.selectbox--dark.show .dropdown-toggle:after{transform:rotate(180deg)}.selectbox--dark.show .dropdown-toggle:hover{border-color:#00b8de}.datepicker{font-family:helvetica,sans-serif;color:#0d2340}.datepicker--day-name{color:#00b8de;font-weight:700}.datepicker--cell-day.-current-{color:#d4117f}.datepicker--cell-day.-selected-{color:#fff;background-color:#d4117f;font-weight:700}.datepicker--cell-day.-focus-{color:#fff!important;background-color:#d4117f!important}.grid-item{width:22%;margin-bottom:2rem}.simplebar-wrapper{backface-visibility:hidden}.simplebar-scrollbar:before{background-color:#00b8de!important;opacity:1!important;border-radius:0;width:.3rem;left:-.15rem}.simplebar-track{overflow:visible}.simplebar-track.simplebar-vertical{width:.1rem;background-color:rgba(13,35,64,.1)}p{margin:0}p:not(:first-child){margin-top:2.5rem}p:not(:last-child){margin-bottom:2.5rem}p a{border-bottom:.1rem solid;font-weight:500}.h1,.h2,.h3,.h4,.h5,h1,h2,h3,h4,h5{font-family:helvetica,sans-serif;line-height:inherit;font-weight:700;margin-bottom:0}.h1:not(:last-child),.h2:not(:last-child),.h3:not(:last-child),.h4:not(:last-child),.h5:not(:last-child),h1:not(:last-child),h2:not(:last-child),h3:not(:last-child),h4:not(:last-child),h5:not(:last-child){margin-bottom:2rem}.h1,h1{font-size:3.6rem;line-height:3.6rem}@media (max-width:991px){.h1,h1{font-size:2.8rem;line-height:3.6rem}}.h2,h2{font-size:2.5rem;line-height:3rem}@media (max-width:991px){.h2,h2{font-size:2.5rem;line-height:3rem}}.h3,h3{font-size:1.8rem;line-height:1.8rem}.h4,h4{font-size:1.6rem;line-height:1.6rem}.line-up,.line-up-eval{position:relative;padding-top:1rem}.line-up-eval:before,.line-up:before{content:"";position:absolute;height:.2rem;width:5rem;bottom:100%;left:50%;transform:translateX(-50%);background-color:#0d2340}.line-up-eval{font-size:3rem}.blue--bg{background-color:#00b8de!important}.btn{background-color:#d4117f;color:#fff;padding:1rem 4rem;border-radius:0;font-weight:700;font-size:1.6rem;transition:all .2s ease-in-out;border:none}.btn:focus,.btn:hover{color:#fff}.btn:active,.btn:focus,.btn:hover{background-color:#0d2340;box-shadow:none}.btn:active{color:#d1d9da}.btn:disabled{background-color:#a1abb9;color:#fff}.btn-navy{background-color:#0d2340}.btn-navy:focus,.btn-navy:hover{background-color:#00b8de;color:#fff}.btn-navy:active{background-color:#00b8de;color:#d1d9da}.btn-white{background-color:#fff;color:#d4117f}.btn-white:focus,.btn-white:hover{background-color:#00b8de;color:#fff}.btn-white:active{color:#d1d9da}.btn-blue,.btn-white:active{background-color:#00b8de}.btn--inverted{border:.1rem solid transparent}.btn--inverted:focus,.btn--inverted:hover{background-color:#fff;border-color:#d4117f;color:#d4117f}.btn--inverted:active{background-color:#00b8de;color:#d1d9da}.btn--hollow{border:.1rem solid #d4117f;background-color:transparent;color:#d4117f}.btn--hollow:active,.btn--hollow:focus,.btn--hollow:hover{background-color:#fff;border-color:#d4117f;color:#d4117f}.btn--wicon [class*=" ico-"],.btn--wicon [class^=ico-]{margin-right:1.5rem;vertical-align:middle}.share-btn{font-size:2.6rem;color:#d4117f}.share-btn:hover{color:#0d2340}.share-btn-eval{line-height:1}.dowloand-link{display:inline-flex;align-items:center;font-size:1.4rem;font-weight:500;text-transform:uppercase;color:#d4117f}.dowloand-link [class*=" ico-"],.dowloand-link [class^=ico-]{margin-right:1.4rem;font-size:1.6rem}.ico-btn{display:inline-block;font-size:1.9rem;color:#d4117f}.ico-btn:hover{color:#0d2340}.ico-btn--inverted:focus,.ico-btn--inverted:hover{color:#fff}.ico-btn--inverted:active{color:#d4117f}.ico-btn-refresh{padding:.75rem 1.5rem;background:#fff}.ico-btn-refresh>img{width:1.6rem;max-width:none}.ico-share{padding:.75rem;background:#d4117f;font-size:2rem;color:#fff}button.form-control,input.form-control,textarea.form-control{height:4.5rem;border:.1rem solid transparent;border-radius:0;background-color:#fff;box-shadow:0 0 4px 2px rgba(0,0,0,.05);color:#0d2340!important;padding:.5rem 2.5rem;font-size:1.2rem}button.form-control:focus,input.form-control:focus,textarea.form-control:focus{border-color:#00b8de;box-shadow:0 0 4px 2px rgba(0,0,0,.05);outline:none}button.form-control::-webkit-input-placeholder,input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{color:#0d2340;font-size:inherit;line-height:inherit}button.form-control::-moz-placeholder,input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{color:#0d2340;font-size:inherit;line-height:inherit}button.form-control:-ms-input-placeholder,input.form-control:-ms-input-placeholder,textarea.form-control:-ms-input-placeholder{color:#0d2340;font-size:inherit;line-height:inherit}button.form-control:-moz-placeholder,input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{color:#0d2340;font-size:inherit;line-height:inherit}button.form-control--dark,input.form-control--dark,textarea.form-control--dark{box-shadow:none;border:none;border-bottom:.1rem solid #fff;color:#fff!important;font-weight:700;font-size:2.2rem;padding:1.5rem 0}button.form-control--dark:focus,input.form-control--dark:focus,textarea.form-control--dark:focus{border:none;border-bottom:.1rem solid #00b8de;box-shadow:none;outline:none}button.form-control--dark:focus [class*=" ico-"],button.form-control--dark:focus~[class^=ico-],input.form-control--dark:focus [class*=" ico-"],input.form-control--dark:focus~[class^=ico-],textarea.form-control--dark:focus [class*=" ico-"],textarea.form-control--dark:focus~[class^=ico-]{color:#00b8de}button.form-control--dark::-webkit-input-placeholder,input.form-control--dark::-webkit-input-placeholder,textarea.form-control--dark::-webkit-input-placeholder{color:#fff;font-size:2.2rem;font-weight:700;text-transform:uppercase;line-height:inherit}button.form-control--dark::-moz-placeholder,input.form-control--dark::-moz-placeholder,textarea.form-control--dark::-moz-placeholder{color:#fff;font-size:2.2rem;font-weight:700;text-transform:uppercase;line-height:inherit}button.form-control--dark:-ms-input-placeholder,input.form-control--dark:-ms-input-placeholder,textarea.form-control--dark:-ms-input-placeholder{color:#fff;font-size:2.2rem;font-weight:700;text-transform:uppercase;line-height:inherit}button.form-control--dark:-moz-placeholder,input.form-control--dark:-moz-placeholder,textarea.form-control--dark:-moz-placeholder{color:#fff;font-size:2.2rem;font-weight:700;text-transform:uppercase;line-height:inherit}button.form-control--secondary,input.form-control--secondary,textarea.form-control--secondary{font-size:1.4rem}button.form-control--secondary::-webkit-input-placeholder,input.form-control--secondary::-webkit-input-placeholder,textarea.form-control--secondary::-webkit-input-placeholder{color:#a1abb9;font-size:inherit;font-family:archer,serif}button.form-control--secondary::-moz-placeholder,input.form-control--secondary::-moz-placeholder,textarea.form-control--secondary::-moz-placeholder{color:#a1abb9;font-size:inherit;font-family:archer,serif}button.form-control--secondary:-ms-input-placeholder,input.form-control--secondary:-ms-input-placeholder,textarea.form-control--secondary:-ms-input-placeholder{color:#a1abb9;font-size:inherit;font-family:archer,serif}button.form-control--secondary:-moz-placeholder,input.form-control--secondary:-moz-placeholder,textarea.form-control--secondary:-moz-placeholder{color:#a1abb9;font-size:inherit;font-family:archer,serif}textarea.form-control{resize:none;height:auto}.form-group,label{margin-bottom:1.5rem}label{font-size:1.2rem;text-transform:uppercase;color:#8c97a7;padding-left:2rem;font-weight:500}.input-text-icon{position:relative;background-color:#fff}.input-text-icon .form-control{background-color:transparent!important;margin-bottom:0!important}.input-text-icon [class*=" ico-"],.input-text-icon [class^=ico-]{position:absolute;top:50%;right:2rem;font-size:1rem;color:#d4117f;pointer-events:none;transform:translateY(-50%) rotate(0deg);transition:all .2s ease-in-out}.input-text-icon--dark{background-color:#0d2340}.input-text-icon--dark [class*=" ico-"],.input-text-icon--dark [class^=ico-]{color:#fff;font-size:2.5rem;right:0}.checkbox:not(:last-child),.radiobox:not(:last-child){margin-bottom:1rem}.checkbox input[type=checkbox],.checkbox input[type=radio],.radiobox input[type=checkbox],.radiobox input[type=radio]{display:none}.checkbox input[type=checkbox]~label,.checkbox input[type=radio]~label,.radiobox input[type=checkbox]~label,.radiobox input[type=radio]~label{position:relative;padding-left:4rem;margin-bottom:0;font-weight:400;text-transform:none;display:inline-block;cursor:pointer}.checkbox input[type=checkbox]~label:after,.checkbox input[type=checkbox]~label:before,.checkbox input[type=radio]~label:after,.checkbox input[type=radio]~label:before,.radiobox input[type=checkbox]~label:after,.radiobox input[type=checkbox]~label:before,.radiobox input[type=radio]~label:after,.radiobox input[type=radio]~label:before{content:"";position:absolute;display:block;transition:all .2s ease-in-out}.checkbox input[type=checkbox]~label:before,.checkbox input[type=radio]~label:before,.radiobox input[type=checkbox]~label:before,.radiobox input[type=radio]~label:before{top:0;left:0;background-color:#fff;width:2rem;height:2rem;border:.1rem solid #d8d8d8}.checkbox input[type=checkbox]~label:after,.checkbox input[type=radio]~label:after,.radiobox input[type=checkbox]~label:after,.radiobox input[type=radio]~label:after{opacity:0;visibility:hidden}.checkbox input[type=checkbox]:checked~label:after,.checkbox input[type=radio]:checked~label:after,.radiobox input[type=checkbox]:checked~label:after,.radiobox input[type=radio]:checked~label:after{opacity:1;visibility:visible}.radiobox input[type=radio]~label:before{border-radius:100%}.radiobox input[type=radio]:checked~label:after{content:"";top:.3rem;left:.3rem;display:block;background-color:#d4117f;width:1.4rem;height:1.4rem;border-radius:100%}.checkbox input[type=checkbox]:checked~label:before{background-color:#d4117f}.checkbox input[type=checkbox]:checked~label:after{content:"\E92B";font-family:icomoon;top:.2rem;left:.5rem;color:#fff;font-size:1rem}.radiobox--navy input[type=radio]~label{color:#0d2340}.radiobox--navy input[type=radio]~label:before{width:1.2rem;height:1.2rem;top:.3rem}.radiobox--navy input[type=radio]:checked~label:after{content:"";top:.6rem;left:.3rem;display:block;background-color:#0d2340;width:.6rem;height:.6rem;border-radius:100%}.checkbox--blue input[type=checkbox]~label{color:#0d2340;padding-left:2.3rem}.checkbox--blue input[type=checkbox]~label:before{width:1.2rem;height:1.2rem;border-radius:.1rem;top:.3rem}.checkbox--blue input[type=checkbox]:checked~label:before{background-color:#00b8de}.checkbox--blue input[type=checkbox]:checked~label:after{top:.3rem;left:.3rem;font-size:.7rem}.custom-file{height:100%;padding:1.5rem 0;width:unset}.custom-file-name{width:100%;border:none;border-radius:1.5rem;background-color:#0d2340;color:#fff;padding:.5rem 1rem .5rem 3rem;line-height:1.5}.custom-file-remove{position:absolute;left:2.5rem;top:.7rem;color:#fff;font-size:1rem;font-weight:700;opacity:0;visibility:hidden}.custom-file-remove.active{opacity:1;visibility:visible}.custom-file-label{height:100%;margin-bottom:0;padding:.6rem 1rem .5rem 3rem;border:none;color:#0d2340;text-transform:none}.custom-file-label:after{right:unset;left:0;top:.6rem;background-color:#0d2340;color:#fff;border-radius:100%;width:1.7rem;height:1.7rem;padding:0;text-align:center}@media (max-width:991px){.custom-file-label{padding:.5rem 1rem .5rem 5rem}.custom-file-label:after{left:1.7rem}}.custom-file-input:focus{box-shadow:none}.img-cover-map img,.img-cover-map video,.img-cover img,.img-cover video{-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;";height:100%;width:100%}@media (max-width:1279px){.img-cover-map img,.img-cover-map video{height:auto;width:auto}}.scale-img{position:relative;overflow:hidden}.scale-img--4x3 img,.scale-img--16x9 img{position:absolute;top:0;left:0}.scale-img--16x9{padding-bottom:54.25%}.scale-img--4x3{padding-bottom:70%}.img-panoramic{position:relative;padding-bottom:56.25%;overflow:hidden}.img-panoramic img{position:absolute;top:0;left:0}.cke_editable ul:not([class]),.content-rte ul:not([class]),.list-chevron,.sidebox ul:not([class]){padding-left:4rem;overflow:hidden}.cke_editable ul:not(:first-child):not([class]),.content-rte ul:not(:first-child):not([class]),.list-chevron:not(:first-child),.sidebox ul:not(:first-child):not([class]){margin-top:2.5rem}.cke_editable ul:not(:last-child):not([class]),.content-rte ul:not(:last-child):not([class]),.list-chevron:not(:last-child),.sidebox ul:not(:last-child):not([class]){margin-bottom:2.5rem}.cke_editable ul:not([class]) li,.content-rte ul:not([class]) li,.list-chevron li,.sidebox ul:not([class]) li{position:relative}.cke_editable ul:not([class]) li:not(:last-child),.content-rte ul:not([class]) li:not(:last-child),.list-chevron li:not(:last-child),.sidebox ul:not([class]) li:not(:last-child){margin-bottom:1.5rem}.cke_editable ul:not([class]) li:before,.content-rte ul:not([class]) li:before,.list-chevron li:before,.sidebox ul:not([class]) li:before{content:"\E907";font-family:icomoon;color:#d4117f;position:absolute;top:.6rem;left:-2rem;font-size:.8rem;line-height:.7rem}.cke_editable ol:not([class]),.content-rte ol:not([class]),.list-decimal,.sidebox ol:not([class]){padding-left:4rem;counter-reset:list;overflow:hidden}.cke_editable ol:not(:first-child):not([class]),.content-rte ol:not(:first-child):not([class]),.list-decimal:not(:first-child),.sidebox ol:not(:first-child):not([class]){margin-top:2.5rem}.cke_editable ol:not(:last-child):not([class]),.content-rte ol:not(:last-child):not([class]),.list-decimal:not(:last-child),.sidebox ol:not(:last-child):not([class]){margin-bottom:2.5rem}.cke_editable ol:not([class]) li,.content-rte ol:not([class]) li,.list-decimal li,.sidebox ol:not([class]) li{counter-increment:m-counter;position:relative}.cke_editable ol:not([class]) li:before,.content-rte ol:not([class]) li:before,.list-decimal li:before,.sidebox ol:not([class]) li:before{content:counter(m-counter) ". ";position:absolute;top:0;left:-2rem;color:#d4117f;margin-right:.5rem}.cke_editable ol:not([class]) li:not(:last-child),.content-rte ol:not([class]) li:not(:last-child),.list-decimal li:not(:last-child),.sidebox ol:not([class]) li:not(:last-child){margin-bottom:1.5rem}.list-ico:not(:first-child){margin-top:2.5rem}.list-ico:not(:last-child){margin-bottom:2.5rem}.list-ico__item{display:flex}.list-ico__item:not(:last-child){margin-bottom:1rem}.list-ico__item [class*=" ico-"],.list-ico__item [class^=ico-]{font-size:1.7rem;margin-top:.3rem}.list-ico__item [class*=" ico-"]:first-child,.list-ico__item [class^=ico-]:first-child{margin-right:1rem}.list-ico__item [class*=" ico-"]:last-child,.list-ico__item [class^=ico-]:last-child{margin-left:1rem}.list-ico__body{flex:1 0}.tag-list{display:flex;flex-wrap:wrap}@media (max-width:991px){.tag-list{flex-direction:column}}.tag-list__item{font-size:1.4rem;font-weight:700;position:relative;padding-left:4rem;margin-bottom:1.5rem}.tag-list__item [class*=" ico-"],.tag-list__item [class^=ico-]{font-size:2rem;position:absolute;left:0}.tag-list__item span:first-of-type{display:block}.tag-list__item:not(:last-child){margin-right:3rem}@media (max-width:991px){.tag-list__item:not(:last-child){margin-right:0}}.anchor-list{margin-bottom:5rem;padding:.7rem 3rem 0 0;height:23rem}.anchor-list__item{font-size:1.5rem;text-align:right}.anchor-list__item:not(:last-child){margin-bottom:1rem}.anchor-list__item a.active{color:#00b8de}@media (max-width:991px){.anchor-list{display:none}}.tags .date-tag~.theme-tag:before,.tags .date-tag~.type-tag:before{content:"-"}.tags .type-tag~.theme-tag:before{content:"/"}.date-tag{font-weight:500}.date-tag,.theme-tag,.type-tag{display:inline-block;color:#d4117f;font-family:archer,serif;font-size:1.4rem}.theme-tag,.type-tag{font-weight:700;position:relative}.theme-tag:before,.type-tag:before{position:absolute;top:-.1rem;left:-1rem;font-weight:400}.thumbnail{display:block;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);height:100%}.thumbnail__date{font-family:archer,serif;color:#00b8de;font-size:1.6rem;font-weight:500}.thumbnail__body{padding:2.5rem 3rem}.thumbnail__title{font-size:2.2rem;transition:all .2s ease-in-out;line-height:26px}.thumbnail__title a:hover{color:#d4117f}.thumbnail__title--eval{font-family:helvetica-condensed,sans-serif;font-weight:700;font-size:3rem;color:#fff}.thumbnail__title--eval:hover{color:#d4117f!important}.thumbnail__paragraph p{line-height:1.2;font-family:archer,serif;font-weight:500;font-size:1.4rem;color:#0d2340!important}.thumbnail__paragraph--eval{font-family:arial,sans-serif;font-weight:500;font-size:1.2rem;line-height:18px;color:#fff}.thumbnail__cta{color:#00b8de;font-size:1.5rem;font-weight:700;transition:all .2s ease-in-out}.thumbnail__cta [class*=" ico-"],.thumbnail__cta [class^=ico-]{font-size:.9rem;margin-right:.5rem}.thumbnail__cta:hover{color:#d4117f}.thumbnail:hover .thumbnail__paragraph p{color:#0d2340}.thumbnail--wide{display:flex;padding:6rem 0;z-index:1;box-shadow:none}.thumbnail--wide .thumbnail__image{flex:0 0 45%;width:45%;margin-right:10rem}@media (max-width:991px){.thumbnail--wide .thumbnail__image{display:none}}.thumbnail--wide .thumbnail__body{padding:0;flex:1;display:flex;flex-direction:column}@media (max-width:991px){.thumbnail--wide .thumbnail__body{padding:0}}.thumbnail--wide .thumbnail__header.has-date{position:relative;padding-left:8rem;margin-bottom:3rem}.thumbnail--wide .thumbnail__header.has-date .thumbnail__title{margin-bottom:0}.thumbnail--wide .thumbnail__header.has-date .date-box{position:absolute;top:0;left:0}@media (max-width:991px){.thumbnail--wide .thumbnail__header.has-date{padding:1rem 0 1rem 8rem}}.thumbnail--wide .thumbnail__paragraph p{font-family:helvetica,sans-serif;line-height:inherit;font-weight:400;font-size:1.2rem;color:#0d2340!important}.thumbnail--wide .thumbnail__cta{color:unset;margin-top:auto}.thumbnail--wide:nth-child(odd){position:relative}.thumbnail--wide:nth-child(odd):before{content:"";position:absolute;height:100%;width:100vw;background-color:#f7f8fa;top:0;left:50%;transform:translateX(-50%);z-index:-1}.thumbnail--wide:hover .thumbnail__title{color:unset}.tag-list{-moz-column-gap:2rem;column-gap:2rem;display:inline-block}@media (max-width:575px){.tag-list{-moz-columns:2;column-count:2;flex:0 0 100%}}.thumbnail--trombinoscope{display:flex;align-items:center;padding:5rem 0;position:relative;z-index:1;box-shadow:none}.thumbnail--trombinoscope--eval{background:#00b8de;align-items:normal!important}.thumbnail--trombinoscope--eval:before{background-color:unset!important}.thumbnail--trombinoscope--eval .social__dropdown{position:absolute;top:3rem;right:3rem}@media (max-width:991px){.thumbnail--trombinoscope--eval .thumbnail__body{padding:0 4rem!important;text-align:center}.thumbnail--trombinoscope--eval .thumbnail__body .thumbnail__header{justify-content:center!important}}@media (max-width:991px){.thumbnail--trombinoscope{flex-direction:column;align-items:flex-start}}.thumbnail--trombinoscope.split-effect:before{clip-path:polygon(70% 0,100% 0,100% 100%,50% 100%);background-color:hsla(0,0%,84.7%,.23)}.thumbnail--trombinoscope.split-effect:after{content:"";position:absolute;background-color:hsla(0,0%,84.7%,.11);width:100vw;height:100%;top:0;left:50%;transform:translateX(-50%);z-index:-2}.thumbnail--trombinoscope .thumbnail__image{width:20rem;height:20rem;border-radius:100%;overflow:hidden;flex:0 0 auto}@media (min-width:992px){.thumbnail--trombinoscope .thumbnail__image{margin-right:5.5rem;margin-left:5.5rem}}@media (max-width:991px){.thumbnail--trombinoscope .thumbnail__image{align-self:center;margin-bottom:2rem}}.thumbnail--trombinoscope .thumbnail__body{padding:0;display:flex;flex-direction:column}@media (min-width:992px){.thumbnail--trombinoscope .thumbnail__body{flex:0 0 50%;width:50%}}@media (max-width:991px){.thumbnail--trombinoscope .thumbnail__body{padding:2rem;margin-bottom:2rem}}.thumbnail--trombinoscope .thumbnail__header{display:flex;align-items:baseline}.thumbnail--trombinoscope .thumbnail__paragraph p{font-family:helvetica,sans-serif;line-height:inherit;font-weight:400;font-size:1.2rem;color:#fff!important}.thumbnail--trombinoscope .thumbnail__info-item{font-size:1.4rem;font-weight:500}.thumbnail--trombinoscope .thumbnail__info-item [class*=" ico-"],.thumbnail--trombinoscope .thumbnail__info-item [class^=ico-]{font-size:1.6rem;margin-right:2rem}.thumbnail--trombinoscope .thumbnail__info-item:not(:last-child){margin-bottom:1rem}@media (min-width:992px){.thumbnail--trombinoscope .thumbnail__info{margin-left:auto}}.thumbnail--newsletter .thumbnail__body{padding:2.5rem 3rem}.thumbnail--newsletter .thumbnail__date{color:#d4117f;font-size:1.4rem}.thumbnail--newsletter .thumbnail__image{padding-bottom:6rem}.thumbnail--newsletter .thumbnail__image img{position:absolute;top:0;left:0;z-index:-1}.thumbnail--newsletter .thumbnail__link{color:#d4117f;font-size:2.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-transform:uppercase;font-weight:700;opacity:0;visibility:hidden;transition:all .2s ease-in-out}.thumbnail--newsletter .thumbnail__link span:first-of-type{margin-bottom:-1rem}.thumbnail--newsletter .thumbnail__link [class*=" ico-"],.thumbnail--newsletter .thumbnail__link [class^=ico-]{margin-right:2rem}.thumbnail--newsletter .thumbnail__link:before{content:"";position:absolute;width:calc(100% + .2rem);height:calc(200% + .1rem);top:-.1rem;left:-.1rem;z-index:-1;background-color:hsla(0,0%,100%,.84)}.thumbnail--newsletter:hover .thumbnail__link{opacity:1;visibility:visible}.thumbnail--list{height:auto}.thumbnail--list .thumbnail__list-item:not(:last-child){padding-bottom:2.5rem;margin-bottom:2.5rem;border-bottom:.1rem solid hsla(0,0%,59.2%,.56)}.thumbnail--list .thumbnail__list-link{display:flex;flex-direction:column;position:relative;padding-right:2rem;font-weight:700;line-height:1.3}.thumbnail--list .thumbnail__list-link:after{content:"\E902";font-family:icomoon;position:absolute;top:50%;right:0;transform:translateY(-50%);font-size:1.6rem;font-weight:700;transition:all .2s ease-in-out;color:#d4117f}.thumbnail--list .thumbnail__list-link:hover{color:#d4117f}.thumbnail--list .thumbnail__list-link:hover:after{transform:translate(5px,-50%)}@media (max-width:991px){.thumbnail--list{margin-bottom:2rem}}.thumbnail--social .thumbnail__img{position:relative}.thumbnail--social .thumbnail__img.no-image{padding-bottom:20%}.thumbnail--social .thumbnail__img-tag{position:absolute;top:1.4rem;left:1.8rem;color:#fff;background-color:#00b8de;text-transform:uppercase;padding:0 1.5rem}.thumbnail--social .thumbnail__img-tag--dark{background-color:#0d2340}.thumbnail--social .thumbnail__body{padding:2.5rem 3rem 0;margin-bottom:3.5rem}.thumbnail--social .thumbnail__paragraph p{font-family:helvetica,sans-serif;font-weight:400;font-size:1.2rem}.thumbnail--social .thumbnail__footer{padding:1.5rem 2.5rem;border-top:.1rem solid #efefef;position:relative}.thumbnail--social .thumbnail__footer:after{content:"\E922";font-family:icomoon;font-size:1.6rem;position:absolute;top:50%;transform:translateY(-50%);right:2rem;color:#8c97a7}.thumbnail--social .thumbnail__footer-list{display:flex}.thumbnail--social .thumbnail__footer-item{color:#8c97a7;font-weight:500}.thumbnail--social .thumbnail__footer-item [class*=" ico-"],.thumbnail--social .thumbnail__footer-item [class^=ico-]{margin-right:.5rem}.thumbnail--social .thumbnail__footer-item:not(:last-child){margin-right:2rem}.thumbnail--question{padding:5rem 5rem 3rem;background-color:#f7f8fa;box-shadow:none;margin-bottom:1.5rem}.thumbnail--question .thumbnail__title{margin-bottom:0}.thumbnail--question .thumbnail__paragraph p{font-family:helvetica,sans-serif;font-weight:400;font-size:1.2rem}.thumbnail--question .thumbnail__body{padding:0}.thumbnail--question .thumbnail__cta{text-align:right}.thumbnail--question:hover .thumbnail__title{color:unset}.rubrique-thumbnail-block{height:27rem;background:#fcfcfc;box-shadow:none!important;border:.1rem solid #dcdcdc}.rubrique-thumbnail-img{max-height:20rem}.rubrique-thumbnail-title{font-family:archer,serif;font-size:1.4rem;font-weight:500;color:#000;max-height:10rem;display:inline-block;text-overflow:ellipsis;width:100%}.rubrique-thumbnail-icon img{position:absolute;top:50%;right:1.5rem;transform:translateY(-50%)}.rubrique-thumbnail-true{padding:2.5rem 5rem}.rubrique-thumbnail-false{height:100%;padding:2.5rem 3rem}.rubrique-thumbnail-false div{margin-bottom:0!important}.rubrique-thumbnail-false .rubrique-thumbnail-icon img{right:50%}.rubrique-thumbnail-false .rubrique-thumbnail-title{padding:0 5rem;text-align:center;margin-top:2rem}.thumbnail__info--headline{color:#fff;font-family:arial,sans-serif;font-weight:400;font-size:1.2rem;margin-right:2rem}@media (max-width:991px){.thumbnail__info--headline{margin-right:1rem;font-size:1rem}}@media (max-width:767px){.thumbnail__info--headline{font-size:1.2rem;margin-top:2rem}}.field-highlight{border:.2rem dashed rgba(212,17,127,.18);padding:4.5rem 9rem;position:relative}.field-highlight:after,.field-highlight:before{position:absolute;color:#d4117f;font-size:2.2rem}.field-highlight:before{content:"\E918";font-family:icomoon;top:1.5rem;left:2rem}.field-highlight:after{content:"\E909";font-family:icomoon;right:2rem;bottom:1.5rem}.field-highlight__body{font-style:italic}@media (max-width:767px){.field-highlight{padding:4.5rem 2rem}}.field-well{position:relative;text-align:center;padding:5rem 0;color:#fff;z-index:1}.field-well:before{content:"";position:absolute;background-color:#00b8de;width:100vw;height:100%;top:0;left:50%;transform:translateX(-50%);z-index:-2}.field-well__body{text-align:left}.field-well--inverted:before{background-color:#0d2340}.field-well--narrow{padding:5rem 3rem}@media (min-width:992px){.field-well--narrow:before{width:100%;left:0;transform:translateX(0)}}.field-negative{color:#fff;padding:5rem 0;position:relative;z-index:1}.field-negative:before{content:"";position:absolute;width:100vw;height:100%;background-color:#00b8de;top:0;left:50%;transform:translateX(-50%);z-index:-1}@media (max-width:575px){.field-negative{padding:0 0 5rem!important}}@media (min-width:576px){.field-negative img{border:.4rem solid #fff;box-shadow:0 0 4px 6px rgba(0,0,0,.1)}}.field-negative ul:not([class]) li:before{color:#fff}.field-negative--narrow{padding:5rem 2rem}@media (min-width:992px){.field-negative--narrow:before{left:0;transform:translateX(0);width:calc(100% + 8rem)}}.field-quote blockquote{margin-bottom:1.5rem}.field-quote blockquote p{color:#00b8de;text-transform:uppercase;font-size:2.5rem;font-weight:700;line-height:normal}.field-quote cite{color:#d4117f;font-family:archer,serif;font-size:1.8rem;font-weight:700;font-style:normal;text-transform:uppercase}.field-collapse{position:relative}.field-collapse:before{content:attr(data-index) ". ";position:absolute;font-family:archer,serif;top:1.5rem;left:0;color:#00b8de;font-size:1.6rem;z-index:1}.field-collapse h1,.field-collapse h2,.field-collapse h3{padding-bottom:0!important;margin-bottom:0!important}.field-collapse__trigger{position:relative;display:block;width:100%;padding:2rem 4rem 2rem 2rem;text-align:left;border-bottom:.2rem solid #a1abb9;transition:all .2s ease-in-out;background-color:#fff}.field-collapse__trigger:after{content:"\E917";font-family:icomoon;position:absolute;top:50%;transform:translateY(-50%);color:#d4117f;right:2rem;font-size:1.4rem;transition:transform .2s ease-in-out}.field-collapse__trigger.collapsed{background-color:#fff;padding:2rem 4rem 2rem 2rem;border-bottom:.1rem solid #a1abb9}.field-collapse__trigger.collapsed:after{content:"\E91C";font-family:icomoon;transform:translateY(-50%) rotate(180deg)}.field-collapse__well{padding:3rem 2.5rem 3rem 7rem;background-color:#efefef;margin:3rem 0}.field-map{position:relative;padding-bottom:50%}@media (max-width:991px){.field-map{padding-bottom:70%}}@media (max-width:575px){.field-map{padding-bottom:100%}}.field-map .geolocation-map-container,.field-map iframe{position:absolute;top:0;left:50%;transform:translateX(-50%);height:100%!important;width:100vw!important}.links-box,.resources-box{padding:3rem}.links-box__title,.resources-box__title{font-size:2.2rem;color:#fff}.links-box__list,.resources-box__list{display:flex;flex-direction:column;margin-bottom:3rem}.links-box__item,.resources-box__item{color:#fff;padding:0 1.5rem 1.5rem;font-family:archer,serif;border-bottom:.1rem solid #fff}.links-box__item a,.resources-box__item a{word-break:break-all}.links-box__item:not(:last-child),.resources-box__item:not(:last-child){margin-bottom:1.5rem}.resources-box{background-color:#0d2340}.links-box{background-color:#d4117f}.contact-box{background-color:#00b8de;color:#fff;padding:3rem 2rem}.contact-box__info{padding:0 0 1.5rem 3rem;position:relative;margin-bottom:1.5rem}.contact-box__info:after{content:"";position:absolute;bottom:0;left:3rem;width:calc(100% - 3rem);height:.1rem;background-color:#fff}.contact-box__name{font-weight:400;font-size:1.8rem;position:relative;margin-bottom:1.5rem!important}.contact-box__name:before{content:"\E923";font-family:icomoon;color:#fff;font-size:1.4rem;position:absolute;top:-.3rem;left:-2.5rem}.contact-box__post{color:#fff!important;font-family:helvetica,sans-serif!important}.contact-box__contact{font-size:1.4rem;display:block}.contact-box__contact [class*=" ico-"],.contact-box__contact [class^=ico-]{margin-right:.8rem}.contact-box__contact:hover{color:#0d2340}.contact-box--inverted{background-color:#0d2340}.contact-box--inverted .contact-box__contact:hover{color:#00b8de}.keyfigure-box{padding:2rem 4rem 5rem;text-align:center;display:flex;flex-direction:column;background-color:#0d2340;height:100%}@media (max-width:991px){.keyfigure-box{padding:2rem 3rem 5rem}}.keyfigure-box__title{margin-bottom:4rem;color:#fff;font-size:2.2rem;font-weight:700}.keyfigure-box__figure{margin-top:0!important;color:#00b8de;font-size:8rem;line-height:1;font-weight:700}.keyfigure-box__desc p{color:#fff;font-family:archer,serif;font-size:1.6rem;margin-top:0!important;line-height:1;font-weight:500}.keyfigure-box--pink{background-color:#d4117f}.keyfigure-box--pink .keyfigure-box__figure{color:#fff}.keyfigure-box--grey{background-color:#efefef}.keyfigure-box--grey .keyfigure-box__desc p,.keyfigure-box--grey .keyfigure-box__title{color:#0d2340}.headline-box{background-color:hsla(0,0%,100%,.5);padding:3.5rem}@media (min-width:992px){.headline-box{max-width:45rem}}@media (min-width:992px){.headline-box--wide{max-width:unset;padding:4rem 7.5rem}}.date-box{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;background-color:#0d2340;color:#fff;font-weight:700}.date-box__day,.date-box__month{display:block;line-height:1}.date-box__day{font-size:3rem}.date-box__month{font-size:2rem;text-transform:uppercase}.event-box{display:block;position:relative}.event-box .date-box{position:absolute;top:2.5rem;left:1.5rem}.event-box__link{position:relative;padding:2.5rem 3rem 2rem 1.5rem}.event-box__link:after{content:"\E902";font-family:icomoon;position:absolute;right:1.5rem;bottom:1.5rem;color:#fff;font-size:1.6rem}@media (max-width:991px){.event-box__link{min-height:15rem}}.event-box__body{padding-left:10rem;color:#fff}.event-box__date-tag,.event-box__location,.event-box__theme-tag{display:block}.event-box__date-tag{font-family:archer,serif;font-size:1.6rem;font-weight:500}.event-box__theme-tag{font-weight:500}.event-box__location,.event-box__theme-tag{color:#fff}.event-box__location{font-style:italic}.event-box__title{margin-bottom:3rem!important;color:#fff;font-size:2rem}.event-box--navy{background-color:#0d2340}.event-box--navy .date-box{background-color:#00b8de}.event-box--navy .event-box__date-tag{color:#00b8de}.event-box--blue{background-color:#00b8de}.event-box--blue .date-box{background-color:#0d2340}.event-box--blue .event-box__date-tag{color:#0d2340}.event-box--pink{background-color:#d4117f}.event-box--pink .date-box{background-color:#fff;color:#0d2340}.event-box--pink .event-box__date-tag{color:#fff}.event-box--blue:hover,.event-box--pink:hover{opacity:.45}.sidebox p{color:#fff}.sidebox p a:hover{color:#0d2340}.sidebox h2{text-transform:uppercase}.sidebox h3{font-family:archer,serif;font-weight:500}.sidebox ol:not([class]) li,.sidebox ol:not([class]) li:before,.sidebox ul:not([class]) li,.sidebox ul:not([class]) li:before{color:#fff}.sidebox:not(:last-child){margin-bottom:3.5rem}.rubrique-box{background:#00b8de;padding:4rem 0}.rubrique-box-titre{font-size:30px}.rubrique-box-info{font-size:12px;font-weight:400;font-family:Arial}.box-page-info{background:#00b8de;padding:4rem 0;margin-left:15px;margin-right:15px;position:relative}.box-page-titre{font-size:3rem;font-family:helvetica-condensed,sans-serif;width:80%}.box-page-titre a:hover{color:#d4117f!important}.box-page-paragraphe{font-family:arial,sans-serif;font-weight:400;font-size:1.2rem;color:#fff;width:90%;padding-bottom:3rem}.box-page-paragraphe a{border:none!important}.box-page-paragraphe a:hover{color:#d4117f!important;text-decoration:none!important}.box-page-limite{display:flex;color:#fff;font-family:arial,sans-serif;font-size:1.2rem;padding-bottom:4rem}@media (max-width:767px){.box-page-limite{flex-direction:column}}.box-page-limite .limite__titre{font-weight:700;margin-right:1rem}.box-page-limite .limite__info{font-weight:400}.box-page-limite .limite__info a:hover{color:#d4117f!important}.headline-info{color:#fff;background:#00b8de;margin-left:15px;margin-right:15px}@media (max-width:767px){.headline-info__year{padding-right:2rem}}.headline-info__year.b_right{border-right:1px solid #fff;padding-right:2.5rem;height:2.5rem}@media (max-width:991px){.headline-info__year.b_right{padding-right:1rem}}.headline-info__time{border-right:1px solid #fff;padding-right:1.5rem}@media (max-width:991px){.headline-info__time{padding-right:1rem}}@media (max-width:767px){.headline-info__time{border-right:0;width:50%}}@media (max-width:767px){.headline-info__type{margin-top:2rem}}.headline-block{width:100%;position:relative}.headline-block__child{display:flex;justify-content:space-between}@media (max-width:767px){.headline-block__child{flex-direction:column}}.headline-block__data{width:50%;display:flex;align-items:center;justify-content:center;flex-direction:column}@media (max-width:767px){.headline-block__data{order:2;width:100%;padding:4rem 0}}.headline-block__info{padding:7rem}.headline-block__img{width:50%}@media (max-width:767px){.headline-block__img{order:1;width:100%}}.headline-block__img img{height:100%}.headline-block__wide{padding:4rem 10rem}@media (max-width:767px){.headline-block__wide{padding:8rem 2rem}}.headline-block__date{display:flex;margin-top:3rem}@media (max-width:767px){.headline-block__date{flex-wrap:wrap}}.headline-block__one{width:75%}.headline-block__two{width:100%;margin-left:13rem;margin-top:2rem}@media (max-width:1199px){.headline-block__two{margin-left:11rem}}@media (max-width:991px){.headline-block__two{margin-left:8.5rem}}@media (max-width:767px){.headline-block__two{margin-left:12.5rem}}.headline-block .social__dropdown{position:absolute;top:3rem;right:3rem}.headline-titre{font-size:3rem;font-family:helvetica-condensed,sans-serif;font-weight:700}@media (min-width:768px) and (max-width:1199px){.headline-titre{font-size:2rem;line-height:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}}.headline-paragraphe{font-family:arial,sans-serif;font-weight:400;font-size:1.2rem;color:#fff}@media (min-width:768px) and (max-width:1199px){.headline-paragraphe{line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}}.box--event{margin-top:5rem;margin-left:15px;margin-right:15px;display:flex;font-family:arial,sans-serif;font-weight:400;font-size:1.2rem}@media (max-width:991px){.box--event{flex-direction:column}}.box--event__left{display:flex;flex-direction:column;margin-right:10rem}@media (max-width:991px){.box--event__left{width:100%;margin-right:0}}.box--event__left-child{display:flex;margin-top:.5rem}@media (max-width:767px){.box--event__left-child{flex-direction:column}}.box--event__right{margin-top:-.5rem}@media (max-width:991px){.box--event__right{margin-top:2rem;width:100%}}.box--event__titre{font-weight:700;color:#d4117f;margin-right:1rem}.box--event__ico{padding-bottom:2rem;display:flex}.box--event__ico i{font-size:17px}.box--event__ico span{margin-top:-2px;margin-left:2rem}.slider-wrap .slider-next:hover,.slider-wrap .slider-prev:hover{color:#d4117f}.slider-wrap .slider-next.swiper-button-disabled,.slider-wrap .slider-prev.swiper-button-disabled{opacity:0;visibility:hidden}.hero__slider{position:relative}.hero__slider .slider-next,.hero__slider .slider-prev{z-index:1;color:#0d2340;font-size:1rem;padding:.5rem 1rem .25rem;color:#fff;min-height:30px;background:#d4117f}@media (max-width:767px){.hero__slider .slider-next,.hero__slider .slider-prev{bottom:2rem}}.hero__slider .slider-nav{position:absolute;bottom:27rem;right:5rem;z-index:1}@media (max-width:575px){.hero__slider .slider-nav{right:2rem}}.hero__slider .slider-nav:after{content:"";position:absolute;height:.1rem;width:100%;bottom:-1.7rem;left:50%;transform:translateX(-50%);background-color:#dadada}.hero__slider .slider-prev{right:6rem}.hero__slider .slider-next{right:1.5rem}.hero-slider{height:70rem}@media (max-width:767px){.hero-slider{height:60rem}}@media (max-width:575px){.hero-slider{padding:0!important;height:50rem}}.media__slider{position:relative}.media__slider .slider-nav{padding:2rem 0 7rem;z-index:1;display:flex;justify-content:center;align-items:center;position:relative}@media (max-width:767px){.media__slider .slider-nav{position:absolute;left:50%;transform:translateX(-50%);bottom:1.5rem;z-index:2;padding:0}}.media__slider .slider-nav .swiper-pagination-bullets{display:flex;align-items:center}.media__slider .slider-nav .swiper-pagination-bullet{background-color:#d1d9da;opacity:1;width:.6rem;height:.6rem;cursor:pointer}.media__slider .slider-nav .swiper-pagination-bullet-active{background-color:#d4117f}.media__slider .slider-nav .swiper-pagination-bullet:not(:last-child){margin-right:.6rem}.media__slider .slider-nav .slider-fraction{position:absolute;left:50%;transform:translateX(-50%);bottom:3rem;font-size:1.5rem;color:#d1d9da}@media (max-width:767px){.media__slider .slider-nav .slider-fraction{display:none}}.media__slider .slider-nav .slider-next,.media__slider .slider-nav .slider-prev{line-height:.7rem;font-size:1.2rem}@media (max-width:767px){.media__slider .slider-nav .slider-next,.media__slider .slider-nav .slider-prev{display:none}}.media__slider .slider-nav .slider-next{margin-left:4rem}.media__slider .slider-nav .slider-prev{margin-right:4rem}.event__slider{position:relative;margin-bottom:4rem}@media (max-width:767px){.event__slider{margin-bottom:2.5rem}}.event__slider .slider-nav{padding:2rem 0 7rem;z-index:1;justify-content:center;position:relative}.event__slider .slider-nav,.event__slider .slider-nav .swiper-pagination-bullets{display:flex;align-items:center}.event__slider .slider-nav .swiper-pagination-bullet{background-color:#d1d9da;opacity:1;width:.6rem;height:.6rem;cursor:pointer}.event__slider .slider-nav .swiper-pagination-bullet-active{background-color:#d4117f}.event__slider .slider-nav .swiper-pagination-bullet:not(:last-child){margin-right:.6rem}.event__slider .slider-nav .slider-fraction{position:absolute;left:50%;transform:translateX(-50%);bottom:3rem;font-size:1.5rem;color:#d1d9da}@media (max-width:767px){.event__slider .slider-nav .slider-fraction{display:none}}.event__slider .slider-nav .slider-next,.event__slider .slider-nav .slider-prev{line-height:.7rem;font-size:1.2rem}@media (max-width:767px){.event__slider .slider-nav .slider-next,.event__slider .slider-nav .slider-prev{display:none}}.event__slider .slider-nav .slider-next{margin-left:4rem}.event__slider .slider-nav .slider-prev{margin-right:4rem}.event__slider .event-slide{height:100%;min-width:15rem}.temoignage__slider{position:relative;margin-bottom:9rem}@media (max-width:991px){.temoignage__slider{margin-bottom:2.5rem}}.temoignage__slider .temoignage-slider{overflow:visible}@media (min-width:992px){.temoignage__slider .temoignage-slider .swiper-slide-active{transform:scale(1.2)}}.social-slider{overflow:visible}.slider-medium .swiper-container{max-width:73.3rem;margin:auto}.slider-min .swiper-container{max-width:54rem;margin:auto}.slider--title{font-family:helvetica,sans-serif;font-size:3rem;font-weight:700}.slider--paragraphe,.slider--title{text-transform:none!important;text-align:center}.slider--paragraphe{font-family:arial,sans-serif;font-size:1.2rem;font-weight:400;margin-left:auto;margin-right:auto;max-width:71.2rem}.o-breadcrumbs{padding:5rem 0}.o-breadcrumbs__list{display:flex;flex-wrap:wrap}.o-breadcrumbs__item{font-family:archer,serif;font-size:1.4rem;text-transform:uppercase;font-weight:500}.o-breadcrumbs__item:not(:last-child){margin-right:2rem;position:relative}.o-breadcrumbs__item:not(:last-child):after{content:"\E907";font-family:icomoon;font-size:.6rem;position:absolute;left:calc(100% + .5rem);bottom:.7rem}.o-breadcrumbs__item:last-child{color:#d4117f;font-weight:700}.m-pagination{position:relative;padding:5rem 0;justify-content:center}.m-pagination,.m-pagination__bullets{display:flex;align-items:center}.m-pagination__bullets .m-pagination__bullet{background-color:#d1d9da;opacity:1;width:.6rem;height:.6rem;cursor:pointer}.m-pagination__bullets .m-pagination__bullet a{display:block;width:100%;height:100%}.m-pagination__bullets .m-pagination__bullet.active{background-color:#d4117f}.m-pagination__bullets .m-pagination__bullet:not(:last-child){margin-right:.6rem}.m-pagination__fraction{position:absolute;left:50%;transform:translateX(-50%);bottom:1rem;font-size:1.5rem;color:#d1d9da}.m-pagination__nav{line-height:.7rem;font-size:1.2rem}.m-pagination__nav-prev{margin-right:4rem}.m-pagination__nav-next{margin-left:4rem}.m-pagination__nav:hover{color:#d4117f}.m-pagination__nav.first,.m-pagination__nav.last{opacity:0;visibility:hidden}.band{position:relative;z-index:1;padding:6rem 0 4.5rem}.band:before,.band__img{position:absolute;top:0;left:50%;transform:translateX(-50%);height:100%;width:100vw;z-index:-2}.band:before{content:"";background-color:hsla(0,0%,100%,.9);z-index:-1}.band__content{display:flex;justify-content:space-between;align-items:baseline}@media (max-width:991px){.band__content{flex-direction:column;justify-content:flex-start;align-items:center}}.band__box{min-height:13rem;max-width:13.8rem;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (max-width:991px){.band__box{padding:2.5rem 0}}.band__box-figure{font-size:6.4rem;line-height:1;margin-bottom:2rem!important;color:#00b8de}.band__box-desc{font-size:1.6rem;color:#747e80;margin-top:0!important;text-align:center;line-height:1.3}@media (min-width:992px){.band--narrow .band__img,.band--narrow:before{left:0;transform:translateX(0);width:100%}}.band--narrow .band__content{flex-direction:column;justify-content:center;align-items:center;flex-wrap:wrap}.band--narrow .band__box:not(:last-child){margin-bottom:2rem}.o-table h2,.o-table h3{padding-bottom:0!important}.o-table h2:before,.o-table h3:before{content:none!important}.o-table{width:100%;margin-bottom:0}.o-table th{padding:1rem 2rem;text-transform:uppercase;font-weight:700;font-size:1.4rem}.o-table td{padding:2rem;min-width:25rem;vertical-align:top}.o-table td img{width:16rem}.o-table tbody tr,.o-table thead tr{border-top:.1rem solid #efefef}.o-table tbody tr{border-bottom:.1rem solid #efefef}.o-table.even tbody tr:nth-child(2n),.o-table.odd tbody tr:nth-child(odd){background-color:#f7f8fa}.teaser--wide{padding:4rem}.teaser--wide .teaser__header{display:flex;align-items:baseline}.teaser--wide .teaser__header.has-subtitle{flex-direction:column;margin-bottom:4rem}.teaser--wide .teaser__paragraph{text-transform:uppercase;color:#8c97a7}.teaser--wide .teaser__paragraph.has-subtitle{margin-bottom:4rem!important}.teaser--wide .teaser__subtitle{font-size:1.4rem;margin-top:0!important}.teaser--wide .teaser__subtitle a{text-decoration:underline}.teaser--wide:nth-child(odd){position:relative}.teaser--wide:nth-child(odd):before{content:"";position:absolute;height:100%;width:100vw;background-color:hsla(0,0%,84.7%,.17);top:0;left:50%;transform:translateX(-50%);z-index:-1}.teaser--temoignage{padding-top:8rem;position:relative;height:100%}.teaser--temoignage .teaser__img{width:16rem;height:16rem;overflow:hidden;border-radius:100%;border:.5rem solid #0d2340;position:absolute;left:50%;transform:translateX(-50%);top:0}.teaser--temoignage .teaser__body{padding:12rem 2.5rem 2.5rem;box-shadow:0 0 40px 0 rgba(0,0,0,.1);text-align:center;display:flex;flex-direction:column;height:100%}.teaser--temoignage .teaser__cta{align-self:center;margin-top:auto}.teaser--temoignage-wide .teaser__body{padding:12rem 4rem 4rem}.teaser--result{padding-bottom:3rem}.teaser--result .teaser__body{display:flex}.teaser--result .teaser__img{flex:none;width:15rem;margin-right:4.5rem}@media (max-width:991px){.teaser--result .teaser__img{display:none}}.teaser--result:not(:last-child){margin-bottom:5rem}@media (max-width:991px){.teaser--result:not(:last-child){margin-bottom:3rem}}.social__dropdown-menu{box-shadow:0 2px 4px 0 rgba(0,0,0,.2);border:none}.social__dropdown-menu.show{display:flex;padding:0 1rem}.social__dropdown-item [class*=" ico-"],.social__dropdown-item [class^=ico-]{vertical-align:middle}.social__dropdown-item a{font-size:1.5rem}.social__dropdown-item a:hover{color:#d4117f}.social__dropdown-item:not(:last-child){margin-right:1rem}.intranet__dropdown-toggle{font-weight:700;padding:1rem 0;position:relative;z-index:1}.intranet__dropdown-toggle:after{content:"\E905";font-family:icomoon;position:absolute;top:50%;transform:translateY(-50%);font-size:.8rem;transition:all .2s ease-in-out;right:-1.5rem}.intranet__dropdown-toggle:before{position:absolute;top:0;left:-1.5rem;height:100%;width:calc(100% + 5.1rem);background-color:#0d2340;z-index:-1;transition:all .2s ease-in-out}.intranet__dropdown-menu{border:none;background-color:#0d2340;padding:0}.intranet__dropdown-menu:before{position:absolute;top:0;left:-1.5rem;height:100%;width:calc(100% + 3.5rem);background-color:#0d2340;z-index:-1}.intranet__dropdown-menu.show{margin:0;padding:0;width:100%}.intranet__dropdown-menu.show:before{content:""}.intranet__dropdown-item{color:#fff;display:block;padding:.5rem 0;font-weight:700;font-size:1.2rem;position:relative;z-index:1}.intranet__dropdown-item:before{content:"";position:absolute;top:0;left:-1.5rem;height:.1rem;width:calc(100% + 3.5rem);background-color:#979797;z-index:-1}.intranet__dropdown-item [class*=" ico-"],.intranet__dropdown-item [class^=ico-]{vertical-align:middle}.intranet__dropdown-item:hover{color:#d4117f}.intranet__dropdown.show .intranet__dropdown-toggle{color:#fff}.intranet__dropdown.show .intranet__dropdown-toggle:after{transform:translateY(-50%) rotate(180deg)}.intranet__dropdown.show .intranet__dropdown-toggle:before{content:""}.anchor__dropdown-toggle{display:block;width:100%;font-weight:500;background-color:#fff;color:#0d2340;padding:1.25rem 2rem;position:relative;box-shadow:0 0 4px 2px rgba(0,0,0,.05);text-align:left}.anchor__dropdown-toggle:after{content:"\E905";font-family:icomoon;position:absolute;top:50%;transform:translateY(-50%);font-size:.8rem;transition:all .2s ease-in-out;right:1.5rem}.anchor__dropdown-menu{box-shadow:0 2px 4px 0 rgba(0,0,0,.2);border:none;padding:0;width:100%;margin-right:.2rem}.anchor__dropdown-item{display:block;color:#0d2340;padding:1rem 2rem;font-size:1.3rem;text-transform:uppercase;border-top:.1rem solid rgba(209,217,218,.5)}.anchor__dropdown-item.active,.anchor__dropdown-item:hover{background-color:#fff;color:#d4117f}.anchor__dropdown.show .anchor__dropdown-toggle:after{transform:translateY(-50%) rotate(180deg)}.searchbox{position:fixed;top:0;right:100%;z-index:100;width:100vw;height:100vh;transition:all .65s ease;overflow-x:hidden;overflow-y:scroll;background-color:#fff}.searchbox.is-open{right:0}.searchbox__header{position:relative;padding:5rem 0}.searchbox__header:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0d2340;z-index:-1}.searchbox__header .input-text-icon input[type=submit]{display:none}.searchbox__body{padding:3rem 0;background-color:#fff}.searchbox__trigger{position:absolute;top:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem;border-radius:100%;font-size:1.4rem;display:inline-flex;justify-content:center;align-items:center;color:#fff}.searchbox__trigger:focus,.searchbox__trigger:hover{background-color:#fff;color:#d4117f}.searchbox__tabs-controls{display:flex;padding-bottom:1.5rem;border-bottom:.1rem solid hsla(0,0%,84.7%,.5)}.searchbox__tabs-control{display:block;font-size:1.4rem;font-weight:500;padding:1rem 0;position:relative}.searchbox__tabs-control:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:.4rem;background-color:#d4117f;transform-origin:left 50%;transform:scaleX(0);transition:all 277ms cubic-bezier(.16,.01,.77,1)}.searchbox__tabs-control.active,.searchbox__tabs-control:hover{color:#d4117f}.searchbox__tabs-control.active:before,.searchbox__tabs-control:hover:before{transform:scale(1)}.searchbox__tabs-control:not(:last-child){margin-right:2.5rem}.o-media{display:flex}.o-media__img{position:relative;width:4rem;height:4rem;border-radius:100%;overflow:hidden;border:.1rem solid #efefef;margin-right:1.5rem;flex:none}.o-media__img img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.o-media__body{display:flex;flex-direction:column}.o-media__body .o-media__name{margin-bottom:0!important}.o-media__body .o-media__handler{display:block;color:#8c97a7}.o-modal{background-color:rgba(140,151,167,.25)}.o-modal__dialog{max-width:75%}@media (max-width:991px){.o-modal__dialog{max-width:calc(100% - 3rem)}}.o-modal__content{border-radius:0;border:none;box-shadow:0 2px 4px 3px rgba(0,0,0,.1)}.o-modal__body{padding:5rem 7.5rem;background-color:#fff;position:relative}.o-modal__dismiss{position:absolute;right:4rem;top:4rem;color:#0d2340;font-size:1.8rem}.sidebar__header{margin-bottom:2.5rem}.sidebar__content{transform:translateZ(0);backface-visibility:hidden;perspective:1000}@media (min-width:992px){.sidebar__content{height:calc(100vh - 200px);padding-right:1rem;position:absolute;top:10rem;right:-3rem;width:23rem}.sidebar__content.is-sticky{position:fixed}}.sidebar__content .simplebar-scrollbar:before{background-color:#fff!important}.sidebar__img{width:13rem;height:13rem;border-radius:100%;overflow:hidden;border:.4rem solid #fff;margin:0 auto}.sidebar__user-name{color:#fff;text-align:center;font-size:1.6rem;font-weight:700;text-transform:uppercase}.sidebar__user-info-item{color:#fff}.sidebar__user-info-item [class*=" ico-"],.sidebar__user-info-item [class^=ico-]{font-size:1.2rem;margin-right:1.5rem}.sidebar__user-info-item a:active,.sidebar__user-info-item a:focus,.sidebar__user-info-item a:hover{color:#0d2340}.sidebar__user-info-item:not(:last-child){margin-bottom:.5rem}#timeline-wrapper.is-active{position:absolute;top:0;left:0;width:100%;z-index:999}.timeline{background-color:#0d2340;background-image:url(/themes/custom/boots/assets/images/clock.png);background-size:100%;background-repeat:no-repeat;background-position:0 0;padding:7rem 0;position:relative;width:100%}@media (max-width:991px){.timeline{padding:3rem 0}}.timeline__header{height:60vh;position:relative;display:flex;justify-content:center;align-items:center;z-index:1}.timeline__header:after,.timeline__header:before{position:absolute;transform:rotate(-270deg);color:#fff;font-weight:700;font-size:13rem;line-height:1;z-index:-1}@media (max-width:991px){.timeline__header:after,.timeline__header:before{content:none}}.timeline__header:after{content:"Depuis 1843";right:0;bottom:8rem;width:36rem;opacity:.09;text-align:right}@media (max-width:991px){.timeline__header:after{content:none}}.timeline__header:before{content:"1854";left:0;top:100%;opacity:.05}@media (max-width:991px){.timeline__header:before{content:none}}.timeline__header-content{width:66%}@media (max-width:991px){.timeline__header-content{width:100%}}.timeline__header-title{font-size:9rem;color:#fff;text-align:center;margin-bottom:4rem!important}@media (max-width:991px){.timeline__header-title{font-size:4.5rem}}.timeline__header-bottom{display:flex;align-items:center}@media (max-width:991px){.timeline__header-bottom{flex-direction:column}}.timeline__header-bottom .timeline__header-subtitle{color:#00b8de}@media (min-width:992px){.timeline__header-bottom .timeline__header-subtitle{flex:0 0 50%;width:50%;text-align:right;margin-right:3rem;margin-bottom:0!important}}.timeline__header-bottom .timeline__header-scroll{color:#fff;display:block;width:4rem;height:4rem;border-radius:50%;border:.2rem solid #fff;position:relative}.timeline__header-bottom .timeline__header-scroll [class*=" ico-"],.timeline__header-bottom .timeline__header-scroll [class^=ico-]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.6rem;transition:all .2s ease-in-out}.timeline__header-bottom .timeline__header-scroll:hover [class*=" ico-"],.timeline__header-bottom .timeline__header-scroll:hover [class^=ico-]{transform:translateX(-50%) translateY(-50%) translateY(1rem)}.timeline__body{position:relative;z-index:1}.timeline__body:after,.timeline__body:before{content:"";position:absolute;transform:translateX(-50%);left:50%;background-color:#fff;z-index:-1}.timeline__body:before{width:.1rem;height:calc(100% + 24.4rem);top:-10rem}@media (max-width:991px){.timeline__body:before{top:-5rem;left:-.7rem;height:calc(100% + 8rem);transform:translateX(0)}}.timeline__body:after{width:1rem;height:1rem;border-radius:50%;top:-10.5rem}@media (max-width:991px){.timeline__body:after{top:-5.5rem;left:-1.1rem;transform:translateX(0)}}@media (max-width:991px){.timeline__body{padding-left:2.5rem}}.timeline__close{position:fixed;top:10rem;right:5rem;font-size:2rem;color:#fff}@media (max-width:991px){.timeline__close{top:6rem;right:3rem}}.timeline-item{display:flex;justify-content:space-between;position:relative;z-index:1}@media (min-width:992px){.timeline-item{padding-top:5rem;margin-top:5rem;padding-bottom:7.5rem;margin-bottom:7.5rem}}@media (max-width:991px){.timeline-item{margin-top:3rem;margin-bottom:3rem}}.timeline-item:after,.timeline-item:before{content:"";position:absolute;left:50%;transform:translateX(-50%)}.timeline-item:before{width:3.4rem;height:3.4rem;border-radius:50%;background-color:#0d2340;border:.1rem solid #fff;z-index:-2;top:10rem}@media (max-width:991px){.timeline-item:before{left:-4.8rem;transform:translateX(0)}}.timeline-item:after{width:1rem;height:1rem;border-radius:50%;background-color:#fff;top:11.2rem;z-index:-1}@media (max-width:991px){.timeline-item:after{left:-3.6rem;transform:translateX(0)}}.timeline-item__body{padding-top:2rem;padding-bottom:2rem}.timeline-item__body .timeline-item__date{font-size:7rem;font-weight:700;color:#fff;line-height:1}.timeline-item__body .timeline-item__title{color:#00b8de;font-size:2rem;line-height:2rem;font-weight:700}.timeline-item__body .timeline-item__desc{color:#fff}@media (min-width:992px){.timeline-item__body{flex:0 0 35rem;width:35rem}}@media (min-width:1200px){.timeline-item__body{flex:0 0 45rem;width:45rem}}.timeline-item__img{flex:0 0 45rem;width:45rem;border:.2rem solid #fff}@media (max-width:1199px){.timeline-item__img{flex:0 0 35rem;width:35rem}}@media (max-width:991px){.timeline-item__img{display:none}}.timeline-item:nth-child(odd) .timeline-item__body{padding-left:15rem;text-align:right;order:0}@media (max-width:1199px){.timeline-item:nth-child(odd) .timeline-item__body{padding-left:0}}@media (max-width:991px){.timeline-item:nth-child(odd) .timeline-item__body{text-align:left}}.timeline-item:nth-child(odd) .timeline-item__img{order:1}.timeline-item:nth-child(2n).no-img{justify-content:flex-end}.timeline-item:nth-child(2n) .timeline-item__body{text-align:left;order:1;padding-right:15rem}@media (max-width:1199px){.timeline-item:nth-child(2n) .timeline-item__body{padding-right:0}}@media (max-width:991px){.timeline-item:nth-child(2n) .timeline-item__body{text-align:left}}.timeline-item:nth-child(2n) .timeline-item__img{order:0}.timeline-tracker{position:fixed;left:0;top:40rem;z-index:5}.timeline-tracker__list-item:not(:last-child){margin-bottom:1.2rem}.timeline-tracker__list-item a,.timeline-tracker__list-item span{display:block;width:1.7rem;height:.1rem;border-bottom:.1rem solid hsla(0,0%,100%,.4)}.timeline-tracker__list-item.next a,.timeline-tracker__list-item.prev a{width:2.2rem;border-bottom:.2rem solid #fff;position:relative}.timeline-tracker__list-item.next a:after,.timeline-tracker__list-item.prev a:after{position:absolute;top:-.5rem;right:-3rem;color:#fff;font-weight:700;font-size:1.2rem;line-height:1;transition:all .2s ease-in-out;z-index:2}.timeline-tracker__list-item.prev a:after{content:attr(data-prev)}.timeline-tracker__list-item.next a:after{content:attr(data-next)}.timeline-tracker__list-item.current{width:3.2rem;border-bottom:.2rem solid #fff}.timeline-tracker__list-item.current span{position:relative}.timeline-tracker__list-item.current span:after{content:attr(data-current);position:absolute;top:-.5rem;right:-6rem;color:#fff;font-weight:700;font-size:1.6rem;line-height:1;transition:all .2s ease-in-out;z-index:2}@media (max-width:991px){.timeline-tracker{display:none}}.tabulation{position:fixed;top:15rem;left:0;z-index:9999}.tabulation li a{background-color:#00b8de;display:block;color:#fff;padding:1rem 2rem}.o-filter .form-group{margin-bottom:0!important}.o-filter .refresh-btn a{padding:1rem 1.2rem;background-color:#fff}.o-filter .refresh-btn a:focus{color:initial}.eu-cookie-withdraw-tab{left:0;transform:translateY(-100%);background-color:#0d2340!important;color:#fff;font-size:1.5rem}.sliding-popup-bottom.active:before{content:"";position:absolute;bottom:100%;left:0;width:100%;height:100vh;background-color:rgba(0,0,0,.6)}.embedded-video-disabled{background-color:#343434;position:relative;top:0;left:0;width:100%;height:350px;flex-direction:column;align-items:center;justify-content:center}.embedded-video-disabled:not([hidden]){display:flex}.eu-cookies{background-color:#0d2340;flex:1;padding:5rem 0;text-align:left;color:unset!important}@media (min-width:992px){.eu-cookies__content{display:flex}}.eu-cookies__message{flex:1}@media (min-width:992px){.eu-cookies__message{padding-right:4rem}}.eu-cookies__buttons{flex:0 0 20rem}@media (max-width:991px){.eu-cookies__buttons{display:flex;margin-top:3rem}}.eu-cookies__btn{font-size:1.2rem;font-weight:700;color:#38afe1;background-color:#fff;padding:1rem;letter-spacing:.1rem;text-transform:uppercase;border:.1rem solid #38afe1;box-shadow:none!important;background-image:none!important;border-radius:0}@media (min-width:992px){.eu-cookies__btn{width:100%;margin-bottom:1.5rem}}@media (max-width:991px){.eu-cookies__btn{margin-right:1rem}}.eu-cookies__btn:active,.eu-cookies__btn:focus,.eu-cookies__btn:hover{background-color:#38afe1;color:#fff;text-shadow:none}.eu-cookies__categories{display:none}.eu-cookies__categories.is-active{display:block}.eu-cookies__category{margin-bottom:2.5rem}.eu-cookies__details{color:#0d2340;padding:0;border-bottom:.1rem solid}.eu-cookies .eu-cookie-compliance-categories-buttons{float:none;max-width:unset!important;margin:0}.eu-cookies .eu-cookie-compliance-categories{display:none;opacity:0;transition:all .2s ease-in-out}.eu-cookies .eu-cookie-compliance-categories.active{display:block;opacity:1}.page--logged-in .searchbox{top:38.8px;height:calc(100vh - 3.88rem)}.page--logged-in.navigation--open .page-wrap{height:calc(100vh - 3.88rem)!important}.page--logged-in.toolbar-horizontal.toolbar-tray-open .searchbox{top:78.6px;height:calc(100vh - 3.88rem)}.page--logged-in.toolbar-horizontal.toolbar-tray-open.navigation--open .page-wrap{height:calc(100vh - 3.88rem)!important}.navigation{padding:1rem 4rem;background-color:#fff;position:relative;z-index:3}@media (max-width:991px){.navigation{padding:0}}.navigation__fst-nav-list{display:flex}@media (max-width:991px){.navigation__fst-nav-list{flex-direction:column}}@media (min-width:992px){.navigation__fst-nav-item:not(:last-child){margin-right:auto}}@media (max-width:991px){.navigation__fst-nav-item{padding:0;border-top:.1rem solid #f7f8fa}}.navigation__fst-nav-btn{padding:1rem 1.5rem 1rem 0;font-size:1.4rem;font-weight:500;position:relative}.navigation__fst-nav-btn:after{content:"\E905";font-family:icomoon;position:absolute;top:50%;transform:translateY(-50%);right:0;color:#d4117f;font-size:.8rem;transition:all .2s ease-in-out}.navigation__fst-nav-btn:before{content:"";position:absolute;top:calc(100% + .6rem);left:0;width:100%;height:.4rem;background-color:#d4117f;transform-origin:left 50%;transform:scaleX(0);transition:all 277ms cubic-bezier(.16,.01,.77,1)}.navigation__fst-nav-btn.active:before,.navigation__fst-nav-btn:focus:before,.navigation__fst-nav-btn:hover:before{transform:scale(1)}.navigation__fst-nav-btn.active:after{transform:translateY(-50%) rotate(180deg)}@media (max-width:991px){.navigation__fst-nav-btn{width:100%;text-align:left;padding:1rem 3rem 1rem 1rem}.navigation__fst-nav-btn:after{content:"\E907";font-family:icomoon;right:1.5rem;color:#0d2340}.navigation__fst-nav-btn:before{content:none}.navigation__fst-nav-btn:hover{background-color:#00b8de;color:#fff}.navigation__fst-nav-btn:hover:after{color:#fff}}@media (max-width:991px){.nav-wrapper{left:0;width:100%;padding:6rem 2rem 3rem;z-index:2;display:none;overflow:scroll}.nav-wrapper,.nav-wrapper:before{position:absolute;top:0;background-color:#fff;height:100%}.nav-wrapper:before{content:"";left:50%;transform:translateX(-50%);width:100vw;z-index:-1}.nav-wrapper.active{display:block}.nav-wrapper .nav-trigger{position:absolute;top:2rem;right:1.5rem}}.navigation__inner{position:absolute;left:0;top:100%;width:100%;background-color:#fff;box-shadow:0 0 4px 0 rgba(0,0,0,.1);z-index:99;display:none}.navigation__inner.is-open{display:block}@media (max-width:991px){.navigation__inner{top:0}}.navigation__inner-header{padding:3rem 5rem}.navigation__inner-header:before{content:"";position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1;clip-path:polygon(70% 0,100% 0,100% 100%,50% 100%);background-color:hsla(0,0%,84.7%,.23)}.navigation__inner-header:after{content:"";position:absolute;background-color:hsla(0,0%,84.7%,.11);width:100%;height:100%;top:0;left:0;z-index:-2}@media (max-width:991px){.navigation__inner-header{display:none}}.navigation__inner-header-subtitle{font-family:archer,serif;font-weight:500;font-size:1.6rem;color:#00b8de;display:block}.navigation__inner-header-list{display:flex;align-items:baseline}.navigation__inner-header-item{font-size:2rem;position:relative;font-weight:700;line-height:1}.navigation__inner-header-item:not(:last-child){padding-right:2.5rem;margin-right:1.5rem}.navigation__inner-header-item:not(:last-child):after{position:absolute;top:50%;transform:translateY(-50%);right:0;font-size:1.4rem}.navigation__inner-header-item:not(:last-child).is-set:after{content:"\E907";font-family:icomoon}.navigation__inner-header-item:first-child{font-size:3rem}.navigation__inner-nav{padding:5rem 5rem 3rem;background-color:#fff}@media (max-width:991px){.navigation__inner-nav{padding:3rem 2rem}}.navigation__inner-nav-list{width:30%;position:relative;padding-right:3rem;padding-bottom:2rem}@media (max-width:991px){.navigation__inner-nav-list{width:100%;padding-right:.5rem}}.navigation__inner-nav-list--fth,.navigation__inner-nav-list--thd{position:absolute;top:0;left:calc(100% + 7rem);width:100%;display:none;background-color:#fff;z-index:2}.navigation__inner-nav-list--fth.is-open,.navigation__inner-nav-list--thd.is-open{display:block}@media (min-width:992px) and (max-width:1199px){.navigation__inner-nav-list--fth,.navigation__inner-nav-list--thd{width:98%}}@media (max-width:991px){.navigation__inner-nav-list--fth,.navigation__inner-nav-list--thd{left:0}}.navigation__inner-nav-list--fth{z-index:3}@media (max-width:991px){.navigation__inner-nav-list--fth{height:100%}}.navigation__inner-nav-item:not(:last-child){margin-bottom:2.5rem}.navigation__inner-nav-btn,.navigation__inner-nav-link{position:relative;color:#0d2340;font-weight:500;display:block;width:100%;text-align:left}.navigation__inner-nav-btn:before,.navigation__inner-nav-link:before{position:absolute;width:.3rem;height:5rem;background-color:#d4117f;left:-5rem;top:50%;transform:translateY(-50%);transition:all .2s ease-in-out}.navigation__inner-nav-btn.active,.navigation__inner-nav-btn.active:after,.navigation__inner-nav-btn:focus,.navigation__inner-nav-btn:focus:after,.navigation__inner-nav-btn:hover,.navigation__inner-nav-btn:hover:after,.navigation__inner-nav-link.active,.navigation__inner-nav-link.active:after,.navigation__inner-nav-link:focus,.navigation__inner-nav-link:focus:after,.navigation__inner-nav-link:hover,.navigation__inner-nav-link:hover:after{color:#d4117f}@media (min-width:992px){.navigation__inner-nav-btn.active:before,.navigation__inner-nav-btn:focus:before,.navigation__inner-nav-btn:hover:before,.navigation__inner-nav-link.active:before,.navigation__inner-nav-link:focus:before,.navigation__inner-nav-link:hover:before{content:""}}.navigation__inner-nav-btn{padding-right:2rem}.navigation__inner-nav-btn:after{content:"\E907";font-family:icomoon;position:absolute;top:50%;transform:translateY(-50%);right:-1rem;font-size:1.3rem;color:#0d2340}@media (max-width:991px){.navigation__inner-nav-btn:after{right:0}}.header{box-shadow:0 0 4px 0 rgba(0,0,0,.1)}@media (max-width:991px){.header{padding:0 3rem}}@media (max-width:575px){.header{margin:0 -3rem}}.header__content{display:flex}@media (max-width:991px){.header__content{padding:1rem 0;align-items:center;justify-content:space-between}}.header__logo{padding:1.5rem 4rem 2.5rem}@media (max-width:991px){.header__logo{padding:0}}@media (min-width:992px){.header__links{padding:2rem;background-color:#00b8de;flex:1;display:flex;align-items:center}}@media (min-width:1200px){.header__links{flex:1 0 auto;padding:3.5rem 2.5rem}}@media (max-width:991px){.header__links{display:none}}.header__links .block--direct-acces{width:100%}.header__links-list{display:flex;justify-content:space-between}.header__links-item{color:#fff;font-size:1.4rem;font-weight:700;display:flex;align-items:flex-end}.header__links-item .inline-svg{margin-right:1.5rem;vertical-align:middle;width:2.4rem;height:2.4rem;fill:#fff;vertical-align:sub;transition:all .2s ease-in-out;order:0}.header__links-item a{order:1;line-height:1}.header__links-item a:focus,.header__links-item a:hover{color:#0d2340}.header__links-item a:focus~.inline-svg,.header__links-item a:hover~.inline-svg{fill:#0d2340}@media (min-width:992px){.header__links-item:not(:last-child){margin-right:auto}}.header__utilities{background-color:#efefef;flex:1;display:flex;align-items:center;justify-content:center;padding:0 1rem 0 2.5rem}@media (max-width:991px){.header__utilities{display:none}}.header__social{padding-right:3rem;border-right:.1rem solid #0d2340}.header__social-list{display:flex;margin-bottom:.5rem}.header__social-list--lg .header__social-item{color:#a1abb9;font-size:1.8rem}.header__social-list--lg .header__social-item:not(:last-child){margin-right:2rem}.header__social-item{font-weight:700}.header__social-item a:focus,.header__social-item a:hover{color:#d4117f}.header__social-item:not(:last-child){margin-right:1rem}.header__accessibilites{font-size:1.4rem;padding-left:1rem}@media (max-width:1199px){.header__accessibilites{padding-left:3rem}}.header__accessibilites-fz{display:flex;flex-direction:column}.header__accessibilites-fz button{font-weight:700}.header__accessibilites-fz button:focus,.header__accessibilites-fz button:hover{color:#00b8de}.header__accessibilites-lang a{color:#8c97a7;font-weight:700}.header__accessibilites-lang a.is-active{color:#0d2340}.header__accessibilites-lang a:focus,.header__accessibilites-lang a:hover{color:#00b8de}.header__search{font-weight:700}@media (min-width:992px){.header__search{flex:0 0 11.5rem;width:11.5rem;background-color:#0d2340;display:flex;align-items:center;justify-content:center;font-size:3.2rem;color:#fff}.header__search:focus,.header__search:hover{color:#fff;background-color:#d4117f}}@media (max-width:991px){.header__search{color:#0d2340;font-size:2rem}.header__search:hover{color:#d4117f}}@media (max-width:991px){.header__nav{margin:0 -2rem}}.logo{display:block}.logo img{width:13rem;height:13.5rem}@media (max-width:991px){.logo img{width:8rem;height:auto}}.logo-lg{display:block}.logo-lg img{width:11rem;height:6rem}.header__menu-lg-item{font-weight:700}.header__menu-lg-item:not(:last-child){margin-bottom:1.5rem}.footer{background-color:#0d2340;padding:8rem 0 4rem;color:#fff}.footer__body{padding-bottom:5rem;margin-bottom:4rem;border-bottom:.1rem solid #fff}@media (max-width:991px){.footer__body{padding-bottom:1rem}}.footer__logo{margin-bottom:4rem;width:26rem}@media (max-width:991px){.footer__logo{width:21.5rem}}.footer__social-list{display:flex}@media (max-width:991px){.footer__social-list{margin-top:4rem}}.footer__social-item{font-size:2rem}.footer__social-item:not(:last-child){margin-right:2rem}.footer__links-list{-moz-column-count:4;column-count:4;-moz-column-gap:4rem;column-gap:4rem}@media (max-width:767px){.footer__links-list{-moz-column-count:2;column-count:2;-moz-column-gap:2rem;column-gap:2rem}}.footer__link{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid;display:inline-block;width:100%}.footer__link:not(:last-child){margin-bottom:2rem}.footer__text{display:block;margin-bottom:4rem}@media (max-width:991px){.footer__text{margin-bottom:.5rem}}.scrollup{z-index:1;right:10rem!important;width:5rem!important;height:5rem!important;border-radius:100%!important;left:unset!important;background-position:50%!important;display:flex!important}.scrollup .scroll-title{top:5.3rem;text-indent:-4.3rem;min-width:10rem}@media (max-width:991px){.scrollup{right:2rem!important}}.scroll-title{color:#d4117f!important}.page-wrap{overflow:hidden;position:relative}.main{margin-bottom:10rem}@media (max-width:991px){.main{margin-bottom:8rem}}@media (max-width:575px){.container{padding:0 3rem}}body.searchbox--open{position:fixed;overflow:hidden;min-width:100%}.sidegrid{display:flex;position:relative}@media (max-width:991px){.sidegrid{flex-direction:column;margin-top:5rem}}.sidegrid-content{flex:1 0 auto;position:relative}.sidegrid-content:only-child{width:100%}@media (min-width:992px){.sidegrid-content:not(:only-child){width:calc(100% - 24rem);padding-left:28rem}}@media (min-width:992px) and (max-width:1199px){.sidegrid-content:not(:only-child){width:calc(100% - 21rem);padding-left:20rem}}@media (max-width:991px){.sidegrid-content:not(:only-child){width:100%}}@media (min-width:992px){.sidegrid-list{position:absolute;top:10rem;left:0;width:17rem;z-index:2;will-change:transform;transform:translateZ(0);backface-visibility:hidden;perspective:1000}.sidegrid-list.is-sticky{position:fixed}}@media (min-width:1200px){.sidegrid-list{width:23rem}}.sidegrid-sidebar{position:relative;flex:none;flex:0 0 24rem;width:24rem;z-index:1;padding:10rem 0 0 3rem;order:2}.sidegrid-sidebar:before{content:"";position:absolute;top:0;left:0;height:100%;background-color:#00b8de;width:calc(100% + 10rem);z-index:-1}@media (max-width:1199px){.sidegrid-sidebar{flex:0 0 21rem;width:21rem}}@media (max-width:991px){.sidegrid-sidebar{flex:1 0 100%;width:100%;margin:6rem auto 0;background-color:#00b8de;padding:3rem}.sidegrid-sidebar:before{content:none}}@media (min-width:992px){.sidegrid-sidebar~.sidegrid-content{padding-right:5rem}}.cke_editable .h2,.cke_editable h2,.content-rte .h2,.content-rte h2{text-transform:uppercase}.cke_editable .h3,.cke_editable h3,.content-rte .h3,.content-rte h3{color:#00b8de;font-family:archer,serif;font-weight:500}@media (max-width:575px){.cke_editable .row-spacing,.content-rte .row-spacing{margin-right:-45px;margin-left:-45px}}@media (max-width:575px){.cke_editable .row-spacing [class*=" col-"],.cke_editable .row-spacing [class^=col-],.content-rte .row-spacing [class*=" col-"],.content-rte .row-spacing [class^=col-]{padding:0}.cke_editable .row-spacing [class*=" col-"]:not(.full-span),.cke_editable .row-spacing [class^=col-]:not(.full-span),.content-rte .row-spacing [class*=" col-"]:not(.full-span),.content-rte .row-spacing [class^=col-]:not(.full-span){padding:0 60px}}@media (max-width:575px){.cke_editable .img-panoramic,.content-rte .img-panoramic{margin-right:-30px;margin-left:-30px}}.hero{position:relative;z-index:1;padding:5rem 0}@media (min-width:992px){.hero{margin-top:-4.5rem;height:46rem;padding-top:9rem}}.hero--home{padding:0;margin-top:6rem}@media (min-width:992px){.hero--home{height:auto;padding-top:0}}.hero--home .hero__link{display:block;overflow:hidden}.hero--home .hero__link img{position:absolute;left:0;top:0;height:80%}.hero--home .hero__body{height:100%;pointer-events:none}@media (max-width:575px){.hero--home .hero__body{padding:0}}.hero--home .hero__body .hero__title{position:absolute;right:0;bottom:3rem;color:#0d2340;z-index:2;width:63rem;font-family:archer,serif;font-size:3rem;height:28.4rem}@media (max-width:767px){.hero--home .hero__body .hero__title{width:80%;font-size:2rem;bottom:3rem!important}}.hero--home .hero__body .hero__title__block{max-width:41.3rem;margin-top:1rem;margin-left:5rem;line-height:42px}@media (max-width:767px){.hero--home .hero__body .hero__title__block{font-size:2rem;width:60%}}@media (max-width:575px){.hero--home .hero__body .hero__title__block{font-size:1.75rem;margin-left:2rem}}@media (max-width:767px){.hero--home .hero__body .hero__title{bottom:4rem}}@media (max-width:575px){.hero--home .hero__body .hero__title{bottom:0}}.hero--home .hero__body .hero__title:after{content:"";position:absolute;width:100%;right:0;top:-30px;background:#fff;z-index:-1;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);height:25rem}.hero__body{z-index:2;position:relative}.hero__tools{background-color:#fff;position:absolute;top:25%;transform:translateY(-50%);right:0;padding:2rem 3rem;z-index:2;box-shadow:0 2px 4px 0 rgba(0,0,0,.2)}.hero__tools-list .hero__tools-item a{font-family:archer,serif;font-size:1.4rem;font-weight:700}.hero__tools-list .hero__tools-item a .inline-svg{margin-right:2rem;width:1.7rem;height:1.7rem;fill:#d4117f;vertical-align:sub}.hero__tools-list .hero__tools-item a:hover{color:#d4117f}.hero__tools-list .hero__tools-item:not(:last-child){margin-bottom:2rem}@media (max-width:991px){.hero__tools{display:none}}.hero__img{z-index:1}.hero__img,.hero__img img,.hero__img video{position:absolute;top:0;left:0;width:100%;height:100%}.hero__img img,.hero__img video{z-index:-1}.headline{position:relative;z-index:1;background-color:#00b8de;padding:7rem 0}@media (max-width:991px){.headline{padding:5rem 0}}.headline__img{position:absolute;top:0;left:0;width:100%;height:calc(100% - 1.5rem);z-index:-1}.headline--formation{position:relative;z-index:1;padding:4.5rem 0}.headline--formation--eval{padding:0 0 4.5rem}.headline--formation:before{z-index:-1;clip-path:polygon(70% 0,100% 0,100% 100%,50% 100%);background-color:hsla(0,0%,84.7%,.23)}.headline--formation:after,.headline--formation:before{content:"";position:absolute;width:100vw;height:100%;top:0;left:50%;transform:translateX(-50%)}.headline--formation:after{background-color:hsla(0,0%,84.7%,.11);z-index:-2}.subscribe{padding:5rem 0;background-color:#00b8de;text-align:center;margin-bottom:-10rem;margin-top:3rem;color:#fff}@media (max-width:991px){.subscribe{margin-bottom:-8rem}}.section:not(:last-child){margin-bottom:5rem}.section:last-child{margin-bottom:-10rem}@media (max-width:991px){.section:last-child{margin-bottom:-8rem}}.section__title{margin-bottom:0!important;text-transform:uppercase}.section__subtitle{color:#00b8de;font-family:archer,serif;text-transform:uppercase;font-size:1.6rem;font-weight:500}.section__header--center{text-align:center;margin-bottom:5rem}@media (max-width:991px){.section__header--center{margin-bottom:4rem}}.section__cell{flex:1}.section__cell .form-group{margin-bottom:0!important}.section__cell:not(:last-child){margin-right:2rem}@media (max-width:991px){.section__cell:not(:last-child){margin-right:0;margin-bottom:2rem}}.section__cell .bootstrap-select.show .dropdown-toggle:after{transform:translateY(-50%) rotate(180deg)}.section--info{display:flex}@media (min-width:992px){.section--info .section__header{flex:0 0 25%;width:25%;margin-right:2.5rem;margin-bottom:0}}@media (max-width:991px){.section--info .section__header{margin-bottom:2.5rem}}.section--info .section__body{flex:1}.section--info .section__body .section__cell .btn{font-weight:400;display:flex;align-items:center;justify-content:center;height:100%}@media (max-width:991px){.section--info .section__body .section__cell .btn{height:7rem}}@media (max-width:991px){.section--info,.section--info .section__body{flex-direction:column}}.section--news .section__header{margin-bottom:5rem}.section--news .section__body{display:flex}.section--news .section__body .section__cell:last-child{display:flex;flex-direction:column;justify-content:space-between}@media (max-width:991px){.section--news .section__body{flex-direction:column}}.section--event .section__body{display:flex;flex-direction:column}@media (max-width:991px){.section--event .section__header{padding:1rem 3rem 0}}.section--social .section__social-list{display:flex;justify-content:center;padding:0 0 5rem}@media (max-width:991px){.section--social .section__social-list{margin-top:4rem}}.section--social .section__social-item{font-size:2rem}.section--social .section__social-item a:hover{color:#d4117f}.section--social .section__social-item:not(:last-child){margin-right:2rem}.section--temoignage .section__header{margin-bottom:10rem}@media (max-width:991px){.section--temoignage .section__header{margin-bottom:3rem}}.section--temoignage .section__body{display:flex;flex-direction:column}.section--newsletter{padding:4rem 0;position:relative}@media (min-width:992px){.section--newsletter{height:36rem}}.section--newsletter .section__img{position:absolute;height:100%;width:100vw;left:50%;top:0;transform:translateX(-50%);z-index:-1}.section--newsletter .section__img:before{content:"";position:absolute;background-color:hsla(0,0%,100%,.81);top:0;left:0;height:100%;width:100%;z-index:-1}.section--newsletter .section__img img{position:absolute;top:0;left:0;height:100%;width:100%;z-index:-2}.section--newsletter .section__header{margin-bottom:5rem}@media (max-width:991px){.section--newsletter .section__header{margin-bottom:4rem}}.section--newsletter .section__body{display:flex;flex-direction:column}.section--map .section__body{height:42rem;position:relative}.section--map .section__image{position:absolute;top:0;left:50%;transform:translateX(-50%);height:100%;width:100vw}__webpack_require__.r(__webpack_exports__);(function($){var bootstrap_select__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(259);var bootstrap_select__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(bootstrap_select__WEBPACK_IMPORTED_MODULE_0__);var bootstrap_select_dist_js_i18n_defaults_fr_FR__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(260);var bootstrap_select_dist_js_i18n_defaults_fr_FR__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(bootstrap_select_dist_js_i18n_defaults_fr_FR__WEBPACK_IMPORTED_MODULE_1__);$('.selectbox').selectpicker({styleBase:'form-control',size:6});}.call(this,__webpack_require__(23)))var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function (root,factory){if (root === undefined && window !== undefined) root = window;if (true){// AMD. Register as an anonymous module unless amdModuleId is set
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(23)],__WEBPACK_AMD_DEFINE_RESULT__ = (function (a0){return (factory(a0));}).apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));}else{}}(this,function (jQuery){(function ($){'use strict';var DISALLOWED_ATTRIBUTES = ['sanitize','whiteList','sanitizeFn'];var uriAttrs = [
    'background','cite','href','itemtype','longdesc','poster','src','xlink:href'
  ];var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;var DefaultWhitelist ={// Global attributes allowed on any supplied element below.
    '*':['class','dir','id','lang','role','tabindex','style',ARIA_ATTRIBUTE_PATTERN],a:['target','href','title','rel'],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:['src','alt','title','width','height'],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]}var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function allowedAttribute (attr,allowedAttributeList){var attrName = attr.nodeName.toLowerCase()

    if ($.inArray(attrName,allowedAttributeList) !== -1){if ($.inArray(attrName,uriAttrs) !== -1){return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))}return true}var regExp = $(allowedAttributeList).filter(function (index,value){return value instanceof RegExp})

    // Check if a regular expression validates the attribute.
    for (var i = 0,l = regExp.length;i < l;i++){if (attrName.match(regExp[i])){return true}}return false}function sanitizeHtml (unsafeElements,whiteList,sanitizeFn){if (sanitizeFn && typeof sanitizeFn === 'function'){return sanitizeFn(unsafeElements);}var whitelistKeys = Object.keys(whiteList);for (var i = 0,len = unsafeElements.length;i < len;i++){var elements = unsafeElements[i].querySelectorAll('*');for (var j = 0,len2 = elements.length;j < len2;j++){var el = elements[j];var elName = el.nodeName.toLowerCase();if (whitelistKeys.indexOf(elName) === -1){el.parentNode.removeChild(el);continue;}var attributeList = [].slice.call(el.attributes);var whitelistedAttributes = [].concat(whiteList['*'] || [],whiteList[elName] || []);for (var k = 0,len3 = attributeList.length;k < len3;k++){var attr = attributeList[k];if (!allowedAttribute(attr,whitelistedAttributes)){el.removeAttribute(attr.nodeName);}}}}}// Polyfill for browsers with no classList support
  // Remove in v2
  if (!('classList' in document.createElement('_'))){(function (view){if (!('Element' in view)) return;var classListProp = 'classList',protoProp = 'prototype',elemCtrProto = view.Element[protoProp],objCtr = Object,classListGetter = function (){var $elem = $(this);return{add:function (classes){classes = Array.prototype.slice.call(arguments).join(' ');return $elem.addClass(classes);},remove:function (classes){classes = Array.prototype.slice.call(arguments).join(' ');return $elem.removeClass(classes);},toggle:function (classes,force){return $elem.toggleClass(classes,force);},contains:function (classes){return $elem.hasClass(classes);}}};if (objCtr.defineProperty){var classListPropDesc ={get:classListGetter,enumerable:true,configurable:true};try{objCtr.defineProperty(elemCtrProto,classListProp,classListPropDesc);}catch (ex){// IE 8 doesn't support enumerable:true
          // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36
          // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected
          if (ex.number === undefined || ex.number === -0x7FF5EC54) {
            classListPropDesc.enumerable = false;
            objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
          }
        }
      } else if (objCtr[protoProp].__defineGetter__) {
        elemCtrProto.__defineGetter__(classListProp, classListGetter);
      }
    }(window));
  }

  var testElement = document.createElement('_');

  testElement.classList.add('c1', 'c2');

  if (!testElement.classList.contains('c2')) {
    var _add = DOMTokenList.prototype.add,
        _remove = DOMTokenList.prototype.remove;

    DOMTokenList.prototype.add = function () {
      Array.prototype.forEach.call(arguments, _add.bind(this));
    }

    DOMTokenList.prototype.remove = function () {
      Array.prototype.forEach.call(arguments, _remove.bind(this));
    }
  }

  testElement.classList.toggle('c3', false);

  // Polyfill for IE 10 and Firefox <24, where classList.toggle does not
  // support the second argument.
  if (testElement.classList.contains('c3')) {
    var _toggle = DOMTokenList.prototype.toggle;

    DOMTokenList.prototype.toggle = function (token, force) {
      if (1 in arguments && !this.contains(token) === !force) {
        return force;
      } else {
        return _toggle.call(this, token);
      }
    };
  }

  testElement = null;

  // shallow array comparison
  function isEqual (array1, array2) {
    return array1.length === array2.length && array1.every(function (element, index) {
      return element === array2[index];
    });
  };

  // <editor-fold desc="Shims">
  if (!String.prototype.startsWith) {
    (function () {
      'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
      var defineProperty = (function () {
        // IE 8 only supports `Object.defineProperty` on DOM elements
        try {
          var object = {};
          var $defineProperty = Object.defineProperty;
          var result = $defineProperty(object, object, object) && $defineProperty;
        } catch (error) {
        }
        return result;
      }());
      var toString = {}.toString;
      var startsWith = function (search) {
        if (this == null) {
          throw new TypeError();
        }
        var string = String(this);
        if (search && toString.call(search) == '[object RegExp]') {
          throw new TypeError();
        }
        var stringLength = string.length;
        var searchString = String(search);
        var searchLength = searchString.length;
        var position = arguments.length > 1 ? arguments[1] : undefined;
        // `ToInteger`
        var pos = position ? Number(position) : 0;
        if (pos != pos) { // better `isNaN`
          pos = 0;
        }
        var start = Math.min(Math.max(pos, 0), stringLength);
        // Avoid the `indexOf` call if no match is possible
        if (searchLength + start > stringLength) {
          return false;
        }
        var index = -1;
        while (++index < searchLength) {
          if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {
            return false;
          }
        }
        return true;
      };
      if (defineProperty) {
        defineProperty(String.prototype, 'startsWith', {
          'value': startsWith,
          'configurable': true,
          'writable': true
        });
      } else {
        String.prototype.startsWith = startsWith;
      }
    }());
  }

  if (!Object.keys) {
    Object.keys = function (
      o, // object
      k, // key
      r  // result array
    ) {
      // initialize object and result
      r = [];
      // iterate over object keys
      for (k in o) {
        // fill result array with non-prototypical keys
        r.hasOwnProperty.call(o, k) && r.push(k);
      }
      // return result
      return r;
    };
  }

  if (HTMLSelectElement && !HTMLSelectElement.prototype.hasOwnProperty('selectedOptions')) {
    Object.defineProperty(HTMLSelectElement.prototype, 'selectedOptions', {
      get: function () {
        return this.querySelectorAll(':checked');
      }
    });
  }

  function getSelectedOptions (select, ignoreDisabled) {
    var selectedOptions = select.selectedOptions,
        options = [],
        opt;

    if (ignoreDisabled) {
      for (var i = 0, len = selectedOptions.length; i < len; i++) {
        opt = selectedOptions[i];

        if (!(opt.disabled || opt.parentNode.tagName === 'OPTGROUP' && opt.parentNode.disabled)) {
          options.push(opt);
        }
      }

      return options;
    }

    return selectedOptions;
  }

  // much faster than $.val()
  function getSelectValues (select, selectedOptions) {
    var value = [],
        options = selectedOptions || select.selectedOptions,
        opt;

    for (var i = 0, len = options.length; i < len; i++) {
      opt = options[i];

      if (!(opt.disabled || opt.parentNode.tagName === 'OPTGROUP' && opt.parentNode.disabled)) {
        value.push(opt.value);
      }
    }

    if (!select.multiple) {
      return !value.length ? null : value[0];
    }

    return value;
  }

  // set data-selected on select element if the value has been programmatically selected
  // prior to initialization of bootstrap-select
  // * consider removing or replacing an alternative method *
  var valHooks = {
    useDefault: false,
    _set: $.valHooks.select.set
  };

  $.valHooks.select.set = function (elem, value) {
    if (value && !valHooks.useDefault) $(elem).data('selected', true);

    return valHooks._set.apply(this, arguments);
  };

  var changedArguments = null;

  var EventIsSupported = (function () {
    try {
      new Event('change');
      return true;
    } catch (e) {
      return false;
    }
  })();

  $.fn.triggerNative = function (eventName) {
    var el = this[0],
        event;

    if (el.dispatchEvent) { // for modern browsers & IE9+
      if (EventIsSupported) {
        // For modern browsers
        event = new Event(eventName, {
          bubbles: true
        });
      } else {
        // For IE since it doesn't support Event constructor
        event = document.createEvent('Event');event.initEvent(eventName,true,false);}el.dispatchEvent(event);}else if (el.fireEvent){// for IE8
      event = document.createEventObject();event.eventType = eventName;el.fireEvent('on' + eventName,event);}else{// fall back to jQuery.trigger
      this.trigger(eventName);}};// </editor-fold>

  function stringSearch (li,searchString,method,normalize){var stringTypes = [
          'display','subtext','tokens'
        ],searchSuccess = false;for (var i = 0;i < stringTypes.length;i++){var stringType = stringTypes[i],string = li[stringType];if (string){string = string.toString();// Strip HTML tags. This isn't perfect, but it's much faster than any other method
        if (stringType === 'display'){string = string.replace(/<[^>]+>/g,'');}if (normalize) string = normalizeToBase(string);string = string.toUpperCase();if (method === 'contains'){searchSuccess = string.indexOf(searchString) >= 0;}else{searchSuccess = string.startsWith(searchString);}if (searchSuccess) break;}}return searchSuccess;}function toInteger (value){return parseInt(value,10) || 0;}// Borrowed from Lodash (_.deburr)
  
  var deburredLetters ={// Latin-1 Supplement block.
    '\xc0':'A','\xc1':'A','\xc2':'A','\xc3':'A','\xc4':'A','\xc5':'A','\xe0':'a','\xe1':'a','\xe2':'a','\xe3':'a','\xe4':'a','\xe5':'a','\xc7':'C','\xe7':'c','\xd0':'D','\xf0':'d','\xc8':'E','\xc9':'E','\xca':'E','\xcb':'E','\xe8':'e','\xe9':'e','\xea':'e','\xeb':'e','\xcc':'I','\xcd':'I','\xce':'I','\xcf':'I','\xec':'i','\xed':'i','\xee':'i','\xef':'i','\xd1':'N','\xf1':'n','\xd2':'O','\xd3':'O','\xd4':'O','\xd5':'O','\xd6':'O','\xd8':'O','\xf2':'o','\xf3':'o','\xf4':'o','\xf5':'o','\xf6':'o','\xf8':'o','\xd9':'U','\xda':'U','\xdb':'U','\xdc':'U','\xf9':'u','\xfa':'u','\xfb':'u','\xfc':'u','\xdd':'Y','\xfd':'y','\xff':'y','\xc6':'Ae','\xe6':'ae','\xde':'Th','\xfe':'th','\xdf':'ss',// Latin Extended-A block.
    '\u0100':'A','\u0102':'A','\u0104':'A','\u0101':'a','\u0103':'a','\u0105':'a','\u0106':'C','\u0108':'C','\u010a':'C','\u010c':'C','\u0107':'c','\u0109':'c','\u010b':'c','\u010d':'c','\u010e':'D','\u0110':'D','\u010f':'d','\u0111':'d','\u0112':'E','\u0114':'E','\u0116':'E','\u0118':'E','\u011a':'E','\u0113':'e','\u0115':'e','\u0117':'e','\u0119':'e','\u011b':'e','\u011c':'G','\u011e':'G','\u0120':'G','\u0122':'G','\u011d':'g','\u011f':'g','\u0121':'g','\u0123':'g','\u0124':'H','\u0126':'H','\u0125':'h','\u0127':'h','\u0128':'I','\u012a':'I','\u012c':'I','\u012e':'I','\u0130':'I','\u0129':'i','\u012b':'i','\u012d':'i','\u012f':'i','\u0131':'i','\u0134':'J','\u0135':'j','\u0136':'K','\u0137':'k','\u0138':'k','\u0139':'L','\u013b':'L','\u013d':'L','\u013f':'L','\u0141':'L','\u013a':'l','\u013c':'l','\u013e':'l','\u0140':'l','\u0142':'l','\u0143':'N','\u0145':'N','\u0147':'N','\u014a':'N','\u0144':'n','\u0146':'n','\u0148':'n','\u014b':'n','\u014c':'O','\u014e':'O','\u0150':'O','\u014d':'o','\u014f':'o','\u0151':'o','\u0154':'R','\u0156':'R','\u0158':'R','\u0155':'r','\u0157':'r','\u0159':'r','\u015a':'S','\u015c':'S','\u015e':'S','\u0160':'S','\u015b':'s','\u015d':'s','\u015f':'s','\u0161':'s','\u0162':'T','\u0164':'T','\u0166':'T','\u0163':'t','\u0165':'t','\u0167':'t','\u0168':'U','\u016a':'U','\u016c':'U','\u016e':'U','\u0170':'U','\u0172':'U','\u0169':'u','\u016b':'u','\u016d':'u','\u016f':'u','\u0171':'u','\u0173':'u','\u0174':'W','\u0175':'w','\u0176':'Y','\u0177':'y','\u0178':'Y','\u0179':'Z','\u017b':'Z','\u017d':'Z','\u017a':'z','\u017c':'z','\u017e':'z','\u0132':'IJ','\u0133':'ij','\u0152':'Oe','\u0153':'oe','\u0149':"'n",'\u017f':'s'};var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var rsComboMarksRange = '\\u0300-\\u036f',reComboHalfMarksRange = '\\ufe20-\\ufe2f',rsComboSymbolsRange = '\\u20d0-\\u20ff',rsComboMarksExtendedRange = '\\u1ab0-\\u1aff',rsComboMarksSupplementRange = '\\u1dc0-\\u1dff',rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange;var rsCombo = '[' + rsComboRange + ']';var reComboMark = RegExp(rsCombo,'g');function deburrLetter (key){return deburredLetters[key];};function normalizeToBase (string){string = string.toString();return string && string.replace(reLatin,deburrLetter).replace(reComboMark,'');}// List of HTML entities for escaping.
  var escapeMap ={'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#x27;','`':'&#x60;'};// Functions for escaping and unescaping strings to/from HTML interpolation.
  var createEscaper = function (map){var escaper = function (match){return map[match];};// Regexes for identifying a key that needs to be escaped.
    var source = '(?:' + Object.keys(map).join('|') + ')';var testRegexp = RegExp(source);var replaceRegexp = RegExp(source,'g');return function (string){string = string == null ? '' :'' + string;return testRegexp.test(string) ? string.replace(replaceRegexp,escaper) :string;};};var htmlEscape = createEscaper(escapeMap);var keyCodeMap ={32:' ',48:'0',49:'1',50:'2',51:'3',52:'4',53:'5',54:'6',55:'7',56:'8',57:'9',59:';',65:'A',66:'B',67:'C',68:'D',69:'E',70:'F',71:'G',72:'H',73:'I',74:'J',75:'K',76:'L',77:'M',78:'N',79:'O',80:'P',81:'Q',82:'R',83:'S',84:'T',85:'U',86:'V',87:'W',88:'X',89:'Y',90:'Z',96:'0',97:'1',98:'2',99:'3',100:'4',101:'5',102:'6',103:'7',104:'8',105:'9'};var keyCodes ={ESCAPE:27,// KeyboardEvent.which value for Escape (Esc) key
    ENTER:13,// KeyboardEvent.which value for Enter key
    SPACE:32,// KeyboardEvent.which value for space key
    TAB:9,// KeyboardEvent.which value for tab key
    ARROW_UP:38,// KeyboardEvent.which value for up arrow key
    ARROW_DOWN:40 // KeyboardEvent.which value for down arrow key}var version ={success:false,major:'3'};try{version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.');version.major = version.full[0];version.success = true;}catch (err){// do nothing}var selectId = 0;var EVENT_KEY = '.bs.select';var classNames ={DISABLED:'disabled',DIVIDER:'divider',SHOW:'open',DROPUP:'dropup',MENU:'dropdown-menu',MENURIGHT:'dropdown-menu-right',MENULEFT:'dropdown-menu-left',// to-do:replace with more advanced template/customization options
    BUTTONCLASS:'btn-default',POPOVERHEADER:'popover-title',ICONBASE:'glyphicon',TICKICON:'glyphicon-ok'}var Selector ={MENU:'.' + classNames.MENU}var elementTemplates ={div:document.createElement('div'),span:document.createElement('span'),i:document.createElement('i'),subtext:document.createElement('small'),a:document.createElement('a'),li:document.createElement('li'),whitespace:document.createTextNode('\u00A0'),fragment:document.createDocumentFragment()}elementTemplates.noResults = elementTemplates.li.cloneNode(false);elementTemplates.noResults.className = 'no-results';elementTemplates.a.setAttribute('role','option');elementTemplates.a.className = 'dropdown-item';elementTemplates.subtext.className = 'text-muted';elementTemplates.text = elementTemplates.span.cloneNode(false);elementTemplates.text.className = 'text';elementTemplates.checkMark = elementTemplates.span.cloneNode(false);var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN);var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE);var generateOption ={li:function (content,classes,optgroup){var li = elementTemplates.li.cloneNode(false);if (content){if (content.nodeType === 1 || content.nodeType === 11){li.appendChild(content);}else{li.innerHTML = content;}}if (typeof classes !== 'undefined' && classes !== '') li.className = classes;if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup);return li;},a:function (text,classes,inline){var a = elementTemplates.a.cloneNode(true);if (text){if (text.nodeType === 11){a.appendChild(text);}else{a.insertAdjacentHTML('beforeend',text);}}if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList,classes.split(/\s+/));if (inline) a.setAttribute('style',inline);return a;},text:function (options,useFragment){var textElement = elementTemplates.text.cloneNode(false),subtextElement,iconElement;if (options.content){textElement.innerHTML = options.content;}else{textElement.textContent = options.text;if (options.icon){var whitespace = elementTemplates.whitespace.cloneNode(false);// need to use <i> for icons in the button to prevent a breaking change
          // note:switch to span in next major release
          iconElement = (useFragment === true ? elementTemplates.i :elementTemplates.span).cloneNode(false);iconElement.className = this.options.iconBase + ' ' + options.icon;elementTemplates.fragment.appendChild(iconElement);elementTemplates.fragment.appendChild(whitespace);}if (options.subtext){subtextElement = elementTemplates.subtext.cloneNode(false);subtextElement.textContent = options.subtext;textElement.appendChild(subtextElement);}}if (useFragment === true){while (textElement.childNodes.length > 0){elementTemplates.fragment.appendChild(textElement.childNodes[0]);}}else{elementTemplates.fragment.appendChild(textElement);}return elementTemplates.fragment;},label:function (options){var textElement = elementTemplates.text.cloneNode(false),subtextElement,iconElement;textElement.innerHTML = options.display;if (options.icon){var whitespace = elementTemplates.whitespace.cloneNode(false);iconElement = elementTemplates.span.cloneNode(false);iconElement.className = this.options.iconBase + ' ' + options.icon;elementTemplates.fragment.appendChild(iconElement);elementTemplates.fragment.appendChild(whitespace);}if (options.subtext){subtextElement = elementTemplates.subtext.cloneNode(false);subtextElement.textContent = options.subtext;textElement.appendChild(subtextElement);}elementTemplates.fragment.appendChild(textElement);return elementTemplates.fragment;}}function showNoResults (searchMatch,searchValue){if (!searchMatch.length){elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}','"' + htmlEscape(searchValue) + '"');this.$menuInner[0].firstChild.appendChild(elementTemplates.noResults);}}var Selectpicker = function (element,options){var that = this;// bootstrap-select has been initialized - revert valHooks.select.set back to its original function
    if (!valHooks.useDefault){$.valHooks.select.set = valHooks._set;valHooks.useDefault = true;}this.$element = $(element);this.$newElement = null;this.$button = null;this.$menu = null;this.options = options;this.selectpicker ={main:{},search:{},current:{},// current changes if a search is in progress
      view:{},isSearching:false,keydown:{keyHistory:'',resetKeyHistory:{start:function (){return setTimeout(function (){that.selectpicker.keydown.keyHistory = '';},800);}}}};this.sizeInfo ={};// If we have no title yet,try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a
    // data-attribute)
    if (this.options.title === null){this.options.title = this.$element.attr('title');}// Format window padding
    var winPad = this.options.windowPadding;if (typeof winPad === 'number'){this.options.windowPadding = [winPad,winPad,winPad,winPad];}// Expose public methods
    this.val = Selectpicker.prototype.val;this.render = Selectpicker.prototype.render;this.refresh = Selectpicker.prototype.refresh;this.setStyle = Selectpicker.prototype.setStyle;this.selectAll = Selectpicker.prototype.selectAll;this.deselectAll = Selectpicker.prototype.deselectAll;this.destroy = Selectpicker.prototype.destroy;this.remove = Selectpicker.prototype.remove;this.show = Selectpicker.prototype.show;this.hide = Selectpicker.prototype.hide;this.init();};Selectpicker.VERSION = '1.13.18';// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.
  Selectpicker.DEFAULTS ={noneSelectedText:'Nothing selected',noneResultsText:'No results matched {0}',countSelectedText:function (numSelected,numTotal){return (numSelected == 1) ? '{0} item selected' :'{0} items selected';},maxOptionsText:function (numAll,numGroup){return [
        (numAll == 1) ? 'Limit reached ({n} item max)' :'Limit reached ({n} items max)',(numGroup == 1) ? 'Group limit reached ({n} item max)' :'Group limit reached ({n} items max)'
      ];},selectAllText:'Select All',deselectAllText:'Deselect All',doneButton:false,doneButtonText:'Close',multipleSeparator:', ',styleBase:'btn',style:classNames.BUTTONCLASS,size:'auto',title:null,selectedTextFormat:'values',width:false,container:false,hideDisabled:false,showSubtext:false,showIcon:true,showContent:true,dropupAuto:true,header:false,liveSearch:false,liveSearchPlaceholder:null,liveSearchNormalize:false,liveSearchStyle:'contains',actionsBox:false,iconBase:classNames.ICONBASE,tickIcon:classNames.TICKICON,showTick:false,template:{caret:'<span class="caret"></span>'},maxOptions:false,mobile:false,selectOnTab:false,dropdownAlignRight:false,windowPadding:0,virtualScroll:600,display:false,sanitize:true,sanitizeFn:null,whiteList:DefaultWhitelist};Selectpicker.prototype ={constructor:Selectpicker,init:function (){var that = this,id = this.$element.attr('id'),element = this.$element[0],form = element.form;selectId++;this.selectId = 'bs-select-' + selectId;element.classList.add('bs-select-hidden');this.multiple = this.$element.prop('multiple');this.autofocus = this.$element.prop('autofocus');if (element.classList.contains('show-tick')){this.options.showTick = true;}this.$newElement = this.createDropdown();this.buildData();this.$element
        .after(this.$newElement)
        .prependTo(this.$newElement);// ensure select is associated with form element if it got unlinked after moving it inside newElement
      if (form && element.form === null){if (!form.id) form.id = 'form-' + this.selectId;element.setAttribute('form',form.id);}this.$button = this.$newElement.children('button');this.$menu = this.$newElement.children(Selector.MENU);this.$menuInner = this.$menu.children('.inner');this.$searchbox = this.$menu.find('input');element.classList.remove('bs-select-hidden');if (this.options.dropdownAlignRight === true) this.$menu[0].classList.add(classNames.MENURIGHT);if (typeof id !== 'undefined'){this.$button.attr('data-id',id);}this.checkDisabled();this.clickListener();if (this.options.liveSearch){this.liveSearchListener();this.focusedParent = this.$searchbox[0];}else{this.focusedParent = this.$menuInner[0];}this.setStyle();this.render();this.setWidth();if (this.options.container){this.selectPosition();}else{this.$element.on('hide' + EVENT_KEY,function (){if (that.isVirtual()){// empty menu on close
            var menuInner = that.$menuInner[0],emptyMenu = menuInner.firstChild.cloneNode(false);// replace the existing UL with an empty one - this is faster than $.empty() or innerHTML = ''
            menuInner.replaceChild(emptyMenu,menuInner.firstChild);menuInner.scrollTop = 0;}});}this.$menu.data('this',this);this.$newElement.data('this',this);if (this.options.mobile) this.mobile();this.$newElement.on({'hide.bs.dropdown':function (e){that.$element.trigger('hide' + EVENT_KEY,e);},'hidden.bs.dropdown':function (e){that.$element.trigger('hidden' + EVENT_KEY,e);},'show.bs.dropdown':function (e){that.$element.trigger('show' + EVENT_KEY,e);},'shown.bs.dropdown':function (e){that.$element.trigger('shown' + EVENT_KEY,e);}});if (element.hasAttribute('required')){this.$element.on('invalid' + EVENT_KEY,function (){that.$button[0].classList.add('bs-invalid');that.$element
            .on('shown' + EVENT_KEY + '.invalid',function (){that.$element
                .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened
                .off('shown' + EVENT_KEY + '.invalid');})
            .on('rendered' + EVENT_KEY,function (){// if select is no longer invalid,remove the bs-invalid class
              if (this.validity.valid) that.$button[0].classList.remove('bs-invalid');that.$element.off('rendered' + EVENT_KEY);});that.$button.on('blur' + EVENT_KEY,function (){that.$element.trigger('focus').trigger('blur');that.$button.off('blur' + EVENT_KEY);});});}setTimeout(function (){that.buildList();that.$element.trigger('loaded' + EVENT_KEY);});},createDropdown:function (){// Options
      // If we are multiple or showTick option is set,then add the show-tick class
      var showTick = (this.multiple || this.options.showTick) ? ' show-tick' :'',multiselectable = this.multiple ? ' aria-multiselectable="true"' :'',inputGroup = '',autofocus = this.autofocus ? ' autofocus' :'';if (version.major < 4 && this.$element.parent().hasClass('input-group')){inputGroup = ' input-group-btn';}// Elements
      var drop,header = '',searchbox = '',actionsbox = '',donebutton = '';if (this.options.header){header =
          '<div class="' + classNames.POPOVERHEADER + '">' +
            '<button type="button" class="close" aria-hidden="true">&times;</button>' +
              this.options.header +
          '</div>';}if (this.options.liveSearch){searchbox =
          '<div class="bs-searchbox">' +
            '<input type="search" class="form-control" autocomplete="off"' +
              (this.options.liveSearchPlaceholder === null ? ''
                :' placeholder="' + htmlEscape(this.options.liveSearchPlaceholder) + '"') +
              ' role="combobox" aria-label="Search" aria-controls="' + this.selectId + '" aria-autocomplete="list">' +
          '</div>';}if (this.multiple && this.options.actionsBox){actionsbox =
          '<div class="bs-actionsbox">' +
            '<div class="btn-group btn-group-sm btn-block">' +
              '<button type="button" class="actions-btn bs-select-all btn ' + classNames.BUTTONCLASS + '">' +
                this.options.selectAllText +
              '</button>' +
              '<button type="button" class="actions-btn bs-deselect-all btn ' + classNames.BUTTONCLASS + '">' +
                this.options.deselectAllText +
              '</button>' +
            '</div>' +
          '</div>';}if (this.multiple && this.options.doneButton){donebutton =
          '<div class="bs-donebutton">' +
            '<div class="btn-group btn-block">' +
              '<button type="button" class="btn btn-sm ' + classNames.BUTTONCLASS + '">' +
                this.options.doneButtonText +
              '</button>' +
            '</div>' +
          '</div>';}drop =
        '<div class="dropdown bootstrap-select' + showTick + inputGroup + '">' +
          '<button type="button" tabindex="-1" class="' + this.options.styleBase + ' dropdown-toggle" ' + (this.options.display === 'static' ? 'data-display="static"' :'') + 'data-toggle="dropdown"' + autofocus + ' role="combobox" aria-owns="' + this.selectId + '" aria-haspopup="listbox" aria-expanded="false">' +
            '<div class="filter-option">' +
              '<div class="filter-option-inner">' +
                '<div class="filter-option-inner-inner"></div>' +
              '</div> ' +
            '</div>' +
            (version.major === '4' ? ''
              :'<span class="bs-caret">' +
                this.options.template.caret +
              '</span>') +
          '</button>' +
          '<div class="' + classNames.MENU + ' ' + (version.major === '4' ? '' :classNames.SHOW) + '">' +
            header +
            searchbox +
            actionsbox +
            '<div class="inner ' + classNames.SHOW + '" role="listbox" id="' + this.selectId + '" tabindex="-1" ' + multiselectable + '>' +
                '<ul class="' + classNames.MENU + ' inner ' + (version.major === '4' ? classNames.SHOW :'') + '" role="presentation">' +
                '</ul>' +
            '</div>' +
            donebutton +
          '</div>' +
        '</div>';return $(drop);},setPositionData:function (){this.selectpicker.view.canHighlight = [];this.selectpicker.view.size = 0;this.selectpicker.view.firstHighlightIndex = false;for (var i = 0;i < this.selectpicker.current.data.length;i++){var li = this.selectpicker.current.data[i],canHighlight = true;if (li.type === 'divider'){canHighlight = false;li.height = this.sizeInfo.dividerHeight;}else if (li.type === 'optgroup-label'){canHighlight = false;li.height = this.sizeInfo.dropdownHeaderHeight;}else{li.height = this.sizeInfo.liHeight;}if (li.disabled) canHighlight = false;this.selectpicker.view.canHighlight.push(canHighlight);if (canHighlight){this.selectpicker.view.size++;li.posinset = this.selectpicker.view.size;if (this.selectpicker.view.firstHighlightIndex === false) this.selectpicker.view.firstHighlightIndex = i;}li.position = (i === 0 ? 0 :this.selectpicker.current.data[i - 1].position) + li.height;}},isVirtual:function (){return (this.options.virtualScroll !== false) && (this.selectpicker.main.elements.length >= this.options.virtualScroll) || this.options.virtualScroll === true;},createView:function (isSearching,setSize,refresh){var that = this,scrollTop = 0,active = [],selected,prevActive;this.selectpicker.isSearching = isSearching;this.selectpicker.current = isSearching ? this.selectpicker.search :this.selectpicker.main;this.setPositionData();if (setSize){if (refresh){scrollTop = this.$menuInner[0].scrollTop;}else if (!that.multiple){var element = that.$element[0],selectedIndex = (element.options[element.selectedIndex] ||{}).liIndex;if (typeof selectedIndex === 'number' && that.options.size !== false){var selectedData = that.selectpicker.main.data[selectedIndex],position = selectedData && selectedData.position;if (position){scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2);}}}}scroll(scrollTop,true);this.$menuInner.off('scroll.createView').on('scroll.createView',function (e,updateValue){if (!that.noScroll) scroll(this.scrollTop,updateValue);that.noScroll = false;});function scroll (scrollTop,init){var size = that.selectpicker.current.elements.length,chunks = [],chunkSize,chunkCount,firstChunk,lastChunk,currentChunk,prevPositions,positionIsDifferent,previousElements,menuIsDifferent = true,isVirtual = that.isVirtual();that.selectpicker.view.scrollTop = scrollTop;chunkSize = Math.ceil(that.sizeInfo.menuInnerHeight / that.sizeInfo.liHeight * 1.5);// number of options in a chunk
        chunkCount = Math.round(size / chunkSize) || 1;// number of chunks

        for (var i = 0;i < chunkCount;i++){var endOfChunk = (i + 1) * chunkSize;if (i === chunkCount - 1){endOfChunk = size;}chunks[i] = [
            (i) * chunkSize + (!i ? 0 :1),endOfChunk
          ];if (!size) break;if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight){currentChunk = i;}}if (currentChunk === undefined) currentChunk = 0;prevPositions = [that.selectpicker.view.position0,that.selectpicker.view.position1];// always display previous,current,and next chunks
        firstChunk = Math.max(0,currentChunk - 1);lastChunk = Math.min(chunkCount - 1,currentChunk + 1);that.selectpicker.view.position0 = isVirtual === false ? 0 :(Math.max(0,chunks[firstChunk][0]) || 0);that.selectpicker.view.position1 = isVirtual === false ? size :(Math.min(size,chunks[lastChunk][1]) || 0);positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1;if (that.activeIndex !== undefined){prevActive = that.selectpicker.main.elements[that.prevActiveIndex];active = that.selectpicker.main.elements[that.activeIndex];selected = that.selectpicker.main.elements[that.selectedIndex];if (init){if (that.activeIndex !== that.selectedIndex){that.defocusItem(active);}that.activeIndex = undefined;}if (that.activeIndex && that.activeIndex !== that.selectedIndex){that.defocusItem(selected);}}if (that.prevActiveIndex !== undefined && that.prevActiveIndex !== that.activeIndex && that.prevActiveIndex !== that.selectedIndex){that.defocusItem(prevActive);}if (init || positionIsDifferent){previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() :[];if (isVirtual === false){that.selectpicker.view.visibleElements = that.selectpicker.current.elements;}else{that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0,that.selectpicker.view.position1);}that.setOptionStatus();// if searching,check to make sure the list has actually been updated before updating DOM
          // this prevents unnecessary repaints
          if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements,that.selectpicker.view.visibleElements);// if virtual scroll is disabled and not searching,// menu should never need to be updated more than once
          if ((init || isVirtual === true) && menuIsDifferent){var menuInner = that.$menuInner[0],menuFragment = document.createDocumentFragment(),emptyMenu = menuInner.firstChild.cloneNode(false),marginTop,marginBottom,elements = that.selectpicker.view.visibleElements,toSanitize = [];// replace the existing UL with an empty one - this is faster than $.empty()
            menuInner.replaceChild(emptyMenu,menuInner.firstChild);for (var i = 0,visibleElementsLen = elements.length;i < visibleElementsLen;i++){var element = elements[i],elText,elementData;if (that.options.sanitize){elText = element.lastChild;if (elText){elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0];if (elementData && elementData.content && !elementData.sanitized){toSanitize.push(elText);elementData.sanitized = true;}}}menuFragment.appendChild(element);}if (that.options.sanitize && toSanitize.length){sanitizeHtml(toSanitize,that.options.whiteList,that.options.sanitizeFn);}if (isVirtual === true){marginTop = (that.selectpicker.view.position0 === 0 ? 0 :that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position);marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 :that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position);menuInner.firstChild.style.marginTop = marginTop + 'px';menuInner.firstChild.style.marginBottom = marginBottom + 'px';}else{menuInner.firstChild.style.marginTop = 0;menuInner.firstChild.style.marginBottom = 0;}menuInner.firstChild.appendChild(menuFragment);// if an option is encountered that is wider than the current menu width,update the menu width accordingly
            // switch to ResizeObserver with increased browser support
            if (isVirtual === true && that.sizeInfo.hasScrollBar){var menuInnerInnerWidth = menuInner.firstChild.offsetWidth;if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth){menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';}else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth){// set to 0 to get actual width of menu
                that.$menu[0].style.minWidth = 0;var actualMenuWidth = menuInner.firstChild.offsetWidth;if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth){that.sizeInfo.menuInnerInnerWidth = actualMenuWidth;menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';}// reset to default CSS styling
                that.$menu[0].style.minWidth = '';}}}}that.prevActiveIndex = that.activeIndex;if (!that.options.liveSearch){that.$menuInner.trigger('focus');}else if (isSearching && init){var index = 0,newActive;if (!that.selectpicker.view.canHighlight[index]){index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true);}newActive = that.selectpicker.view.visibleElements[index];that.defocusItem(that.selectpicker.view.currentActive);that.activeIndex = (that.selectpicker.current.data[index] ||{}).index;that.focusItem(newActive);}}$(window)
        .off('resize' + EVENT_KEY + '.' + this.selectId + '.createView')
        .on('resize' + EVENT_KEY + '.' + this.selectId + '.createView',function (){var isActive = that.$newElement.hasClass(classNames.SHOW);if (isActive) scroll(that.$menuInner[0].scrollTop);});},focusItem:function (li,liData,noStyle){if (li){liData = liData || this.selectpicker.main.data[this.activeIndex];var a = li.firstChild;if (a){a.setAttribute('aria-setsize',this.selectpicker.view.size);a.setAttribute('aria-posinset',liData.posinset);if (noStyle !== true){this.focusedParent.setAttribute('aria-activedescendant',a.id);li.classList.add('active');a.classList.add('active');}}}},defocusItem:function (li){if (li){li.classList.remove('active');if (li.firstChild) li.firstChild.classList.remove('active');}},setPlaceholder:function (){var that = this,updateIndex = false;if (this.options.title && !this.multiple){if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option');// this option doesn't create a new <li> element, but does add a new option at the start,
        // so startIndex should increase to prevent having to check every option for the bs-title-option class
        updateIndex = true;

        var element = this.$element[0],
            selectTitleOption = false,
            titleNotAppended = !this.selectpicker.view.titleOption.parentNode,
            selectedIndex = element.selectedIndex,
            selectedOption = element.options[selectedIndex],
            navigation = window.performance && window.performance.getEntriesByType('navigation'),
            // Safari doesn't support getEntriesByType('navigation') - fall back to performance.navigation
            isNotBackForward = (navigation && navigation.length) ? navigation[0].type !== 'back_forward' :window.performance.navigation.type !== 2;if (titleNotAppended){// Use native JS to prepend option (faster)
          this.selectpicker.view.titleOption.className = 'bs-title-option';this.selectpicker.view.titleOption.value = '';// Check if selected or data-selected attribute is already set on an option. If not,select the titleOption option.
          // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,// if so,the select will have the data-selected attribute
          selectTitleOption = !selectedOption || (selectedIndex === 0 && selectedOption.defaultSelected === false && this.$element.data('selected') === undefined);}if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0){element.insertBefore(this.selectpicker.view.titleOption,element.firstChild);}// Set selected *after* appending to select,// otherwise the option doesn't get selected in IE
        // set using selectedIndex, as setting the selected attr to true here doesn't work in IE11
        if (selectTitleOption && isNotBackForward){element.selectedIndex = 0;}else if (document.readyState !== 'complete'){// if navigation type is back_forward,there's a chance the select will have its value set by BFCache
          // wait for that value to be set, then run render again
          window.addEventListener('pageshow', function () {
            if (that.selectpicker.view.displayedValue !== element.value) that.render();
          });
        }
      }

      return updateIndex;
    },

    buildData: function () {
      var optionSelector = ':not([hidden]):not([data-hidden="true"])',
          mainData = [],
          optID = 0,
          startIndex = this.setPlaceholder() ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop

      if (this.options.hideDisabled) optionSelector += ':not(:disabled)';

      var selectOptions = this.$element[0].querySelectorAll('select > *' + optionSelector);

      function addDivider (config) {
        var previousData = mainData[mainData.length - 1];

        // ensure optgroup doesn't create back-to-back dividers
        if (previousData &&
          previousData.type === 'divider' &&
          (previousData.optID || config.optID)){return;}config = config ||{};config.type = 'divider';mainData.push(config);}function addOption (option,config){config = config ||{};config.divider = option.getAttribute('data-divider') === 'true';if (config.divider){addDivider({optID:config.optID});}else{var liIndex = mainData.length,cssText = option.style.cssText,inlineStyle = cssText ? htmlEscape(cssText) :'',optionClass = (option.className || '') + (config.optgroupClass || '');if (config.optID) optionClass = 'opt ' + optionClass;config.optionClass = optionClass.trim();config.inlineStyle = inlineStyle;config.text = option.textContent;config.content = option.getAttribute('data-content');config.tokens = option.getAttribute('data-tokens');config.subtext = option.getAttribute('data-subtext');config.icon = option.getAttribute('data-icon');option.liIndex = liIndex;config.display = config.content || config.text;config.type = 'option';config.index = liIndex;config.option = option;config.selected = !!option.selected;config.disabled = config.disabled || !!option.disabled;mainData.push(config);}}function addOptgroup (index,selectOptions){var optgroup = selectOptions[index],// skip placeholder option
            previous = index - 1 < startIndex ? false :selectOptions[index - 1],next = selectOptions[index + 1],options = optgroup.querySelectorAll('option' + optionSelector);if (!options.length) return;var config ={display:htmlEscape(optgroup.label),subtext:optgroup.getAttribute('data-subtext'),icon:optgroup.getAttribute('data-icon'),type:'optgroup-label',optgroupClass:' ' + (optgroup.className || '')},headerIndex,lastIndex;optID++;if (previous){addDivider({optID:optID});}config.optID = optID;mainData.push(config);for (var j = 0,len = options.length;j < len;j++){var option = options[j];if (j === 0){headerIndex = mainData.length - 1;lastIndex = headerIndex + len;}addOption(option,{headerIndex:headerIndex,lastIndex:lastIndex,optID:config.optID,optgroupClass:config.optgroupClass,disabled:optgroup.disabled});}if (next){addDivider({optID:optID});}}for (var len = selectOptions.length,i = startIndex;i < len;i++){var item = selectOptions[i];if (item.tagName !== 'OPTGROUP'){addOption(item,{});}else{addOptgroup(i,selectOptions);}}this.selectpicker.main.data = this.selectpicker.current.data = mainData;},buildList:function (){var that = this,selectData = this.selectpicker.main.data,mainElements = [],widestOptionLength = 0;if ((that.options.showTick || that.multiple) && !elementTemplates.checkMark.parentNode){elementTemplates.checkMark.className = this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark';elementTemplates.a.appendChild(elementTemplates.checkMark);}function buildElement (item){var liElement,combinedLength = 0;switch (item.type){case 'divider':liElement = generateOption.li(false,classNames.DIVIDER,(item.optID ? item.optID + 'div' :undefined));break;case 'option':liElement = generateOption.li(generateOption.a(generateOption.text.call(that,item),item.optionClass,item.inlineStyle),'',item.optID);if (liElement.firstChild){liElement.firstChild.id = that.selectId + '-' + item.index;}break;case 'optgroup-label':liElement = generateOption.li(generateOption.label.call(that,item),'dropdown-header' + item.optgroupClass,item.optID);break;}item.element = liElement;mainElements.push(liElement);// count the number of characters in the option - not perfect,but should work in most cases
        if (item.display) combinedLength += item.display.length;if (item.subtext) combinedLength += item.subtext.length;// if there is an icon,ensure this option's width is checked
        if (item.icon) combinedLength += 1;

        if (combinedLength > widestOptionLength) {
          widestOptionLength = combinedLength;

          // guess which option is the widest
          // use this when calculating menu width
          // not perfect, but it's fast,and the width will be updating accordingly when scrolling
          that.selectpicker.view.widestOption = mainElements[mainElements.length - 1];}}for (var len = selectData.length,i = 0;i < len;i++){var item = selectData[i];buildElement(item);}this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements;},findLis:function (){return this.$menuInner.find('.inner > li');},render:function (){var that = this,element = this.$element[0],// ensure titleOption is appended and selected (if necessary) before getting selectedOptions
          placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0,selectedOptions = getSelectedOptions(element,this.options.hideDisabled),selectedCount = selectedOptions.length,button = this.$button[0],buttonInner = button.querySelector('.filter-option-inner-inner'),multipleSeparator = document.createTextNode(this.options.multipleSeparator),titleFragment = elementTemplates.fragment.cloneNode(false),showCount,countMax,hasContent = false;button.classList.toggle('bs-placeholder',that.multiple ? !selectedCount :!getSelectValues(element,selectedOptions));if (!that.multiple && selectedOptions.length === 1){that.selectpicker.view.displayedValue = getSelectValues(element,selectedOptions);}if (this.options.selectedTextFormat === 'static'){titleFragment = generateOption.text.call(this,{text:this.options.title},true);}else{showCount = this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 1;// determine if the number of selected options will be shown (showCount === true)
        if (showCount){countMax = this.options.selectedTextFormat.split('>');showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2);}// only loop through all selected options if the count won't be shown
        if (showCount === false) {
          if (!placeholderSelected) {
            for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) {
              if (selectedIndex < 50) {
                var option = selectedOptions[selectedIndex],
                    thisData = this.selectpicker.main.data[option.liIndex],
                    titleOptions = {};

                if (this.multiple && selectedIndex > 0) {
                  titleFragment.appendChild(multipleSeparator.cloneNode(false));
                }

                if (option.title) {
                  titleOptions.text = option.title;
                } else if (thisData) {
                  if (thisData.content && that.options.showContent) {
                    titleOptions.content = thisData.content.toString();
                    hasContent = true;
                  } else {
                    if (that.options.showIcon) {
                      titleOptions.icon = thisData.icon;
                    }
                    if (that.options.showSubtext && !that.multiple && thisData.subtext) titleOptions.subtext = ' ' + thisData.subtext;
                    titleOptions.text = option.textContent.trim();
                  }
                }

                titleFragment.appendChild(generateOption.text.call(this, titleOptions, true));
              } else {
                break;
              }
            }

            // add ellipsis
            if (selectedCount > 49) {
              titleFragment.appendChild(document.createTextNode('...'));
            }
          }
        } else {
          var optionSelector = ':not([hidden]):not([data-hidden="true"]):not([data-divider="true"])';
          if (this.options.hideDisabled) optionSelector += ':not(:disabled)';

          // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc.
          var totalCount = this.$element[0].querySelectorAll('select > option' + optionSelector + ',optgroup' + optionSelector + ' option' + optionSelector).length,
              tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText;

          titleFragment = generateOption.text.call(this, {
            text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString())
          }, true);
        }
      }

      if (this.options.title == undefined) {
        // use .attr to ensure undefined is returned if title attribute is not set
        this.options.title = this.$element.attr('title');
      }

      // If the select doesn't have a title,then use the default,or if nothing is set at all,use noneSelectedText
      if (!titleFragment.childNodes.length){titleFragment = generateOption.text.call(this,{text:typeof this.options.title !== 'undefined' ? this.options.title :this.options.noneSelectedText},true);}// strip all HTML tags and trim the result,then unescape any escaped tags
      button.title = titleFragment.textContent.replace(/<[^>]*>?/g,'').trim();if (this.options.sanitize && hasContent){sanitizeHtml([titleFragment],that.options.whiteList,that.options.sanitizeFn);}buttonInner.innerHTML = '';buttonInner.appendChild(titleFragment);if (version.major < 4 && this.$newElement[0].classList.contains('bs3-has-addon')){var filterExpand = button.querySelector('.filter-expand'),clone = buttonInner.cloneNode(true);clone.className = 'filter-expand';if (filterExpand){button.replaceChild(clone,filterExpand);}else{button.appendChild(clone);}}this.$element.trigger('rendered' + EVENT_KEY);},setStyle:function (newStyle,status){var button = this.$button[0],newElement = this.$newElement[0],style = this.options.style.trim(),buttonClass;if (this.$element.attr('class')){this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,''));}if (version.major < 4){newElement.classList.add('bs3');if (newElement.parentNode.classList && newElement.parentNode.classList.contains('input-group') &&
            (newElement.previousElementSibling || newElement.nextElementSibling) &&
            (newElement.previousElementSibling || newElement.nextElementSibling).classList.contains('input-group-addon')){newElement.classList.add('bs3-has-addon');}}if (newStyle){buttonClass = newStyle.trim();}else{buttonClass = style;}if (status == 'add'){if (buttonClass) button.classList.add.apply(button.classList,buttonClass.split(' '));}else if (status == 'remove'){if (buttonClass) button.classList.remove.apply(button.classList,buttonClass.split(' '));}else{if (style) button.classList.remove.apply(button.classList,style.split(' '));if (buttonClass) button.classList.add.apply(button.classList,buttonClass.split(' '));}},liHeight:function (refresh){if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return;var newElement = elementTemplates.div.cloneNode(false),menu = elementTemplates.div.cloneNode(false),menuInner = elementTemplates.div.cloneNode(false),menuInnerInner = document.createElement('ul'),divider = elementTemplates.li.cloneNode(false),dropdownHeader = elementTemplates.li.cloneNode(false),li,a = elementTemplates.a.cloneNode(false),text = elementTemplates.span.cloneNode(false),header = this.options.header && this.$menu.find('.' + classNames.POPOVERHEADER).length > 0 ? this.$menu.find('.' + classNames.POPOVERHEADER)[0].cloneNode(true) :null,search = this.options.liveSearch ? elementTemplates.div.cloneNode(false) :null,actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) :null,doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) :null,firstOption = this.$element.find('option')[0];this.sizeInfo.selectWidth = this.$newElement[0].offsetWidth;text.className = 'text';a.className = 'dropdown-item ' + (firstOption ? firstOption.className :'');newElement.className = this.$menu[0].parentNode.className + ' ' + classNames.SHOW;newElement.style.width = 0;// ensure button width doesn't affect natural width of menu when calculating
      if (this.options.width === 'auto') menu.style.minWidth = 0;
      menu.className = classNames.MENU + ' ' + classNames.SHOW;
      menuInner.className = 'inner ' + classNames.SHOW;
      menuInnerInner.className = classNames.MENU + ' inner ' + (version.major === '4' ? classNames.SHOW : '');
      divider.className = classNames.DIVIDER;
      dropdownHeader.className = 'dropdown-header';

      text.appendChild(document.createTextNode('\u200b'));

      if (this.selectpicker.current.data.length) {
        for (var i = 0; i < this.selectpicker.current.data.length; i++) {
          var data = this.selectpicker.current.data[i];
          if (data.type === 'option') {
            li = data.element;
            break;
          }
        }
      } else {
        li = elementTemplates.li.cloneNode(false);
        a.appendChild(text);
        li.appendChild(a);
      }

      dropdownHeader.appendChild(text.cloneNode(true));

      if (this.selectpicker.view.widestOption) {
        menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true));
      }

      menuInnerInner.appendChild(li);
      menuInnerInner.appendChild(divider);
      menuInnerInner.appendChild(dropdownHeader);
      if (header) menu.appendChild(header);
      if (search) {
        var input = document.createElement('input');
        search.className = 'bs-searchbox';
        input.className = 'form-control';
        search.appendChild(input);
        menu.appendChild(search);
      }
      if (actions) menu.appendChild(actions);
      menuInner.appendChild(menuInnerInner);
      menu.appendChild(menuInner);
      if (doneButton) menu.appendChild(doneButton);
      newElement.appendChild(menu);

      document.body.appendChild(newElement);

      var liHeight = li.offsetHeight,
          dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0,
          headerHeight = header ? header.offsetHeight : 0,
          searchHeight = search ? search.offsetHeight : 0,
          actionsHeight = actions ? actions.offsetHeight : 0,
          doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,
          dividerHeight = $(divider).outerHeight(true),
          // fall back to jQuery if getComputedStyle is not supported
          menuStyle = window.getComputedStyle ? window.getComputedStyle(menu) : false,
          menuWidth = menu.offsetWidth,
          $menu = menuStyle ? null : $(menu),
          menuPadding = {
            vert: toInteger(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) +
                  toInteger(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) +
                  toInteger(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) +
                  toInteger(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),
            horiz: toInteger(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) +
                  toInteger(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) +
                  toInteger(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) +
                  toInteger(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))
          },
          menuExtras = {
            vert: menuPadding.vert +
                  toInteger(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +
                  toInteger(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,
            horiz: menuPadding.horiz +
                  toInteger(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) +
                  toInteger(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2
          },
          scrollBarWidth;

      menuInner.style.overflowY = 'scroll';

      scrollBarWidth = menu.offsetWidth - menuWidth;

      document.body.removeChild(newElement);

      this.sizeInfo.liHeight = liHeight;
      this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight;
      this.sizeInfo.headerHeight = headerHeight;
      this.sizeInfo.searchHeight = searchHeight;
      this.sizeInfo.actionsHeight = actionsHeight;
      this.sizeInfo.doneButtonHeight = doneButtonHeight;
      this.sizeInfo.dividerHeight = dividerHeight;
      this.sizeInfo.menuPadding = menuPadding;
      this.sizeInfo.menuExtras = menuExtras;
      this.sizeInfo.menuWidth = menuWidth;
      this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz;
      this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth;
      this.sizeInfo.scrollBarWidth = scrollBarWidth;
      this.sizeInfo.selectHeight = this.$newElement[0].offsetHeight;

      this.setPositionData();
    },

    getSelectPosition: function () {
      var that = this,
          $window = $(window),
          pos = that.$newElement.offset(),
          $container = $(that.options.container),
          containerPos;

      if (that.options.container && $container.length && !$container.is('body')) {
        containerPos = $container.offset();
        containerPos.top += parseInt($container.css('borderTopWidth'));
        containerPos.left += parseInt($container.css('borderLeftWidth'));
      } else {
        containerPos = { top: 0, left: 0 };
      }

      var winPad = that.options.windowPadding;

      this.sizeInfo.selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();
      this.sizeInfo.selectOffsetBot = $window.height() - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight - containerPos.top - winPad[2];
      this.sizeInfo.selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();
      this.sizeInfo.selectOffsetRight = $window.width() - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth - containerPos.left - winPad[1];
      this.sizeInfo.selectOffsetTop -= winPad[0];
      this.sizeInfo.selectOffsetLeft -= winPad[3];
    },

    setMenuSize: function (isAuto) {
      this.getSelectPosition();

      var selectWidth = this.sizeInfo.selectWidth,
          liHeight = this.sizeInfo.liHeight,
          headerHeight = this.sizeInfo.headerHeight,
          searchHeight = this.sizeInfo.searchHeight,
          actionsHeight = this.sizeInfo.actionsHeight,
          doneButtonHeight = this.sizeInfo.doneButtonHeight,
          divHeight = this.sizeInfo.dividerHeight,
          menuPadding = this.sizeInfo.menuPadding,
          menuInnerHeight,
          menuHeight,
          divLength = 0,
          minHeight,
          _minHeight,
          maxHeight,
          menuInnerMinHeight,
          estimate,
          isDropup;

      if (this.options.dropupAuto) {
        // Get the estimated height of the menu without scrollbars.
        // This is useful for smaller menus, where there might be plenty of room
        // below the button without setting dropup, but we can't know
        // the exact height of the menu until createView is called later
        estimate = liHeight * this.selectpicker.current.elements.length + menuPadding.vert;isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot;// ensure dropup doesn't change while searching (so menu doesn't bounce back and forth)
        if (this.selectpicker.isSearching === true){isDropup = this.selectpicker.dropup;}this.$newElement.toggleClass(classNames.DROPUP,isDropup);this.selectpicker.dropup = isDropup;}if (this.options.size === 'auto'){_minHeight = this.selectpicker.current.elements.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 :0;menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert;minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert,0);if (this.$newElement.hasClass(classNames.DROPUP)){menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert;}maxHeight = menuHeight;menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert;}else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size){for (var i = 0;i < this.options.size;i++){if (this.selectpicker.current.data[i].type === 'divider') divLength++;}menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;menuInnerHeight = menuHeight - menuPadding.vert;maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;minHeight = menuInnerMinHeight = '';}this.$menu.css({'max-height':maxHeight + 'px','overflow':'hidden','min-height':minHeight + 'px'});this.$menuInner.css({'max-height':menuInnerHeight + 'px','overflow-y':'auto','min-height':menuInnerMinHeight + 'px'});// ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView
      this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight,1);if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight){this.sizeInfo.hasScrollBar = true;this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth;}if (this.options.dropdownAlignRight === 'auto'){this.$menu.toggleClass(classNames.MENURIGHT,this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth));}if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update();},setSize:function (refresh){this.liHeight(refresh);if (this.options.header) this.$menu.css('padding-top',0);if (this.options.size !== false){var that = this,$window = $(window);this.setMenuSize();if (this.options.liveSearch){this.$searchbox
            .off('input.setMenuSize propertychange.setMenuSize')
            .on('input.setMenuSize propertychange.setMenuSize',function (){return that.setMenuSize();});}if (this.options.size === 'auto'){$window
            .off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize')
            .on('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize',function (){return that.setMenuSize();});}else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size){$window.off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize');}}this.createView(false,true,refresh);},setWidth:function (){var that = this;if (this.options.width === 'auto'){requestAnimationFrame(function (){that.$menu.css('min-width','0');that.$element.on('loaded' + EVENT_KEY,function (){that.liHeight();that.setMenuSize();// Get correct width if element is hidden
            var $selectClone = that.$newElement.clone().appendTo('body'),btnWidth = $selectClone.css('width','auto').children('button').outerWidth();$selectClone.remove();// Set width to whatever's larger, button title or longest option
            that.sizeInfo.selectWidth = Math.max(that.sizeInfo.totalMenuWidth, btnWidth);
            that.$newElement.css('width', that.sizeInfo.selectWidth + 'px');
          });
        });
      } else if (this.options.width === 'fit') {
        // Remove inline min-width so width can be changed from 'auto'
        this.$menu.css('min-width', '');
        this.$newElement.css('width', '').addClass('fit-width');
      } else if (this.options.width) {
        // Remove inline min-width so width can be changed from 'auto'
        this.$menu.css('min-width', '');
        this.$newElement.css('width', this.options.width);
      } else {
        // Remove inline min-width/width so width can be changed
        this.$menu.css('min-width', '');
        this.$newElement.css('width', '');
      }
      // Remove fit-width class if width is changed programmatically
      if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {
        this.$newElement[0].classList.remove('fit-width');
      }
    },

    selectPosition: function () {
      this.$bsContainer = $('<div class="bs-container" />');

      var that = this,
          $container = $(this.options.container),
          pos,
          containerPos,
          actualHeight,
          getPlacement = function ($element) {
            var containerPosition = {},
                // fall back to dropdown's default display setting if display is not manually set
                display = that.options.display || (// Bootstrap 3 doesn't have $.fn.dropdown.Constructor.Default
                  $.fn.dropdown.Constructor.Default ? $.fn.dropdown.Constructor.Default.display
                  : false
                );

            that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass(classNames.DROPUP, $element.hasClass(classNames.DROPUP));
            pos = $element.offset();

            if (!$container.is('body')) {
              containerPos = $container.offset();
              containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();
              containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();
            } else {
              containerPos = { top: 0, left: 0 };
            }

            actualHeight = $element.hasClass(classNames.DROPUP) ? 0 : $element[0].offsetHeight;

            // Bootstrap 4+ uses Popper for menu positioning
            if (version.major < 4 || display === 'static') {
              containerPosition.top = pos.top - containerPos.top + actualHeight;
              containerPosition.left = pos.left - containerPos.left;
            }

            containerPosition.width = $element[0].offsetWidth;

            that.$bsContainer.css(containerPosition);
          };

      this.$button.on('click.bs.dropdown.data-api', function () {
        if (that.isDisabled()) {
          return;
        }

        getPlacement(that.$newElement);

        that.$bsContainer
          .appendTo(that.options.container)
          .toggleClass(classNames.SHOW, !that.$button.hasClass(classNames.SHOW))
          .append(that.$menu);
      });

      $(window)
        .off('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId)
        .on('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId, function () {
          var isActive = that.$newElement.hasClass(classNames.SHOW);

          if (isActive) getPlacement(that.$newElement);
        });

      this.$element.on('hide' + EVENT_KEY, function () {
        that.$menu.data('height', that.$menu.height());
        that.$bsContainer.detach();
      });
    },

    setOptionStatus: function (selectedOnly) {
      var that = this;

      that.noScroll = false;

      if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) {
        for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) {
          var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0],
              option = liData.option;

          if (option) {
            if (selectedOnly !== true) {
              that.setDisabled(
                liData.index,
                liData.disabled
              );
            }

            that.setSelected(
              liData.index,
              option.selected
            );
          }
        }
      }
    },

    /**
     * @param {number} index - the index of the option that is being changed
     * @param {boolean} selected - true if the option is being selected, false if being deselected
     */
    setSelected: function (index, selected) {
      var li = this.selectpicker.main.elements[index],
          liData = this.selectpicker.main.data[index],
          activeIndexIsSet = this.activeIndex !== undefined,
          thisIsActive = this.activeIndex === index,
          prevActive,
          a,
          // if current option is already active
          // OR
          // if the current option is being selected, it's NOT multiple,and
          // activeIndex is undefined://  - when the menu is first being opened,OR
          //  - after a search has been performed,OR
          //  - when retainActive is false when selecting a new option (i.e. index of the newly selected option is not the same as the current activeIndex)
          keepActive = thisIsActive || (selected && !this.multiple && !activeIndexIsSet);liData.selected = selected;a = li.firstChild;if (selected){this.selectedIndex = index;}li.classList.toggle('selected',selected);if (keepActive){this.focusItem(li,liData);this.selectpicker.view.currentActive = li;this.activeIndex = index;}else{this.defocusItem(li);}if (a){a.classList.toggle('selected',selected);if (selected){a.setAttribute('aria-selected',true);}else{if (this.multiple){a.setAttribute('aria-selected',false);}else{a.removeAttribute('aria-selected');}}}if (!keepActive && !activeIndexIsSet && selected && this.prevActiveIndex !== undefined){prevActive = this.selectpicker.main.elements[this.prevActiveIndex];this.defocusItem(prevActive);}},setDisabled:function (index,disabled){var li = this.selectpicker.main.elements[index],a;this.selectpicker.main.data[index].disabled = disabled;a = li.firstChild;li.classList.toggle(classNames.DISABLED,disabled);if (a){if (version.major === '4') a.classList.toggle(classNames.DISABLED,disabled);if (disabled){a.setAttribute('aria-disabled',disabled);a.setAttribute('tabindex',-1);}else{a.removeAttribute('aria-disabled');a.setAttribute('tabindex',0);}}},isDisabled:function (){return this.$element[0].disabled;},checkDisabled:function (){if (this.isDisabled()){this.$newElement[0].classList.add(classNames.DISABLED);this.$button.addClass(classNames.DISABLED).attr('aria-disabled',true);}else{if (this.$button[0].classList.contains(classNames.DISABLED)){this.$newElement[0].classList.remove(classNames.DISABLED);this.$button.removeClass(classNames.DISABLED).attr('aria-disabled',false);}}},clickListener:function (){var that = this,$document = $(document);$document.data('spaceSelect',false);this.$button.on('keyup',function (e){if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')){e.preventDefault();$document.data('spaceSelect',false);}});this.$newElement.on('show.bs.dropdown',function (){if (version.major > 3 && !that.dropdown){that.dropdown = that.$button.data('bs.dropdown');that.dropdown._menu = that.$menu[0];}});this.$button.on('click.bs.dropdown.data-api',function (){if (!that.$newElement.hasClass(classNames.SHOW)){that.setSize();}});function setFocus (){if (that.options.liveSearch){that.$searchbox.trigger('focus');}else{that.$menuInner.trigger('focus');}}function checkPopperExists (){if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state.isCreated){setFocus();}else{requestAnimationFrame(checkPopperExists);}}this.$element.on('shown' + EVENT_KEY,function (){if (that.$menuInner[0].scrollTop !== that.selectpicker.view.scrollTop){that.$menuInner[0].scrollTop = that.selectpicker.view.scrollTop;}if (version.major > 3){requestAnimationFrame(checkPopperExists);}else{setFocus();}});// ensure posinset and setsize are correct before selecting an option via a click
      this.$menuInner.on('mouseenter','li a',function (e){var hoverLi = this.parentElement,position0 = that.isVirtual() ? that.selectpicker.view.position0 :0,index = Array.prototype.indexOf.call(hoverLi.parentElement.children,hoverLi),hoverData = that.selectpicker.current.data[index + position0];that.focusItem(hoverLi,hoverData,true);});this.$menuInner.on('click','li a',function (e,retainActive){var $this = $(this),element = that.$element[0],position0 = that.isVirtual() ? that.selectpicker.view.position0 :0,clickedData = that.selectpicker.current.data[$this.parent().index() + position0],clickedIndex = clickedData.index,prevValue = getSelectValues(element),prevIndex = element.selectedIndex,prevOption = element.options[prevIndex],triggerChange = true;// Don't close on multi choice menu
        if (that.multiple && that.options.maxOptions !== 1) {
          e.stopPropagation();
        }

        e.preventDefault();

        // Don't run if the select is disabled
        if (!that.isDisabled() && !$this.parent().hasClass(classNames.DISABLED)){var option = clickedData.option,$option = $(option),state = option.selected,$optgroup = $option.parent('optgroup'),$optgroupOptions = $optgroup.find('option'),maxOptions = that.options.maxOptions,maxOptionsGrp = $optgroup.data('maxOptions') || false;if (clickedIndex === that.activeIndex) retainActive = true;if (!retainActive){that.prevActiveIndex = that.activeIndex;that.activeIndex = undefined;}if (!that.multiple){// Deselect all others if not multi select box
            if (prevOption) prevOption.selected = false;option.selected = true;that.setSelected(clickedIndex,true);}else{// Toggle the one we have chosen if we are multi select.
            option.selected = !state;that.setSelected(clickedIndex,!state);that.focusedParent.focus();if (maxOptions !== false || maxOptionsGrp !== false){var maxReached = maxOptions < getSelectedOptions(element).length,maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)){if (maxOptions && maxOptions == 1){element.selectedIndex = -1;option.selected = true;that.setOptionStatus(true);}else if (maxOptionsGrp && maxOptionsGrp == 1){for (var i = 0;i < $optgroupOptions.length;i++){var _option = $optgroupOptions[i];_option.selected = false;that.setSelected(_option.liIndex,false);}option.selected = true;that.setSelected(clickedIndex,true);}else{var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText,that.options.maxOptionsText] :that.options.maxOptionsText,maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions,maxOptionsGrp) :maxOptionsText,maxTxt = maxOptionsArr[0].replace('{n}',maxOptions),maxTxtGrp = maxOptionsArr[1].replace('{n}',maxOptionsGrp),$notify = $('<div class="notify"></div>');// If{var}is set in array,replace it
                  
                  if (maxOptionsArr[2]){maxTxt = maxTxt.replace('{var}',maxOptionsArr[2][maxOptions > 1 ? 0 :1]);maxTxtGrp = maxTxtGrp.replace('{var}',maxOptionsArr[2][maxOptionsGrp > 1 ? 0 :1]);}option.selected = false;that.$menu.append($notify);if (maxOptions && maxReached){$notify.append($('<div>' + maxTxt + '</div>'));triggerChange = false;that.$element.trigger('maxReached' + EVENT_KEY);}if (maxOptionsGrp && maxReachedGrp){$notify.append($('<div>' + maxTxtGrp + '</div>'));triggerChange = false;that.$element.trigger('maxReachedGrp' + EVENT_KEY);}setTimeout(function (){that.setSelected(clickedIndex,false);},10);$notify[0].classList.add('fadeOut');setTimeout(function (){$notify.remove();},1050);}}}}if (!that.multiple || (that.multiple && that.options.maxOptions === 1)){that.$button.trigger('focus');}else if (that.options.liveSearch){that.$searchbox.trigger('focus');}// Trigger select 'change'
          if (triggerChange){if (that.multiple || prevIndex !== element.selectedIndex){// $option.prop('selected') is current option state (selected/unselected). prevValue is the value of the select prior to being changed.
              changedArguments = [option.index,$option.prop('selected'),prevValue];that.$element
                .triggerNative('change');}}}});this.$menu.on('click','li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.close)',function (e){if (e.currentTarget == this){e.preventDefault();e.stopPropagation();if (that.options.liveSearch && !$(e.target).hasClass('close')){that.$searchbox.trigger('focus');}else{that.$button.trigger('focus');}}});this.$menuInner.on('click','.divider, .dropdown-header',function (e){e.preventDefault();e.stopPropagation();if (that.options.liveSearch){that.$searchbox.trigger('focus');}else{that.$button.trigger('focus');}});this.$menu.on('click','.' + classNames.POPOVERHEADER + ' .close',function (){that.$button.trigger('click');});this.$searchbox.on('click',function (e){e.stopPropagation();});this.$menu.on('click','.actions-btn',function (e){if (that.options.liveSearch){that.$searchbox.trigger('focus');}else{that.$button.trigger('focus');}e.preventDefault();e.stopPropagation();if ($(this).hasClass('bs-select-all')){that.selectAll();}else{that.deselectAll();}});this.$button
        .on('focus' + EVENT_KEY,function (e){var tabindex = that.$element[0].getAttribute('tabindex');// only change when button is actually focused
          if (tabindex !== undefined && e.originalEvent && e.originalEvent.isTrusted){// apply select element's tabindex to ensure correct order is followed when tabbing to the next element
            this.setAttribute('tabindex', tabindex);
            // set element's tabindex to -1 to allow for reverse tabbing
            that.$element[0].setAttribute('tabindex',-1);that.selectpicker.view.tabindex = tabindex;}})
        .on('blur' + EVENT_KEY,function (e){// revert everything to original tabindex
          if (that.selectpicker.view.tabindex !== undefined && e.originalEvent && e.originalEvent.isTrusted){that.$element[0].setAttribute('tabindex',that.selectpicker.view.tabindex);this.setAttribute('tabindex',-1);that.selectpicker.view.tabindex = undefined;}});this.$element
        .on('change' + EVENT_KEY,function (){that.render();that.$element.trigger('changed' + EVENT_KEY,changedArguments);changedArguments = null;})
        .on('focus' + EVENT_KEY,function (){if (!that.options.mobile) that.$button[0].focus();});},liveSearchListener:function (){var that = this;this.$button.on('click.bs.dropdown.data-api',function (){if (!!that.$searchbox.val()){that.$searchbox.val('');that.selectpicker.search.previousValue = undefined;}});this.$searchbox.on('click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api',function (e){e.stopPropagation();});this.$searchbox.on('input propertychange',function (){var searchValue = that.$searchbox[0].value;that.selectpicker.search.elements = [];that.selectpicker.search.data = [];if (searchValue){var i,searchMatch = [],q = searchValue.toUpperCase(),cache ={},cacheArr = [],searchStyle = that._searchStyle(),normalizeSearch = that.options.liveSearchNormalize;if (normalizeSearch) q = normalizeToBase(q);for (var i = 0;i < that.selectpicker.main.data.length;i++){var li = that.selectpicker.main.data[i];if (!cache[i]){cache[i] = stringSearch(li,q,searchStyle,normalizeSearch);}if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1){if (li.headerIndex > 0){cache[li.headerIndex - 1] = true;cacheArr.push(li.headerIndex - 1);}cache[li.headerIndex] = true;cacheArr.push(li.headerIndex);cache[li.lastIndex + 1] = true;}if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i);}for (var i = 0,cacheLen = cacheArr.length;i < cacheLen;i++){var index = cacheArr[i],prevIndex = cacheArr[i - 1],li = that.selectpicker.main.data[index],liPrev = that.selectpicker.main.data[prevIndex];if (li.type !== 'divider' || (li.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== i)){that.selectpicker.search.data.push(li);searchMatch.push(that.selectpicker.main.elements[index]);}}that.activeIndex = undefined;that.noScroll = true;that.$menuInner.scrollTop(0);that.selectpicker.search.elements = searchMatch;that.createView(true);showNoResults.call(that,searchMatch,searchValue);}else if (that.selectpicker.search.previousValue){// for IE11 (#2402)
          that.$menuInner.scrollTop(0);that.createView(false);}that.selectpicker.search.previousValue =  searchValue;});},_searchStyle:function (){return this.options.liveSearchStyle || 'contains';},val:function (value){var element = this.$element[0];if (typeof value !== 'undefined'){var prevValue = getSelectValues(element);changedArguments = [null,null,prevValue];this.$element
          .val(value)
          .trigger('changed' + EVENT_KEY,changedArguments);if (this.$newElement.hasClass(classNames.SHOW)){if (this.multiple){this.setOptionStatus(true);}else{var liSelectedIndex = (element.options[element.selectedIndex] ||{}).liIndex;if (typeof liSelectedIndex === 'number'){this.setSelected(this.selectedIndex,false);this.setSelected(liSelectedIndex,true);}}}this.render();changedArguments = null;return this.$element;}else{return this.$element.val();}},changeAll:function (status){if (!this.multiple) return;if (typeof status === 'undefined') status = true;var element = this.$element[0],previousSelected = 0,currentSelected = 0,prevValue = getSelectValues(element);element.classList.add('bs-select-hidden');for (var i = 0,data = this.selectpicker.current.data,len = data.length;i < len;i++){var liData = data[i],option = liData.option;if (option && !liData.disabled && liData.type !== 'divider'){if (liData.selected) previousSelected++;option.selected = status;if (status === true) currentSelected++;}}element.classList.remove('bs-select-hidden');if (previousSelected === currentSelected) return;this.setOptionStatus();changedArguments = [null,null,prevValue];this.$element
        .triggerNative('change');},selectAll:function (){return this.changeAll(true);},deselectAll:function (){return this.changeAll(false);},toggle:function (e){e = e || window.event;if (e) e.stopPropagation();this.$button.trigger('click.bs.dropdown.data-api');},keydown:function (e){var $this = $(this),isToggle = $this.hasClass('dropdown-toggle'),$parent = isToggle ? $this.closest('.dropdown') :$this.closest(Selector.MENU),that = $parent.data('this'),$items = that.findLis(),index,isActive,liActive,activeLi,offset,updateScroll = false,downOnTab = e.which === keyCodes.TAB && !isToggle && !that.options.selectOnTab,isArrowKey = REGEXP_ARROW.test(e.which) || downOnTab,scrollTop = that.$menuInner[0].scrollTop,isVirtual = that.isVirtual(),position0 = isVirtual === true ? that.selectpicker.view.position0 :0;// do nothing if a function key is pressed
      if (e.which >= 112 && e.which <= 123) return;isActive = that.$newElement.hasClass(classNames.SHOW);if (!isActive &&
        (isArrowKey ||
          (e.which >= 48 && e.which <= 57) ||
          (e.which >= 96 && e.which <= 105) ||
          (e.which >= 65 && e.which <= 90))){that.$button.trigger('click.bs.dropdown.data-api');if (that.options.liveSearch){that.$searchbox.trigger('focus');return;}}if (e.which === keyCodes.ESCAPE && isActive){e.preventDefault();that.$button.trigger('click.bs.dropdown.data-api').trigger('focus');}if (isArrowKey){// if up or down
        if (!$items.length) return;liActive = that.selectpicker.main.elements[that.activeIndex];index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children,liActive) :-1;if (index !== -1){that.defocusItem(liActive);}if (e.which === keyCodes.ARROW_UP){// up
          if (index !== -1) index--;if (index + position0 < 0) index += $items.length;if (!that.selectpicker.view.canHighlight[index + position0]){index = that.selectpicker.view.canHighlight.slice(0,index + position0).lastIndexOf(true) - position0;if (index === -1) index = $items.length - 1;}}else if (e.which === keyCodes.ARROW_DOWN || downOnTab){// down
          index++;if (index + position0 >= that.selectpicker.view.canHighlight.length) index = that.selectpicker.view.firstHighlightIndex;if (!that.selectpicker.view.canHighlight[index + position0]){index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true);}}e.preventDefault();var liActiveIndex = position0 + index;if (e.which === keyCodes.ARROW_UP){// up
          // scroll to bottom and highlight last option
          if (position0 === 0 && index === $items.length - 1){that.$menuInner[0].scrollTop = that.$menuInner[0].scrollHeight;liActiveIndex = that.selectpicker.current.elements.length - 1;}else{activeLi = that.selectpicker.current.data[liActiveIndex];offset = activeLi.position - activeLi.height;updateScroll = offset < scrollTop;}}else if (e.which === keyCodes.ARROW_DOWN || downOnTab){// down
          // scroll to top and highlight first option
          if (index === that.selectpicker.view.firstHighlightIndex){that.$menuInner[0].scrollTop = 0;liActiveIndex = that.selectpicker.view.firstHighlightIndex;}else{activeLi = that.selectpicker.current.data[liActiveIndex];offset = activeLi.position - that.sizeInfo.menuInnerHeight;updateScroll = offset > scrollTop;}}liActive = that.selectpicker.current.elements[liActiveIndex];that.activeIndex = that.selectpicker.current.data[liActiveIndex].index;that.focusItem(liActive);that.selectpicker.view.currentActive = liActive;if (updateScroll) that.$menuInner[0].scrollTop = offset;if (that.options.liveSearch){that.$searchbox.trigger('focus');}else{$this.trigger('focus');}}else if ((!$this.is('input') && !REGEXP_TAB_OR_ESCAPE.test(e.which)) ||
        (e.which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory)){var searchMatch,matches = [],keyHistory;e.preventDefault();that.selectpicker.keydown.keyHistory += keyCodeMap[e.which];if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel);that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start();keyHistory = that.selectpicker.keydown.keyHistory;// if all letters are the same,set keyHistory to just the first character when searching
        if (/^(.)\1+$/.test(keyHistory)){keyHistory = keyHistory.charAt(0);}// find matches
        for (var i = 0;i < that.selectpicker.current.data.length;i++){var li = that.selectpicker.current.data[i],hasMatch;hasMatch = stringSearch(li,keyHistory,'startsWith',true);if (hasMatch && that.selectpicker.view.canHighlight[i]){matches.push(li.index);}}if (matches.length){var matchIndex = 0;$items.removeClass('active').find('a').removeClass('active');// either only one key has been pressed or they are all the same key
          if (keyHistory.length === 1){matchIndex = matches.indexOf(that.activeIndex);if (matchIndex === -1 || matchIndex === matches.length - 1){matchIndex = 0;}else{matchIndex++;}}searchMatch = matches[matchIndex];activeLi = that.selectpicker.main.data[searchMatch];if (scrollTop - activeLi.position > 0){offset = activeLi.position - activeLi.height;updateScroll = true;}else{offset = activeLi.position - that.sizeInfo.menuInnerHeight;// if the option is already visible at the current scroll position,just keep it the same
            updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight;}liActive = that.selectpicker.main.elements[searchMatch];that.activeIndex = matches[matchIndex];that.focusItem(liActive);if (liActive) liActive.firstChild.focus();if (updateScroll) that.$menuInner[0].scrollTop = offset;$this.trigger('focus');}}// Select focused option if "Enter","Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu.
      if (isActive &&
        ((e.which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) ||
          e.which === keyCodes.ENTER ||
          (e.which === keyCodes.TAB && that.options.selectOnTab))){if (e.which !== keyCodes.SPACE) e.preventDefault();if (!that.options.liveSearch || e.which !== keyCodes.SPACE){that.$menuInner.find('.active a').trigger('click',true);// retain active class
          $this.trigger('focus');if (!that.options.liveSearch){// Prevent screen from scrolling if the user hits the spacebar
            e.preventDefault();// Fixes spacebar selection of dropdown items in FF & IE
            $(document).data('spaceSelect',true);}}}},mobile:function (){// ensure mobile is set to true if mobile function is called after init
      this.options.mobile = true;this.$element[0].classList.add('mobile-device');},refresh:function (){// update options if data attributes have been changed
      var config = $.extend({},this.options,this.$element.data());this.options = config;this.checkDisabled();this.buildData();this.setStyle();this.render();this.buildList();this.setWidth();this.setSize(true);this.$element.trigger('refreshed' + EVENT_KEY);},hide:function (){this.$newElement.hide();},show:function (){this.$newElement.show();},remove:function (){this.$newElement.remove();this.$element.remove();},destroy:function (){this.$newElement.before(this.$element).remove();if (this.$bsContainer){this.$bsContainer.remove();}else{this.$menu.remove();}if (this.selectpicker.view.titleOption && this.selectpicker.view.titleOption.parentNode){this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption);}this.$element
        .off(EVENT_KEY)
        .removeData('selectpicker')
        .removeClass('bs-select-hidden selectpicker');$(window).off(EVENT_KEY + '.' + this.selectId);}};// SELECTPICKER PLUGIN DEFINITION
  // ==============================
  function Plugin (option){// get the args of the outer function..
    var args = arguments;// The arguments of the function are explicitly re-defined from the argument list,because the shift causes them
    // to get lost/corrupted in android 2.3 and IE9 #715 #775
    var _option = option;[].shift.apply(args);// if the version was not set successfully
    if (!version.success){// try to retreive it again
      try{version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.');}catch (err){// fall back to use BootstrapVersion if set
        if (Selectpicker.BootstrapVersion){version.full = Selectpicker.BootstrapVersion.split(' ')[0].split('.');}else{version.full = [version.major,'0','0'];console.warn('There was an issue retrieving Bootstrap\'s version. ' +
            'Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. ' +
            'If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.',err);}}version.major = version.full[0];version.success = true;}if (version.major === '4'){// some defaults need to be changed if using Bootstrap 4
      // check to see if they have already been manually changed before forcing them to update
      var toUpdate = [];if (Selectpicker.DEFAULTS.style === classNames.BUTTONCLASS) toUpdate.push({name:'style',className:'BUTTONCLASS'});if (Selectpicker.DEFAULTS.iconBase === classNames.ICONBASE) toUpdate.push({name:'iconBase',className:'ICONBASE'});if (Selectpicker.DEFAULTS.tickIcon === classNames.TICKICON) toUpdate.push({name:'tickIcon',className:'TICKICON'});classNames.DIVIDER = 'dropdown-divider';classNames.SHOW = 'show';classNames.BUTTONCLASS = 'btn-light';classNames.POPOVERHEADER = 'popover-header';classNames.ICONBASE = '';classNames.TICKICON = 'bs-ok-default';for (var i = 0;i < toUpdate.length;i++){var option = toUpdate[i];Selectpicker.DEFAULTS[option.name] = classNames[option.className];}}var value;var chain = this.each(function (){var $this = $(this);if ($this.is('select')){var data = $this.data('selectpicker'),options = typeof _option == 'object' && _option;if (!data){var dataAttributes = $this.data();for (var dataAttr in dataAttributes){if (Object.prototype.hasOwnProperty.call(dataAttributes,dataAttr) && $.inArray(dataAttr,DISALLOWED_ATTRIBUTES) !== -1){delete dataAttributes[dataAttr];}}var config = $.extend({},Selectpicker.DEFAULTS,$.fn.selectpicker.defaults ||{},dataAttributes,options);config.template = $.extend({},Selectpicker.DEFAULTS.template,($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template :{}),dataAttributes.template,options.template);$this.data('selectpicker',(data = new Selectpicker(this,config)));}else if (options){for (var i in options){if (Object.prototype.hasOwnProperty.call(options,i)){data.options[i] = options[i];}}}if (typeof _option == 'string'){if (data[_option] instanceof Function){value = data[_option].apply(data,args);}else{value = data.options[_option];}}}});if (typeof value !== 'undefined'){// noinspection JSUnusedAssignment
      return value;}else{return chain;}}var old = $.fn.selectpicker;$.fn.selectpicker = Plugin;$.fn.selectpicker.Constructor = Selectpicker;// SELECTPICKER NO CONFLICT
  // ========================
  $.fn.selectpicker.noConflict = function (){$.fn.selectpicker = old;return this;};// get Bootstrap's keydown event handler for either Bootstrap 4 or Bootstrap 3
  function keydownHandler () {
    if ($.fn.dropdown) {
      // wait to define until function is called in case Bootstrap isn't loaded yet
      var bootstrapKeydown = $.fn.dropdown.Constructor._dataApiKeydownHandler || $.fn.dropdown.Constructor.prototype.keydown;return bootstrapKeydown.apply(this,arguments);}}$(document)
    .off('keydown.bs.dropdown.data-api')
    .on('keydown.bs.dropdown.data-api',':not(.bootstrap-select) > [data-toggle="dropdown"]',keydownHandler)
    .on('keydown.bs.dropdown.data-api',':not(.bootstrap-select) > .dropdown-menu',keydownHandler)
    .on('keydown' + EVENT_KEY,'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',Selectpicker.prototype.keydown)
    .on('focusin.modal','.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',function (e){e.stopPropagation();});// SELECTPICKER DATA-API
  // =====================
  $(window).on('load' + EVENT_KEY + '.data-api',function (){$('.selectpicker').each(function (){var $selectpicker = $(this);Plugin.call($selectpicker,$selectpicker.data());})});})(jQuery);}));//# sourceMappingURL=bootstrap-select.js.mapvar __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function (root,factory){if (root === undefined && window !== undefined) root = window;if (true){// AMD. Register as an anonymous module unless amdModuleId is set
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(23)],__WEBPACK_AMD_DEFINE_RESULT__ = (function (a0){return (factory(a0));}).apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));}else{}}(this,function (jQuery){(function ($){$.fn.selectpicker.defaults ={noneSelectedText:'Aucune sélection',noneResultsText:'Aucun résultat pour {0}',countSelectedText:function (numSelected,numTotal){return (numSelected > 1) ? '{0} éléments sélectionnés' :'{0} élément sélectionné';},maxOptionsText:function (numAll,numGroup){return [
        (numAll > 1) ? 'Limite atteinte ({n} éléments max)' :'Limite atteinte ({n} élément max)',(numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' :'Limite du groupe atteinte ({n} élément max)'
      ];},multipleSeparator:', ',selectAllText:'Tout sélectionner',deselectAllText:'Tout désélectionner'};})(jQuery);}));//# sourceMappingURL=defaults-fr_FR.js.map__webpack_require__.r(__webpack_exports__);(function($){var air_datepicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(261);var air_datepicker__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(air_datepicker__WEBPACK_IMPORTED_MODULE_0__);var air_datepicker_dist_js_i18n_datepicker_fr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(266);var air_datepicker_dist_js_i18n_datepicker_fr__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(air_datepicker_dist_js_i18n_datepicker_fr__WEBPACK_IMPORTED_MODULE_1__);var air_datepicker_dist_js_i18n_datepicker_en__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(267);var air_datepicker_dist_js_i18n_datepicker_en__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(air_datepicker_dist_js_i18n_datepicker_en__WEBPACK_IMPORTED_MODULE_2__);$('.datebox').datepicker({onShow:function onShow(dp,animationCompleted){dp.$el.parent().find('i[class^=ico]').css({'-webkit-transform':'translateY(-50%) rotate(180deg)','-moz-transform':'translateY(-50%) rotate(180deg)','-ms-transform':'translateY(-50%) rotate(180deg)','-o-transform':'translateY(-50%) rotate(180deg)','transform':'translateY(-50%) rotate(180deg)'});},onHide:function onHide(dp,animationCompleted){dp.$el.parent().find('i[class^=ico]').css({'-webkit-transform':'translateY(-50%) rotate(0deg)','-moz-transform':'translateY(-50%) rotate(0deg)','-ms-transform':'translateY(-50%) rotate(0deg)','-o-transform':'translateY(-50%) rotate(0deg)','transform':'translateY(-50%) rotate(0deg)'});}});}.call(this,__webpack_require__(23)))__webpack_require__(262);__webpack_require__(263);__webpack_require__(264);__webpack_require__(265);(function($){;(function (){var VERSION = '2.2.3',pluginName = 'datepicker',autoInitSelector = '.datepicker-here',$body,$datepickersContainer,containerBuilt = false,baseTemplate = '' +
            '<div class="datepicker">' +
            '<i class="datepicker--pointer"></i>' +
            '<nav class="datepicker--nav"></nav>' +
            '<div class="datepicker--content"></div>' +
            '</div>',defaults ={classes:'',inline:false,language:'ru',startDate:new Date(),firstDay:'',weekends:[6,0],dateFormat:'',altField:'',altFieldDateFormat:'@',toggleSelected:true,keyboardNav:true,position:'bottom left',offset:12,view:'days',minView:'days',showOtherMonths:true,selectOtherMonths:true,moveToOtherMonthsOnSelect:true,showOtherYears:true,selectOtherYears:true,moveToOtherYearsOnSelect:true,minDate:'',maxDate:'',disableNavWhenOutOfRange:true,multipleDates:false,// Boolean or Number
            multipleDatesSeparator:',',range:false,todayButton:false,clearButton:false,showEvent:'focus',autoClose:false,// navigation
            monthsField:'monthsShort',prevHtml:'<svg><path d="M 17,12 l -5,5 l 5,5"></path></svg>',nextHtml:'<svg><path d="M 14,12 l 5,5 l -5,5"></path></svg>',navTitles:{days:'MM, <i>yyyy</i>',months:'yyyy',years:'yyyy1 - yyyy2'},// timepicker
            timepicker:false,onlyTimepicker:false,dateTimeSeparator:' ',timeFormat:'',minHours:0,maxHours:24,minMinutes:0,maxMinutes:59,hoursStep:1,minutesStep:1,// events
            onSelect:'',onShow:'',onHide:'',onChangeMonth:'',onChangeYear:'',onChangeDecade:'',onChangeView:'',onRenderCell:''},hotKeys ={'ctrlRight':[17,39],'ctrlUp':[17,38],'ctrlLeft':[17,37],'ctrlDown':[17,40],'shiftRight':[16,39],'shiftUp':[16,38],'shiftLeft':[16,37],'shiftDown':[16,40],'altUp':[18,38],'altRight':[18,39],'altLeft':[18,37],'altDown':[18,40],'ctrlShiftUp':[16,17,38]},datepicker;var Datepicker  = function (el,options){this.el = el;this.$el = $(el);this.opts = $.extend(true,{},defaults,options,this.$el.data());if ($body == undefined){$body = $('body');}if (!this.opts.startDate){this.opts.startDate = new Date();}if (this.el.nodeName == 'INPUT'){this.elIsInput = true;}if (this.opts.altField){this.$altField = typeof this.opts.altField == 'string' ? $(this.opts.altField) :this.opts.altField;}this.inited = false;this.visible = false;this.silent = false;// Need to prevent unnecessary rendering

        this.currentDate = this.opts.startDate;this.currentView = this.opts.view;this._createShortCuts();this.selectedDates = [];this.views ={};this.keys = [];this.minRange = '';this.maxRange = '';this._prevOnSelectValue = '';this.init()};datepicker = Datepicker;datepicker.prototype ={VERSION:VERSION,viewIndexes:['days','months','years'],init:function (){if (!containerBuilt && !this.opts.inline && this.elIsInput){this._buildDatepickersContainer();}this._buildBaseHtml();this._defineLocale(this.opts.language);this._syncWithMinMaxDates();if (this.elIsInput){if (!this.opts.inline){// Set extra classes for proper transitions
                    this._setPositionClasses(this.opts.position);this._bindEvents()}if (this.opts.keyboardNav && !this.opts.onlyTimepicker){this._bindKeyboardEvents();}this.$datepicker.on('mousedown',this._onMouseDownDatepicker.bind(this));this.$datepicker.on('mouseup',this._onMouseUpDatepicker.bind(this));}if (this.opts.classes){this.$datepicker.addClass(this.opts.classes)}if (this.opts.timepicker){this.timepicker = new $.fn.datepicker.Timepicker(this,this.opts);this._bindTimepickerEvents();}if (this.opts.onlyTimepicker){this.$datepicker.addClass('-only-timepicker-');}this.views[this.currentView] = new $.fn.datepicker.Body(this,this.currentView,this.opts);this.views[this.currentView].show();this.nav = new $.fn.datepicker.Navigation(this,this.opts);this.view = this.currentView;this.$el.on('clickCell.adp',this._onClickCell.bind(this));this.$datepicker.on('mouseenter','.datepicker--cell',this._onMouseEnterCell.bind(this));this.$datepicker.on('mouseleave','.datepicker--cell',this._onMouseLeaveCell.bind(this));this.inited = true;},_createShortCuts:function (){this.minDate = this.opts.minDate ? this.opts.minDate :new Date(-8639999913600000);this.maxDate = this.opts.maxDate ? this.opts.maxDate :new Date(8639999913600000);},_bindEvents :function (){this.$el.on(this.opts.showEvent + '.adp',this._onShowEvent.bind(this));this.$el.on('mouseup.adp',this._onMouseUpEl.bind(this));this.$el.on('blur.adp',this._onBlur.bind(this));this.$el.on('keyup.adp',this._onKeyUpGeneral.bind(this));$(window).on('resize.adp',this._onResize.bind(this));$('body').on('mouseup.adp',this._onMouseUpBody.bind(this));},_bindKeyboardEvents:function (){this.$el.on('keydown.adp',this._onKeyDown.bind(this));this.$el.on('keyup.adp',this._onKeyUp.bind(this));this.$el.on('hotKey.adp',this._onHotKey.bind(this));},_bindTimepickerEvents:function (){this.$el.on('timeChange.adp',this._onTimeChange.bind(this));},isWeekend:function (day){return this.opts.weekends.indexOf(day) !== -1;},_defineLocale:function (lang){if (typeof lang == 'string'){this.loc = $.fn.datepicker.language[lang];if (!this.loc){console.warn('Can\'t find language "' + lang + '" in Datepicker.language, will use "ru" instead');this.loc = $.extend(true,{},$.fn.datepicker.language.ru)}this.loc = $.extend(true,{},$.fn.datepicker.language.ru,$.fn.datepicker.language[lang])}else{this.loc = $.extend(true,{},$.fn.datepicker.language.ru,lang)}if (this.opts.dateFormat){this.loc.dateFormat = this.opts.dateFormat}if (this.opts.timeFormat){this.loc.timeFormat = this.opts.timeFormat}if (this.opts.firstDay !== ''){this.loc.firstDay = this.opts.firstDay}if (this.opts.timepicker){this.loc.dateFormat = [this.loc.dateFormat,this.loc.timeFormat].join(this.opts.dateTimeSeparator);}if (this.opts.onlyTimepicker){this.loc.dateFormat = this.loc.timeFormat;}var boundary = this._getWordBoundaryRegExp;if (this.loc.timeFormat.match(boundary('aa')) ||
                this.loc.timeFormat.match(boundary('AA'))){this.ampm = true;}},_buildDatepickersContainer:function (){containerBuilt = true;$body.append('<div class="datepickers-container" id="datepickers-container"></div>');$datepickersContainer = $('#datepickers-container');},_buildBaseHtml:function (){var $appendTarget,$inline = $('<div class="datepicker-inline">');if(this.el.nodeName == 'INPUT'){if (!this.opts.inline){$appendTarget = $datepickersContainer;}else{$appendTarget = $inline.insertAfter(this.$el)}}else{$appendTarget = $inline.appendTo(this.$el)}this.$datepicker = $(baseTemplate).appendTo($appendTarget);this.$content = $('.datepicker--content',this.$datepicker);this.$nav = $('.datepicker--nav',this.$datepicker);},_triggerOnChange:function (){if (!this.selectedDates.length){// Prevent from triggering multiple onSelect callback with same argument (empty string) in IE10-11
                if (this._prevOnSelectValue === '') return;this._prevOnSelectValue = '';return this.opts.onSelect('','',this);}var selectedDates = this.selectedDates,parsedSelected = datepicker.getParsedDate(selectedDates[0]),formattedDates,_this = this,dates = new Date(parsedSelected.year,parsedSelected.month,parsedSelected.date,parsedSelected.hours,parsedSelected.minutes);formattedDates = selectedDates.map(function (date){return _this.formatDate(_this.loc.dateFormat,date)}).join(this.opts.multipleDatesSeparator);// Create new dates array,to separate it from original selectedDates
            if (this.opts.multipleDates || this.opts.range){dates = selectedDates.map(function(date){var parsedDate = datepicker.getParsedDate(date);return new Date(parsedDate.year,parsedDate.month,parsedDate.date,parsedDate.hours,parsedDate.minutes);})}this._prevOnSelectValue = formattedDates;this.opts.onSelect(formattedDates,dates,this);},next:function (){var d = this.parsedDate,o = this.opts;switch (this.view){case 'days':this.date = new Date(d.year,d.month + 1,1);if (o.onChangeMonth) o.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case 'months':this.date = new Date(d.year + 1,d.month,1);if (o.onChangeYear) o.onChangeYear(this.parsedDate.year);break;case 'years':this.date = new Date(d.year + 10,0,1);if (o.onChangeDecade) o.onChangeDecade(this.curDecade);break;}},prev:function (){var d = this.parsedDate,o = this.opts;switch (this.view){case 'days':this.date = new Date(d.year,d.month - 1,1);if (o.onChangeMonth) o.onChangeMonth(this.parsedDate.month,this.parsedDate.year);break;case 'months':this.date = new Date(d.year - 1,d.month,1);if (o.onChangeYear) o.onChangeYear(this.parsedDate.year);break;case 'years':this.date = new Date(d.year - 10,0,1);if (o.onChangeDecade) o.onChangeDecade(this.curDecade);break;}},formatDate:function (string,date){date = date || this.date;var result = string,boundary = this._getWordBoundaryRegExp,locale = this.loc,leadingZero = datepicker.getLeadingZeroNum,decade = datepicker.getDecade(date),d = datepicker.getParsedDate(date),fullHours = d.fullHours,hours = d.hours,ampm = string.match(boundary('aa')) || string.match(boundary('AA')),dayPeriod = 'am',replacer = this._replacer,validHours;if (this.opts.timepicker && this.timepicker && ampm){validHours = this.timepicker._getValidHoursFromDate(date,ampm);fullHours = leadingZero(validHours.hours);hours = validHours.hours;dayPeriod = validHours.dayPeriod;}switch (true){case /@/.test(result):result = result.replace(/@/,date.getTime());case /aa/.test(result):result = replacer(result,boundary('aa'),dayPeriod);case /AA/.test(result):result = replacer(result,boundary('AA'),dayPeriod.toUpperCase());case /dd/.test(result):result = replacer(result,boundary('dd'),d.fullDate);case /d/.test(result):result = replacer(result,boundary('d'),d.date);case /DD/.test(result):result = replacer(result,boundary('DD'),locale.days[d.day]);case /D/.test(result):result = replacer(result,boundary('D'),locale.daysShort[d.day]);case /mm/.test(result):result = replacer(result,boundary('mm'),d.fullMonth);case /m/.test(result):result = replacer(result,boundary('m'),d.month + 1);case /MM/.test(result):result = replacer(result,boundary('MM'),this.loc.months[d.month]);case /M/.test(result):result = replacer(result,boundary('M'),locale.monthsShort[d.month]);case /ii/.test(result):result = replacer(result,boundary('ii'),d.fullMinutes);case /i/.test(result):result = replacer(result,boundary('i'),d.minutes);case /hh/.test(result):result = replacer(result,boundary('hh'),fullHours);case /h/.test(result):result = replacer(result,boundary('h'),hours);case /yyyy/.test(result):result = replacer(result,boundary('yyyy'),d.year);case /yyyy1/.test(result):result = replacer(result,boundary('yyyy1'),decade[0]);case /yyyy2/.test(result):result = replacer(result,boundary('yyyy2'),decade[1]);case /yy/.test(result):result = replacer(result,boundary('yy'),d.year.toString().slice(-2));}return result;},_replacer:function (str,reg,data){return str.replace(reg,function (match,p1,p2,p3){return p1 + data + p3;})},_getWordBoundaryRegExp:function (sign){var symbols = '\\s|\\.|-|/|\\\\|,|\\$|\\!|\\?|:|;';return new RegExp('(^|>|' + symbols + ')(' + sign + ')($|<|' + symbols + ')','g');},selectDate:function (date){var _this = this,opts = _this.opts,d = _this.parsedDate,selectedDates = _this.selectedDates,len = selectedDates.length,newDate = '';if (Array.isArray(date)){date.forEach(function (d){_this.selectDate(d)});return;}if (!(date instanceof Date)) return;this.lastSelectedDate = date;// Set new time values from Date
            if (this.timepicker){this.timepicker._setTime(date);}// On this step timepicker will set valid values in it's instance
            _this._trigger('selectDate', date);

            // Set correct time values after timepicker's validation
            // Prevent from setting hours or minutes which values are lesser then `min` value or
            // greater then `max` value
            if (this.timepicker){date.setHours(this.timepicker.hours);date.setMinutes(this.timepicker.minutes)}if (_this.view == 'days'){if (date.getMonth() != d.month && opts.moveToOtherMonthsOnSelect){newDate = new Date(date.getFullYear(),date.getMonth(),1);}}if (_this.view == 'years'){if (date.getFullYear() != d.year && opts.moveToOtherYearsOnSelect){newDate = new Date(date.getFullYear(),0,1);}}if (newDate){_this.silent = true;_this.date = newDate;_this.silent = false;_this.nav._render()}if (opts.multipleDates && !opts.range){// Set priority to range functionality
                if (len === opts.multipleDates) return;if (!_this._isSelected(date)){_this.selectedDates.push(date);}}else if (opts.range){if (len == 2){_this.selectedDates = [date];_this.minRange = date;_this.maxRange = '';}else if (len == 1){_this.selectedDates.push(date);if (!_this.maxRange){_this.maxRange = date;}else{_this.minRange = date;}// Swap dates if they were selected via dp.selectDate() and second date was smaller then first
                    if (datepicker.bigger(_this.maxRange,_this.minRange)){_this.maxRange = _this.minRange;_this.minRange = date;}_this.selectedDates = [_this.minRange,_this.maxRange]}else{_this.selectedDates = [date];_this.minRange = date;}}else{_this.selectedDates = [date];}_this._setInputValue();if (opts.onSelect){_this._triggerOnChange();}if (opts.autoClose && !this.timepickerIsActive){if (!opts.multipleDates && !opts.range){_this.hide();}else if (opts.range && _this.selectedDates.length == 2){_this.hide();}}_this.views[this.currentView]._render()},removeDate:function (date){var selected = this.selectedDates,_this = this;if (!(date instanceof Date)) return;return selected.some(function (curDate,i){if (datepicker.isSame(curDate,date)){selected.splice(i,1);if (!_this.selectedDates.length){_this.minRange = '';_this.maxRange = '';_this.lastSelectedDate = '';}else{_this.lastSelectedDate = _this.selectedDates[_this.selectedDates.length - 1];}_this.views[_this.currentView]._render();_this._setInputValue();if (_this.opts.onSelect){_this._triggerOnChange();}return true}})},today:function (){this.silent = true;this.view = this.opts.minView;this.silent = false;this.date = new Date();if (this.opts.todayButton instanceof Date){this.selectDate(this.opts.todayButton)}},clear:function (){this.selectedDates = [];this.minRange = '';this.maxRange = '';this.views[this.currentView]._render();this._setInputValue();if (this.opts.onSelect){this._triggerOnChange()}},update:function (param,value){var len = arguments.length,lastSelectedDate = this.lastSelectedDate;if (len == 2){this.opts[param] = value;}else if (len == 1 && typeof param == 'object'){this.opts = $.extend(true,this.opts,param)}this._createShortCuts();this._syncWithMinMaxDates();this._defineLocale(this.opts.language);this.nav._addButtonsIfNeed();if (!this.opts.onlyTimepicker) this.nav._render();this.views[this.currentView]._render();if (this.elIsInput && !this.opts.inline){this._setPositionClasses(this.opts.position);if (this.visible){this.setPosition(this.opts.position)}}if (this.opts.classes){this.$datepicker.addClass(this.opts.classes)}if (this.opts.onlyTimepicker){this.$datepicker.addClass('-only-timepicker-');}if (this.opts.timepicker){if (lastSelectedDate) this.timepicker._handleDate(lastSelectedDate);this.timepicker._updateRanges();this.timepicker._updateCurrentTime();// Change hours and minutes if it's values have been changed through min/max hours/minutes
                if (lastSelectedDate) {
                    lastSelectedDate.setHours(this.timepicker.hours);
                    lastSelectedDate.setMinutes(this.timepicker.minutes);
                }
            }

            this._setInputValue();

            return this;
        },

        _syncWithMinMaxDates: function () {
            var curTime = this.date.getTime();
            this.silent = true;
            if (this.minTime > curTime) {
                this.date = this.minDate;
            }

            if (this.maxTime < curTime) {
                this.date = this.maxDate;
            }
            this.silent = false;
        },

        _isSelected: function (checkDate, cellType) {
            var res = false;
            this.selectedDates.some(function (date) {
                if (datepicker.isSame(date, checkDate, cellType)) {
                    res = date;
                    return true;
                }
            });
            return res;
        },

        _setInputValue: function () {
            var _this = this,
                opts = _this.opts,
                format = _this.loc.dateFormat,
                altFormat = opts.altFieldDateFormat,
                value = _this.selectedDates.map(function (date) {
                    return _this.formatDate(format, date)
                }),
                altValues;

            if (opts.altField && _this.$altField.length) {
                altValues = this.selectedDates.map(function (date) {
                    return _this.formatDate(altFormat, date)
                });
                altValues = altValues.join(this.opts.multipleDatesSeparator);
                this.$altField.val(altValues);
            }

            value = value.join(this.opts.multipleDatesSeparator);

            this.$el.val(value)
        },

        /**
         * Check if date is between minDate and maxDate
         * @param date {object} - date object
         * @param type {string} - cell type
         * @returns {boolean}
         * @private
         */
        _isInRange: function (date, type) {
            var time = date.getTime(),
                d = datepicker.getParsedDate(date),
                min = datepicker.getParsedDate(this.minDate),
                max = datepicker.getParsedDate(this.maxDate),
                dMinTime = new Date(d.year, d.month, min.date).getTime(),
                dMaxTime = new Date(d.year, d.month, max.date).getTime(),
                types = {
                    day: time >= this.minTime && time <= this.maxTime,
                    month: dMinTime >= this.minTime && dMaxTime <= this.maxTime,
                    year: d.year >= min.year && d.year <= max.year
                };
            return type ? types[type] : types.day
        },

        _getDimensions: function ($el) {
            var offset = $el.offset();

            return {
                width: $el.outerWidth(),
                height: $el.outerHeight(),
                left: offset.left,
                top: offset.top
            }
        },

        _getDateFromCell: function (cell) {
            var curDate = this.parsedDate,
                year = cell.data('year') || curDate.year,
                month = cell.data('month') == undefined ? curDate.month : cell.data('month'),
                date = cell.data('date') || 1;

            return new Date(year, month, date);
        },

        _setPositionClasses: function (pos) {
            pos = pos.split(' ');
            var main = pos[0],
                sec = pos[1],
                classes = 'datepicker -' + main + '-' + sec + '- -from-' + main + '-';

            if (this.visible) classes += ' active';

            this.$datepicker
                .removeAttr('class')
                .addClass(classes);
        },

        setPosition: function (position) {
            position = position || this.opts.position;

            var dims = this._getDimensions(this.$el),
                selfDims = this._getDimensions(this.$datepicker),
                pos = position.split(' '),
                top, left,
                offset = this.opts.offset,
                main = pos[0],
                secondary = pos[1];

            switch (main) {
                case 'top':
                    top = dims.top - selfDims.height - offset;
                    break;
                case 'right':
                    left = dims.left + dims.width + offset;
                    break;
                case 'bottom':
                    top = dims.top + dims.height + offset;
                    break;
                case 'left':
                    left = dims.left - selfDims.width - offset;
                    break;
            }

            switch(secondary) {
                case 'top':
                    top = dims.top;
                    break;
                case 'right':
                    left = dims.left + dims.width - selfDims.width;
                    break;
                case 'bottom':
                    top = dims.top + dims.height - selfDims.height;
                    break;
                case 'left':
                    left = dims.left;
                    break;
                case 'center':
                    if (/left|right/.test(main)) {
                        top = dims.top + dims.height/2 - selfDims.height/2;
                    } else {
                        left = dims.left + dims.width/2 - selfDims.width/2;
                    }
            }

            this.$datepicker
                .css({
                    left: left,
                    top: top
                })
        },

        show: function () {
            var onShow = this.opts.onShow;

            this.setPosition(this.opts.position);
            this.$datepicker.addClass('active');
            this.visible = true;

            if (onShow) {
                this._bindVisionEvents(onShow)
            }
        },

        hide: function () {
            var onHide = this.opts.onHide;

            this.$datepicker
                .removeClass('active')
                .css({
                    left: '-100000px'
                });

            this.focused = '';
            this.keys = [];

            this.inFocus = false;
            this.visible = false;
            this.$el.blur();

            if (onHide) {
                this._bindVisionEvents(onHide)
            }
        },

        down: function (date) {
            this._changeView(date, 'down');
        },

        up: function (date) {
            this._changeView(date, 'up');
        },

        _bindVisionEvents: function (event) {
            this.$datepicker.off('transitionend.dp');
            event(this, false);
            this.$datepicker.one('transitionend.dp', event.bind(this, this, true))
        },

        _changeView: function (date, dir) {
            date = date || this.focused || this.date;

            var nextView = dir == 'up' ? this.viewIndex + 1 : this.viewIndex - 1;
            if (nextView > 2) nextView = 2;
            if (nextView < 0) nextView = 0;

            this.silent = true;
            this.date = new Date(date.getFullYear(), date.getMonth(), 1);
            this.silent = false;
            this.view = this.viewIndexes[nextView];

        },

        _handleHotKey: function (key) {
            var date = datepicker.getParsedDate(this._getFocusedDate()),
                focusedParsed,
                o = this.opts,
                newDate,
                totalDaysInNextMonth,
                monthChanged = false,
                yearChanged = false,
                decadeChanged = false,
                y = date.year,
                m = date.month,
                d = date.date;

            switch (key) {
                case 'ctrlRight':
                case 'ctrlUp':
                    m += 1;
                    monthChanged = true;
                    break;
                case 'ctrlLeft':
                case 'ctrlDown':
                    m -= 1;
                    monthChanged = true;
                    break;
                case 'shiftRight':
                case 'shiftUp':
                    yearChanged = true;
                    y += 1;
                    break;
                case 'shiftLeft':
                case 'shiftDown':
                    yearChanged = true;
                    y -= 1;
                    break;
                case 'altRight':
                case 'altUp':
                    decadeChanged = true;
                    y += 10;
                    break;
                case 'altLeft':
                case 'altDown':
                    decadeChanged = true;
                    y -= 10;
                    break;
                case 'ctrlShiftUp':
                    this.up();
                    break;
            }

            totalDaysInNextMonth = datepicker.getDaysCount(new Date(y,m));
            newDate = new Date(y,m,d);

            // If next month has less days than current, set date to total days in that month
            if (totalDaysInNextMonth < d) d = totalDaysInNextMonth;

            // Check if newDate is in valid range
            if (newDate.getTime() < this.minTime) {
                newDate = this.minDate;
            } else if (newDate.getTime() > this.maxTime) {
                newDate = this.maxDate;
            }

            this.focused = newDate;

            focusedParsed = datepicker.getParsedDate(newDate);
            if (monthChanged && o.onChangeMonth) {
                o.onChangeMonth(focusedParsed.month, focusedParsed.year)
            }
            if (yearChanged && o.onChangeYear) {
                o.onChangeYear(focusedParsed.year)
            }
            if (decadeChanged && o.onChangeDecade) {
                o.onChangeDecade(this.curDecade)
            }
        },

        _registerKey: function (key) {
            var exists = this.keys.some(function (curKey) {
                return curKey == key;
            });

            if (!exists) {
                this.keys.push(key)
            }
        },

        _unRegisterKey: function (key) {
            var index = this.keys.indexOf(key);

            this.keys.splice(index, 1);
        },

        _isHotKeyPressed: function () {
            var currentHotKey,
                found = false,
                _this = this,
                pressedKeys = this.keys.sort();

            for (var hotKey in hotKeys) {
                currentHotKey = hotKeys[hotKey];
                if (pressedKeys.length != currentHotKey.length) continue;

                if (currentHotKey.every(function (key, i) { return key == pressedKeys[i]})) {
                    _this._trigger('hotKey', hotKey);
                    found = true;
                }
            }

            return found;
        },

        _trigger: function (event, args) {
            this.$el.trigger(event, args)
        },

        _focusNextCell: function (keyCode, type) {
            type = type || this.cellType;

            var date = datepicker.getParsedDate(this._getFocusedDate()),
                y = date.year,
                m = date.month,
                d = date.date;

            if (this._isHotKeyPressed()){
                return;
            }

            switch(keyCode) {
                case 37: // left
                    type == 'day' ? (d -= 1) : '';
                    type == 'month' ? (m -= 1) : '';
                    type == 'year' ? (y -= 1) : '';
                    break;
                case 38: // up
                    type == 'day' ? (d -= 7) : '';
                    type == 'month' ? (m -= 3) : '';
                    type == 'year' ? (y -= 4) : '';
                    break;
                case 39: // right
                    type == 'day' ? (d += 1) : '';
                    type == 'month' ? (m += 1) : '';
                    type == 'year' ? (y += 1) : '';
                    break;
                case 40: // down
                    type == 'day' ? (d += 7) : '';
                    type == 'month' ? (m += 3) : '';
                    type == 'year' ? (y += 4) : '';
                    break;
            }

            var nd = new Date(y,m,d);
            if (nd.getTime() < this.minTime) {
                nd = this.minDate;
            } else if (nd.getTime() > this.maxTime) {
                nd = this.maxDate;
            }

            this.focused = nd;

        },

        _getFocusedDate: function () {
            var focused  = this.focused || this.selectedDates[this.selectedDates.length - 1],
                d = this.parsedDate;

            if (!focused) {
                switch (this.view) {
                    case 'days':
                        focused = new Date(d.year, d.month, new Date().getDate());
                        break;
                    case 'months':
                        focused = new Date(d.year, d.month, 1);
                        break;
                    case 'years':
                        focused = new Date(d.year, 0, 1);
                        break;
                }
            }

            return focused;
        },

        _getCell: function (date, type) {
            type = type || this.cellType;

            var d = datepicker.getParsedDate(date),
                selector = '.datepicker--cell[data-year="' + d.year + '"]',
                $cell;

            switch (type) {
                case 'month':
                    selector = '[data-month="' + d.month + '"]';
                    break;
                case 'day':
                    selector += '[data-month="' + d.month + '"][data-date="' + d.date + '"]';
                    break;
            }
            $cell = this.views[this.currentView].$el.find(selector);

            return $cell.length ? $cell : $('');
        },

        destroy: function () {
            var _this = this;
            _this.$el
                .off('.adp')
                .data('datepicker', '');

            _this.selectedDates = [];
            _this.focused = '';
            _this.views = {};
            _this.keys = [];
            _this.minRange = '';
            _this.maxRange = '';

            if (_this.opts.inline || !_this.elIsInput) {
                _this.$datepicker.closest('.datepicker-inline').remove();
            } else {
                _this.$datepicker.remove();
            }
        },

        _handleAlreadySelectedDates: function (alreadySelected, selectedDate) {
            if (this.opts.range) {
                if (!this.opts.toggleSelected) {
                    // Add possibility to select same date when range is true
                    if (this.selectedDates.length != 2) {
                        this._trigger('clickCell', selectedDate);
                    }
                } else {
                    this.removeDate(selectedDate);
                }
            } else if (this.opts.toggleSelected){
                this.removeDate(selectedDate);
            }

            // Change last selected date to be able to change time when clicking on this cell
            if (!this.opts.toggleSelected) {
                this.lastSelectedDate = alreadySelected;
                if (this.opts.timepicker) {
                    this.timepicker._setTime(alreadySelected);
                    this.timepicker.update();
                }
            }
        },

        _onShowEvent: function (e) {
            if (!this.visible) {
                this.show();
            }
        },

        _onBlur: function () {
            if (!this.inFocus && this.visible) {
                this.hide();
            }
        },

        _onMouseDownDatepicker: function (e) {
            this.inFocus = true;
        },

        _onMouseUpDatepicker: function (e) {
            this.inFocus = false;
            e.originalEvent.inFocus = true;
            if (!e.originalEvent.timepickerFocus) this.$el.focus();
        },

        _onKeyUpGeneral: function (e) {
            var val = this.$el.val();

            if (!val) {
                this.clear();
            }
        },

        _onResize: function () {
            if (this.visible) {
                this.setPosition();
            }
        },

        _onMouseUpBody: function (e) {
            if (e.originalEvent.inFocus) return;

            if (this.visible && !this.inFocus) {
                this.hide();
            }
        },

        _onMouseUpEl: function (e) {
            e.originalEvent.inFocus = true;
            setTimeout(this._onKeyUpGeneral.bind(this),4);
        },

        _onKeyDown: function (e) {
            var code = e.which;
            this._registerKey(code);

            // Arrows
            if (code >= 37 && code <= 40) {
                e.preventDefault();
                this._focusNextCell(code);
            }

            // Enter
            if (code == 13) {
                if (this.focused) {
                    if (this._getCell(this.focused).hasClass('-disabled-')) return;
                    if (this.view != this.opts.minView) {
                        this.down()
                    } else {
                        var alreadySelected = this._isSelected(this.focused, this.cellType);

                        if (!alreadySelected) {
                            if (this.timepicker) {
                                this.focused.setHours(this.timepicker.hours);
                                this.focused.setMinutes(this.timepicker.minutes);
                            }
                            this.selectDate(this.focused);
                            return;
                        }
                        this._handleAlreadySelectedDates(alreadySelected, this.focused)
                    }
                }
            }

            // Esc
            if (code == 27) {
                this.hide();
            }
        },

        _onKeyUp: function (e) {
            var code = e.which;
            this._unRegisterKey(code);
        },

        _onHotKey: function (e, hotKey) {
            this._handleHotKey(hotKey);
        },

        _onMouseEnterCell: function (e) {
            var $cell = $(e.target).closest('.datepicker--cell'),
                date = this._getDateFromCell($cell);

            // Prevent from unnecessary rendering and setting new currentDate
            this.silent = true;

            if (this.focused) {
                this.focused = ''
            }

            $cell.addClass('-focus-');

            this.focused = date;
            this.silent = false;

            if (this.opts.range && this.selectedDates.length == 1) {
                this.minRange = this.selectedDates[0];
                this.maxRange = '';
                if (datepicker.less(this.minRange, this.focused)) {
                    this.maxRange = this.minRange;
                    this.minRange = '';
                }
                this.views[this.currentView]._update();
            }
        },

        _onMouseLeaveCell: function (e) {
            var $cell = $(e.target).closest('.datepicker--cell');

            $cell.removeClass('-focus-');

            this.silent = true;
            this.focused = '';
            this.silent = false;
        },

        _onTimeChange: function (e, h, m) {
            var date = new Date(),
                selectedDates = this.selectedDates,
                selected = false;

            if (selectedDates.length) {
                selected = true;
                date = this.lastSelectedDate;
            }

            date.setHours(h);
            date.setMinutes(m);

            if (!selected && !this._getCell(date).hasClass('-disabled-')) {
                this.selectDate(date);
            } else {
                this._setInputValue();
                if (this.opts.onSelect) {
                    this._triggerOnChange();
                }
            }
        },

        _onClickCell: function (e, date) {
            if (this.timepicker) {
                date.setHours(this.timepicker.hours);
                date.setMinutes(this.timepicker.minutes);
            }
            this.selectDate(date);
        },

        set focused(val) {
            if (!val && this.focused) {
                var $cell = this._getCell(this.focused);

                if ($cell.length) {
                    $cell.removeClass('-focus-')
                }
            }
            this._focused = val;
            if (this.opts.range && this.selectedDates.length == 1) {
                this.minRange = this.selectedDates[0];
                this.maxRange = '';
                if (datepicker.less(this.minRange, this._focused)) {
                    this.maxRange = this.minRange;
                    this.minRange = '';
                }
            }
            if (this.silent) return;
            this.date = val;
        },

        get focused() {
            return this._focused;
        },

        get parsedDate() {
            return datepicker.getParsedDate(this.date);
        },

        set date (val) {
            if (!(val instanceof Date)) return;

            this.currentDate = val;

            if (this.inited && !this.silent) {
                this.views[this.view]._render();
                this.nav._render();
                if (this.visible && this.elIsInput) {
                    this.setPosition();
                }
            }
            return val;
        },

        get date () {
            return this.currentDate
        },

        set view (val) {
            this.viewIndex = this.viewIndexes.indexOf(val);

            if (this.viewIndex < 0) {
                return;
            }

            this.prevView = this.currentView;
            this.currentView = val;

            if (this.inited) {
                if (!this.views[val]) {
                    this.views[val] = new  $.fn.datepicker.Body(this, val, this.opts)
                } else {
                    this.views[val]._render();
                }

                this.views[this.prevView].hide();
                this.views[val].show();
                this.nav._render();

                if (this.opts.onChangeView) {
                    this.opts.onChangeView(val)
                }
                if (this.elIsInput && this.visible) this.setPosition();
            }

            return val
        },

        get view() {
            return this.currentView;
        },

        get cellType() {
            return this.view.substring(0, this.view.length - 1)
        },

        get minTime() {
            var min = datepicker.getParsedDate(this.minDate);
            return new Date(min.year, min.month, min.date).getTime()
        },

        get maxTime() {
            var max = datepicker.getParsedDate(this.maxDate);
            return new Date(max.year, max.month, max.date).getTime()
        },

        get curDecade() {
            return datepicker.getDecade(this.date)
        }
    };

    //  Utils
    // -------------------------------------------------

    datepicker.getDaysCount = function (date) {
        return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
    };

    datepicker.getParsedDate = function (date) {
        return {
            year: date.getFullYear(),
            month: date.getMonth(),
            fullMonth: (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1, // One based
            date: date.getDate(),
            fullDate: date.getDate() < 10 ? '0' + date.getDate() : date.getDate(),
            day: date.getDay(),
            hours: date.getHours(),
            fullHours:  date.getHours() < 10 ? '0' + date.getHours() :  date.getHours() ,
            minutes: date.getMinutes(),
            fullMinutes:  date.getMinutes() < 10 ? '0' + date.getMinutes() :  date.getMinutes()
        }
    };

    datepicker.getDecade = function (date) {
        var firstYear = Math.floor(date.getFullYear() / 10) * 10;

        return [firstYear, firstYear + 9];
    };

    datepicker.template = function (str, data) {
        return str.replace(/#\{([\w]+)\}/g, function (source, match) {
            if (data[match] || data[match] === 0) {
                return data[match]
            }
        });
    };

    datepicker.isSame = function (date1, date2, type) {
        if (!date1 || !date2) return false;
        var d1 = datepicker.getParsedDate(date1),
            d2 = datepicker.getParsedDate(date2),
            _type = type ? type : 'day',

            conditions = {
                day: d1.date == d2.date && d1.month == d2.month && d1.year == d2.year,
                month: d1.month == d2.month && d1.year == d2.year,
                year: d1.year == d2.year
            };

        return conditions[_type];
    };

    datepicker.less = function (dateCompareTo, date, type) {
        if (!dateCompareTo || !date) return false;
        return date.getTime() < dateCompareTo.getTime();
    };

    datepicker.bigger = function (dateCompareTo, date, type) {
        if (!dateCompareTo || !date) return false;
        return date.getTime() > dateCompareTo.getTime();
    };

    datepicker.getLeadingZeroNum = function (num) {
        return parseInt(num) < 10 ? '0' + num : num;
    };

    /**
     * Returns copy of date with hours and minutes equals to 0
     * @param date {Date}
     */
    datepicker.resetTime = function (date) {
        if (typeof date != 'object') return;
        date = datepicker.getParsedDate(date);
        return new Date(date.year, date.month, date.date)
    };

    $.fn.datepicker = function ( options ) {
        return this.each(function () {
            if (!$.data(this, pluginName)) {
                $.data(this,  pluginName,
                    new Datepicker( this, options ));
            } else {
                var _this = $.data(this, pluginName);

                _this.opts = $.extend(true, _this.opts, options);
                _this.update();
            }
        });
    };

    $.fn.datepicker.Constructor = Datepicker;

    $.fn.datepicker.language = {
        ru: {
            days: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
            daysShort: ['Вос','Пон','Вто','Сре','Чет','Пят','Суб'],
            daysMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
            months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
            monthsShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
            today: 'Сегодня',
            clear: 'Очистить',
            dateFormat: 'dd.mm.yyyy',
            timeFormat: 'hh:ii',
            firstDay: 1
        }
    };

    $(function () {
        $(autoInitSelector).datepicker();
    })

})();

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)))/* WEBPACK VAR INJECTION */(function($) {;(function () {
    var templates = {
        days:'' +
        '<div class="datepicker--days datepicker--body">' +
        '<div class="datepicker--days-names"></div>' +
        '<div class="datepicker--cells datepicker--cells-days"></div>' +
        '</div>',
        months: '' +
        '<div class="datepicker--months datepicker--body">' +
        '<div class="datepicker--cells datepicker--cells-months"></div>' +
        '</div>',
        years: '' +
        '<div class="datepicker--years datepicker--body">' +
        '<div class="datepicker--cells datepicker--cells-years"></div>' +
        '</div>'
        },
        datepicker = $.fn.datepicker,
        dp = datepicker.Constructor;

    datepicker.Body = function (d, type, opts) {
        this.d = d;
        this.type = type;
        this.opts = opts;
        this.$el = $('');

        if (this.opts.onlyTimepicker) return;
        this.init();
    };

    datepicker.Body.prototype = {
        init: function () {
            this._buildBaseHtml();
            this._render();

            this._bindEvents();
        },

        _bindEvents: function () {
            this.$el.on('click', '.datepicker--cell', $.proxy(this._onClickCell, this));
        },

        _buildBaseHtml: function () {
            this.$el = $(templates[this.type]).appendTo(this.d.$content);
            this.$names = $('.datepicker--days-names', this.$el);
            this.$cells = $('.datepicker--cells', this.$el);
        },

        _getDayNamesHtml: function (firstDay, curDay, html, i) {
            curDay = curDay != undefined ? curDay : firstDay;
            html = html ? html : '';
            i = i != undefined ? i : 0;

            if (i > 7) return html;
            if (curDay == 7) return this._getDayNamesHtml(firstDay, 0, html, ++i);

            html += '<div class="datepicker--day-name' + (this.d.isWeekend(curDay) ? " -weekend-" : "") + '">' + this.d.loc.daysMin[curDay] + '</div>';

            return this._getDayNamesHtml(firstDay, ++curDay, html, ++i);
        },

        _getCellContents: function (date, type) {
            var classes = "datepicker--cell datepicker--cell-" + type,
                currentDate = new Date(),
                parent = this.d,
                minRange = dp.resetTime(parent.minRange),
                maxRange = dp.resetTime(parent.maxRange),
                opts = parent.opts,
                d = dp.getParsedDate(date),
                render = {},
                html = d.date;

            switch (type) {
                case 'day':
                    if (parent.isWeekend(d.day)) classes += " -weekend-";
                    if (d.month != this.d.parsedDate.month) {
                        classes += " -other-month-";
                        if (!opts.selectOtherMonths) {
                            classes += " -disabled-";
                        }
                        if (!opts.showOtherMonths) html = '';
                    }
                    break;
                case 'month':
                    html = parent.loc[parent.opts.monthsField][d.month];
                    break;
                case 'year':
                    var decade = parent.curDecade;
                    html = d.year;
                    if (d.year < decade[0] || d.year > decade[1]) {
                        classes += ' -other-decade-';
                        if (!opts.selectOtherYears) {
                            classes += " -disabled-";
                        }
                        if (!opts.showOtherYears) html = '';
                    }
                    break;
            }

            if (opts.onRenderCell) {
                render = opts.onRenderCell(date, type) || {};
                html = render.html ? render.html : html;
                classes += render.classes ? ' ' + render.classes : '';
            }

            if (opts.range) {
                if (dp.isSame(minRange, date, type)) classes += ' -range-from-';
                if (dp.isSame(maxRange, date, type)) classes += ' -range-to-';

                if (parent.selectedDates.length == 1 && parent.focused) {
                    if (
                        (dp.bigger(minRange, date) && dp.less(parent.focused, date)) ||
                        (dp.less(maxRange, date) && dp.bigger(parent.focused, date)))
                    {
                        classes += ' -in-range-'
                    }

                    if (dp.less(maxRange, date) && dp.isSame(parent.focused, date)) {
                        classes += ' -range-from-'
                    }
                    if (dp.bigger(minRange, date) && dp.isSame(parent.focused, date)) {
                        classes += ' -range-to-'
                    }

                } else if (parent.selectedDates.length == 2) {
                    if (dp.bigger(minRange, date) && dp.less(maxRange, date)) {
                        classes += ' -in-range-'
                    }
                }
            }


            if (dp.isSame(currentDate, date, type)) classes += ' -current-';
            if (parent.focused && dp.isSame(date, parent.focused, type)) classes += ' -focus-';
            if (parent._isSelected(date, type)) classes += ' -selected-';
            if (!parent._isInRange(date, type) || render.disabled) classes += ' -disabled-';

            return {
                html: html,
                classes: classes
            }
        },

        /**
         * Calculates days number to render. Generates days html and returns it.
         * @param {object} date - Date object
         * @returns {string}
         * @private
         */
        _getDaysHtml: function (date) {
            var totalMonthDays = dp.getDaysCount(date),
                firstMonthDay = new Date(date.getFullYear(), date.getMonth(), 1).getDay(),
                lastMonthDay = new Date(date.getFullYear(), date.getMonth(), totalMonthDays).getDay(),
                daysFromPevMonth = firstMonthDay - this.d.loc.firstDay,
                daysFromNextMonth = 6 - lastMonthDay + this.d.loc.firstDay;

            daysFromPevMonth = daysFromPevMonth < 0 ? daysFromPevMonth + 7 : daysFromPevMonth;
            daysFromNextMonth = daysFromNextMonth > 6 ? daysFromNextMonth - 7 : daysFromNextMonth;

            var startDayIndex = -daysFromPevMonth + 1,
                m, y,
                html = '';

            for (var i = startDayIndex, max = totalMonthDays + daysFromNextMonth; i <= max; i++) {
                y = date.getFullYear();
                m = date.getMonth();

                html += this._getDayHtml(new Date(y, m, i))
            }

            return html;
        },

        _getDayHtml: function (date) {
           var content = this._getCellContents(date, 'day');

            return '<div class="' + content.classes + '" ' +
                'data-date="' + date.getDate() + '" ' +
                'data-month="' + date.getMonth() + '" ' +
                'data-year="' + date.getFullYear() + '">' + content.html + '</div>';
        },

        /**
         * Generates months html
         * @param {object} date - date instance
         * @returns {string}
         * @private
         */
        _getMonthsHtml: function (date) {
            var html = '',
                d = dp.getParsedDate(date),
                i = 0;

            while(i < 12) {
                html += this._getMonthHtml(new Date(d.year, i));
                i++
            }

            return html;
        },

        _getMonthHtml: function (date) {
            var content = this._getCellContents(date, 'month');

            return '<div class="' + content.classes + '" data-month="' + date.getMonth() + '">' + content.html + '</div>'
        },

        _getYearsHtml: function (date) {
            var d = dp.getParsedDate(date),
                decade = dp.getDecade(date),
                firstYear = decade[0] - 1,
                html = '',
                i = firstYear;

            for (i; i <= decade[1] + 1; i++) {
                html += this._getYearHtml(new Date(i , 0));
            }

            return html;
        },

        _getYearHtml: function (date) {
            var content = this._getCellContents(date, 'year');

            return '<div class="' + content.classes + '" data-year="' + date.getFullYear() + '">' + content.html + '</div>'
        },

        _renderTypes: {
            days: function () {
                var dayNames = this._getDayNamesHtml(this.d.loc.firstDay),
                    days = this._getDaysHtml(this.d.currentDate);

                this.$cells.html(days);
                this.$names.html(dayNames)
            },
            months: function () {
                var html = this._getMonthsHtml(this.d.currentDate);

                this.$cells.html(html)
            },
            years: function () {
                var html = this._getYearsHtml(this.d.currentDate);

                this.$cells.html(html)
            }
        },

        _render: function () {
            if (this.opts.onlyTimepicker) return;
            this._renderTypes[this.type].bind(this)();
        },

        _update: function () {
            var $cells = $('.datepicker--cell', this.$cells),
                _this = this,
                classes,
                $cell,
                date;
            $cells.each(function (cell, i) {
                $cell = $(this);
                date = _this.d._getDateFromCell($(this));
                classes = _this._getCellContents(date, _this.d.cellType);
                $cell.attr('class',classes.classes)
            });
        },

        show: function () {
            if (this.opts.onlyTimepicker) return;
            this.$el.addClass('active');
            this.acitve = true;
        },

        hide: function () {
            this.$el.removeClass('active');
            this.active = false;
        },

        //  Events
        // -------------------------------------------------

        _handleClick: function (el) {
            var date = el.data('date') || 1,
                month = el.data('month') || 0,
                year = el.data('year') || this.d.parsedDate.year,
                dp = this.d;
            // Change view if min view does not reach yet
            if (dp.view != this.opts.minView) {
                dp.down(new Date(year, month, date));
                return;
            }
            // Select date if min view is reached
            var selectedDate = new Date(year, month, date),
                alreadySelected = this.d._isSelected(selectedDate, this.d.cellType);

            if (!alreadySelected) {
                dp._trigger('clickCell', selectedDate);
                return;
            }

            dp._handleAlreadySelectedDates.bind(dp, alreadySelected, selectedDate)();

        },

        _onClickCell: function (e) {
            var $el = $(e.target).closest('.datepicker--cell');

            if ($el.hasClass('-disabled-')) return;

            this._handleClick.bind(this)($el);
        }
    };
})();

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)))/* WEBPACK VAR INJECTION */(function($) {;(function () {
    var template = '' +
        '<div class="datepicker--nav-action" data-action="prev">#{prevHtml}</div>' +
        '<div class="datepicker--nav-title">#{title}</div>' +
        '<div class="datepicker--nav-action" data-action="next">#{nextHtml}</div>',
        buttonsContainerTemplate = '<div class="datepicker--buttons"></div>',
        button = '<span class="datepicker--button" data-action="#{action}">#{label}</span>',
        datepicker = $.fn.datepicker,
        dp = datepicker.Constructor;

    datepicker.Navigation = function (d, opts) {
        this.d = d;
        this.opts = opts;

        this.$buttonsContainer = '';

        this.init();
    };

    datepicker.Navigation.prototype = {
        init: function () {
            this._buildBaseHtml();
            this._bindEvents();
        },

        _bindEvents: function () {
            this.d.$nav.on('click', '.datepicker--nav-action', $.proxy(this._onClickNavButton, this));
            this.d.$nav.on('click', '.datepicker--nav-title', $.proxy(this._onClickNavTitle, this));
            this.d.$datepicker.on('click', '.datepicker--button', $.proxy(this._onClickNavButton, this));
        },

        _buildBaseHtml: function () {
            if (!this.opts.onlyTimepicker) {
                this._render();
            }
            this._addButtonsIfNeed();
        },

        _addButtonsIfNeed: function () {
            if (this.opts.todayButton) {
                this._addButton('today')
            }
            if (this.opts.clearButton) {
                this._addButton('clear')
            }
        },

        _render: function () {
            var title = this._getTitle(this.d.currentDate),
                html = dp.template(template, $.extend({title: title}, this.opts));
            this.d.$nav.html(html);
            if (this.d.view == 'years') {
                $('.datepicker--nav-title', this.d.$nav).addClass('-disabled-');
            }
            this.setNavStatus();
        },

        _getTitle: function (date) {
            return this.d.formatDate(this.opts.navTitles[this.d.view], date)
        },

        _addButton: function (type) {
            if (!this.$buttonsContainer.length) {
                this._addButtonsContainer();
            }

            var data = {
                    action: type,
                    label: this.d.loc[type]
                },
                html = dp.template(button, data);

            if ($('[data-action=' + type + ']', this.$buttonsContainer).length) return;
            this.$buttonsContainer.append(html);
        },

        _addButtonsContainer: function () {
            this.d.$datepicker.append(buttonsContainerTemplate);
            this.$buttonsContainer = $('.datepicker--buttons', this.d.$datepicker);
        },

        setNavStatus: function () {
            if (!(this.opts.minDate || this.opts.maxDate) || !this.opts.disableNavWhenOutOfRange) return;

            var date = this.d.parsedDate,
                m = date.month,
                y = date.year,
                d = date.date;

            switch (this.d.view) {
                case 'days':
                    if (!this.d._isInRange(new Date(y, m-1, 1), 'month')) {
                        this._disableNav('prev')
                    }
                    if (!this.d._isInRange(new Date(y, m+1, 1), 'month')) {
                        this._disableNav('next')
                    }
                    break;
                case 'months':
                    if (!this.d._isInRange(new Date(y-1, m, d), 'year')) {
                        this._disableNav('prev')
                    }
                    if (!this.d._isInRange(new Date(y+1, m, d), 'year')) {
                        this._disableNav('next')
                    }
                    break;
                case 'years':
                    var decade = dp.getDecade(this.d.date);
                    if (!this.d._isInRange(new Date(decade[0] - 1, 0, 1), 'year')) {
                        this._disableNav('prev')
                    }
                    if (!this.d._isInRange(new Date(decade[1] + 1, 0, 1), 'year')) {
                        this._disableNav('next')
                    }
                    break;
            }
        },

        _disableNav: function (nav) {
            $('[data-action="' + nav + '"]', this.d.$nav).addClass('-disabled-')
        },

        _activateNav: function (nav) {
            $('[data-action="' + nav + '"]', this.d.$nav).removeClass('-disabled-')
        },

        _onClickNavButton: function (e) {
            var $el = $(e.target).closest('[data-action]'),
                action = $el.data('action');

            this.d[action]();
        },

        _onClickNavTitle: function (e) {
            if ($(e.target).hasClass('-disabled-')) return;

            if (this.d.view == 'days') {
                return this.d.view = 'months'
            }

            this.d.view = 'years';
        }
    }

})();

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)))/* WEBPACK VAR INJECTION */(function($) {;(function () {
    var template = '<div class="datepicker--time">' +
        '<div class="datepicker--time-current">' +
        '   <span class="datepicker--time-current-hours">#{hourVisible}</span>' +
        '   <span class="datepicker--time-current-colon">:</span>' +
        '   <span class="datepicker--time-current-minutes">#{minValue}</span>' +
        '</div>' +
        '<div class="datepicker--time-sliders">' +
        '   <div class="datepicker--time-row">' +
        '      <input type="range" name="hours" value="#{hourValue}" min="#{hourMin}" max="#{hourMax}" step="#{hourStep}"/>' +
        '   </div>' +
        '   <div class="datepicker--time-row">' +
        '      <input type="range" name="minutes" value="#{minValue}" min="#{minMin}" max="#{minMax}" step="#{minStep}"/>' +
        '   </div>' +
        '</div>' +
        '</div>',
        datepicker = $.fn.datepicker,
        dp = datepicker.Constructor;

    datepicker.Timepicker = function (inst, opts) {
        this.d = inst;
        this.opts = opts;

        this.init();
    };

    datepicker.Timepicker.prototype = {
        init: function () {
            var input = 'input';
            this._setTime(this.d.date);
            this._buildHTML();

            if (navigator.userAgent.match(/trident/gi)) {
                input = 'change';
            }

            this.d.$el.on('selectDate', this._onSelectDate.bind(this));
            this.$ranges.on(input, this._onChangeRange.bind(this));
            this.$ranges.on('mouseup', this._onMouseUpRange.bind(this));
            this.$ranges.on('mousemove focus ', this._onMouseEnterRange.bind(this));
            this.$ranges.on('mouseout blur', this._onMouseOutRange.bind(this));
        },

        _setTime: function (date) {
            var _date = dp.getParsedDate(date);

            this._handleDate(date);
            this.hours = _date.hours < this.minHours ? this.minHours : _date.hours;
            this.minutes = _date.minutes < this.minMinutes ? this.minMinutes : _date.minutes;
        },

        /**
         * Sets minHours and minMinutes from date (usually it's a minDate)
         * Also changes minMinutes if current hours are bigger then@date hours
         *@param date{Date}*@private
         */
        _setMinTimeFromDate:function (date){this.minHours = date.getHours();this.minMinutes = date.getMinutes();// If,for example,min hours are 10,and current hours are 12,// update minMinutes to default value,to be able to choose whole range of values
            if (this.d.lastSelectedDate){if (this.d.lastSelectedDate.getHours() > date.getHours()){this.minMinutes = this.opts.minMinutes;}}},_setMaxTimeFromDate:function (date){this.maxHours = date.getHours();this.maxMinutes = date.getMinutes();if (this.d.lastSelectedDate){if (this.d.lastSelectedDate.getHours() < date.getHours()){this.maxMinutes = this.opts.maxMinutes;}}},_setDefaultMinMaxTime:function (){var maxHours = 23,maxMinutes = 59,opts = this.opts;this.minHours = opts.minHours < 0 || opts.minHours > maxHours ? 0 :opts.minHours;this.minMinutes = opts.minMinutes < 0 || opts.minMinutes > maxMinutes ? 0 :opts.minMinutes;this.maxHours = opts.maxHours < 0 || opts.maxHours > maxHours ? maxHours :opts.maxHours;this.maxMinutes = opts.maxMinutes < 0 || opts.maxMinutes > maxMinutes ? maxMinutes :opts.maxMinutes;},_validateHoursMinutes:function (date){if (this.hours < this.minHours){this.hours = this.minHours;}else if (this.hours > this.maxHours){this.hours = this.maxHours;}if (this.minutes < this.minMinutes){this.minutes = this.minMinutes;}else if (this.minutes > this.maxMinutes){this.minutes = this.maxMinutes;}},_buildHTML:function (){var lz = dp.getLeadingZeroNum,data ={hourMin:this.minHours,hourMax:lz(this.maxHours),hourStep:this.opts.hoursStep,hourValue:this.hours,hourVisible:lz(this.displayHours),minMin:this.minMinutes,minMax:lz(this.maxMinutes),minStep:this.opts.minutesStep,minValue:lz(this.minutes)},_template = dp.template(template,data);this.$timepicker = $(_template).appendTo(this.d.$datepicker);this.$ranges = $('[type="range"]',this.$timepicker);this.$hours = $('[name="hours"]',this.$timepicker);this.$minutes = $('[name="minutes"]',this.$timepicker);this.$hoursText = $('.datepicker--time-current-hours',this.$timepicker);this.$minutesText = $('.datepicker--time-current-minutes',this.$timepicker);if (this.d.ampm){this.$ampm = $('<span class="datepicker--time-current-ampm">')
                    .appendTo($('.datepicker--time-current',this.$timepicker))
                    .html(this.dayPeriod);this.$timepicker.addClass('-am-pm-');}},_updateCurrentTime:function (){var h =  dp.getLeadingZeroNum(this.displayHours),m = dp.getLeadingZeroNum(this.minutes);this.$hoursText.html(h);this.$minutesText.html(m);if (this.d.ampm){this.$ampm.html(this.dayPeriod);}},_updateRanges:function (){this.$hours.attr({min:this.minHours,max:this.maxHours}).val(this.hours);this.$minutes.attr({min:this.minMinutes,max:this.maxMinutes}).val(this.minutes)},_handleDate:function (date){this._setDefaultMinMaxTime();if (date){if (dp.isSame(date,this.d.opts.minDate)){this._setMinTimeFromDate(this.d.opts.minDate);}else if (dp.isSame(date,this.d.opts.maxDate)){this._setMaxTimeFromDate(this.d.opts.maxDate);}}this._validateHoursMinutes(date);},update:function (){this._updateRanges();this._updateCurrentTime();},_getValidHoursFromDate:function (date,ampm){var d = date,hours = date;if (date instanceof Date){d = dp.getParsedDate(date);hours = d.hours;}var _ampm = ampm || this.d.ampm,dayPeriod = 'am';if (_ampm){switch(true){case hours == 0:hours = 12;break;case hours == 12:dayPeriod = 'pm';break;case hours > 11:hours = hours - 12;dayPeriod = 'pm';break;default:break;}}return{hours:hours,dayPeriod:dayPeriod}},set hours (val){this._hours = val;var displayHours = this._getValidHoursFromDate(val);this.displayHours = displayHours.hours;this.dayPeriod = displayHours.dayPeriod;},get hours(){return this._hours;},//  Events
        // -------------------------------------------------

        _onChangeRange:function (e){var $target = $(e.target),name = $target.attr('name');this.d.timepickerIsActive = true;this[name] = $target.val();this._updateCurrentTime();this.d._trigger('timeChange',[this.hours,this.minutes]);this._handleDate(this.d.lastSelectedDate);this.update()},_onSelectDate:function (e,data){this._handleDate(data);this.update();},_onMouseEnterRange:function (e){var name = $(e.target).attr('name');$('.datepicker--time-current-' + name,this.$timepicker).addClass('-focus-');},_onMouseOutRange:function (e){var name = $(e.target).attr('name');if (this.d.inFocus) return;// Prevent removing focus when mouse out of range slider
            $('.datepicker--time-current-' + name,this.$timepicker).removeClass('-focus-');},_onMouseUpRange:function (e){this.d.timepickerIsActive = false;}};})();}.call(this,__webpack_require__(23)))(function(jQuery){;(function ($){$.fn.datepicker.language['fr'] ={days:['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],daysShort:['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],daysMin:['Di','Lu','Ma','Me','Je','Ve','Sa'],months:['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Decembre'],monthsShort:['Jan','Fév','Mars','Avr','Mai','Juin','Juil','Août','Sep','Oct','Nov','Dec'],today:"Aujourd'hui",clear:'Effacer',dateFormat:'dd/mm/yyyy',timeFormat:'hh:ii',firstDay:1};})(jQuery);}.call(this,__webpack_require__(23)))(function(jQuery){;(function ($){$.fn.datepicker.language['en'] ={days:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],daysShort:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],daysMin:['Su','Mo','Tu','We','Th','Fr','Sa'],months:['January','February','March','April','May','June','July','August','September','October','November','December'],monthsShort:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],today:'Today',clear:'Clear',dateFormat:'mm/dd/yyyy',timeFormat:'hh:ii aa',firstDay:0};})(jQuery);}.call(this,__webpack_require__(23)))__webpack_require__.r(__webpack_exports__);(function($){var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91);var swiper__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(swiper__WEBPACK_IMPORTED_MODULE_0__);// Is swiper has equal or less slides than slidesPerView add class is-locked
function sliderLocked(instance){instance.on('init resize',function (){var parentDom = $(instance.el).parent().get(0);if (instance.isLocked){$(parentDom).addClass('is-locked');}else{$(parentDom).removeClass('is-locked');}});instance.init();instance.update();}// Media Slider
$('.media-slider').each(function (){var $this = $(this);new swiper__WEBPACK_IMPORTED_MODULE_0___default.a(this,{slidesPerView:1,preloadImages:false,lazy:true,loop:true,navigation:{nextEl:$this.parent().find(".slider-next")[0],prevEl:$this.parent().find(".slider-prev")[0]},pagination:{el:$this.parent().find(".slider-pagination")[0],type:'bullets',clickable:true},on:{slideChangeTransitionStart:function slideChangeTransitionStart(){$($this.parent().find(".slider-nav .slider-fraction")).html("<span class=\"fw-bold color-navy fz-lg\">".concat(this.realIndex + 1,"</span>/<span> ").concat(this.slides.length - 2,"</span>"));}}});var instance = $this.get(0).swiper;$($this.parent().find(".slider-nav .slider-fraction")).html("<span class=\"fw-bold color-navy fz-lg\">".concat(instance.realIndex + 1,"</span>/<span> ").concat(instance.slides.length - 2,"</span>"));});// Event slider
$('.event-slider').each(function (){var $this = $(this);new swiper__WEBPACK_IMPORTED_MODULE_0___default.a(this,{slidesPerView:3,spaceBetween:20,slidesPerGroup:3,autoHeight:true,navigation:{nextEl:$this.parent().find(".slider-next")[0],prevEl:$this.parent().find(".slider-prev")[0]},pagination:{el:$this.parent().find(".slider-pagination")[0],type:'bullets',clickable:true},on:{slideChangeTransitionStart:function slideChangeTransitionStart(){var totalPages = this.pagination.bullets.length;var currentactivePage = $this.parent().find(".swiper-pagination-bullet-active");var current = Array.from(this.pagination.bullets).indexOf(currentactivePage.get(0)) + 1;$($this.parent().find(".slider-nav .slider-fraction")).html("<span class=\"fw-bold color-navy fz-lg\">".concat(current,"</span>/<span> ").concat(totalPages,"</span>"));}},breakpoints:{991:{slidesPerView:1,slidesPerColumn:3,spaceBetween:0,// slidesPerColumnFill:'column',slidesPerGroup:1,autoHeight:false}}});// debugger

  var instance = $this.get(0).swiper;var totalPages = instance.pagination.bullets.length;var currentactivePage = $this.parent().find(".swiper-pagination-bullet-active");var curr = Array.from(instance.pagination.bullets).indexOf(currentactivePage.get(0)) + 1;$($this.parent().find(".slider-nav .slider-fraction")).html("<span class=\"fw-bold color-navy fz-lg\">".concat(curr,"</span>/<span> ").concat(totalPages,"</span>"));});// Temoignage slider
$('.temoignage-slider').each(function (){var $this = $(this);new swiper__WEBPACK_IMPORTED_MODULE_0___default.a(this,{slidesPerView:3,spaceBetween:110,grabCursor:true,loop:true,centeredSlides:true,breakpoints:{991:{slidesPerView:1}}});});// Temoignage slider
$('.hero-slider').each(function (){var $this = $(this);new swiper__WEBPACK_IMPORTED_MODULE_0___default.a(this,{slidesPerView:1,loop:true,autoplay:{delay:10000},navigation:{nextEl:$this.parent().find(".slider-next")[0],prevEl:$this.parent().find(".slider-prev")[0]}});});// Social slider

$('.social-slider').each(function (){var $this = $(this);new swiper__WEBPACK_IMPORTED_MODULE_0___default.a(this,{slidesPerView:'auto',init:false,spaceBetween:20,watchOverflow:true,breakpoints:{991:{slidesPerView:1,slidesPerColumn:2,grabCursor:true,spaceBetween:50}}});sliderLocked($this.get(0).swiper);});}.call(this,__webpack_require__(23)))

(function (global,factory){true ? module.exports = factory() :undefined;}(this,function (){'use strict';var doc = (typeof document === 'undefined') ?{body:{},addEventListener:function addEventListener(){},removeEventListener:function removeEventListener(){},activeElement:{blur:function blur(){},nodeName:'',},querySelector:function querySelector(){return null;},querySelectorAll:function querySelectorAll(){return [];},getElementById:function getElementById(){return null;},createEvent:function createEvent(){return{initEvent:function initEvent(){},};},createElement:function createElement(){return{children:[],childNodes:[],style:{},setAttribute:function setAttribute(){},getElementsByTagName:function getElementsByTagName(){return [];},};},location:{hash:''},}:document;// eslint-disable-line

  var win = (typeof window === 'undefined') ?{document:doc,navigator:{userAgent:'',},location:{},history:{},CustomEvent:function CustomEvent(){return this;},addEventListener:function addEventListener(){},removeEventListener:function removeEventListener(){},getComputedStyle:function getComputedStyle(){return{getPropertyValue:function getPropertyValue(){return '';},};},Image:function Image(){},Date:function Date(){},screen:{},setTimeout:function setTimeout(){},clearTimeout:function clearTimeout(){},}:window;// eslint-disable-line

  

  var Dom7 = function Dom7(arr){var self = this;// Create array-like object
    for (var i = 0;i < arr.length;i += 1){self[i] = arr[i];}self.length = arr.length;// Return collection with methods
    return this;};function $(selector,context){var arr = [];var i = 0;if (selector && !context){if (selector instanceof Dom7){return selector;}}if (selector){// String
      if (typeof selector === 'string'){var els;var tempParent;var html = selector.trim();if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0){var toCreate = 'div';if (html.indexOf('<li') === 0){toCreate = 'ul';}if (html.indexOf('<tr') === 0){toCreate = 'tbody';}if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0){toCreate = 'tr';}if (html.indexOf('<tbody') === 0){toCreate = 'table';}if (html.indexOf('<option') === 0){toCreate = 'select';}tempParent = doc.createElement(toCreate);tempParent.innerHTML = html;for (i = 0;i < tempParent.childNodes.length;i += 1){arr.push(tempParent.childNodes[i]);}}else{if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)){// Pure ID selector
            els = [doc.getElementById(selector.trim().split('#')[1])];}else{// Other selectors
            els = (context || doc).querySelectorAll(selector.trim());}for (i = 0;i < els.length;i += 1){if (els[i]){arr.push(els[i]);}}}}else if (selector.nodeType || selector === win || selector === doc){// Node/element
        arr.push(selector);}else if (selector.length > 0 && selector[0].nodeType){// Array of elements or instance of Dom
        for (i = 0;i < selector.length;i += 1){arr.push(selector[i]);}}}return new Dom7(arr);}$.fn = Dom7.prototype;$.Class = Dom7;$.Dom7 = Dom7;function unique(arr){var uniqueArray = [];for (var i = 0;i < arr.length;i += 1){if (uniqueArray.indexOf(arr[i]) === -1){uniqueArray.push(arr[i]);}}return uniqueArray;}// Classes and attributes
  function addClass(className){if (typeof className === 'undefined'){return this;}var classes = className.split(' ');for (var i = 0;i < classes.length;i += 1){for (var j = 0;j < this.length;j += 1){if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined'){this[j].classList.add(classes[i]);}}}return this;}function removeClass(className){var classes = className.split(' ');for (var i = 0;i < classes.length;i += 1){for (var j = 0;j < this.length;j += 1){if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined'){this[j].classList.remove(classes[i]);}}}return this;}function hasClass(className){if (!this[0]){return false;}return this[0].classList.contains(className);}function toggleClass(className){var classes = className.split(' ');for (var i = 0;i < classes.length;i += 1){for (var j = 0;j < this.length;j += 1){if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined'){this[j].classList.toggle(classes[i]);}}}return this;}function attr(attrs,value){var arguments$1 = arguments;if (arguments.length === 1 && typeof attrs === 'string'){// Get attr
      if (this[0]){return this[0].getAttribute(attrs);}return undefined;}// Set attrs
    for (var i = 0;i < this.length;i += 1){if (arguments$1.length === 2){// String
        this[i].setAttribute(attrs,value);}else{// Object
        // eslint-disable-next-line
        for (var attrName in attrs){this[i][attrName] = attrs[attrName];this[i].setAttribute(attrName,attrs[attrName]);}}}return this;}// eslint-disable-next-line
  function removeAttr(attr){for (var i = 0;i < this.length;i += 1){this[i].removeAttribute(attr);}return this;}function data(key,value){var el;if (typeof value === 'undefined'){el = this[0];// Get value
      if (el){if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)){return el.dom7ElementDataStorage[key];}var dataKey = el.getAttribute(("data-" + key));if (dataKey){return dataKey;}return undefined;}return undefined;}// Set value
    for (var i = 0;i < this.length;i += 1){el = this[i];if (!el.dom7ElementDataStorage){el.dom7ElementDataStorage ={};}el.dom7ElementDataStorage[key] = value;}return this;}// Transforms
  // eslint-disable-next-line
  function transform(transform){for (var i = 0;i < this.length;i += 1){var elStyle = this[i].style;elStyle.webkitTransform = transform;elStyle.transform = transform;}return this;}function transition(duration){if (typeof duration !== 'string'){duration = duration + "ms";// eslint-disable-line}for (var i = 0;i < this.length;i += 1){var elStyle = this[i].style;elStyle.webkitTransitionDuration = duration;elStyle.transitionDuration = duration;}return this;}// Events
  function on(){var assign;var args = [],len = arguments.length;while (len--) args[ len ] = arguments[ len ];var eventType = args[0];var targetSelector = args[1];var listener = args[2];var capture = args[3];if (typeof args[1] === 'function'){(assign = args,eventType = assign[0],listener = assign[1],capture = assign[2]);targetSelector = undefined;}if (!capture){capture = false;}function handleLiveEvent(e){var target = e.target;if (!target){return;}var eventData = e.target.dom7EventData || [];if (eventData.indexOf(e) < 0){eventData.unshift(e);}if ($(target).is(targetSelector)){listener.apply(target,eventData);}else{var parents = $(target).parents();// eslint-disable-line
        for (var k = 0;k < parents.length;k += 1){if ($(parents[k]).is(targetSelector)){listener.apply(parents[k],eventData);}}}}function handleEvent(e){var eventData = e && e.target ? e.target.dom7EventData || [] :[];if (eventData.indexOf(e) < 0){eventData.unshift(e);}listener.apply(this,eventData);}var events = eventType.split(' ');var j;for (var i = 0;i < this.length;i += 1){var el = this[i];if (!targetSelector){for (j = 0;j < events.length;j += 1){var event = events[j];if (!el.dom7Listeners){el.dom7Listeners ={};}if (!el.dom7Listeners[event]){el.dom7Listeners[event] = [];}el.dom7Listeners[event].push({listener:listener,proxyListener:handleEvent,});el.addEventListener(event,handleEvent,capture);}}else{// Live events
        for (j = 0;j < events.length;j += 1){var event$1 = events[j];if (!el.dom7LiveListeners){el.dom7LiveListeners ={};}if (!el.dom7LiveListeners[event$1]){el.dom7LiveListeners[event$1] = [];}el.dom7LiveListeners[event$1].push({listener:listener,proxyListener:handleLiveEvent,});el.addEventListener(event$1,handleLiveEvent,capture);}}}return this;}function off(){var assign;var args = [],len = arguments.length;while (len--) args[ len ] = arguments[ len ];var eventType = args[0];var targetSelector = args[1];var listener = args[2];var capture = args[3];if (typeof args[1] === 'function'){(assign = args,eventType = assign[0],listener = assign[1],capture = assign[2]);targetSelector = undefined;}if (!capture){capture = false;}var events = eventType.split(' ');for (var i = 0;i < events.length;i += 1){var event = events[i];for (var j = 0;j < this.length;j += 1){var el = this[j];var handlers = (void 0);if (!targetSelector && el.dom7Listeners){handlers = el.dom7Listeners[event];}else if (targetSelector && el.dom7LiveListeners){handlers = el.dom7LiveListeners[event];}if (handlers && handlers.length){for (var k = handlers.length - 1;k >= 0;k -= 1){var handler = handlers[k];if (listener && handler.listener === listener){el.removeEventListener(event,handler.proxyListener,capture);handlers.splice(k,1);}else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener){el.removeEventListener(event,handler.proxyListener,capture);handlers.splice(k,1);}else if (!listener){el.removeEventListener(event,handler.proxyListener,capture);handlers.splice(k,1);}}}}}return this;}function trigger(){var args = [],len = arguments.length;while (len--) args[ len ] = arguments[ len ];var events = args[0].split(' ');var eventData = args[1];for (var i = 0;i < events.length;i += 1){var event = events[i];for (var j = 0;j < this.length;j += 1){var el = this[j];var evt = (void 0);try{evt = new win.CustomEvent(event,{detail:eventData,bubbles:true,cancelable:true,});}catch (e){evt = doc.createEvent('Event');evt.initEvent(event,true,true);evt.detail = eventData;}// eslint-disable-next-line
        el.dom7EventData = args.filter(function (data,dataIndex){return dataIndex > 0;});el.dispatchEvent(evt);el.dom7EventData = [];delete el.dom7EventData;}}return this;}function transitionEnd(callback){var events = ['webkitTransitionEnd','transitionend'];var dom = this;var i;function fireCallBack(e){if (e.target !== this){return;}callback.call(this,e);for (i = 0;i < events.length;i += 1){dom.off(events[i],fireCallBack);}}if (callback){for (i = 0;i < events.length;i += 1){dom.on(events[i],fireCallBack);}}return this;}function outerWidth(includeMargins){if (this.length > 0){if (includeMargins){// eslint-disable-next-line
        var styles = this.styles();return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));}return this[0].offsetWidth;}return null;}function outerHeight(includeMargins){if (this.length > 0){if (includeMargins){// eslint-disable-next-line
        var styles = this.styles();return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));}return this[0].offsetHeight;}return null;}function offset(){if (this.length > 0){var el = this[0];var box = el.getBoundingClientRect();var body = doc.body;var clientTop = el.clientTop || body.clientTop || 0;var clientLeft = el.clientLeft || body.clientLeft || 0;var scrollTop = el === win ? win.scrollY :el.scrollTop;var scrollLeft = el === win ? win.scrollX :el.scrollLeft;return{top:(box.top + scrollTop) - clientTop,left:(box.left + scrollLeft) - clientLeft,};}return null;}function styles(){if (this[0]){return win.getComputedStyle(this[0],null);}return{};}function css(props,value){var i;if (arguments.length === 1){if (typeof props === 'string'){if (this[0]){return win.getComputedStyle(this[0],null).getPropertyValue(props);}}else{for (i = 0;i < this.length;i += 1){// eslint-disable-next-line
          for (var prop in props){this[i].style[prop] = props[prop];}}return this;}}if (arguments.length === 2 && typeof props === 'string'){for (i = 0;i < this.length;i += 1){this[i].style[props] = value;}return this;}return this;}// Iterate over the collection passing elements to `callback`
  function each(callback){// Don't bother continuing without a callback
    if (!callback) { return this; }
    // Iterate over the current collection
    for (var i = 0; i < this.length; i += 1) {
      // If the callback returns false
      if (callback.call(this[i], i, this[i]) === false) {
        // End the loop early
        return this;
      }
    }
    // Return `this` to allow chained DOM operations
    return this;
  }
  // eslint-disable-next-line
  function html(html) {
    if (typeof html === 'undefined') {
      return this[0] ? this[0].innerHTML : undefined;
    }

    for (var i = 0; i < this.length; i += 1) {
      this[i].innerHTML = html;
    }
    return this;
  }
  // eslint-disable-next-line
  function text(text) {
    if (typeof text === 'undefined') {
      if (this[0]) {
        return this[0].textContent.trim();
      }
      return null;
    }

    for (var i = 0; i < this.length; i += 1) {
      this[i].textContent = text;
    }
    return this;
  }
  function is(selector) {
    var el = this[0];
    var compareWith;
    var i;
    if (!el || typeof selector === 'undefined') { return false; }
    if (typeof selector === 'string') {
      if (el.matches) { return el.matches(selector); }
      else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); }
      else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); }

      compareWith = $(selector);
      for (i = 0; i < compareWith.length; i += 1) {
        if (compareWith[i] === el) { return true; }
      }
      return false;
    } else if (selector === doc) { return el === doc; }
    else if (selector === win) { return el === win; }

    if (selector.nodeType || selector instanceof Dom7) {
      compareWith = selector.nodeType ? [selector] : selector;
      for (i = 0; i < compareWith.length; i += 1) {
        if (compareWith[i] === el) { return true; }
      }
      return false;
    }
    return false;
  }
  function index() {
    var child = this[0];
    var i;
    if (child) {
      i = 0;
      // eslint-disable-next-line
      while ((child = child.previousSibling) !== null) {
        if (child.nodeType === 1) { i += 1; }
      }
      return i;
    }
    return undefined;
  }
  // eslint-disable-next-line
  function eq(index) {
    if (typeof index === 'undefined') { return this; }
    var length = this.length;
    var returnIndex;
    if (index > length - 1) {
      return new Dom7([]);
    }
    if (index < 0) {
      returnIndex = length + index;
      if (returnIndex < 0) { return new Dom7([]); }
      return new Dom7([this[returnIndex]]);
    }
    return new Dom7([this[index]]);
  }
  function append() {
    var args = [], len = arguments.length;
    while ( len-- ) args[ len ] = arguments[ len ];

    var newChild;

    for (var k = 0; k < args.length; k += 1) {
      newChild = args[k];
      for (var i = 0; i < this.length; i += 1) {
        if (typeof newChild === 'string') {
          var tempDiv = doc.createElement('div');
          tempDiv.innerHTML = newChild;
          while (tempDiv.firstChild) {
            this[i].appendChild(tempDiv.firstChild);
          }
        } else if (newChild instanceof Dom7) {
          for (var j = 0; j < newChild.length; j += 1) {
            this[i].appendChild(newChild[j]);
          }
        } else {
          this[i].appendChild(newChild);
        }
      }
    }

    return this;
  }
  function prepend(newChild) {
    var i;
    var j;
    for (i = 0; i < this.length; i += 1) {
      if (typeof newChild === 'string') {
        var tempDiv = doc.createElement('div');
        tempDiv.innerHTML = newChild;
        for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {
          this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
        }
      } else if (newChild instanceof Dom7) {
        for (j = 0; j < newChild.length; j += 1) {
          this[i].insertBefore(newChild[j], this[i].childNodes[0]);
        }
      } else {
        this[i].insertBefore(newChild, this[i].childNodes[0]);
      }
    }
    return this;
  }
  function next(selector) {
    if (this.length > 0) {
      if (selector) {
        if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {
          return new Dom7([this[0].nextElementSibling]);
        }
        return new Dom7([]);
      }

      if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); }
      return new Dom7([]);
    }
    return new Dom7([]);
  }
  function nextAll(selector) {
    var nextEls = [];
    var el = this[0];
    if (!el) { return new Dom7([]); }
    while (el.nextElementSibling) {
      var next = el.nextElementSibling; // eslint-disable-line
      if (selector) {
        if ($(next).is(selector)) { nextEls.push(next); }
      } else { nextEls.push(next); }
      el = next;
    }
    return new Dom7(nextEls);
  }
  function prev(selector) {
    if (this.length > 0) {
      var el = this[0];
      if (selector) {
        if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {
          return new Dom7([el.previousElementSibling]);
        }
        return new Dom7([]);
      }

      if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); }
      return new Dom7([]);
    }
    return new Dom7([]);
  }
  function prevAll(selector) {
    var prevEls = [];
    var el = this[0];
    if (!el) { return new Dom7([]); }
    while (el.previousElementSibling) {
      var prev = el.previousElementSibling; // eslint-disable-line
      if (selector) {
        if ($(prev).is(selector)) { prevEls.push(prev); }
      } else { prevEls.push(prev); }
      el = prev;
    }
    return new Dom7(prevEls);
  }
  function parent(selector) {
    var parents = []; // eslint-disable-line
    for (var i = 0; i < this.length; i += 1) {
      if (this[i].parentNode !== null) {
        if (selector) {
          if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); }
        } else {
          parents.push(this[i].parentNode);
        }
      }
    }
    return $(unique(parents));
  }
  function parents(selector) {
    var parents = []; // eslint-disable-line
    for (var i = 0; i < this.length; i += 1) {
      var parent = this[i].parentNode; // eslint-disable-line
      while (parent) {
        if (selector) {
          if ($(parent).is(selector)) { parents.push(parent); }
        } else {
          parents.push(parent);
        }
        parent = parent.parentNode;
      }
    }
    return $(unique(parents));
  }
  function closest(selector) {
    var closest = this; // eslint-disable-line
    if (typeof selector === 'undefined') {
      return new Dom7([]);
    }
    if (!closest.is(selector)) {
      closest = closest.parents(selector).eq(0);
    }
    return closest;
  }
  function find(selector) {
    var foundElements = [];
    for (var i = 0; i < this.length; i += 1) {
      var found = this[i].querySelectorAll(selector);
      for (var j = 0; j < found.length; j += 1) {
        foundElements.push(found[j]);
      }
    }
    return new Dom7(foundElements);
  }
  function children(selector) {
    var children = []; // eslint-disable-line
    for (var i = 0; i < this.length; i += 1) {
      var childNodes = this[i].childNodes;

      for (var j = 0; j < childNodes.length; j += 1) {
        if (!selector) {
          if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); }
        } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {
          children.push(childNodes[j]);
        }
      }
    }
    return new Dom7(unique(children));
  }
  function remove() {
    for (var i = 0; i < this.length; i += 1) {
      if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); }
    }
    return this;
  }
  function add() {
    var args = [], len = arguments.length;
    while ( len-- ) args[ len ] = arguments[ len ];

    var dom = this;
    var i;
    var j;
    for (i = 0; i < args.length; i += 1) {
      var toAdd = $(args[i]);
      for (j = 0; j < toAdd.length; j += 1) {
        dom[dom.length] = toAdd[j];
        dom.length += 1;
      }
    }
    return dom;
  }

  var Methods = {
    addClass: addClass,
    removeClass: removeClass,
    hasClass: hasClass,
    toggleClass: toggleClass,
    attr: attr,
    removeAttr: removeAttr,
    data: data,
    transform: transform,
    transition: transition,
    on: on,
    off: off,
    trigger: trigger,
    transitionEnd: transitionEnd,
    outerWidth: outerWidth,
    outerHeight: outerHeight,
    offset: offset,
    css: css,
    each: each,
    html: html,
    text: text,
    is: is,
    index: index,
    eq: eq,
    append: append,
    prepend: prepend,
    next: next,
    nextAll: nextAll,
    prev: prev,
    prevAll: prevAll,
    parent: parent,
    parents: parents,
    closest: closest,
    find: find,
    children: children,
    remove: remove,
    add: add,
    styles: styles,
  };

  Object.keys(Methods).forEach(function (methodName) {
    $.fn[methodName] = $.fn[methodName] || Methods[methodName];
  });

  var Utils = {
    deleteProps: function deleteProps(obj) {
      var object = obj;
      Object.keys(object).forEach(function (key) {
        try {
          object[key] = null;
        } catch (e) {
          // no getter for object
        }
        try {
          delete object[key];
        } catch (e) {
          // something got wrong
        }
      });
    },
    nextTick: function nextTick(callback, delay) {
      if ( delay === void 0 ) delay = 0;

      return setTimeout(callback, delay);
    },
    now: function now() {
      return Date.now();
    },
    getTranslate: function getTranslate(el, axis) {
      if ( axis === void 0 ) axis = 'x';

      var matrix;
      var curTransform;
      var transformMatrix;

      var curStyle = win.getComputedStyle(el, null);

      if (win.WebKitCSSMatrix) {
        curTransform = curStyle.transform || curStyle.webkitTransform;
        if (curTransform.split(',').length > 6) {
          curTransform = curTransform.split(',').map(function (a) { return a.replace(',', '.'); }).join(',');
        }
        // Some old versions of Webkit choke when 'none' is passed; pass
        // empty string instead in this case
        transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
      } else {
        transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1,0,0,1,');
        matrix = transformMatrix.toString().split(',');
      }

      if (axis === 'x') {
        // Latest Chrome and webkits Fix
        if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; }
        // Crazy IE10 Matrix
        else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); }
        // Normal Browsers
        else { curTransform = parseFloat(matrix[4]); }
      }
      if (axis === 'y') {
        // Latest Chrome and webkits Fix
        if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; }
        // Crazy IE10 Matrix
        else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); }
        // Normal Browsers
        else { curTransform = parseFloat(matrix[5]); }
      }
      return curTransform || 0;
    },
    parseUrlQuery: function parseUrlQuery(url) {
      var query = {};
      var urlToParse = url || win.location.href;
      var i;
      var params;
      var param;
      var length;
      if (typeof urlToParse === 'string' && urlToParse.length) {
        urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : '';
        params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; });
        length = params.length;

        for (i = 0; i < length; i += 1) {
          param = params[i].replace(/#\S+/g, '').split('=');
          query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';
        }
      }
      return query;
    },
    isObject: function isObject(o) {
      return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;
    },
    extend: function extend() {
      var args = [], len$1 = arguments.length;
      while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ];

      var to = Object(args[0]);
      for (var i = 1; i < args.length; i += 1) {
        var nextSource = args[i];
        if (nextSource !== undefined && nextSource !== null) {
          var keysArray = Object.keys(Object(nextSource));
          for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
            var nextKey = keysArray[nextIndex];
            var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
            if (desc !== undefined && desc.enumerable) {
              if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {
                Utils.extend(to[nextKey], nextSource[nextKey]);
              } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {
                to[nextKey] = {};
                Utils.extend(to[nextKey], nextSource[nextKey]);
              } else {
                to[nextKey] = nextSource[nextKey];
              }
            }
          }
        }
      }
      return to;
    },
  };

  var Support = (function Support() {
    var testDiv = doc.createElement('div');
    return {
      touch: (win.Modernizr && win.Modernizr.touch === true) || (function checkTouch() {
        return !!((win.navigator.maxTouchPoints > 0) || ('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch));
      }()),

      pointerEvents: !!(win.navigator.pointerEnabled || win.PointerEvent || ('maxTouchPoints' in win.navigator && win.navigator.maxTouchPoints > 0)),
      prefixedPointerEvents: !!win.navigator.msPointerEnabled,

      transition: (function checkTransition() {
        var style = testDiv.style;
        return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);
      }()),
      transforms3d: (win.Modernizr && win.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {
        var style = testDiv.style;
        return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);
      }()),

      flexbox: (function checkFlexbox() {
        var style = testDiv.style;
        var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');
        for (var i = 0; i < styles.length; i += 1) {
          if (styles[i] in style) { return true; }
        }
        return false;
      }()),

      observer: (function checkObserver() {
        return ('MutationObserver' in win || 'WebkitMutationObserver' in win);
      }()),

      passiveListener: (function checkPassiveListener() {
        var supportsPassive = false;
        try {
          var opts = Object.defineProperty({}, 'passive', {
            // eslint-disable-next-line
            get: function get() {
              supportsPassive = true;
            },
          });
          win.addEventListener('testPassiveListener', null, opts);
        } catch (e) {
          // No support
        }
        return supportsPassive;
      }()),

      gestures: (function checkGestures() {
        return 'ongesturestart' in win;
      }()),
    };
  }());

  var Browser = (function Browser() {
    function isSafari() {
      var ua = win.navigator.userAgent.toLowerCase();
      return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);
    }
    return {
      isIE: !!win.navigator.userAgent.match(/Trident/g) || !!win.navigator.userAgent.match(/MSIE/g),
      isEdge: !!win.navigator.userAgent.match(/Edge/g),
      isSafari: isSafari(),
      isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),
    };
  }());

  var SwiperClass = function SwiperClass(params) {
    if ( params === void 0 ) params = {};

    var self = this;
    self.params = params;

    // Events
    self.eventsListeners = {};

    if (self.params && self.params.on) {
      Object.keys(self.params.on).forEach(function (eventName) {
        self.on(eventName, self.params.on[eventName]);
      });
    }
  };

  var staticAccessors = { components: { configurable: true } };

  SwiperClass.prototype.on = function on (events, handler, priority) {
    var self = this;
    if (typeof handler !== 'function') { return self; }
    var method = priority ? 'unshift' : 'push';
    events.split(' ').forEach(function (event) {
      if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; }
      self.eventsListeners[event][method](handler);
    });
    return self;
  };

  SwiperClass.prototype.once = function once (events, handler, priority) {
    var self = this;
    if (typeof handler !== 'function') { return self; }
    function onceHandler() {
        var args = [], len = arguments.length;
        while ( len-- ) args[ len ] = arguments[ len ];

      handler.apply(self, args);
      self.off(events, onceHandler);
      if (onceHandler.f7proxy) {
        delete onceHandler.f7proxy;
      }
    }
    onceHandler.f7proxy = handler;
    return self.on(events, onceHandler, priority);
  };

  SwiperClass.prototype.off = function off (events, handler) {
    var self = this;
    if (!self.eventsListeners) { return self; }
    events.split(' ').forEach(function (event) {
      if (typeof handler === 'undefined') {
        self.eventsListeners[event] = [];
      } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {
        self.eventsListeners[event].forEach(function (eventHandler, index) {
          if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {
            self.eventsListeners[event].splice(index, 1);
          }
        });
      }
    });
    return self;
  };

  SwiperClass.prototype.emit = function emit () {
      var args = [], len = arguments.length;
      while ( len-- ) args[ len ] = arguments[ len ];

    var self = this;
    if (!self.eventsListeners) { return self; }
    var events;
    var data;
    var context;
    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
      events = args[0];
      data = args.slice(1, args.length);
      context = self;
    } else {
      events = args[0].events;
      data = args[0].data;
      context = args[0].context || self;
    }
    var eventsArray = Array.isArray(events) ? events : events.split(' ');
    eventsArray.forEach(function (event) {
      if (self.eventsListeners && self.eventsListeners[event]) {
        var handlers = [];
        self.eventsListeners[event].forEach(function (eventHandler) {
          handlers.push(eventHandler);
        });
        handlers.forEach(function (eventHandler) {
          eventHandler.apply(context, data);
        });
      }
    });
    return self;
  };

  SwiperClass.prototype.useModulesParams = function useModulesParams (instanceParams) {
    var instance = this;
    if (!instance.modules) { return; }
    Object.keys(instance.modules).forEach(function (moduleName) {
      var module = instance.modules[moduleName];
      // Extend params
      if (module.params) {
        Utils.extend(instanceParams, module.params);
      }
    });
  };

  SwiperClass.prototype.useModules = function useModules (modulesParams) {
      if ( modulesParams === void 0 ) modulesParams = {};

    var instance = this;
    if (!instance.modules) { return; }
    Object.keys(instance.modules).forEach(function (moduleName) {
      var module = instance.modules[moduleName];
      var moduleParams = modulesParams[moduleName] || {};
      // Extend instance methods and props
      if (module.instance) {
        Object.keys(module.instance).forEach(function (modulePropName) {
          var moduleProp = module.instance[modulePropName];
          if (typeof moduleProp === 'function') {
            instance[modulePropName] = moduleProp.bind(instance);
          } else {
            instance[modulePropName] = moduleProp;
          }
        });
      }
      // Add event listeners
      if (module.on && instance.on) {
        Object.keys(module.on).forEach(function (moduleEventName) {
          instance.on(moduleEventName, module.on[moduleEventName]);
        });
      }

      // Module create callback
      if (module.create) {
        module.create.bind(instance)(moduleParams);
      }
    });
  };

  staticAccessors.components.set = function (components) {
    var Class = this;
    if (!Class.use) { return; }
    Class.use(components);
  };

  SwiperClass.installModule = function installModule (module) {
      var params = [], len = arguments.length - 1;
      while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];

    var Class = this;
    if (!Class.prototype.modules) { Class.prototype.modules = {}; }
    var name = module.name || (((Object.keys(Class.prototype.modules).length) + "_" + (Utils.now())));
    Class.prototype.modules[name] = module;
    // Prototype
    if (module.proto) {
      Object.keys(module.proto).forEach(function (key) {
        Class.prototype[key] = module.proto[key];
      });
    }
    // Class
    if (module.static) {
      Object.keys(module.static).forEach(function (key) {
        Class[key] = module.static[key];
      });
    }
    // Callback
    if (module.install) {
      module.install.apply(Class, params);
    }
    return Class;
  };

  SwiperClass.use = function use (module) {
      var params = [], len = arguments.length - 1;
      while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];

    var Class = this;
    if (Array.isArray(module)) {
      module.forEach(function (m) { return Class.installModule(m); });
      return Class;
    }
    return Class.installModule.apply(Class, [ module ].concat( params ));
  };

  Object.defineProperties( SwiperClass, staticAccessors );

  function updateSize () {
    var swiper = this;
    var width;
    var height;
    var $el = swiper.$el;
    if (typeof swiper.params.width !== 'undefined') {
      width = swiper.params.width;
    } else {
      width = $el[0].clientWidth;
    }
    if (typeof swiper.params.height !== 'undefined') {
      height = swiper.params.height;
    } else {
      height = $el[0].clientHeight;
    }
    if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {
      return;
    }

    // Subtract paddings
    width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);
    height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);

    Utils.extend(swiper, {
      width: width,
      height: height,
      size: swiper.isHorizontal() ? width : height,
    });
  }

  function updateSlides () {
    var swiper = this;
    var params = swiper.params;

    var $wrapperEl = swiper.$wrapperEl;
    var swiperSize = swiper.size;
    var rtl = swiper.rtlTranslate;
    var wrongRTL = swiper.wrongRTL;
    var isVirtual = swiper.virtual && params.virtual.enabled;
    var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
    var slides = $wrapperEl.children(("." + (swiper.params.slideClass)));
    var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
    var snapGrid = [];
    var slidesGrid = [];
    var slidesSizesGrid = [];

    var offsetBefore = params.slidesOffsetBefore;
    if (typeof offsetBefore === 'function') {
      offsetBefore = params.slidesOffsetBefore.call(swiper);
    }

    var offsetAfter = params.slidesOffsetAfter;
    if (typeof offsetAfter === 'function') {
      offsetAfter = params.slidesOffsetAfter.call(swiper);
    }

    var previousSnapGridLength = swiper.snapGrid.length;
    var previousSlidesGridLength = swiper.snapGrid.length;

    var spaceBetween = params.spaceBetween;
    var slidePosition = -offsetBefore;
    var prevSlideSize = 0;
    var index = 0;
    if (typeof swiperSize === 'undefined') {
      return;
    }
    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
      spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;
    }

    swiper.virtualSize = -spaceBetween;

    // reset margins
    if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); }
    else { slides.css({ marginRight: '', marginBottom: '' }); }

    var slidesNumberEvenToRows;
    if (params.slidesPerColumn > 1) {
      if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {
        slidesNumberEvenToRows = slidesLength;
      } else {
        slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;
      }
      if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {
        slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);
      }
    }

    // Calc slides
    var slideSize;
    var slidesPerColumn = params.slidesPerColumn;
    var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;
    var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);
    for (var i = 0; i < slidesLength; i += 1) {
      slideSize = 0;
      var slide = slides.eq(i);
      if (params.slidesPerColumn > 1) {
        // Set slides order
        var newSlideOrderIndex = (void 0);
        var column = (void 0);
        var row = (void 0);
        if (
          (params.slidesPerColumnFill === 'column')
          || (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1)
        ) {
          if (params.slidesPerColumnFill === 'column') {
            column = Math.floor(i / slidesPerColumn);
            row = i - (column * slidesPerColumn);
            if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {
              row += 1;
              if (row >= slidesPerColumn) {
                row = 0;
                column += 1;
              }
            }
          } else {
            var groupIndex = Math.floor(i / params.slidesPerGroup);
            row = Math.floor(i / params.slidesPerView) - groupIndex * params.slidesPerColumn;
            column = i - row * params.slidesPerView - groupIndex * params.slidesPerView;
          }
          newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);
          slide
            .css({
              '-webkit-box-ordinal-group': newSlideOrderIndex,
              '-moz-box-ordinal-group': newSlideOrderIndex,
              '-ms-flex-order': newSlideOrderIndex,
              '-webkit-order': newSlideOrderIndex,
              order: newSlideOrderIndex,
            });
        } else {
          row = Math.floor(i / slidesPerRow);
          column = i - (row * slidesPerRow);
        }
        slide
          .css(
            ("margin-" + (swiper.isHorizontal() ? 'top' : 'left')),
            (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + "px"))
          )
          .attr('data-swiper-column', column)
          .attr('data-swiper-row', row);
      }
      if (slide.css('display') === 'none') { continue; } // eslint-disable-line

      if (params.slidesPerView === 'auto') {
        var slideStyles = win.getComputedStyle(slide[0], null);
        var currentTransform = slide[0].style.transform;
        var currentWebKitTransform = slide[0].style.webkitTransform;
        if (currentTransform) {
          slide[0].style.transform = 'none';
        }
        if (currentWebKitTransform) {
          slide[0].style.webkitTransform = 'none';
        }
        if (params.roundLengths) {
          slideSize = swiper.isHorizontal()
            ? slide.outerWidth(true)
            : slide.outerHeight(true);
        } else {
          // eslint-disable-next-line
          if (swiper.isHorizontal()) {
            var width = parseFloat(slideStyles.getPropertyValue('width'));
            var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));
            var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));
            var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));
            var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));
            var boxSizing = slideStyles.getPropertyValue('box-sizing');
            if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {
              slideSize = width + marginLeft + marginRight;
            } else {
              slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;
            }
          } else {
            var height = parseFloat(slideStyles.getPropertyValue('height'));
            var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));
            var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));
            var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));
            var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));
            var boxSizing$1 = slideStyles.getPropertyValue('box-sizing');
            if (boxSizing$1 && boxSizing$1 === 'border-box' && !Browser.isIE) {
              slideSize = height + marginTop + marginBottom;
            } else {
              slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;
            }
          }
        }
        if (currentTransform) {
          slide[0].style.transform = currentTransform;
        }
        if (currentWebKitTransform) {
          slide[0].style.webkitTransform = currentWebKitTransform;
        }
        if (params.roundLengths) { slideSize = Math.floor(slideSize); }
      } else {
        slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;
        if (params.roundLengths) { slideSize = Math.floor(slideSize); }

        if (slides[i]) {
          if (swiper.isHorizontal()) {
            slides[i].style.width = slideSize + "px";
          } else {
            slides[i].style.height = slideSize + "px";
          }
        }
      }
      if (slides[i]) {
        slides[i].swiperSlideSize = slideSize;
      }
      slidesSizesGrid.push(slideSize);


      if (params.centeredSlides) {
        slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;
        if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }
        if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }
        if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; }
        if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }
        if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }
        slidesGrid.push(slidePosition);
      } else {
        if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }
        if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }
        slidesGrid.push(slidePosition);
        slidePosition = slidePosition + slideSize + spaceBetween;
      }

      swiper.virtualSize += slideSize + spaceBetween;

      prevSlideSize = slideSize;

      index += 1;
    }
    swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
    var newSlidesGrid;

    if (
      rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
      $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") });
    }
    if (!Support.flexbox || params.setWrapperSize) {
      if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); }
      else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + "px") }); }
    }

    if (params.slidesPerColumn > 1) {
      swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;
      swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;
      if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); }
      else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + "px") }); }
      if (params.centeredSlides) {
        newSlidesGrid = [];
        for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {
          var slidesGridItem = snapGrid[i$1];
          if (params.roundLengths) { slidesGridItem = Math.floor(slidesGridItem); }
          if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(slidesGridItem); }
        }
        snapGrid = newSlidesGrid;
      }
    }

    // Remove last grid elements depending on width
    if (!params.centeredSlides) {
      newSlidesGrid = [];
      for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {
        var slidesGridItem$1 = snapGrid[i$2];
        if (params.roundLengths) { slidesGridItem$1 = Math.floor(slidesGridItem$1); }
        if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {
          newSlidesGrid.push(slidesGridItem$1);
        }
      }
      snapGrid = newSlidesGrid;
      if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
        snapGrid.push(swiper.virtualSize - swiperSize);
      }
    }
    if (snapGrid.length === 0) { snapGrid = [0]; }

    if (params.spaceBetween !== 0) {
      if (swiper.isHorizontal()) {
        if (rtl) { slides.css({ marginLeft: (spaceBetween + "px") }); }
        else { slides.css({ marginRight: (spaceBetween + "px") }); }
      } else { slides.css({ marginBottom: (spaceBetween + "px") }); }
    }

    if (params.centerInsufficientSlides) {
      var allSlidesSize = 0;
      slidesSizesGrid.forEach(function (slideSizeValue) {
        allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
      });
      allSlidesSize -= params.spaceBetween;
      if (allSlidesSize < swiperSize) {
        var allSlidesOffset = (swiperSize - allSlidesSize) / 2;
        snapGrid.forEach(function (snap, snapIndex) {
          snapGrid[snapIndex] = snap - allSlidesOffset;
        });
        slidesGrid.forEach(function (snap, snapIndex) {
          slidesGrid[snapIndex] = snap + allSlidesOffset;
        });
      }
    }

    Utils.extend(swiper, {
      slides: slides,
      snapGrid: snapGrid,
      slidesGrid: slidesGrid,
      slidesSizesGrid: slidesSizesGrid,
    });

    if (slidesLength !== previousSlidesLength) {
      swiper.emit('slidesLengthChange');
    }
    if (snapGrid.length !== previousSnapGridLength) {
      if (swiper.params.watchOverflow) { swiper.checkOverflow(); }
      swiper.emit('snapGridLengthChange');
    }
    if (slidesGrid.length !== previousSlidesGridLength) {
      swiper.emit('slidesGridLengthChange');
    }

    if (params.watchSlidesProgress || params.watchSlidesVisibility) {
      swiper.updateSlidesOffset();
    }
  }

  function updateAutoHeight (speed) {
    var swiper = this;
    var activeSlides = [];
    var newHeight = 0;
    var i;
    if (typeof speed === 'number') {
      swiper.setTransition(speed);
    } else if (speed === true) {
      swiper.setTransition(swiper.params.speed);
    }
    // Find slides currently in view
    if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
        var index = swiper.activeIndex + i;
        if (index > swiper.slides.length) { break; }
        activeSlides.push(swiper.slides.eq(index)[0]);
      }
    } else {
      activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);
    }

    // Find new height from highest slide in view
    for (i = 0; i < activeSlides.length; i += 1) {
      if (typeof activeSlides[i] !== 'undefined') {
        var height = activeSlides[i].offsetHeight;
        newHeight = height > newHeight ? height : newHeight;
      }
    }

    // Update Height
    if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + "px")); }
  }

  function updateSlidesOffset () {
    var swiper = this;
    var slides = swiper.slides;
    for (var i = 0; i < slides.length; i += 1) {
      slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
    }
  }

  function updateSlidesProgress (translate) {
    if ( translate === void 0 ) translate = (this && this.translate) || 0;

    var swiper = this;
    var params = swiper.params;

    var slides = swiper.slides;
    var rtl = swiper.rtlTranslate;

    if (slides.length === 0) { return; }
    if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); }

    var offsetCenter = -translate;
    if (rtl) { offsetCenter = translate; }

    // Visible Slides
    slides.removeClass(params.slideVisibleClass);

    swiper.visibleSlidesIndexes = [];
    swiper.visibleSlides = [];

    for (var i = 0; i < slides.length; i += 1) {
      var slide = slides[i];
      var slideProgress = (
        (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset
      ) / (slide.swiperSlideSize + params.spaceBetween);
      if (params.watchSlidesVisibility) {
        var slideBefore = -(offsetCenter - slide.swiperSlideOffset);
        var slideAfter = slideBefore + swiper.slidesSizesGrid[i];
        var isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)
                  || (slideAfter > 1 && slideAfter <= swiper.size)
                  || (slideBefore <= 0 && slideAfter >= swiper.size);
        if (isVisible) {
          swiper.visibleSlides.push(slide);
          swiper.visibleSlidesIndexes.push(i);
          slides.eq(i).addClass(params.slideVisibleClass);
        }
      }
      slide.progress = rtl ? -slideProgress : slideProgress;
    }
    swiper.visibleSlides = $(swiper.visibleSlides);
  }

  function updateProgress (translate) {
    if ( translate === void 0 ) translate = (this && this.translate) || 0;

    var swiper = this;
    var params = swiper.params;

    var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
    var progress = swiper.progress;
    var isBeginning = swiper.isBeginning;
    var isEnd = swiper.isEnd;
    var wasBeginning = isBeginning;
    var wasEnd = isEnd;
    if (translatesDiff === 0) {
      progress = 0;
      isBeginning = true;
      isEnd = true;
    } else {
      progress = (translate - swiper.minTranslate()) / (translatesDiff);
      isBeginning = progress <= 0;
      isEnd = progress >= 1;
    }
    Utils.extend(swiper, {
      progress: progress,
      isBeginning: isBeginning,
      isEnd: isEnd,
    });

    if (params.watchSlidesProgress || params.watchSlidesVisibility) { swiper.updateSlidesProgress(translate); }

    if (isBeginning && !wasBeginning) {
      swiper.emit('reachBeginning toEdge');
    }
    if (isEnd && !wasEnd) {
      swiper.emit('reachEnd toEdge');
    }
    if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {
      swiper.emit('fromEdge');
    }

    swiper.emit('progress', progress);
  }

  function updateSlidesClasses () {
    var swiper = this;

    var slides = swiper.slides;
    var params = swiper.params;
    var $wrapperEl = swiper.$wrapperEl;
    var activeIndex = swiper.activeIndex;
    var realIndex = swiper.realIndex;
    var isVirtual = swiper.virtual && params.virtual.enabled;

    slides.removeClass(((params.slideActiveClass) + " " + (params.slideNextClass) + " " + (params.slidePrevClass) + " " + (params.slideDuplicateActiveClass) + " " + (params.slideDuplicateNextClass) + " " + (params.slideDuplicatePrevClass)));

    var activeSlide;
    if (isVirtual) {
      activeSlide = swiper.$wrapperEl.find(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + activeIndex + "\"]"));
    } else {
      activeSlide = slides.eq(activeIndex);
    }

    // Active classes
    activeSlide.addClass(params.slideActiveClass);

    if (params.loop) {
      // Duplicate to all looped slides
      if (activeSlide.hasClass(params.slideDuplicateClass)) {
        $wrapperEl
          .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + realIndex + "\"]"))
          .addClass(params.slideDuplicateActiveClass);
      } else {
        $wrapperEl
          .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]"))
          .addClass(params.slideDuplicateActiveClass);
      }
    }
    // Next Slide
    var nextSlide = activeSlide.nextAll(("." + (params.slideClass))).eq(0).addClass(params.slideNextClass);
    if (params.loop && nextSlide.length === 0) {
      nextSlide = slides.eq(0);
      nextSlide.addClass(params.slideNextClass);
    }
    // Prev Slide
    var prevSlide = activeSlide.prevAll(("." + (params.slideClass))).eq(0).addClass(params.slidePrevClass);
    if (params.loop && prevSlide.length === 0) {
      prevSlide = slides.eq(-1);
      prevSlide.addClass(params.slidePrevClass);
    }
    if (params.loop) {
      // Duplicate to all looped slides
      if (nextSlide.hasClass(params.slideDuplicateClass)) {
        $wrapperEl
          .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + (nextSlide.attr('data-swiper-slide-index')) + "\"]"))
          .addClass(params.slideDuplicateNextClass);
      } else {
        $wrapperEl
          .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + (nextSlide.attr('data-swiper-slide-index')) + "\"]"))
          .addClass(params.slideDuplicateNextClass);
      }
      if (prevSlide.hasClass(params.slideDuplicateClass)) {
        $wrapperEl
          .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + (prevSlide.attr('data-swiper-slide-index')) + "\"]"))
          .addClass(params.slideDuplicatePrevClass);
      } else {
        $wrapperEl
          .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + (prevSlide.attr('data-swiper-slide-index')) + "\"]"))
          .addClass(params.slideDuplicatePrevClass);
      }
    }
  }

  function updateActiveIndex (newActiveIndex) {
    var swiper = this;
    var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
    var slidesGrid = swiper.slidesGrid;
    var snapGrid = swiper.snapGrid;
    var params = swiper.params;
    var previousIndex = swiper.activeIndex;
    var previousRealIndex = swiper.realIndex;
    var previousSnapIndex = swiper.snapIndex;
    var activeIndex = newActiveIndex;
    var snapIndex;
    if (typeof activeIndex === 'undefined') {
      for (var i = 0; i < slidesGrid.length; i += 1) {
        if (typeof slidesGrid[i + 1] !== 'undefined') {
          if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {
            activeIndex = i;
          } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
            activeIndex = i + 1;
          }
        } else if (translate >= slidesGrid[i]) {
          activeIndex = i;
        }
      }
      // Normalize slideIndex
      if (params.normalizeSlideIndex) {
        if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; }
      }
    }
    if (snapGrid.indexOf(translate) >= 0) {
      snapIndex = snapGrid.indexOf(translate);
    } else {
      snapIndex = Math.floor(activeIndex / params.slidesPerGroup);
    }
    if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }
    if (activeIndex === previousIndex) {
      if (snapIndex !== previousSnapIndex) {
        swiper.snapIndex = snapIndex;
        swiper.emit('snapIndexChange');
      }
      return;
    }

    // Get real index
    var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);

    Utils.extend(swiper, {
      snapIndex: snapIndex,
      realIndex: realIndex,
      previousIndex: previousIndex,
      activeIndex: activeIndex,
    });
    swiper.emit('activeIndexChange');
    swiper.emit('snapIndexChange');
    if (previousRealIndex !== realIndex) {
      swiper.emit('realIndexChange');
    }
    if (swiper.initialized || swiper.runCallbacksOnInit) {
      swiper.emit('slideChange');
    }
  }

  function updateClickedSlide (e) {
    var swiper = this;
    var params = swiper.params;
    var slide = $(e.target).closest(("." + (params.slideClass)))[0];
    var slideFound = false;
    if (slide) {
      for (var i = 0; i < swiper.slides.length; i += 1) {
        if (swiper.slides[i] === slide) { slideFound = true; }
      }
    }

    if (slide && slideFound) {
      swiper.clickedSlide = slide;
      if (swiper.virtual && swiper.params.virtual.enabled) {
        swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);
      } else {
        swiper.clickedIndex = $(slide).index();
      }
    } else {
      swiper.clickedSlide = undefined;
      swiper.clickedIndex = undefined;
      return;
    }
    if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
      swiper.slideToClickedSlide();
    }
  }

  var update = {
    updateSize: updateSize,
    updateSlides: updateSlides,
    updateAutoHeight: updateAutoHeight,
    updateSlidesOffset: updateSlidesOffset,
    updateSlidesProgress: updateSlidesProgress,
    updateProgress: updateProgress,
    updateSlidesClasses: updateSlidesClasses,
    updateActiveIndex: updateActiveIndex,
    updateClickedSlide: updateClickedSlide,
  };

  function getTranslate (axis) {
    if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y';

    var swiper = this;

    var params = swiper.params;
    var rtl = swiper.rtlTranslate;
    var translate = swiper.translate;
    var $wrapperEl = swiper.$wrapperEl;

    if (params.virtualTranslate) {
      return rtl ? -translate : translate;
    }

    var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);
    if (rtl) { currentTranslate = -currentTranslate; }

    return currentTranslate || 0;
  }

  function setTranslate (translate, byController) {
    var swiper = this;
    var rtl = swiper.rtlTranslate;
    var params = swiper.params;
    var $wrapperEl = swiper.$wrapperEl;
    var progress = swiper.progress;
    var x = 0;
    var y = 0;
    var z = 0;

    if (swiper.isHorizontal()) {
      x = rtl ? -translate : translate;
    } else {
      y = translate;
    }

    if (params.roundLengths) {
      x = Math.floor(x);
      y = Math.floor(y);
    }

    if (!params.virtualTranslate) {
      if (Support.transforms3d) { $wrapperEl.transform(("translate3d(" + x + "px, " + y + "px, " + z + "px)")); }
      else { $wrapperEl.transform(("translate(" + x + "px, " + y + "px)")); }
    }
    swiper.previousTranslate = swiper.translate;
    swiper.translate = swiper.isHorizontal() ? x : y;

    // Check if we need to update progress
    var newProgress;
    var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
    if (translatesDiff === 0) {
      newProgress = 0;
    } else {
      newProgress = (translate - swiper.minTranslate()) / (translatesDiff);
    }
    if (newProgress !== progress) {
      swiper.updateProgress(translate);
    }

    swiper.emit('setTranslate', swiper.translate, byController);
  }

  function minTranslate () {
    return (-this.snapGrid[0]);
  }

  function maxTranslate () {
    return (-this.snapGrid[this.snapGrid.length - 1]);
  }

  var translate = {
    getTranslate: getTranslate,
    setTranslate: setTranslate,
    minTranslate: minTranslate,
    maxTranslate: maxTranslate,
  };

  function setTransition (duration, byController) {
    var swiper = this;

    swiper.$wrapperEl.transition(duration);

    swiper.emit('setTransition', duration, byController);
  }

  function transitionStart (runCallbacks, direction) {
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var activeIndex = swiper.activeIndex;
    var params = swiper.params;
    var previousIndex = swiper.previousIndex;
    if (params.autoHeight) {
      swiper.updateAutoHeight();
    }

    var dir = direction;
    if (!dir) {
      if (activeIndex > previousIndex) { dir = 'next'; }
      else if (activeIndex < previousIndex) { dir = 'prev'; }
      else { dir = 'reset'; }
    }

    swiper.emit('transitionStart');

    if (runCallbacks && activeIndex !== previousIndex) {
      if (dir === 'reset') {
        swiper.emit('slideResetTransitionStart');
        return;
      }
      swiper.emit('slideChangeTransitionStart');
      if (dir === 'next') {
        swiper.emit('slideNextTransitionStart');
      } else {
        swiper.emit('slidePrevTransitionStart');
      }
    }
  }

  function transitionEnd$1 (runCallbacks, direction) {
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var activeIndex = swiper.activeIndex;
    var previousIndex = swiper.previousIndex;
    swiper.animating = false;
    swiper.setTransition(0);

    var dir = direction;
    if (!dir) {
      if (activeIndex > previousIndex) { dir = 'next'; }
      else if (activeIndex < previousIndex) { dir = 'prev'; }
      else { dir = 'reset'; }
    }

    swiper.emit('transitionEnd');

    if (runCallbacks && activeIndex !== previousIndex) {
      if (dir === 'reset') {
        swiper.emit('slideResetTransitionEnd');
        return;
      }
      swiper.emit('slideChangeTransitionEnd');
      if (dir === 'next') {
        swiper.emit('slideNextTransitionEnd');
      } else {
        swiper.emit('slidePrevTransitionEnd');
      }
    }
  }

  var transition$1 = {
    setTransition: setTransition,
    transitionStart: transitionStart,
    transitionEnd: transitionEnd$1,
  };

  function slideTo (index, speed, runCallbacks, internal) {
    if ( index === void 0 ) index = 0;
    if ( speed === void 0 ) speed = this.params.speed;
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var slideIndex = index;
    if (slideIndex < 0) { slideIndex = 0; }

    var params = swiper.params;
    var snapGrid = swiper.snapGrid;
    var slidesGrid = swiper.slidesGrid;
    var previousIndex = swiper.previousIndex;
    var activeIndex = swiper.activeIndex;
    var rtl = swiper.rtlTranslate;
    if (swiper.animating && params.preventInteractionOnTransition) {
      return false;
    }

    var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);
    if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }

    if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {
      swiper.emit('beforeSlideChangeStart');
    }

    var translate = -snapGrid[snapIndex];

    // Update progress
    swiper.updateProgress(translate);

    // Normalize slideIndex
    if (params.normalizeSlideIndex) {
      for (var i = 0; i < slidesGrid.length; i += 1) {
        if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {
          slideIndex = i;
        }
      }
    }
    // Directions locks
    if (swiper.initialized && slideIndex !== activeIndex) {
      if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {
        return false;
      }
      if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
        if ((activeIndex || 0) !== slideIndex) { return false; }
      }
    }

    var direction;
    if (slideIndex > activeIndex) { direction = 'next'; }
    else if (slideIndex < activeIndex) { direction = 'prev'; }
    else { direction = 'reset'; }


    // Update Index
    if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {
      swiper.updateActiveIndex(slideIndex);
      // Update Height
      if (params.autoHeight) {
        swiper.updateAutoHeight();
      }
      swiper.updateSlidesClasses();
      if (params.effect !== 'slide') {
        swiper.setTranslate(translate);
      }
      if (direction !== 'reset') {
        swiper.transitionStart(runCallbacks, direction);
        swiper.transitionEnd(runCallbacks, direction);
      }
      return false;
    }

    if (speed === 0 || !Support.transition) {
      swiper.setTransition(0);
      swiper.setTranslate(translate);
      swiper.updateActiveIndex(slideIndex);
      swiper.updateSlidesClasses();
      swiper.emit('beforeTransitionStart', speed, internal);
      swiper.transitionStart(runCallbacks, direction);
      swiper.transitionEnd(runCallbacks, direction);
    } else {
      swiper.setTransition(speed);
      swiper.setTranslate(translate);
      swiper.updateActiveIndex(slideIndex);
      swiper.updateSlidesClasses();
      swiper.emit('beforeTransitionStart', speed, internal);
      swiper.transitionStart(runCallbacks, direction);
      if (!swiper.animating) {
        swiper.animating = true;
        if (!swiper.onSlideToWrapperTransitionEnd) {
          swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
            if (!swiper || swiper.destroyed) { return; }
            if (e.target !== this) { return; }
            swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
            swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
            swiper.onSlideToWrapperTransitionEnd = null;
            delete swiper.onSlideToWrapperTransitionEnd;
            swiper.transitionEnd(runCallbacks, direction);
          };
        }
        swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
        swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
      }
    }

    return true;
  }

  function slideToLoop (index, speed, runCallbacks, internal) {
    if ( index === void 0 ) index = 0;
    if ( speed === void 0 ) speed = this.params.speed;
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var newIndex = index;
    if (swiper.params.loop) {
      newIndex += swiper.loopedSlides;
    }

    return swiper.slideTo(newIndex, speed, runCallbacks, internal);
  }

  /* eslint no-unused-vars: "off" */
  function slideNext (speed, runCallbacks, internal) {
    if ( speed === void 0 ) speed = this.params.speed;
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var params = swiper.params;
    var animating = swiper.animating;
    if (params.loop) {
      if (animating) { return false; }
      swiper.loopFix();
      // eslint-disable-next-line
      swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
      return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
    }
    return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
  }

  /* eslint no-unused-vars: "off" */
  function slidePrev (speed, runCallbacks, internal) {
    if ( speed === void 0 ) speed = this.params.speed;
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var params = swiper.params;
    var animating = swiper.animating;
    var snapGrid = swiper.snapGrid;
    var slidesGrid = swiper.slidesGrid;
    var rtlTranslate = swiper.rtlTranslate;

    if (params.loop) {
      if (animating) { return false; }
      swiper.loopFix();
      // eslint-disable-next-line
      swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
    }
    var translate = rtlTranslate ? swiper.translate : -swiper.translate;
    function normalize(val) {
      if (val < 0) { return -Math.floor(Math.abs(val)); }
      return Math.floor(val);
    }
    var normalizedTranslate = normalize(translate);
    var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); });
    var normalizedSlidesGrid = slidesGrid.map(function (val) { return normalize(val); });

    var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];
    var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
    var prevIndex;
    if (typeof prevSnap !== 'undefined') {
      prevIndex = slidesGrid.indexOf(prevSnap);
      if (prevIndex < 0) { prevIndex = swiper.activeIndex - 1; }
    }
    return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
  }

  /* eslint no-unused-vars: "off" */
  function slideReset (speed, runCallbacks, internal) {
    if ( speed === void 0 ) speed = this.params.speed;
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
  }

  /* eslint no-unused-vars: "off" */
  function slideToClosest (speed, runCallbacks, internal) {
    if ( speed === void 0 ) speed = this.params.speed;
    if ( runCallbacks === void 0 ) runCallbacks = true;

    var swiper = this;
    var index = swiper.activeIndex;
    var snapIndex = Math.floor(index / swiper.params.slidesPerGroup);

    if (snapIndex < swiper.snapGrid.length - 1) {
      var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;

      var currentSnap = swiper.snapGrid[snapIndex];
      var nextSnap = swiper.snapGrid[snapIndex + 1];

      if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {
        index = swiper.params.slidesPerGroup;
      }
    }

    return swiper.slideTo(index, speed, runCallbacks, internal);
  }

  function slideToClickedSlide () {
    var swiper = this;
    var params = swiper.params;
    var $wrapperEl = swiper.$wrapperEl;

    var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
    var slideToIndex = swiper.clickedIndex;
    var realIndex;
    if (params.loop) {
      if (swiper.animating) { return; }
      realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);
      if (params.centeredSlides) {
        if (
          (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))
          || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))
        ) {
          swiper.loopFix();
          slideToIndex = $wrapperEl
            .children(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + (params.slideDuplicateClass) + ")"))
            .eq(0)
            .index();

          Utils.nextTick(function () {
            swiper.slideTo(slideToIndex);
          });
        } else {
          swiper.slideTo(slideToIndex);
        }
      } else if (slideToIndex > swiper.slides.length - slidesPerView) {
        swiper.loopFix();
        slideToIndex = $wrapperEl
          .children(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + (params.slideDuplicateClass) + ")"))
          .eq(0)
          .index();

        Utils.nextTick(function () {
          swiper.slideTo(slideToIndex);
        });
      } else {
        swiper.slideTo(slideToIndex);
      }
    } else {
      swiper.slideTo(slideToIndex);
    }
  }

  var slide = {
    slideTo: slideTo,
    slideToLoop: slideToLoop,
    slideNext: slideNext,
    slidePrev: slidePrev,
    slideReset: slideReset,
    slideToClosest: slideToClosest,
    slideToClickedSlide: slideToClickedSlide,
  };

  function loopCreate () {
    var swiper = this;
    var params = swiper.params;
    var $wrapperEl = swiper.$wrapperEl;
    // Remove duplicated slides
    $wrapperEl.children(("." + (params.slideClass) + "." + (params.slideDuplicateClass))).remove();

    var slides = $wrapperEl.children(("." + (params.slideClass)));

    if (params.loopFillGroupWithBlank) {
      var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);
      if (blankSlidesNum !== params.slidesPerGroup) {
        for (var i = 0; i < blankSlidesNum; i += 1) {
          var blankNode = $(doc.createElement('div')).addClass(((params.slideClass) + " " + (params.slideBlankClass)));
          $wrapperEl.append(blankNode);
        }
        slides = $wrapperEl.children(("." + (params.slideClass)));
      }
    }

    if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; }

    swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);
    swiper.loopedSlides += params.loopAdditionalSlides;
    if (swiper.loopedSlides > slides.length) {
      swiper.loopedSlides = slides.length;
    }

    var prependSlides = [];
    var appendSlides = [];
    slides.each(function (index, el) {
      var slide = $(el);
      if (index < swiper.loopedSlides) { appendSlides.push(el); }
      if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); }
      slide.attr('data-swiper-slide-index', index);
    });
    for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {
      $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));
    }
    for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {
      $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));
    }
  }

  function loopFix () {
    var swiper = this;
    var params = swiper.params;
    var activeIndex = swiper.activeIndex;
    var slides = swiper.slides;
    var loopedSlides = swiper.loopedSlides;
    var allowSlidePrev = swiper.allowSlidePrev;
    var allowSlideNext = swiper.allowSlideNext;
    var snapGrid = swiper.snapGrid;
    var rtl = swiper.rtlTranslate;
    var newIndex;
    swiper.allowSlidePrev = true;
    swiper.allowSlideNext = true;

    var snapTranslate = -snapGrid[activeIndex];
    var diff = snapTranslate - swiper.getTranslate();


    // Fix For Negative Oversliding
    if (activeIndex < loopedSlides) {
      newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;
      newIndex += loopedSlides;
      var slideChanged = swiper.slideTo(newIndex, 0, false, true);
      if (slideChanged && diff !== 0) {
        swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
      }
    } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {
      // Fix For Positive Oversliding
      newIndex = -slides.length + activeIndex + loopedSlides;
      newIndex += loopedSlides;
      var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);
      if (slideChanged$1 && diff !== 0) {
        swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
      }
    }
    swiper.allowSlidePrev = allowSlidePrev;
    swiper.allowSlideNext = allowSlideNext;
  }

  function loopDestroy () {
    var swiper = this;
    var $wrapperEl = swiper.$wrapperEl;
    var params = swiper.params;
    var slides = swiper.slides;
    $wrapperEl.children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + ",." + (params.slideClass) + "." + (params.slideBlankClass))).remove();
    slides.removeAttr('data-swiper-slide-index');
  }

  var loop = {
    loopCreate: loopCreate,
    loopFix: loopFix,
    loopDestroy: loopDestroy,
  };

  function setGrabCursor (moving) {
    var swiper = this;
    if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) { return; }
    var el = swiper.el;
    el.style.cursor = 'move';
    el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';
    el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';
    el.style.cursor = moving ? 'grabbing' : 'grab';
  }

  function unsetGrabCursor () {
    var swiper = this;
    if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) { return; }
    swiper.el.style.cursor = '';
  }

  var grabCursor = {
    setGrabCursor: setGrabCursor,
    unsetGrabCursor: unsetGrabCursor,
  };

  function appendSlide (slides) {
    var swiper = this;
    var $wrapperEl = swiper.$wrapperEl;
    var params = swiper.params;
    if (params.loop) {
      swiper.loopDestroy();
    }
    if (typeof slides === 'object' && 'length' in slides) {
      for (var i = 0; i < slides.length; i += 1) {
        if (slides[i]) { $wrapperEl.append(slides[i]); }
      }
    } else {
      $wrapperEl.append(slides);
    }
    if (params.loop) {
      swiper.loopCreate();
    }
    if (!(params.observer && Support.observer)) {
      swiper.update();
    }
  }

  function prependSlide (slides) {
    var swiper = this;
    var params = swiper.params;
    var $wrapperEl = swiper.$wrapperEl;
    var activeIndex = swiper.activeIndex;

    if (params.loop) {
      swiper.loopDestroy();
    }
    var newActiveIndex = activeIndex + 1;
    if (typeof slides === 'object' && 'length' in slides) {
      for (var i = 0; i < slides.length; i += 1) {
        if (slides[i]) { $wrapperEl.prepend(slides[i]); }
      }
      newActiveIndex = activeIndex + slides.length;
    } else {
      $wrapperEl.prepend(slides);
    }
    if (params.loop) {
      swiper.loopCreate();
    }
    if (!(params.observer && Support.observer)) {
      swiper.update();
    }
    swiper.slideTo(newActiveIndex, 0, false);
  }

  function addSlide (index, slides) {
    var swiper = this;
    var $wrapperEl = swiper.$wrapperEl;
    var params = swiper.params;
    var activeIndex = swiper.activeIndex;
    var activeIndexBuffer = activeIndex;
    if (params.loop) {
      activeIndexBuffer -= swiper.loopedSlides;
      swiper.loopDestroy();
      swiper.slides = $wrapperEl.children(("." + (params.slideClass)));
    }
    var baseLength = swiper.slides.length;
    if (index <= 0) {
      swiper.prependSlide(slides);
      return;
    }
    if (index >= baseLength) {
      swiper.appendSlide(slides);
      return;
    }
    var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;

    var slidesBuffer = [];
    for (var i = baseLength - 1; i >= index; i -= 1) {
      var currentSlide = swiper.slides.eq(i);
      currentSlide.remove();
      slidesBuffer.unshift(currentSlide);
    }

    if (typeof slides === 'object' && 'length' in slides) {
      for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {
        if (slides[i$1]) { $wrapperEl.append(slides[i$1]); }
      }
      newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
    } else {
      $wrapperEl.append(slides);
    }

    for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {
      $wrapperEl.append(slidesBuffer[i$2]);
    }

    if (params.loop) {
      swiper.loopCreate();
    }
    if (!(params.observer && Support.observer)) {
      swiper.update();
    }
    if (params.loop) {
      swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
    } else {
      swiper.slideTo(newActiveIndex, 0, false);
    }
  }

  function removeSlide (slidesIndexes) {
    var swiper = this;
    var params = swiper.params;
    var $wrapperEl = swiper.$wrapperEl;
    var activeIndex = swiper.activeIndex;

    var activeIndexBuffer = activeIndex;
    if (params.loop) {
      activeIndexBuffer -= swiper.loopedSlides;
      swiper.loopDestroy();
      swiper.slides = $wrapperEl.children(("." + (params.slideClass)));
    }
    var newActiveIndex = activeIndexBuffer;
    var indexToRemove;

    if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
      for (var i = 0; i < slidesIndexes.length; i += 1) {
        indexToRemove = slidesIndexes[i];
        if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }
        if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }
      }
      newActiveIndex = Math.max(newActiveIndex, 0);
    } else {
      indexToRemove = slidesIndexes;
      if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }
      if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }
      newActiveIndex = Math.max(newActiveIndex, 0);
    }

    if (params.loop) {
      swiper.loopCreate();
    }

    if (!(params.observer && Support.observer)) {
      swiper.update();
    }
    if (params.loop) {
      swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
    } else {
      swiper.slideTo(newActiveIndex, 0, false);
    }
  }

  function removeAllSlides () {
    var swiper = this;

    var slidesIndexes = [];
    for (var i = 0; i < swiper.slides.length; i += 1) {
      slidesIndexes.push(i);
    }
    swiper.removeSlide(slidesIndexes);
  }

  var manipulation = {
    appendSlide: appendSlide,
    prependSlide: prependSlide,
    addSlide: addSlide,
    removeSlide: removeSlide,
    removeAllSlides: removeAllSlides,
  };

  var Device = (function Device() {
    var ua = win.navigator.userAgent;

    var device = {
      ios: false,
      android: false,
      androidChrome: false,
      desktop: false,
      windows: false,
      iphone: false,
      ipod: false,
      ipad: false,
      cordova: win.cordova || win.phonegap,
      phonegap: win.cordova || win.phonegap,
    };

    var windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/); // eslint-disable-line
    var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
    var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
    var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
    var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);


    // Windows
    if (windows) {
      device.os = 'windows';
      device.osVersion = windows[2];
      device.windows = true;
    }
    // Android
    if (android && !windows) {
      device.os = 'android';
      device.osVersion = android[2];
      device.android = true;
      device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;
    }
    if (ipad || iphone || ipod) {
      device.os = 'ios';
      device.ios = true;
    }
    // iOS
    if (iphone && !ipod) {
      device.osVersion = iphone[2].replace(/_/g, '.');
      device.iphone = true;
    }
    if (ipad) {
      device.osVersion = ipad[2].replace(/_/g, '.');
      device.ipad = true;
    }
    if (ipod) {
      device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;
      device.iphone = true;
    }
    // iOS 8+ changed UA
    if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {
      if (device.osVersion.split('.')[0] === '10') {
        device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];
      }
    }

    // Desktop
    device.desktop = !(device.os || device.android || device.webView);

    // Webview
    device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);

    // Minimal UI
    if (device.os && device.os === 'ios') {
      var osVersionArr = device.osVersion.split('.');
      var metaViewport = doc.querySelector('meta[name="viewport"]');
      device.minimalUi = !device.webView
        && (ipod || iphone)
        && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)
        && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;
    }

    // Pixel Ratio
    device.pixelRatio = win.devicePixelRatio || 1;

    // Export object
    return device;
  }());

  function onTouchStart (event) {
    var swiper = this;
    var data = swiper.touchEventsData;
    var params = swiper.params;
    var touches = swiper.touches;
    if (swiper.animating && params.preventInteractionOnTransition) {
      return;
    }
    var e = event;
    if (e.originalEvent) { e = e.originalEvent; }
    data.isTouchEvent = e.type === 'touchstart';
    if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; }
    if (!data.isTouchEvent && 'button' in e && e.button > 0) { return; }
    if (data.isTouched && data.isMoved) { return; }
    if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : ("." + (params.noSwipingClass)))[0]) {
      swiper.allowClick = true;
      return;
    }
    if (params.swipeHandler) {
      if (!$(e).closest(params.swipeHandler)[0]) { return; }
    }

    touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;
    touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
    var startX = touches.currentX;
    var startY = touches.currentY;

    // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore

    var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;
    var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;
    if (
      edgeSwipeDetection
      && ((startX <= edgeSwipeThreshold)
      || (startX >= win.screen.width - edgeSwipeThreshold))
    ) {
      return;
    }

    Utils.extend(data, {
      isTouched: true,
      isMoved: false,
      allowTouchCallbacks: true,
      isScrolling: undefined,
      startMoving: undefined,
    });

    touches.startX = startX;
    touches.startY = startY;
    data.touchStartTime = Utils.now();
    swiper.allowClick = true;
    swiper.updateSize();
    swiper.swipeDirection = undefined;
    if (params.threshold > 0) { data.allowThresholdMove = false; }
    if (e.type !== 'touchstart') {
      var preventDefault = true;
      if ($(e.target).is(data.formElements)) { preventDefault = false; }
      if (
        doc.activeElement
        && $(doc.activeElement).is(data.formElements)
        && doc.activeElement !== e.target
      ) {
        doc.activeElement.blur();
      }

      var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
      if (params.touchStartForcePreventDefault || shouldPreventDefault) {
        e.preventDefault();
      }
    }
    swiper.emit('touchStart', e);
  }

  function onTouchMove (event) {
    var swiper = this;
    var data = swiper.touchEventsData;
    var params = swiper.params;
    var touches = swiper.touches;
    var rtl = swiper.rtlTranslate;
    var e = event;
    if (e.originalEvent) { e = e.originalEvent; }
    if (!data.isTouched) {
      if (data.startMoving && data.isScrolling) {
        swiper.emit('touchMoveOpposite', e);
      }
      return;
    }
    if (data.isTouchEvent && e.type === 'mousemove') { return; }
    var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
    var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
    if (e.preventedByNestedSwiper) {
      touches.startX = pageX;
      touches.startY = pageY;
      return;
    }
    if (!swiper.allowTouchMove) {
      // isMoved = true;
      swiper.allowClick = false;
      if (data.isTouched) {
        Utils.extend(touches, {
          startX: pageX,
          startY: pageY,
          currentX: pageX,
          currentY: pageY,
        });
        data.touchStartTime = Utils.now();
      }
      return;
    }
    if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {
      if (swiper.isVertical()) {
        // Vertical
        if (
          (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())
          || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())
        ) {
          data.isTouched = false;
          data.isMoved = false;
          return;
        }
      } else if (
        (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())
        || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())
      ) {
        return;
      }
    }
    if (data.isTouchEvent && doc.activeElement) {
      if (e.target === doc.activeElement && $(e.target).is(data.formElements)) {
        data.isMoved = true;
        swiper.allowClick = false;
        return;
      }
    }
    if (data.allowTouchCallbacks) {
      swiper.emit('touchMove', e);
    }
    if (e.targetTouches && e.targetTouches.length > 1) { return; }

    touches.currentX = pageX;
    touches.currentY = pageY;

    var diffX = touches.currentX - touches.startX;
    var diffY = touches.currentY - touches.startY;
    if (swiper.params.threshold && Math.sqrt((Math.pow( diffX, 2 )) + (Math.pow( diffY, 2 ))) < swiper.params.threshold) { return; }

    if (typeof data.isScrolling === 'undefined') {
      var touchAngle;
      if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {
        data.isScrolling = false;
      } else {
        // eslint-disable-next-line
        if ((diffX * diffX) + (diffY * diffY) >= 25) {
          touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;
          data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);
        }
      }
    }
    if (data.isScrolling) {
      swiper.emit('touchMoveOpposite', e);
    }
    if (typeof data.startMoving === 'undefined') {
      if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
        data.startMoving = true;
      }
    }
    if (data.isScrolling) {
      data.isTouched = false;
      return;
    }
    if (!data.startMoving) {
      return;
    }
    swiper.allowClick = false;
    e.preventDefault();
    if (params.touchMoveStopPropagation && !params.nested) {
      e.stopPropagation();
    }

    if (!data.isMoved) {
      if (params.loop) {
        swiper.loopFix();
      }
      data.startTranslate = swiper.getTranslate();
      swiper.setTransition(0);
      if (swiper.animating) {
        swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');
      }
      data.allowMomentumBounce = false;
      // Grab Cursor
      if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
        swiper.setGrabCursor(true);
      }
      swiper.emit('sliderFirstMove', e);
    }
    swiper.emit('sliderMove', e);
    data.isMoved = true;

    var diff = swiper.isHorizontal() ? diffX : diffY;
    touches.diff = diff;

    diff *= params.touchRatio;
    if (rtl) { diff = -diff; }

    swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
    data.currentTranslate = diff + data.startTranslate;

    var disableParentSwiper = true;
    var resistanceRatio = params.resistanceRatio;
    if (params.touchReleaseOnEdges) {
      resistanceRatio = 0;
    }
    if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {
      disableParentSwiper = false;
      if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); }
    } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {
      disableParentSwiper = false;
      if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); }
    }

    if (disableParentSwiper) {
      e.preventedByNestedSwiper = true;
    }

    // Directions locks
    if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
      data.currentTranslate = data.startTranslate;
    }
    if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
      data.currentTranslate = data.startTranslate;
    }


    // Threshold
    if (params.threshold > 0) {
      if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
        if (!data.allowThresholdMove) {
          data.allowThresholdMove = true;
          touches.startX = touches.currentX;
          touches.startY = touches.currentY;
          data.currentTranslate = data.startTranslate;
          touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
          return;
        }
      } else {
        data.currentTranslate = data.startTranslate;
        return;
      }
    }

    if (!params.followFinger) { return; }

    // Update active index in free mode
    if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {
      swiper.updateActiveIndex();
      swiper.updateSlidesClasses();
    }
    if (params.freeMode) {
      // Velocity
      if (data.velocities.length === 0) {
        data.velocities.push({
          position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
          time: data.touchStartTime,
        });
      }
      data.velocities.push({
        position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
        time: Utils.now(),
      });
    }
    // Update progress
    swiper.updateProgress(data.currentTranslate);
    // Update translate
    swiper.setTranslate(data.currentTranslate);
  }

  function onTouchEnd (event) {
    var swiper = this;
    var data = swiper.touchEventsData;

    var params = swiper.params;
    var touches = swiper.touches;
    var rtl = swiper.rtlTranslate;
    var $wrapperEl = swiper.$wrapperEl;
    var slidesGrid = swiper.slidesGrid;
    var snapGrid = swiper.snapGrid;
    var e = event;
    if (e.originalEvent) { e = e.originalEvent; }
    if (data.allowTouchCallbacks) {
      swiper.emit('touchEnd', e);
    }
    data.allowTouchCallbacks = false;
    if (!data.isTouched) {
      if (data.isMoved && params.grabCursor) {
        swiper.setGrabCursor(false);
      }
      data.isMoved = false;
      data.startMoving = false;
      return;
    }
    // Return Grab Cursor
    if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
      swiper.setGrabCursor(false);
    }

    // Time diff
    var touchEndTime = Utils.now();
    var timeDiff = touchEndTime - data.touchStartTime;

    // Tap, doubleTap, Click
    if (swiper.allowClick) {
      swiper.updateClickedSlide(e);
      swiper.emit('tap', e);
      if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {
        if (data.clickTimeout) { clearTimeout(data.clickTimeout); }
        data.clickTimeout = Utils.nextTick(function () {
          if (!swiper || swiper.destroyed) { return; }
          swiper.emit('click', e);
        }, 300);
      }
      if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {
        if (data.clickTimeout) { clearTimeout(data.clickTimeout); }
        swiper.emit('doubleTap', e);
      }
    }

    data.lastClickTime = Utils.now();
    Utils.nextTick(function () {
      if (!swiper.destroyed) { swiper.allowClick = true; }
    });

    if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {
      data.isTouched = false;
      data.isMoved = false;
      data.startMoving = false;
      return;
    }
    data.isTouched = false;
    data.isMoved = false;
    data.startMoving = false;

    var currentPos;
    if (params.followFinger) {
      currentPos = rtl ? swiper.translate : -swiper.translate;
    } else {
      currentPos = -data.currentTranslate;
    }

    if (params.freeMode) {
      if (currentPos < -swiper.minTranslate()) {
        swiper.slideTo(swiper.activeIndex);
        return;
      }
      if (currentPos > -swiper.maxTranslate()) {
        if (swiper.slides.length < snapGrid.length) {
          swiper.slideTo(snapGrid.length - 1);
        } else {
          swiper.slideTo(swiper.slides.length - 1);
        }
        return;
      }

      if (params.freeModeMomentum) {
        if (data.velocities.length > 1) {
          var lastMoveEvent = data.velocities.pop();
          var velocityEvent = data.velocities.pop();

          var distance = lastMoveEvent.position - velocityEvent.position;
          var time = lastMoveEvent.time - velocityEvent.time;
          swiper.velocity = distance / time;
          swiper.velocity /= 2;
          if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {
            swiper.velocity = 0;
          }
          // this implies that the user stopped moving a finger then released.
          // There would be no events with distance zero, so the last event is stale.
          if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {
            swiper.velocity = 0;
          }
        } else {
          swiper.velocity = 0;
        }
        swiper.velocity *= params.freeModeMomentumVelocityRatio;

        data.velocities.length = 0;
        var momentumDuration = 1000 * params.freeModeMomentumRatio;
        var momentumDistance = swiper.velocity * momentumDuration;

        var newPosition = swiper.translate + momentumDistance;
        if (rtl) { newPosition = -newPosition; }

        var doBounce = false;
        var afterBouncePosition;
        var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;
        var needsLoopFix;
        if (newPosition < swiper.maxTranslate()) {
          if (params.freeModeMomentumBounce) {
            if (newPosition + swiper.maxTranslate() < -bounceAmount) {
              newPosition = swiper.maxTranslate() - bounceAmount;
            }
            afterBouncePosition = swiper.maxTranslate();
            doBounce = true;
            data.allowMomentumBounce = true;
          } else {
            newPosition = swiper.maxTranslate();
          }
          if (params.loop && params.centeredSlides) { needsLoopFix = true; }
        } else if (newPosition > swiper.minTranslate()) {
          if (params.freeModeMomentumBounce) {
            if (newPosition - swiper.minTranslate() > bounceAmount) {
              newPosition = swiper.minTranslate() + bounceAmount;
            }
            afterBouncePosition = swiper.minTranslate();
            doBounce = true;
            data.allowMomentumBounce = true;
          } else {
            newPosition = swiper.minTranslate();
          }
          if (params.loop && params.centeredSlides) { needsLoopFix = true; }
        } else if (params.freeModeSticky) {
          var nextSlide;
          for (var j = 0; j < snapGrid.length; j += 1) {
            if (snapGrid[j] > -newPosition) {
              nextSlide = j;
              break;
            }
          }

          if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
            newPosition = snapGrid[nextSlide];
          } else {
            newPosition = snapGrid[nextSlide - 1];
          }
          newPosition = -newPosition;
        }
        if (needsLoopFix) {
          swiper.once('transitionEnd', function () {
            swiper.loopFix();
          });
        }
        // Fix duration
        if (swiper.velocity !== 0) {
          if (rtl) {
            momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
          } else {
            momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
          }
        } else if (params.freeModeSticky) {
          swiper.slideToClosest();
          return;
        }

        if (params.freeModeMomentumBounce && doBounce) {
          swiper.updateProgress(afterBouncePosition);
          swiper.setTransition(momentumDuration);
          swiper.setTranslate(newPosition);
          swiper.transitionStart(true, swiper.swipeDirection);
          swiper.animating = true;
          $wrapperEl.transitionEnd(function () {
            if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; }
            swiper.emit('momentumBounce');

            swiper.setTransition(params.speed);
            swiper.setTranslate(afterBouncePosition);
            $wrapperEl.transitionEnd(function () {
              if (!swiper || swiper.destroyed) { return; }
              swiper.transitionEnd();
            });
          });
        } else if (swiper.velocity) {
          swiper.updateProgress(newPosition);
          swiper.setTransition(momentumDuration);
          swiper.setTranslate(newPosition);
          swiper.transitionStart(true, swiper.swipeDirection);
          if (!swiper.animating) {
            swiper.animating = true;
            $wrapperEl.transitionEnd(function () {
              if (!swiper || swiper.destroyed) { return; }
              swiper.transitionEnd();
            });
          }
        } else {
          swiper.updateProgress(newPosition);
        }

        swiper.updateActiveIndex();
        swiper.updateSlidesClasses();
      } else if (params.freeModeSticky) {
        swiper.slideToClosest();
        return;
      }

      if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {
        swiper.updateProgress();
        swiper.updateActiveIndex();
        swiper.updateSlidesClasses();
      }
      return;
    }

    // Find current slide
    var stopIndex = 0;
    var groupSize = swiper.slidesSizesGrid[0];
    for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {
      if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {
        if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {
          stopIndex = i;
          groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];
        }
      } else if (currentPos >= slidesGrid[i]) {
        stopIndex = i;
        groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
      }
    }

    // Find current slide size
    var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;

    if (timeDiff > params.longSwipesMs) {
      // Long touches
      if (!params.longSwipes) {
        swiper.slideTo(swiper.activeIndex);
        return;
      }
      if (swiper.swipeDirection === 'next') {
        if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + params.slidesPerGroup); }
        else { swiper.slideTo(stopIndex); }
      }
      if (swiper.swipeDirection === 'prev') {
        if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + params.slidesPerGroup); }
        else { swiper.slideTo(stopIndex); }
      }
    } else {
      // Short swipes
      if (!params.shortSwipes) {
        swiper.slideTo(swiper.activeIndex);
        return;
      }
      if (swiper.swipeDirection === 'next') {
        swiper.slideTo(stopIndex + params.slidesPerGroup);
      }
      if (swiper.swipeDirection === 'prev') {
        swiper.slideTo(stopIndex);
      }
    }
  }

  function onResize () {
    var swiper = this;

    var params = swiper.params;
    var el = swiper.el;

    if (el && el.offsetWidth === 0) { return; }

    // Breakpoints
    if (params.breakpoints) {
      swiper.setBreakpoint();
    }

    // Save locks
    var allowSlideNext = swiper.allowSlideNext;
    var allowSlidePrev = swiper.allowSlidePrev;
    var snapGrid = swiper.snapGrid;

    // Disable locks on resize
    swiper.allowSlideNext = true;
    swiper.allowSlidePrev = true;

    swiper.updateSize();
    swiper.updateSlides();

    if (params.freeMode) {
      var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());
      swiper.setTranslate(newTranslate);
      swiper.updateActiveIndex();
      swiper.updateSlidesClasses();

      if (params.autoHeight) {
        swiper.updateAutoHeight();
      }
    } else {
      swiper.updateSlidesClasses();
      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {
        swiper.slideTo(swiper.slides.length - 1, 0, false, true);
      } else {
        swiper.slideTo(swiper.activeIndex, 0, false, true);
      }
    }
    if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
      swiper.autoplay.run();
    }
    // Return locks after resize
    swiper.allowSlidePrev = allowSlidePrev;
    swiper.allowSlideNext = allowSlideNext;

    if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
      swiper.checkOverflow();
    }
  }

  function onClick (e) {
    var swiper = this;
    if (!swiper.allowClick) {
      if (swiper.params.preventClicks) { e.preventDefault(); }
      if (swiper.params.preventClicksPropagation && swiper.animating) {
        e.stopPropagation();
        e.stopImmediatePropagation();
      }
    }
  }

  function attachEvents() {
    var swiper = this;
    var params = swiper.params;
    var touchEvents = swiper.touchEvents;
    var el = swiper.el;
    var wrapperEl = swiper.wrapperEl;

    {
      swiper.onTouchStart = onTouchStart.bind(swiper);
      swiper.onTouchMove = onTouchMove.bind(swiper);
      swiper.onTouchEnd = onTouchEnd.bind(swiper);
    }

    swiper.onClick = onClick.bind(swiper);

    var target = params.touchEventsTarget === 'container' ? el : wrapperEl;
    var capture = !!params.nested;

    // Touch Events
    {
      if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {
        target.addEventListener(touchEvents.start, swiper.onTouchStart, false);
        doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);
        doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);
      } else {
        if (Support.touch) {
          var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;
          target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);
          target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture);
          target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);
        }
        if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {
          target.addEventListener('mousedown', swiper.onTouchStart, false);
          doc.addEventListener('mousemove', swiper.onTouchMove, capture);
          doc.addEventListener('mouseup', swiper.onTouchEnd, false);
        }
      }
      // Prevent Links Clicks
      if (params.preventClicks || params.preventClicksPropagation) {
        target.addEventListener('click', swiper.onClick, true);
      }
    }

    // Resize handler
    swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);
  }

  function detachEvents() {
    var swiper = this;

    var params = swiper.params;
    var touchEvents = swiper.touchEvents;
    var el = swiper.el;
    var wrapperEl = swiper.wrapperEl;

    var target = params.touchEventsTarget === 'container' ? el : wrapperEl;
    var capture = !!params.nested;

    // Touch Events
    {
      if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {
        target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);
        doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);
        doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);
      } else {
        if (Support.touch) {
          var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;
          target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);
          target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);
          target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);
        }
        if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {
          target.removeEventListener('mousedown', swiper.onTouchStart, false);
          doc.removeEventListener('mousemove', swiper.onTouchMove, capture);
          doc.removeEventListener('mouseup', swiper.onTouchEnd, false);
        }
      }
      // Prevent Links Clicks
      if (params.preventClicks || params.preventClicksPropagation) {
        target.removeEventListener('click', swiper.onClick, true);
      }
    }

    // Resize handler
    swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);
  }

  var events = {
    attachEvents: attachEvents,
    detachEvents: detachEvents,
  };

  function setBreakpoint () {
    var swiper = this;
    var activeIndex = swiper.activeIndex;
    var initialized = swiper.initialized;
    var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0;
    var params = swiper.params;
    var breakpoints = params.breakpoints;
    if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; }

    // Set breakpoint for window width and update parameters
    var breakpoint = swiper.getBreakpoint(breakpoints);

    if (breakpoint && swiper.currentBreakpoint !== breakpoint) {
      var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
      if (breakpointOnlyParams) {
        ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach(function (param) {
          var paramValue = breakpointOnlyParams[param];
          if (typeof paramValue === 'undefined') { return; }
          if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {
            breakpointOnlyParams[param] = 'auto';
          } else if (param === 'slidesPerView') {
            breakpointOnlyParams[param] = parseFloat(paramValue);
          } else {
            breakpointOnlyParams[param] = parseInt(paramValue, 10);
          }
        });
      }

      var breakpointParams = breakpointOnlyParams || swiper.originalParams;
      var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
      var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);

      if (directionChanged && initialized) {
        swiper.changeDirection();
      }

      Utils.extend(swiper.params, breakpointParams);

      Utils.extend(swiper, {
        allowTouchMove: swiper.params.allowTouchMove,
        allowSlideNext: swiper.params.allowSlideNext,
        allowSlidePrev: swiper.params.allowSlidePrev,
      });

      swiper.currentBreakpoint = breakpoint;

      if (needsReLoop && initialized) {
        swiper.loopDestroy();
        swiper.loopCreate();
        swiper.updateSlides();
        swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);
      }

      swiper.emit('breakpoint', breakpointParams);
    }
  }

  function getBreakpoint (breakpoints) {
    var swiper = this;
    // Get breakpoint for window width
    if (!breakpoints) { return undefined; }
    var breakpoint = false;
    var points = [];
    Object.keys(breakpoints).forEach(function (point) {
      points.push(point);
    });
    points.sort(function (a, b) { return parseInt(a, 10) - parseInt(b, 10); });
    for (var i = 0; i < points.length; i += 1) {
      var point = points[i];
      if (swiper.params.breakpointsInverse) {
        if (point <= win.innerWidth) {
          breakpoint = point;
        }
      } else if (point >= win.innerWidth && !breakpoint) {
        breakpoint = point;
      }
    }
    return breakpoint || 'max';
  }

  var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint };

  function addClasses () {
    var swiper = this;
    var classNames = swiper.classNames;
    var params = swiper.params;
    var rtl = swiper.rtl;
    var $el = swiper.$el;
    var suffixes = [];

    suffixes.push('initialized');
    suffixes.push(params.direction);

    if (params.freeMode) {
      suffixes.push('free-mode');
    }
    if (!Support.flexbox) {
      suffixes.push('no-flexbox');
    }
    if (params.autoHeight) {
      suffixes.push('autoheight');
    }
    if (rtl) {
      suffixes.push('rtl');
    }
    if (params.slidesPerColumn > 1) {
      suffixes.push('multirow');
    }
    if (Device.android) {
      suffixes.push('android');
    }
    if (Device.ios) {
      suffixes.push('ios');
    }
    // WP8 Touch Events Fix
    if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {
      suffixes.push(("wp8-" + (params.direction)));
    }

    suffixes.forEach(function (suffix) {
      classNames.push(params.containerModifierClass + suffix);
    });

    $el.addClass(classNames.join(' '));
  }

  function removeClasses () {
    var swiper = this;
    var $el = swiper.$el;
    var classNames = swiper.classNames;

    $el.removeClass(classNames.join(' '));
  }

  var classes = { addClasses: addClasses, removeClasses: removeClasses };

  function loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {
    var image;
    function onReady() {
      if (callback) { callback(); }
    }
    if (!imageEl.complete || !checkForComplete) {
      if (src) {
        image = new win.Image();
        image.onload = onReady;
        image.onerror = onReady;
        if (sizes) {
          image.sizes = sizes;
        }
        if (srcset) {
          image.srcset = srcset;
        }
        if (src) {
          image.src = src;
        }
      } else {
        onReady();
      }
    } else {
      // image already loaded...
      onReady();
    }
  }

  function preloadImages () {
    var swiper = this;
    swiper.imagesToLoad = swiper.$el.find('img');
    function onReady() {
      if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; }
      if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; }
      if (swiper.imagesLoaded === swiper.imagesToLoad.length) {
        if (swiper.params.updateOnImagesReady) { swiper.update(); }
        swiper.emit('imagesReady');
      }
    }
    for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {
      var imageEl = swiper.imagesToLoad[i];
      swiper.loadImage(
        imageEl,
        imageEl.currentSrc || imageEl.getAttribute('src'),
        imageEl.srcset || imageEl.getAttribute('srcset'),
        imageEl.sizes || imageEl.getAttribute('sizes'),
        true,
        onReady
      );
    }
  }

  var images = {
    loadImage: loadImage,
    preloadImages: preloadImages,
  };

  function checkOverflow() {
    var swiper = this;
    var wasLocked = swiper.isLocked;

    swiper.isLocked = swiper.snapGrid.length === 1;
    swiper.allowSlideNext = !swiper.isLocked;
    swiper.allowSlidePrev = !swiper.isLocked;

    // events
    if (wasLocked !== swiper.isLocked) { swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); }

    if (wasLocked && wasLocked !== swiper.isLocked) {
      swiper.isEnd = false;
      swiper.navigation.update();
    }
  }

  var checkOverflow$1 = { checkOverflow: checkOverflow };

  var defaults = {
    init: true,
    direction: 'horizontal',
    touchEventsTarget: 'container',
    initialSlide: 0,
    speed: 300,
    //
    preventInteractionOnTransition: false,

    // To support iOS's swipe-to-go-back gesture (when being used in-app,with UIWebView).
    edgeSwipeDetection:false,edgeSwipeThreshold:20,// Free mode
    freeMode:false,freeModeMomentum:true,freeModeMomentumRatio:1,freeModeMomentumBounce:true,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:false,freeModeMinimumVelocity:0.02,// Autoheight
    autoHeight:false,// Set wrapper width
    setWrapperSize:false,// Virtual Translate
    virtualTranslate:false,// Effects
    effect:'slide',// 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'

    // Breakpoints
    breakpoints:undefined,breakpointsInverse:false,// Slides grid
    spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:'column',slidesPerGroup:1,centeredSlides:false,slidesOffsetBefore:0,// in px
    slidesOffsetAfter:0,// in px
    normalizeSlideIndex:true,centerInsufficientSlides:false,// Disable swiper and hide navigation when container not overflow
    watchOverflow:false,// Round length
    roundLengths:false,// Touches
    touchRatio:1,touchAngle:45,simulateTouch:true,shortSwipes:true,longSwipes:true,longSwipesRatio:0.5,longSwipesMs:300,followFinger:true,allowTouchMove:true,threshold:0,touchMoveStopPropagation:true,touchStartPreventDefault:true,touchStartForcePreventDefault:false,touchReleaseOnEdges:false,// Unique Navigation Elements
    uniqueNavElements:true,// Resistance
    resistance:true,resistanceRatio:0.85,// Progress
    watchSlidesProgress:false,watchSlidesVisibility:false,// Cursor
    grabCursor:false,// Clicks
    preventClicks:true,preventClicksPropagation:true,slideToClickedSlide:false,// Images
    preloadImages:true,updateOnImagesReady:true,// loop
    loop:false,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:false,// Swiping/no swiping
    allowSlidePrev:true,allowSlideNext:true,swipeHandler:null,// '.swipe-handler',noSwiping:true,noSwipingClass:'swiper-no-swiping',noSwipingSelector:null,// Passive Listeners
    passiveListeners:true,// NS
    containerModifierClass:'swiper-container-',// NEW
    slideClass:'swiper-slide',slideBlankClass:'swiper-slide-invisible-blank',slideActiveClass:'swiper-slide-active',slideDuplicateActiveClass:'swiper-slide-duplicate-active',slideVisibleClass:'swiper-slide-visible',slideDuplicateClass:'swiper-slide-duplicate',slideNextClass:'swiper-slide-next',slideDuplicateNextClass:'swiper-slide-duplicate-next',slidePrevClass:'swiper-slide-prev',slideDuplicatePrevClass:'swiper-slide-duplicate-prev',wrapperClass:'swiper-wrapper',// Callbacks
    runCallbacksOnInit:true,};var prototypes ={update:update,translate:translate,transition:transition$1,slide:slide,loop:loop,grabCursor:grabCursor,manipulation:manipulation,events:events,breakpoints:breakpoints,checkOverflow:checkOverflow$1,classes:classes,images:images,};var extendedDefaults ={};var Swiper = (function (SwiperClass){function Swiper(){var assign;var args = [],len = arguments.length;while (len--) args[ len ] = arguments[ len ];var el;var params;if (args.length === 1 && args[0].constructor && args[0].constructor === Object){params = args[0];}else{(assign = args,el = assign[0],params = assign[1]);}if (!params){params ={};}params = Utils.extend({},params);if (el && !params.el){params.el = el;}SwiperClass.call(this,params);Object.keys(prototypes).forEach(function (prototypeGroup){Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod){if (!Swiper.prototype[protoMethod]){Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];}});});// Swiper Instance
      var swiper = this;if (typeof swiper.modules === 'undefined'){swiper.modules ={};}Object.keys(swiper.modules).forEach(function (moduleName){var module = swiper.modules[moduleName];if (module.params){var moduleParamName = Object.keys(module.params)[0];var moduleParams = module.params[moduleParamName];if (typeof moduleParams !== 'object' || moduleParams === null){return;}if (!(moduleParamName in params && 'enabled' in moduleParams)){return;}if (params[moduleParamName] === true){params[moduleParamName] ={enabled:true};}if (typeof params[moduleParamName] === 'object'
            && !('enabled' in params[moduleParamName])){params[moduleParamName].enabled = true;}if (!params[moduleParamName]){params[moduleParamName] ={enabled:false};}}});// Extend defaults with modules params
      var swiperParams = Utils.extend({},defaults);swiper.useModulesParams(swiperParams);// Extend defaults with passed params
      swiper.params = Utils.extend({},swiperParams,extendedDefaults,params);swiper.originalParams = Utils.extend({},swiper.params);swiper.passedParams = Utils.extend({},params);// Save Dom lib
      swiper.$ = $;// Find el
      var $el = $(swiper.params.el);el = $el[0];if (!el){return undefined;}if ($el.length > 1){var swipers = [];$el.each(function (index,containerEl){var newParams = Utils.extend({},params,{el:containerEl});swipers.push(new Swiper(newParams));});return swipers;}el.swiper = swiper;$el.data('swiper',swiper);// Find Wrapper
      var $wrapperEl = $el.children(("." + (swiper.params.wrapperClass)));// Extend Swiper
      Utils.extend(swiper,{$el:$el,el:el,$wrapperEl:$wrapperEl,wrapperEl:$wrapperEl[0],// Classes
        classNames:[],// Slides
        slides:$(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],// isDirection
        isHorizontal:function isHorizontal(){return swiper.params.direction === 'horizontal';},isVertical:function isVertical(){return swiper.params.direction === 'vertical';},// RTL
        rtl:(el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),rtlTranslate:swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),wrongRTL:$wrapperEl.css('display') === '-webkit-box',// Indexes
        activeIndex:0,realIndex:0,//
        isBeginning:true,isEnd:false,// Props
        translate:0,previousTranslate:0,progress:0,velocity:0,animating:false,// Locks
        allowSlideNext:swiper.params.allowSlideNext,allowSlidePrev:swiper.params.allowSlidePrev,// Touch Events
        touchEvents:(function touchEvents(){var touch = ['touchstart','touchmove','touchend'];var desktop = ['mousedown','mousemove','mouseup'];if (Support.pointerEvents){desktop = ['pointerdown','pointermove','pointerup'];}else if (Support.prefixedPointerEvents){desktop = ['MSPointerDown','MSPointerMove','MSPointerUp'];}swiper.touchEventsTouch ={start:touch[0],move:touch[1],end:touch[2],};swiper.touchEventsDesktop ={start:desktop[0],move:desktop[1],end:desktop[2],};return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch :swiper.touchEventsDesktop;}()),touchEventsData:{isTouched:undefined,isMoved:undefined,allowTouchCallbacks:undefined,touchStartTime:undefined,isScrolling:undefined,currentTranslate:undefined,startTranslate:undefined,allowThresholdMove:undefined,// Form elements to match
          formElements:'input, select, option, textarea, button, video',// Last click time
          lastClickTime:Utils.now(),clickTimeout:undefined,// Velocities
          velocities:[],allowMomentumBounce:undefined,isTouchEvent:undefined,startMoving:undefined,},// Clicks
        allowClick:true,// Touches
        allowTouchMove:swiper.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0,},// Images
        imagesToLoad:[],imagesLoaded:0,});// Install Modules
      swiper.useModules();// Init
      if (swiper.params.init){swiper.init();}// Return app instance
      return swiper;}if (SwiperClass) Swiper.__proto__ = SwiperClass;Swiper.prototype = Object.create(SwiperClass && SwiperClass.prototype);Swiper.prototype.constructor = Swiper;var staticAccessors ={extendedDefaults:{configurable:true},defaults:{configurable:true},Class:{configurable:true},$:{configurable:true}};Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic (){var swiper = this;var params = swiper.params;var slides = swiper.slides;var slidesGrid = swiper.slidesGrid;var swiperSize = swiper.size;var activeIndex = swiper.activeIndex;var spv = 1;if (params.centeredSlides){var slideSize = slides[activeIndex].swiperSlideSize;var breakLoop;for (var i = activeIndex + 1;i < slides.length;i += 1){if (slides[i] && !breakLoop){slideSize += slides[i].swiperSlideSize;spv += 1;if (slideSize > swiperSize){breakLoop = true;}}}for (var i$1 = activeIndex - 1;i$1 >= 0;i$1 -= 1){if (slides[i$1] && !breakLoop){slideSize += slides[i$1].swiperSlideSize;spv += 1;if (slideSize > swiperSize){breakLoop = true;}}}}else{for (var i$2 = activeIndex + 1;i$2 < slides.length;i$2 += 1){if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize){spv += 1;}}}return spv;};Swiper.prototype.update = function update (){var swiper = this;if (!swiper || swiper.destroyed){return;}var snapGrid = swiper.snapGrid;var params = swiper.params;// Breakpoints
      if (params.breakpoints){swiper.setBreakpoint();}swiper.updateSize();swiper.updateSlides();swiper.updateProgress();swiper.updateSlidesClasses();function setTranslate(){var translateValue = swiper.rtlTranslate ? swiper.translate * -1 :swiper.translate;var newTranslate = Math.min(Math.max(translateValue,swiper.maxTranslate()),swiper.minTranslate());swiper.setTranslate(newTranslate);swiper.updateActiveIndex();swiper.updateSlidesClasses();}var translated;if (swiper.params.freeMode){setTranslate();if (swiper.params.autoHeight){swiper.updateAutoHeight();}}else{if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides){translated = swiper.slideTo(swiper.slides.length - 1,0,false,true);}else{translated = swiper.slideTo(swiper.activeIndex,0,false,true);}if (!translated){setTranslate();}}if (params.watchOverflow && snapGrid !== swiper.snapGrid){swiper.checkOverflow();}swiper.emit('update');};Swiper.prototype.changeDirection = function changeDirection (newDirection,needUpdate){if (needUpdate === void 0) needUpdate = true;var swiper = this;var currentDirection = swiper.params.direction;if (!newDirection){// eslint-disable-next-line
        newDirection = currentDirection === 'horizontal' ? 'vertical' :'horizontal';}if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')){return swiper;}swiper.$el
        .removeClass(("" + (swiper.params.containerModifierClass) + currentDirection + " wp8-" + currentDirection))
        .addClass(("" + (swiper.params.containerModifierClass) + newDirection));if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)){swiper.$el.addClass(((swiper.params.containerModifierClass) + "wp8-" + newDirection));}swiper.params.direction = newDirection;swiper.slides.each(function (slideIndex,slideEl){if (newDirection === 'vertical'){slideEl.style.width = '';}else{slideEl.style.height = '';}});swiper.emit('changeDirection');if (needUpdate){swiper.update();}return swiper;};Swiper.prototype.init = function init (){var swiper = this;if (swiper.initialized){return;}swiper.emit('beforeInit');// Set breakpoint
      if (swiper.params.breakpoints){swiper.setBreakpoint();}// Add Classes
      swiper.addClasses();// Create loop
      if (swiper.params.loop){swiper.loopCreate();}// Update size
      swiper.updateSize();// Update slides
      swiper.updateSlides();if (swiper.params.watchOverflow){swiper.checkOverflow();}// Set Grab Cursor
      if (swiper.params.grabCursor){swiper.setGrabCursor();}if (swiper.params.preloadImages){swiper.preloadImages();}// Slide To Initial Slide
      if (swiper.params.loop){swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides,0,swiper.params.runCallbacksOnInit);}else{swiper.slideTo(swiper.params.initialSlide,0,swiper.params.runCallbacksOnInit);}// Attach events
      swiper.attachEvents();// Init Flag
      swiper.initialized = true;// Emit
      swiper.emit('init');};Swiper.prototype.destroy = function destroy (deleteInstance,cleanStyles){if (deleteInstance === void 0) deleteInstance = true;if (cleanStyles === void 0) cleanStyles = true;var swiper = this;var params = swiper.params;var $el = swiper.$el;var $wrapperEl = swiper.$wrapperEl;var slides = swiper.slides;if (typeof swiper.params === 'undefined' || swiper.destroyed){return null;}swiper.emit('beforeDestroy');// Init Flag
      swiper.initialized = false;// Detach events
      swiper.detachEvents();// Destroy loop
      if (params.loop){swiper.loopDestroy();}// Cleanup styles
      if (cleanStyles){swiper.removeClasses();$el.removeAttr('style');$wrapperEl.removeAttr('style');if (slides && slides.length){slides
            .removeClass([
              params.slideVisibleClass,params.slideActiveClass,params.slideNextClass,params.slidePrevClass ].join(' '))
            .removeAttr('style')
            .removeAttr('data-swiper-slide-index')
            .removeAttr('data-swiper-column')
            .removeAttr('data-swiper-row');}}swiper.emit('destroy');// Detach emitter events
      Object.keys(swiper.eventsListeners).forEach(function (eventName){swiper.off(eventName);});if (deleteInstance !== false){swiper.$el[0].swiper = null;swiper.$el.data('swiper',null);Utils.deleteProps(swiper);}swiper.destroyed = true;return null;};Swiper.extendDefaults = function extendDefaults (newDefaults){Utils.extend(extendedDefaults,newDefaults);};staticAccessors.extendedDefaults.get = function (){return extendedDefaults;};staticAccessors.defaults.get = function (){return defaults;};staticAccessors.Class.get = function (){return SwiperClass;};staticAccessors.$.get = function (){return $;};Object.defineProperties(Swiper,staticAccessors);return Swiper;}(SwiperClass));var Device$1 ={name:'device',proto:{device:Device,},static:{device:Device,},};var Support$1 ={name:'support',proto:{support:Support,},static:{support:Support,},};var Browser$1 ={name:'browser',proto:{browser:Browser,},static:{browser:Browser,},};var Resize ={name:'resize',create:function create(){var swiper = this;Utils.extend(swiper,{resize:{resizeHandler:function resizeHandler(){if (!swiper || swiper.destroyed || !swiper.initialized){return;}swiper.emit('beforeResize');swiper.emit('resize');},orientationChangeHandler:function orientationChangeHandler(){if (!swiper || swiper.destroyed || !swiper.initialized){return;}swiper.emit('orientationchange');},},});},on:{init:function init(){var swiper = this;// Emit resize
        win.addEventListener('resize',swiper.resize.resizeHandler);// Emit orientationchange
        win.addEventListener('orientationchange',swiper.resize.orientationChangeHandler);},destroy:function destroy(){var swiper = this;win.removeEventListener('resize',swiper.resize.resizeHandler);win.removeEventListener('orientationchange',swiper.resize.orientationChangeHandler);},},};var Observer ={func:win.MutationObserver || win.WebkitMutationObserver,attach:function attach(target,options){if (options === void 0) options ={};var swiper = this;var ObserverFunc = Observer.func;var observer = new ObserverFunc(function (mutations){// The observerUpdate event should only be triggered
        // once despite the number of mutations.  Additional
        // triggers are redundant and are very costly
        if (mutations.length === 1){swiper.emit('observerUpdate',mutations[0]);return;}var observerUpdate = function observerUpdate(){swiper.emit('observerUpdate',mutations[0]);};if (win.requestAnimationFrame){win.requestAnimationFrame(observerUpdate);}else{win.setTimeout(observerUpdate,0);}});observer.observe(target,{attributes:typeof options.attributes === 'undefined' ? true :options.attributes,childList:typeof options.childList === 'undefined' ? true :options.childList,characterData:typeof options.characterData === 'undefined' ? true :options.characterData,});swiper.observer.observers.push(observer);},init:function init(){var swiper = this;if (!Support.observer || !swiper.params.observer){return;}if (swiper.params.observeParents){var containerParents = swiper.$el.parents();for (var i = 0;i < containerParents.length;i += 1){swiper.observer.attach(containerParents[i]);}}// Observe container
      swiper.observer.attach(swiper.$el[0],{childList:swiper.params.observeSlideChildren});// Observe wrapper
      swiper.observer.attach(swiper.$wrapperEl[0],{attributes:false});},destroy:function destroy(){var swiper = this;swiper.observer.observers.forEach(function (observer){observer.disconnect();});swiper.observer.observers = [];},};var Observer$1 ={name:'observer',params:{observer:false,observeParents:false,observeSlideChildren:false,},create:function create(){var swiper = this;Utils.extend(swiper,{observer:{init:Observer.init.bind(swiper),attach:Observer.attach.bind(swiper),destroy:Observer.destroy.bind(swiper),observers:[],},});},on:{init:function init(){var swiper = this;swiper.observer.init();},destroy:function destroy(){var swiper = this;swiper.observer.destroy();},},};var Virtual ={update:function update(force){var swiper = this;var ref = swiper.params;var slidesPerView = ref.slidesPerView;var slidesPerGroup = ref.slidesPerGroup;var centeredSlides = ref.centeredSlides;var ref$1 = swiper.params.virtual;var addSlidesBefore = ref$1.addSlidesBefore;var addSlidesAfter = ref$1.addSlidesAfter;var ref$2 = swiper.virtual;var previousFrom = ref$2.from;var previousTo = ref$2.to;var slides = ref$2.slides;var previousSlidesGrid = ref$2.slidesGrid;var renderSlide = ref$2.renderSlide;var previousOffset = ref$2.offset;swiper.updateActiveIndex();var activeIndex = swiper.activeIndex || 0;var offsetProp;if (swiper.rtlTranslate){offsetProp = 'right';}else{offsetProp = swiper.isHorizontal() ? 'left' :'top';}var slidesAfter;var slidesBefore;if (centeredSlides){slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;}else{slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;slidesBefore = slidesPerGroup + addSlidesAfter;}var from = Math.max((activeIndex || 0) - slidesBefore,0);var to = Math.min((activeIndex || 0) + slidesAfter,slides.length - 1);var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);Utils.extend(swiper.virtual,{from:from,to:to,offset:offset,slidesGrid:swiper.slidesGrid,});function onRendered(){swiper.updateSlides();swiper.updateProgress();swiper.updateSlidesClasses();if (swiper.lazy && swiper.params.lazy.enabled){swiper.lazy.load();}}if (previousFrom === from && previousTo === to && !force){if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset){swiper.slides.css(offsetProp,(offset + "px"));}swiper.updateProgress();return;}if (swiper.params.virtual.renderExternal){swiper.params.virtual.renderExternal.call(swiper,{offset:offset,from:from,to:to,slides:(function getSlides(){var slidesToRender = [];for (var i = from;i <= to;i += 1){slidesToRender.push(slides[i]);}return slidesToRender;}()),});onRendered();return;}var prependIndexes = [];var appendIndexes = [];if (force){swiper.$wrapperEl.find(("." + (swiper.params.slideClass))).remove();}else{for (var i = previousFrom;i <= previousTo;i += 1){if (i < from || i > to){swiper.$wrapperEl.find(("." + (swiper.params.slideClass) + "[data-swiper-slide-index=\"" + i + "\"]")).remove();}}}for (var i$1 = 0;i$1 < slides.length;i$1 += 1){if (i$1 >= from && i$1 <= to){if (typeof previousTo === 'undefined' || force){appendIndexes.push(i$1);}else{if (i$1 > previousTo){appendIndexes.push(i$1);}if (i$1 < previousFrom){prependIndexes.push(i$1);}}}}appendIndexes.forEach(function (index){swiper.$wrapperEl.append(renderSlide(slides[index],index));});prependIndexes.sort(function (a,b){return b - a;}).forEach(function (index){swiper.$wrapperEl.prepend(renderSlide(slides[index],index));});swiper.$wrapperEl.children('.swiper-slide').css(offsetProp,(offset + "px"));onRendered();},renderSlide:function renderSlide(slide,index){var swiper = this;var params = swiper.params.virtual;if (params.cache && swiper.virtual.cache[index]){return swiper.virtual.cache[index];}var $slideEl = params.renderSlide
        ? $(params.renderSlide.call(swiper,slide,index))
        :$(("<div class=\"" + (swiper.params.slideClass) + "\" data-swiper-slide-index=\"" + index + "\">" + slide + "</div>"));if (!$slideEl.attr('data-swiper-slide-index')){$slideEl.attr('data-swiper-slide-index',index);}if (params.cache){swiper.virtual.cache[index] = $slideEl;}return $slideEl;},appendSlide:function appendSlide(slides){var swiper = this;if (typeof slides === 'object' && 'length' in slides){for (var i = 0;i < slides.length;i += 1){if (slides[i]){swiper.virtual.slides.push(slides[i]);}}}else{swiper.virtual.slides.push(slides);}swiper.virtual.update(true);},prependSlide:function prependSlide(slides){var swiper = this;var activeIndex = swiper.activeIndex;var newActiveIndex = activeIndex + 1;var numberOfNewSlides = 1;if (Array.isArray(slides)){for (var i = 0;i < slides.length;i += 1){if (slides[i]){swiper.virtual.slides.unshift(slides[i]);}}newActiveIndex = activeIndex + slides.length;numberOfNewSlides = slides.length;}else{swiper.virtual.slides.unshift(slides);}if (swiper.params.virtual.cache){var cache = swiper.virtual.cache;var newCache ={};Object.keys(cache).forEach(function (cachedIndex){newCache[parseInt(cachedIndex,10) + numberOfNewSlides] = cache[cachedIndex];});swiper.virtual.cache = newCache;}swiper.virtual.update(true);swiper.slideTo(newActiveIndex,0);},removeSlide:function removeSlide(slidesIndexes){var swiper = this;if (typeof slidesIndexes === 'undefined' || slidesIndexes === null){return;}var activeIndex = swiper.activeIndex;if (Array.isArray(slidesIndexes)){for (var i = slidesIndexes.length - 1;i >= 0;i -= 1){swiper.virtual.slides.splice(slidesIndexes[i],1);if (swiper.params.virtual.cache){delete swiper.virtual.cache[slidesIndexes[i]];}if (slidesIndexes[i] < activeIndex){activeIndex -= 1;}activeIndex = Math.max(activeIndex,0);}}else{swiper.virtual.slides.splice(slidesIndexes,1);if (swiper.params.virtual.cache){delete swiper.virtual.cache[slidesIndexes];}if (slidesIndexes < activeIndex){activeIndex -= 1;}activeIndex = Math.max(activeIndex,0);}swiper.virtual.update(true);swiper.slideTo(activeIndex,0);},removeAllSlides:function removeAllSlides(){var swiper = this;swiper.virtual.slides = [];if (swiper.params.virtual.cache){swiper.virtual.cache ={};}swiper.virtual.update(true);swiper.slideTo(0,0);},};var Virtual$1 ={name:'virtual',params:{virtual:{enabled:false,slides:[],cache:true,renderSlide:null,renderExternal:null,addSlidesBefore:0,addSlidesAfter:0,},},create:function create(){var swiper = this;Utils.extend(swiper,{virtual:{update:Virtual.update.bind(swiper),appendSlide:Virtual.appendSlide.bind(swiper),prependSlide:Virtual.prependSlide.bind(swiper),removeSlide:Virtual.removeSlide.bind(swiper),removeAllSlides:Virtual.removeAllSlides.bind(swiper),renderSlide:Virtual.renderSlide.bind(swiper),slides:swiper.params.virtual.slides,cache:{},},});},on:{beforeInit:function beforeInit(){var swiper = this;if (!swiper.params.virtual.enabled){return;}swiper.classNames.push(((swiper.params.containerModifierClass) + "virtual"));var overwriteParams ={watchSlidesProgress:true,};Utils.extend(swiper.params,overwriteParams);Utils.extend(swiper.originalParams,overwriteParams);if (!swiper.params.initialSlide){swiper.virtual.update();}},setTranslate:function setTranslate(){var swiper = this;if (!swiper.params.virtual.enabled){return;}swiper.virtual.update();},},};var Keyboard ={handle:function handle(event){var swiper = this;var rtl = swiper.rtlTranslate;var e = event;if (e.originalEvent){e = e.originalEvent;}// jquery fix
      var kc = e.keyCode || e.charCode;// Directions locks
      if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40) || kc === 34)){return false;}if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38) || kc === 33)){return false;}if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey){return undefined;}if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')){return undefined;}if (swiper.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)){var inView = false;// Check that swiper should be inside of visible area of window
        if (swiper.$el.parents(("." + (swiper.params.slideClass))).length > 0 && swiper.$el.parents(("." + (swiper.params.slideActiveClass))).length === 0){return undefined;}var windowWidth = win.innerWidth;var windowHeight = win.innerHeight;var swiperOffset = swiper.$el.offset();if (rtl){swiperOffset.left -= swiper.$el[0].scrollLeft;}var swiperCoord = [
          [swiperOffset.left,swiperOffset.top],[swiperOffset.left + swiper.width,swiperOffset.top],[swiperOffset.left,swiperOffset.top + swiper.height],[swiperOffset.left + swiper.width,swiperOffset.top + swiper.height] ];for (var i = 0;i < swiperCoord.length;i += 1){var point = swiperCoord[i];if (point[0] >= 0 && point[0] <= windowWidth
            && point[1] >= 0 && point[1] <= windowHeight){inView = true;}}if (!inView){return undefined;}}if (swiper.isHorizontal()){if (kc === 33 || kc === 34 || kc === 37 || kc === 39){if (e.preventDefault){e.preventDefault();}else{e.returnValue = false;}}if (((kc === 34 || kc === 39) && !rtl) || ((kc === 33 || kc === 37) && rtl)){swiper.slideNext();}if (((kc === 33 || kc === 37) && !rtl) || ((kc === 34 || kc === 39) && rtl)){swiper.slidePrev();}}else{if (kc === 33 || kc === 34 || kc === 38 || kc === 40){if (e.preventDefault){e.preventDefault();}else{e.returnValue = false;}}if (kc === 34 || kc === 40){swiper.slideNext();}if (kc === 33 || kc === 38){swiper.slidePrev();}}swiper.emit('keyPress',kc);return undefined;},enable:function enable(){var swiper = this;if (swiper.keyboard.enabled){return;}$(doc).on('keydown',swiper.keyboard.handle);swiper.keyboard.enabled = true;},disable:function disable(){var swiper = this;if (!swiper.keyboard.enabled){return;}$(doc).off('keydown',swiper.keyboard.handle);swiper.keyboard.enabled = false;},};var Keyboard$1 ={name:'keyboard',params:{keyboard:{enabled:false,onlyInViewport:true,},},create:function create(){var swiper = this;Utils.extend(swiper,{keyboard:{enabled:false,enable:Keyboard.enable.bind(swiper),disable:Keyboard.disable.bind(swiper),handle:Keyboard.handle.bind(swiper),},});},on:{init:function init(){var swiper = this;if (swiper.params.keyboard.enabled){swiper.keyboard.enable();}},destroy:function destroy(){var swiper = this;if (swiper.keyboard.enabled){swiper.keyboard.disable();}},},};function isEventSupported(){var eventName = 'onwheel';var isSupported = eventName in doc;if (!isSupported){var element = doc.createElement('div');element.setAttribute(eventName,'return;');isSupported = typeof element[eventName] === 'function';}if (!isSupported
      && doc.implementation
      && doc.implementation.hasFeature
      // always returns true in newer browsers as per the standard.
      //@see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature
      && doc.implementation.hasFeature('','') !== true){// This is the only way to test support for the `wheel` event in IE9+.
      isSupported = doc.implementation.hasFeature('Events.wheel','3.0');}return isSupported;}var Mousewheel ={lastScrollTime:Utils.now(),event:(function getEvent(){if (win.navigator.userAgent.indexOf('firefox') > -1){return 'DOMMouseScroll';}return isEventSupported() ? 'wheel' :'mousewheel';}()),normalize:function normalize(e){// Reasonable defaults
      var PIXEL_STEP = 10;var LINE_HEIGHT = 40;var PAGE_HEIGHT = 800;var sX = 0;var sY = 0;// spinX,spinY
      var pX = 0;var pY = 0;// pixelX,pixelY

      // Legacy
      if ('detail' in e){sY = e.detail;}if ('wheelDelta' in e){sY = -e.wheelDelta / 120;}if ('wheelDeltaY' in e){sY = -e.wheelDeltaY / 120;}if ('wheelDeltaX' in e){sX = -e.wheelDeltaX / 120;}// side scrolling on FF with DOMMouseScroll
      if ('axis' in e && e.axis === e.HORIZONTAL_AXIS){sX = sY;sY = 0;}pX = sX * PIXEL_STEP;pY = sY * PIXEL_STEP;if ('deltaY' in e){pY = e.deltaY;}if ('deltaX' in e){pX = e.deltaX;}if ((pX || pY) && e.deltaMode){if (e.deltaMode === 1){// delta in LINE units
          pX *= LINE_HEIGHT;pY *= LINE_HEIGHT;}else{// delta in PAGE units
          pX *= PAGE_HEIGHT;pY *= PAGE_HEIGHT;}}// Fall-back if spin cannot be determined
      if (pX && !sX){sX = (pX < 1) ? -1 :1;}if (pY && !sY){sY = (pY < 1) ? -1 :1;}return{spinX:sX,spinY:sY,pixelX:pX,pixelY:pY,};},handleMouseEnter:function handleMouseEnter(){var swiper = this;swiper.mouseEntered = true;},handleMouseLeave:function handleMouseLeave(){var swiper = this;swiper.mouseEntered = false;},handle:function handle(event){var e = event;var swiper = this;var params = swiper.params.mousewheel;if (!swiper.mouseEntered && !params.releaseOnEdges){return true;}if (e.originalEvent){e = e.originalEvent;}// jquery fix
      var delta = 0;var rtlFactor = swiper.rtlTranslate ? -1 :1;var data = Mousewheel.normalize(e);if (params.forceToAxis){if (swiper.isHorizontal()){if (Math.abs(data.pixelX) > Math.abs(data.pixelY)){delta = data.pixelX * rtlFactor;}else{return true;}}else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)){delta = data.pixelY;}else{return true;}}else{delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor :-data.pixelY;}if (delta === 0){return true;}if (params.invert){delta = -delta;}if (!swiper.params.freeMode){if (Utils.now() - swiper.mousewheel.lastScrollTime > 60){if (delta < 0){if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating){swiper.slideNext();swiper.emit('scroll',e);}else if (params.releaseOnEdges){return true;}}else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating){swiper.slidePrev();swiper.emit('scroll',e);}else if (params.releaseOnEdges){return true;}}swiper.mousewheel.lastScrollTime = (new win.Date()).getTime();}else{// Freemode or scrollContainer:if (swiper.params.loop){swiper.loopFix();}var position = swiper.getTranslate() + (delta * params.sensitivity);var wasBeginning = swiper.isBeginning;var wasEnd = swiper.isEnd;if (position >= swiper.minTranslate()){position = swiper.minTranslate();}if (position <= swiper.maxTranslate()){position = swiper.maxTranslate();}swiper.setTransition(0);swiper.setTranslate(position);swiper.updateProgress();swiper.updateActiveIndex();swiper.updateSlidesClasses();if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)){swiper.updateSlidesClasses();}if (swiper.params.freeModeSticky){clearTimeout(swiper.mousewheel.timeout);swiper.mousewheel.timeout = Utils.nextTick(function (){swiper.slideToClosest();},300);}// Emit event
        swiper.emit('scroll',e);// Stop autoplay
        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction){swiper.autoplay.stop();}// Return page scroll on edge positions
        if (position === swiper.minTranslate() || position === swiper.maxTranslate()){return true;}}if (e.preventDefault){e.preventDefault();}else{e.returnValue = false;}return false;},enable:function enable(){var swiper = this;if (!Mousewheel.event){return false;}if (swiper.mousewheel.enabled){return false;}var target = swiper.$el;if (swiper.params.mousewheel.eventsTarged !== 'container'){target = $(swiper.params.mousewheel.eventsTarged);}target.on('mouseenter',swiper.mousewheel.handleMouseEnter);target.on('mouseleave',swiper.mousewheel.handleMouseLeave);target.on(Mousewheel.event,swiper.mousewheel.handle);swiper.mousewheel.enabled = true;return true;},disable:function disable(){var swiper = this;if (!Mousewheel.event){return false;}if (!swiper.mousewheel.enabled){return false;}var target = swiper.$el;if (swiper.params.mousewheel.eventsTarged !== 'container'){target = $(swiper.params.mousewheel.eventsTarged);}target.off(Mousewheel.event,swiper.mousewheel.handle);swiper.mousewheel.enabled = false;return true;},};var Mousewheel$1 ={name:'mousewheel',params:{mousewheel:{enabled:false,releaseOnEdges:false,invert:false,forceToAxis:false,sensitivity:1,eventsTarged:'container',},},create:function create(){var swiper = this;Utils.extend(swiper,{mousewheel:{enabled:false,enable:Mousewheel.enable.bind(swiper),disable:Mousewheel.disable.bind(swiper),handle:Mousewheel.handle.bind(swiper),handleMouseEnter:Mousewheel.handleMouseEnter.bind(swiper),handleMouseLeave:Mousewheel.handleMouseLeave.bind(swiper),lastScrollTime:Utils.now(),},});},on:{init:function init(){var swiper = this;if (swiper.params.mousewheel.enabled){swiper.mousewheel.enable();}},destroy:function destroy(){var swiper = this;if (swiper.mousewheel.enabled){swiper.mousewheel.disable();}},},};var Navigation ={update:function update(){// Update Navigation Buttons
      var swiper = this;var params = swiper.params.navigation;if (swiper.params.loop){return;}var ref = swiper.navigation;var $nextEl = ref.$nextEl;var $prevEl = ref.$prevEl;if ($prevEl && $prevEl.length > 0){if (swiper.isBeginning){$prevEl.addClass(params.disabledClass);}else{$prevEl.removeClass(params.disabledClass);}$prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' :'removeClass'](params.lockClass);}if ($nextEl && $nextEl.length > 0){if (swiper.isEnd){$nextEl.addClass(params.disabledClass);}else{$nextEl.removeClass(params.disabledClass);}$nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' :'removeClass'](params.lockClass);}},onPrevClick:function onPrevClick(e){var swiper = this;e.preventDefault();if (swiper.isBeginning && !swiper.params.loop){return;}swiper.slidePrev();},onNextClick:function onNextClick(e){var swiper = this;e.preventDefault();if (swiper.isEnd && !swiper.params.loop){return;}swiper.slideNext();},init:function init(){var swiper = this;var params = swiper.params.navigation;if (!(params.nextEl || params.prevEl)){return;}var $nextEl;var $prevEl;if (params.nextEl){$nextEl = $(params.nextEl);if (swiper.params.uniqueNavElements
          && typeof params.nextEl === 'string'
          && $nextEl.length > 1
          && swiper.$el.find(params.nextEl).length === 1){$nextEl = swiper.$el.find(params.nextEl);}}if (params.prevEl){$prevEl = $(params.prevEl);if (swiper.params.uniqueNavElements
          && typeof params.prevEl === 'string'
          && $prevEl.length > 1
          && swiper.$el.find(params.prevEl).length === 1){$prevEl = swiper.$el.find(params.prevEl);}}if ($nextEl && $nextEl.length > 0){$nextEl.on('click',swiper.navigation.onNextClick);}if ($prevEl && $prevEl.length > 0){$prevEl.on('click',swiper.navigation.onPrevClick);}Utils.extend(swiper.navigation,{$nextEl:$nextEl,nextEl:$nextEl && $nextEl[0],$prevEl:$prevEl,prevEl:$prevEl && $prevEl[0],});},destroy:function destroy(){var swiper = this;var ref = swiper.navigation;var $nextEl = ref.$nextEl;var $prevEl = ref.$prevEl;if ($nextEl && $nextEl.length){$nextEl.off('click',swiper.navigation.onNextClick);$nextEl.removeClass(swiper.params.navigation.disabledClass);}if ($prevEl && $prevEl.length){$prevEl.off('click',swiper.navigation.onPrevClick);$prevEl.removeClass(swiper.params.navigation.disabledClass);}},};var Navigation$1 ={name:'navigation',params:{navigation:{nextEl:null,prevEl:null,hideOnClick:false,disabledClass:'swiper-button-disabled',hiddenClass:'swiper-button-hidden',lockClass:'swiper-button-lock',},},create:function create(){var swiper = this;Utils.extend(swiper,{navigation:{init:Navigation.init.bind(swiper),update:Navigation.update.bind(swiper),destroy:Navigation.destroy.bind(swiper),onNextClick:Navigation.onNextClick.bind(swiper),onPrevClick:Navigation.onPrevClick.bind(swiper),},});},on:{init:function init(){var swiper = this;swiper.navigation.init();swiper.navigation.update();},toEdge:function toEdge(){var swiper = this;swiper.navigation.update();},fromEdge:function fromEdge(){var swiper = this;swiper.navigation.update();},destroy:function destroy(){var swiper = this;swiper.navigation.destroy();},click:function click(e){var swiper = this;var ref = swiper.navigation;var $nextEl = ref.$nextEl;var $prevEl = ref.$prevEl;if (swiper.params.navigation.hideOnClick
          && !$(e.target).is($prevEl)
          && !$(e.target).is($nextEl)){var isHidden;if ($nextEl){isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);}else if ($prevEl){isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);}if (isHidden === true){swiper.emit('navigationShow',swiper);}else{swiper.emit('navigationHide',swiper);}if ($nextEl){$nextEl.toggleClass(swiper.params.navigation.hiddenClass);}if ($prevEl){$prevEl.toggleClass(swiper.params.navigation.hiddenClass);}}},},};var Pagination ={update:function update(){// Render || Update Pagination bullets/items
      var swiper = this;var rtl = swiper.rtl;var params = swiper.params.pagination;if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0){return;}var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length :swiper.slides.length;var $el = swiper.pagination.$el;// Current/Total
      var current;var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) :swiper.snapGrid.length;if (swiper.params.loop){current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);if (current > slidesLength - 1 - (swiper.loopedSlides * 2)){current -= (slidesLength - (swiper.loopedSlides * 2));}if (current > total - 1){current -= total;}if (current < 0 && swiper.params.paginationType !== 'bullets'){current = total + current;}}else if (typeof swiper.snapIndex !== 'undefined'){current = swiper.snapIndex;}else{current = swiper.activeIndex || 0;}// Types
      if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0){var bullets = swiper.pagination.bullets;var firstIndex;var lastIndex;var midIndex;if (params.dynamicBullets){swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' :'outerHeight'](true);$el.css(swiper.isHorizontal() ? 'width' :'height',((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + "px"));if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined){swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)){swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;}else if (swiper.pagination.dynamicBulletIndex < 0){swiper.pagination.dynamicBulletIndex = 0;}}firstIndex = current - swiper.pagination.dynamicBulletIndex;lastIndex = firstIndex + (Math.min(bullets.length,params.dynamicMainBullets) - 1);midIndex = (lastIndex + firstIndex) / 2;}bullets.removeClass(((params.bulletActiveClass) + " " + (params.bulletActiveClass) + "-next " + (params.bulletActiveClass) + "-next-next " + (params.bulletActiveClass) + "-prev " + (params.bulletActiveClass) + "-prev-prev " + (params.bulletActiveClass) + "-main"));if ($el.length > 1){bullets.each(function (index,bullet){var $bullet = $(bullet);var bulletIndex = $bullet.index();if (bulletIndex === current){$bullet.addClass(params.bulletActiveClass);}if (params.dynamicBullets){if (bulletIndex >= firstIndex && bulletIndex <= lastIndex){$bullet.addClass(((params.bulletActiveClass) + "-main"));}if (bulletIndex === firstIndex){$bullet
                  .prev()
                  .addClass(((params.bulletActiveClass) + "-prev"))
                  .prev()
                  .addClass(((params.bulletActiveClass) + "-prev-prev"));}if (bulletIndex === lastIndex){$bullet
                  .next()
                  .addClass(((params.bulletActiveClass) + "-next"))
                  .next()
                  .addClass(((params.bulletActiveClass) + "-next-next"));}}});}else{var $bullet = bullets.eq(current);$bullet.addClass(params.bulletActiveClass);if (params.dynamicBullets){var $firstDisplayedBullet = bullets.eq(firstIndex);var $lastDisplayedBullet = bullets.eq(lastIndex);for (var i = firstIndex;i <= lastIndex;i += 1){bullets.eq(i).addClass(((params.bulletActiveClass) + "-main"));}$firstDisplayedBullet
              .prev()
              .addClass(((params.bulletActiveClass) + "-prev"))
              .prev()
              .addClass(((params.bulletActiveClass) + "-prev-prev"));$lastDisplayedBullet
              .next()
              .addClass(((params.bulletActiveClass) + "-next"))
              .next()
              .addClass(((params.bulletActiveClass) + "-next-next"));}}if (params.dynamicBullets){var dynamicBulletsLength = Math.min(bullets.length,params.dynamicMainBullets + 4);var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);var offsetProp = rtl ? 'right' :'left';bullets.css(swiper.isHorizontal() ? offsetProp :'top',(bulletsOffset + "px"));}}if (params.type === 'fraction'){$el.find(("." + (params.currentClass))).text(params.formatFractionCurrent(current + 1));$el.find(("." + (params.totalClass))).text(params.formatFractionTotal(total));}if (params.type === 'progressbar'){var progressbarDirection;if (params.progressbarOpposite){progressbarDirection = swiper.isHorizontal() ? 'vertical' :'horizontal';}else{progressbarDirection = swiper.isHorizontal() ? 'horizontal' :'vertical';}var scale = (current + 1) / total;var scaleX = 1;var scaleY = 1;if (progressbarDirection === 'horizontal'){scaleX = scale;}else{scaleY = scale;}$el.find(("." + (params.progressbarFillClass))).transform(("translate3d(0,0,0) scaleX(" + scaleX + ") scaleY(" + scaleY + ")")).transition(swiper.params.speed);}if (params.type === 'custom' && params.renderCustom){$el.html(params.renderCustom(swiper,current + 1,total));swiper.emit('paginationRender',swiper,$el[0]);}else{swiper.emit('paginationUpdate',swiper,$el[0]);}$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' :'removeClass'](params.lockClass);},render:function render(){// Render Container
      var swiper = this;var params = swiper.params.pagination;if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0){return;}var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length :swiper.slides.length;var $el = swiper.pagination.$el;var paginationHTML = '';if (params.type === 'bullets'){var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) :swiper.snapGrid.length;for (var i = 0;i < numberOfBullets;i += 1){if (params.renderBullet){paginationHTML += params.renderBullet.call(swiper,i,params.bulletClass);}else{paginationHTML += "<" + (params.bulletElement) + " class=\"" + (params.bulletClass) + "\"></" + (params.bulletElement) + ">";}}$el.html(paginationHTML);swiper.pagination.bullets = $el.find(("." + (params.bulletClass)));}if (params.type === 'fraction'){if (params.renderFraction){paginationHTML = params.renderFraction.call(swiper,params.currentClass,params.totalClass);}else{paginationHTML = "<span class=\"" + (params.currentClass) + "\"></span>"
          + ' / '
          + "<span class=\"" + (params.totalClass) + "\"></span>";}$el.html(paginationHTML);}if (params.type === 'progressbar'){if (params.renderProgressbar){paginationHTML = params.renderProgressbar.call(swiper,params.progressbarFillClass);}else{paginationHTML = "<span class=\"" + (params.progressbarFillClass) + "\"></span>";}$el.html(paginationHTML);}if (params.type !== 'custom'){swiper.emit('paginationRender',swiper.pagination.$el[0]);}},init:function init(){var swiper = this;var params = swiper.params.pagination;if (!params.el){return;}var $el = $(params.el);if ($el.length === 0){return;}if (swiper.params.uniqueNavElements
        && typeof params.el === 'string'
        && $el.length > 1
        && swiper.$el.find(params.el).length === 1){$el = swiper.$el.find(params.el);}if (params.type === 'bullets' && params.clickable){$el.addClass(params.clickableClass);}$el.addClass(params.modifierClass + params.type);if (params.type === 'bullets' && params.dynamicBullets){$el.addClass(("" + (params.modifierClass) + (params.type) + "-dynamic"));swiper.pagination.dynamicBulletIndex = 0;if (params.dynamicMainBullets < 1){params.dynamicMainBullets = 1;}}if (params.type === 'progressbar' && params.progressbarOpposite){$el.addClass(params.progressbarOppositeClass);}if (params.clickable){$el.on('click',("." + (params.bulletClass)),function onClick(e){e.preventDefault();var index = $(this).index() * swiper.params.slidesPerGroup;if (swiper.params.loop){index += swiper.loopedSlides;}swiper.slideTo(index);});}Utils.extend(swiper.pagination,{$el:$el,el:$el[0],});},destroy:function destroy(){var swiper = this;var params = swiper.params.pagination;if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0){return;}var $el = swiper.pagination.$el;$el.removeClass(params.hiddenClass);$el.removeClass(params.modifierClass + params.type);if (swiper.pagination.bullets){swiper.pagination.bullets.removeClass(params.bulletActiveClass);}if (params.clickable){$el.off('click',("." + (params.bulletClass)));}},};var Pagination$1 ={name:'pagination',params:{pagination:{el:null,bulletElement:'span',clickable:false,hideOnClick:false,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:false,type:'bullets',// 'bullets' or 'progressbar' or 'fraction' or 'custom'
        dynamicBullets:false,dynamicMainBullets:1,formatFractionCurrent:function (number){return number;},formatFractionTotal:function (number){return number;},bulletClass:'swiper-pagination-bullet',bulletActiveClass:'swiper-pagination-bullet-active',modifierClass:'swiper-pagination-',// NEW
        currentClass:'swiper-pagination-current',totalClass:'swiper-pagination-total',hiddenClass:'swiper-pagination-hidden',progressbarFillClass:'swiper-pagination-progressbar-fill',progressbarOppositeClass:'swiper-pagination-progressbar-opposite',clickableClass:'swiper-pagination-clickable',// NEW
        lockClass:'swiper-pagination-lock',},},create:function create(){var swiper = this;Utils.extend(swiper,{pagination:{init:Pagination.init.bind(swiper),render:Pagination.render.bind(swiper),update:Pagination.update.bind(swiper),destroy:Pagination.destroy.bind(swiper),dynamicBulletIndex:0,},});},on:{init:function init(){var swiper = this;swiper.pagination.init();swiper.pagination.render();swiper.pagination.update();},activeIndexChange:function activeIndexChange(){var swiper = this;if (swiper.params.loop){swiper.pagination.update();}else if (typeof swiper.snapIndex === 'undefined'){swiper.pagination.update();}},snapIndexChange:function snapIndexChange(){var swiper = this;if (!swiper.params.loop){swiper.pagination.update();}},slidesLengthChange:function slidesLengthChange(){var swiper = this;if (swiper.params.loop){swiper.pagination.render();swiper.pagination.update();}},snapGridLengthChange:function snapGridLengthChange(){var swiper = this;if (!swiper.params.loop){swiper.pagination.render();swiper.pagination.update();}},destroy:function destroy(){var swiper = this;swiper.pagination.destroy();},click:function click(e){var swiper = this;if (swiper.params.pagination.el
          && swiper.params.pagination.hideOnClick
          && swiper.pagination.$el.length > 0
          && !$(e.target).hasClass(swiper.params.pagination.bulletClass)){var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);if (isHidden === true){swiper.emit('paginationShow',swiper);}else{swiper.emit('paginationHide',swiper);}swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);}},},};var Scrollbar ={setTranslate:function setTranslate(){var swiper = this;if (!swiper.params.scrollbar.el || !swiper.scrollbar.el){return;}var scrollbar = swiper.scrollbar;var rtl = swiper.rtlTranslate;var progress = swiper.progress;var dragSize = scrollbar.dragSize;var trackSize = scrollbar.trackSize;var $dragEl = scrollbar.$dragEl;var $el = scrollbar.$el;var params = swiper.params.scrollbar;var newSize = dragSize;var newPos = (trackSize - dragSize) * progress;if (rtl){newPos = -newPos;if (newPos > 0){newSize = dragSize - newPos;newPos = 0;}else if (-newPos + dragSize > trackSize){newSize = trackSize + newPos;}}else if (newPos < 0){newSize = dragSize + newPos;newPos = 0;}else if (newPos + dragSize > trackSize){newSize = trackSize - newPos;}if (swiper.isHorizontal()){if (Support.transforms3d){$dragEl.transform(("translate3d(" + newPos + "px, 0, 0)"));}else{$dragEl.transform(("translateX(" + newPos + "px)"));}$dragEl[0].style.width = newSize + "px";}else{if (Support.transforms3d){$dragEl.transform(("translate3d(0px, " + newPos + "px, 0)"));}else{$dragEl.transform(("translateY(" + newPos + "px)"));}$dragEl[0].style.height = newSize + "px";}if (params.hide){clearTimeout(swiper.scrollbar.timeout);$el[0].style.opacity = 1;swiper.scrollbar.timeout = setTimeout(function (){$el[0].style.opacity = 0;$el.transition(400);},1000);}},setTransition:function setTransition(duration){var swiper = this;if (!swiper.params.scrollbar.el || !swiper.scrollbar.el){return;}swiper.scrollbar.$dragEl.transition(duration);},updateSize:function updateSize(){var swiper = this;if (!swiper.params.scrollbar.el || !swiper.scrollbar.el){return;}var scrollbar = swiper.scrollbar;var $dragEl = scrollbar.$dragEl;var $el = scrollbar.$el;$dragEl[0].style.width = '';$dragEl[0].style.height = '';var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth :$el[0].offsetHeight;var divider = swiper.size / swiper.virtualSize;var moveDivider = divider * (trackSize / swiper.size);var dragSize;if (swiper.params.scrollbar.dragSize === 'auto'){dragSize = trackSize * divider;}else{dragSize = parseInt(swiper.params.scrollbar.dragSize,10);}if (swiper.isHorizontal()){$dragEl[0].style.width = dragSize + "px";}else{$dragEl[0].style.height = dragSize + "px";}if (divider >= 1){$el[0].style.display = 'none';}else{$el[0].style.display = '';}if (swiper.params.scrollbar.hide){$el[0].style.opacity = 0;}Utils.extend(scrollbar,{trackSize:trackSize,divider:divider,moveDivider:moveDivider,dragSize:dragSize,});scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' :'removeClass'](swiper.params.scrollbar.lockClass);},getPointerPosition:function getPointerPosition(e){var swiper = this;if (swiper.isHorizontal()){return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX :e.pageX || e.clientX);}return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY :e.pageY || e.clientY);},setDragPosition:function setDragPosition(e){var swiper = this;var scrollbar = swiper.scrollbar;var rtl = swiper.rtlTranslate;var $el = scrollbar.$el;var dragSize = scrollbar.dragSize;var trackSize = scrollbar.trackSize;var dragStartPos = scrollbar.dragStartPos;var positionRatio;positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' :'top']
        - (dragStartPos !== null ? dragStartPos :dragSize / 2)) / (trackSize - dragSize);positionRatio = Math.max(Math.min(positionRatio,1),0);if (rtl){positionRatio = 1 - positionRatio;}var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);swiper.updateProgress(position);swiper.setTranslate(position);swiper.updateActiveIndex();swiper.updateSlidesClasses();},onDragStart:function onDragStart(e){var swiper = this;var params = swiper.params.scrollbar;var scrollbar = swiper.scrollbar;var $wrapperEl = swiper.$wrapperEl;var $el = scrollbar.$el;var $dragEl = scrollbar.$dragEl;swiper.scrollbar.isTouched = true;swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)
        ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' :'top'] :null;e.preventDefault();e.stopPropagation();$wrapperEl.transition(100);$dragEl.transition(100);scrollbar.setDragPosition(e);clearTimeout(swiper.scrollbar.dragTimeout);$el.transition(0);if (params.hide){$el.css('opacity',1);}swiper.emit('scrollbarDragStart',e);},onDragMove:function onDragMove(e){var swiper = this;var scrollbar = swiper.scrollbar;var $wrapperEl = swiper.$wrapperEl;var $el = scrollbar.$el;var $dragEl = scrollbar.$dragEl;if (!swiper.scrollbar.isTouched){return;}if (e.preventDefault){e.preventDefault();}else{e.returnValue = false;}scrollbar.setDragPosition(e);$wrapperEl.transition(0);$el.transition(0);$dragEl.transition(0);swiper.emit('scrollbarDragMove',e);},onDragEnd:function onDragEnd(e){var swiper = this;var params = swiper.params.scrollbar;var scrollbar = swiper.scrollbar;var $el = scrollbar.$el;if (!swiper.scrollbar.isTouched){return;}swiper.scrollbar.isTouched = false;if (params.hide){clearTimeout(swiper.scrollbar.dragTimeout);swiper.scrollbar.dragTimeout = Utils.nextTick(function (){$el.css('opacity',0);$el.transition(400);},1000);}swiper.emit('scrollbarDragEnd',e);if (params.snapOnRelease){swiper.slideToClosest();}},enableDraggable:function enableDraggable(){var swiper = this;if (!swiper.params.scrollbar.el){return;}var scrollbar = swiper.scrollbar;var touchEventsTouch = swiper.touchEventsTouch;var touchEventsDesktop = swiper.touchEventsDesktop;var params = swiper.params;var $el = scrollbar.$el;var target = $el[0];var activeListener = Support.passiveListener && params.passiveListeners ?{passive:false,capture:false}:false;var passiveListener = Support.passiveListener && params.passiveListeners ?{passive:true,capture:false}:false;if (!Support.touch){target.addEventListener(touchEventsDesktop.start,swiper.scrollbar.onDragStart,activeListener);doc.addEventListener(touchEventsDesktop.move,swiper.scrollbar.onDragMove,activeListener);doc.addEventListener(touchEventsDesktop.end,swiper.scrollbar.onDragEnd,passiveListener);}else{target.addEventListener(touchEventsTouch.start,swiper.scrollbar.onDragStart,activeListener);target.addEventListener(touchEventsTouch.move,swiper.scrollbar.onDragMove,activeListener);target.addEventListener(touchEventsTouch.end,swiper.scrollbar.onDragEnd,passiveListener);}},disableDraggable:function disableDraggable(){var swiper = this;if (!swiper.params.scrollbar.el){return;}var scrollbar = swiper.scrollbar;var touchEventsTouch = swiper.touchEventsTouch;var touchEventsDesktop = swiper.touchEventsDesktop;var params = swiper.params;var $el = scrollbar.$el;var target = $el[0];var activeListener = Support.passiveListener && params.passiveListeners ?{passive:false,capture:false}:false;var passiveListener = Support.passiveListener && params.passiveListeners ?{passive:true,capture:false}:false;if (!Support.touch){target.removeEventListener(touchEventsDesktop.start,swiper.scrollbar.onDragStart,activeListener);doc.removeEventListener(touchEventsDesktop.move,swiper.scrollbar.onDragMove,activeListener);doc.removeEventListener(touchEventsDesktop.end,swiper.scrollbar.onDragEnd,passiveListener);}else{target.removeEventListener(touchEventsTouch.start,swiper.scrollbar.onDragStart,activeListener);target.removeEventListener(touchEventsTouch.move,swiper.scrollbar.onDragMove,activeListener);target.removeEventListener(touchEventsTouch.end,swiper.scrollbar.onDragEnd,passiveListener);}},init:function init(){var swiper = this;if (!swiper.params.scrollbar.el){return;}var scrollbar = swiper.scrollbar;var $swiperEl = swiper.$el;var params = swiper.params.scrollbar;var $el = $(params.el);if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1){$el = $swiperEl.find(params.el);}var $dragEl = $el.find(("." + (swiper.params.scrollbar.dragClass)));if ($dragEl.length === 0){$dragEl = $(("<div class=\"" + (swiper.params.scrollbar.dragClass) + "\"></div>"));$el.append($dragEl);}Utils.extend(scrollbar,{$el:$el,el:$el[0],$dragEl:$dragEl,dragEl:$dragEl[0],});if (params.draggable){scrollbar.enableDraggable();}},destroy:function destroy(){var swiper = this;swiper.scrollbar.disableDraggable();},};var Scrollbar$1 ={name:'scrollbar',params:{scrollbar:{el:null,dragSize:'auto',hide:false,draggable:false,snapOnRelease:true,lockClass:'swiper-scrollbar-lock',dragClass:'swiper-scrollbar-drag',},},create:function create(){var swiper = this;Utils.extend(swiper,{scrollbar:{init:Scrollbar.init.bind(swiper),destroy:Scrollbar.destroy.bind(swiper),updateSize:Scrollbar.updateSize.bind(swiper),setTranslate:Scrollbar.setTranslate.bind(swiper),setTransition:Scrollbar.setTransition.bind(swiper),enableDraggable:Scrollbar.enableDraggable.bind(swiper),disableDraggable:Scrollbar.disableDraggable.bind(swiper),setDragPosition:Scrollbar.setDragPosition.bind(swiper),getPointerPosition:Scrollbar.getPointerPosition.bind(swiper),onDragStart:Scrollbar.onDragStart.bind(swiper),onDragMove:Scrollbar.onDragMove.bind(swiper),onDragEnd:Scrollbar.onDragEnd.bind(swiper),isTouched:false,timeout:null,dragTimeout:null,},});},on:{init:function init(){var swiper = this;swiper.scrollbar.init();swiper.scrollbar.updateSize();swiper.scrollbar.setTranslate();},update:function update(){var swiper = this;swiper.scrollbar.updateSize();},resize:function resize(){var swiper = this;swiper.scrollbar.updateSize();},observerUpdate:function observerUpdate(){var swiper = this;swiper.scrollbar.updateSize();},setTranslate:function setTranslate(){var swiper = this;swiper.scrollbar.setTranslate();},setTransition:function setTransition(duration){var swiper = this;swiper.scrollbar.setTransition(duration);},destroy:function destroy(){var swiper = this;swiper.scrollbar.destroy();},},};var Parallax ={setTransform:function setTransform(el,progress){var swiper = this;var rtl = swiper.rtl;var $el = $(el);var rtlFactor = rtl ? -1 :1;var p = $el.attr('data-swiper-parallax') || '0';var x = $el.attr('data-swiper-parallax-x');var y = $el.attr('data-swiper-parallax-y');var scale = $el.attr('data-swiper-parallax-scale');var opacity = $el.attr('data-swiper-parallax-opacity');if (x || y){x = x || '0';y = y || '0';}else if (swiper.isHorizontal()){x = p;y = '0';}else{y = p;x = '0';}if ((x).indexOf('%') >= 0){x = (parseInt(x,10) * progress * rtlFactor) + "%";}else{x = (x * progress * rtlFactor) + "px";}if ((y).indexOf('%') >= 0){y = (parseInt(y,10) * progress) + "%";}else{y = (y * progress) + "px";}if (typeof opacity !== 'undefined' && opacity !== null){var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));$el[0].style.opacity = currentOpacity;}if (typeof scale === 'undefined' || scale === null){$el.transform(("translate3d(" + x + ", " + y + ", 0px)"));}else{var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));$el.transform(("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")"));}},setTranslate:function setTranslate(){var swiper = this;var $el = swiper.$el;var slides = swiper.slides;var progress = swiper.progress;var snapGrid = swiper.snapGrid;$el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')
        .each(function (index,el){swiper.parallax.setTransform(el,progress);});slides.each(function (slideIndex,slideEl){var slideProgress = slideEl.progress;if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto'){slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));}slideProgress = Math.min(Math.max(slideProgress,-1),1);$(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')
          .each(function (index,el){swiper.parallax.setTransform(el,slideProgress);});});},setTransition:function setTransition(duration){if (duration === void 0) duration = this.params.speed;var swiper = this;var $el = swiper.$el;$el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')
        .each(function (index,parallaxEl){var $parallaxEl = $(parallaxEl);var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'),10) || duration;if (duration === 0){parallaxDuration = 0;}$parallaxEl.transition(parallaxDuration);});},};var Parallax$1 ={name:'parallax',params:{parallax:{enabled:false,},},create:function create(){var swiper = this;Utils.extend(swiper,{parallax:{setTransform:Parallax.setTransform.bind(swiper),setTranslate:Parallax.setTranslate.bind(swiper),setTransition:Parallax.setTransition.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;if (!swiper.params.parallax.enabled){return;}swiper.params.watchSlidesProgress = true;swiper.originalParams.watchSlidesProgress = true;},init:function init(){var swiper = this;if (!swiper.params.parallax.enabled){return;}swiper.parallax.setTranslate();},setTranslate:function setTranslate(){var swiper = this;if (!swiper.params.parallax.enabled){return;}swiper.parallax.setTranslate();},setTransition:function setTransition(duration){var swiper = this;if (!swiper.params.parallax.enabled){return;}swiper.parallax.setTransition(duration);},},};var Zoom ={// Calc Scale From Multi-touches
    getDistanceBetweenTouches:function getDistanceBetweenTouches(e){if (e.targetTouches.length < 2){return 1;}var x1 = e.targetTouches[0].pageX;var y1 = e.targetTouches[0].pageY;var x2 = e.targetTouches[1].pageX;var y2 = e.targetTouches[1].pageY;var distance = Math.sqrt((Math.pow((x2 - x1),2)) + (Math.pow((y2 - y1),2)));return distance;},// Events
    onGestureStart:function onGestureStart(e){var swiper = this;var params = swiper.params.zoom;var zoom = swiper.zoom;var gesture = zoom.gesture;zoom.fakeGestureTouched = false;zoom.fakeGestureMoved = false;if (!Support.gestures){if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)){return;}zoom.fakeGestureTouched = true;gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);}if (!gesture.$slideEl || !gesture.$slideEl.length){gesture.$slideEl = $(e.target).closest('.swiper-slide');if (gesture.$slideEl.length === 0){gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);}gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass)));gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;if (gesture.$imageWrapEl.length === 0){gesture.$imageEl = undefined;return;}}gesture.$imageEl.transition(0);swiper.zoom.isScaling = true;},onGestureChange:function onGestureChange(e){var swiper = this;var params = swiper.params.zoom;var zoom = swiper.zoom;var gesture = zoom.gesture;if (!Support.gestures){if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)){return;}zoom.fakeGestureMoved = true;gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);}if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}if (Support.gestures){zoom.scale = e.scale * zoom.currentScale;}else{zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;}if (zoom.scale > gesture.maxRatio){zoom.scale = (gesture.maxRatio - 1) + (Math.pow(((zoom.scale - gesture.maxRatio) + 1),0.5));}if (zoom.scale < params.minRatio){zoom.scale = (params.minRatio + 1) - (Math.pow(((params.minRatio - zoom.scale) + 1),0.5));}gesture.$imageEl.transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")"));},onGestureEnd:function onGestureEnd(e){var swiper = this;var params = swiper.params.zoom;var zoom = swiper.zoom;var gesture = zoom.gesture;if (!Support.gestures){if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved){return;}if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)){return;}zoom.fakeGestureTouched = false;zoom.fakeGestureMoved = false;}if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}zoom.scale = Math.max(Math.min(zoom.scale,gesture.maxRatio),params.minRatio);gesture.$imageEl.transition(swiper.params.speed).transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")"));zoom.currentScale = zoom.scale;zoom.isScaling = false;if (zoom.scale === 1){gesture.$slideEl = undefined;}},onTouchStart:function onTouchStart(e){var swiper = this;var zoom = swiper.zoom;var gesture = zoom.gesture;var image = zoom.image;if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}if (image.isTouched){return;}if (Device.android){e.preventDefault();}image.isTouched = true;image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX :e.pageX;image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY :e.pageY;},onTouchMove:function onTouchMove(e){var swiper = this;var zoom = swiper.zoom;var gesture = zoom.gesture;var image = zoom.image;var velocity = zoom.velocity;if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}swiper.allowClick = false;if (!image.isTouched || !gesture.$slideEl){return;}if (!image.isMoved){image.width = gesture.$imageEl[0].offsetWidth;image.height = gesture.$imageEl[0].offsetHeight;image.startX = Utils.getTranslate(gesture.$imageWrapEl[0],'x') || 0;image.startY = Utils.getTranslate(gesture.$imageWrapEl[0],'y') || 0;gesture.slideWidth = gesture.$slideEl[0].offsetWidth;gesture.slideHeight = gesture.$slideEl[0].offsetHeight;gesture.$imageWrapEl.transition(0);if (swiper.rtl){image.startX = -image.startX;image.startY = -image.startY;}}// Define if we need image drag
      var scaledWidth = image.width * zoom.scale;var scaledHeight = image.height * zoom.scale;if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight){return;}image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)),0);image.maxX = -image.minX;image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)),0);image.maxY = -image.minY;image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX :e.pageX;image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY :e.pageY;if (!image.isMoved && !zoom.isScaling){if (swiper.isHorizontal()
          && ((Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)
            || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x))){image.isTouched = false;return;}if (!swiper.isHorizontal()
          && ((Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)
            || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y))){image.isTouched = false;return;}}e.preventDefault();e.stopPropagation();image.isMoved = true;image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;if (image.currentX < image.minX){image.currentX = (image.minX + 1) - (Math.pow(((image.minX - image.currentX) + 1),0.8));}if (image.currentX > image.maxX){image.currentX = (image.maxX - 1) + (Math.pow(((image.currentX - image.maxX) + 1),0.8));}if (image.currentY < image.minY){image.currentY = (image.minY + 1) - (Math.pow(((image.minY - image.currentY) + 1),0.8));}if (image.currentY > image.maxY){image.currentY = (image.maxY - 1) + (Math.pow(((image.currentY - image.maxY) + 1),0.8));}// Velocity
      if (!velocity.prevPositionX){velocity.prevPositionX = image.touchesCurrent.x;}if (!velocity.prevPositionY){velocity.prevPositionY = image.touchesCurrent.y;}if (!velocity.prevTime){velocity.prevTime = Date.now();}velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2){velocity.x = 0;}if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2){velocity.y = 0;}velocity.prevPositionX = image.touchesCurrent.x;velocity.prevPositionY = image.touchesCurrent.y;velocity.prevTime = Date.now();gesture.$imageWrapEl.transform(("translate3d(" + (image.currentX) + "px, " + (image.currentY) + "px,0)"));},onTouchEnd:function onTouchEnd(){var swiper = this;var zoom = swiper.zoom;var gesture = zoom.gesture;var image = zoom.image;var velocity = zoom.velocity;if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}if (!image.isTouched || !image.isMoved){image.isTouched = false;image.isMoved = false;return;}image.isTouched = false;image.isMoved = false;var momentumDurationX = 300;var momentumDurationY = 300;var momentumDistanceX = velocity.x * momentumDurationX;var newPositionX = image.currentX + momentumDistanceX;var momentumDistanceY = velocity.y * momentumDurationY;var newPositionY = image.currentY + momentumDistanceY;// Fix duration
      if (velocity.x !== 0){momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);}if (velocity.y !== 0){momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);}var momentumDuration = Math.max(momentumDurationX,momentumDurationY);image.currentX = newPositionX;image.currentY = newPositionY;// Define if we need image drag
      var scaledWidth = image.width * zoom.scale;var scaledHeight = image.height * zoom.scale;image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)),0);image.maxX = -image.minX;image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)),0);image.maxY = -image.minY;image.currentX = Math.max(Math.min(image.currentX,image.maxX),image.minX);image.currentY = Math.max(Math.min(image.currentY,image.maxY),image.minY);gesture.$imageWrapEl.transition(momentumDuration).transform(("translate3d(" + (image.currentX) + "px, " + (image.currentY) + "px,0)"));},onTransitionEnd:function onTransitionEnd(){var swiper = this;var zoom = swiper.zoom;var gesture = zoom.gesture;if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex){gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');gesture.$imageWrapEl.transform('translate3d(0,0,0)');zoom.scale = 1;zoom.currentScale = 1;gesture.$slideEl = undefined;gesture.$imageEl = undefined;gesture.$imageWrapEl = undefined;}},// Toggle Zoom
    toggle:function toggle(e){var swiper = this;var zoom = swiper.zoom;if (zoom.scale && zoom.scale !== 1){// Zoom Out
        zoom.out();}else{// Zoom In
        zoom.in(e);}},in:function in$1(e){var swiper = this;var zoom = swiper.zoom;var params = swiper.params.zoom;var gesture = zoom.gesture;var image = zoom.image;if (!gesture.$slideEl){gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) :swiper.slides.eq(swiper.activeIndex);gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass)));}if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}gesture.$slideEl.addClass(("" + (params.zoomedSlideClass)));var touchX;var touchY;var offsetX;var offsetY;var diffX;var diffY;var translateX;var translateY;var imageWidth;var imageHeight;var scaledWidth;var scaledHeight;var translateMinX;var translateMinY;var translateMaxX;var translateMaxY;var slideWidth;var slideHeight;if (typeof image.touchesStart.x === 'undefined' && e){touchX = e.type === 'touchend' ? e.changedTouches[0].pageX :e.pageX;touchY = e.type === 'touchend' ? e.changedTouches[0].pageY :e.pageY;}else{touchX = image.touchesStart.x;touchY = image.touchesStart.y;}zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;if (e){slideWidth = gesture.$slideEl[0].offsetWidth;slideHeight = gesture.$slideEl[0].offsetHeight;offsetX = gesture.$slideEl.offset().left;offsetY = gesture.$slideEl.offset().top;diffX = (offsetX + (slideWidth / 2)) - touchX;diffY = (offsetY + (slideHeight / 2)) - touchY;imageWidth = gesture.$imageEl[0].offsetWidth;imageHeight = gesture.$imageEl[0].offsetHeight;scaledWidth = imageWidth * zoom.scale;scaledHeight = imageHeight * zoom.scale;translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)),0);translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)),0);translateMaxX = -translateMinX;translateMaxY = -translateMinY;translateX = diffX * zoom.scale;translateY = diffY * zoom.scale;if (translateX < translateMinX){translateX = translateMinX;}if (translateX > translateMaxX){translateX = translateMaxX;}if (translateY < translateMinY){translateY = translateMinY;}if (translateY > translateMaxY){translateY = translateMaxY;}}else{translateX = 0;translateY = 0;}gesture.$imageWrapEl.transition(300).transform(("translate3d(" + translateX + "px, " + translateY + "px,0)"));gesture.$imageEl.transition(300).transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")"));},out:function out(){var swiper = this;var zoom = swiper.zoom;var params = swiper.params.zoom;var gesture = zoom.gesture;if (!gesture.$slideEl){gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) :swiper.slides.eq(swiper.activeIndex);gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass)));}if (!gesture.$imageEl || gesture.$imageEl.length === 0){return;}zoom.scale = 1;zoom.currentScale = 1;gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');gesture.$slideEl.removeClass(("" + (params.zoomedSlideClass)));gesture.$slideEl = undefined;},// Attach/Detach Events
    enable:function enable(){var swiper = this;var zoom = swiper.zoom;if (zoom.enabled){return;}zoom.enabled = true;var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ?{passive:true,capture:false}:false;// Scale image
      if (Support.gestures){swiper.$wrapperEl.on('gesturestart','.swiper-slide',zoom.onGestureStart,passiveListener);swiper.$wrapperEl.on('gesturechange','.swiper-slide',zoom.onGestureChange,passiveListener);swiper.$wrapperEl.on('gestureend','.swiper-slide',zoom.onGestureEnd,passiveListener);}else if (swiper.touchEvents.start === 'touchstart'){swiper.$wrapperEl.on(swiper.touchEvents.start,'.swiper-slide',zoom.onGestureStart,passiveListener);swiper.$wrapperEl.on(swiper.touchEvents.move,'.swiper-slide',zoom.onGestureChange,passiveListener);swiper.$wrapperEl.on(swiper.touchEvents.end,'.swiper-slide',zoom.onGestureEnd,passiveListener);}// Move image
      swiper.$wrapperEl.on(swiper.touchEvents.move,("." + (swiper.params.zoom.containerClass)),zoom.onTouchMove);},disable:function disable(){var swiper = this;var zoom = swiper.zoom;if (!zoom.enabled){return;}swiper.zoom.enabled = false;var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ?{passive:true,capture:false}:false;// Scale image
      if (Support.gestures){swiper.$wrapperEl.off('gesturestart','.swiper-slide',zoom.onGestureStart,passiveListener);swiper.$wrapperEl.off('gesturechange','.swiper-slide',zoom.onGestureChange,passiveListener);swiper.$wrapperEl.off('gestureend','.swiper-slide',zoom.onGestureEnd,passiveListener);}else if (swiper.touchEvents.start === 'touchstart'){swiper.$wrapperEl.off(swiper.touchEvents.start,'.swiper-slide',zoom.onGestureStart,passiveListener);swiper.$wrapperEl.off(swiper.touchEvents.move,'.swiper-slide',zoom.onGestureChange,passiveListener);swiper.$wrapperEl.off(swiper.touchEvents.end,'.swiper-slide',zoom.onGestureEnd,passiveListener);}// Move image
      swiper.$wrapperEl.off(swiper.touchEvents.move,("." + (swiper.params.zoom.containerClass)),zoom.onTouchMove);},};var Zoom$1 ={name:'zoom',params:{zoom:{enabled:false,maxRatio:3,minRatio:1,toggle:true,containerClass:'swiper-zoom-container',zoomedSlideClass:'swiper-slide-zoomed',},},create:function create(){var swiper = this;var zoom ={enabled:false,scale:1,currentScale:1,isScaling:false,gesture:{$slideEl:undefined,slideWidth:undefined,slideHeight:undefined,$imageEl:undefined,$imageWrapEl:undefined,maxRatio:3,},image:{isTouched:undefined,isMoved:undefined,currentX:undefined,currentY:undefined,minX:undefined,minY:undefined,maxX:undefined,maxY:undefined,width:undefined,height:undefined,startX:undefined,startY:undefined,touchesStart:{},touchesCurrent:{},},velocity:{x:undefined,y:undefined,prevPositionX:undefined,prevPositionY:undefined,prevTime:undefined,},};('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName){zoom[methodName] = Zoom[methodName].bind(swiper);});Utils.extend(swiper,{zoom:zoom,});var scale = 1;Object.defineProperty(swiper.zoom,'scale',{get:function get(){return scale;},set:function set(value){if (scale !== value){var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] :undefined;var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] :undefined;swiper.emit('zoomChange',value,imageEl,slideEl);}scale = value;},});},on:{init:function init(){var swiper = this;if (swiper.params.zoom.enabled){swiper.zoom.enable();}},destroy:function destroy(){var swiper = this;swiper.zoom.disable();},touchStart:function touchStart(e){var swiper = this;if (!swiper.zoom.enabled){return;}swiper.zoom.onTouchStart(e);},touchEnd:function touchEnd(e){var swiper = this;if (!swiper.zoom.enabled){return;}swiper.zoom.onTouchEnd(e);},doubleTap:function doubleTap(e){var swiper = this;if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle){swiper.zoom.toggle(e);}},transitionEnd:function transitionEnd(){var swiper = this;if (swiper.zoom.enabled && swiper.params.zoom.enabled){swiper.zoom.onTransitionEnd();}},},};var Lazy ={loadInSlide:function loadInSlide(index,loadInDuplicate){if (loadInDuplicate === void 0) loadInDuplicate = true;var swiper = this;var params = swiper.params.lazy;if (typeof index === 'undefined'){return;}if (swiper.slides.length === 0){return;}var isVirtual = swiper.virtual && swiper.params.virtual.enabled;var $slideEl = isVirtual
        ? swiper.$wrapperEl.children(("." + (swiper.params.slideClass) + "[data-swiper-slide-index=\"" + index + "\"]"))
        :swiper.slides.eq(index);var $images = $slideEl.find(("." + (params.elementClass) + ":not(." + (params.loadedClass) + "):not(." + (params.loadingClass) + ")"));if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)){$images = $images.add($slideEl[0]);}if ($images.length === 0){return;}$images.each(function (imageIndex,imageEl){var $imageEl = $(imageEl);$imageEl.addClass(params.loadingClass);var background = $imageEl.attr('data-background');var src = $imageEl.attr('data-src');var srcset = $imageEl.attr('data-srcset');var sizes = $imageEl.attr('data-sizes');swiper.loadImage($imageEl[0],(src || background),srcset,sizes,false,function (){if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed){return;}if (background){$imageEl.css('background-image',("url(\"" + background + "\")"));$imageEl.removeAttr('data-background');}else{if (srcset){$imageEl.attr('srcset',srcset);$imageEl.removeAttr('data-srcset');}if (sizes){$imageEl.attr('sizes',sizes);$imageEl.removeAttr('data-sizes');}if (src){$imageEl.attr('src',src);$imageEl.removeAttr('data-src');}}$imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);$slideEl.find(("." + (params.preloaderClass))).remove();if (swiper.params.loop && loadInDuplicate){var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');if ($slideEl.hasClass(swiper.params.slideDuplicateClass)){var originalSlide = swiper.$wrapperEl.children(("[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]:not(." + (swiper.params.slideDuplicateClass) + ")"));swiper.lazy.loadInSlide(originalSlide.index(),false);}else{var duplicatedSlide = swiper.$wrapperEl.children(("." + (swiper.params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]"));swiper.lazy.loadInSlide(duplicatedSlide.index(),false);}}swiper.emit('lazyImageReady',$slideEl[0],$imageEl[0]);});swiper.emit('lazyImageLoad',$slideEl[0],$imageEl[0]);});},load:function load(){var swiper = this;var $wrapperEl = swiper.$wrapperEl;var swiperParams = swiper.params;var slides = swiper.slides;var activeIndex = swiper.activeIndex;var isVirtual = swiper.virtual && swiperParams.virtual.enabled;var params = swiperParams.lazy;var slidesPerView = swiperParams.slidesPerView;if (slidesPerView === 'auto'){slidesPerView = 0;}function slideExist(index){if (isVirtual){if ($wrapperEl.children(("." + (swiperParams.slideClass) + "[data-swiper-slide-index=\"" + index + "\"]")).length){return true;}}else if (slides[index]){return true;}return false;}function slideIndex(slideEl){if (isVirtual){return $(slideEl).attr('data-swiper-slide-index');}return $(slideEl).index();}if (!swiper.lazy.initialImageLoaded){swiper.lazy.initialImageLoaded = true;}if (swiper.params.watchSlidesVisibility){$wrapperEl.children(("." + (swiperParams.slideVisibleClass))).each(function (elIndex,slideEl){var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') :$(slideEl).index();swiper.lazy.loadInSlide(index);});}else if (slidesPerView > 1){for (var i = activeIndex;i < activeIndex + slidesPerView;i += 1){if (slideExist(i)){swiper.lazy.loadInSlide(i);}}}else{swiper.lazy.loadInSlide(activeIndex);}if (params.loadPrevNext){if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)){var amount = params.loadPrevNextAmount;var spv = slidesPerView;var maxIndex = Math.min(activeIndex + spv + Math.max(amount,spv),slides.length);var minIndex = Math.max(activeIndex - Math.max(spv,amount),0);// Next Slides
          for (var i$1 = activeIndex + slidesPerView;i$1 < maxIndex;i$1 += 1){if (slideExist(i$1)){swiper.lazy.loadInSlide(i$1);}}// Prev Slides
          for (var i$2 = minIndex;i$2 < activeIndex;i$2 += 1){if (slideExist(i$2)){swiper.lazy.loadInSlide(i$2);}}}else{var nextSlide = $wrapperEl.children(("." + (swiperParams.slideNextClass)));if (nextSlide.length > 0){swiper.lazy.loadInSlide(slideIndex(nextSlide));}var prevSlide = $wrapperEl.children(("." + (swiperParams.slidePrevClass)));if (prevSlide.length > 0){swiper.lazy.loadInSlide(slideIndex(prevSlide));}}}},};var Lazy$1 ={name:'lazy',params:{lazy:{enabled:false,loadPrevNext:false,loadPrevNextAmount:1,loadOnTransitionStart:false,elementClass:'swiper-lazy',loadingClass:'swiper-lazy-loading',loadedClass:'swiper-lazy-loaded',preloaderClass:'swiper-lazy-preloader',},},create:function create(){var swiper = this;Utils.extend(swiper,{lazy:{initialImageLoaded:false,load:Lazy.load.bind(swiper),loadInSlide:Lazy.loadInSlide.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;if (swiper.params.lazy.enabled && swiper.params.preloadImages){swiper.params.preloadImages = false;}},init:function init(){var swiper = this;if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0){swiper.lazy.load();}},scroll:function scroll(){var swiper = this;if (swiper.params.freeMode && !swiper.params.freeModeSticky){swiper.lazy.load();}},resize:function resize(){var swiper = this;if (swiper.params.lazy.enabled){swiper.lazy.load();}},scrollbarDragMove:function scrollbarDragMove(){var swiper = this;if (swiper.params.lazy.enabled){swiper.lazy.load();}},transitionStart:function transitionStart(){var swiper = this;if (swiper.params.lazy.enabled){if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)){swiper.lazy.load();}}},transitionEnd:function transitionEnd(){var swiper = this;if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart){swiper.lazy.load();}},},};var Controller ={LinearSpline:function LinearSpline(x,y){var binarySearch = (function search(){var maxIndex;var minIndex;var guess;return function (array,val){minIndex = -1;maxIndex = array.length;while (maxIndex - minIndex > 1){guess = maxIndex + minIndex >> 1;if (array[guess] <= val){minIndex = guess;}else{maxIndex = guess;}}return maxIndex;};}());this.x = x;this.y = y;this.lastIndex = x.length - 1;// Given an x value (x2),return the expected y2 value:// (x1,y1) is the known point before given value,// (x3,y3) is the known point after given value.
      var i1;var i3;this.interpolate = function interpolate(x2){if (!x2){return 0;}// Get the indexes of x1 and x3 (the array indexes before and after given x2):i3 = binarySearch(this.x,x2);i1 = i3 - 1;// We have our indexes i1 & i3,so we can calculate already:// y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
        return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];};return this;},// xxx:for now i will just save one spline function to to
    getInterpolateFunction:function getInterpolateFunction(c){var swiper = this;if (!swiper.controller.spline){swiper.controller.spline = swiper.params.loop
          ? new Controller.LinearSpline(swiper.slidesGrid,c.slidesGrid)
          :new Controller.LinearSpline(swiper.snapGrid,c.snapGrid);}},setTranslate:function setTranslate(setTranslate$1,byController){var swiper = this;var controlled = swiper.controller.control;var multiplier;var controlledTranslate;function setControlledTranslate(c){// this will create an Interpolate function based on the snapGrids
        // x is the Grid of the scrolled scroller and y will be the controlled scroller
        // it makes sense to create this only once and recall it for the interpolation
        // the function does a lot of value caching for performance
        var translate = swiper.rtlTranslate ? -swiper.translate :swiper.translate;if (swiper.params.controller.by === 'slide'){swiper.controller.getInterpolateFunction(c);// i am not sure why the values have to be multiplicated this way,tried to invert the snapGrid
          // but it did not work out
          controlledTranslate = -swiper.controller.spline.interpolate(-translate);}if (!controlledTranslate || swiper.params.controller.by === 'container'){multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();}if (swiper.params.controller.inverse){controlledTranslate = c.maxTranslate() - controlledTranslate;}c.updateProgress(controlledTranslate);c.setTranslate(controlledTranslate,swiper);c.updateActiveIndex();c.updateSlidesClasses();}if (Array.isArray(controlled)){for (var i = 0;i < controlled.length;i += 1){if (controlled[i] !== byController && controlled[i] instanceof Swiper){setControlledTranslate(controlled[i]);}}}else if (controlled instanceof Swiper && byController !== controlled){setControlledTranslate(controlled);}},setTransition:function setTransition(duration,byController){var swiper = this;var controlled = swiper.controller.control;var i;function setControlledTransition(c){c.setTransition(duration,swiper);if (duration !== 0){c.transitionStart();if (c.params.autoHeight){Utils.nextTick(function (){c.updateAutoHeight();});}c.$wrapperEl.transitionEnd(function (){if (!controlled){return;}if (c.params.loop && swiper.params.controller.by === 'slide'){c.loopFix();}c.transitionEnd();});}}if (Array.isArray(controlled)){for (i = 0;i < controlled.length;i += 1){if (controlled[i] !== byController && controlled[i] instanceof Swiper){setControlledTransition(controlled[i]);}}}else if (controlled instanceof Swiper && byController !== controlled){setControlledTransition(controlled);}},};var Controller$1 ={name:'controller',params:{controller:{control:undefined,inverse:false,by:'slide',// or 'container'},},create:function create(){var swiper = this;Utils.extend(swiper,{controller:{control:swiper.params.controller.control,getInterpolateFunction:Controller.getInterpolateFunction.bind(swiper),setTranslate:Controller.setTranslate.bind(swiper),setTransition:Controller.setTransition.bind(swiper),},});},on:{update:function update(){var swiper = this;if (!swiper.controller.control){return;}if (swiper.controller.spline){swiper.controller.spline = undefined;delete swiper.controller.spline;}},resize:function resize(){var swiper = this;if (!swiper.controller.control){return;}if (swiper.controller.spline){swiper.controller.spline = undefined;delete swiper.controller.spline;}},observerUpdate:function observerUpdate(){var swiper = this;if (!swiper.controller.control){return;}if (swiper.controller.spline){swiper.controller.spline = undefined;delete swiper.controller.spline;}},setTranslate:function setTranslate(translate,byController){var swiper = this;if (!swiper.controller.control){return;}swiper.controller.setTranslate(translate,byController);},setTransition:function setTransition(duration,byController){var swiper = this;if (!swiper.controller.control){return;}swiper.controller.setTransition(duration,byController);},},};var a11y ={makeElFocusable:function makeElFocusable($el){$el.attr('tabIndex','0');return $el;},addElRole:function addElRole($el,role){$el.attr('role',role);return $el;},addElLabel:function addElLabel($el,label){$el.attr('aria-label',label);return $el;},disableEl:function disableEl($el){$el.attr('aria-disabled',true);return $el;},enableEl:function enableEl($el){$el.attr('aria-disabled',false);return $el;},onEnterKey:function onEnterKey(e){var swiper = this;var params = swiper.params.a11y;if (e.keyCode !== 13){return;}var $targetEl = $(e.target);if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)){if (!(swiper.isEnd && !swiper.params.loop)){swiper.slideNext();}if (swiper.isEnd){swiper.a11y.notify(params.lastSlideMessage);}else{swiper.a11y.notify(params.nextSlideMessage);}}if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)){if (!(swiper.isBeginning && !swiper.params.loop)){swiper.slidePrev();}if (swiper.isBeginning){swiper.a11y.notify(params.firstSlideMessage);}else{swiper.a11y.notify(params.prevSlideMessage);}}if (swiper.pagination && $targetEl.is(("." + (swiper.params.pagination.bulletClass)))){$targetEl[0].click();}},notify:function notify(message){var swiper = this;var notification = swiper.a11y.liveRegion;if (notification.length === 0){return;}notification.html('');notification.html(message);},updateNavigation:function updateNavigation(){var swiper = this;if (swiper.params.loop){return;}var ref = swiper.navigation;var $nextEl = ref.$nextEl;var $prevEl = ref.$prevEl;if ($prevEl && $prevEl.length > 0){if (swiper.isBeginning){swiper.a11y.disableEl($prevEl);}else{swiper.a11y.enableEl($prevEl);}}if ($nextEl && $nextEl.length > 0){if (swiper.isEnd){swiper.a11y.disableEl($nextEl);}else{swiper.a11y.enableEl($nextEl);}}},updatePagination:function updatePagination(){var swiper = this;var params = swiper.params.a11y;if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length){swiper.pagination.bullets.each(function (bulletIndex,bulletEl){var $bulletEl = $(bulletEl);swiper.a11y.makeElFocusable($bulletEl);swiper.a11y.addElRole($bulletEl,'button');swiper.a11y.addElLabel($bulletEl,params.paginationBulletMessage.replace(/{{index}}/,$bulletEl.index() + 1));});}},init:function init(){var swiper = this;swiper.$el.append(swiper.a11y.liveRegion);// Navigation
      var params = swiper.params.a11y;var $nextEl;var $prevEl;if (swiper.navigation && swiper.navigation.$nextEl){$nextEl = swiper.navigation.$nextEl;}if (swiper.navigation && swiper.navigation.$prevEl){$prevEl = swiper.navigation.$prevEl;}if ($nextEl){swiper.a11y.makeElFocusable($nextEl);swiper.a11y.addElRole($nextEl,'button');swiper.a11y.addElLabel($nextEl,params.nextSlideMessage);$nextEl.on('keydown',swiper.a11y.onEnterKey);}if ($prevEl){swiper.a11y.makeElFocusable($prevEl);swiper.a11y.addElRole($prevEl,'button');swiper.a11y.addElLabel($prevEl,params.prevSlideMessage);$prevEl.on('keydown',swiper.a11y.onEnterKey);}// Pagination
      if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length){swiper.pagination.$el.on('keydown',("." + (swiper.params.pagination.bulletClass)),swiper.a11y.onEnterKey);}},destroy:function destroy(){var swiper = this;if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0){swiper.a11y.liveRegion.remove();}var $nextEl;var $prevEl;if (swiper.navigation && swiper.navigation.$nextEl){$nextEl = swiper.navigation.$nextEl;}if (swiper.navigation && swiper.navigation.$prevEl){$prevEl = swiper.navigation.$prevEl;}if ($nextEl){$nextEl.off('keydown',swiper.a11y.onEnterKey);}if ($prevEl){$prevEl.off('keydown',swiper.a11y.onEnterKey);}// Pagination
      if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length){swiper.pagination.$el.off('keydown',("." + (swiper.params.pagination.bulletClass)),swiper.a11y.onEnterKey);}},};var A11y ={name:'a11y',params:{a11y:{enabled:true,notificationClass:'swiper-notification',prevSlideMessage:'Previous slide',nextSlideMessage:'Next slide',firstSlideMessage:'This is the first slide',lastSlideMessage:'This is the last slide',paginationBulletMessage:'Go to slide {{index}}',},},create:function create(){var swiper = this;Utils.extend(swiper,{a11y:{liveRegion:$(("<span class=\"" + (swiper.params.a11y.notificationClass) + "\" aria-live=\"assertive\" aria-atomic=\"true\"></span>")),},});Object.keys(a11y).forEach(function (methodName){swiper.a11y[methodName] = a11y[methodName].bind(swiper);});},on:{init:function init(){var swiper = this;if (!swiper.params.a11y.enabled){return;}swiper.a11y.init();swiper.a11y.updateNavigation();},toEdge:function toEdge(){var swiper = this;if (!swiper.params.a11y.enabled){return;}swiper.a11y.updateNavigation();},fromEdge:function fromEdge(){var swiper = this;if (!swiper.params.a11y.enabled){return;}swiper.a11y.updateNavigation();},paginationUpdate:function paginationUpdate(){var swiper = this;if (!swiper.params.a11y.enabled){return;}swiper.a11y.updatePagination();},destroy:function destroy(){var swiper = this;if (!swiper.params.a11y.enabled){return;}swiper.a11y.destroy();},},};var History ={init:function init(){var swiper = this;if (!swiper.params.history){return;}if (!win.history || !win.history.pushState){swiper.params.history.enabled = false;swiper.params.hashNavigation.enabled = true;return;}var history = swiper.history;history.initialized = true;history.paths = History.getPathValues();if (!history.paths.key && !history.paths.value){return;}history.scrollToSlide(0,history.paths.value,swiper.params.runCallbacksOnInit);if (!swiper.params.history.replaceState){win.addEventListener('popstate',swiper.history.setHistoryPopState);}},destroy:function destroy(){var swiper = this;if (!swiper.params.history.replaceState){win.removeEventListener('popstate',swiper.history.setHistoryPopState);}},setHistoryPopState:function setHistoryPopState(){var swiper = this;swiper.history.paths = History.getPathValues();swiper.history.scrollToSlide(swiper.params.speed,swiper.history.paths.value,false);},getPathValues:function getPathValues(){var pathArray = win.location.pathname.slice(1).split('/').filter(function (part){return part !== '';});var total = pathArray.length;var key = pathArray[total - 2];var value = pathArray[total - 1];return{key:key,value:value};},setHistory:function setHistory(key,index){var swiper = this;if (!swiper.history.initialized || !swiper.params.history.enabled){return;}var slide = swiper.slides.eq(index);var value = History.slugify(slide.attr('data-history'));if (!win.location.pathname.includes(key)){value = key + "/" + value;}var currentState = win.history.state;if (currentState && currentState.value === value){return;}if (swiper.params.history.replaceState){win.history.replaceState({value:value},null,value);}else{win.history.pushState({value:value},null,value);}},slugify:function slugify(text){return text.toString()
        .replace(/\s+/g,'-')
        .replace(/[^\w-]+/g,'')
        .replace(/--+/g,'-')
        .replace(/^-+/,'')
        .replace(/-+$/,'');},scrollToSlide:function scrollToSlide(speed,value,runCallbacks){var swiper = this;if (value){for (var i = 0,length = swiper.slides.length;i < length;i += 1){var slide = swiper.slides.eq(i);var slideHistory = History.slugify(slide.attr('data-history'));if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)){var index = slide.index();swiper.slideTo(index,speed,runCallbacks);}}}else{swiper.slideTo(0,speed,runCallbacks);}},};var History$1 ={name:'history',params:{history:{enabled:false,replaceState:false,key:'slides',},},create:function create(){var swiper = this;Utils.extend(swiper,{history:{init:History.init.bind(swiper),setHistory:History.setHistory.bind(swiper),setHistoryPopState:History.setHistoryPopState.bind(swiper),scrollToSlide:History.scrollToSlide.bind(swiper),destroy:History.destroy.bind(swiper),},});},on:{init:function init(){var swiper = this;if (swiper.params.history.enabled){swiper.history.init();}},destroy:function destroy(){var swiper = this;if (swiper.params.history.enabled){swiper.history.destroy();}},transitionEnd:function transitionEnd(){var swiper = this;if (swiper.history.initialized){swiper.history.setHistory(swiper.params.history.key,swiper.activeIndex);}},},};var HashNavigation ={onHashCange:function onHashCange(){var swiper = this;var newHash = doc.location.hash.replace('#','');var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');if (newHash !== activeSlideHash){var newIndex = swiper.$wrapperEl.children(("." + (swiper.params.slideClass) + "[data-hash=\"" + newHash + "\"]")).index();if (typeof newIndex === 'undefined'){return;}swiper.slideTo(newIndex);}},setHash:function setHash(){var swiper = this;if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled){return;}if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState){win.history.replaceState(null,null,(("#" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || false));}else{var slide = swiper.slides.eq(swiper.activeIndex);var hash = slide.attr('data-hash') || slide.attr('data-history');doc.location.hash = hash || '';}},init:function init(){var swiper = this;if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)){return;}swiper.hashNavigation.initialized = true;var hash = doc.location.hash.replace('#','');if (hash){var speed = 0;for (var i = 0,length = swiper.slides.length;i < length;i += 1){var slide = swiper.slides.eq(i);var slideHash = slide.attr('data-hash') || slide.attr('data-history');if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)){var index = slide.index();swiper.slideTo(index,speed,swiper.params.runCallbacksOnInit,true);}}}if (swiper.params.hashNavigation.watchState){$(win).on('hashchange',swiper.hashNavigation.onHashCange);}},destroy:function destroy(){var swiper = this;if (swiper.params.hashNavigation.watchState){$(win).off('hashchange',swiper.hashNavigation.onHashCange);}},};var HashNavigation$1 ={name:'hash-navigation',params:{hashNavigation:{enabled:false,replaceState:false,watchState:false,},},create:function create(){var swiper = this;Utils.extend(swiper,{hashNavigation:{initialized:false,init:HashNavigation.init.bind(swiper),destroy:HashNavigation.destroy.bind(swiper),setHash:HashNavigation.setHash.bind(swiper),onHashCange:HashNavigation.onHashCange.bind(swiper),},});},on:{init:function init(){var swiper = this;if (swiper.params.hashNavigation.enabled){swiper.hashNavigation.init();}},destroy:function destroy(){var swiper = this;if (swiper.params.hashNavigation.enabled){swiper.hashNavigation.destroy();}},transitionEnd:function transitionEnd(){var swiper = this;if (swiper.hashNavigation.initialized){swiper.hashNavigation.setHash();}},},};var Autoplay ={run:function run(){var swiper = this;var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);var delay = swiper.params.autoplay.delay;if ($activeSlideEl.attr('data-swiper-autoplay')){delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;}clearTimeout(swiper.autoplay.timeout);swiper.autoplay.timeout = Utils.nextTick(function (){if (swiper.params.autoplay.reverseDirection){if (swiper.params.loop){swiper.loopFix();swiper.slidePrev(swiper.params.speed,true,true);swiper.emit('autoplay');}else if (!swiper.isBeginning){swiper.slidePrev(swiper.params.speed,true,true);swiper.emit('autoplay');}else if (!swiper.params.autoplay.stopOnLastSlide){swiper.slideTo(swiper.slides.length - 1,swiper.params.speed,true,true);swiper.emit('autoplay');}else{swiper.autoplay.stop();}}else if (swiper.params.loop){swiper.loopFix();swiper.slideNext(swiper.params.speed,true,true);swiper.emit('autoplay');}else if (!swiper.isEnd){swiper.slideNext(swiper.params.speed,true,true);swiper.emit('autoplay');}else if (!swiper.params.autoplay.stopOnLastSlide){swiper.slideTo(0,swiper.params.speed,true,true);swiper.emit('autoplay');}else{swiper.autoplay.stop();}},delay);},start:function start(){var swiper = this;if (typeof swiper.autoplay.timeout !== 'undefined'){return false;}if (swiper.autoplay.running){return false;}swiper.autoplay.running = true;swiper.emit('autoplayStart');swiper.autoplay.run();return true;},stop:function stop(){var swiper = this;if (!swiper.autoplay.running){return false;}if (typeof swiper.autoplay.timeout === 'undefined'){return false;}if (swiper.autoplay.timeout){clearTimeout(swiper.autoplay.timeout);swiper.autoplay.timeout = undefined;}swiper.autoplay.running = false;swiper.emit('autoplayStop');return true;},pause:function pause(speed){var swiper = this;if (!swiper.autoplay.running){return;}if (swiper.autoplay.paused){return;}if (swiper.autoplay.timeout){clearTimeout(swiper.autoplay.timeout);}swiper.autoplay.paused = true;if (speed === 0 || !swiper.params.autoplay.waitForTransition){swiper.autoplay.paused = false;swiper.autoplay.run();}else{swiper.$wrapperEl[0].addEventListener('transitionend',swiper.autoplay.onTransitionEnd);swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd',swiper.autoplay.onTransitionEnd);}},};var Autoplay$1 ={name:'autoplay',params:{autoplay:{enabled:false,delay:3000,waitForTransition:true,disableOnInteraction:true,stopOnLastSlide:false,reverseDirection:false,},},create:function create(){var swiper = this;Utils.extend(swiper,{autoplay:{running:false,paused:false,run:Autoplay.run.bind(swiper),start:Autoplay.start.bind(swiper),stop:Autoplay.stop.bind(swiper),pause:Autoplay.pause.bind(swiper),onTransitionEnd:function onTransitionEnd(e){if (!swiper || swiper.destroyed || !swiper.$wrapperEl){return;}if (e.target !== this){return;}swiper.$wrapperEl[0].removeEventListener('transitionend',swiper.autoplay.onTransitionEnd);swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd',swiper.autoplay.onTransitionEnd);swiper.autoplay.paused = false;if (!swiper.autoplay.running){swiper.autoplay.stop();}else{swiper.autoplay.run();}},},});},on:{init:function init(){var swiper = this;if (swiper.params.autoplay.enabled){swiper.autoplay.start();}},beforeTransitionStart:function beforeTransitionStart(speed,internal){var swiper = this;if (swiper.autoplay.running){if (internal || !swiper.params.autoplay.disableOnInteraction){swiper.autoplay.pause(speed);}else{swiper.autoplay.stop();}}},sliderFirstMove:function sliderFirstMove(){var swiper = this;if (swiper.autoplay.running){if (swiper.params.autoplay.disableOnInteraction){swiper.autoplay.stop();}else{swiper.autoplay.pause();}}},destroy:function destroy(){var swiper = this;if (swiper.autoplay.running){swiper.autoplay.stop();}},},};var Fade ={setTranslate:function setTranslate(){var swiper = this;var slides = swiper.slides;for (var i = 0;i < slides.length;i += 1){var $slideEl = swiper.slides.eq(i);var offset = $slideEl[0].swiperSlideOffset;var tx = -offset;if (!swiper.params.virtualTranslate){tx -= swiper.translate;}var ty = 0;if (!swiper.isHorizontal()){ty = tx;tx = 0;}var slideOpacity = swiper.params.fadeEffect.crossFade
          ? Math.max(1 - Math.abs($slideEl[0].progress),0)
          :1 + Math.min(Math.max($slideEl[0].progress,-1),0);$slideEl
          .css({opacity:slideOpacity,})
          .transform(("translate3d(" + tx + "px, " + ty + "px, 0px)"));}},setTransition:function setTransition(duration){var swiper = this;var slides = swiper.slides;var $wrapperEl = swiper.$wrapperEl;slides.transition(duration);if (swiper.params.virtualTranslate && duration !== 0){var eventTriggered = false;slides.transitionEnd(function (){if (eventTriggered){return;}if (!swiper || swiper.destroyed){return;}eventTriggered = true;swiper.animating = false;var triggerEvents = ['webkitTransitionEnd','transitionend'];for (var i = 0;i < triggerEvents.length;i += 1){$wrapperEl.trigger(triggerEvents[i]);}});}},};var EffectFade ={name:'effect-fade',params:{fadeEffect:{crossFade:false,},},create:function create(){var swiper = this;Utils.extend(swiper,{fadeEffect:{setTranslate:Fade.setTranslate.bind(swiper),setTransition:Fade.setTransition.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;if (swiper.params.effect !== 'fade'){return;}swiper.classNames.push(((swiper.params.containerModifierClass) + "fade"));var overwriteParams ={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:true,spaceBetween:0,virtualTranslate:true,};Utils.extend(swiper.params,overwriteParams);Utils.extend(swiper.originalParams,overwriteParams);},setTranslate:function setTranslate(){var swiper = this;if (swiper.params.effect !== 'fade'){return;}swiper.fadeEffect.setTranslate();},setTransition:function setTransition(duration){var swiper = this;if (swiper.params.effect !== 'fade'){return;}swiper.fadeEffect.setTransition(duration);},},};var Cube ={setTranslate:function setTranslate(){var swiper = this;var $el = swiper.$el;var $wrapperEl = swiper.$wrapperEl;var slides = swiper.slides;var swiperWidth = swiper.width;var swiperHeight = swiper.height;var rtl = swiper.rtlTranslate;var swiperSize = swiper.size;var params = swiper.params.cubeEffect;var isHorizontal = swiper.isHorizontal();var isVirtual = swiper.virtual && swiper.params.virtual.enabled;var wrapperRotate = 0;var $cubeShadowEl;if (params.shadow){if (isHorizontal){$cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');if ($cubeShadowEl.length === 0){$cubeShadowEl = $('<div class="swiper-cube-shadow"></div>');$wrapperEl.append($cubeShadowEl);}$cubeShadowEl.css({height:(swiperWidth + "px")});}else{$cubeShadowEl = $el.find('.swiper-cube-shadow');if ($cubeShadowEl.length === 0){$cubeShadowEl = $('<div class="swiper-cube-shadow"></div>');$el.append($cubeShadowEl);}}}for (var i = 0;i < slides.length;i += 1){var $slideEl = slides.eq(i);var slideIndex = i;if (isVirtual){slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'),10);}var slideAngle = slideIndex * 90;var round = Math.floor(slideAngle / 360);if (rtl){slideAngle = -slideAngle;round = Math.floor(-slideAngle / 360);}var progress = Math.max(Math.min($slideEl[0].progress,1),-1);var tx = 0;var ty = 0;var tz = 0;if (slideIndex % 4 === 0){tx = -round * 4 * swiperSize;tz = 0;}else if ((slideIndex - 1) % 4 === 0){tx = 0;tz = -round * 4 * swiperSize;}else if ((slideIndex - 2) % 4 === 0){tx = swiperSize + (round * 4 * swiperSize);tz = swiperSize;}else if ((slideIndex - 3) % 4 === 0){tx = -swiperSize;tz = (3 * swiperSize) + (swiperSize * 4 * round);}if (rtl){tx = -tx;}if (!isHorizontal){ty = tx;tx = 0;}var transform = "rotateX(" + (isHorizontal ? 0 :-slideAngle) + "deg) rotateY(" + (isHorizontal ? slideAngle :0) + "deg) translate3d(" + tx + "px, " + ty + "px, " + tz + "px)";if (progress <= 1 && progress > -1){wrapperRotate = (slideIndex * 90) + (progress * 90);if (rtl){wrapperRotate = (-slideIndex * 90) - (progress * 90);}}$slideEl.transform(transform);if (params.slideShadows){// Set shadows
          var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') :$slideEl.find('.swiper-slide-shadow-top');var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') :$slideEl.find('.swiper-slide-shadow-bottom');if (shadowBefore.length === 0){shadowBefore = $(("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'left' :'top') + "\"></div>"));$slideEl.append(shadowBefore);}if (shadowAfter.length === 0){shadowAfter = $(("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'right' :'bottom') + "\"></div>"));$slideEl.append(shadowAfter);}if (shadowBefore.length){shadowBefore[0].style.opacity = Math.max(-progress,0);}if (shadowAfter.length){shadowAfter[0].style.opacity = Math.max(progress,0);}}}$wrapperEl.css({'-webkit-transform-origin':("50% 50% -" + (swiperSize / 2) + "px"),'-moz-transform-origin':("50% 50% -" + (swiperSize / 2) + "px"),'-ms-transform-origin':("50% 50% -" + (swiperSize / 2) + "px"),'transform-origin':("50% 50% -" + (swiperSize / 2) + "px"),});if (params.shadow){if (isHorizontal){$cubeShadowEl.transform(("translate3d(0px, " + ((swiperWidth / 2) + params.shadowOffset) + "px, " + (-swiperWidth / 2) + "px) rotateX(90deg) rotateZ(0deg) scale(" + (params.shadowScale) + ")"));}else{var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);var multiplier = 1.5 - ((Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)
            + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2));var scale1 = params.shadowScale;var scale2 = params.shadowScale / multiplier;var offset = params.shadowOffset;$cubeShadowEl.transform(("scale3d(" + scale1 + ", 1, " + scale2 + ") translate3d(0px, " + ((swiperHeight / 2) + offset) + "px, " + (-swiperHeight / 2 / scale2) + "px) rotateX(-90deg)"));}}var zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) :0;$wrapperEl
        .transform(("translate3d(0px,0," + zFactor + "px) rotateX(" + (swiper.isHorizontal() ? 0 :wrapperRotate) + "deg) rotateY(" + (swiper.isHorizontal() ? -wrapperRotate :0) + "deg)"));},setTransition:function setTransition(duration){var swiper = this;var $el = swiper.$el;var slides = swiper.slides;slides
        .transition(duration)
        .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')
        .transition(duration);if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()){$el.find('.swiper-cube-shadow').transition(duration);}},};var EffectCube ={name:'effect-cube',params:{cubeEffect:{slideShadows:true,shadow:true,shadowOffset:20,shadowScale:0.94,},},create:function create(){var swiper = this;Utils.extend(swiper,{cubeEffect:{setTranslate:Cube.setTranslate.bind(swiper),setTransition:Cube.setTransition.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;if (swiper.params.effect !== 'cube'){return;}swiper.classNames.push(((swiper.params.containerModifierClass) + "cube"));swiper.classNames.push(((swiper.params.containerModifierClass) + "3d"));var overwriteParams ={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:true,resistanceRatio:0,spaceBetween:0,centeredSlides:false,virtualTranslate:true,};Utils.extend(swiper.params,overwriteParams);Utils.extend(swiper.originalParams,overwriteParams);},setTranslate:function setTranslate(){var swiper = this;if (swiper.params.effect !== 'cube'){return;}swiper.cubeEffect.setTranslate();},setTransition:function setTransition(duration){var swiper = this;if (swiper.params.effect !== 'cube'){return;}swiper.cubeEffect.setTransition(duration);},},};var Flip ={setTranslate:function setTranslate(){var swiper = this;var slides = swiper.slides;var rtl = swiper.rtlTranslate;for (var i = 0;i < slides.length;i += 1){var $slideEl = slides.eq(i);var progress = $slideEl[0].progress;if (swiper.params.flipEffect.limitRotation){progress = Math.max(Math.min($slideEl[0].progress,1),-1);}var offset = $slideEl[0].swiperSlideOffset;var rotate = -180 * progress;var rotateY = rotate;var rotateX = 0;var tx = -offset;var ty = 0;if (!swiper.isHorizontal()){ty = tx;tx = 0;rotateX = -rotateY;rotateY = 0;}else if (rtl){rotateY = -rotateY;}$slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;if (swiper.params.flipEffect.slideShadows){// Set shadows
          var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') :$slideEl.find('.swiper-slide-shadow-top');var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') :$slideEl.find('.swiper-slide-shadow-bottom');if (shadowBefore.length === 0){shadowBefore = $(("<div class=\"swiper-slide-shadow-" + (swiper.isHorizontal() ? 'left' :'top') + "\"></div>"));$slideEl.append(shadowBefore);}if (shadowAfter.length === 0){shadowAfter = $(("<div class=\"swiper-slide-shadow-" + (swiper.isHorizontal() ? 'right' :'bottom') + "\"></div>"));$slideEl.append(shadowAfter);}if (shadowBefore.length){shadowBefore[0].style.opacity = Math.max(-progress,0);}if (shadowAfter.length){shadowAfter[0].style.opacity = Math.max(progress,0);}}$slideEl
          .transform(("translate3d(" + tx + "px, " + ty + "px, 0px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)"));}},setTransition:function setTransition(duration){var swiper = this;var slides = swiper.slides;var activeIndex = swiper.activeIndex;var $wrapperEl = swiper.$wrapperEl;slides
        .transition(duration)
        .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')
        .transition(duration);if (swiper.params.virtualTranslate && duration !== 0){var eventTriggered = false;// eslint-disable-next-line
        slides.eq(activeIndex).transitionEnd(function onTransitionEnd(){if (eventTriggered){return;}if (!swiper || swiper.destroyed){return;}// if (!$(this).hasClass(swiper.params.slideActiveClass)) return;eventTriggered = true;swiper.animating = false;var triggerEvents = ['webkitTransitionEnd','transitionend'];for (var i = 0;i < triggerEvents.length;i += 1){$wrapperEl.trigger(triggerEvents[i]);}});}},};var EffectFlip ={name:'effect-flip',params:{flipEffect:{slideShadows:true,limitRotation:true,},},create:function create(){var swiper = this;Utils.extend(swiper,{flipEffect:{setTranslate:Flip.setTranslate.bind(swiper),setTransition:Flip.setTransition.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;if (swiper.params.effect !== 'flip'){return;}swiper.classNames.push(((swiper.params.containerModifierClass) + "flip"));swiper.classNames.push(((swiper.params.containerModifierClass) + "3d"));var overwriteParams ={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:true,spaceBetween:0,virtualTranslate:true,};Utils.extend(swiper.params,overwriteParams);Utils.extend(swiper.originalParams,overwriteParams);},setTranslate:function setTranslate(){var swiper = this;if (swiper.params.effect !== 'flip'){return;}swiper.flipEffect.setTranslate();},setTransition:function setTransition(duration){var swiper = this;if (swiper.params.effect !== 'flip'){return;}swiper.flipEffect.setTransition(duration);},},};var Coverflow ={setTranslate:function setTranslate(){var swiper = this;var swiperWidth = swiper.width;var swiperHeight = swiper.height;var slides = swiper.slides;var $wrapperEl = swiper.$wrapperEl;var slidesSizesGrid = swiper.slidesSizesGrid;var params = swiper.params.coverflowEffect;var isHorizontal = swiper.isHorizontal();var transform = swiper.translate;var center = isHorizontal ? -transform + (swiperWidth / 2) :-transform + (swiperHeight / 2);var rotate = isHorizontal ? params.rotate :-params.rotate;var translate = params.depth;// Each slide offset from center
      for (var i = 0,length = slides.length;i < length;i += 1){var $slideEl = slides.eq(i);var slideSize = slidesSizesGrid[i];var slideOffset = $slideEl[0].swiperSlideOffset;var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;var rotateY = isHorizontal ? rotate * offsetMultiplier :0;var rotateX = isHorizontal ? 0 :rotate * offsetMultiplier;// var rotateZ = 0
        var translateZ = -translate * Math.abs(offsetMultiplier);var translateY = isHorizontal ? 0 :params.stretch * (offsetMultiplier);var translateX = isHorizontal ? params.stretch * (offsetMultiplier) :0;// Fix for ultra small values
        if (Math.abs(translateX) < 0.001){translateX = 0;}if (Math.abs(translateY) < 0.001){translateY = 0;}if (Math.abs(translateZ) < 0.001){translateZ = 0;}if (Math.abs(rotateY) < 0.001){rotateY = 0;}if (Math.abs(rotateX) < 0.001){rotateX = 0;}var slideTransform = "translate3d(" + translateX + "px," + translateY + "px," + translateZ + "px)  rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)";$slideEl.transform(slideTransform);$slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;if (params.slideShadows){// Set shadows
          var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') :$slideEl.find('.swiper-slide-shadow-top');var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') :$slideEl.find('.swiper-slide-shadow-bottom');if ($shadowBeforeEl.length === 0){$shadowBeforeEl = $(("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'left' :'top') + "\"></div>"));$slideEl.append($shadowBeforeEl);}if ($shadowAfterEl.length === 0){$shadowAfterEl = $(("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'right' :'bottom') + "\"></div>"));$slideEl.append($shadowAfterEl);}if ($shadowBeforeEl.length){$shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier :0;}if ($shadowAfterEl.length){$shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier :0;}}}// Set correct perspective for IE10
      if (Support.pointerEvents || Support.prefixedPointerEvents){var ws = $wrapperEl[0].style;ws.perspectiveOrigin = center + "px 50%";}},setTransition:function setTransition(duration){var swiper = this;swiper.slides
        .transition(duration)
        .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')
        .transition(duration);},};var EffectCoverflow ={name:'effect-coverflow',params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:true,},},create:function create(){var swiper = this;Utils.extend(swiper,{coverflowEffect:{setTranslate:Coverflow.setTranslate.bind(swiper),setTransition:Coverflow.setTransition.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;if (swiper.params.effect !== 'coverflow'){return;}swiper.classNames.push(((swiper.params.containerModifierClass) + "coverflow"));swiper.classNames.push(((swiper.params.containerModifierClass) + "3d"));swiper.params.watchSlidesProgress = true;swiper.originalParams.watchSlidesProgress = true;},setTranslate:function setTranslate(){var swiper = this;if (swiper.params.effect !== 'coverflow'){return;}swiper.coverflowEffect.setTranslate();},setTransition:function setTransition(duration){var swiper = this;if (swiper.params.effect !== 'coverflow'){return;}swiper.coverflowEffect.setTransition(duration);},},};var Thumbs ={init:function init(){var swiper = this;var ref = swiper.params;var thumbsParams = ref.thumbs;var SwiperClass = swiper.constructor;if (thumbsParams.swiper instanceof SwiperClass){swiper.thumbs.swiper = thumbsParams.swiper;Utils.extend(swiper.thumbs.swiper.originalParams,{watchSlidesProgress:true,slideToClickedSlide:false,});Utils.extend(swiper.thumbs.swiper.params,{watchSlidesProgress:true,slideToClickedSlide:false,});}else if (Utils.isObject(thumbsParams.swiper)){swiper.thumbs.swiper = new SwiperClass(Utils.extend({},thumbsParams.swiper,{watchSlidesVisibility:true,watchSlidesProgress:true,slideToClickedSlide:false,}));swiper.thumbs.swiperCreated = true;}swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);swiper.thumbs.swiper.on('tap',swiper.thumbs.onThumbClick);},onThumbClick:function onThumbClick(){var swiper = this;var thumbsSwiper = swiper.thumbs.swiper;if (!thumbsSwiper){return;}var clickedIndex = thumbsSwiper.clickedIndex;var clickedSlide = thumbsSwiper.clickedSlide;if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)){return;}if (typeof clickedIndex === 'undefined' || clickedIndex === null){return;}var slideToIndex;if (thumbsSwiper.params.loop){slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'),10);}else{slideToIndex = clickedIndex;}if (swiper.params.loop){var currentIndex = swiper.activeIndex;if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)){swiper.loopFix();// eslint-disable-next-line
          swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;currentIndex = swiper.activeIndex;}var prevIndex = swiper.slides.eq(currentIndex).prevAll(("[data-swiper-slide-index=\"" + slideToIndex + "\"]")).eq(0).index();var nextIndex = swiper.slides.eq(currentIndex).nextAll(("[data-swiper-slide-index=\"" + slideToIndex + "\"]")).eq(0).index();if (typeof prevIndex === 'undefined'){slideToIndex = nextIndex;}else if (typeof nextIndex === 'undefined'){slideToIndex = prevIndex;}else if (nextIndex - currentIndex < currentIndex - prevIndex){slideToIndex = nextIndex;}else{slideToIndex = prevIndex;}}swiper.slideTo(slideToIndex);},update:function update(initial){var swiper = this;var thumbsSwiper = swiper.thumbs.swiper;if (!thumbsSwiper){return;}var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'
        ? thumbsSwiper.slidesPerViewDynamic()
        :thumbsSwiper.params.slidesPerView;if (swiper.realIndex !== thumbsSwiper.realIndex){var currentThumbsIndex = thumbsSwiper.activeIndex;var newThumbsIndex;if (thumbsSwiper.params.loop){if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)){thumbsSwiper.loopFix();// eslint-disable-next-line
            thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;currentThumbsIndex = thumbsSwiper.activeIndex;}// Find actual thumbs index to slide to
          var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(("[data-swiper-slide-index=\"" + (swiper.realIndex) + "\"]")).eq(0).index();var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(("[data-swiper-slide-index=\"" + (swiper.realIndex) + "\"]")).eq(0).index();if (typeof prevThumbsIndex === 'undefined'){newThumbsIndex = nextThumbsIndex;}else if (typeof nextThumbsIndex === 'undefined'){newThumbsIndex = prevThumbsIndex;}else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex){newThumbsIndex = currentThumbsIndex;}else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex){newThumbsIndex = nextThumbsIndex;}else{newThumbsIndex = prevThumbsIndex;}}else{newThumbsIndex = swiper.realIndex;}if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0){if (thumbsSwiper.params.centeredSlides){if (newThumbsIndex > currentThumbsIndex){newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;}else{newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;}}else if (newThumbsIndex > currentThumbsIndex){newThumbsIndex = newThumbsIndex - slidesPerView + 1;}thumbsSwiper.slideTo(newThumbsIndex,initial ? 0 :undefined);}}// Activate thumbs
      var thumbsToActivate = 1;var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides){thumbsToActivate = swiper.params.slidesPerView;}thumbsSwiper.slides.removeClass(thumbActiveClass);if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual){for (var i = 0;i < thumbsToActivate;i += 1){thumbsSwiper.$wrapperEl.children(("[data-swiper-slide-index=\"" + (swiper.realIndex + i) + "\"]")).addClass(thumbActiveClass);}}else{for (var i$1 = 0;i$1 < thumbsToActivate;i$1 += 1){thumbsSwiper.slides.eq(swiper.realIndex + i$1).addClass(thumbActiveClass);}}},};var Thumbs$1 ={name:'thumbs',params:{thumbs:{swiper:null,slideThumbActiveClass:'swiper-slide-thumb-active',thumbsContainerClass:'swiper-container-thumbs',},},create:function create(){var swiper = this;Utils.extend(swiper,{thumbs:{swiper:null,init:Thumbs.init.bind(swiper),update:Thumbs.update.bind(swiper),onThumbClick:Thumbs.onThumbClick.bind(swiper),},});},on:{beforeInit:function beforeInit(){var swiper = this;var ref = swiper.params;var thumbs = ref.thumbs;if (!thumbs || !thumbs.swiper){return;}swiper.thumbs.init();swiper.thumbs.update(true);},slideChange:function slideChange(){var swiper = this;if (!swiper.thumbs.swiper){return;}swiper.thumbs.update();},update:function update(){var swiper = this;if (!swiper.thumbs.swiper){return;}swiper.thumbs.update();},resize:function resize(){var swiper = this;if (!swiper.thumbs.swiper){return;}swiper.thumbs.update();},observerUpdate:function observerUpdate(){var swiper = this;if (!swiper.thumbs.swiper){return;}swiper.thumbs.update();},setTransition:function setTransition(duration){var swiper = this;var thumbsSwiper = swiper.thumbs.swiper;if (!thumbsSwiper){return;}thumbsSwiper.setTransition(duration);},beforeDestroy:function beforeDestroy(){var swiper = this;var thumbsSwiper = swiper.thumbs.swiper;if (!thumbsSwiper){return;}if (swiper.thumbs.swiperCreated && thumbsSwiper){thumbsSwiper.destroy();}},},};// Swiper Class

  var components = [
    Device$1,Support$1,Browser$1,Resize,Observer$1,Virtual$1,Keyboard$1,Mousewheel$1,Navigation$1,Pagination$1,Scrollbar$1,Parallax$1,Zoom$1,Lazy$1,Controller$1,A11y,History$1,HashNavigation$1,Autoplay$1,EffectFade,EffectCube,EffectFlip,EffectCoverflow,Thumbs$1
  ];if (typeof Swiper.use === 'undefined'){Swiper.use = Swiper.Class.use;Swiper.installModule = Swiper.Class.installModule;}Swiper.use(components);return Swiper;}));__webpack_require__.r(__webpack_exports__);(function($){var _fancyapps_fancybox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(268);var _fancyapps_fancybox__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_fancyapps_fancybox__WEBPACK_IMPORTED_MODULE_0__);var scrollmagic_scrollmagic_uncompressed_ScrollMagic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180);var scrollmagic_scrollmagic_uncompressed_ScrollMagic__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(scrollmagic_scrollmagic_uncompressed_ScrollMagic__WEBPACK_IMPORTED_MODULE_1__);var imports_loader_define_false_scrollmagic_scrollmagic_uncompressed_plugins_debug_addIndicators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(269);var imports_loader_define_false_scrollmagic_scrollmagic_uncompressed_plugins_debug_addIndicators__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(imports_loader_define_false_scrollmagic_scrollmagic_uncompressed_plugins_debug_addIndicators__WEBPACK_IMPORTED_MODULE_2__);$('[data-fancybox="album"]').fancybox({closeExisting:false,buttons:["zoom","slideShow","thumbs","close"]});}.call(this,__webpack_require__(23)))(function(jQuery){// ==================================================
// fancyBox v3.5.7
//
// Licensed GPLv3 for open source use
// or fancyBox Commercial License for commercial use
//
// http://fancyapps.com/fancybox/
// Copyright 2019 fancyApps
//
// ==================================================
(function (window,document,$,undefined){"use strict";window.console = window.console ||{info:function (stuff){}};// If there's no jQuery, fancyBox can't work
  // =========================================

  if (!$){return;}// Check if fancyBox is already initialized
  // ========================================

  if ($.fn.fancybox){console.info("fancyBox already initialized");return;}// Private default settings
  // ========================

  var defaults ={// Close existing modals
    // Set this to false if you do not need to stack multiple instances
    closeExisting:false,// Enable infinite gallery navigation
    loop:false,// Horizontal space between slides
    gutter:50,// Enable keyboard navigation
    keyboard:true,// Should allow caption to overlap the content
    preventCaptionOverlap:true,// Should display navigation arrows at the screen edges
    arrows:true,// Should display counter at the top left corner
    infobar:true,// Should display close button (using `btnTpl.smallBtn` template) over the content
    // Can be true,false,"auto"
    // If "auto" - will be automatically enabled for "html","inline" or "ajax" items
    smallBtn:"auto",// Should display toolbar (buttons at the top)
    // Can be true,false,"auto"
    // If "auto" - will be automatically hidden if "smallBtn" is enabled
    toolbar:"auto",// What buttons should appear in the top right corner.
    // Buttons will be created using templates from `btnTpl` option
    // and they will be placed into toolbar (class="fancybox-toolbar"` element)
    buttons:[
      "zoom",//"share","slideShow",//"fullScreen",//"download","thumbs","close"
    ],// Detect "idle" time in seconds
    idleTime:3,// Disable right-click and use simple image protection for images
    protect:false,// Shortcut to make content "modal" - disable keyboard navigtion,hide buttons,etc
    modal:false,image:{// Wait for images to load before displaying
      //   true  - wait for image to load and then display;//   false - display thumbnail and load the full-sized image over top,//           requires predefined image dimensions (`data-width` and `data-height` attributes)
      preload:false},ajax:{// Object containing settings for ajax request
      settings:{// This helps to indicate that request comes from the modal
        // Feel free to change naming
        data:{fancybox:true}}},iframe:{// Iframe template
      tpl:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',// Preload iframe before displaying it
      // This allows to calculate iframe content width and height
      // (note:Due to "Same Origin Policy",you can't get cross domain data).
      preload: true,

      // Custom CSS styling for iframe wrapping element
      // You can use this to set custom iframe dimensions
      css: {},

      // Iframe tag attributes
      attr: {
        scrolling: "auto"
      }
    },

    // For HTML5 video only
    video: {
      tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}">' +
        '<source src="{{src}}" type="{{format}}" />' +
        'Sorry,your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!' +
        "</video>",format:"",// custom video format
      autoStart:true},// Default content type if cannot be detected automatically
    defaultType:"image",// Open/close animation type
    // Possible values://   false            - disable
    //   "zoom"           - zoom images from/to thumbnail
    //   "fade"
    //   "zoom-in-out"
    //
    animationEffect:"zoom",// Duration in ms for open/close animation
    animationDuration:366,// Should image change opacity while zooming
    // If opacity is "auto",then opacity will be changed if image and thumbnail have different aspect ratios
    zoomOpacity:"auto",// Transition effect between slides
    //
    // Possible values://   false            - disable
    //   "fade'
    //   "slide'
    //   "circular'
    //   "tube'
    //   "zoom-in-out'
    //   "rotate'
    //
    transitionEffect:"fade",// Duration in ms for transition animation
    transitionDuration:366,// Custom CSS class for slide element
    slideClass:"",// Custom CSS class for layout
    baseClass:"",// Base template for layout
    baseTpl:'<div class="fancybox-container" role="dialog" tabindex="-1">' +
      '<div class="fancybox-bg"></div>' +
      '<div class="fancybox-inner">' +
      '<div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div>' +
      '<div class="fancybox-toolbar">{{buttons}}</div>' +
      '<div class="fancybox-navigation">{{arrows}}</div>' +
      '<div class="fancybox-stage"></div>' +
      '<div class="fancybox-caption"><div class="fancybox-caption__body"></div></div>' +
      "</div>" +
      "</div>",// Loading indicator template
    spinnerTpl:'<div class="fancybox-loading"></div>',// Error message template
    errorTpl:'<div class="fancybox-error"><p>{{ERROR}}</p></div>',btnTpl:{download:'<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;">' +
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg>' +
        "</a>",zoom:'<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}">' +
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg>' +
        "</button>",close:'<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}">' +
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg>' +
        "</button>",// Arrows
      arrowLeft:'<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}">' +
        '<div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div>' +
        "</button>",arrowRight:'<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}">' +
        '<div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div>' +
        "</button>",// This small close button will be appended to your html/inline/ajax content by default,// if "smallBtn" option is not set to false
      smallBtn:'<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}">' +
        '<svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg>' +
        "</button>"},// Container is injected into this element
    parentEl:"body",// Hide browser vertical scrollbars;use at your own risk
    hideScrollbar:true,// Focus handling
    // ==============

    // Try to focus on the first focusable element after opening
    autoFocus:true,// Put focus back to active element after closing
    backFocus:true,// Do not let user to focus on element outside modal content
    trapFocus:true,// Module specific options
    // =======================

    fullScreen:{autoStart:false},// Set `touch:false` to disable panning/swiping
    touch:{vertical:true,// Allow to drag content vertically
      momentum:true // Continue movement after releasing mouse/touch when panning},// Hash value when initializing manually,// set `false` to disable hash change
    hash:null,// Customize or add new media types
    // Example:media:{},slideShow:{autoStart:false,speed:3000},thumbs:{autoStart:false,// Display thumbnails on opening
      hideOnClose:true,// Hide thumbnail grid when closing animation starts
      parentEl:".fancybox-container",// Container is injected into this element
      axis:"y" // Vertical (y) or horizontal (x) scrolling},// Use mousewheel to navigate gallery
    // If 'auto' - enabled for images only
    wheel:"auto",// Callbacks
    //==========

    // See Documentation/API/Events for more information
    // Example:onInit:$.noop,// When instance has been initialized

    beforeLoad:$.noop,// Before the content of a slide is being loaded
    afterLoad:$.noop,// When the content of a slide is done loading

    beforeShow:$.noop,// Before open animation starts
    afterShow:$.noop,// When content is done loading and animating

    beforeClose:$.noop,// Before the instance attempts to close. Return false to cancel the close.
    afterClose:$.noop,// After instance has been closed

    onActivate:$.noop,// When instance is brought to front
    onDeactivate:$.noop,// When other instance has been activated

    // Interaction
    // ===========

    // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,// each option can be string or method that returns value.
    //
    // Possible values://   "close"           - close instance
    //   "next"            - move to next gallery item
    //   "nextOrClose"     - move to next gallery item or close if gallery has only one item
    //   "toggleControls"  - show/hide controls
    //   "zoom"            - zoom image (if loaded)
    //   false             - do nothing

    // Clicked on the content
    clickContent:function (current,event){return current.type === "image" ? "zoom" :false;},// Clicked on the slide
    clickSlide:"close",// Clicked on the background (backdrop) element;// if you have not changed the layout,then most likely you need to use `clickSlide` option
    clickOutside:"close",// Same as previous two,but for double click
    dblclickContent:false,dblclickSlide:false,dblclickOutside:false,// Custom options when mobile device is detected
    // =============================================

    mobile:{preventCaptionOverlap:false,idleTime:false,clickContent:function (current,event){return current.type === "image" ? "toggleControls" :false;},clickSlide:function (current,event){return current.type === "image" ? "toggleControls" :"close";},dblclickContent:function (current,event){return current.type === "image" ? "zoom" :false;},dblclickSlide:function (current,event){return current.type === "image" ? "zoom" :false;}},// Internationalization
    // ====================

    lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded. <br/> Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schlie&szlig;en",NEXT:"Weiter",PREV:"Zur&uuml;ck",ERROR:"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergr&ouml;&szlig;ern"}}};// Few useful variables and methods
  // ================================

  var $W = $(window);var $D = $(document);var called = 0;// Check if an object is a jQuery object and not a native JavaScript object
  // ========================================================================
  var isQuery = function (obj){return obj && obj.hasOwnProperty && obj instanceof $;};// Handle multiple browsers for "requestAnimationFrame" and "cancelAnimationFrame"
  // ===============================================================================
  var requestAFrame = (function (){return (window.requestAnimationFrame ||
      window.webkitRequestAnimationFrame ||
      window.mozRequestAnimationFrame ||
      window.oRequestAnimationFrame ||
      // if all else fails,use setTimeout
      function (callback){return window.setTimeout(callback,1000 / 60);});})();var cancelAFrame = (function (){return (window.cancelAnimationFrame ||
      window.webkitCancelAnimationFrame ||
      window.mozCancelAnimationFrame ||
      window.oCancelAnimationFrame ||
      function (id){window.clearTimeout(id);});})();// Detect the supported transition-end event property name
  // =======================================================
  var transitionEnd = (function (){var el = document.createElement("fakeelement"),t;var transitions ={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for (t in transitions){if (el.style[t] !== undefined){return transitions[t];}}return "transitionend";})();// Force redraw on an element.
  // This helps in cases where the browser doesn't redraw an updated element properly
  // ================================================================================
  var forceRedraw = function ($el) {
    return $el && $el.length && $el[0].offsetHeight;
  };

  // Exclude array (`buttons`) options from deep merging
  // ===================================================
  var mergeOpts = function (opts1, opts2) {
    var rez = $.extend(true, {}, opts1, opts2);

    $.each(opts2, function (key, value) {
      if ($.isArray(value)) {
        rez[key] = value;
      }
    });

    return rez;
  };

  // How much of an element is visible in viewport
  // =============================================

  var inViewport = function (elem) {
    var elemCenter, rez;

    if (!elem || elem.ownerDocument !== document) {
      return false;
    }

    $(".fancybox-container").css("pointer-events", "none");

    elemCenter = {
      x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,
      y: elem.getBoundingClientRect().top + elem.offsetHeight / 2
    };

    rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;

    $(".fancybox-container").css("pointer-events", "");

    return rez;
  };

  // Class definition
  // ================

  var FancyBox = function (content, opts, index) {
    var self = this;

    self.opts = mergeOpts({
      index: index
    }, $.fancybox.defaults);

    if ($.isPlainObject(opts)) {
      self.opts = mergeOpts(self.opts, opts);
    }

    if ($.fancybox.isMobile) {
      self.opts = mergeOpts(self.opts, self.opts.mobile);
    }

    self.id = self.opts.id || ++called;

    self.currIndex = parseInt(self.opts.index, 10) || 0;
    self.prevIndex = null;

    self.prevPos = null;
    self.currPos = 0;

    self.firstRun = true;

    // All group items
    self.group = [];

    // Existing slides (for current, next and previous gallery items)
    self.slides = {};

    // Create group elements
    self.addContent(content);

    if (!self.group.length) {
      return;
    }

    self.init();
  };

  $.extend(FancyBox.prototype, {
    // Create DOM structure
    // ====================

    init: function () {
      var self = this,
        firstItem = self.group[self.currIndex],
        firstItemOpts = firstItem.opts,
        $container,
        buttonStr;

      if (firstItemOpts.closeExisting) {
        $.fancybox.close(true);
      }

      // Hide scrollbars
      // ===============

      $("body").addClass("fancybox-active");

      if (
        !$.fancybox.getInstance() &&
        firstItemOpts.hideScrollbar !== false &&
        !$.fancybox.isMobile &&
        document.body.scrollHeight > window.innerHeight
      ) {
        $("head").append(
          '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' +
          (window.innerWidth - document.documentElement.clientWidth) +
          "px;}</style>"
        );

        $("body").addClass("compensate-for-scrollbar");
      }

      // Build html markup and set references
      // ====================================

      // Build html code for buttons and insert into main template
      buttonStr = "";

      $.each(firstItemOpts.buttons, function (index, value) {
        buttonStr += firstItemOpts.btnTpl[value] || "";
      });

      // Create markup from base template, it will be initially hidden to
      // avoid unnecessary work like painting while initializing is not complete
      $container = $(
          self.translate(
            self,
            firstItemOpts.baseTpl
            .replace("{{buttons}}", buttonStr)
            .replace("{{arrows}}", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)
          )
        )
        .attr("id", "fancybox-container-" + self.id)
        .addClass(firstItemOpts.baseClass)
        .data("FancyBox", self)
        .appendTo(firstItemOpts.parentEl);

      // Create object holding references to jQuery wrapped nodes
      self.$refs = {
        container: $container
      };

      ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function (item) {
        self.$refs[item] = $container.find(".fancybox-" + item);
      });

      self.trigger("onInit");

      // Enable events, deactive previous instances
      self.activate();

      // Build slides, load and reveal content
      self.jumpTo(self.currIndex);
    },

    // Simple i18n support - replaces object keys found in template
    // with corresponding values
    // ============================================================

    translate: function (obj, str) {
      var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;

      return str.replace(/\{\{(\w+)\}\}/g, function (match, n) {
        return arr[n] === undefined ? match : arr[n];
      });
    },

    // Populate current group with fresh content
    // Check if each object has valid type and content
    // ===============================================

    addContent: function (content) {
      var self = this,
        items = $.makeArray(content),
        thumbs;

      $.each(items, function (i, item) {
        var obj = {},
          opts = {},
          $item,
          type,
          found,
          src,
          srcParts;

        // Step 1 - Make sure we have an object
        // ====================================

        if ($.isPlainObject(item)) {
          // We probably have manual usage here, something like
          // $.fancybox.open( [ { src : "image.jpg", type : "image" } ] )

          obj = item;
          opts = item.opts || item;
        } else if ($.type(item) === "object" && $(item).length) {
          // Here we probably have jQuery collection returned by some selector
          $item = $(item);

          // Support attributes like `data-options='{"touch" :false}'` and `data-touch='false'`
          opts = $item.data() || {};
          opts = $.extend(true, {}, opts, opts.options);

          // Here we store clicked element
          opts.$orig = $item;

          obj.src = self.opts.src || opts.src || $item.attr("href");

          // Assume that simple syntax is used, for example:
          //   `$.fancybox.open( $("#test"), {} );`
          if (!obj.type && !obj.src) {
            obj.type = "inline";
            obj.src = item;
          }
        } else {
          // Assume we have a simple html code, for example:
          //   $.fancybox.open( '<div><h1>Hi!</h1></div>' );
          obj = {
            type: "html",
            src: item + ""
          };
        }

        // Each gallery object has full collection of options
        obj.opts = $.extend(true, {}, self.opts, opts);

        // Do not merge buttons array
        if ($.isArray(opts.buttons)) {
          obj.opts.buttons = opts.buttons;
        }

        if ($.fancybox.isMobile && obj.opts.mobile) {
          obj.opts = mergeOpts(obj.opts, obj.opts.mobile);
        }

        // Step 2 - Make sure we have content type, if not - try to guess
        // ==============================================================

        type = obj.type || obj.opts.type;
        src = obj.src || "";

        if (!type && src) {
          if ((found = src.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))) {
            type = "video";

            if (!obj.opts.video.format) {
              obj.opts.video.format = "video/" + (found[1] === "ogv" ? "ogg" : found[1]);
            }
          } else if (src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)) {
            type = "image";
          } else if (src.match(/\.(pdf)((\?|#).*)?$/i)) {
            type = "iframe";
            obj = $.extend(true, obj, {
              contentType: "pdf",
              opts: {
                iframe: {
                  preload: false
                }
              }
            });
          } else if (src.charAt(0) === "#") {
            type = "inline";
          }
        }

        if (type) {
          obj.type = type;
        } else {
          self.trigger("objectNeedsType", obj);
        }

        if (!obj.contentType) {
          obj.contentType = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1 ? "html" : obj.type;
        }

        // Step 3 - Some adjustments
        // =========================

        obj.index = self.group.length;

        if (obj.opts.smallBtn == "auto") {
          obj.opts.smallBtn = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1;
        }

        if (obj.opts.toolbar === "auto") {
          obj.opts.toolbar = !obj.opts.smallBtn;
        }

        // Find thumbnail image, check if exists and if is in the viewport
        obj.$thumb = obj.opts.$thumb || null;

        if (obj.opts.$trigger && obj.index === self.opts.index) {
          obj.$thumb = obj.opts.$trigger.find("img:first");

          if (obj.$thumb.length) {
            obj.opts.$orig = obj.opts.$trigger;
          }
        }

        if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {
          obj.$thumb = obj.opts.$orig.find("img:first");
        }

        if (obj.$thumb && !obj.$thumb.length) {
          obj.$thumb = null;
        }

        obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);

        // "caption" is a "special" option, it can be used to customize caption per gallery item
        if ($.type(obj.opts.caption) === "function") {
          obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);
        }

        if ($.type(self.opts.caption) === "function") {
          obj.opts.caption = self.opts.caption.apply(item, [self, obj]);
        }

        // Make sure we have caption as a string or jQuery object
        if (!(obj.opts.caption instanceof $)) {
          obj.opts.caption = obj.opts.caption === undefined ? "" : obj.opts.caption + "";
        }

        // Check if url contains "filter" used to filter the content
        // Example: "ajax.html #something"
        if (obj.type === "ajax") {
          srcParts = src.split(/\s+/, 2);

          if (srcParts.length > 1) {
            obj.src = srcParts.shift();

            obj.opts.filter = srcParts.shift();
          }
        }

        // Hide all buttons and disable interactivity for modal items
        if (obj.opts.modal) {
          obj.opts = $.extend(true, obj.opts, {
            trapFocus: true,
            // Remove buttons
            infobar: 0,
            toolbar: 0,

            smallBtn: 0,

            // Disable keyboard navigation
            keyboard: 0,

            // Disable some modules
            slideShow: 0,
            fullScreen: 0,
            thumbs: 0,
            touch: 0,

            // Disable click event handlers
            clickContent: false,
            clickSlide: false,
            clickOutside: false,
            dblclickContent: false,
            dblclickSlide: false,
            dblclickOutside: false
          });
        }

        // Step 4 - Add processed object to group
        // ======================================

        self.group.push(obj);
      });

      // Update controls if gallery is already opened
      if (Object.keys(self.slides).length) {
        self.updateControls();

        // Update thumbnails, if needed
        thumbs = self.Thumbs;

        if (thumbs && thumbs.isActive) {
          thumbs.create();

          thumbs.focus();
        }
      }
    },

    // Attach an event handler functions for:
    //   - navigation buttons
    //   - browser scrolling, resizing;
    //   - focusing
    //   - keyboard
    //   - detecting inactivity
    // ======================================

    addEvents: function () {
      var self = this;

      self.removeEvents();

      // Make navigation elements clickable
      // ==================================

      self.$refs.container
        .on("click.fb-close", "[data-fancybox-close]", function (e) {
          e.stopPropagation();
          e.preventDefault();

          self.close(e);
        })
        .on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function (e) {
          e.stopPropagation();
          e.preventDefault();

          self.previous();
        })
        .on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function (e) {
          e.stopPropagation();
          e.preventDefault();

          self.next();
        })
        .on("click.fb", "[data-fancybox-zoom]", function (e) {
          // Click handler for zoom button
          self[self.isScaledDown() ? "scaleToActual" : "scaleToFit"]();
        });

      // Handle page scrolling and browser resizing
      // ==========================================

      $W.on("orientationchange.fb resize.fb", function (e) {
        if (e && e.originalEvent && e.originalEvent.type === "resize") {
          if (self.requestId) {
            cancelAFrame(self.requestId);
          }

          self.requestId = requestAFrame(function () {
            self.update(e);
          });
        } else {
          if (self.current && self.current.type === "iframe") {
            self.$refs.stage.hide();
          }

          setTimeout(
            function () {
              self.$refs.stage.show();

              self.update(e);
            },
            $.fancybox.isMobile ? 600 : 250
          );
        }
      });

      $D.on("keydown.fb", function (e) {
        var instance = $.fancybox ? $.fancybox.getInstance() : null,
          current = instance.current,
          keycode = e.keyCode || e.which;

        // Trap keyboard focus inside of the modal
        // =======================================

        if (keycode == 9) {
          if (current.opts.trapFocus) {
            self.focus(e);
          }

          return;
        }

        // Enable keyboard navigation
        // ==========================

        if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is("input,textarea,video,audio,select")) {
          return;
        }

        // Backspace and Esc keys
        if (keycode === 8 || keycode === 27) {
          e.preventDefault();

          self.close(e);

          return;
        }

        // Left arrow and Up arrow
        if (keycode === 37 || keycode === 38) {
          e.preventDefault();

          self.previous();

          return;
        }

        // Righ arrow and Down arrow
        if (keycode === 39 || keycode === 40) {
          e.preventDefault();

          self.next();

          return;
        }

        self.trigger("afterKeydown", e, keycode);
      });

      // Hide controls after some inactivity period
      if (self.group[self.currIndex].opts.idleTime) {
        self.idleSecondsCounter = 0;

        $D.on(
          "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",
          function (e) {
            self.idleSecondsCounter = 0;

            if (self.isIdle) {
              self.showControls();
            }

            self.isIdle = false;
          }
        );

        self.idleInterval = window.setInterval(function () {
          self.idleSecondsCounter++;

          if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {
            self.isIdle = true;
            self.idleSecondsCounter = 0;

            self.hideControls();
          }
        }, 1000);
      }
    },

    // Remove events added by the core
    // ===============================

    removeEvents: function () {
      var self = this;

      $W.off("orientationchange.fb resize.fb");
      $D.off("keydown.fb .fb-idle");

      this.$refs.container.off(".fb-close .fb-prev .fb-next");

      if (self.idleInterval) {
        window.clearInterval(self.idleInterval);

        self.idleInterval = null;
      }
    },

    // Change to previous gallery item
    // ===============================

    previous: function (duration) {
      return this.jumpTo(this.currPos - 1, duration);
    },

    // Change to next gallery item
    // ===========================

    next: function (duration) {
      return this.jumpTo(this.currPos + 1, duration);
    },

    // Switch to selected gallery item
    // ===============================

    jumpTo: function (pos, duration) {
      var self = this,
        groupLen = self.group.length,
        firstRun,
        isMoved,
        loop,
        current,
        previous,
        slidePos,
        stagePos,
        prop,
        diff;

      if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {
        return;
      }

      // Should loop?
      pos = parseInt(pos, 10);
      loop = self.current ? self.current.opts.loop : self.opts.loop;

      if (!loop && (pos < 0 || pos >= groupLen)) {
        return false;
      }

      // Check if opening for the first time; this helps to speed things up
      firstRun = self.firstRun = !Object.keys(self.slides).length;

      // Create slides
      previous = self.current;

      self.prevIndex = self.currIndex;
      self.prevPos = self.currPos;

      current = self.createSlide(pos);

      if (groupLen > 1) {
        if (loop || current.index < groupLen - 1) {
          self.createSlide(pos + 1);
        }

        if (loop || current.index > 0) {
          self.createSlide(pos - 1);
        }
      }

      self.current = current;
      self.currIndex = current.index;
      self.currPos = current.pos;

      self.trigger("beforeShow", firstRun);

      self.updateControls();

      // Validate duration length
      current.forcedDuration = undefined;

      if ($.isNumeric(duration)) {
        current.forcedDuration = duration;
      } else {
        duration = current.opts[firstRun ? "animationDuration" : "transitionDuration"];
      }

      duration = parseInt(duration, 10);

      // Check if user has swiped the slides or if still animating
      isMoved = self.isMoved(current);

      // Make sure current slide is visible
      current.$slide.addClass("fancybox-slide--current");

      // Fresh start - reveal container, current slide and start loading content
      if (firstRun) {
        if (current.opts.animationEffect && duration) {
          self.$refs.container.css("transition-duration", duration + "ms");
        }

        self.$refs.container.addClass("fancybox-is-open").trigger("focus");

        // Attempt to load content into slide
        // This will later call `afterLoad` -> `revealContent`
        self.loadSlide(current);

        self.preload("image");

        return;
      }

      // Get actual slide/stage positions (before cleaning up)
      slidePos = $.fancybox.getTranslate(previous.$slide);
      stagePos = $.fancybox.getTranslate(self.$refs.stage);

      // Clean up all slides
      $.each(self.slides, function (index, slide) {
        $.fancybox.stop(slide.$slide, true);
      });

      if (previous.pos !== current.pos) {
        previous.isComplete = false;
      }

      previous.$slide.removeClass("fancybox-slide--complete fancybox-slide--current");

      // If slides are out of place, then animate them to correct position
      if (isMoved) {
        // Calculate horizontal swipe distance
        diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);

        $.each(self.slides, function (index, slide) {
          slide.$slide.removeClass("fancybox-animated").removeClass(function (index, className) {
            return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
          });

          // Make sure that each slide is in equal distance
          // This is mostly needed for freshly added slides, because they are not yet positioned
          var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;

          $.fancybox.setTranslate(slide.$slide, {
            top: 0,
            left: leftPos - stagePos.left + diff
          });

          if (slide.pos !== current.pos) {
            slide.$slide.addClass("fancybox-slide--" + (slide.pos > current.pos ? "next" : "previous"));
          }

          // Redraw to make sure that transition will start
          forceRedraw(slide.$slide);

          // Animate the slide
          $.fancybox.animate(
            slide.$slide, {
              top: 0,
              left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter
            },
            duration,
            function () {
              slide.$slide
                .css({
                  transform: "",
                  opacity: ""
                })
                .removeClass("fancybox-slide--next fancybox-slide--previous");

              if (slide.pos === self.currPos) {
                self.complete();
              }
            }
          );
        });
      } else if (duration && current.opts.transitionEffect) {
        // Set transition effect for previously active slide
        prop = "fancybox-animated fancybox-fx-" + current.opts.transitionEffect;

        previous.$slide.addClass("fancybox-slide--" + (previous.pos > current.pos ? "next" : "previous"));

        $.fancybox.animate(
          previous.$slide,
          prop,
          duration,
          function () {
            previous.$slide.removeClass(prop).removeClass("fancybox-slide--next fancybox-slide--previous");
          },
          false
        );
      }

      if (current.isLoaded) {
        self.revealContent(current);
      } else {
        self.loadSlide(current);
      }

      self.preload("image");
    },

    // Create new "slide" element
    // These are gallery items  that are actually added to DOM
    // =======================================================

    createSlide: function (pos) {
      var self = this,
        $slide,
        index;

      index = pos % self.group.length;
      index = index < 0 ? self.group.length + index : index;

      if (!self.slides[pos] && self.group[index]) {
        $slide = $('<div class="fancybox-slide"></div>').appendTo(self.$refs.stage);

        self.slides[pos] = $.extend(true, {}, self.group[index], {
          pos: pos,
          $slide: $slide,
          isLoaded: false
        });

        self.updateSlide(self.slides[pos]);
      }

      return self.slides[pos];
    },

    // Scale image to the actual size of the image;
    // x and y values should be relative to the slide
    // ==============================================

    scaleToActual: function (x, y, duration) {
      var self = this,
        current = self.current,
        $content = current.$content,
        canvasWidth = $.fancybox.getTranslate(current.$slide).width,
        canvasHeight = $.fancybox.getTranslate(current.$slide).height,
        newImgWidth = current.width,
        newImgHeight = current.height,
        imgPos,
        posX,
        posY,
        scaleX,
        scaleY;

      if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) {
        return;
      }

      self.isAnimating = true;

      $.fancybox.stop($content);

      x = x === undefined ? canvasWidth * 0.5 : x;
      y = y === undefined ? canvasHeight * 0.5 : y;

      imgPos = $.fancybox.getTranslate($content);

      imgPos.top -= $.fancybox.getTranslate(current.$slide).top;
      imgPos.left -= $.fancybox.getTranslate(current.$slide).left;

      scaleX = newImgWidth / imgPos.width;
      scaleY = newImgHeight / imgPos.height;

      // Get center position for original image
      posX = canvasWidth * 0.5 - newImgWidth * 0.5;
      posY = canvasHeight * 0.5 - newImgHeight * 0.5;

      // Make sure image does not move away from edges
      if (newImgWidth > canvasWidth) {
        posX = imgPos.left * scaleX - (x * scaleX - x);

        if (posX > 0) {
          posX = 0;
        }

        if (posX < canvasWidth - newImgWidth) {
          posX = canvasWidth - newImgWidth;
        }
      }

      if (newImgHeight > canvasHeight) {
        posY = imgPos.top * scaleY - (y * scaleY - y);

        if (posY > 0) {
          posY = 0;
        }

        if (posY < canvasHeight - newImgHeight) {
          posY = canvasHeight - newImgHeight;
        }
      }

      self.updateCursor(newImgWidth, newImgHeight);

      $.fancybox.animate(
        $content, {
          top: posY,
          left: posX,
          scaleX: scaleX,
          scaleY: scaleY
        },
        duration || 366,
        function () {
          self.isAnimating = false;
        }
      );

      // Stop slideshow
      if (self.SlideShow && self.SlideShow.isActive) {
        self.SlideShow.stop();
      }
    },

    // Scale image to fit inside parent element
    // ========================================

    scaleToFit: function (duration) {
      var self = this,
        current = self.current,
        $content = current.$content,
        end;

      if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) {
        return;
      }

      self.isAnimating = true;

      $.fancybox.stop($content);

      end = self.getFitPos(current);

      self.updateCursor(end.width, end.height);

      $.fancybox.animate(
        $content, {
          top: end.top,
          left: end.left,
          scaleX: end.width / $content.width(),
          scaleY: end.height / $content.height()
        },
        duration || 366,
        function () {
          self.isAnimating = false;
        }
      );
    },

    // Calculate image size to fit inside viewport
    // ===========================================

    getFitPos: function (slide) {
      var self = this,
        $content = slide.$content,
        $slide = slide.$slide,
        width = slide.width || slide.opts.width,
        height = slide.height || slide.opts.height,
        maxWidth,
        maxHeight,
        minRatio,
        aspectRatio,
        rez = {};

      if (!slide.isLoaded || !$content || !$content.length) {
        return false;
      }

      maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;
      maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;

      maxWidth -=
        parseFloat($slide.css("paddingLeft")) +
        parseFloat($slide.css("paddingRight")) +
        parseFloat($content.css("marginLeft")) +
        parseFloat($content.css("marginRight"));

      maxHeight -=
        parseFloat($slide.css("paddingTop")) +
        parseFloat($slide.css("paddingBottom")) +
        parseFloat($content.css("marginTop")) +
        parseFloat($content.css("marginBottom"));

      if (!width || !height) {
        width = maxWidth;
        height = maxHeight;
      }

      minRatio = Math.min(1, maxWidth / width, maxHeight / height);

      width = minRatio * width;
      height = minRatio * height;

      // Adjust width/height to precisely fit into container
      if (width > maxWidth - 0.5) {
        width = maxWidth;
      }

      if (height > maxHeight - 0.5) {
        height = maxHeight;
      }

      if (slide.type === "image") {
        rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css("paddingTop"));
        rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css("paddingLeft"));
      } else if (slide.contentType === "video") {
        // Force aspect ratio for the video
        // "I say the whole world must learn of our peaceful ways… by force!"
        aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;

        if (height > width / aspectRatio) {
          height = width / aspectRatio;
        } else if (width > height * aspectRatio) {
          width = height * aspectRatio;
        }
      }

      rez.width = width;
      rez.height = height;

      return rez;
    },

    // Update content size and position for all slides
    // ==============================================

    update: function (e) {
      var self = this;

      $.each(self.slides, function (key, slide) {
        self.updateSlide(slide, e);
      });
    },

    // Update slide content position and size
    // ======================================

    updateSlide: function (slide, e) {
      var self = this,
        $content = slide && slide.$content,
        width = slide.width || slide.opts.width,
        height = slide.height || slide.opts.height,
        $slide = slide.$slide;

      // First, prevent caption overlap, if needed
      self.adjustCaption(slide);

      // Then resize content to fit inside the slide
      if ($content && (width || height || slide.contentType === "video") && !slide.hasError) {
        $.fancybox.stop($content);

        $.fancybox.setTranslate($content, self.getFitPos(slide));

        if (slide.pos === self.currPos) {
          self.isAnimating = false;

          self.updateCursor();
        }
      }

      // Then some adjustments
      self.adjustLayout(slide);

      if ($slide.length) {
        $slide.trigger("refresh");

        if (slide.pos === self.currPos) {
          self.$refs.toolbar
            .add(self.$refs.navigation.find(".fancybox-button--arrow_right"))
            .toggleClass("compensate-for-scrollbar", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);
        }
      }

      self.trigger("onUpdate", slide, e);
    },

    // Horizontally center slide
    // =========================

    centerSlide: function (duration) {
      var self = this,
        current = self.current,
        $slide = current.$slide;

      if (self.isClosing || !current) {
        return;
      }

      $slide.siblings().css({
        transform: "",
        opacity: ""
      });

      $slide
        .parent()
        .children()
        .removeClass("fancybox-slide--previous fancybox-slide--next");

      $.fancybox.animate(
        $slide, {
          top: 0,
          left: 0,
          opacity: 1
        },
        duration === undefined ? 0 : duration,
        function () {
          // Clean up
          $slide.css({
            transform: "",
            opacity: ""
          });

          if (!current.isComplete) {
            self.complete();
          }
        },
        false
      );
    },

    // Check if current slide is moved (swiped)
    // ========================================

    isMoved: function (slide) {
      var current = slide || this.current,
        slidePos,
        stagePos;

      if (!current) {
        return false;
      }

      stagePos = $.fancybox.getTranslate(this.$refs.stage);
      slidePos = $.fancybox.getTranslate(current.$slide);

      return (
        !current.$slide.hasClass("fancybox-animated") &&
        (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)
      );
    },

    // Update cursor style depending if content can be zoomed
    // ======================================================

    updateCursor: function (nextWidth, nextHeight) {
      var self = this,
        current = self.current,
        $container = self.$refs.container,
        canPan,
        isZoomable;

      if (!current || self.isClosing || !self.Guestures) {
        return;
      }

      $container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan");

      canPan = self.canPan(nextWidth, nextHeight);

      isZoomable = canPan ? true : self.isZoomable();

      $container.toggleClass("fancybox-is-zoomable", isZoomable);

      $("[data-fancybox-zoom]").prop("disabled", !isZoomable);

      if (canPan) {
        $container.addClass("fancybox-can-pan");
      } else if (
        isZoomable &&
        (current.opts.clickContent === "zoom" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == "zoom"))
      ) {
        $container.addClass("fancybox-can-zoomIn");
      } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== "video") {
        $container.addClass("fancybox-can-swipe");
      }
    },

    // Check if current slide is zoomable
    // ==================================

    isZoomable: function () {
      var self = this,
        current = self.current,
        fitPos;

      // Assume that slide is zoomable if:
      //   - image is still loading
      //   - actual size of the image is smaller than available area
      if (current && !self.isClosing && current.type === "image" && !current.hasError) {
        if (!current.isLoaded) {
          return true;
        }

        fitPos = self.getFitPos(current);

        if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {
          return true;
        }
      }

      return false;
    },

    // Check if current image dimensions are smaller than actual
    // =========================================================

    isScaledDown: function (nextWidth, nextHeight) {
      var self = this,
        rez = false,
        current = self.current,
        $content = current.$content;

      if (nextWidth !== undefined && nextHeight !== undefined) {
        rez = nextWidth < current.width && nextHeight < current.height;
      } else if ($content) {
        rez = $.fancybox.getTranslate($content);
        rez = rez.width < current.width && rez.height < current.height;
      }

      return rez;
    },

    // Check if image dimensions exceed parent element
    // ===============================================

    canPan: function (nextWidth, nextHeight) {
      var self = this,
        current = self.current,
        pos = null,
        rez = false;

      if (current.type === "image" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {
        rez = self.getFitPos(current);

        if (nextWidth !== undefined && nextHeight !== undefined) {
          pos = {
            width: nextWidth,
            height: nextHeight
          };
        } else if (current.isComplete) {
          pos = $.fancybox.getTranslate(current.$content);
        }

        if (pos && rez) {
          rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;
        }
      }

      return rez;
    },

    // Load content into the slide
    // ===========================

    loadSlide: function (slide) {
      var self = this,
        type,
        $slide,
        ajaxLoad;

      if (slide.isLoading || slide.isLoaded) {
        return;
      }

      slide.isLoading = true;

      if (self.trigger("beforeLoad", slide) === false) {
        slide.isLoading = false;

        return false;
      }

      type = slide.type;
      $slide = slide.$slide;

      $slide
        .off("refresh")
        .trigger("onReset")
        .addClass(slide.opts.slideClass);

      // Create content depending on the type
      switch (type) {
        case "image":
          self.setImage(slide);

          break;

        case "iframe":
          self.setIframe(slide);

          break;

        case "html":
          self.setContent(slide, slide.src || slide.content);

          break;

        case "video":
          self.setContent(
            slide,
            slide.opts.video.tpl
            .replace(/\{\{src\}\}/gi, slide.src)
            .replace("{{format}}", slide.opts.videoFormat || slide.opts.video.format || "")
            .replace("{{poster}}", slide.thumb || "")
          );

          break;

        case "inline":
          if ($(slide.src).length) {
            self.setContent(slide, $(slide.src));
          } else {
            self.setError(slide);
          }

          break;

        case "ajax":
          self.showLoading(slide);

          ajaxLoad = $.ajax(
            $.extend({}, slide.opts.ajax.settings, {
              url: slide.src,
              success: function (data, textStatus) {
                if (textStatus === "success") {
                  self.setContent(slide, data);
                }
              },
              error: function (jqXHR, textStatus) {
                if (jqXHR && textStatus !== "abort") {
                  self.setError(slide);
                }
              }
            })
          );

          $slide.one("onReset", function () {
            ajaxLoad.abort();
          });

          break;

        default:
          self.setError(slide);

          break;
      }

      return true;
    },

    // Use thumbnail image, if possible
    // ================================

    setImage: function (slide) {
      var self = this,
        ghost;

      // Check if need to show loading icon
      setTimeout(function () {
        var $img = slide.$image;

        if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {
          self.showLoading(slide);
        }
      }, 50);

      //Check if image has srcset
      self.checkSrcset(slide);

      // This will be wrapper containing both ghost and actual image
      slide.$content = $('<div class="fancybox-content"></div>')
        .addClass("fancybox-is-hidden")
        .appendTo(slide.$slide.addClass("fancybox-slide--image"));

      // If we have a thumbnail, we can display it while actual image is loading
      // Users will not stare at black screen and actual image will appear gradually
      if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {
        slide.width = slide.opts.width;
        slide.height = slide.opts.height;

        ghost = document.createElement("img");

        ghost.onerror = function () {
          $(this).remove();

          slide.$ghost = null;
        };

        ghost.onload = function () {
          self.afterLoad(slide);
        };

        slide.$ghost = $(ghost)
          .addClass("fancybox-image")
          .appendTo(slide.$content)
          .attr("src", slide.thumb);
      }

      // Start loading actual image
      self.setBigImage(slide);
    },

    // Check if image has srcset and get the source
    // ============================================
    checkSrcset: function (slide) {
      var srcset = slide.opts.srcset || slide.opts.image.srcset,
        found,
        temp,
        pxRatio,
        windowWidth;

      // If we have "srcset", then we need to find first matching "src" value.
      // This is necessary, because when you set an src attribute, the browser will preload the image
      // before any javascript or even CSS is applied.
      if (srcset) {
        pxRatio = window.devicePixelRatio || 1;
        windowWidth = window.innerWidth * pxRatio;

        temp = srcset.split(",").map(function (el) {
          var ret = {};

          el.trim()
            .split(/\s+/)
            .forEach(function (el, i) {
              var value = parseInt(el.substring(0, el.length - 1), 10);

              if (i === 0) {
                return (ret.url = el);
              }

              if (value) {
                ret.value = value;
                ret.postfix = el[el.length - 1];
              }
            });

          return ret;
        });

        // Sort by value
        temp.sort(function (a, b) {
          return a.value - b.value;
        });

        // Ok, now we have an array of all srcset values
        for (var j = 0; j < temp.length; j++) {
          var el = temp[j];

          if ((el.postfix === "w" && el.value >= windowWidth) || (el.postfix === "x" && el.value >= pxRatio)) {
            found = el;
            break;
          }
        }

        // If not found, take the last one
        if (!found && temp.length) {
          found = temp[temp.length - 1];
        }

        if (found) {
          slide.src = found.url;

          // If we have default width/height values, we can calculate height for matching source
          if (slide.width && slide.height && found.postfix == "w") {
            slide.height = (slide.width / slide.height) * found.value;
            slide.width = found.value;
          }

          slide.opts.srcset = srcset;
        }
      }
    },

    // Create full-size image
    // ======================

    setBigImage: function (slide) {
      var self = this,
        img = document.createElement("img"),
        $img = $(img);

      slide.$image = $img
        .one("error", function () {
          self.setError(slide);
        })
        .one("load", function () {
          var sizes;

          if (!slide.$ghost) {
            self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);

            self.afterLoad(slide);
          }

          if (self.isClosing) {
            return;
          }

          if (slide.opts.srcset) {
            sizes = slide.opts.sizes;

            if (!sizes || sizes === "auto") {
              sizes =
                (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? "100" : Math.round((slide.width / slide.height) * 100)) +
                "vw";
            }

            $img.attr("sizes", sizes).attr("srcset", slide.opts.srcset);
          }

          // Hide temporary image after some delay
          if (slide.$ghost) {
            setTimeout(function () {
              if (slide.$ghost && !self.isClosing) {
                slide.$ghost.hide();
              }
            }, Math.min(300, Math.max(1000, slide.height / 1600)));
          }

          self.hideLoading(slide);
        })
        .addClass("fancybox-image")
        .attr("src", slide.src)
        .appendTo(slide.$content);

      if ((img.complete || img.readyState == "complete") && $img.naturalWidth && $img.naturalHeight) {
        $img.trigger("load");
      } else if (img.error) {
        $img.trigger("error");
      }
    },

    // Computes the slide size from image size and maxWidth/maxHeight
    // ==============================================================

    resolveImageSlideSize: function (slide, imgWidth, imgHeight) {
      var maxWidth = parseInt(slide.opts.width, 10),
        maxHeight = parseInt(slide.opts.height, 10);

      // Sets the default values from the image
      slide.width = imgWidth;
      slide.height = imgHeight;

      if (maxWidth > 0) {
        slide.width = maxWidth;
        slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);
      }

      if (maxHeight > 0) {
        slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);
        slide.height = maxHeight;
      }
    },

    // Create iframe wrapper, iframe and bindings
    // ==========================================

    setIframe: function (slide) {
      var self = this,
        opts = slide.opts.iframe,
        $slide = slide.$slide,
        $iframe;

      slide.$content = $('<div class="fancybox-content' + (opts.preload ? " fancybox-is-hidden" : "") + '"></div>')
        .css(opts.css)
        .appendTo($slide);

      $slide.addClass("fancybox-slide--" + slide.contentType);

      slide.$iframe = $iframe = $(opts.tpl.replace(/\{rnd\}/g, new Date().getTime()))
        .attr(opts.attr)
        .appendTo(slide.$content);

      if (opts.preload) {
        self.showLoading(slide);

        // Unfortunately, it is not always possible to determine if iframe is successfully loaded
        // (due to browser security policy)

        $iframe.on("load.fb error.fb", function (e) {
          this.isReady = 1;

          slide.$slide.trigger("refresh");

          self.afterLoad(slide);
        });

        // Recalculate iframe content size
        // ===============================

        $slide.on("refresh.fb", function () {
          var $content = slide.$content,
            frameWidth = opts.css.width,
            frameHeight = opts.css.height,
            $contents,
            $body;

          if ($iframe[0].isReady !== 1) {
            return;
          }

          try {
            $contents = $iframe.contents();
            $body = $contents.find("body");
          } catch (ignore) {}

          // Calculate content dimensions, if it is accessible
          if ($body && $body.length && $body.children().length) {
            // Avoid scrolling to top (if multiple instances)
            $slide.css("overflow", "visible");

            $content.css({
              width: "100%",
              "max-width": "100%",
              height: "9999px"
            });

            if (frameWidth === undefined) {
              frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));
            }

            $content.css("width", frameWidth ? frameWidth : "").css("max-width", "");

            if (frameHeight === undefined) {
              frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));
            }

            $content.css("height", frameHeight ? frameHeight : "");

            $slide.css("overflow", "auto");
          }

          $content.removeClass("fancybox-is-hidden");
        });
      } else {
        self.afterLoad(slide);
      }

      $iframe.attr("src", slide.src);

      // Remove iframe if closing or changing gallery item
      $slide.one("onReset", function () {
        // This helps IE not to throw errors when closing
        try {
          $(this)
            .find("iframe")
            .hide()
            .unbind()
            .attr("src", "//about:blank");
        } catch (ignore) {}

        $(this)
          .off("refresh.fb")
          .empty();

        slide.isLoaded = false;
        slide.isRevealed = false;
      });
    },

    // Wrap and append content to the slide
    // ======================================

    setContent: function (slide, content) {
      var self = this;

      if (self.isClosing) {
        return;
      }

      self.hideLoading(slide);

      if (slide.$content) {
        $.fancybox.stop(slide.$content);
      }

      slide.$slide.empty();

      // If content is a jQuery object, then it will be moved to the slide.
      // The placeholder is created so we will know where to put it back.
      if (isQuery(content) && content.parent().length) {
        // Make sure content is not already moved to fancyBox
        if (content.hasClass("fancybox-content") || content.parent().hasClass("fancybox-content")) {
          content.parents(".fancybox-slide").trigger("onReset");
        }

        // Create temporary element marking original place of the content
        slide.$placeholder = $("<div>")
          .hide()
          .insertAfter(content);

        // Make sure content is visible
        content.css("display", "inline-block");
      } else if (!slide.hasError) {
        // If content is just a plain text, try to convert it to html
        if ($.type(content) === "string") {
          content = $("<div>")
            .append($.trim(content))
            .contents();
        }

        // If "filter" option is provided, then filter content
        if (slide.opts.filter) {
          content = $("<div>")
            .html(content)
            .find(slide.opts.filter);
        }
      }

      slide.$slide.one("onReset", function () {
        // Pause all html5 video/audio
        $(this)
          .find("video,audio")
          .trigger("pause");

        // Put content back
        if (slide.$placeholder) {
          slide.$placeholder.after(content.removeClass("fancybox-content").hide()).remove();

          slide.$placeholder = null;
        }

        // Remove custom close button
        if (slide.$smallBtn) {
          slide.$smallBtn.remove();

          slide.$smallBtn = null;
        }

        // Remove content and mark slide as not loaded
        if (!slide.hasError) {
          $(this).empty();

          slide.isLoaded = false;
          slide.isRevealed = false;
        }
      });

      $(content).appendTo(slide.$slide);

      if ($(content).is("video,audio")) {
        $(content).addClass("fancybox-video");

        $(content).wrap("<div></div>");

        slide.contentType = "video";

        slide.opts.width = slide.opts.width || $(content).attr("width");
        slide.opts.height = slide.opts.height || $(content).attr("height");
      }

      slide.$content = slide.$slide
        .children()
        .filter("div,form,main,video,audio,article,.fancybox-content")
        .first();

      slide.$content.siblings().hide();

      // Re-check if there is a valid content
      // (in some cases, ajax response can contain various elements or plain text)
      if (!slide.$content.length) {
        slide.$content = slide.$slide
          .wrapInner("<div></div>")
          .children()
          .first();
      }

      slide.$content.addClass("fancybox-content");

      slide.$slide.addClass("fancybox-slide--" + slide.contentType);

      self.afterLoad(slide);
    },

    // Display error message
    // =====================

    setError: function (slide) {
      slide.hasError = true;

      slide.$slide
        .trigger("onReset")
        .removeClass("fancybox-slide--" + slide.contentType)
        .addClass("fancybox-slide--error");

      slide.contentType = "html";

      this.setContent(slide, this.translate(slide, slide.opts.errorTpl));

      if (slide.pos === this.currPos) {
        this.isAnimating = false;
      }
    },

    // Show loading icon inside the slide
    // ==================================

    showLoading: function (slide) {
      var self = this;

      slide = slide || self.current;

      if (slide && !slide.$spinner) {
        slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))
          .appendTo(slide.$slide)
          .hide()
          .fadeIn("fast");
      }
    },

    // Remove loading icon from the slide
    // ==================================

    hideLoading: function (slide) {
      var self = this;

      slide = slide || self.current;

      if (slide && slide.$spinner) {
        slide.$spinner.stop().remove();

        delete slide.$spinner;
      }
    },

    // Adjustments after slide content has been loaded
    // ===============================================

    afterLoad: function (slide) {
      var self = this;

      if (self.isClosing) {
        return;
      }

      slide.isLoading = false;
      slide.isLoaded = true;

      self.trigger("afterLoad", slide);

      self.hideLoading(slide);

      // Add small close button
      if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {
        slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);
      }

      // Disable right click
      if (slide.opts.protect && slide.$content && !slide.hasError) {
        slide.$content.on("contextmenu.fb", function (e) {
          if (e.button == 2) {
            e.preventDefault();
          }

          return true;
        });

        // Add fake element on top of the image
        // This makes a bit harder for user to select image
        if (slide.type === "image") {
          $('<div class="fancybox-spaceball"></div>').appendTo(slide.$content);
        }
      }

      self.adjustCaption(slide);

      self.adjustLayout(slide);

      if (slide.pos === self.currPos) {
        self.updateCursor();
      }

      self.revealContent(slide);
    },

    // Prevent caption overlap,
    // fix css inconsistency across browsers
    // =====================================

    adjustCaption: function (slide) {
      var self = this,
        current = slide || self.current,
        caption = current.opts.caption,
        preventOverlap = current.opts.preventCaptionOverlap,
        $caption = self.$refs.caption,
        $clone,
        captionH = false;

      $caption.toggleClass("fancybox-caption--separate", preventOverlap);

      if (preventOverlap && caption && caption.length) {
        if (current.pos !== self.currPos) {
          $clone = $caption.clone().appendTo($caption.parent());

          $clone
            .children()
            .eq(0)
            .empty()
            .html(caption);

          captionH = $clone.outerHeight(true);

          $clone.empty().remove();
        } else if (self.$caption) {
          captionH = self.$caption.outerHeight(true);
        }

        current.$slide.css("padding-bottom", captionH || "");
      }
    },

    // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):
    // https://bugzilla.mozilla.org/show_bug.cgi?id=748518
    // ====================================================================================

    adjustLayout: function (slide) {
      var self = this,
        current = slide || self.current,
        scrollHeight,
        marginBottom,
        inlinePadding,
        actualPadding;

      if (current.isLoaded && current.opts.disableLayoutFix !== true) {
        current.$content.css("margin-bottom", "");

        // If we would always set margin-bottom for the content,
        // then it would potentially break vertical align
        if (current.$content.outerHeight() > current.$slide.height() + 0.5) {
          inlinePadding = current.$slide[0].style["padding-bottom"];
          actualPadding = current.$slide.css("padding-bottom");

          if (parseFloat(actualPadding) > 0) {
            scrollHeight = current.$slide[0].scrollHeight;

            current.$slide.css("padding-bottom", 0);

            if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {
              marginBottom = actualPadding;
            }

            current.$slide.css("padding-bottom", inlinePadding);
          }
        }

        current.$content.css("margin-bottom", marginBottom);
      }
    },

    // Make content visible
    // This method is called right after content has been loaded or
    // user navigates gallery and transition should start
    // ============================================================

    revealContent: function (slide) {
      var self = this,
        $slide = slide.$slide,
        end = false,
        start = false,
        isMoved = self.isMoved(slide),
        isRevealed = slide.isRevealed,
        effect,
        effectClassName,
        duration,
        opacity;

      slide.isRevealed = true;

      effect = slide.opts[self.firstRun ? "animationEffect" : "transitionEffect"];
      duration = slide.opts[self.firstRun ? "animationDuration" : "transitionDuration"];

      duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);

      if (isMoved || slide.pos !== self.currPos || !duration) {
        effect = false;
      }

      // Check if can zoom
      if (effect === "zoom") {
        if (slide.pos === self.currPos && duration && slide.type === "image" && !slide.hasError && (start = self.getThumbPos(slide))) {
          end = self.getFitPos(slide);
        } else {
          effect = "fade";
        }
      }

      // Zoom animation
      // ==============
      if (effect === "zoom") {
        self.isAnimating = true;

        end.scaleX = end.width / start.width;
        end.scaleY = end.height / start.height;

        // Check if we need to animate opacity
        opacity = slide.opts.zoomOpacity;

        if (opacity == "auto") {
          opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;
        }

        if (opacity) {
          start.opacity = 0.1;
          end.opacity = 1;
        }

        // Draw image at start position
        $.fancybox.setTranslate(slide.$content.removeClass("fancybox-is-hidden"), start);

        forceRedraw(slide.$content);

        // Start animation
        $.fancybox.animate(slide.$content, end, duration, function () {
          self.isAnimating = false;

          self.complete();
        });

        return;
      }

      self.updateSlide(slide);

      // Simply show content if no effect
      // ================================
      if (!effect) {
        slide.$content.removeClass("fancybox-is-hidden");

        if (!isRevealed && isMoved && slide.type === "image" && !slide.hasError) {
          slide.$content.hide().fadeIn("fast");
        }

        if (slide.pos === self.currPos) {
          self.complete();
        }

        return;
      }

      // Prepare for CSS transiton
      // =========================
      $.fancybox.stop($slide);

      //effectClassName = "fancybox-animated fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-fx-" + effect;
      effectClassName = "fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + effect;

      $slide.addClass(effectClassName).removeClass("fancybox-slide--current"); //.addClass(effectClassName);

      slide.$content.removeClass("fancybox-is-hidden");

      // Force reflow
      forceRedraw($slide);

      if (slide.type !== "image") {
        slide.$content.hide().show(0);
      }

      $.fancybox.animate(
        $slide,
        "fancybox-slide--current",
        duration,
        function () {
          $slide.removeClass(effectClassName).css({
            transform: "",
            opacity: ""
          });

          if (slide.pos === self.currPos) {
            self.complete();
          }
        },
        true
      );
    },

    // Check if we can and have to zoom from thumbnail
    //================================================

    getThumbPos: function (slide) {
      var rez = false,
        $thumb = slide.$thumb,
        thumbPos,
        btw,
        brw,
        bbw,
        blw;

      if (!$thumb || !inViewport($thumb[0])) {
        return false;
      }

      thumbPos = $.fancybox.getTranslate($thumb);

      btw = parseFloat($thumb.css("border-top-width") || 0);
      brw = parseFloat($thumb.css("border-right-width") || 0);
      bbw = parseFloat($thumb.css("border-bottom-width") || 0);
      blw = parseFloat($thumb.css("border-left-width") || 0);

      rez = {
        top: thumbPos.top + btw,
        left: thumbPos.left + blw,
        width: thumbPos.width - brw - blw,
        height: thumbPos.height - btw - bbw,
        scaleX: 1,
        scaleY: 1
      };

      return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;
    },

    // Final adjustments after current gallery item is moved to position
    // and it`s content is loaded
    // ==================================================================

    complete: function () {
      var self = this,
        current = self.current,
        slides = {},
        $el;

      if (self.isMoved() || !current.isLoaded) {
        return;
      }

      if (!current.isComplete) {
        current.isComplete = true;

        current.$slide.siblings().trigger("onReset");

        self.preload("inline");

        // Trigger any CSS transiton inside the slide
        forceRedraw(current.$slide);

        current.$slide.addClass("fancybox-slide--complete");

        // Remove unnecessary slides
        $.each(self.slides, function (key, slide) {
          if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {
            slides[slide.pos] = slide;
          } else if (slide) {
            $.fancybox.stop(slide.$slide);

            slide.$slide.off().remove();
          }
        });

        self.slides = slides;
      }

      self.isAnimating = false;

      self.updateCursor();

      self.trigger("afterShow");

      // Autoplay first html5 video/audio
      if (!!current.opts.video.autoStart) {
        current.$slide
          .find("video,audio")
          .filter(":visible:first")
          .trigger("play")
          .one("ended", function () {
            if (Document.exitFullscreen) {
              Document.exitFullscreen();
            } else if (this.webkitExitFullscreen) {
              this.webkitExitFullscreen();
            }

            self.next();
          });
      }

      // Try to focus on the first focusable element
      if (current.opts.autoFocus && current.contentType === "html") {
        // Look for the first input with autofocus attribute
        $el = current.$content.find("input[autofocus]:enabled:visible:first");

        if ($el.length) {
          $el.trigger("focus");
        } else {
          self.focus(null, true);
        }
      }

      // Avoid jumping
      current.$slide.scrollTop(0).scrollLeft(0);
    },

    // Preload next and previous slides
    // ================================

    preload: function (type) {
      var self = this,
        prev,
        next;

      if (self.group.length < 2) {
        return;
      }

      next = self.slides[self.currPos + 1];
      prev = self.slides[self.currPos - 1];

      if (prev && prev.type === type) {
        self.loadSlide(prev);
      }

      if (next && next.type === type) {
        self.loadSlide(next);
      }
    },

    // Try to find and focus on the first focusable element
    // ====================================================

    focus: function (e, firstRun) {
      var self = this,
        focusableStr = [
          "a[href]",
          "area[href]",
          'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
          "select:not([disabled]):not([aria-hidden])",
          "textarea:not([disabled]):not([aria-hidden])",
          "button:not([disabled]):not([aria-hidden])",
          "iframe",
          "object",
          "embed",
          "video",
          "audio",
          "[contenteditable]",
          '[tabindex]:not([tabindex^="-"])'
        ].join(","),
        focusableItems,
        focusedItemIndex;

      if (self.isClosing) {
        return;
      }

      if (e || !self.current || !self.current.isComplete) {
        // Focus on any element inside fancybox
        focusableItems = self.$refs.container.find("*:visible");
      } else {
        // Focus inside current slide
        focusableItems = self.current.$slide.find("*:visible" + (firstRun ? ":not(.fancybox-close-small)" : ""));
      }

      focusableItems = focusableItems.filter(focusableStr).filter(function () {
        return $(this).css("visibility") !== "hidden" && !$(this).hasClass("disabled");
      });

      if (focusableItems.length) {
        focusedItemIndex = focusableItems.index(document.activeElement);

        if (e && e.shiftKey) {
          // Back tab
          if (focusedItemIndex < 0 || focusedItemIndex == 0) {
            e.preventDefault();

            focusableItems.eq(focusableItems.length - 1).trigger("focus");
          }
        } else {
          // Outside or Forward tab
          if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {
            if (e) {
              e.preventDefault();
            }

            focusableItems.eq(0).trigger("focus");
          }
        }
      } else {
        self.$refs.container.trigger("focus");
      }
    },

    // Activates current instance - brings container to the front and enables keyboard,
    // notifies other instances about deactivating
    // =================================================================================

    activate: function () {
      var self = this;

      // Deactivate all instances
      $(".fancybox-container").each(function () {
        var instance = $(this).data("FancyBox");

        // Skip self and closing instances
        if (instance && instance.id !== self.id && !instance.isClosing) {
          instance.trigger("onDeactivate");

          instance.removeEvents();

          instance.isVisible = false;
        }
      });

      self.isVisible = true;

      if (self.current || self.isIdle) {
        self.update();

        self.updateControls();
      }

      self.trigger("onActivate");

      self.addEvents();
    },

    // Start closing procedure
    // This will start "zoom-out" animation if needed and clean everything up afterwards
    // =================================================================================

    close: function (e, d) {
      var self = this,
        current = self.current,
        effect,
        duration,
        $content,
        domRect,
        opacity,
        start,
        end;

      var done = function () {
        self.cleanUp(e);
      };

      if (self.isClosing) {
        return false;
      }

      self.isClosing = true;

      // If beforeClose callback prevents closing, make sure content is centered
      if (self.trigger("beforeClose", e) === false) {
        self.isClosing = false;

        requestAFrame(function () {
          self.update();
        });

        return false;
      }

      // Remove all events
      // If there are multiple instances, they will be set again by "activate" method
      self.removeEvents();

      $content = current.$content;
      effect = current.opts.animationEffect;
      duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;

      current.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated");

      if (e !== true) {
        $.fancybox.stop(current.$slide);
      } else {
        effect = false;
      }

      // Remove other slides
      current.$slide
        .siblings()
        .trigger("onReset")
        .remove();

      // Trigger animations
      if (duration) {
        self.$refs.container
          .removeClass("fancybox-is-open")
          .addClass("fancybox-is-closing")
          .css("transition-duration", duration + "ms");
      }

      // Clean up
      self.hideLoading(current);

      self.hideControls(true);

      self.updateCursor();

      // Check if possible to zoom-out
      if (
        effect === "zoom" &&
        !($content && duration && current.type === "image" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))
      ) {
        effect = "fade";
      }

      if (effect === "zoom") {
        $.fancybox.stop($content);

        domRect = $.fancybox.getTranslate($content);

        start = {
          top: domRect.top,
          left: domRect.left,
          scaleX: domRect.width / end.width,
          scaleY: domRect.height / end.height,
          width: end.width,
          height: end.height
        };

        // Check if we need to animate opacity
        opacity = current.opts.zoomOpacity;

        if (opacity == "auto") {
          opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;
        }

        if (opacity) {
          end.opacity = 0;
        }

        $.fancybox.setTranslate($content, start);

        forceRedraw($content);

        $.fancybox.animate($content, end, duration, done);

        return true;
      }

      if (effect && duration) {
        $.fancybox.animate(
          current.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),
          "fancybox-animated fancybox-fx-" + effect,
          duration,
          done
        );
      } else {
        // If skip animation
        if (e === true) {
          setTimeout(done, duration);
        } else {
          done();
        }
      }

      return true;
    },

    // Final adjustments after removing the instance
    // =============================================

    cleanUp: function (e) {
      var self = this,
        instance,
        $focus = self.current.opts.$orig,
        x,
        y;

      self.current.$slide.trigger("onReset");

      self.$refs.container.empty().remove();

      self.trigger("afterClose", e);

      // Place back focus
      if (!!self.current.opts.backFocus) {
        if (!$focus || !$focus.length || !$focus.is(":visible")) {
          $focus = self.$trigger;
        }

        if ($focus && $focus.length) {
          x = window.scrollX;
          y = window.scrollY;

          $focus.trigger("focus");

          $("html, body")
            .scrollTop(y)
            .scrollLeft(x);
        }
      }

      self.current = null;

      // Check if there are other instances
      instance = $.fancybox.getInstance();

      if (instance) {
        instance.activate();
      } else {
        $("body").removeClass("fancybox-active compensate-for-scrollbar");

        $("#fancybox-style-noscroll").remove();
      }
    },

    // Call callback and trigger an event
    // ==================================

    trigger: function (name, slide) {
      var args = Array.prototype.slice.call(arguments, 1),
        self = this,
        obj = slide && slide.opts ? slide : self.current,
        rez;

      if (obj) {
        args.unshift(obj);
      } else {
        obj = self;
      }

      args.unshift(self);

      if ($.isFunction(obj.opts[name])) {
        rez = obj.opts[name].apply(obj, args);
      }

      if (rez === false) {
        return rez;
      }

      if (name === "afterClose" || !self.$refs) {
        $D.trigger(name + ".fb", args);
      } else {
        self.$refs.container.trigger(name + ".fb", args);
      }
    },

    // Update infobar values, navigation button states and reveal caption
    // ==================================================================

    updateControls: function () {
      var self = this,
        current = self.current,
        index = current.index,
        $container = self.$refs.container,
        $caption = self.$refs.caption,
        caption = current.opts.caption;

      // Recalculate content dimensions
      current.$slide.trigger("refresh");

      // Set caption
      if (caption && caption.length) {
        self.$caption = $caption;

        $caption
          .children()
          .eq(0)
          .html(caption);
      } else {
        self.$caption = null;
      }

      if (!self.hasHiddenControls && !self.isIdle) {
        self.showControls();
      }

      // Update info and navigation elements
      $container.find("[data-fancybox-count]").html(self.group.length);
      $container.find("[data-fancybox-index]").html(index + 1);

      $container.find("[data-fancybox-prev]").prop("disabled", !current.opts.loop && index <= 0);
      $container.find("[data-fancybox-next]").prop("disabled", !current.opts.loop && index >= self.group.length - 1);

      if (current.type === "image") {
        // Re-enable buttons; update download button source
        $container
          .find("[data-fancybox-zoom]")
          .show()
          .end()
          .find("[data-fancybox-download]")
          .attr("href", current.opts.image.src || current.src)
          .show();
      } else if (current.opts.toolbar) {
        $container.find("[data-fancybox-download],[data-fancybox-zoom]").hide();
      }

      // Make sure focus is not on disabled button/element
      if ($(document.activeElement).is(":hidden,[disabled]")) {
        self.$refs.container.trigger("focus");
      }
    },

    // Hide toolbar and caption
    // ========================

    hideControls: function (andCaption) {
      var self = this,
        arr = ["infobar", "toolbar", "nav"];

      if (andCaption || !self.current.opts.preventCaptionOverlap) {
        arr.push("caption");
      }

      this.$refs.container.removeClass(
        arr
        .map(function (i) {
          return "fancybox-show-" + i;
        })
        .join(" ")
      );

      this.hasHiddenControls = true;
    },

    showControls: function () {
      var self = this,
        opts = self.current ? self.current.opts : self.opts,
        $container = self.$refs.container;

      self.hasHiddenControls = false;
      self.idleSecondsCounter = 0;

      $container
        .toggleClass("fancybox-show-toolbar", !!(opts.toolbar && opts.buttons))
        .toggleClass("fancybox-show-infobar", !!(opts.infobar && self.group.length > 1))
        .toggleClass("fancybox-show-caption", !!self.$caption)
        .toggleClass("fancybox-show-nav", !!(opts.arrows && self.group.length > 1))
        .toggleClass("fancybox-is-modal", !!opts.modal);
    },

    // Toggle toolbar and caption
    // ==========================

    toggleControls: function () {
      if (this.hasHiddenControls) {
        this.showControls();
      } else {
        this.hideControls();
      }
    }
  });

  $.fancybox = {
    version: "3.5.7",
    defaults: defaults,

    // Get current instance and execute a command.
    //
    // Examples of usage:
    //
    //   $instance = $.fancybox.getInstance();
    //   $.fancybox.getInstance().jumpTo( 1 );
    //   $.fancybox.getInstance( 'jumpTo', 1 );
    //   $.fancybox.getInstance( function() {
    //       console.info( this.currIndex );
    //   });
    // ======================================================

    getInstance: function (command) {
      var instance = $('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
        args = Array.prototype.slice.call(arguments, 1);

      if (instance instanceof FancyBox) {
        if ($.type(command) === "string") {
          instance[command].apply(instance, args);
        } else if ($.type(command) === "function") {
          command.apply(instance, args);
        }

        return instance;
      }

      return false;
    },

    // Create new instance
    // ===================

    open: function (items, opts, index) {
      return new FancyBox(items, opts, index);
    },

    // Close current or all instances
    // ==============================

    close: function (all) {
      var instance = this.getInstance();

      if (instance) {
        instance.close();

        // Try to find and close next instance
        if (all === true) {
          this.close(all);
        }
      }
    },

    // Close all instances and unbind all events
    // =========================================

    destroy: function () {
      this.close(true);

      $D.add("body").off("click.fb-start", "**");
    },

    // Try to detect mobile devices
    // ============================

    isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),

    // Detect if 'translate3d' support is available
    // ============================================

    use3d: (function () {
      var div = document.createElement("div");

      return (
        window.getComputedStyle &&
        window.getComputedStyle(div) &&
        window.getComputedStyle(div).getPropertyValue("transform") &&
        !(document.documentMode && document.documentMode < 11)
      );
    })(),

    // Helper function to get current visual state of an element
    // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]
    // =====================================================================

    getTranslate: function ($el) {
      var domRect;

      if (!$el || !$el.length) {
        return false;
      }

      domRect = $el[0].getBoundingClientRect();

      return {
        top: domRect.top || 0,
        left: domRect.left || 0,
        width: domRect.width,
        height: domRect.height,
        opacity: parseFloat($el.css("opacity"))
      };
    },

    // Shortcut for setting "translate3d" properties for element
    // Can set be used to set opacity, too
    // ========================================================

    setTranslate: function ($el, props) {
      var str = "",
        css = {};

      if (!$el || !props) {
        return;
      }

      if (props.left !== undefined || props.top !== undefined) {
        str =
          (props.left === undefined ? $el.position().left : props.left) +
          "px, " +
          (props.top === undefined ? $el.position().top : props.top) +
          "px";

        if (this.use3d) {
          str = "translate3d(" + str + ", 0px)";
        } else {
          str = "translate(" + str + ")";
        }
      }

      if (props.scaleX !== undefined && props.scaleY !== undefined) {
        str += " scale(" + props.scaleX + ", " + props.scaleY + ")";
      } else if (props.scaleX !== undefined) {
        str += " scaleX(" + props.scaleX + ")";
      }

      if (str.length) {
        css.transform = str;
      }

      if (props.opacity !== undefined) {
        css.opacity = props.opacity;
      }

      if (props.width !== undefined) {
        css.width = props.width;
      }

      if (props.height !== undefined) {
        css.height = props.height;
      }

      return $el.css(css);
    },

    // Simple CSS transition handler
    // =============================

    animate: function ($el, to, duration, callback, leaveAnimationName) {
      var self = this,
        from;

      if ($.isFunction(duration)) {
        callback = duration;
        duration = null;
      }

      self.stop($el);

      from = self.getTranslate($el);

      $el.on(transitionEnd, function (e) {
        // Skip events from child elements and z-index change
        if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == "z-index")) {
          return;
        }

        self.stop($el);

        if ($.isNumeric(duration)) {
          $el.css("transition-duration", "");
        }

        if ($.isPlainObject(to)) {
          if (to.scaleX !== undefined && to.scaleY !== undefined) {
            self.setTranslate($el, {
              top: to.top,
              left: to.left,
              width: from.width * to.scaleX,
              height: from.height * to.scaleY,
              scaleX: 1,
              scaleY: 1
            });
          }
        } else if (leaveAnimationName !== true) {
          $el.removeClass(to);
        }

        if ($.isFunction(callback)) {
          callback(e);
        }
      });

      if ($.isNumeric(duration)) {
        $el.css("transition-duration", duration + "ms");
      }

      // Start animation by changing CSS properties or class name
      if ($.isPlainObject(to)) {
        if (to.scaleX !== undefined && to.scaleY !== undefined) {
          delete to.width;
          delete to.height;

          if ($el.parent().hasClass("fancybox-slide--image")) {
            $el.parent().addClass("fancybox-is-scaling");
          }
        }

        $.fancybox.setTranslate($el, to);
      } else {
        $el.addClass(to);
      }

      // Make sure that `transitionend` callback gets fired
      $el.data(
        "timer",
        setTimeout(function () {
          $el.trigger(transitionEnd);
        }, duration + 33)
      );
    },

    stop: function ($el, callCallback) {
      if ($el && $el.length) {
        clearTimeout($el.data("timer"));

        if (callCallback) {
          $el.trigger(transitionEnd);
        }

        $el.off(transitionEnd).css("transition-duration", "");

        $el.parent().removeClass("fancybox-is-scaling");
      }
    }
  };

  // Default click handler for "fancyboxed" links
  // ============================================

  function _run(e, opts) {
    var items = [],
      index = 0,
      $target,
      value,
      instance;

    // Avoid opening multiple times
    if (e && e.isDefaultPrevented()) {
      return;
    }

    e.preventDefault();

    opts = opts || {};

    if (e && e.data) {
      opts = mergeOpts(e.data.options, opts);
    }

    $target = opts.$target || $(e.currentTarget).trigger("blur");
    instance = $.fancybox.getInstance();

    if (instance && instance.$trigger && instance.$trigger.is($target)) {
      return;
    }

    if (opts.selector) {
      items = $(opts.selector);
    } else {
      // Get all related items and find index for clicked one
      value = $target.attr("data-fancybox") || "";

      if (value) {
        items = e.data ? e.data.items : [];
        items = items.length ? items.filter('[data-fancybox="' + value + '"]') : $('[data-fancybox="' + value + '"]');
      } else {
        items = [$target];
      }
    }

    index = $(items).index($target);

    // Sometimes current item can not be found
    if (index < 0) {
      index = 0;
    }

    instance = $.fancybox.open(items, opts, index);

    // Save last active element
    instance.$trigger = $target;
  }

  // Create a jQuery plugin
  // ======================

  $.fn.fancybox = function (options) {
    var selector;

    options = options || {};
    selector = options.selector || false;

    if (selector) {
      // Use body element instead of document so it executes first
      $("body")
        .off("click.fb-start", selector)
        .on("click.fb-start", selector, {
          options: options
        }, _run);
    } else {
      this.off("click.fb-start").on(
        "click.fb-start", {
          items: this,
          options: options
        },
        _run
      );
    }

    return this;
  };

  // Self initializing plugin for all elements having `data-fancybox` attribute
  // ==========================================================================

  $D.on("click.fb-start", "[data-fancybox]", _run);

  // Enable "trigger elements"
  // =========================

  $D.on("click.fb-start", "[data-fancybox-trigger]", function (e) {
    $('[data-fancybox="' + $(this).attr("data-fancybox-trigger") + '"]')
      .eq($(this).attr("data-fancybox-index") || 0)
      .trigger("click.fb-start", {
        $trigger: $(this)
      });
  });

  // Track focus event for better accessibility styling
  // ==================================================
  (function () {
    var buttonStr = ".fancybox-button",
      focusStr = "fancybox-focus",
      $pressed = null;

    $D.on("mousedown mouseup focus blur", buttonStr, function (e) {
      switch (e.type) {
        case "mousedown":
          $pressed = $(this);
          break;
        case "mouseup":
          $pressed = null;
          break;
        case "focusin":
          $(buttonStr).removeClass(focusStr);

          if (!$(this).is($pressed) && !$(this).is("[disabled]")) {
            $(this).addClass(focusStr);
          }
          break;
        case "focusout":
          $(buttonStr).removeClass(focusStr);
          break;
      }
    });
  })();
})(window, document, jQuery);
// ==========================================================================
//
// Media
// Adds additional media type support
//
// ==========================================================================
(function ($) {
  "use strict";

  // Object containing properties for each media type
  var defaults = {
    youtube: {
      matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
      params: {
        autoplay: 1,
        autohide: 1,
        fs: 1,
        rel: 0,
        hd: 1,
        wmode: "transparent",
        enablejsapi: 1,
        html5: 1
      },
      paramPlace: 8,
      type: "iframe",
      url: "https://www.youtube-nocookie.com/embed/$4",
      thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg"
    },

    vimeo: {
      matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
      params: {
        autoplay: 1,
        hd: 1,
        show_title: 1,
        show_byline: 1,
        show_portrait: 0,
        fullscreen: 1
      },
      paramPlace: 3,
      type: "iframe",
      url: "//player.vimeo.com/video/$2"
    },

    instagram: {
      matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
      type: "image",
      url: "//$1/p/$2/media/?size=l"
    },

    // Examples:
    // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
    // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z
    // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en
    // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572
    gmap_place: {
      matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
      type: "iframe",
      url: function (rez) {
        return (
          "//maps.google." +
          rez[2] +
          "/?ll=" +
          (rez[9] ? rez[9] + "&z=" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\//, "&") : "") : rez[12] + "").replace(/\?/, "&") +
          "&output=" +
          (rez[12] && rez[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
        );
      }
    },

    // Examples:
    // https://www.google.com/maps/search/Empire+State+Building/
    // https://www.google.com/maps/search/?api=1&query=centurylink+field
    // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393
    gmap_search: {
      matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
      type: "iframe",
      url: function (rez) {
        return "//maps.google." + rez[2] + "/maps?q=" + rez[5].replace("query=", "q=").replace("api=1", "") + "&output=embed";
      }
    }
  };

  // Formats matching url to final form
  var format = function (url, rez, params) {
    if (!url) {
      return;
    }

    params = params || "";

    if ($.type(params) === "object") {
      params = $.param(params, true);
    }

    $.each(rez, function (key, value) {
      url = url.replace("$" + key, value || "");
    });

    if (params.length) {
      url += (url.indexOf("?") > 0 ? "&" : "?") + params;
    }

    return url;
  };

  $(document).on("objectNeedsType.fb", function (e, instance, item) {
    var url = item.src || "",
      type = false,
      media,
      thumb,
      rez,
      params,
      urlParams,
      paramObj,
      provider;

    media = $.extend(true, {}, defaults, item.opts.media);

    // Look for any matching media type
    $.each(media, function (providerName, providerOpts) {
      rez = url.match(providerOpts.matcher);

      if (!rez) {
        return;
      }

      type = providerOpts.type;
      provider = providerName;
      paramObj = {};

      if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {
        urlParams = rez[providerOpts.paramPlace];

        if (urlParams[0] == "?") {
          urlParams = urlParams.substring(1);
        }

        urlParams = urlParams.split("&");

        for (var m = 0; m < urlParams.length; ++m) {
          var p = urlParams[m].split("=", 2);

          if (p.length == 2) {
            paramObj[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
          }
        }
      }

      params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);

      url =
        $.type(providerOpts.url) === "function" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);

      thumb =
        $.type(providerOpts.thumb) === "function" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);

      if (providerName === "youtube") {
        url = url.replace(/&t=((\d+)m)?(\d+)s/, function (match, p1, m, s) {
          return "&start=" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));
        });
      } else if (providerName === "vimeo") {
        url = url.replace("&%23", "#");
      }

      return false;
    });

    // If it is found, then change content type and update the url

    if (type) {
      if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {
        item.opts.thumb = thumb;
      }

      if (type === "iframe") {
        item.opts = $.extend(true, item.opts, {
          iframe: {
            preload: false,
            attr: {
              scrolling: "no"
            }
          }
        });
      }

      $.extend(item, {
        type: type,
        src: url,
        origSrc: item.src,
        contentSource: provider,
        contentType: type === "image" ? "image" : provider == "gmap_place" || provider == "gmap_search" ? "map" : "video"
      });
    } else if (url) {
      item.type = item.opts.defaultType;
    }
  });

  // Load YouTube/Video API on request to detect when video finished playing
  var VideoAPILoader = {
    youtube: {
      src: "https://www.youtube.com/iframe_api",
      class: "YT",
      loading: false,
      loaded: false
    },

    vimeo: {
      src: "https://player.vimeo.com/api/player.js",
      class: "Vimeo",
      loading: false,
      loaded: false
    },

    load: function (vendor) {
      var _this = this,
        script;

      if (this[vendor].loaded) {
        setTimeout(function () {
          _this.done(vendor);
        });
        return;
      }

      if (this[vendor].loading) {
        return;
      }

      this[vendor].loading = true;

      script = document.createElement("script");
      script.type = "text/javascript";
      script.src = this[vendor].src;

      if (vendor === "youtube") {
        window.onYouTubeIframeAPIReady = function () {
          _this[vendor].loaded = true;
          _this.done(vendor);
        };
      } else {
        script.onload = function () {
          _this[vendor].loaded = true;
          _this.done(vendor);
        };
      }

      document.body.appendChild(script);
    },
    done: function (vendor) {
      var instance, $el, player;

      if (vendor === "youtube") {
        delete window.onYouTubeIframeAPIReady;
      }

      instance = $.fancybox.getInstance();

      if (instance) {
        $el = instance.current.$content.find("iframe");

        if (vendor === "youtube" && YT !== undefined && YT) {
          player = new YT.Player($el.attr("id"), {
            events: {
              onStateChange: function (e) {
                if (e.data == 0) {
                  instance.next();
                }
              }
            }
          });
        } else if (vendor === "vimeo" && Vimeo !== undefined && Vimeo) {
          player = new Vimeo.Player($el);

          player.on("ended", function () {
            instance.next();
          });
        }
      }
    }
  };

  $(document).on({
    "afterShow.fb": function (e, instance, current) {
      if (instance.group.length > 1 && (current.contentSource === "youtube" || current.contentSource === "vimeo")) {
        VideoAPILoader.load(current.contentSource);
      }
    }
  });
})(jQuery);
// ==========================================================================
//
// Guestures
// Adds touch guestures, handles click and tap events
//
// ==========================================================================
(function (window, document, $) {
  "use strict";

  var requestAFrame = (function () {
    return (
      window.requestAnimationFrame ||
      window.webkitRequestAnimationFrame ||
      window.mozRequestAnimationFrame ||
      window.oRequestAnimationFrame ||
      // if all else fails, use setTimeout
      function (callback) {
        return window.setTimeout(callback, 1000 / 60);
      }
    );
  })();

  var cancelAFrame = (function () {
    return (
      window.cancelAnimationFrame ||
      window.webkitCancelAnimationFrame ||
      window.mozCancelAnimationFrame ||
      window.oCancelAnimationFrame ||
      function (id) {
        window.clearTimeout(id);
      }
    );
  })();

  var getPointerXY = function (e) {
    var result = [];

    e = e.originalEvent || e || window.e;
    e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];

    for (var key in e) {
      if (e[key].pageX) {
        result.push({
          x: e[key].pageX,
          y: e[key].pageY
        });
      } else if (e[key].clientX) {
        result.push({
          x: e[key].clientX,
          y: e[key].clientY
        });
      }
    }

    return result;
  };

  var distance = function (point2, point1, what) {
    if (!point1 || !point2) {
      return 0;
    }

    if (what === "x") {
      return point2.x - point1.x;
    } else if (what === "y") {
      return point2.y - point1.y;
    }

    return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));
  };

  var isClickable = function ($el) {
    if (
      $el.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') ||
      $.isFunction($el.get(0).onclick) ||
      $el.data("selectable")
    ) {
      return true;
    }

    // Check for attributes like data-fancybox-next or data-fancybox-close
    for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {
      if (atts[i].nodeName.substr(0, 14) === "data-fancybox-") {
        return true;
      }
    }

    return false;
  };

  var hasScrollbars = function (el) {
    var overflowY = window.getComputedStyle(el)["overflow-y"],
      overflowX = window.getComputedStyle(el)["overflow-x"],
      vertical = (overflowY === "scroll" || overflowY === "auto") && el.scrollHeight > el.clientHeight,
      horizontal = (overflowX === "scroll" || overflowX === "auto") && el.scrollWidth > el.clientWidth;

    return vertical || horizontal;
  };

  var isScrollable = function ($el) {
    var rez = false;

    while (true) {
      rez = hasScrollbars($el.get(0));

      if (rez) {
        break;
      }

      $el = $el.parent();

      if (!$el.length || $el.hasClass("fancybox-stage") || $el.is("body")) {
        break;
      }
    }

    return rez;
  };

  var Guestures = function (instance) {
    var self = this;

    self.instance = instance;

    self.$bg = instance.$refs.bg;
    self.$stage = instance.$refs.stage;
    self.$container = instance.$refs.container;

    self.destroy();

    self.$container.on("touchstart.fb.touch mousedown.fb.touch", $.proxy(self, "ontouchstart"));
  };

  Guestures.prototype.destroy = function () {
    var self = this;

    self.$container.off(".fb.touch");

    $(document).off(".fb.touch");

    if (self.requestId) {
      cancelAFrame(self.requestId);
      self.requestId = null;
    }

    if (self.tapped) {
      clearTimeout(self.tapped);
      self.tapped = null;
    }
  };

  Guestures.prototype.ontouchstart = function (e) {
    var self = this,
      $target = $(e.target),
      instance = self.instance,
      current = instance.current,
      $slide = current.$slide,
      $content = current.$content,
      isTouchDevice = e.type == "touchstart";

    // Do not respond to both (touch and mouse) events
    if (isTouchDevice) {
      self.$container.off("mousedown.fb.touch");
    }

    // Ignore right click
    if (e.originalEvent && e.originalEvent.button == 2) {
      return;
    }

    // Ignore taping on links, buttons, input elements
    if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {
      return;
    }
    // Ignore clicks on the scrollbar
    if (!$target.is("img") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {
      return;
    }

    // Ignore clicks while zooming or closing
    if (!current || instance.isAnimating || current.$slide.hasClass("fancybox-animated")) {
      e.stopPropagation();
      e.preventDefault();

      return;
    }

    self.realPoints = self.startPoints = getPointerXY(e);

    if (!self.startPoints.length) {
      return;
    }

    // Allow other scripts to catch touch event if "touch" is set to false
    if (current.touch) {
      e.stopPropagation();
    }

    self.startEvent = e;

    self.canTap = true;
    self.$target = $target;
    self.$content = $content;
    self.opts = current.opts.touch;

    self.isPanning = false;
    self.isSwiping = false;
    self.isZooming = false;
    self.isScrolling = false;
    self.canPan = instance.canPan();

    self.startTime = new Date().getTime();
    self.distanceX = self.distanceY = self.distance = 0;

    self.canvasWidth = Math.round($slide[0].clientWidth);
    self.canvasHeight = Math.round($slide[0].clientHeight);

    self.contentLastPos = null;
    self.contentStartPos = $.fancybox.getTranslate(self.$content) || {
      top: 0,
      left: 0
    };
    self.sliderStartPos = $.fancybox.getTranslate($slide);

    // Since position will be absolute, but we need to make it relative to the stage
    self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);

    self.sliderStartPos.top -= self.stagePos.top;
    self.sliderStartPos.left -= self.stagePos.left;

    self.contentStartPos.top -= self.stagePos.top;
    self.contentStartPos.left -= self.stagePos.left;

    $(document)
      .off(".fb.touch")
      .on(isTouchDevice ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", $.proxy(self, "ontouchend"))
      .on(isTouchDevice ? "touchmove.fb.touch" : "mousemove.fb.touch", $.proxy(self, "ontouchmove"));

    if ($.fancybox.isMobile) {
      document.addEventListener("scroll", self.onscroll, true);
    }

    // Skip if clicked outside the sliding area
    if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {
      if ($target.is(".fancybox-image")) {
        e.preventDefault();
      }

      if (!($.fancybox.isMobile && $target.parents(".fancybox-caption").length)) {
        return;
      }
    }

    self.isScrollable = isScrollable($target) || isScrollable($target.parent());

    // Check if element is scrollable and try to prevent default behavior (scrolling)
    if (!($.fancybox.isMobile && self.isScrollable)) {
      e.preventDefault();
    }

    // One finger or mouse click - swipe or pan an image
    if (self.startPoints.length === 1 || current.hasError) {
      if (self.canPan) {
        $.fancybox.stop(self.$content);

        self.isPanning = true;
      } else {
        self.isSwiping = true;
      }

      self.$container.addClass("fancybox-is-grabbing");
    }

    // Two fingers - zoom image
    if (self.startPoints.length === 2 && current.type === "image" && (current.isLoaded || current.$ghost)) {
      self.canTap = false;
      self.isSwiping = false;
      self.isPanning = false;

      self.isZooming = true;

      $.fancybox.stop(self.$content);

      self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();
      self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();

      self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;
      self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;

      self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);
    }
  };

  Guestures.prototype.onscroll = function (e) {
    var self = this;

    self.isScrolling = true;

    document.removeEventListener("scroll", self.onscroll, true);
  };

  Guestures.prototype.ontouchmove = function (e) {
    var self = this;

    // Make sure user has not released over iframe or disabled element
    if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {
      self.ontouchend(e);
      return;
    }

    if (self.isScrolling) {
      self.canTap = false;
      return;
    }

    self.newPoints = getPointerXY(e);

    if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {
      return;
    }

    if (!(self.isSwiping && self.isSwiping === true)) {
      e.preventDefault();
    }

    self.distanceX = distance(self.newPoints[0], self.startPoints[0], "x");
    self.distanceY = distance(self.newPoints[0], self.startPoints[0], "y");

    self.distance = distance(self.newPoints[0], self.startPoints[0]);

    // Skip false ontouchmove events (Chrome)
    if (self.distance > 0) {
      if (self.isSwiping) {
        self.onSwipe(e);
      } else if (self.isPanning) {
        self.onPan();
      } else if (self.isZooming) {
        self.onZoom();
      }
    }
  };

  Guestures.prototype.onSwipe = function (e) {
    var self = this,
      instance = self.instance,
      swiping = self.isSwiping,
      left = self.sliderStartPos.left || 0,
      angle;

    // If direction is not yet determined
    if (swiping === true) {
      // We need at least 10px distance to correctly calculate an angle
      if (Math.abs(self.distance) > 10) {
        self.canTap = false;

        if (instance.group.length < 2 && self.opts.vertical) {
          self.isSwiping = "y";
        } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === "auto" && $(window).width() > 800)) {
          self.isSwiping = "x";
        } else {
          angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);

          self.isSwiping = angle > 45 && angle < 135 ? "y" : "x";
        }

        if (self.isSwiping === "y" && $.fancybox.isMobile && self.isScrollable) {
          self.isScrolling = true;

          return;
        }

        instance.isDragging = self.isSwiping;

        // Reset points to avoid jumping, because we dropped first swipes to calculate the angle
        self.startPoints = self.newPoints;

        $.each(instance.slides, function (index, slide) {
          var slidePos, stagePos;

          $.fancybox.stop(slide.$slide);

          slidePos = $.fancybox.getTranslate(slide.$slide);
          stagePos = $.fancybox.getTranslate(instance.$refs.stage);

          slide.$slide
            .css({
              transform: "",
              opacity: "",
              "transition-duration": ""
            })
            .removeClass("fancybox-animated")
            .removeClass(function (index, className) {
              return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
            });

          if (slide.pos === instance.current.pos) {
            self.sliderStartPos.top = slidePos.top - stagePos.top;
            self.sliderStartPos.left = slidePos.left - stagePos.left;
          }

          $.fancybox.setTranslate(slide.$slide, {
            top: slidePos.top - stagePos.top,
            left: slidePos.left - stagePos.left
          });
        });

        // Stop slideshow
        if (instance.SlideShow && instance.SlideShow.isActive) {
          instance.SlideShow.stop();
        }
      }

      return;
    }

    // Sticky edges
    if (swiping == "x") {
      if (
        self.distanceX > 0 &&
        (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))
      ) {
        left = left + Math.pow(self.distanceX, 0.8);
      } else if (
        self.distanceX < 0 &&
        (self.instance.group.length < 2 ||
          (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))
      ) {
        left = left - Math.pow(-self.distanceX, 0.8);
      } else {
        left = left + self.distanceX;
      }
    }

    self.sliderLastPos = {
      top: swiping == "x" ? 0 : self.sliderStartPos.top + self.distanceY,
      left: left
    };

    if (self.requestId) {
      cancelAFrame(self.requestId);

      self.requestId = null;
    }

    self.requestId = requestAFrame(function () {
      if (self.sliderLastPos) {
        $.each(self.instance.slides, function (index, slide) {
          var pos = slide.pos - self.instance.currPos;

          $.fancybox.setTranslate(slide.$slide, {
            top: self.sliderLastPos.top,
            left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter
          });
        });

        self.$container.addClass("fancybox-is-sliding");
      }
    });
  };

  Guestures.prototype.onPan = function () {
    var self = this;

    // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)
    if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {
      self.startPoints = self.newPoints;
      return;
    }

    self.canTap = false;

    self.contentLastPos = self.limitMovement();

    if (self.requestId) {
      cancelAFrame(self.requestId);
    }

    self.requestId = requestAFrame(function () {
      $.fancybox.setTranslate(self.$content, self.contentLastPos);
    });
  };

  // Make panning sticky to the edges
  Guestures.prototype.limitMovement = function () {
    var self = this;

    var canvasWidth = self.canvasWidth;
    var canvasHeight = self.canvasHeight;

    var distanceX = self.distanceX;
    var distanceY = self.distanceY;

    var contentStartPos = self.contentStartPos;

    var currentOffsetX = contentStartPos.left;
    var currentOffsetY = contentStartPos.top;

    var currentWidth = contentStartPos.width;
    var currentHeight = contentStartPos.height;

    var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;

    if (currentWidth > canvasWidth) {
      newOffsetX = currentOffsetX + distanceX;
    } else {
      newOffsetX = currentOffsetX;
    }

    newOffsetY = currentOffsetY + distanceY;

    // Slow down proportionally to traveled distance
    minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);
    minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);

    maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);
    maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);

    //   ->
    if (distanceX > 0 && newOffsetX > minTranslateX) {
      newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;
    }

    //    <-
    if (distanceX < 0 && newOffsetX < maxTranslateX) {
      newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;
    }

    //   \/
    if (distanceY > 0 && newOffsetY > minTranslateY) {
      newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;
    }

    //   /\
    if (distanceY < 0 && newOffsetY < maxTranslateY) {
      newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;
    }

    return {
      top: newOffsetY,
      left: newOffsetX
    };
  };

  Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {
    var self = this;

    var canvasWidth = self.canvasWidth;
    var canvasHeight = self.canvasHeight;

    if (newWidth > canvasWidth) {
      newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;
      newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;
    } else {
      // Center horizontally
      newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);
    }

    if (newHeight > canvasHeight) {
      newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;
      newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;
    } else {
      // Center vertically
      newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);
    }

    return {
      top: newOffsetY,
      left: newOffsetX
    };
  };

  Guestures.prototype.onZoom = function () {
    var self = this;

    // Calculate current distance between points to get pinch ratio and new width and height
    var contentStartPos = self.contentStartPos;

    var currentWidth = contentStartPos.width;
    var currentHeight = contentStartPos.height;

    var currentOffsetX = contentStartPos.left;
    var currentOffsetY = contentStartPos.top;

    var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);

    var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;

    var newWidth = Math.floor(currentWidth * pinchRatio);
    var newHeight = Math.floor(currentHeight * pinchRatio);

    // This is the translation due to pinch-zooming
    var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;
    var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;

    // Point between the two touches
    var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();
    var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();

    // And this is the translation due to translation of the centerpoint
    // between the two fingers
    var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;
    var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;

    // The new offset is the old/current one plus the total translation
    var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);
    var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);

    var newPos = {
      top: newOffsetY,
      left: newOffsetX,
      scaleX: pinchRatio,
      scaleY: pinchRatio
    };

    self.canTap = false;

    self.newWidth = newWidth;
    self.newHeight = newHeight;

    self.contentLastPos = newPos;

    if (self.requestId) {
      cancelAFrame(self.requestId);
    }

    self.requestId = requestAFrame(function () {
      $.fancybox.setTranslate(self.$content, self.contentLastPos);
    });
  };

  Guestures.prototype.ontouchend = function (e) {
    var self = this;

    var swiping = self.isSwiping;
    var panning = self.isPanning;
    var zooming = self.isZooming;
    var scrolling = self.isScrolling;

    self.endPoints = getPointerXY(e);
    self.dMs = Math.max(new Date().getTime() - self.startTime, 1);

    self.$container.removeClass("fancybox-is-grabbing");

    $(document).off(".fb.touch");

    document.removeEventListener("scroll", self.onscroll, true);

    if (self.requestId) {
      cancelAFrame(self.requestId);

      self.requestId = null;
    }

    self.isSwiping = false;
    self.isPanning = false;
    self.isZooming = false;
    self.isScrolling = false;

    self.instance.isDragging = false;

    if (self.canTap) {
      return self.onTap(e);
    }

    self.speed = 100;

    // Speed in px/ms
    self.velocityX = (self.distanceX / self.dMs) * 0.5;
    self.velocityY = (self.distanceY / self.dMs) * 0.5;

    if (panning) {
      self.endPanning();
    } else if (zooming) {
      self.endZooming();
    } else {
      self.endSwiping(swiping, scrolling);
    }

    return;
  };

  Guestures.prototype.endSwiping = function (swiping, scrolling) {
    var self = this,
      ret = false,
      len = self.instance.group.length,
      distanceX = Math.abs(self.distanceX),
      canAdvance = swiping == "x" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),
      speedX = 300;

    self.sliderLastPos = null;

    // Close if swiped vertically / navigate if horizontally
    if (swiping == "y" && !scrolling && Math.abs(self.distanceY) > 50) {
      // Continue vertical movement
      $.fancybox.animate(
        self.instance.current.$slide, {
          top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,
          opacity: 0
        },
        200
      );
      ret = self.instance.close(true, 250);
    } else if (canAdvance && self.distanceX > 0) {
      ret = self.instance.previous(speedX);
    } else if (canAdvance && self.distanceX < 0) {
      ret = self.instance.next(speedX);
    }

    if (ret === false && (swiping == "x" || swiping == "y")) {
      self.instance.centerSlide(200);
    }

    self.$container.removeClass("fancybox-is-sliding");
  };

  // Limit panning from edges
  // ========================
  Guestures.prototype.endPanning = function () {
    var self = this,
      newOffsetX,
      newOffsetY,
      newPos;

    if (!self.contentLastPos) {
      return;
    }

    if (self.opts.momentum === false || self.dMs > 350) {
      newOffsetX = self.contentLastPos.left;
      newOffsetY = self.contentLastPos.top;
    } else {
      // Continue movement
      newOffsetX = self.contentLastPos.left + self.velocityX * 500;
      newOffsetY = self.contentLastPos.top + self.velocityY * 500;
    }

    newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);

    newPos.width = self.contentStartPos.width;
    newPos.height = self.contentStartPos.height;

    $.fancybox.animate(self.$content, newPos, 366);
  };

  Guestures.prototype.endZooming = function () {
    var self = this;

    var current = self.instance.current;

    var newOffsetX, newOffsetY, newPos, reset;

    var newWidth = self.newWidth;
    var newHeight = self.newHeight;

    if (!self.contentLastPos) {
      return;
    }

    newOffsetX = self.contentLastPos.left;
    newOffsetY = self.contentLastPos.top;

    reset = {
      top: newOffsetY,
      left: newOffsetX,
      width: newWidth,
      height: newHeight,
      scaleX: 1,
      scaleY: 1
    };

    // Reset scalex/scaleY values; this helps for perfomance and does not break animation
    $.fancybox.setTranslate(self.$content, reset);

    if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {
      self.instance.scaleToFit(150);
    } else if (newWidth > current.width || newHeight > current.height) {
      self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);
    } else {
      newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);

      $.fancybox.animate(self.$content, newPos, 150);
    }
  };

  Guestures.prototype.onTap = function (e) {
    var self = this;
    var $target = $(e.target);

    var instance = self.instance;
    var current = instance.current;

    var endPoints = (e && getPointerXY(e)) || self.startPoints;

    var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;
    var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;

    var where;

    var process = function (prefix) {
      var action = current.opts[prefix];

      if ($.isFunction(action)) {
        action = action.apply(instance, [current, e]);
      }

      if (!action) {
        return;
      }

      switch (action) {
        case "close":
          instance.close(self.startEvent);

          break;

        case "toggleControls":
          instance.toggleControls();

          break;

        case "next":
          instance.next();

          break;

        case "nextOrClose":
          if (instance.group.length > 1) {
            instance.next();
          } else {
            instance.close(self.startEvent);
          }

          break;

        case "zoom":
          if (current.type == "image" && (current.isLoaded || current.$ghost)) {
            if (instance.canPan()) {
              instance.scaleToFit();
            } else if (instance.isScaledDown()) {
              instance.scaleToActual(tapX, tapY);
            } else if (instance.group.length < 2) {
              instance.close(self.startEvent);
            }
          }

          break;
      }
    };

    // Ignore right click
    if (e.originalEvent && e.originalEvent.button == 2) {
      return;
    }

    // Skip if clicked on the scrollbar
    if (!$target.is("img") && tapX > $target[0].clientWidth + $target.offset().left) {
      return;
    }

    // Check where is clicked
    if ($target.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) {
      where = "Outside";
    } else if ($target.is(".fancybox-slide")) {
      where = "Slide";
    } else if (
      instance.current.$content &&
      instance.current.$content
      .find($target)
      .addBack()
      .filter($target).length
    ) {
      where = "Content";
    } else {
      return;
    }

    // Check if this is a double tap
    if (self.tapped) {
      // Stop previously created single tap
      clearTimeout(self.tapped);
      self.tapped = null;

      // Skip if distance between taps is too big
      if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {
        return this;
      }

      // OK, now we assume that this is a double-tap
      process("dblclick" + where);
    } else {
      // Single tap will be processed if user has not clicked second time within 300ms
      // or there is no need to wait for double-tap
      self.tapX = tapX;
      self.tapY = tapY;

      if (current.opts["dblclick" + where] && current.opts["dblclick" + where] !== current.opts["click" + where]) {
        self.tapped = setTimeout(function () {
          self.tapped = null;

          if (!instance.isAnimating) {
            process("click" + where);
          }
        }, 500);
      } else {
        process("click" + where);
      }
    }

    return this;
  };

  $(document)
    .on("onActivate.fb", function (e, instance) {
      if (instance && !instance.Guestures) {
        instance.Guestures = new Guestures(instance);
      }
    })
    .on("beforeClose.fb", function (e, instance) {
      if (instance && instance.Guestures) {
        instance.Guestures.destroy();
      }
    });
})(window, document, jQuery);
// ==========================================================================
//
// SlideShow
// Enables slideshow functionality
//
// Example of usage:
// $.fancybox.getInstance().SlideShow.start()
//
// ==========================================================================
(function (document, $) {
  "use strict";

  $.extend(true, $.fancybox.defaults, {
    btnTpl: {
      slideShow: '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}">' +
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg>' +
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg>' +
        "</button>"
    },
    slideShow: {
      autoStart: false,
      speed: 3000,
      progress: true
    }
  });

  var SlideShow = function (instance) {
    this.instance = instance;
    this.init();
  };

  $.extend(SlideShow.prototype, {
    timer: null,
    isActive: false,
    $button: null,

    init: function () {
      var self = this,
        instance = self.instance,
        opts = instance.group[instance.currIndex].opts.slideShow;

      self.$button = instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function () {
        self.toggle();
      });

      if (instance.group.length < 2 || !opts) {
        self.$button.hide();
      } else if (opts.progress) {
        self.$progress = $('<div class="fancybox-progress"></div>').appendTo(instance.$refs.inner);
      }
    },

    set: function (force) {
      var self = this,
        instance = self.instance,
        current = instance.current;

      // Check if reached last element
      if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {
        if (self.isActive && current.contentType !== "video") {
          if (self.$progress) {
            $.fancybox.animate(self.$progress.show(), {
              scaleX: 1
            }, current.opts.slideShow.speed);
          }

          self.timer = setTimeout(function () {
            if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {
              instance.jumpTo(0);
            } else {
              instance.next();
            }
          }, current.opts.slideShow.speed);
        }
      } else {
        self.stop();
        instance.idleSecondsCounter = 0;
        instance.showControls();
      }
    },

    clear: function () {
      var self = this;

      clearTimeout(self.timer);

      self.timer = null;

      if (self.$progress) {
        self.$progress.removeAttr("style").hide();
      }
    },

    start: function () {
      var self = this,
        current = self.instance.current;

      if (current) {
        self.$button
          .attr("title", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)
          .removeClass("fancybox-button--play")
          .addClass("fancybox-button--pause");

        self.isActive = true;

        if (current.isComplete) {
          self.set(true);
        }

        self.instance.trigger("onSlideShowChange", true);
      }
    },

    stop: function () {
      var self = this,
        current = self.instance.current;

      self.clear();

      self.$button
        .attr("title", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)
        .removeClass("fancybox-button--pause")
        .addClass("fancybox-button--play");

      self.isActive = false;

      self.instance.trigger("onSlideShowChange", false);

      if (self.$progress) {
        self.$progress.removeAttr("style").hide();
      }
    },

    toggle: function () {
      var self = this;

      if (self.isActive) {
        self.stop();
      } else {
        self.start();
      }
    }
  });

  $(document).on({
    "onInit.fb": function (e, instance) {
      if (instance && !instance.SlideShow) {
        instance.SlideShow = new SlideShow(instance);
      }
    },

    "beforeShow.fb": function (e, instance, current, firstRun) {
      var SlideShow = instance && instance.SlideShow;

      if (firstRun) {
        if (SlideShow && current.opts.slideShow.autoStart) {
          SlideShow.start();
        }
      } else if (SlideShow && SlideShow.isActive) {
        SlideShow.clear();
      }
    },

    "afterShow.fb": function (e, instance, current) {
      var SlideShow = instance && instance.SlideShow;

      if (SlideShow && SlideShow.isActive) {
        SlideShow.set();
      }
    },

    "afterKeydown.fb": function (e, instance, current, keypress, keycode) {
      var SlideShow = instance && instance.SlideShow;

      // "P" or Spacebar
      if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is("button,a,input")) {
        keypress.preventDefault();

        SlideShow.toggle();
      }
    },

    "beforeClose.fb onDeactivate.fb": function (e, instance) {
      var SlideShow = instance && instance.SlideShow;

      if (SlideShow) {
        SlideShow.stop();
      }
    }
  });

  // Page Visibility API to pause slideshow when window is not active
  $(document).on("visibilitychange", function () {
    var instance = $.fancybox.getInstance(),
      SlideShow = instance && instance.SlideShow;

    if (SlideShow && SlideShow.isActive) {
      if (document.hidden) {
        SlideShow.clear();
      } else {
        SlideShow.set();
      }
    }
  });
})(document, jQuery);
// ==========================================================================
//
// FullScreen
// Adds fullscreen functionality
//
// ==========================================================================
(function (document, $) {
  "use strict";

  // Collection of methods supported by user browser
  var fn = (function () {
    var fnMap = [
      ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
      // new WebKit
      [
        "webkitRequestFullscreen",
        "webkitExitFullscreen",
        "webkitFullscreenElement",
        "webkitFullscreenEnabled",
        "webkitfullscreenchange",
        "webkitfullscreenerror"
      ],
      // old WebKit (Safari 5.1)
      [
        "webkitRequestFullScreen",
        "webkitCancelFullScreen",
        "webkitCurrentFullScreenElement",
        "webkitCancelFullScreen",
        "webkitfullscreenchange",
        "webkitfullscreenerror"
      ],
      [
        "mozRequestFullScreen",
        "mozCancelFullScreen",
        "mozFullScreenElement",
        "mozFullScreenEnabled",
        "mozfullscreenchange",
        "mozfullscreenerror"
      ],
      ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
    ];

    var ret = {};

    for (var i = 0; i < fnMap.length; i++) {
      var val = fnMap[i];

      if (val && val[1] in document) {
        for (var j = 0; j < val.length; j++) {
          ret[fnMap[0][j]] = val[j];
        }

        return ret;
      }
    }

    return false;
  })();

  if (fn) {
    var FullScreen = {
      request: function (elem) {
        elem = elem || document.documentElement;

        elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);
      },
      exit: function () {
        document[fn.exitFullscreen]();
      },
      toggle: function (elem) {
        elem = elem || document.documentElement;

        if (this.isFullscreen()) {
          this.exit();
        } else {
          this.request(elem);
        }
      },
      isFullscreen: function () {
        return Boolean(document[fn.fullscreenElement]);
      },
      enabled: function () {
        return Boolean(document[fn.fullscreenEnabled]);
      }
    };

    $.extend(true, $.fancybox.defaults, {
      btnTpl: {
        fullScreen: '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}">' +
          '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg>' +
          '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg>' +
          "</button>"
      },
      fullScreen: {
        autoStart: false
      }
    });

    $(document).on(fn.fullscreenchange, function () {
      var isFullscreen = FullScreen.isFullscreen(),
        instance = $.fancybox.getInstance();

      if (instance) {
        // If image is zooming, then force to stop and reposition properly
        if (instance.current && instance.current.type === "image" && instance.isAnimating) {
          instance.isAnimating = false;

          instance.update(true, true, 0);

          if (!instance.isComplete) {
            instance.complete();
          }
        }

        instance.trigger("onFullscreenChange", isFullscreen);

        instance.$refs.container.toggleClass("fancybox-is-fullscreen", isFullscreen);

        instance.$refs.toolbar
          .find("[data-fancybox-fullscreen]")
          .toggleClass("fancybox-button--fsenter", !isFullscreen)
          .toggleClass("fancybox-button--fsexit", isFullscreen);
      }
    });
  }

  $(document).on({
    "onInit.fb": function (e, instance) {
      var $container;

      if (!fn) {
        instance.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();

        return;
      }

      if (instance && instance.group[instance.currIndex].opts.fullScreen) {
        $container = instance.$refs.container;

        $container.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function (e) {
          e.stopPropagation();
          e.preventDefault();

          FullScreen.toggle();
        });

        if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {
          FullScreen.request();
        }

        // Expose API
        instance.FullScreen = FullScreen;
      } else if (instance) {
        instance.$refs.toolbar.find("[data-fancybox-fullscreen]").hide();
      }
    },

    "afterKeydown.fb": function (e, instance, current, keypress, keycode) {
      // "F"
      if (instance && instance.FullScreen && keycode === 70) {
        keypress.preventDefault();

        instance.FullScreen.toggle();
      }
    },

    "beforeClose.fb": function (e, instance) {
      if (instance && instance.FullScreen && instance.$refs.container.hasClass("fancybox-is-fullscreen")) {
        FullScreen.exit();
      }
    }
  });
})(document, jQuery);
// ==========================================================================
//
// Thumbs
// Displays thumbnails in a grid
//
// ==========================================================================
(function (document, $) {
  "use strict";

  var CLASS = "fancybox-thumbs",
    CLASS_ACTIVE = CLASS + "-active";

  // Make sure there are default values
  $.fancybox.defaults = $.extend(
    true, {
      btnTpl: {
        thumbs: '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}">' +
          '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg>' +
          "</button>"
      },
      thumbs: {
        autoStart: false, // Display thumbnails on opening
        hideOnClose: true, // Hide thumbnail grid when closing animation starts
        parentEl: ".fancybox-container", // Container is injected into this element
        axis: "y" // Vertical (y) or horizontal (x) scrolling
      }
    },
    $.fancybox.defaults
  );

  var FancyThumbs = function (instance) {
    this.init(instance);
  };

  $.extend(FancyThumbs.prototype, {
    $button: null,
    $grid: null,
    $list: null,
    isVisible: false,
    isActive: false,

    init: function (instance) {
      var self = this,
        group = instance.group,
        enabled = 0;

      self.instance = instance;
      self.opts = group[instance.currIndex].opts.thumbs;

      instance.Thumbs = self;

      self.$button = instance.$refs.toolbar.find("[data-fancybox-thumbs]");

      // Enable thumbs if at least two group items have thumbnails
      for (var i = 0, len = group.length; i < len; i++) {
        if (group[i].thumb) {
          enabled++;
        }

        if (enabled > 1) {
          break;
        }
      }

      if (enabled > 1 && !!self.opts) {
        self.$button.removeAttr("style").on("click", function () {
          self.toggle();
        });

        self.isActive = true;
      } else {
        self.$button.hide();
      }
    },

    create: function () {
      var self = this,
        instance = self.instance,
        parentEl = self.opts.parentEl,
        list = [],
        src;

      if (!self.$grid) {
        // Create main element
        self.$grid = $('<div class="' + CLASS + " " + CLASS + "-" + self.opts.axis + '"></div>').appendTo(
          instance.$refs.container
          .find(parentEl)
          .addBack()
          .filter(parentEl)
        );

        // Add "click" event that performs gallery navigation
        self.$grid.on("click", "a", function () {
          instance.jumpTo($(this).attr("data-index"));
        });
      }

      // Build the list
      if (!self.$list) {
        self.$list = $('<div class="' + CLASS + '__list">').appendTo(self.$grid);
      }

      $.each(instance.group, function (i, item) {
        src = item.thumb;

        if (!src && item.type === "image") {
          src = item.src;
        }

        list.push(
          '<a href="javascript:;" tabindex="0" data-index="' +
          i +
          '"' +
          (src && src.length ? ' style="background-image:url(/themes/custom/boots/assets/css/%20%2B%20src%20%2B%20)"' : 'class="fancybox-thumbs-missing"') +
          "></a>"
        );
      });

      self.$list[0].innerHTML = list.join("");

      if (self.opts.axis === "x") {
        // Set fixed width for list element to enable horizontal scrolling
        self.$list.width(
          parseInt(self.$grid.css("padding-right"), 10) +
          instance.group.length *
          self.$list
          .children()
          .eq(0)
          .outerWidth(true)
        );
      }
    },

    focus: function (duration) {
      var self = this,
        $list = self.$list,
        $grid = self.$grid,
        thumb,
        thumbPos;

      if (!self.instance.current) {
        return;
      }

      thumb = $list
        .children()
        .removeClass(CLASS_ACTIVE)
        .filter('[data-index="' + self.instance.current.index + '"]')
        .addClass(CLASS_ACTIVE);

      thumbPos = thumb.position();

      // Check if need to scroll to make current thumb visible
      if (self.opts.axis === "y" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {
        $list.stop().animate({
            scrollTop: $list.scrollTop() + thumbPos.top
          },
          duration
        );
      } else if (
        self.opts.axis === "x" &&
        (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))
      ) {
        $list
          .parent()
          .stop()
          .animate({
              scrollLeft: thumbPos.left
            },
            duration
          );
      }
    },

    update: function () {
      var that = this;
      that.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible);

      if (that.isVisible) {
        if (!that.$grid) {
          that.create();
        }

        that.instance.trigger("onThumbsShow");

        that.focus(0);
      } else if (that.$grid) {
        that.instance.trigger("onThumbsHide");
      }

      // Update content position
      that.instance.update();
    },

    hide: function () {
      this.isVisible = false;
      this.update();
    },

    show: function () {
      this.isVisible = true;
      this.update();
    },

    toggle: function () {
      this.isVisible = !this.isVisible;
      this.update();
    }
  });

  $(document).on({
    "onInit.fb": function (e, instance) {
      var Thumbs;

      if (instance && !instance.Thumbs) {
        Thumbs = new FancyThumbs(instance);

        if (Thumbs.isActive && Thumbs.opts.autoStart === true) {
          Thumbs.show();
        }
      }
    },

    "beforeShow.fb": function (e, instance, item, firstRun) {
      var Thumbs = instance && instance.Thumbs;

      if (Thumbs && Thumbs.isVisible) {
        Thumbs.focus(firstRun ? 0 : 250);
      }
    },

    "afterKeydown.fb": function (e, instance, current, keypress, keycode) {
      var Thumbs = instance && instance.Thumbs;

      // "G"
      if (Thumbs && Thumbs.isActive && keycode === 71) {
        keypress.preventDefault();

        Thumbs.toggle();
      }
    },

    "beforeClose.fb": function (e, instance) {
      var Thumbs = instance && instance.Thumbs;

      if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {
        Thumbs.$grid.hide();
      }
    }
  });
})(document, jQuery);
//// ==========================================================================
//
// Share
// Displays simple form for sharing current url
//
// ==========================================================================
(function (document, $) {
  "use strict";

  $.extend(true, $.fancybox.defaults, {
    btnTpl: {
      share: '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}">' +
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg>' +
        "</button>"
    },
    share: {
      url: function (instance, item) {
        return (
          (!instance.currentHash && !(item.type === "inline" || item.type === "html") ? item.origSrc || item.src : false) || window.location
        );
      },
      tpl: '<div class="fancybox-share">' +
        "<h1>{{SHARE}}</h1>" +
        "<p>" +
        '<a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}">' +
        '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg>' +
        "<span>Facebook</span>" +
        "</a>" +
        '<a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}">' +
        '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg>' +
        "<span>Twitter</span>" +
        "</a>" +
        '<a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}">' +
        '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg>' +
        "<span>Pinterest</span>" +
        "</a>" +
        "</p>" +
        '<p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p>' +
        "</div>"
    }
  });

  function escapeHtml(string) {
    var entityMap = {
      "&": "&amp;",
      "<": "&lt;",
      ">": "&gt;",
      '"': "&quot;",
      "'": "&#39;",
      "/": "&#x2F;",
      "`": "&#x60;",
      "=": "&#x3D;"
    };

    return String(string).replace(/[&<>"'`=\/]/g,function (s){return entityMap[s];});}$(document).on("click","[data-fancybox-share]",function (){var instance = $.fancybox.getInstance(),current = instance.current || null,url,tpl;if (!current){return;}if ($.type(current.opts.share.url) === "function"){url = current.opts.share.url.apply(current,[instance,current]);}tpl = current.opts.share.tpl
      .replace(/\{\{media\}\}/g,current.type === "image" ? encodeURIComponent(current.src) :"")
      .replace(/\{\{url\}\}/g,encodeURIComponent(url))
      .replace(/\{\{url_raw\}\}/g,escapeHtml(url))
      .replace(/\{\{descr\}\}/g,instance.$caption ? encodeURIComponent(instance.$caption.text()) :"");$.fancybox.open({src:instance.translate(instance,tpl),type:"html",opts:{touch:false,animationEffect:false,afterLoad:function (shareInstance,shareCurrent){// Close self if parent instance is closing
          instance.$refs.container.one("beforeClose.fb",function (){shareInstance.close(null,0);});// Opening links in a popup window
          shareCurrent.$content.find(".fancybox-share__button").click(function (){window.open(this.href,"Share","width=550, height=450");return false;});},mobile:{autoFocus:false}}});});})(document,jQuery);// ==========================================================================
//
// Hash
// Enables linking to each modal
//
// ==========================================================================
(function (window,document,$){"use strict";// Simple $.escapeSelector polyfill (for jQuery prior v3)
  if (!$.escapeSelector){$.escapeSelector = function (sel){var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;var fcssescape = function (ch,asCodePoint){if (asCodePoint){// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
          if (ch === "\0"){return "\uFFFD";}// Control characters and (dependent upon position) numbers get escaped as code points
          return ch.slice(0,-1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " ";}// Other potentially-special ASCII characters get backslash-escaped
        return "\\" + ch;};return (sel + "").replace(rcssescape,fcssescape);};}// Get info about gallery name and current index from url
  function parseUrl(){var hash = window.location.hash.substr(1),rez = hash.split("-"),index = rez.length > 1 && /^\+?\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1),10) || 1 :1,gallery = rez.join("-");return{hash:hash,index:index < 1 ? 1 :index,gallery:gallery};}// Trigger click evnt on links to open new fancyBox instance
  function triggerFromurl(/themes/custom/boots/assets/css/url){if (url.gallery !== ""){// If we can find element matching 'data-fancybox' atribute,// then triggering click event should start fancyBox
      $("[data-fancybox='" + $.escapeSelector(url.gallery) + "']")
        .eq(url.index - 1)
        .focus()
        .trigger("click.fb-start");}}// Get gallery name from current instance
  function getGalleryID(instance){var opts,ret;if (!instance){return false;}opts = instance.current ? instance.current.opts :instance.opts;ret = opts.hash || (opts.$orig ? opts.$orig.data("fancybox") || opts.$orig.data("fancybox-trigger") :"");return ret === "" ? false :ret;}// Start when DOM becomes ready
  $(function (){// Check if user has disabled this module
    if ($.fancybox.defaults.hash === false){return;}// Update hash when opening/closing fancyBox
    $(document).on({"onInit.fb":function (e,instance){var url,gallery;if (instance.group[instance.currIndex].opts.hash === false){return;}url = parseUrl();gallery = getGalleryID(instance);// Make sure gallery start index matches index from hash
        if (gallery && url.gallery && gallery == url.gallery){instance.currIndex = url.index - 1;}},"beforeShow.fb":function (e,instance,current,firstRun){var gallery;if (!current || current.opts.hash === false){return;}// Check if need to update window hash
        gallery = getGalleryID(instance);if (!gallery){return;}// Variable containing last hash value set by fancyBox
        // It will be used to determine if fancyBox needs to close after hash change is detected
        instance.currentHash = gallery + (instance.group.length > 1 ? "-" + (current.index + 1) :"");// If current hash is the same (this instance most likely is opened by hashchange),then do nothing
        if (window.location.hash === "#" + instance.currentHash){return;}if (firstRun && !instance.origHash){instance.origHash = window.location.hash;}if (instance.hashTimer){clearTimeout(instance.hashTimer);}// Update hash
        instance.hashTimer = setTimeout(function (){if ("replaceState" in window.history){window.history[firstRun ? "pushState" :"replaceState"]({},document.title,window.location.pathname + window.location.search + "#" + instance.currentHash);if (firstRun){instance.hasCreatedHistory = true;}}else{window.location.hash = instance.currentHash;}instance.hashTimer = null;},300);},"beforeClose.fb":function (e,instance,current){if (!current || current.opts.hash === false){return;}clearTimeout(instance.hashTimer);// Goto previous history entry
        if (instance.currentHash && instance.hasCreatedHistory){window.history.back();}else if (instance.currentHash){if ("replaceState" in window.history){window.history.replaceState({},document.title,window.location.pathname + window.location.search + (instance.origHash || ""));}else{window.location.hash = instance.origHash;}}instance.currentHash = null;}});// Check if need to start/close after url has changed
    $(window).on("hashchange.fb",function (){var url = parseUrl(),fb = null;// Find last fancyBox instance that has "hash"
      $.each($(".fancybox-container")
        .get()
        .reverse(),function (index,value){var tmp = $(value).data("FancyBox");if (tmp && tmp.currentHash){fb = tmp;return false;}});if (fb){// Now,compare hash values
        if (fb.currentHash !== url.gallery + "-" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)){fb.currentHash = null;fb.close();}}else if (url.gallery !== ""){triggerFromurl(/themes/custom/boots/assets/css/url);}});// Check current hash and trigger click event on matching element to start fancyBox,if needed
    setTimeout(function (){if (!$.fancybox.getInstance()){triggerFromurl(/themes/custom/boots/assets/css/parseUrl%28));}},50);});})(window,document,jQuery);// ==========================================================================
//
// Wheel
// Basic mouse weheel support for gallery navigation
//
// ==========================================================================
(function (document,$){"use strict";var prevTime = new Date().getTime();$(document).on({"onInit.fb":function (e,instance,current){instance.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function (e){var current = instance.current,currTime = new Date().getTime();if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === "auto" && current.type !== "image")){return;}e.preventDefault();e.stopPropagation();if (current.$slide.hasClass("fancybox-animated")){return;}e = e.originalEvent || e;if (currTime - prevTime < 250){return;}prevTime = currTime;instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? "next" :"previous"]();});}});})(document,jQuery);}.call(this,__webpack_require__(23)))var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__;(function (root,factory){if (true){// AMD. Register as an anonymous module.
		!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports,__webpack_require__,exports,module)) :__WEBPACK_AMD_DEFINE_FACTORY__),__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));}else{}}(this,function (){"use strict";var ScrollMagic = function (){_util.log(2,'(COMPATIBILITY NOTICE) -> As of ScrollMagic 2.0.0 you need to use \'new ScrollMagic.Controller()\' to create a new controller instance. Use \'new ScrollMagic.Scene()\' to instance a scene.');};ScrollMagic.version = "2.0.8";// TODO:temporary workaround for chrome's scroll jitter bug
	if (typeof (window) !== 'undefined') {
		window.addEventListener("mousewheel", void(0));
	}

	// global const
	var PIN_SPACER_ATTRIBUTE = "data-scrollmagic-pin-spacer";

	/**
	 * The main class that is needed once per scroll container.
	 *
	 * @class
	 *
	 * @example
	 * // basic initialization
	 * var controller = new ScrollMagic.Controller();
	 *
	 * // passing options
	 * var controller = new ScrollMagic.Controller({container: "#myContainer", loglevel: 3});
	 *
	 * @param {object} [options] - An object containing one or more options for the controller.
	 * @param {(string|object)} [options.container=window] - A selector, DOM object that references the main container for scrolling.
	 * @param {boolean} [options.vertical=true] - Sets the scroll mode to vertical (`true`) or horizontal (`false`) scrolling.
	 * @param {object} [options.globalSceneOptions={}] - These options will be passed to every Scene that is added to the controller using the addScene method. For more information on Scene options see {@link ScrollMagic.Scene}.
	 * @param {number} [options.loglevel=2] Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.
											 ** `0` => silent
											 ** `1` => errors
											 ** `2` => errors, warnings
											 ** `3` => errors, warnings, debuginfo
	 * @param {boolean} [options.refreshInterval=100] - Some changes don't call events by default,like changing the container size or moving a scene trigger element.  
	 																										 This interval polls these parameters to fire the necessary events.  
	 																										 If you don't use custom containers, trigger elements or have static layouts, where the positions of the trigger elements don't change,you can set this to 0 disable interval checking and improve performance.
	 *
	 */
	ScrollMagic.Controller = function (options){var
			NAMESPACE = 'ScrollMagic.Controller',SCROLL_DIRECTION_FORWARD = 'FORWARD',SCROLL_DIRECTION_REVERSE = 'REVERSE',SCROLL_DIRECTION_PAUSED = 'PAUSED',DEFAULT_OPTIONS = CONTROLLER_OPTIONS.defaults;var
			Controller = this,_options = _util.extend({},DEFAULT_OPTIONS,options),_sceneObjects = [],_updateScenesOnNextCycle = false,// can be boolean (true => all scenes) or an array of scenes to be updated
			_scrollPos = 0,_scrollDirection = SCROLL_DIRECTION_PAUSED,_isDocument = true,_viewPortSize = 0,_enabled = true,_updateTimeout,_refreshTimeout;var construct = function (){for (var key in _options){if (!DEFAULT_OPTIONS.hasOwnProperty(key)){log(2,"WARNING: Unknown option \"" + key + "\"");delete _options[key];}}_options.container = _util.get.elements(_options.container)[0];// check ScrollContainer
			if (!_options.container){log(1,"ERROR creating object " + NAMESPACE + ": No valid scroll container supplied");throw NAMESPACE + " init failed.";// cancel}_isDocument = _options.container === window || _options.container === document.body || !document.body.contains(_options.container);// normalize to window
			if (_isDocument){_options.container = window;}// update container size immediately
			_viewPortSize = getViewportSize();// set event handlers
			_options.container.addEventListener("resize",onChange);_options.container.addEventListener("scroll",onChange);var ri = parseInt(_options.refreshInterval,10);_options.refreshInterval = _util.type.Number(ri) ? ri :DEFAULT_OPTIONS.refreshInterval;scheduleRefresh();log(3,"added new " + NAMESPACE + " controller (v" + ScrollMagic.version + ")");};var scheduleRefresh = function (){if (_options.refreshInterval > 0){_refreshTimeout = window.setTimeout(refresh,_options.refreshInterval);}};var getScrollPos = function (){return _options.vertical ? _util.get.scrollTop(_options.container) :_util.get.scrollLeft(_options.container);};var getViewportSize = function (){return _options.vertical ? _util.get.height(_options.container) :_util.get.width(_options.container);};var setScrollPos = this._setScrollPos = function (pos){if (_options.vertical){if (_isDocument){window.scrollTo(_util.get.scrollLeft(),pos);}else{_options.container.scrollTop = pos;}}else{if (_isDocument){window.scrollTo(pos,_util.get.scrollTop());}else{_options.container.scrollLeft = pos;}}};var updateScenes = function (){if (_enabled && _updateScenesOnNextCycle){// determine scenes to update
				var scenesToUpdate = _util.type.Array(_updateScenesOnNextCycle) ? _updateScenesOnNextCycle :_sceneObjects.slice(0);// reset scenes
				_updateScenesOnNextCycle = false;var oldScrollPos = _scrollPos;// update scroll pos now instead of onChange,as it might have changed since scheduling (i.e. in-browser smooth scroll)
				_scrollPos = Controller.scrollPos();var deltaScroll = _scrollPos - oldScrollPos;if (deltaScroll !== 0){// scroll position changed?
					_scrollDirection = (deltaScroll > 0) ? SCROLL_DIRECTION_FORWARD :SCROLL_DIRECTION_REVERSE;}// reverse order of scenes if scrolling reverse
				if (_scrollDirection === SCROLL_DIRECTION_REVERSE){scenesToUpdate.reverse();}// update scenes
				scenesToUpdate.forEach(function (scene,index){log(3,"updating Scene " + (index + 1) + "/" + scenesToUpdate.length + " (" + _sceneObjects.length + " total)");scene.update(true);});if (scenesToUpdate.length === 0 && _options.loglevel >= 3){log(3,"updating 0 Scenes (nothing added to controller)");}}};var debounceUpdate = function (){_updateTimeout = _util.rAF(updateScenes);};var onChange = function (e){log(3,"event fired causing an update:",e.type);if (e.type == "resize"){// resize
				_viewPortSize = getViewportSize();_scrollDirection = SCROLL_DIRECTION_PAUSED;}// schedule update
			if (_updateScenesOnNextCycle !== true){_updateScenesOnNextCycle = true;debounceUpdate();}};var refresh = function (){if (!_isDocument){// simulate resize event. Only works for viewport relevant param (performance)
				if (_viewPortSize != getViewportSize()){var resizeEvent;try{resizeEvent = new Event('resize',{bubbles:false,cancelable:false});}catch (e){// stupid IE
						resizeEvent = document.createEvent("Event");resizeEvent.initEvent("resize",false,false);}_options.container.dispatchEvent(resizeEvent);}}_sceneObjects.forEach(function (scene,index){// refresh all scenes
				scene.refresh();});scheduleRefresh();};var log = this._log = function (loglevel,output){if (_options.loglevel >= loglevel){Array.prototype.splice.call(arguments,1,0,"(" + NAMESPACE + ") ->");_util.log.apply(window,arguments);}};// for scenes we have getters for each option,but for the controller we don't, so we need to make it available externally for plugins
		this._options = _options;

		/**
		 * Sort scenes in ascending order of their start offset.
		 * @private
		 *
		 * @param {array} ScenesArray - an array of ScrollMagic Scenes that should be sorted
		 * @return {array} The sorted array of Scenes.
		 */
		var sortScenes = function (ScenesArray) {
			if (ScenesArray.length <= 1) {
				return ScenesArray;
			} else {
				var scenes = ScenesArray.slice(0);
				scenes.sort(function (a, b) {
					return a.scrollOffset() > b.scrollOffset() ? 1 : -1;
				});
				return scenes;
			}
		};

		/**
		 * ----------------------------------------------------------------
		 * public functions
		 * ----------------------------------------------------------------
		 */

		/**
		 * Add one ore more scene(s) to the controller.  
		 * This is the equivalent to `Scene.addTo(controller)`.
		 * @public
		 * @example
		 * // with a previously defined scene
		 * controller.addScene(scene);
		 *
		 * // with a newly created scene.
		 * controller.addScene(new ScrollMagic.Scene({duration : 0}));
		 *
		 * // adding multiple scenes
		 * controller.addScene([scene, scene2, new ScrollMagic.Scene({duration : 0})]);
		 *
		 * @param {(ScrollMagic.Scene|array)} newScene - ScrollMagic Scene or Array of Scenes to be added to the controller.
		 * @return {Controller} Parent object for chaining.
		 */
		this.addScene = function (newScene) {
			if (_util.type.Array(newScene)) {
				newScene.forEach(function (scene, index) {
					Controller.addScene(scene);
				});
			} else if (newScene instanceof ScrollMagic.Scene) {
				if (newScene.controller() !== Controller) {
					newScene.addTo(Controller);
				} else if (_sceneObjects.indexOf(newScene) < 0) {
					// new scene
					_sceneObjects.push(newScene); // add to array
					_sceneObjects = sortScenes(_sceneObjects); // sort
					newScene.on("shift.controller_sort", function () { // resort whenever scene moves
						_sceneObjects = sortScenes(_sceneObjects);
					});
					// insert Global defaults.
					for (var key in _options.globalSceneOptions) {
						if (newScene[key]) {
							newScene[key].call(newScene, _options.globalSceneOptions[key]);
						}
					}
					log(3, "adding Scene (now " + _sceneObjects.length + " total)");
				}
			} else {
				log(1, "ERROR: invalid argument supplied for '.addScene()'");
			}
			return Controller;
		};

		/**
		 * Remove one ore more scene(s) from the controller.  
		 * This is the equivalent to `Scene.remove()`.
		 * @public
		 * @example
		 * // remove a scene from the controller
		 * controller.removeScene(scene);
		 *
		 * // remove multiple scenes from the controller
		 * controller.removeScene([scene, scene2, scene3]);
		 *
		 * @param {(ScrollMagic.Scene|array)} Scene - ScrollMagic Scene or Array of Scenes to be removed from the controller.
		 * @returns {Controller} Parent object for chaining.
		 */
		this.removeScene = function (Scene) {
			if (_util.type.Array(Scene)) {
				Scene.forEach(function (scene, index) {
					Controller.removeScene(scene);
				});
			} else {
				var index = _sceneObjects.indexOf(Scene);
				if (index > -1) {
					Scene.off("shift.controller_sort");
					_sceneObjects.splice(index, 1);
					log(3, "removing Scene (now " + _sceneObjects.length + " left)");
					Scene.remove();
				}
			}
			return Controller;
		};

		/**
	 * Update one ore more scene(s) according to the scroll position of the container.  
	 * This is the equivalent to `Scene.update()`.  
	 * The update method calculates the scene's start and end position (based on the trigger element,trigger hook,duration and offset) and checks it against the current scroll position of the container.  
	 * It then updates the current scene state accordingly (or does nothing,if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress.  
	 * _**Note:** This method gets called constantly whenever Controller detects a change. The only application for you is if you change something outside of the realm of ScrollMagic,like moving the trigger or changing tween parameters._
	 *@public
	 *@example
	 * // update a specific scene on next cycle
 	 * controller.updateScene(scene);*
	 * // update a specific scene immediately
	 * controller.updateScene(scene,true);*
	 * // update multiple scenes scene on next cycle
	 * controller.updateScene([scene1,scene2,scene3]);*
	 *@param{ScrollMagic.Scene}Scene - ScrollMagic Scene or Array of Scenes that is/are supposed to be updated.
	 *@param{boolean}[immediately=false] - If `true` the update will be instant,if `false` it will wait until next update cycle.  
	 										  This is useful when changing multiple properties of the scene - this way it will only be updated once all new properties are set (updateScenes).
	 *@return{Controller}Parent object for chaining.
	 */
		this.updateScene = function (Scene,immediately){if (_util.type.Array(Scene)){Scene.forEach(function (scene,index){Controller.updateScene(scene,immediately);});}else{if (immediately){Scene.update(true);}else if (_updateScenesOnNextCycle !== true && Scene instanceof ScrollMagic.Scene){// if _updateScenesOnNextCycle is true,all connected scenes are already scheduled for update
					// prep array for next update cycle
					_updateScenesOnNextCycle = _updateScenesOnNextCycle || [];if (_updateScenesOnNextCycle.indexOf(Scene) == -1){_updateScenesOnNextCycle.push(Scene);}_updateScenesOnNextCycle = sortScenes(_updateScenesOnNextCycle);// sort
					debounceUpdate();}}return Controller;};this.update = function (immediately){onChange({type:"resize"});// will update size and set _updateScenesOnNextCycle to true
			if (immediately){updateScenes();}return Controller;};this.scrollTo = function (scrollTarget,additionalParameter){if (_util.type.Number(scrollTarget)){// excecute
				setScrollPos.call(_options.container,scrollTarget,additionalParameter);}else if (scrollTarget instanceof ScrollMagic.Scene){// scroll to scene
				if (scrollTarget.controller() === Controller){// check if the controller is associated with this scene
					Controller.scrollTo(scrollTarget.scrollOffset(),additionalParameter);}else{log(2,"scrollTo(): The supplied scene does not belong to this controller. Scroll cancelled.",scrollTarget);}}else if (_util.type.Function(scrollTarget)){// assign new scroll function
				setScrollPos = scrollTarget;}else{// scroll to element
				var elem = _util.get.elements(scrollTarget)[0];if (elem){// if parent is pin spacer,use spacer position instead so correct start position is returned for pinned elements.
					while (elem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)){elem = elem.parentNode;}var
						param = _options.vertical ? "top" :"left",// which param is of interest ?
						containerOffset = _util.get.offset(_options.container),// container position is needed because element offset is returned in relation to document,not in relation to container.
						elementOffset = _util.get.offset(elem);if (!_isDocument){// container is not the document root,so substract scroll Position to get correct trigger element position relative to scrollcontent
						containerOffset[param] -= Controller.scrollPos();}Controller.scrollTo(elementOffset[param] - containerOffset[param],additionalParameter);}else{log(2,"scrollTo(): The supplied argument is invalid. Scroll cancelled.",scrollTarget);}}return Controller;};this.scrollPos = function (scrollPosMethod){if (!arguments.length){// get
				return getScrollPos.call(Controller);}else{// set
				if (_util.type.Function(scrollPosMethod)){getScrollPos = scrollPosMethod;}else{log(2,"Provided value for method 'scrollPos' is not a function. To change the current scroll position use 'scrollTo()'.");}}return Controller;};this.info = function (about){var values ={size:_viewPortSize,// contains height or width (in regard to orientation);vertical:_options.vertical,scrollPos:_scrollPos,scrollDirection:_scrollDirection,container:_options.container,isDocument:_isDocument};if (!arguments.length){// get all as an object
				return values;}else if (values[about] !== undefined){return values[about];}else{log(1,"ERROR: option \"" + about + "\" is not available");return;}};this.loglevel = function (newLoglevel){if (!arguments.length){// get
				return _options.loglevel;}else if (_options.loglevel != newLoglevel){// set
				_options.loglevel = newLoglevel;}return Controller;};this.enabled = function (newState){if (!arguments.length){// get
				return _enabled;}else if (_enabled != newState){// set
				_enabled = !!newState;Controller.updateScene(_sceneObjects,true);}return Controller;};this.destroy = function (resetScenes){window.clearTimeout(_refreshTimeout);var i = _sceneObjects.length;while (i--){_sceneObjects[i].destroy(resetScenes);}_options.container.removeEventListener("resize",onChange);_options.container.removeEventListener("scroll",onChange);_util.cAF(_updateTimeout);log(3,"destroyed " + NAMESPACE + " (reset: " + (resetScenes ? "true" :"false") + ")");return null;};// INIT
		construct();return Controller;};// store pagewide controller options
	var CONTROLLER_OPTIONS ={defaults:{container:window,vertical:true,globalSceneOptions:{},loglevel:2,refreshInterval:100}};ScrollMagic.Controller.addOption = function (name,defaultValue){CONTROLLER_OPTIONS.defaults[name] = defaultValue;};// instance extension function for plugins
	ScrollMagic.Controller.extend = function (extension){var oldClass = this;ScrollMagic.Controller = function (){oldClass.apply(this,arguments);this.$super = _util.extend({},this);// copy parent state
			return extension.apply(this,arguments) || this;};_util.extend(ScrollMagic.Controller,oldClass);// copy properties
		ScrollMagic.Controller.prototype = oldClass.prototype;// copy prototype
		ScrollMagic.Controller.prototype.constructor = ScrollMagic.Controller;// restore constructor};ScrollMagic.Scene = function (options){var
			NAMESPACE = 'ScrollMagic.Scene',SCENE_STATE_BEFORE = 'BEFORE',SCENE_STATE_DURING = 'DURING',SCENE_STATE_AFTER = 'AFTER',DEFAULT_OPTIONS = SCENE_OPTIONS.defaults;var
			Scene = this,_options = _util.extend({},DEFAULT_OPTIONS,options),_state = SCENE_STATE_BEFORE,_progress = 0,_scrollOffset ={start:0,end:0},// reflects the controllers's scroll position for the start and end of the scene respectively
			_triggerPos = 0,
			_enabled = true,
			_durationUpdateMethod,
			_controller;

		/**
		 * Internal constructor function of the ScrollMagic Scene
		 * @private
		 */
		var construct = function () {
			for (var key in _options) { // check supplied options
				if (!DEFAULT_OPTIONS.hasOwnProperty(key)) {
					log(2, "WARNING: Unknown option \"" + key + "\"");
					delete _options[key];
				}
			}
			// add getters/setters for all possible options
			for (var optionName in DEFAULT_OPTIONS) {
				addSceneOption(optionName);
			}
			// validate all options
			validateOption();
		};

		/*
		 * ----------------------------------------------------------------
		 * Event Management
		 * ----------------------------------------------------------------
		 */

		var _listeners = {};
		/**
		 * Scene start event.  
		 * Fires whenever the scroll position its the starting point of the scene.  
		 * It will also fire when scrolling back up going over the start position of the scene. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.
		 *
		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
		 *
		 * @event ScrollMagic.Scene#start
		 *
		 * @example
		 * scene.on("start", function (event) {
		 * 	console.log("Hit start point of scene.");
		 * });
		 *
		 * @property {object} event - The event Object passed to each callback
		 * @property {string} event.type - The name of the event
		 * @property {Scene} event.target - The Scene object that triggered this event
		 * @property {number} event.progress - Reflects the current progress of the scene
		 * @property {string} event.state - The current state of the scene `"BEFORE"` or `"DURING"`
		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
		 */
		/**
		 * Scene end event.  
		 * Fires whenever the scroll position its the ending point of the scene.  
		 * It will also fire when scrolling back up from after the scene and going over its end position. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.
		 *
		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
		 *
		 * @event ScrollMagic.Scene#end
		 *
		 * @example
		 * scene.on("end", function (event) {
		 * 	console.log("Hit end point of scene.");
		 * });
		 *
		 * @property {object} event - The event Object passed to each callback
		 * @property {string} event.type - The name of the event
		 * @property {Scene} event.target - The Scene object that triggered this event
		 * @property {number} event.progress - Reflects the current progress of the scene
		 * @property {string} event.state - The current state of the scene `"DURING"` or `"AFTER"`
		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
		 */
		/**
		 * Scene enter event.  
		 * Fires whenever the scene enters the "DURING" state.  
		 * Keep in mind that it doesn't matter if the scene plays forward or backward:This event always fires when the scene enters its active scroll timeframe,regardless of the scroll-direction.
		 *
		 * For details on this event and the order in which it is fired,please review the{@link Scene.progress}method.
		 *
		 *@event ScrollMagic.Scene#enter
		 *
		 *@example
		 * scene.on("enter",function (event){* 	console.log("Scene entered.");*});*
		 *@property{object}event - The event Object passed to each callback
		 *@property{string}event.type - The name of the event
		 *@property{Scene}event.target - The Scene object that triggered this event
		 *@property{number}event.progress - Reflects the current progress of the scene
		 *@property{string}event.state - The current state of the scene - always `"DURING"`
		 *@property{string}event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`,`"FORWARD"` or `"REVERSE"`
		 */
		
		
		
		
		
		
		
		

		
		this.on = function (names,callback){if (_util.type.Function(callback)){names = names.trim().split(' ');names.forEach(function (fullname){var
						nameparts = fullname.split('.'),eventname = nameparts[0],namespace = nameparts[1];if (eventname != "*"){// disallow wildcards
						if (!_listeners[eventname]){_listeners[eventname] = [];}_listeners[eventname].push({namespace:namespace || '',callback:callback});}});}else{log(1,"ERROR when calling '.on()': Supplied callback for '" + names + "' is not a valid function!");}return Scene;};this.off = function (names,callback){if (!names){log(1,"ERROR: Invalid event name supplied.");return Scene;}names = names.trim().split(' ');names.forEach(function (fullname,key){var
					nameparts = fullname.split('.'),eventname = nameparts[0],namespace = nameparts[1] || '',removeList = eventname === '*' ? Object.keys(_listeners) :[eventname];removeList.forEach(function (remove){var
						list = _listeners[remove] || [],i = list.length;while (i--){var listener = list[i];if (listener && (namespace === listener.namespace || namespace === '*') && (!callback || callback == listener.callback)){list.splice(i,1);}}if (!list.length){delete _listeners[remove];}});});return Scene;};this.trigger = function (name,vars){if (name){var
					nameparts = name.trim().split('.'),eventname = nameparts[0],namespace = nameparts[1],listeners = _listeners[eventname];log(3,'event fired:',eventname,vars ? "->" :'',vars || '');if (listeners){listeners.forEach(function (listener,key){if (!namespace || namespace === listener.namespace){listener.callback.call(Scene,new ScrollMagic.Event(eventname,listener.namespace,Scene,vars));}});}}else{log(1,"ERROR: Invalid event name supplied.");}return Scene;};// set event listeners
		Scene
			.on("change.internal",function (e){if (e.what !== "loglevel" && e.what !== "tweenChanges"){// no need for a scene update scene with these options...
					if (e.what === "triggerElement"){updateTriggerElementPosition();}else if (e.what === "reverse"){// the only property left that may have an impact on the current scene state. Everything else is handled by the shift event.
						Scene.update();}}})
			.on("shift.internal",function (e){updateScrollOffset();Scene.update();// update scene to reflect new position});var log = this._log = function (loglevel,output){if (_options.loglevel >= loglevel){Array.prototype.splice.call(arguments,1,0,"(" + NAMESPACE + ") ->");_util.log.apply(window,arguments);}};this.addTo = function (controller){if (!(controller instanceof ScrollMagic.Controller)){log(1,"ERROR: supplied argument of 'addTo()' is not a valid ScrollMagic Controller");}else if (_controller != controller){// new controller
				if (_controller){// was associated to a different controller before,so remove it...
					_controller.removeScene(Scene);}_controller = controller;validateOption();updateDuration(true);updateTriggerElementPosition(true);updateScrollOffset();_controller.info("container").addEventListener('resize',onContainerResize);controller.addScene(Scene);Scene.trigger("add",{controller:_controller});log(3,"added " + NAMESPACE + " to controller");Scene.update();}return Scene;};this.enabled = function (newState){if (!arguments.length){// get
				return _enabled;}else if (_enabled != newState){// set
				_enabled = !!newState;Scene.update(true);}return Scene;};this.remove = function (){if (_controller){_controller.info("container").removeEventListener('resize',onContainerResize);var tmpParent = _controller;_controller = undefined;tmpParent.removeScene(Scene);Scene.trigger("remove");log(3,"removed " + NAMESPACE + " from controller");}return Scene;};this.destroy = function (reset){Scene.trigger("destroy",{reset:reset});Scene.remove();Scene.off("*.*");log(3,"destroyed " + NAMESPACE + " (reset: " + (reset ? "true" :"false") + ")");return null;};this.update = function (immediately){if (_controller){if (immediately){if (_controller.enabled() && _enabled){var
							scrollPos = _controller.info("scrollPos"),newProgress;if (_options.duration > 0){newProgress = (scrollPos - _scrollOffset.start) / (_scrollOffset.end - _scrollOffset.start);}else{newProgress = scrollPos >= _scrollOffset.start ? 1 :0;}Scene.trigger("update",{startPos:_scrollOffset.start,endPos:_scrollOffset.end,scrollPos:scrollPos});Scene.progress(newProgress);}else if (_pin && _state === SCENE_STATE_DURING){updatePinState(true);// unpin in position}}else{_controller.updateScene(Scene,false);}}return Scene;};this.refresh = function (){updateDuration();updateTriggerElementPosition();// update trigger element position
			return Scene;};this.progress = function (progress){if (!arguments.length){// get
				return _progress;}else{// set
				var
					doUpdate = false,oldState = _state,scrollDirection = _controller ? _controller.info("scrollDirection") :'PAUSED',reverseOrForward = _options.reverse || progress >= _progress;if (_options.duration === 0){// zero duration scenes
					doUpdate = _progress != progress;_progress = progress < 1 && reverseOrForward ? 0 :1;_state = _progress === 0 ? SCENE_STATE_BEFORE :SCENE_STATE_DURING;}else{// scenes with start and end
					if (progress < 0 && _state !== SCENE_STATE_BEFORE && reverseOrForward){// go back to initial state
						_progress = 0;_state = SCENE_STATE_BEFORE;doUpdate = true;}else if (progress >= 0 && progress < 1 && reverseOrForward){_progress = progress;_state = SCENE_STATE_DURING;doUpdate = true;}else if (progress >= 1 && _state !== SCENE_STATE_AFTER){_progress = 1;_state = SCENE_STATE_AFTER;doUpdate = true;}else if (_state === SCENE_STATE_DURING && !reverseOrForward){updatePinState();// in case we scrolled backwards mid-scene and reverse is disabled => update the pin position,so it doesn't move back as well.
					}
				}
				if (doUpdate) {
					// fire events
					var
						eventVars = {
							progress: _progress,
							state: _state,
							scrollDirection: scrollDirection
						},
						stateChanged = _state != oldState;

					var trigger = function (eventName) { // tmp helper to simplify code
						Scene.trigger(eventName, eventVars);
					};

					if (stateChanged) { // enter events
						if (oldState !== SCENE_STATE_DURING) {
							trigger("enter");
							trigger(oldState === SCENE_STATE_BEFORE ? "start" : "end");
						}
					}
					trigger("progress");
					if (stateChanged) { // leave events
						if (_state !== SCENE_STATE_DURING) {
							trigger(_state === SCENE_STATE_BEFORE ? "start" : "end");
							trigger("leave");
						}
					}
				}

				return Scene;
			}
		};


		/**
		 * Update the start and end scrollOffset of the container.
		 * The positions reflect what the controller's scroll position will be at the start and end respectively.
		 * Is called,when:*   - Scene event "change" is called with:offset,triggerHook,duration 
		 *   - scroll container event "resize" is called
		 *   - the position of the triggerElement changes
		 *   - the controller changes -> addTo()
		 *@private
		 */
		var updateScrollOffset = function (){_scrollOffset ={start:_triggerPos + _options.offset};if (_controller && _options.triggerElement){// take away triggerHook portion to get relative to top
				_scrollOffset.start -= _controller.info("size") * _options.triggerHook;}_scrollOffset.end = _scrollOffset.start + _options.duration;};var updateDuration = function (suppressEvents){// update duration
			if (_durationUpdateMethod){var varname = "duration";if (changeOption(varname,_durationUpdateMethod.call(Scene)) && !suppressEvents){// set
					Scene.trigger("change",{what:varname,newval:_options[varname]});Scene.trigger("shift",{reason:varname});}}};var updateTriggerElementPosition = function (suppressEvents){var
				elementPos = 0,telem = _options.triggerElement;if (_controller && (telem || _triggerPos > 0)){// either an element exists or was removed and the triggerPos is still > 0
				if (telem){// there currently a triggerElement set
					if (telem.parentNode){// check if element is still attached to DOM
						var
							controllerInfo = _controller.info(),containerOffset = _util.get.offset(controllerInfo.container),// container position is needed because element offset is returned in relation to document,not in relation to container.
							param = controllerInfo.vertical ? "top" :"left";// which param is of interest ?

						// if parent is spacer,use spacer position instead so correct start position is returned for pinned elements.
						while (telem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)){telem = telem.parentNode;}var elementOffset = _util.get.offset(telem);if (!controllerInfo.isDocument){// container is not the document root,so substract scroll Position to get correct trigger element position relative to scrollcontent
							containerOffset[param] -= _controller.scrollPos();}elementPos = elementOffset[param] - containerOffset[param];}else{// there was an element,but it was removed from DOM
						log(2,"WARNING: triggerElement was removed from DOM and will be reset to",undefined);Scene.triggerElement(undefined);// unset,so a change event is triggered}}var changed = elementPos != _triggerPos;_triggerPos = elementPos;if (changed && !suppressEvents){Scene.trigger("shift",{reason:"triggerElementPosition"});}}};var onContainerResize = function (e){if (_options.triggerHook > 0){Scene.trigger("shift",{reason:"containerResize"});}};var _validate = _util.extend(SCENE_OPTIONS.validate,{// validation for duration handled internally for reference to private var _durationMethod
			duration:function (val){if (_util.type.String(val) && val.match(/^(\.|\d)*\d+%$/)){// percentage value
					var perc = parseFloat(val) / 100;val = function (){return _controller ? _controller.info("size") * perc :0;};}if (_util.type.Function(val)){// function
					_durationUpdateMethod = val;try{val = parseFloat(_durationUpdateMethod.call(Scene));}catch (e){val = -1;// will cause error below}}// val has to be float
				val = parseFloat(val);if (!_util.type.Number(val) || val < 0){if (_durationUpdateMethod){_durationUpdateMethod = undefined;throw ["Invalid return value of supplied function for option \"duration\":",val];}else{throw ["Invalid value for option \"duration\":",val];}}return val;}});var validateOption = function (check){check = arguments.length ? [check] :Object.keys(_validate);check.forEach(function (optionName,key){var value;if (_validate[optionName]){// there is a validation method for this option
					try{// validate value
						value = _validate[optionName](_options[optionName]);}catch (e){// validation failed -> reset to default
						value = DEFAULT_OPTIONS[optionName];var logMSG = _util.type.String(e) ? [e] :e;if (_util.type.Array(logMSG)){logMSG[0] = "ERROR: " + logMSG[0];logMSG.unshift(1);// loglevel 1 for error msg
							log.apply(this,logMSG);}else{log(1,"ERROR: Problem executing validation callback for option '" + optionName + "':",e.message);}}finally{_options[optionName] = value;}}});};var changeOption = function (varname,newval){var
				changed = false,oldval = _options[varname];if (_options[varname] != newval){_options[varname] = newval;validateOption(varname);// resets to default if necessary
				changed = oldval != _options[varname];}return changed;};// generate getters/setters for all options
		var addSceneOption = function (optionName){if (!Scene[optionName]){Scene[optionName] = function (newVal){if (!arguments.length){// get
						return _options[optionName];}else{if (optionName === "duration"){// new duration is set,so any previously set function must be unset
							_durationUpdateMethod = undefined;}if (changeOption(optionName,newVal)){// set
							Scene.trigger("change",{what:optionName,newval:_options[optionName]});if (SCENE_OPTIONS.shifts.indexOf(optionName) > -1){Scene.trigger("shift",{reason:optionName});}}}return Scene;};}};this.controller = function (){return _controller;};this.state = function (){return _state;};this.scrollOffset = function (){return _scrollOffset.start;};this.triggerPosition = function (){var pos = _options.offset;// the offset is the basis
			if (_controller){// get the trigger position
				if (_options.triggerElement){// Element as trigger
					pos += _triggerPos;}else{// return the height of the triggerHook to start at the beginning
					pos += _controller.info("size") * Scene.triggerHook();}}return pos;};var
			_pin,_pinOptions;Scene
			.on("shift.internal",function (e){var durationChanged = e.reason === "duration";if ((_state === SCENE_STATE_AFTER && durationChanged) || (_state === SCENE_STATE_DURING && _options.duration === 0)){// if [duration changed after a scene (inside scene progress updates pin position)] or [duration is 0,we are in pin phase and some other value changed].
					updatePinState();}if (durationChanged){updatePinDimensions();}})
			.on("progress.internal",function (e){updatePinState();})
			.on("add.internal",function (e){updatePinDimensions();})
			.on("destroy.internal",function (e){Scene.removePin(e.reset);});var updatePinState = function (forceUnpin){if (_pin && _controller){var
					containerInfo = _controller.info(),pinTarget = _pinOptions.spacer.firstChild;// may be pin element or another spacer,if cascading pins

				if (!forceUnpin && _state === SCENE_STATE_DURING){// during scene or if duration is 0 and we are past the trigger
					// pinned state
					if (_util.css(pinTarget,"position") != "fixed"){// change state before updating pin spacer (position changes due to fixed collapsing might occur.)
						_util.css(pinTarget,{"position":"fixed"});// update pin spacer
						updatePinDimensions();}var
						fixedPos = _util.get.offset(_pinOptions.spacer,true),// get viewport position of spacer
						scrollDistance = _options.reverse || _options.duration === 0 ?
						containerInfo.scrollPos - _scrollOffset.start // quicker
						:Math.round(_progress * _options.duration * 10) / 10;// if no reverse and during pin the position needs to be recalculated using the progress

					// add scrollDistance
					fixedPos[containerInfo.vertical ? "top" :"left"] += scrollDistance;// set new values
					_util.css(_pinOptions.spacer.firstChild,{top:fixedPos.top,left:fixedPos.left});}else{// unpinned state
					var
						newCSS ={position:_pinOptions.inFlow ? "relative" :"absolute",top:0,left:0},change = _util.css(pinTarget,"position") != newCSS.position;if (!_pinOptions.pushFollowers){newCSS[containerInfo.vertical ? "top" :"left"] = _options.duration * _progress;}else if (_options.duration > 0){// only concerns scenes with duration
						if (_state === SCENE_STATE_AFTER && parseFloat(_util.css(_pinOptions.spacer,"padding-top")) === 0){change = true;// if in after state but havent updated spacer yet (jumped past pin)}else if (_state === SCENE_STATE_BEFORE && parseFloat(_util.css(_pinOptions.spacer,"padding-bottom")) === 0){// before
							change = true;// jumped past fixed state upward direction}}// set new values
					_util.css(pinTarget,newCSS);if (change){// update pin spacer if state changed
						updatePinDimensions();}}}};var updatePinDimensions = function (){if (_pin && _controller && _pinOptions.inFlow){// no spacerresize,if original position is absolute
				var
					after = (_state === SCENE_STATE_AFTER),before = (_state === SCENE_STATE_BEFORE),during = (_state === SCENE_STATE_DURING),vertical = _controller.info("vertical"),pinTarget = _pinOptions.spacer.firstChild,// usually the pined element but can also be another spacer (cascaded pins)
					marginCollapse = _util.isMarginCollapseType(_util.css(_pinOptions.spacer,"display")),css ={};// set new size
				// if relsize:spacer -> pin | else:pin -> spacer
				if (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth){if (during){_util.css(_pin,{"width":_util.get.width(_pinOptions.spacer)});}else{_util.css(_pin,{"width":"100%"});}}else{// minwidth is needed for cascaded pins.
					css["min-width"] = _util.get.width(vertical ? _pin :pinTarget,true,true);css.width = during ? css["min-width"] :"auto";}if (_pinOptions.relSize.height){if (during){// the only padding the spacer should ever include is the duration (if pushFollowers = true),so we need to substract that.
						_util.css(_pin,{"height":_util.get.height(_pinOptions.spacer) - (_pinOptions.pushFollowers ? _options.duration :0)});}else{_util.css(_pin,{"height":"100%"});}}else{// margin is only included if it's a cascaded pin to resolve an IE9 bug
					css["min-height"] = _util.get.height(vertical ? pinTarget : _pin, true, !marginCollapse); // needed for cascading pins
					css.height = during ? css["min-height"] : "auto";
				}

				// add space for duration if pushFollowers is true
				if (_pinOptions.pushFollowers) {
					css["padding" + (vertical ? "Top" : "Left")] = _options.duration * _progress;
					css["padding" + (vertical ? "Bottom" : "Right")] = _options.duration * (1 - _progress);
				}
				_util.css(_pinOptions.spacer, css);
			}
		};

		/**
		 * Updates the Pin state (in certain scenarios)
		 * If the controller container is not the document and we are mid-pin-phase scrolling or resizing the main document can result to wrong pin positions.
		 * So this function is called on resize and scroll of the document.
		 * @private
		 */
		var updatePinInContainer = function () {
			if (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info("isDocument")) {
				updatePinState();
			}
		};

		/**
		 * Updates the Pin spacer size state (in certain scenarios)
		 * If container is resized during pin and relatively sized the size of the pin might need to be updated...
		 * So this function is called on resize of the container.
		 * @private
		 */
		var updateRelativePinSpacer = function () {
			if (_controller && _pin && // well, duh
				_state === SCENE_STATE_DURING && // element in pinned state?
				( // is width or height relatively sized, but not in relation to body? then we need to recalc.
					((_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) && _util.get.width(window) != _util.get.width(_pinOptions.spacer.parentNode)) ||
					(_pinOptions.relSize.height && _util.get.height(window) != _util.get.height(_pinOptions.spacer.parentNode))
				)
			) {
				updatePinDimensions();
			}
		};

		/**
		 * Is called, when the mousewhel is used while over a pinned element inside a div container.
		 * If the scene is in fixed state scroll events would be counted towards the body. This forwards the event to the scroll container.
		 * @private
		 */
		var onMousewheelOverPin = function (e) {
			if (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info("isDocument")) { // in pin state
				e.preventDefault();
				_controller._setScrollPos(_controller.info("scrollPos") - ((e.wheelDelta || e[_controller.info("vertical") ? "wheelDeltaY" : "wheelDeltaX"]) / 3 || -e.detail * 30));
			}
		};

		/**
		 * Pin an element for the duration of the scene.
		 * If the scene duration is 0 the element will only be unpinned, if the user scrolls back past the start position.  
		 * Make sure only one pin is applied to an element at the same time.
		 * An element can be pinned multiple times, but only successively.
		 * _**NOTE:** The option `pushFollowers` has no effect, when the scene duration is 0._
		 * @method ScrollMagic.Scene#setPin
		 * @example
		 * // pin element and push all following elements down by the amount of the pin duration.
		 * scene.setPin("#pin");
		 *
		 * // pin element and keeping all following elements in their place. The pinned element will move past them.
		 * scene.setPin("#pin", {pushFollowers: false});
		 *
		 * @param {(string|object)} element - A Selector targeting an element or a DOM object that is supposed to be pinned.
		 * @param {object} [settings] - settings for the pin
		 * @param {boolean} [settings.pushFollowers=true] - If `true` following elements will be "pushed" down for the duration of the pin, if `false` the pinned element will just scroll past them.  
		 												   Ignored, when duration is `0`.
		 * @param {string} [settings.spacerClass="scrollmagic-pin-spacer"] - Classname of the pin spacer element, which is used to replace the element.
		 *
		 * @returns {Scene} Parent object for chaining.
		 */
		this.setPin = function (element, settings) {
			var
				defaultSettings = {
					pushFollowers: true,
					spacerClass: "scrollmagic-pin-spacer"
				};
			var pushFollowersActivelySet = settings && settings.hasOwnProperty('pushFollowers');
			settings = _util.extend({}, defaultSettings, settings);

			// validate Element
			element = _util.get.elements(element)[0];
			if (!element) {
				log(1, "ERROR calling method 'setPin()': Invalid pin element supplied.");
				return Scene; // cancel
			} else if (_util.css(element, "position") === "fixed") {
				log(1, "ERROR calling method 'setPin()': Pin does not work with elements that are positioned 'fixed'.");
				return Scene; // cancel
			}

			if (_pin) { // preexisting pin?
				if (_pin === element) {
					// same pin we already have -> do nothing
					return Scene; // cancel
				} else {
					// kill old pin
					Scene.removePin();
				}

			}
			_pin = element;

			var
				parentDisplay = _pin.parentNode.style.display,
				boundsParams = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"];

			_pin.parentNode.style.display = 'none'; // hack start to force css to return stylesheet values instead of calculated px values.
			var
				inFlow = _util.css(_pin, "position") != "absolute",
				pinCSS = _util.css(_pin, boundsParams.concat(["display"])),
				sizeCSS = _util.css(_pin, ["width", "height"]);
			_pin.parentNode.style.display = parentDisplay; // hack end.

			if (!inFlow && settings.pushFollowers) {
				log(2, "WARNING: If the pinned element is positioned absolutely pushFollowers will be disabled.");
				settings.pushFollowers = false;
			}
			window.setTimeout(function () { // wait until all finished, because with responsive duration it will only be set after scene is added to controller
				if (_pin && _options.duration === 0 && pushFollowersActivelySet && settings.pushFollowers) {
					log(2, "WARNING: pushFollowers =", true, "has no effect, when scene duration is 0.");
				}
			}, 0);

			// create spacer and insert
			var
				spacer = _pin.parentNode.insertBefore(document.createElement('div'), _pin),
				spacerCSS = _util.extend(pinCSS, {
					position: inFlow ? "relative" : "absolute",
					boxSizing: "content-box",
					mozBoxSizing: "content-box",
					webkitBoxSizing: "content-box"
				});

			if (!inFlow) { // copy size if positioned absolutely, to work for bottom/right positioned elements.
				_util.extend(spacerCSS, _util.css(_pin, ["width", "height"]));
			}

			_util.css(spacer, spacerCSS);
			spacer.setAttribute(PIN_SPACER_ATTRIBUTE, "");
			_util.addClass(spacer, settings.spacerClass);

			// set the pin Options
			_pinOptions = {
				spacer: spacer,
				relSize: { // save if size is defined using % values. if so, handle spacer resize differently...
					width: sizeCSS.width.slice(-1) === "%",
					height: sizeCSS.height.slice(-1) === "%",
					autoFullWidth: sizeCSS.width === "auto" && inFlow && _util.isMarginCollapseType(pinCSS.display)
				},
				pushFollowers: settings.pushFollowers,
				inFlow: inFlow, // stores if the element takes up space in the document flow
			};

			if (!_pin.___origStyle) {
				_pin.___origStyle = {};
				var
					pinInlineCSS = _pin.style,
					copyStyles = boundsParams.concat(["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"]);
				copyStyles.forEach(function (val) {
					_pin.___origStyle[val] = pinInlineCSS[val] || "";
				});
			}

			// if relative size, transfer it to spacer and make pin calculate it...
			if (_pinOptions.relSize.width) {
				_util.css(spacer, {
					width: sizeCSS.width
				});
			}
			if (_pinOptions.relSize.height) {
				_util.css(spacer, {
					height: sizeCSS.height
				});
			}

			// now place the pin element inside the spacer	
			spacer.appendChild(_pin);
			// and set new css
			_util.css(_pin, {
				position: inFlow ? "relative" : "absolute",
				margin: "auto",
				top: "auto",
				left: "auto",
				bottom: "auto",
				right: "auto"
			});

			if (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {
				_util.css(_pin, {
					boxSizing: "border-box",
					mozBoxSizing: "border-box",
					webkitBoxSizing: "border-box"
				});
			}

			// add listener to document to update pin position in case controller is not the document.
			window.addEventListener('scroll', updatePinInContainer);
			window.addEventListener('resize', updatePinInContainer);
			window.addEventListener('resize', updateRelativePinSpacer);
			// add mousewheel listener to catch scrolls over fixed elements
			_pin.addEventListener("mousewheel", onMousewheelOverPin);
			_pin.addEventListener("DOMMouseScroll", onMousewheelOverPin);

			log(3, "added pin");

			// finally update the pin to init
			updatePinState();

			return Scene;
		};

		/**
		 * Remove the pin from the scene.
		 * @method ScrollMagic.Scene#removePin
		 * @example
		 * // remove the pin from the scene without resetting it (the spacer is not removed)
		 * scene.removePin();
		 *
		 * // remove the pin from the scene and reset the pin element to its initial position (spacer is removed)
		 * scene.removePin(true);
		 *
		 * @param {boolean} [reset=false] - If `false` the spacer will not be removed and the element's position will not be reset.
		 *@returns{Scene}Parent object for chaining.
		 */
		this.removePin = function (reset){if (_pin){if (_state === SCENE_STATE_DURING){updatePinState(true);// force unpin at position}if (reset || !_controller){// if there's no controller no progress was made anyway...
					var pinTarget = _pinOptions.spacer.firstChild; // usually the pin element, but may be another spacer (cascaded pins)...
					if (pinTarget.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // copy margins to child spacer
						var
							style = _pinOptions.spacer.style,
							values = ["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"],
							margins = {};
						values.forEach(function (val) {
							margins[val] = style[val] || "";
						});
						_util.css(pinTarget, margins);
					}
					_pinOptions.spacer.parentNode.insertBefore(pinTarget, _pinOptions.spacer);
					_pinOptions.spacer.parentNode.removeChild(_pinOptions.spacer);
					if (!_pin.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // if it's the last pin for this element -> restore inline styles
						// TODO:only correctly set for first pin (when cascading) - how to fix?
						_util.css(_pin,_pin.___origStyle);delete _pin.___origStyle;}}window.removeEventListener('scroll',updatePinInContainer);window.removeEventListener('resize',updatePinInContainer);window.removeEventListener('resize',updateRelativePinSpacer);_pin.removeEventListener("mousewheel",onMousewheelOverPin);_pin.removeEventListener("DOMMouseScroll",onMousewheelOverPin);_pin = undefined;log(3,"removed pin (reset: " + (reset ? "true" :"false") + ")");}return Scene;};var
			_cssClasses,_cssClassElems = [];Scene
			.on("destroy.internal",function (e){Scene.removeClassToggle(e.reset);});this.setClassToggle = function (element,classes){var elems = _util.get.elements(element);if (elems.length === 0 || !_util.type.String(classes)){log(1,"ERROR calling method 'setClassToggle()': Invalid " + (elems.length === 0 ? "element" :"classes") + " supplied.");return Scene;}if (_cssClassElems.length > 0){// remove old ones
				Scene.removeClassToggle();}_cssClasses = classes;_cssClassElems = elems;Scene.on("enter.internal_class leave.internal_class",function (e){var toggle = e.type === "enter" ? _util.addClass :_util.removeClass;_cssClassElems.forEach(function (elem,key){toggle(elem,_cssClasses);});});return Scene;};this.removeClassToggle = function (reset){if (reset){_cssClassElems.forEach(function (elem,key){_util.removeClass(elem,_cssClasses);});}Scene.off("start.internal_class end.internal_class");_cssClasses = undefined;_cssClassElems = [];return Scene;};// INIT
		construct();return Scene;};// store pagewide scene options
	var SCENE_OPTIONS ={defaults:{duration:0,offset:0,triggerElement:undefined,triggerHook:0.5,reverse:true,loglevel:2},validate:{offset:function (val){val = parseFloat(val);if (!_util.type.Number(val)){throw ["Invalid value for option \"offset\":",val];}return val;},triggerElement:function (val){val = val || undefined;if (val){var elem = _util.get.elements(val)[0];if (elem && elem.parentNode){val = elem;}else{throw ["Element defined in option \"triggerElement\" was not found:",val];}}return val;},triggerHook:function (val){var translate ={"onCenter":0.5,"onEnter":1,"onLeave":0};if (_util.type.Number(val)){val = Math.max(0,Math.min(parseFloat(val),1));//  make sure its betweeen 0 and 1}else if (val in translate){val = translate[val];}else{throw ["Invalid value for option \"triggerHook\": ",val];}return val;},reverse:function (val){return !!val;// force boolean},loglevel:function (val){val = parseInt(val);if (!_util.type.Number(val) || val < 0 || val > 3){throw ["Invalid value for option \"loglevel\":",val];}return val;}},// holder for  validation methods. duration validation is handled in 'getters-setters.js'
		shifts:["duration","offset","triggerHook"],// list of options that trigger a `shift` event};ScrollMagic.Scene.addOption = function (name,defaultValue,validationCallback,shifts){if (!(name in SCENE_OPTIONS.defaults)){SCENE_OPTIONS.defaults[name] = defaultValue;SCENE_OPTIONS.validate[name] = validationCallback;if (shifts){SCENE_OPTIONS.shifts.push(name);}}else{ScrollMagic._util.log(1,"[static] ScrollMagic.Scene -> Cannot add Scene option '" + name + "', because it already exists.");}};// instance extension function for plugins
	// TODO:DOC (private for dev)
	ScrollMagic.Scene.extend = function (extension){var oldClass = this;ScrollMagic.Scene = function (){oldClass.apply(this,arguments);this.$super = _util.extend({},this);// copy parent state
			return extension.apply(this,arguments) || this;};_util.extend(ScrollMagic.Scene,oldClass);// copy properties
		ScrollMagic.Scene.prototype = oldClass.prototype;// copy prototype
		ScrollMagic.Scene.prototype.constructor = ScrollMagic.Scene;// restore constructor};ScrollMagic.Event = function (type,namespace,target,vars){vars = vars ||{};for (var key in vars){this[key] = vars[key];}this.type = type;this.target = this.currentTarget = target;this.namespace = namespace || '';this.timeStamp = this.timestamp = Date.now();return this;};var _util = ScrollMagic._util = (function (window){var U ={},i;// parse float and fall back to 0.
		var floatval = function (number){return parseFloat(number) || 0;};// get current style IE safe (otherwise IE would return calculated values for 'auto')
		var _getComputedStyle = function (elem){return elem.currentStyle ? elem.currentStyle :window.getComputedStyle(elem);};// get element dimension (width or height)
		var _dimension = function (which,elem,outer,includeMargin){elem = (elem === document) ? window :elem;if (elem === window){includeMargin = false;}else if (!_type.DomElement(elem)){return 0;}which = which.charAt(0).toUpperCase() + which.substr(1).toLowerCase();var dimension = (outer ? elem['offset' + which] || elem['outer' + which] :elem['client' + which] || elem['inner' + which]) || 0;if (outer && includeMargin){var style = _getComputedStyle(elem);dimension += which === 'Height' ? floatval(style.marginTop) + floatval(style.marginBottom) :floatval(style.marginLeft) + floatval(style.marginRight);}return dimension;};// converts 'margin-top' into 'marginTop'
		var _camelCase = function (str){return str.replace(/^[^a-z]+([a-z])/g,'$1').replace(/-([a-z])/g,function (g){return g[1].toUpperCase();});};// extend obj – same as jQuery.extend({},objA,objB)
		U.extend = function (obj){obj = obj ||{};for (i = 1;i < arguments.length;i++){if (!arguments[i]){continue;}for (var key in arguments[i]){if (arguments[i].hasOwnProperty(key)){obj[key] = arguments[i][key];}}}return obj;};// check if a css display type results in margin-collapse or not
		U.isMarginCollapseType = function (str){return ["block","flex","list-item","table","-webkit-box"].indexOf(str) > -1;};// implementation of requestAnimationFrame
		// based on https://gist.github.com/paulirish/1579671
		var
			lastTime = 0,vendors = ['ms','moz','webkit','o'];var _requestAnimationFrame = window.requestAnimationFrame;var _cancelAnimationFrame = window.cancelAnimationFrame;// try vendor prefixes if the above doesn't work
		for (i = 0; !_requestAnimationFrame && i < vendors.length; ++i) {
			_requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
			_cancelAnimationFrame = window[vendors[i] + 'CancelAnimationFrame'] || window[vendors[i] + 'CancelRequestAnimationFrame'];
		}

		// fallbacks
		if (!_requestAnimationFrame) {
			_requestAnimationFrame = function (callback) {
				var
					currTime = new Date().getTime(),
					timeToCall = Math.max(0, 16 - (currTime - lastTime)),
					id = window.setTimeout(function () {
						callback(currTime + timeToCall);
					}, timeToCall);
				lastTime = currTime + timeToCall;
				return id;
			};
		}
		if (!_cancelAnimationFrame) {
			_cancelAnimationFrame = function (id) {
				window.clearTimeout(id);
			};
		}
		U.rAF = _requestAnimationFrame.bind(window);
		U.cAF = _cancelAnimationFrame.bind(window);

		var
			loglevels = ["error", "warn", "log"],
			console = window.console || {};

		console.log = console.log || function () {}; // no console log, well - do nothing then...
		// make sure methods for all levels exist.
		for (i = 0; i < loglevels.length; i++) {
			var method = loglevels[i];
			if (!console[method]) {
				console[method] = console.log; // prefer .log over nothing
			}
		}
		U.log = function (loglevel) {
			if (loglevel > loglevels.length || loglevel <= 0) loglevel = loglevels.length;
			var now = new Date(),
				time = ("0" + now.getHours()).slice(-2) + ":" + ("0" + now.getMinutes()).slice(-2) + ":" + ("0" + now.getSeconds()).slice(-2) + ":" + ("00" + now.getMilliseconds()).slice(-3),
				method = loglevels[loglevel - 1],
				args = Array.prototype.splice.call(arguments, 1),
				func = Function.prototype.bind.call(console[method], console);
			args.unshift(time);
			func.apply(console, args);
		};

		/**
		 * ------------------------------
		 * type testing
		 * ------------------------------
		 */

		var _type = U.type = function (v) {
			return Object.prototype.toString.call(v).replace(/^\[object (.+)\]$/, "$1").toLowerCase();
		};
		_type.String = function (v) {
			return _type(v) === 'string';
		};
		_type.Function = function (v) {
			return _type(v) === 'function';
		};
		_type.Array = function (v) {
			return Array.isArray(v);
		};
		_type.Number = function (v) {
			return !_type.Array(v) && (v - parseFloat(v) + 1) >= 0;
		};
		_type.DomElement = function (o) {
			return (
				typeof HTMLElement === "object" || typeof HTMLElement === "function" ? o instanceof HTMLElement || o instanceof SVGElement : //DOM2
				o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string"
			);
		};

		/**
		 * ------------------------------
		 * DOM Element info
		 * ------------------------------
		 */
		// always returns a list of matching DOM elements, from a selector, a DOM element or an list of elements or even an array of selectors
		var _get = U.get = {};
		_get.elements = function (selector) {
			var arr = [];
			if (_type.String(selector)) {
				try {
					selector = document.querySelectorAll(selector);
				} catch (e) { // invalid selector
					return arr;
				}
			}
			if (_type(selector) === 'nodelist' || _type.Array(selector) || selector instanceof NodeList) {
				for (var i = 0, ref = arr.length = selector.length; i < ref; i++) { // list of elements
					var elem = selector[i];
					arr[i] = _type.DomElement(elem) ? elem : _get.elements(elem); // if not an element, try to resolve recursively
				}
			} else if (_type.DomElement(selector) || selector === document || selector === window) {
				arr = [selector]; // only the element
			}
			return arr;
		};
		// get scroll top value
		_get.scrollTop = function (elem) {
			return (elem && typeof elem.scrollTop === 'number') ? elem.scrollTop : window.pageYOffset || 0;
		};
		// get scroll left value
		_get.scrollLeft = function (elem) {
			return (elem && typeof elem.scrollLeft === 'number') ? elem.scrollLeft : window.pageXOffset || 0;
		};
		// get element height
		_get.width = function (elem, outer, includeMargin) {
			return _dimension('width', elem, outer, includeMargin);
		};
		// get element width
		_get.height = function (elem, outer, includeMargin) {
			return _dimension('height', elem, outer, includeMargin);
		};

		// get element position (optionally relative to viewport)
		_get.offset = function (elem, relativeToViewport) {
			var offset = {
				top: 0,
				left: 0
			};
			if (elem && elem.getBoundingClientRect) { // check if available
				var rect = elem.getBoundingClientRect();
				offset.top = rect.top;
				offset.left = rect.left;
				if (!relativeToViewport) { // clientRect is by default relative to viewport...
					offset.top += _get.scrollTop();
					offset.left += _get.scrollLeft();
				}
			}
			return offset;
		};

		/**
		 * ------------------------------
		 * DOM Element manipulation
		 * ------------------------------
		 */

		U.addClass = function (elem, classname) {
			if (classname) {
				if (elem.classList)
					elem.classList.add(classname);
				else
					elem.className += ' ' + classname;
			}
		};
		U.removeClass = function (elem, classname) {
			if (classname) {
				if (elem.classList)
					elem.classList.remove(classname);
				else
					elem.className = elem.className.replace(new RegExp('(^|\\b)' + classname.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
			}
		};
		// if options is string -> returns css value
		// if options is array -> returns object with css value pairs
		// if options is object -> set new css values
		U.css = function (elem, options) {
			if (_type.String(options)) {
				return _getComputedStyle(elem)[_camelCase(options)];
			} else if (_type.Array(options)) {
				var
					obj = {},
					style = _getComputedStyle(elem);
				options.forEach(function (option, key) {
					obj[option] = style[_camelCase(option)];
				});
				return obj;
			} else {
				for (var option in options) {
					var val = options[option];
					if (val == parseFloat(val)) { // assume pixel for seemingly numerical values
						val += 'px';
					}
					elem.style[_camelCase(option)] = val;
				}
			}
		};

		return U;
	}(window || {}));


	ScrollMagic.Scene.prototype.addIndicators = function () {
		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling addIndicators() due to missing Plugin \'debug.addIndicators\'. Please make sure to include plugins/debug.addIndicators.js');return this;}ScrollMagic.Scene.prototype.removeIndicators = function (){ScrollMagic._util.log(1,'(ScrollMagic.Scene) -> ERROR calling removeIndicators() due to missing Plugin \'debug.addIndicators\'. Please make sure to include plugins/debug.addIndicators.js');return this;}ScrollMagic.Scene.prototype.setTween = function (){ScrollMagic._util.log(1,'(ScrollMagic.Scene) -> ERROR calling setTween() due to missing Plugin \'animation.gsap\'. Please make sure to include plugins/animation.gsap.js');return this;}ScrollMagic.Scene.prototype.removeTween = function (){ScrollMagic._util.log(1,'(ScrollMagic.Scene) -> ERROR calling removeTween() due to missing Plugin \'animation.gsap\'. Please make sure to include plugins/animation.gsap.js');return this;}ScrollMagic.Scene.prototype.setVelocity = function (){ScrollMagic._util.log(1,'(ScrollMagic.Scene) -> ERROR calling setVelocity() due to missing Plugin \'animation.velocity\'. Please make sure to include plugins/animation.velocity.js');return this;}ScrollMagic.Scene.prototype.removeVelocity = function (){ScrollMagic._util.log(1,'(ScrollMagic.Scene) -> ERROR calling removeVelocity() due to missing Plugin \'animation.velocity\'. Please make sure to include plugins/animation.velocity.js');return this;}return ScrollMagic;}));var define = false;(function (root,factory){if (typeof define === 'function' && define.amd){// AMD. Register as an anonymous module.
		define(['ScrollMagic'],factory);}else if (true){// CommonJS
		factory(__webpack_require__(180));}else{}}(this,function (ScrollMagic){"use strict";var NAMESPACE = "debug.addIndicators";var
		console = window.console ||{},err = Function.prototype.bind.call(console.error || console.log || function (){},console);if (!ScrollMagic){err("(" + NAMESPACE + ") -> ERROR: The ScrollMagic main module could not be found. Please make sure it's loaded before this plugin or use an asynchronous loader like requirejs.");}// plugin settings
	var
		FONT_SIZE = "0.85em",ZINDEX = "9999",EDGE_OFFSET = 15;// minimum edge distance,added to indentation

	// overall vars
	var
		_util = ScrollMagic._util,_autoindex = 0;ScrollMagic.Scene.extend(function (){var
			Scene = this,_indicator;var log = function (){if (Scene._log){// not available,when main source minified
				Array.prototype.splice.call(arguments,1,0,"(" + NAMESPACE + ")","->");Scene._log.apply(this,arguments);}};Scene.addIndicators = function (options){if (!_indicator){var
					DEFAULT_OPTIONS ={name:"",indent:0,parent:undefined,colorStart:"green",colorEnd:"red",colorTrigger:"blue",};options = _util.extend({},DEFAULT_OPTIONS,options);_autoindex++;_indicator = new Indicator(Scene,options);Scene.on("add.plugin_addIndicators",_indicator.add);Scene.on("remove.plugin_addIndicators",_indicator.remove);Scene.on("destroy.plugin_addIndicators",Scene.removeIndicators);// it the scene already has a controller we can start right away.
				if (Scene.controller()){_indicator.add();}}return Scene;};Scene.removeIndicators = function (){if (_indicator){_indicator.remove();this.off("*.plugin_addIndicators");_indicator = undefined;}return Scene;};});// add option to globally auto-add indicators to scenes
	
	ScrollMagic.Controller.addOption("addIndicators",false);// extend Controller
	ScrollMagic.Controller.extend(function (){var
			Controller = this,_info = Controller.info(),_container = _info.container,_isDocument = _info.isDocument,_vertical = _info.vertical,_indicators ={// container for all indicators and methods
				groups:[]};var log = function (){if (Controller._log){// not available,when main source minified
				Array.prototype.splice.call(arguments,1,0,"(" + NAMESPACE + ")","->");Controller._log.apply(this,arguments);}};if (Controller._indicators){log(2,"WARNING: Scene already has a property '_indicators', which will be overwritten by plugin.");}// add indicators container
		this._indicators = _indicators;// event handler for when associated bounds markers need to be repositioned
		var handleBoundsPositionChange = function (){_indicators.updateBoundsPositions();};// event handler for when associated trigger groups need to be repositioned
		var handleTriggerPositionChange = function (){_indicators.updateTriggerGroupPositions();};_container.addEventListener("resize",handleTriggerPositionChange);if (!_isDocument){window.addEventListener("resize",handleTriggerPositionChange);window.addEventListener("scroll",handleTriggerPositionChange);}// update all related bounds containers
		_container.addEventListener("resize",handleBoundsPositionChange);_container.addEventListener("scroll",handleBoundsPositionChange);// updates the position of the bounds container to aligned to the right for vertical containers and to the bottom for horizontal
		this._indicators.updateBoundsPositions = function (specificIndicator){var // constant for all bounds
				groups = specificIndicator ? [_util.extend({},specificIndicator.triggerGroup,{members:[specificIndicator]})] :// create a group with only one element
				_indicators.groups,// use all
				g = groups.length,css ={},paramPos = _vertical ? "left" :"top",paramDimension = _vertical ? "width" :"height",edge = _vertical ?
				_util.get.scrollLeft(_container) + _util.get.width(_container) - EDGE_OFFSET :_util.get.scrollTop(_container) + _util.get.height(_container) - EDGE_OFFSET,b,triggerSize,group;while (g--){// group loop
				group = groups[g];b = group.members.length;triggerSize = _util.get[paramDimension](group.element.firstChild);while (b--){// indicators loop
					css[paramPos] = edge - triggerSize;_util.css(group.members[b].bounds,css);}}};// updates the positions of all trigger groups attached to a controller or a specific one,if provided
		this._indicators.updateTriggerGroupPositions = function (specificGroup){var // constant vars
				groups = specificGroup ? [specificGroup] :_indicators.groups,i = groups.length,container = _isDocument ? document.body :_container,containerOffset = _isDocument ?{top:0,left:0}:_util.get.offset(container,true),edge = _vertical ?
				_util.get.width(_container) - EDGE_OFFSET :_util.get.height(_container) - EDGE_OFFSET,paramDimension = _vertical ? "width" :"height",paramTransform = _vertical ? "Y" :"X";var // changing vars
				group,elem,pos,elemSize,transform;while (i--){group = groups[i];elem = group.element;pos = group.triggerHook * Controller.info("size");elemSize = _util.get[paramDimension](elem.firstChild.firstChild);transform = pos > elemSize ? "translate" + paramTransform + "(-100%)" :"";_util.css(elem,{top:containerOffset.top + (_vertical ? pos :edge - group.members[0].options.indent),left:containerOffset.left + (_vertical ? edge - group.members[0].options.indent :pos)});_util.css(elem.firstChild.firstChild,{"-ms-transform":transform,"-webkit-transform":transform,"transform":transform});}};// updates the label for the group to contain the name,if it only has one member
		this._indicators.updateTriggerGroupLabel = function (group){var
				text = "trigger" + (group.members.length > 1 ? "" :" " + group.members[0].options.name),elem = group.element.firstChild.firstChild,doUpdate = elem.textContent !== text;if (doUpdate){elem.textContent = text;if (_vertical){// bounds position is dependent on text length,so update
					_indicators.updateBoundsPositions();}}};// add indicators if global option is set
		this.addScene = function (newScene){if (this._options.addIndicators && newScene instanceof ScrollMagic.Scene && newScene.controller() === Controller){newScene.addIndicators();}// call original destroy method
			this.$super.addScene.apply(this,arguments);};// remove all previously set listeners on destroy
		this.destroy = function (){_container.removeEventListener("resize",handleTriggerPositionChange);if (!_isDocument){window.removeEventListener("resize",handleTriggerPositionChange);window.removeEventListener("scroll",handleTriggerPositionChange);}_container.removeEventListener("resize",handleBoundsPositionChange);_container.removeEventListener("scroll",handleBoundsPositionChange);// call original destroy method
			this.$super.destroy.apply(this,arguments);};return Controller;});var Indicator = function (Scene,options){var
			Indicator = this,_elemBounds = TPL.bounds(),_elemStart = TPL.start(options.colorStart),_elemEnd = TPL.end(options.colorEnd),_boundsContainer = options.parent && _util.get.elements(options.parent)[0],_vertical,_ctrl;var log = function (){if (Scene._log){// not available,when main source minified
				Array.prototype.splice.call(arguments,1,0,"(" + NAMESPACE + ")","->");Scene._log.apply(this,arguments);}};options.name = options.name || _autoindex;// prepare bounds elements
		_elemStart.firstChild.textContent += " " + options.name;_elemEnd.textContent += " " + options.name;_elemBounds.appendChild(_elemStart);_elemBounds.appendChild(_elemEnd);// set public variables
		Indicator.options = options;Indicator.bounds = _elemBounds;// will be set later
		Indicator.triggerGroup = undefined;// add indicators to DOM
		this.add = function (){_ctrl = Scene.controller();_vertical = _ctrl.info("vertical");var isDocument = _ctrl.info("isDocument");if (!_boundsContainer){// no parent supplied or doesnt exist
				_boundsContainer = isDocument ? document.body :_ctrl.info("container");// check if window/document (then use body)}if (!isDocument && _util.css(_boundsContainer,"position") === 'static'){// position mode needed for correct positioning of indicators
				_util.css(_boundsContainer,{position:"relative"});}// add listeners for updates
			Scene.on("change.plugin_addIndicators",handleTriggerParamsChange);Scene.on("shift.plugin_addIndicators",handleBoundsParamsChange);// updates trigger & bounds (will add elements if needed)
			updateTriggerGroup();updateBounds();setTimeout(function (){// do after all execution is finished otherwise sometimes size calculations are off
				_ctrl._indicators.updateBoundsPositions(Indicator);},0);log(3,"added indicators");};// remove indicators from DOM
		this.remove = function (){if (Indicator.triggerGroup){// if not set there's nothing to remove
				Scene.off("change.plugin_addIndicators", handleTriggerParamsChange);
				Scene.off("shift.plugin_addIndicators", handleBoundsParamsChange);

				if (Indicator.triggerGroup.members.length > 1) {
					// just remove from memberlist of old group
					var group = Indicator.triggerGroup;
					group.members.splice(group.members.indexOf(Indicator), 1);
					_ctrl._indicators.updateTriggerGroupLabel(group);
					_ctrl._indicators.updateTriggerGroupPositions(group);
					Indicator.triggerGroup = undefined;
				} else {
					// remove complete group
					removeTriggerGroup();
				}
				removeBounds();

				log(3, "removed indicators");
			}
		};

		/*
		 * ----------------------------------------------------------------
		 * internal Event Handlers
		 * ----------------------------------------------------------------
		 */

		// event handler for when bounds params change
		var handleBoundsParamsChange = function () {
			updateBounds();
		};

		// event handler for when trigger params change
		var handleTriggerParamsChange = function (e) {
			if (e.what === "triggerHook") {
				updateTriggerGroup();
			}
		};

		/*
		 * ----------------------------------------------------------------
		 * Bounds (start / stop) management
		 * ----------------------------------------------------------------
		 */

		// adds an new bounds elements to the array and to the DOM
		var addBounds = function () {
			var v = _ctrl.info("vertical");
			// apply stuff we didn't know before...
			_util.css(_elemStart.firstChild,{"border-bottom-width":v ? 1 :0,"border-right-width":v ? 0 :1,"bottom":v ? -1 :options.indent,"right":v ? options.indent :-1,"padding":v ? "0 8px" :"2px 4px",});_util.css(_elemEnd,{"border-top-width":v ? 1 :0,"border-left-width":v ? 0 :1,"top":v ? "100%" :"","right":v ? options.indent :"","bottom":v ? "" :options.indent,"left":v ? "" :"100%","padding":v ? "0 8px" :"2px 4px"});// append
			_boundsContainer.appendChild(_elemBounds);};// remove bounds from list and DOM
		var removeBounds = function (){_elemBounds.parentNode.removeChild(_elemBounds);};// update the start and end positions of the scene
		var updateBounds = function (){if (_elemBounds.parentNode !== _boundsContainer){addBounds();// Add Bounds elements (start/end)}var css ={};css[_vertical ? "top" :"left"] = Scene.triggerPosition();css[_vertical ? "height" :"width"] = Scene.duration();_util.css(_elemBounds,css);_util.css(_elemEnd,{display:Scene.duration() > 0 ? "" :"none"});};// adds an new trigger group to the array and to the DOM
		var addTriggerGroup = function (){var triggerElem = TPL.trigger(options.colorTrigger);// new trigger element
			var css ={};css[_vertical ? "right" :"bottom"] = 0;css[_vertical ? "border-top-width" :"border-left-width"] = 1;_util.css(triggerElem.firstChild,css);_util.css(triggerElem.firstChild.firstChild,{padding:_vertical ? "0 8px 3px 8px" :"3px 4px"});document.body.appendChild(triggerElem);// directly add to body
			var newGroup ={triggerHook:Scene.triggerHook(),element:triggerElem,members:[Indicator]};_ctrl._indicators.groups.push(newGroup);Indicator.triggerGroup = newGroup;// update right away
			_ctrl._indicators.updateTriggerGroupLabel(newGroup);_ctrl._indicators.updateTriggerGroupPositions(newGroup);};var removeTriggerGroup = function (){_ctrl._indicators.groups.splice(_ctrl._indicators.groups.indexOf(Indicator.triggerGroup),1);Indicator.triggerGroup.element.parentNode.removeChild(Indicator.triggerGroup.element);Indicator.triggerGroup = undefined;};// updates the trigger group -> either join existing or add new one
		
		var updateTriggerGroup = function (){var
				triggerHook = Scene.triggerHook(),closeEnough = 0.0001;// Have a group,check if it still matches
			if (Indicator.triggerGroup){if (Math.abs(Indicator.triggerGroup.triggerHook - triggerHook) < closeEnough){// _util.log(0,"trigger",options.name,"->","no need to change, still in sync");return;// all good}}// Don't have a group, check if a matching one exists
			// _util.log(0, "trigger", options.name, "->", "out of sync!");
			var
				groups = _ctrl._indicators.groups,
				group,
				i = groups.length;
			while (i--) {
				group = groups[i];
				if (Math.abs(group.triggerHook - triggerHook) < closeEnough) {
					// found a match!
					// _util.log(0, "trigger", options.name, "->", "found match");
					if (Indicator.triggerGroup) { // do I have an old group that is out of sync?
						if (Indicator.triggerGroup.members.length === 1) { // is it the only remaining group?
							// _util.log(0, "trigger", options.name, "->", "kill");
							// was the last member, remove the whole group
							removeTriggerGroup();
						} else {
							Indicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group
							_ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup);
							_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);
							// _util.log(0, "trigger", options.name, "->", "removing from previous member list");
						}
					}
					// join new group
					group.members.push(Indicator);
					Indicator.triggerGroup = group;
					_ctrl._indicators.updateTriggerGroupLabel(group);
					return;
				}
			}

			// at this point I am obviously out of sync and don't match any other group
			if (Indicator.triggerGroup){if (Indicator.triggerGroup.members.length === 1){// _util.log(0,"trigger",options.name,"->","updating existing");// out of sync but i'm the only member => just change and update
					Indicator.triggerGroup.triggerHook = triggerHook;
					_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);
					return;
				} else {
					// _util.log(0, "trigger", options.name, "->", "removing from previous member list");
					Indicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group
					_ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup);
					_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);
					Indicator.triggerGroup = undefined; // need a brand new group...
				}
			}
			// _util.log(0, "trigger", options.name, "->", "add a new one");
			// did not find any match, make new trigger group
			addTriggerGroup();
		};
	};

	/*
	 * ----------------------------------------------------------------
	 * Templates for the indicators
	 * ----------------------------------------------------------------
	 */
	var TPL = {
		start: function (color) {
			// inner element (for bottom offset -1, while keeping top position 0)
			var inner = document.createElement("div");
			inner.textContent = "start";
			_util.css(inner, {
				position: "absolute",
				overflow: "visible",
				"border-width": 0,
				"border-style": "solid",
				color: color,
				"border-color": color
			});
			var e = document.createElement('div');
			// wrapper
			_util.css(e, {
				position: "absolute",
				overflow: "visible",
				width: 0,
				height: 0
			});
			e.appendChild(inner);
			return e;
		},
		end: function (color) {
			var e = document.createElement('div');
			e.textContent = "end";
			_util.css(e, {
				position: "absolute",
				overflow: "visible",
				"border-width": 0,
				"border-style": "solid",
				color: color,
				"border-color": color
			});
			return e;
		},
		bounds: function () {
			var e = document.createElement('div');
			_util.css(e, {
				position: "absolute",
				overflow: "visible",
				"white-space": "nowrap",
				"pointer-events": "none",
				"font-size": FONT_SIZE
			});
			e.style.zIndex = ZINDEX;
			return e;
		},
		trigger: function (color) {
			// inner to be above or below line but keep position
			var inner = document.createElement('div');
			inner.textContent = "trigger";
			_util.css(inner, {
				position: "relative",
			});
			// inner wrapper for right: 0 and main element has no size
			var w = document.createElement('div');
			_util.css(w, {
				position: "absolute",
				overflow: "visible",
				"border-width": 0,
				"border-style": "solid",
				color: color,
				"border-color": color
			});
			w.appendChild(inner);
			// wrapper
			var e = document.createElement('div');
			_util.css(e, {
				position: "fixed",
				overflow: "visible",
				"white-space": "nowrap",
				"pointer-events": "none",
				"font-size": FONT_SIZE
			});
			e.style.zIndex = ZINDEX;
			e.appendChild(w);
			return e;
		},
	};

}));
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var masonry_layout_dist_masonry_pkgd_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(181);
/* harmony import */ var masonry_layout_dist_masonry_pkgd_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(masonry_layout_dist_masonry_pkgd_min__WEBPACK_IMPORTED_MODULE_0__);

if ($(window).width() > 992) {
  var msnry = new masonry_layout_dist_masonry_pkgd_min__WEBPACK_IMPORTED_MODULE_0__('.m-grid', {
    // options
    itemSelector: '.grid-item',
    columnWidth: '.grid-item',
    percentPosition: true,
    gutter: 20
  });
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)))var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_LOCAL_MODULE_1__, __WEBPACK_LOCAL_MODULE_1__factory, __WEBPACK_LOCAL_MODULE_1__module;var __WEBPACK_LOCAL_MODULE_2__, __WEBPACK_LOCAL_MODULE_2__factory, __WEBPACK_LOCAL_MODULE_2__module;var __WEBPACK_LOCAL_MODULE_3__, __WEBPACK_LOCAL_MODULE_3__factory, __WEBPACK_LOCAL_MODULE_3__module;var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_LOCAL_MODULE_4__;var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_LOCAL_MODULE_5__;var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_LOCAL_MODULE_6__;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 * Masonry PACKAGED v4.2.2
 * Cascading grid layout library
 * https://masonry.desandro.com
 * MIT License
 * by David DeSandro
 */

!function(t,e){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(23)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(i){return e(t,i)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){ true?!(__WEBPACK_LOCAL_MODULE_1__factory = (e), (__WEBPACK_LOCAL_MODULE_1__module = { id: "ev-emitter/ev-emitter", exports: {}, loaded: false }), __WEBPACK_LOCAL_MODULE_1__ = (typeof __WEBPACK_LOCAL_MODULE_1__factory === 'function' ? (__WEBPACK_LOCAL_MODULE_1__factory.call(__WEBPACK_LOCAL_MODULE_1__module.exports, __webpack_require__, __WEBPACK_LOCAL_MODULE_1__module.exports, __WEBPACK_LOCAL_MODULE_1__module)) : __WEBPACK_LOCAL_MODULE_1__factory), (__WEBPACK_LOCAL_MODULE_1__module.loaded = true), __WEBPACK_LOCAL_MODULE_1__ === undefined && (__WEBPACK_LOCAL_MODULE_1__ = __WEBPACK_LOCAL_MODULE_1__module.exports)):undefined}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){ true?!(__WEBPACK_LOCAL_MODULE_2__factory = (e), (__WEBPACK_LOCAL_MODULE_2__module = { id: "get-size/get-size", exports: {}, loaded: false }), __WEBPACK_LOCAL_MODULE_2__ = (typeof __WEBPACK_LOCAL_MODULE_2__factory === 'function' ? (__WEBPACK_LOCAL_MODULE_2__factory.call(__WEBPACK_LOCAL_MODULE_2__module.exports, __webpack_require__, __WEBPACK_LOCAL_MODULE_2__module.exports, __WEBPACK_LOCAL_MODULE_2__module)) : __WEBPACK_LOCAL_MODULE_2__factory), (__WEBPACK_LOCAL_MODULE_2__module.loaded = true), __WEBPACK_LOCAL_MODULE_2__ === undefined && (__WEBPACK_LOCAL_MODULE_2__ = __WEBPACK_LOCAL_MODULE_2__module.exports)):undefined}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict"; true?!(__WEBPACK_LOCAL_MODULE_3__factory = (e), (__WEBPACK_LOCAL_MODULE_3__module = { id: "desandro-matches-selector/matches-selector", exports: {}, loaded: false }), __WEBPACK_LOCAL_MODULE_3__ = (typeof __WEBPACK_LOCAL_MODULE_3__factory === 'function' ? (__WEBPACK_LOCAL_MODULE_3__factory.call(__WEBPACK_LOCAL_MODULE_3__module.exports, __webpack_require__, __WEBPACK_LOCAL_MODULE_3__module.exports, __WEBPACK_LOCAL_MODULE_3__module)) : __WEBPACK_LOCAL_MODULE_3__factory), (__WEBPACK_LOCAL_MODULE_3__module.loaded = true), __WEBPACK_LOCAL_MODULE_3__ === undefined && (__WEBPACK_LOCAL_MODULE_3__ = __WEBPACK_LOCAL_MODULE_3__module.exports)):undefined}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__WEBPACK_LOCAL_MODULE_3__], __WEBPACK_LOCAL_MODULE_4__ = ((function(i){return e(t,i)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__))):undefined}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__WEBPACK_LOCAL_MODULE_1__,__WEBPACK_LOCAL_MODULE_2__], __WEBPACK_AMD_DEFINE_FACTORY__ = (e),
				__WEBPACK_LOCAL_MODULE_5__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__)):undefined}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict"; true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__WEBPACK_LOCAL_MODULE_1__,__WEBPACK_LOCAL_MODULE_2__,__WEBPACK_LOCAL_MODULE_4__,__WEBPACK_LOCAL_MODULE_5__], __WEBPACK_LOCAL_MODULE_6__ = ((function(i,n,o,r){return e(t,i,n,o,r)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__))):undefined}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__WEBPACK_LOCAL_MODULE_6__,__WEBPACK_LOCAL_MODULE_2__], __WEBPACK_AMD_DEFINE_FACTORY__ = (e),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__)) :__WEBPACK_AMD_DEFINE_FACTORY__),__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
.navbar .form-inline .form-actions{display:none}.toolbar-oriented .toolbar-bar{z-index:1200}.toolbar-horizontal .toolbar-menu.nav{float:left}fieldset.card legend{font-size:1rem}.form-check{margin-bottom:1rem}.form-checkboxes .form-check,.form-radios .form-check{margin-bottom:0}.forum__last-reply{width:20%}.forum-list__forum{width:60%}.js-text-format-wrapper .js-form-type-textarea{margin-bottom:0;}#drupal-off-canvas{box-sizing:initial}
