@import url(https://fonts.googleapis.com/css?family=Barlow:300,400,400i,500,600,700&display=swap);
@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,300i,400,400i,500,700&display=swap);
@import url(https://fonts.googleapis.com/css?family=Crimson+Text:400,400i,600,700&display=swap);
@import url(https://fonts.googleapis.com/css?family=Lora:400,400i,700,700i&display=swap);

@charset "UTF-8";

@keyframes plyr-progress {
    to {
        background-position: 25px 0;
        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: inherit;
    font-family: var(--plyr-font-family, inherit);
    font-variant-numeric: tabular-nums;
    font-weight: 400;
    font-weight: var(--plyr-font-weight-regular, 400);
    line-height: 1.7;
    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: #4a5464;
    background: var(--plyr-badge-background, #4a5464);
    border-radius: 2px;
    border-radius: var(--plyr-badge-border-radius, 2px);
    color: #fff;
    color: var(--plyr-badge-text-color, #fff);
    font-size: 9px;
    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: 13px;
    font-size: var(--plyr-font-size-small, 13px);
    left: 0;
    padding: 10px;
    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: 15px;
        font-size: var(--plyr-font-size-base, 15px);
        padding: 20px;
        padding: calc(var(--plyr-control-spacing, 10px)*2)
    }
}

@media (min-width:768px) {
    .plyr__captions {
        font-size: 18px;
        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(-40px);
    transform: translateY(calc(var(--plyr-control-spacing, 10px)*-4))
}

.plyr__caption {
    background: rgba(0, 0, 0, .8);
    background: var(--plyr-captions-background, rgba(0, 0, 0, .8));
    border-radius: 2px;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    color: #fff;
    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: 3px;
    border-radius: var(--plyr-control-radius, 3px);
    color: inherit;
    cursor: pointer;
    flex-shrink: 0;
    overflow: visible;
    padding: 7px;
    padding: calc(var(--plyr-control-spacing, 10px)*0.7);
    position: relative;
    transition: all .3s ease
}

.plyr__control svg {
    fill: currentColor;
    display: block;
    height: 18px;
    height: var(--plyr-control-icon-size, 18px);
    pointer-events: none;
    width: 18px;
    width: var(--plyr-control-icon-size, 18px)
}

.plyr__control:focus {
    outline: 0
}

.plyr__control.plyr__tab-focus {
    outline: 3px dotted #00b2ff;
    outline: var(--plyr-tab-focus-color, var(--plyr-color-main, var(--plyr-color-main, #00b2ff))) dotted 3px;
    outline-offset: 2px
}

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: 2.5px;
    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: 2.5px;
    padding-left: calc(var(--plyr-control-spacing, 10px)/4)
}

.plyr__controls .plyr__controls__item.plyr__time {
    padding: 0 5px;
    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: hsla(0, 0%, 100%, .9);
    background: var(--plyr-menu-background, hsla(0, 0%, 100%, .9));
    border-radius: 4px;
    bottom: 100%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
    box-shadow: var(--plyr-menu-shadow, 0 1px 2px rgba(0, 0, 0, .15));
    color: #4a5464;
    color: var(--plyr-menu-color, #4a5464);
    font-size: 15px;
    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: 4px solid transparent;
    border-width: var(--plyr-menu-arrow-size, 4px);
    content: "";
    height: 0;
    position: absolute;
    right: 14px;
    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: 7px;
    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: #4a5464;
    color: var(--plyr-menu-color, #4a5464);
    display: flex;
    font-size: 13px;
    font-size: var(--plyr-font-size-menu, var(--plyr-font-size-small, 13px));
    padding: 4.66667px 10.5px;
    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;
    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: 4px solid transparent;
    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: 28px;
    padding-right: calc(var(--plyr-control-spacing, 10px)*0.7*4)
}

.plyr__menu__container .plyr__control--forward:after {
    border-left-color: #728197;
    border-left-color: var(--plyr-menu-arrow-color, #728197);
    right: 6.5px;
    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: 400;
    font-weight: var(--plyr-font-weight-regular, 400);
    margin: 7px;
    margin: calc(var(--plyr-control-spacing, 10px)*0.7);
    margin-bottom: 3.5px;
    margin-bottom: calc(var(--plyr-control-spacing, 10px)*0.7/2);
    padding-left: 28px;
    padding-left: calc(var(--plyr-control-spacing, 10px)*0.7*4);
    position: relative;
    width: calc(100% - 14px);
    width: calc(100% - var(--plyr-control-spacing, 10px)*0.7*2)
}

.plyr__menu__container .plyr__control--back:after {
    border-right-color: #728197;
    border-right-color: var(--plyr-menu-arrow-color, #728197);
    left: 6.5px;
    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: #dcdfe5;
    background: var(--plyr-menu-back-border-color, #dcdfe5);
    box-shadow: 0 1px 0 #fff;
    box-shadow: 0 1px 0 var(--plyr-menu-back-border-shadow-color, #fff);
    content: "";
    height: 1px;
    left: 0;
    margin-top: 3.5px;
    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: 7px;
    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: 10px;
    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: #00b2ff;
    background: var(--plyr-control-toggle-checked-background, var(--plyr-color-main, var(--plyr-color-main, #00b2ff)))
}

.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(-7px + 2);
    margin-right: calc(var(--plyr-control-spacing, 10px)*0.7*-1 + 2);
    overflow: hidden;
    padding-left: 24.5px;
    padding-left: calc(var(--plyr-control-spacing, 10px)*0.7*3.5);
    pointer-events: none
}

.plyr--full-ui input[type=range] {
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 26px;
    border-radius: calc(var(--plyr-range-thumb-height, 13px)*2);
    color: #00b2ff;
    color: var(--plyr-range-fill-background, var(--plyr-color-main, var(--plyr-color-main, #00b2ff)));
    display: block;
    height: 19px;
    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;
    background-image: linear-gradient(90deg, currentColor, transparent 0);
    background-image: linear-gradient(90deg, currentColor var(--value, 0), transparent var(--value, 0));
    border: 0;
    border-radius: 2.5px;
    border-radius: calc(var(--plyr-range-track-height, 5px)/2);
    height: 5px;
    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
}

.plyr--full-ui input[type=range]::-webkit-slider-thumb {
    appearance: none;
    background: #fff;
    background: var(--plyr-range-thumb-background, #fff);
    border: 0;
    border-radius: 100%;
    box-shadow: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2);
    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: 13px;
    height: var(--plyr-range-thumb-height, 13px);
    margin-top: -4px;
    margin-top: calc(var(--plyr-range-thumb-height, 13px)/2*-1 - var(--plyr-range-track-height, 5px)/2*-1);
    position: relative;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
    width: 13px;
    width: var(--plyr-range-thumb-height, 13px)
}

.plyr--full-ui input[type=range]::-moz-range-track {
    background: transparent;
    border: 0;
    border-radius: 2.5px;
    border-radius: calc(var(--plyr-range-track-height, 5px)/2);
    height: 5px;
    height: var(--plyr-range-track-height, 5px);
    -moz-transition: box-shadow .3s ease;
    transition: box-shadow .3s ease;
    user-select: none
}

.plyr--full-ui input[type=range]::-moz-range-thumb {
    background: #fff;
    background: var(--plyr-range-thumb-background, #fff);
    border: 0;
    border-radius: 100%;
    box-shadow: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2);
    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: 13px;
    height: var(--plyr-range-thumb-height, 13px);
    position: relative;
    -moz-transition: all .2s ease;
    transition: all .2s ease;
    width: 13px;
    width: var(--plyr-range-thumb-height, 13px)
}

.plyr--full-ui input[type=range]::-moz-range-progress {
    background: currentColor;
    border-radius: 2.5px;
    border-radius: calc(var(--plyr-range-track-height, 5px)/2);
    height: 5px;
    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: 2.5px;
    border-radius: calc(var(--plyr-range-track-height, 5px)/2);
    height: 5px;
    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;
    background: currentColor;
    border: 0;
    border-radius: 2.5px;
    border-radius: calc(var(--plyr-range-track-height, 5px)/2);
    height: 5px;
    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-thumb {
    background: #fff;
    background: var(--plyr-range-thumb-background, #fff);
    border: 0;
    border-radius: 100%;
    box-shadow: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2);
    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: 13px;
    height: var(--plyr-range-thumb-height, 13px);
    margin-top: 0;
    position: relative;
    -ms-transition: all .2s ease;
    transition: all .2s ease;
    width: 13px;
    width: var(--plyr-range-thumb-height, 13px)
}

.plyr--full-ui input[type=range]::-ms-tooltip {
    display: none
}

.plyr--full-ui input[type=range]::-moz-focus-outer {
    border: 0
}

.plyr--full-ui input[type=range]:focus {
    outline: 0
}

.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track {
    outline: 3px dotted #00b2ff;
    outline: var(--plyr-tab-focus-color, var(--plyr-color-main, var(--plyr-color-main, #00b2ff))) dotted 3px;
    outline-offset: 2px
}

.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track {
    outline: 3px dotted #00b2ff;
    outline: var(--plyr-tab-focus-color, var(--plyr-color-main, var(--plyr-color-main, #00b2ff))) dotted 3px;
    outline-offset: 2px
}

.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track {
    outline: 3px dotted #00b2ff;
    outline: var(--plyr-tab-focus-color, var(--plyr-color-main, var(--plyr-color-main, #00b2ff))) dotted 3px;
    outline-offset: 2px
}

.plyr__poster {
    background-color: #000;
    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: 13px;
    font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px))
}

.plyr__time+.plyr__time:before {
    content: "\2044";
    margin-right: 10px;
    margin-right: var(--plyr-control-spacing, 10px)
}

@media (max-width:767px) {
    .plyr__time+.plyr__time {
        display: none
    }
}

.plyr__tooltip {
    background: hsla(0, 0%, 100%, .9);
    background: var(--plyr-tooltip-background, hsla(0, 0%, 100%, .9));
    border-radius: 5px;
    border-radius: var(--plyr-tooltip-radius, 5px);
    bottom: 100%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
    box-shadow: var(--plyr-tooltip-shadow, 0 1px 2px rgba(0, 0, 0, .15));
    color: #4a5464;
    color: var(--plyr-tooltip-color, #4a5464);
    font-size: 13px;
    font-size: var(--plyr-font-size-small, 13px);
    font-weight: 400;
    font-weight: var(--plyr-font-weight-regular, 400);
    left: 50%;
    line-height: 1.3;
    margin-bottom: 10px;
    margin-bottom: calc(var(--plyr-control-spacing, 10px)/2*2);
    opacity: 0;
    padding: 5px 7.5px;
    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: 4px solid transparent;
    border-left: var(--plyr-tooltip-arrow-size, 4px) solid transparent;
    border-right: 4px solid transparent;
    border-right: var(--plyr-tooltip-arrow-size, 4px) solid transparent;
    border-top: 4px solid hsla(0, 0%, 100%, .9);
    border-top: var(--plyr-tooltip-arrow-size, 4px) solid var(--plyr-tooltip-background, hsla(0, 0%, 100%, .9));
    bottom: -4px;
    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: 16px;
    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: 16px;
    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: 6.5px;
    left: calc(var(--plyr-range-thumb-height, 13px)*0.5);
    margin-right: 13px;
    margin-right: var(--plyr-range-thumb-height, 13px);
    position: relative
}

.plyr__progress__buffer,
.plyr__progress input[type=range] {
    margin-left: -6.5px;
    margin-left: calc(var(--plyr-range-thumb-height, 13px)*-0.5);
    margin-right: -6.5px;
    margin-right: calc(var(--plyr-range-thumb-height, 13px)*-0.5);
    width: calc(100% + 13px);
    width: calc(100% + var(--plyr-range-thumb-height, 13px))
}

.plyr__progress input[type=range] {
    position: relative;
    z-index: 2
}

.plyr__progress .plyr__tooltip {
    left: 0;
    max-width: 120px;
    overflow-wrap: break-word;
    white-space: normal
}

.plyr__progress__buffer {
    -webkit-appearance: none;
    background: transparent;
    border: 0;
    border-radius: 100px;
    height: 5px;
    height: var(--plyr-range-track-height, 5px);
    left: 0;
    margin-top: -2.5px;
    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: 5px;
    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: 5px;
    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, rgba(35, 40, 47, .6) 25%, transparent 0, transparent 50%, rgba(35, 40, 47, .6) 0, rgba(35, 40, 47, .6) 75%, transparent 0, transparent);
    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: 25px 25px;
    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: hsla(0, 0%, 100%, .25);
    background-color: var(--plyr-video-progress-buffered-background, hsla(0, 0%, 100%, .25))
}

.plyr--audio.plyr--loading .plyr__progress__buffer {
    background-color: rgba(193, 200, 209, .6);
    background-color: var(--plyr-audio-progress-buffered-background, rgba(193, 200, 209, .6))
}

.plyr__progress__marker {
    background-color: #fff;
    background-color: var(--plyr-progress-marker-background, #fff);
    border-radius: 1px;
    height: 5px;
    height: var(--plyr-range-track-height, 5px);
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 3px;
    width: var(--plyr-progress-marker-width, 3px);
    z-index: 3
}

.plyr__volume {
    align-items: center;
    display: flex;
    max-width: 110px;
    min-width: 80px;
    position: relative;
    width: 20%
}

.plyr__volume input[type=range] {
    margin-left: 5px;
    margin-left: calc(var(--plyr-control-spacing, 10px)/2);
    margin-right: 5px;
    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: #fff;
    background: var(--plyr-audio-controls-background, #fff);
    border-radius: inherit;
    color: #4a5464;
    color: var(--plyr-audio-control-color, #4a5464);
    padding: 10px;
    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: #00b2ff;
    background: var(--plyr-audio-control-background-hover, var(--plyr-color-main, var(--plyr-color-main, #00b2ff)));
    color: #fff;
    color: var(--plyr-audio-control-color-hover, #fff)
}

.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track {
    background-color: rgba(193, 200, 209, .6);
    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: rgba(193, 200, 209, .6);
    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: rgba(193, 200, 209, .6);
    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: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2), 0 0 0 3px rgba(35, 40, 47, .1);
    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: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2), 0 0 0 3px rgba(35, 40, 47, .1);
    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: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2), 0 0 0 3px rgba(35, 40, 47, .1);
    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: rgba(193, 200, 209, .6);
    color: var(--plyr-audio-progress-buffered-background, rgba(193, 200, 209, .6))
}

.plyr--video {
    background: #000;
    background: var(--plyr-video-background, var(--plyr-video-background, #000));
    overflow: hidden
}

.plyr--video.plyr--menu-open {
    overflow: visible
}

.plyr__video-wrapper {
    background: #000;
    background: var(--plyr-video-background, var(--plyr-video-background, #000));
    height: 100%;
    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: linear-gradient(transparent, rgba(0, 0, 0, .75));
    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: #fff;
    color: var(--plyr-video-control-color, #fff);
    left: 0;
    padding: 5px;
    padding: calc(var(--plyr-control-spacing, 10px)/2);
    padding-top: 20px;
    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: 10px;
        padding: var(--plyr-control-spacing, 10px);
        padding-top: 35px;
        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: #00b2ff;
    background: var(--plyr-video-control-background-hover, var(--plyr-color-main, var(--plyr-color-main, #00b2ff)));
    color: #fff;
    color: var(--plyr-video-control-color-hover, #fff)
}

.plyr__control--overlaid {
    background: #00b2ff;
    background: var(--plyr-video-control-background-hover, var(--plyr-color-main, var(--plyr-color-main, #00b2ff)));
    border: 0;
    border-radius: 100%;
    color: #fff;
    color: var(--plyr-video-control-color, #fff);
    display: none;
    left: 50%;
    opacity: .9;
    padding: 15px;
    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: hsla(0, 0%, 100%, .25);
    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: hsla(0, 0%, 100%, .25);
    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: hsla(0, 0%, 100%, .25);
    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: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2), 0 0 0 3px hsla(0, 0%, 100%, .5);
    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: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2), 0 0 0 3px hsla(0, 0%, 100%, .5);
    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: 0 1px 1px rgba(35, 40, 47, .15), 0 0 0 1px rgba(35, 40, 47, .2), 0 0 0 3px hsla(0, 0%, 100%, .5);
    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: hsla(0, 0%, 100%, .25);
    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: 21px;
        font-size: var(--plyr-font-size-xlarge, 21px)
    }
}

.plyr--fullscreen-fallback {
    background: #000;
    border-radius: 0 !important;
    bottom: 0;
    display: block;
    height: 100%;
    left: 0;
    margin: 0;
    position: fixed;
    right: 0;
    top: 0;
    width: 100%;
    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: 21px;
        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: 10px;
    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: 10px;
    right: var(--plyr-control-spacing, 10px);
    z-index: 3
}

.plyr__ads:empty:after {
    display: none
}

.plyr__cues {
    background: currentColor;
    display: block;
    height: 5px;
    height: var(--plyr-range-track-height, 5px);
    left: 0;
    opacity: .8;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    z-index: 3
}

.plyr__preview-thumb {
    background-color: hsla(0, 0%, 100%, .9);
    background-color: var(--plyr-tooltip-background, hsla(0, 0%, 100%, .9));
    border-radius: 5px;
    border-radius: var(--plyr-tooltip-radius, 5px);
    bottom: 100%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
    box-shadow: var(--plyr-tooltip-shadow, 0 1px 2px rgba(0, 0, 0, .15));
    margin-bottom: 10px;
    margin-bottom: calc(var(--plyr-control-spacing, 10px)/2*2);
    opacity: 0;
    padding: 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: 4px solid transparent;
    border-left: var(--plyr-tooltip-arrow-size, 4px) solid transparent;
    border-right: 4px solid transparent;
    border-right: var(--plyr-tooltip-arrow-size, 4px) solid transparent;
    border-top: 4px solid hsla(0, 0%, 100%, .9);
    border-top: var(--plyr-tooltip-arrow-size, 4px) solid var(--plyr-tooltip-background, hsla(0, 0%, 100%, .9));
    bottom: -4px;
    bottom: calc(var(--plyr-tooltip-arrow-size, 4px)*-1);
    content: "";
    height: 0;
    left: calc(50% + var(--preview-arrow-offset));
    position: absolute;
    transform: translateX(-50%);
    width: 0;
    z-index: 2
}

.plyr__preview-thumb__image-container {
    background: #c1c8d1;
    border-radius: 4px;
    border-radius: calc(var(--plyr-tooltip-radius, 5px) - 1px);
    overflow: hidden;
    position: relative;
    z-index: 0
}

.plyr__preview-thumb__image-container:after,
.plyr__preview-thumb__image-container img {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.plyr__preview-thumb__image-container:after {
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15);
    content: "";
    pointer-events: none
}

.plyr__preview-thumb__image-container img {
    max-height: none;
    max-width: none
}

.plyr__preview-thumb__time-container {
    background: linear-gradient(transparent, rgba(0, 0, 0, .75));
    background: var(--plyr-video-controls-background, linear-gradient(transparent, rgba(0, 0, 0, .75)));
    border-bottom-left-radius: 4px;
    border-bottom-left-radius: calc(var(--plyr-tooltip-radius, 5px) - 1px);
    border-bottom-right-radius: 4px;
    border-bottom-right-radius: calc(var(--plyr-tooltip-radius, 5px) - 1px);
    bottom: 0;
    left: 0;
    line-height: 1.1;
    padding: 20px 6px 6px;
    position: absolute;
    right: 0;
    z-index: 3
}

.plyr__preview-thumb__time-container span {
    color: #fff;
    font-size: 13px;
    font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px))
}

.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;
    object-fit: contain;
    position: absolute;
    top: 0;
    width: 100%
}

.plyr--no-transition {
    transition: none !important
}

.plyr__sr-only {
    clip: rect(1px, 1px, 1px, 1px);
    border: 0 !important;
    height: 1px !important;
    overflow: hidden;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important
}

.plyr [hidden] {
    display: none !important
}

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)
    }
}

@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;
    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-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],
textarea.form-control {
    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
}

@font-face {
    font-family: swiper-icons;
    src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff");
    font-weight: 400;
    font-style: normal
}

:root {
    --swiper-theme-color: #007aff
}

.swiper-container {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1
}

.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-multirow-column>.swiper-wrapper {
    flex-wrap: wrap;
    flex-direction: column
}

.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-css-mode>.swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar {
    display: none
}

.swiper-container-css-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: start start
}

.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper {
    scroll-snap-type: x mandatory
}

.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper {
    scroll-snap-type: y mandatory
}

.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 linear infinite;
    box-sizing: border-box;
    border-radius: 50%;
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-top: 4px solid transparent
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    to {
        transform: rotate(1turn)
    }
}

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
    transition-timing-function: ease-out
}

.swiper-container-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity
}

.swiper-container-fade .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.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
}

* {
    outline: none !important
}

html {
    font-size: 10px
}

body {
    font-family: Barlow, sans-serif;
    font-size: 1.6rem;
    line-height: 1.5;
    font-weight: 400;
    color: #333
}

@media (max-width:767px) {
    body {
        font-size: 1.4rem
    }
}

h1,
h2,
h3,
h4,
h5 {
    line-height: inherit
}

h1,
h2,
h3,
h4,
h5,
label,
p {
    margin-bottom: 0
}

label {
    font-weight: 400
}

label:not(:last-child) {
    margin-bottom: 1rem
}

b,
strong {
    font-weight: 600
}

a {
    color: inherit;
    transition: all .2s ease-in-out
}

a:active,
a:focus,
a:hover {
    color: #e6332a;
    text-decoration: none
}

button {
    background-color: transparent;
    color: inherit;
    cursor: pointer;
    border: 0;
    transition: all .2s ease-in-out
}

dl,
ol,
ul {
    padding: 0;
    margin: 0;
    list-style: none;
    list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
}

blockquote {
    margin: 0
}

blockquote p {
    display: inline;
    margin: 0 !important
}

hr {
    border-color: inherit
}

.ico-none,
.soical-none {
    display: none
}

.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: -3rem
}

@media (max-width:767px) {
    .row-spacing {
        margin-bottom: -2.5rem
    }
}

.row-spacing [class*=" col-"],
.row-spacing [class^=col-] {
    margin-bottom: 3rem
}

@media (max-width:767px) {

    .row-spacing [class*=" col-"],
    .row-spacing [class^=col-] {
        margin-bottom: 2.5rem
    }
}

.section-spacing:not(:first-child) {
    margin-top: 7rem
}

.section-spacing:not(:last-child) {
    margin-bottom: 7rem
}

.content-rte .article__field-content-bottom:not(:first-child),
.content-rte .article__field-content:not(:first-child),
.content-rte .field__item:not(:first-child),
.field-spacing:not(:first-child) {
    margin-top: 5rem
}

.content-rte .article__field-content-bottom:not(:last-child),
.content-rte .article__field-content:not(:last-child),
.content-rte .field__item:not(:last-child),
.field-spacing:not(:last-child) {
    margin-bottom: 5rem
}

.n-order-1 {
    order: -1
}

@media (min-width:0) {
    .n-order-xs-1 {
        order: -1
    }
}

@media (min-width:576px) {
    .n-order-sm-1 {
        order: -1
    }
}

@media (min-width:768px) {
    .n-order-md-1 {
        order: -1
    }
}

@media (min-width:992px) {
    .n-order-lg-1 {
        order: -1
    }
}

@media (min-width:1200px) {
    .n-order-xl-1 {
        order: -1
    }
}

.n-order-2 {
    order: -2
}

@media (min-width:0) {
    .n-order-xs-2 {
        order: -2
    }
}

@media (min-width:576px) {
    .n-order-sm-2 {
        order: -2
    }
}

@media (min-width:768px) {
    .n-order-md-2 {
        order: -2
    }
}

@media (min-width:992px) {
    .n-order-lg-2 {
        order: -2
    }
}

@media (min-width:1200px) {
    .n-order-xl-2 {
        order: -2
    }
}

.n-order-3 {
    order: -3
}

@media (min-width:0) {
    .n-order-xs-3 {
        order: -3
    }
}

@media (min-width:576px) {
    .n-order-sm-3 {
        order: -3
    }
}

@media (min-width:768px) {
    .n-order-md-3 {
        order: -3
    }
}

@media (min-width:992px) {
    .n-order-lg-3 {
        order: -3
    }
}

@media (min-width:1200px) {
    .n-order-xl-3 {
        order: -3
    }
}

.n-order-4 {
    order: -4
}

@media (min-width:0) {
    .n-order-xs-4 {
        order: -4
    }
}

@media (min-width:576px) {
    .n-order-sm-4 {
        order: -4
    }
}

@media (min-width:768px) {
    .n-order-md-4 {
        order: -4
    }
}

@media (min-width:992px) {
    .n-order-lg-4 {
        order: -4
    }
}

@media (min-width:1200px) {
    .n-order-xl-4 {
        order: -4
    }
}

.n-order-5 {
    order: -5
}

@media (min-width:0) {
    .n-order-xs-5 {
        order: -5
    }
}

@media (min-width:576px) {
    .n-order-sm-5 {
        order: -5
    }
}

@media (min-width:768px) {
    .n-order-md-5 {
        order: -5
    }
}

@media (min-width:992px) {
    .n-order-lg-5 {
        order: -5
    }
}

@media (min-width:1200px) {
    .n-order-xl-5 {
        order: -5
    }
}

.n-order-6 {
    order: -6
}

@media (min-width:0) {
    .n-order-xs-6 {
        order: -6
    }
}

@media (min-width:576px) {
    .n-order-sm-6 {
        order: -6
    }
}

@media (min-width:768px) {
    .n-order-md-6 {
        order: -6
    }
}

@media (min-width:992px) {
    .n-order-lg-6 {
        order: -6
    }
}

@media (min-width:1200px) {
    .n-order-xl-6 {
        order: -6
    }
}

.n-order-7 {
    order: -7
}

@media (min-width:0) {
    .n-order-xs-7 {
        order: -7
    }
}

@media (min-width:576px) {
    .n-order-sm-7 {
        order: -7
    }
}

@media (min-width:768px) {
    .n-order-md-7 {
        order: -7
    }
}

@media (min-width:992px) {
    .n-order-lg-7 {
        order: -7
    }
}

@media (min-width:1200px) {
    .n-order-xl-7 {
        order: -7
    }
}

.n-order-8 {
    order: -8
}

@media (min-width:0) {
    .n-order-xs-8 {
        order: -8
    }
}

@media (min-width:576px) {
    .n-order-sm-8 {
        order: -8
    }
}

@media (min-width:768px) {
    .n-order-md-8 {
        order: -8
    }
}

@media (min-width:992px) {
    .n-order-lg-8 {
        order: -8
    }
}

@media (min-width:1200px) {
    .n-order-xl-8 {
        order: -8
    }
}

.n-order-9 {
    order: -9
}

@media (min-width:0) {
    .n-order-xs-9 {
        order: -9
    }
}

@media (min-width:576px) {
    .n-order-sm-9 {
        order: -9
    }
}

@media (min-width:768px) {
    .n-order-md-9 {
        order: -9
    }
}

@media (min-width:992px) {
    .n-order-lg-9 {
        order: -9
    }
}

@media (min-width:1200px) {
    .n-order-xl-9 {
        order: -9
    }
}

.n-order-10 {
    order: -10
}

@media (min-width:0) {
    .n-order-xs-10 {
        order: -10
    }
}

@media (min-width:576px) {
    .n-order-sm-10 {
        order: -10
    }
}

@media (min-width:768px) {
    .n-order-md-10 {
        order: -10
    }
}

@media (min-width:992px) {
    .n-order-lg-10 {
        order: -10
    }
}

@media (min-width:1200px) {
    .n-order-xl-10 {
        order: -10
    }
}

.n-order-11 {
    order: -11
}

@media (min-width:0) {
    .n-order-xs-11 {
        order: -11
    }
}

@media (min-width:576px) {
    .n-order-sm-11 {
        order: -11
    }
}

@media (min-width:768px) {
    .n-order-md-11 {
        order: -11
    }
}

@media (min-width:992px) {
    .n-order-lg-11 {
        order: -11
    }
}

@media (min-width:1200px) {
    .n-order-xl-11 {
        order: -11
    }
}

.n-order-12 {
    order: -12
}

@media (min-width:0) {
    .n-order-xs-12 {
        order: -12
    }
}

@media (min-width:576px) {
    .n-order-sm-12 {
        order: -12
    }
}

@media (min-width:768px) {
    .n-order-md-12 {
        order: -12
    }
}

@media (min-width:992px) {
    .n-order-lg-12 {
        order: -12
    }
}

@media (min-width:1200px) {
    .n-order-xl-12 {
        order: -12
    }
}

@media (min-width:0) {
    .flex-xs-break {
        width: 100%
    }
}

@media (min-width:576px) {
    .flex-sm-break {
        width: 100%
    }
}

@media (min-width:768px) {
    .flex-md-break {
        width: 100%
    }
}

@media (min-width:992px) {
    .flex-lg-break {
        width: 100%
    }
}

@media (min-width:1200px) {
    .flex-xl-break {
        width: 100%
    }
}

.color-primary {
    color: #1d2769
}

.color-secondary {
    color: #e6332a
}

.color-default {
    color: #fff
}

.color-basic {
    color: #000
}

.color-base {
    color: #666
}

.color-dark {
    color: #333
}

.color-light {
    color: #999
}

.color-semi {
    color: #4c4b4b
}

.color-demi {
    color: #7a7e80
}

.bgcolor-primary {
    background-color: #1d2769;
    color: #fff
}

.bgcolor-primary p {
    color: inherit
}

.bgcolor-secondary {
    background-color: #e6332a;
    color: #fff
}

.bgcolor-secondary p {
    color: inherit
}

.bgcolor-base {
    background-color: #edeef3;
    color: #000
}

.bgcolor-base p {
    color: inherit
}

.bgcolor-light {
    background-color: #f2f2f2;
    color: #000
}

.bgcolor-light p {
    color: inherit
}

.bgcolor-lighter {
    background-color: #fafafa;
    color: #000
}

.bgcolor-lighter p {
    color: inherit
}

.stroke-base {
    color: #e5e5e5 !important
}

.ff-primary {
    font-family: Barlow, sans-serif !important
}

.ff-secondary {
    font-family: Ubuntu, sans-serif !important
}

.ff-accent {
    font-family: Crimson Text, serif !important
}

.ff-cursive {
    font-family: Lora, serif !important
}

.fw-light {
    font-weight: 300 !important
}

.fw-regular {
    font-weight: 400 !important
}

.fw-medium {
    font-weight: 500 !important
}

.fw-semibold {
    font-weight: 600 !important
}

.fw-bold {
    font-weight: 700 !important
}

.fz-xs,
.thumbnail__legend {
    font-size: 75% !important
}

.c-students__discover,
.course__list p,
.fz-sm {
    font-size: 85% !important
}

.book__author,
.fz-lg {
    font-size: 120% !important
}

.tt-uppercase {
    text-transform: uppercase
}

.columns-2 {
    -moz-columns: 2;
    column-count: 2
}

@media (min-width:0) {
    .columns-xs-2 {
        -moz-columns: 2;
        column-count: 2
    }
}

@media (min-width:576px) {
    .columns-sm-2 {
        -moz-columns: 2;
        column-count: 2
    }
}

@media (min-width:768px) {
    .columns-md-2 {
        -moz-columns: 2;
        column-count: 2
    }
}

@media (min-width:992px) {
    .columns-lg-2 {
        -moz-columns: 2;
        column-count: 2
    }
}

@media (min-width:1200px) {
    .columns-xl-2 {
        -moz-columns: 2;
        column-count: 2
    }
}

.columns-3 {
    -moz-columns: 3;
    column-count: 3
}

@media (min-width:0) {
    .columns-xs-3 {
        -moz-columns: 3;
        column-count: 3
    }
}

@media (min-width:576px) {
    .columns-sm-3 {
        -moz-columns: 3;
        column-count: 3
    }
}

@media (min-width:768px) {
    .columns-md-3 {
        -moz-columns: 3;
        column-count: 3
    }
}

@media (min-width:992px) {
    .columns-lg-3 {
        -moz-columns: 3;
        column-count: 3
    }
}

@media (min-width:1200px) {
    .columns-xl-3 {
        -moz-columns: 3;
        column-count: 3
    }
}

.columns-4 {
    -moz-columns: 4;
    column-count: 4
}

@media (min-width:0) {
    .columns-xs-4 {
        -moz-columns: 4;
        column-count: 4
    }
}

@media (min-width:576px) {
    .columns-sm-4 {
        -moz-columns: 4;
        column-count: 4
    }
}

@media (min-width:768px) {
    .columns-md-4 {
        -moz-columns: 4;
        column-count: 4
    }
}

@media (min-width:992px) {
    .columns-lg-4 {
        -moz-columns: 4;
        column-count: 4
    }
}

@media (min-width:1200px) {
    .columns-xl-4 {
        -moz-columns: 4;
        column-count: 4
    }
}

.columns-5 {
    -moz-columns: 5;
    column-count: 5
}

@media (min-width:0) {
    .columns-xs-5 {
        -moz-columns: 5;
        column-count: 5
    }
}

@media (min-width:576px) {
    .columns-sm-5 {
        -moz-columns: 5;
        column-count: 5
    }
}

@media (min-width:768px) {
    .columns-md-5 {
        -moz-columns: 5;
        column-count: 5
    }
}

@media (min-width:992px) {
    .columns-lg-5 {
        -moz-columns: 5;
        column-count: 5
    }
}

@media (min-width:1200px) {
    .columns-xl-5 {
        -moz-columns: 5;
        column-count: 5
    }
}

.columns-6 {
    -moz-columns: 6;
    column-count: 6
}

@media (min-width:0) {
    .columns-xs-6 {
        -moz-columns: 6;
        column-count: 6
    }
}

@media (min-width:576px) {
    .columns-sm-6 {
        -moz-columns: 6;
        column-count: 6
    }
}

@media (min-width:768px) {
    .columns-md-6 {
        -moz-columns: 6;
        column-count: 6
    }
}

@media (min-width:992px) {
    .columns-lg-6 {
        -moz-columns: 6;
        column-count: 6
    }
}

@media (min-width:1200px) {
    .columns-xl-6 {
        -moz-columns: 6;
        column-count: 6
    }
}

.container {
    width: 100%;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
    margin-right: auto;
    margin-left: auto
}

@media (min-width:576px) {
    .container {
        max-width: 54rem
    }
}

@media (min-width:768px) {
    .container {
        max-width: 72rem
    }
}

@media (min-width:992px) {
    .container {
        max-width: 96rem
    }
}

@media (min-width:1200px) {
    .container {
        max-width: 114rem
    }
}

@media (min-width:992px) {
    .container--inset {
        max-width: 85rem
    }
}

@media (min-width:1200px) {
    .container--inset {
        max-width: 93rem
    }
}

.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl {
    width: 100%;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
    margin-right: auto;
    margin-left: auto
}

@media (max-width:991px) {
    .no-lg-scroll {
        position: relative;
        overflow: hidden
    }
}

.align-center {
    text-align: center
}

.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: 28px;
    height: 19px;
    display: inline-block;
    position: relative
}

.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -1.5px
}

.hamburger-inner,
.hamburger-inner:after,
.hamburger-inner:before {
    width: 28px;
    height: 3px;
    background-color: #12202f;
    border-radius: 4px;
    position: absolute;
    transition-property: transform;
    transition-duration: .15s;
    transition-timing-function: ease
}

.hamburger-inner:after,
.hamburger-inner:before {
    content: "";
    display: block
}

.hamburger-inner:before {
    top: -8px
}

.hamburger-inner:after {
    bottom: -8px
}

.hamburger--elastic .hamburger-inner {
    top: 1.5px;
    transition-duration: .4s;
    transition-timing-function: cubic-bezier(.68, -.55, .265, 1.55)
}

.hamburger--elastic .hamburger-inner:before {
    top: 8px;
    transition: opacity .15s ease .4s
}

.hamburger--elastic .hamburger-inner:after {
    top: 16px;
    transition: transform .4s cubic-bezier(.68, -.55, .265, 1.55)
}

.hamburger--elastic.is-active .hamburger-inner {
    transform: translateY(8px) rotate(135deg);
    transition-delay: .1s
}

.hamburger--elastic.is-active .hamburger-inner:before {
    transition-delay: 0s;
    opacity: 0
}

.hamburger--elastic.is-active .hamburger-inner:after {
    transform: translateY(-16px) rotate(-270deg);
    transition-delay: .1s
}

@font-face {
    font-family: icomoon;
    src: url(/themes/custom/boots/assets/fonts/icomoon/icomoon.woff2?1wk5k2=) format("woff2"), url(/themes/custom/boots/assets/fonts/icomoon/icomoon.woff?1wk5k2=) 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-alpha-bottom:before {
    content: "\E900"
}

.ico-arrow-alpha-left:before {
    content: "\E901"
}

.ico-arrow-alpha-right:before {
    content: "\E902"
}

.ico-arrow-alpha-top:before {
    content: "\E903"
}

.ico-arrow-corner-left:before {
    content: "\E904"
}

.ico-arrow-corner-right:before {
    content: "\E905"
}

.ico-balance:before {
    content: "\E906"
}

.ico-briefcase:before {
    content: "\E907"
}

.ico-calendar-clock:before {
    content: "\E908"
}

.ico-calendar:before {
    content: "\E909"
}

.ico-certificate:before {
    content: "\E90A"
}

.ico-chevron-alpha-bottom:before {
    content: "\E90B"
}

.ico-chevron-alpha-left:before {
    content: "\E90C"
}

.ico-chevron-alpha-right:before {
    content: "\E90D"
}

.ico-chevron-alpha-top:before {
    content: "\E90E"
}

.ico-clock:before {
    content: "\E90F"
}

.ico-close:before {
    content: "\E910"
}

.ico-cycle:before {
    content: "\E911"
}

.ico-download:before {
    content: "\E912"
}

.ico-education:before {
    content: "\E913"
}

.ico-envelope:before {
    content: "\E914"
}

.ico-facebook:before {
    content: "\E915"
}

.ico-globe:before {
    content: "\E916"
}

.ico-graduate:before {
    content: "\E917"
}

.ico-graduation-hat:before {
    content: "\E918"
}

.ico-handicap:before {
    content: "\E919"
}

.ico-info:before {
    content: "\E91A"
}

.ico-instagram:before {
    content: "\E91B"
}

.ico-key:before {
    content: "\E91C"
}

.ico-lab:before {
    content: "\E91D"
}

.ico-leaf:before {
    content: "\E91E"
}

.ico-library:before {
    content: "\E91F"
}

.ico-link:before {
    content: "\E920"
}

.ico-linkedin:before {
    content: "\E921"
}

.ico-lock:before {
    content: "\E922"
}

.ico-logo:before {
    content: "\E923"
}

.ico-marker-empty:before {
    content: "\E924"
}

.ico-marker:before {
    content: "\E925"
}

.ico-newspaper:before {
    content: "\E926"
}

.ico-no-vision:before {
    content: "\E927"
}

.ico-paperplane:before {
    content: "\E928"
}

.ico-phone-empty:before {
    content: "\E929"
}

.ico-phone:before {
    content: "\E92A"
}

.ico-phonebook:before {
    content: "\E92B"
}

.ico-play:before {
    content: "\E92C"
}

.ico-plus:before {
    content: "\E92D"
}

.ico-print:before {
    content: "\E92E"
}

.ico-quote-mark-down:before {
    content: "\E92F"
}

.ico-quote-mark-up:before {
    content: "\E930"
}

.ico-reset:before {
    content: "\E931"
}

.ico-rss:before {
    content: "\E932"
}

.ico-science:before {
    content: "\E933"
}

.ico-search:before {
    content: "\E934"
}

.ico-serve-globe:before {
    content: "\E935"
}

.ico-share:before {
    content: "\E936"
}

.ico-t-shirt:before {
    content: "\E937"
}

.ico-tags:before {
    content: "\E938"
}

.ico-twitter:before {
    content: "\E939"
}

.ico-user-circle:before {
    content: "\E93A"
}

.ico-user-search:before {
    content: "\E93B"
}

.ico-vision:before {
    content: "\E93C"
}

.ico-youtube:before {
    content: "\E93D"
}

.ico-copy:before {
    content: "\E93F"
}

.ico-bluesky:before {
    content: "\E94A"
}

.plyr--stopped .plyr__controls {
    opacity: 0;
    pointer-events: none;
    transform: translateY(100%)
}

.plyr--stopped .plyr__poster {
    background-size: cover !important
}

.plyr:not(.plyr--stopped) .plyr__poster {
    visibility: hidden;
    opacity: 0
}

.swiper-lazy {
    opacity: 0;
    transition: all .2s ease-in-out
}

.swiper-lazy-loaded {
    opacity: 1
}

.swiper-lazy-preloader {
    border: .4rem solid #999;
    border-top-color: transparent;
    z-index: -1
}

.swiper-button-disabled {
    opacity: .4
}

.h1,
.h2,
.h3,
.h4,
.h5,
h1,
h2,
h3,
h4,
h5 {
    font-family: Ubuntu, 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: 2.5rem
}

.h1,
h1 {
    font-size: 4rem;
    line-height: 4.6rem
}

@media (max-width:991px) {

    .h1,
    h1 {
        font-size: 2.8rem;
        line-height: 3.6rem
    }
}

.h2,
h2 {
    font-size: 2.4rem;
    line-height: 3rem
}

.h3,
h3 {
    font-size: 2rem;
    line-height: 2.6rem
}

.h4,
h4 {
    font-size: 1.6rem;
    line-height: 2.2rem
}

.h5,
h5 {
    font-size: 1.4rem;
    line-height: 2rem
}

.dash {
    position: relative;
    padding-bottom: 2rem
}

.dash:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    width: 3.5rem;
    border-bottom: .3rem solid #e6332a
}

.dash--center:before {
    left: 50%;
    transform: translate(-50%)
}

.dash--right:before {
    left: auto;
    right: 0
}

p {
    color: #666
}

p:not(:first-child) {
    margin-top: 2rem
}

p:not(:last-child) {
    margin-bottom: 2rem
}

p a {
    text-decoration: underline !important
}

label {
    font-family: Ubuntu, sans-serif;
    font-size: 1.4rem
}

.lead,
label {
    font-weight: 500
}

.lead {
    font-size: 120%
}

.caption {
    font-size: 1.4rem;
    color: #666
}

.accent,
.headline__entity {
    font-family: Crimson Text, serif;
    font-style: italic
}

.img-cover img {
    -o-object-fit: cover;
    object-fit: cover;
    font-family: "object-fit: cover;";
    height: 100%;
    width: 100%
}

.swiper-container .lazyload {
    display: none
}

.swiper-container .swiper-slide-active .lazyload,
.swiper-container .swiper-slide-visible .lazyload {
    display: block
}

.lazyload {
    opacity: 0
}

.lazyloading {
    opacity: 1;
    transition: opacity .3s;
    background-color: #fafafa;
    background-image: url(/themes/custom/boots/assets/images/loader.gif);
    background-position: 50%;
    background-repeat: no-repeat
}

.btn-alpha {
    background-color: #e6332a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: .1rem;
    min-height: 5rem;
    padding: 1rem;
    text-transform: uppercase;
    border: .2rem solid #e6332a;
    transition: all .2s ease-in-out
}

.btn-alpha__label {
    flex: 1 0;
    min-width: 14rem;
    text-align: center
}

.btn-alpha__label:not(:first-child) {
    padding-left: 1rem
}

.btn-alpha__label:not(:last-child) {
    padding-right: 1rem
}

.btn-alpha [class*=" ico-"],
.btn-alpha [class^=ico-] {
    font-size: 2.5rem
}

.btn-alpha.disbaled .btn-alpha__label,
.btn-alpha.disbaled [class*=" ico-"],
.btn-alpha.disbaled [class^=ico-],
.btn-alpha:disabled .btn-alpha__label,
.btn-alpha:disabled [class*=" ico-"],
.btn-alpha:disabled [class^=ico-] {
    opacity: .4
}

.btn-alpha:active,
.btn-alpha:focus,
.btn-alpha:hover {
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, .2)
}

.btn-alpha--lg {
    justify-content: center;
    min-width: 20rem
}

.btn-alpha--primary {
    background-color: #1d2769;
    color: #fff !important;
    border-color: #1d2769
}

.btn-alpha--secondary {
    background-color: #e6332a;
    color: #fff !important;
    border-color: #e6332a
}

.btn-alpha--default {
    background-color: #fff;
    color: #1d2769;
    border-color: #fff
}

.btn-alpha--default:active,
.btn-alpha--default:focus,
.btn-alpha--default:hover {
    color: #1d2769 !important;
    border-color: #e6332a !important
}

.btn-alpha--dark,
.layers__item--2 .btn-alpha,
.layers__item--3 .btn-alpha,
.layers__item--4 .btn-alpha {
    background-color: #000;
    color: #fff;
    border-color: #000
}

.btn-alpha--dark:active,
.btn-alpha--dark:focus,
.btn-alpha--dark:hover,
.layers__item--2 .btn-alpha:active,
.layers__item--2 .btn-alpha:focus,
.layers__item--2 .btn-alpha:hover,
.layers__item--3 .btn-alpha:active,
.layers__item--3 .btn-alpha:focus,
.layers__item--3 .btn-alpha:hover,
.layers__item--4 .btn-alpha:active,
.layers__item--4 .btn-alpha:focus,
.layers__item--4 .btn-alpha:hover {
    color: #fff !important;
    border-color: #fff !important
}

.btn-beta {
    position: relative;
    background-color: #000;
    display: inline-flex;
    align-items: center;
    color: #fff;
    padding: 2.3rem 6rem 2.3rem 2.8rem;
    border: .2rem solid #000;
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, .2)
}

.btn-beta:after {
    content: "\E90D";
    font-family: icomoon;
    position: absolute;
    top: 50%;
    right: 1.5rem;
    font-size: 1rem;
    line-height: 1rem;
    transform: translateY(-50%)
}

.btn-beta__label {
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .1rem;
    text-transform: uppercase;
    white-space: nowrap
}

.btn-beta [class*=" ico-"],
.btn-beta [class^=ico-] {
    font-size: 2.4rem;
    margin-right: 2rem
}

.btn-beta:active,
.btn-beta:focus,
.btn-beta:hover {
    color: #fff;
    border-color: #fff !important
}

.btn-beta--primary {
    background-color: #1d2769;
    color: #fff !important;
    border-color: #1d2769
}

.btn-beta--secondary {
    background-color: #e6332a;
    color: #fff !important;
    border-color: #e6332a
}

.btn-gamma {
    position: relative;
    display: inline-flex;
    text-transform: uppercase;
    z-index: 1
}

.btn-gamma__label {
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .1rem;
    padding: 1rem 1.5rem;
    white-space: nowrap
}

.btn-gamma__label:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    background-color: #e6332a;
    display: block;
    width: 0;
    height: 100%;
    z-index: -1;
    transition: all .2s ease-in-out
}

.btn-gamma [class*=" ico-"],
.btn-gamma [class^=ico-] {
    background-color: #e6332a;
    flex: 1 0 4rem;
    color: #fff;
    font-size: 1.6rem;
    line-height: 4rem;
    width: 4rem;
    height: 4rem;
    text-align: center;
    box-shadow: 0 .5rem 1rem 0 rgba(0, 0, 0, .1)
}

.btn-gamma [class*=" ico-"]+.btn-gamma__label:before,
.btn-gamma [class^=ico-]+.btn-gamma__label:before {
    left: 0;
    right: auto
}

.btn-gamma:active,
.btn-gamma:focus,
.btn-gamma:hover {
    color: #fff;
    box-shadow: 0 .5rem 1rem 0 rgba(0, 0, 0, .1)
}

.btn-gamma:active .btn-gamma__label:before,
.btn-gamma:focus .btn-gamma__label:before,
.btn-gamma:hover .btn-gamma__label:before {
    width: 100%
}

.btn-gamma:active [class*=" ico-"],
.btn-gamma:active [class^=ico-],
.btn-gamma:focus [class*=" ico-"],
.btn-gamma:focus [class^=ico-],
.btn-gamma:hover [class*=" ico-"],
.btn-gamma:hover [class^=ico-] {
    box-shadow: none
}

.btn-gamma--dark .btn-gamma__label:before,
.layers__item--2 .btn-gamma .btn-gamma__label:before,
.layers__item--3 .btn-gamma .btn-gamma__label:before,
.layers__item--4 .btn-gamma .btn-gamma__label:before {
    background-color: #000
}

.btn-gamma--dark [class*=" ico-"],
.btn-gamma--dark [class^=ico-],
.layers__item--2 .btn-gamma [class*=" ico-"],
.layers__item--2 .btn-gamma [class^=ico-],
.layers__item--3 .btn-gamma [class*=" ico-"],
.layers__item--3 .btn-gamma [class^=ico-],
.layers__item--4 .btn-gamma [class*=" ico-"],
.layers__item--4 .btn-gamma [class^=ico-] {
    background-color: #000;
    color: #fff
}

.btn-gamma--dark:active,
.btn-gamma--dark:focus,
.btn-gamma--dark:hover,
.layers__item--2 .btn-gamma:active,
.layers__item--2 .btn-gamma:focus,
.layers__item--2 .btn-gamma:hover,
.layers__item--3 .btn-gamma:active,
.layers__item--3 .btn-gamma:focus,
.layers__item--3 .btn-gamma:hover,
.layers__item--4 .btn-gamma:active,
.layers__item--4 .btn-gamma:focus,
.layers__item--4 .btn-gamma:hover {
    color: #fff !important
}

.link-ico {
    display: inline-flex;
    align-items: center;
    vertical-align: middle
}

.link-ico__label {
    flex: 1 0;
    font-size: 1.2rem;
    font-weight: 700;
    text-transform: uppercase
}

.link-ico__label:not(:first-child) {
    padding-left: 1rem
}

.link-ico__label:not(:last-child) {
    padding-right: 1rem
}

.link-ico [class*=" ico-"],
.link-ico [class^=ico-] {
    font-size: 3rem
}

.btn-filter {
    position: relative;
    display: block;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: .1rem;
    width: 100%;
    padding: 1.3rem 0
}

.btn-filter:after,
.btn-filter:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    transition: all .2s ease-in-out
}

.btn-filter:before {
    bottom: .1rem;
    width: 100%;
    border-bottom: .1rem solid #e5e5e5
}

.btn-filter:after {
    bottom: 0;
    width: 3rem;
    border-bottom: .3rem solid
}

.btn-filter.is-active:after,
.btn-filter:active:after,
.btn-filter:focus:after,
.btn-filter:hover:after {
    width: 100%
}

.btn-filter--primary:after {
    border-color: #1d2769
}

.btn-filter--primary:active,
.btn-filter--primary:focus,
.btn-filter--primary:hover {
    color: #1d2769 !important
}

.btn-filter--primary.is-active {
    color: #1d2769
}

.btn-filter--secondary:after {
    border-color: #e6332a
}

.btn-filter--secondary:active,
.btn-filter--secondary:focus,
.btn-filter--secondary:hover {
    color: #e6332a !important
}

.btn-filter--secondary.is-active {
    color: #e6332a
}

.btn-filter--2:after {
    border-color: #ffb500
}

.btn-filter--2:active,
.btn-filter--2:focus,
.btn-filter--2:hover {
    color: #ffb500 !important
}

.btn-filter--2.is-active {
    color: #ffb500
}

.btn-filter--3:after {
    border-color: #a6192e
}

.btn-filter--3:active,
.btn-filter--3:focus,
.btn-filter--3:hover {
    color: #a6192e !important
}

.btn-filter--3.is-active {
    color: #a6192e
}

.btn-filter--4:after {
    border-color: #56b7e6
}

.btn-filter--4:active,
.btn-filter--4:focus,
.btn-filter--4:hover {
    color: #56b7e6 !important
}

.btn-filter--4.is-active {
    color: #56b7e6
}

.btn-signature {
    font-family: Barlow, sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 2.28rem;
    letter-spacing: .015rem;
    display: flex;
    padding: 1rem 4rem 1rem 1rem;
    align-items: center;
    border: .1rem solid #000;
    margin-bottom: 2.4rem;
    position: relative
}

.btn-signature:after {
    content: "\E93F";
    font-family: icomoon;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    line-height: 1rem
}

.btn-signature:active,
.btn-signature:focus,
.btn-signature:hover {
    background: #1d2769;
    color: #fff
}

.fieldset {
    background-color: #fafafa;
    padding: 4rem 3rem;
    margin: 0 -3rem
}

button.form-control,
input.form-control,
textarea.form-control {
    background-color: transparent;
    background-image: none !important;
    font-size: inherit;
    color: #666;
    width: 100%;
    padding: .6rem 1.5rem;
    border: .1rem solid #e5e5e5;
    border-radius: 0;
    box-shadow: none !important;
    resize: none
}

button.form-control::-webkit-input-placeholder,
input.form-control::-webkit-input-placeholder,
textarea.form-control::-webkit-input-placeholder {
    color: #666
}

button.form-control::-moz-placeholder,
input.form-control::-moz-placeholder,
textarea.form-control::-moz-placeholder {
    color: #666
}

button.form-control:-ms-input-placeholder,
input.form-control:-ms-input-placeholder,
textarea.form-control:-ms-input-placeholder {
    color: #666
}

button.form-control:-moz-placeholder,
input.form-control:-moz-placeholder,
textarea.form-control:-moz-placeholder {
    color: #666
}

button.form-control.error,
input.form-control.error,
textarea.form-control.error {
    border-color: #af4242
}

button.form-control.success,
input.form-control.success,
textarea.form-control.success {
    border-color: #6baf42
}

button.form-control.form-text,
input.form-control.form-text,
textarea.form-control.form-text {
    margin: 0
}

button.form-control,
input.form-control {
    height: 4rem
}

textarea.form-control {
    padding: 2rem 2.5rem
}

.input-ico {
    position: relative;
    z-index: 1
}

.input-ico [class*=" ico-"],
.input-ico [class^=ico-] {
    position: absolute;
    top: 50%;
    left: 1.5rem;
    font-size: 1.7rem;
    transform: translateY(-50%);
    z-index: -1
}

.input-ico input {
    padding-left: 4.5rem
}

.input-ico--left [class*=" ico-"],
.input-ico--left [class^=ico-] {
    left: auto;
    right: 1.5rem
}

.input-ico--left input {
    padding-right: 4.5rem;
    padding-left: 1.5rem
}

.selectbox {
    width: 100% !important
}

.selectbox .dropdown-toggle {
    padding-right: 3rem
}

.selectbox .dropdown-toggle:after {
    content: "\E90B";
    font-family: icomoon;
    position: absolute;
    top: 50%;
    right: 1rem;
    font-size: .8rem;
    color: inherit;
    margin-top: 0;
    border: 0;
    transform: translateY(-50%);
    transition: all .2s ease-in-out
}

.selectbox .dropdown-toggle:focus {
    outline: none !important
}

.selectbox .dropdown-menu:not(.inner) {
    width: 100%;
    min-width: 100% !important;
    padding: 0;
    margin: 0;
    border-radius: 0;
    border: .1rem solid #e5e5e5;
    border-top: 0 !important
}

.selectbox .dropdown-menu.inner {
    background-color: transparent;
    padding: .5rem 0
}

.selectbox .bs-searchbox {
    background-color: #edeef3;
    padding: 1rem;
    border-bottom: .1rem solid #e5e5e5
}

.selectbox .bs-searchbox input.form-control {
    background-color: #fff;
    height: 3.5rem;
    padding: .5rem 1rem;
    border: 0
}

.selectbox .dropdown-item {
    font-size: 1.4rem;
    font-weight: 500
}

.checkbox:not(:first-child),
.radiobox:not(:first-child) {
    margin-top: 1rem
}

.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: 3rem;
    margin-bottom: 0;
    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: .2rem;
    left: 0;
    width: 1.6rem;
    height: 1.6rem;
    border: .1rem solid #e5e5e5
}

.checkbox input[type=checkbox]~label:after,
.checkbox input[type=radio]~label:after,
.radiobox input[type=checkbox]~label:after,
.radiobox input[type=radio]~label:after {
    top: .5rem;
    left: .3rem;
    background-color: #1d2769;
    width: 1rem;
    height: 1rem;
    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
}

.checkbox input[type=checkbox]:disabled~label:after,
.checkbox input[type=checkbox]:disabled~label:before,
.checkbox input[type=radio]:disabled~label:after,
.checkbox input[type=radio]:disabled~label:before,
.radiobox input[type=checkbox]:disabled~label:after,
.radiobox input[type=checkbox]:disabled~label:before,
.radiobox input[type=radio]:disabled~label:after,
.radiobox input[type=radio]:disabled~label:before {
    opacity: .5 !important
}

.radiobox input[type=radio]~label:after,
.radiobox input[type=radio]~label:before {
    border-radius: 100%
}

.radiobox input[type=radio]~label:after {
    background-color: #e6332a
}

.filebox {
    display: flex;
    margin-left: -15px;
    margin-right: -15px
}

.filebox__cell {
    padding-left: 15px;
    padding-right: 15px
}

.filebox__cell--input {
    flex: 1 0
}

.filebox__cell--btn {
    flex: 0 0 auto
}

.filebox__input {
    background-color: transparent !important
}

.filebox__btn {
    position: relative;
    min-height: 4rem;
    padding: .8rem 2rem
}

.filebox__btn input[type=file] {
    position: absolute;
    top: -.2rem;
    left: -.2rem;
    display: block;
    font-size: 0;
    width: calc(100% + .4rem);
    height: calc(100% + .4rem);
    opacity: 0;
    cursor: pointer;
    z-index: 1
}

.breadcrumb {
    background-color: transparent;
    padding: 1.2rem 0;
    margin: 0
}

.breadcrumb-wrap {
    background-color: #fafafa;
    border-bottom: .1rem solid #e5e5e5
}

.breadcrumb-item {
    font-size: 1.2rem;
    color: #666
}

.breadcrumb-item+.breadcrumb-item:before {
    content: "\2022";
    line-height: 1
}

.breadcrumb-item.active {
    font-weight: 600
}

.pagination {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center
}

@media (max-width:575px) {
    .pagination {
        margin: 0 -1rem
    }
}

.pagination-wrap {
    text-align: center
}

.pagination__item {
    padding: 0 .5rem
}

.pagination__item.active .pagination__link {
    background-color: #1d2769;
    color: #fff;
    border-color: #1d2769
}

.pagination__link {
    display: block;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 3.8rem;
    width: 4rem;
    height: 4rem;
    text-align: center;
    border: .1rem solid #e5e5e5
}

.pagination__link:active,
.pagination__link:focus,
.pagination__link:hover {
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, .1)
}

.pagination__link.disabled,
.pagination__link:disabled {
    background-color: #edeef3 !important;
    border-color: #e5e5e5 !important;
    box-shadow: none !important
}

.pagination__nav {
    padding: 0 1rem
}

.pagination__filler {
    display: block;
    width: 8rem;
    border-bottom: .1rem solid #e5e5e5
}

@media (max-width:575px) {
    .pagination__filler {
        width: 5rem
    }
}

.pagination .pagination__link.active-link {
    background-color: #1d2769;
    border-color: #1d2769;
    font-weight: 700
}

.pagination .active-number {
    font-weight: 700
}

.field-well {
    position: relative;
    background-color: #1d2769;
    font-size: 1.4rem;
    color: #fff;
    padding: 4rem 2.5rem
}

.field-well:after {
    content: "";
    position: absolute;
    top: 1rem;
    left: 1rem;
    background-color: inherit;
    display: block;
    width: 100%;
    height: 100%;
    opacity: .09;
    z-index: -1
}

.field-well__footer {
    padding-top: 3.5rem
}

.field-well p {
    color: inherit
}

.field-quote {
    position: relative;
    color: #1d2769;
    padding-top: 3.5rem;
    text-align: center;
    z-index: 1
}

.field-quote:before {
    content: "\E930";
    font-family: icomoon;
    position: absolute;
    top: 0;
    left: 50%;
    display: block;
    font-size: 10rem;
    line-height: 10rem;
    opacity: .1;
    z-index: -1;
    transform: translate(-50%)
}

.field-quote blockquote {
    font-size: 2.4rem
}

.field-quote blockquote:before {
    content: "\AB"
}

.field-quote blockquote:after {
    content: "\BB"
}

.field-quote blockquote+cite {
    margin-top: 2.5rem
}

.field-quote blockquote.blockquote-en:after,
.field-quote blockquote.blockquote-en:before {
    content: '"'
}

.field-quote cite {
    display: block;
    font-family: Ubuntu, sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    font-style: normal;
    letter-spacing: .1rem;
    color: #e6332a;
    text-transform: uppercase
}

.field-collapse:not(:last-child) {
    margin-bottom: 1rem
}

.field-collapse__trigger {
    position: relative;
    display: block;
    width: 100%;
    background-color: #1d2769;
    color: #fff;
    padding: 1.8rem 5rem 1.8rem 3rem;
    border-radius: 0;
    text-align: left;
    transition: all .2s ease-in-out
}

.field-collapse__trigger:after,
.field-collapse__trigger:before {
    content: "";
    position: absolute;
    top: 50%;
    right: 2rem;
    display: block;
    width: 1.5rem;
    border-bottom: .2rem solid;
    transform: translateY(-50%);
    transition: all .2s ease-in-out
}

.field-collapse__trigger.collapsed:after {
    transform: translateY(-50%) rotate(90deg)
}

.field-collapse__well {
    background-color: #edeef3;
    font-size: 1.4rem;
    padding: 2.5rem
}

.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: 0;
    width: 100% !important;
    height: 100% !important
}

.field-negative {
    position: relative;
    padding-top: 5rem;
    color: #fff;
    z-index: 1
}

@media (min-width:992px) {
    .field-negative {
        padding-bottom: 5rem
    }
}

.field-negative__content:before {
    position: absolute;
    top: -5rem;
    right: 50%;
    bottom: 0;
    background-color: #1d2769;
    display: block;
    width: 105vw;
    z-index: -1;
    transform: translate(50%)
}

@media (max-width:991px) {
    .field-negative__content:before {
        content: ""
    }
}

.field-negative__img:before {
    content: "";
    position: absolute;
    top: -5rem;
    right: 50%;
    bottom: 50%;
    background-color: #1d2769;
    display: block;
    width: 105vw;
    z-index: -1;
    transform: translate(50%)
}

@media (min-width:992px) {
    .field-negative__img:before {
        top: 0;
        bottom: 0;
        margin-top: -5rem;
        margin-bottom: -5rem;
        transform: none
    }
}

.field-info {
    position: relative;
    background-color: #1d2769;
    color: #fff;
    padding: 5rem 0;
    z-index: 1
}

.field-info:before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    background-color: inherit;
    display: block;
    width: 100vw;
    height: 100%;
    transform: translateX(-50%)
}

.field-info__row {
    margin-left: -3rem;
    margin-right: -3rem
}

.field-info__cell {
    padding-left: 3rem;
    padding-right: 3rem
}

.field-info__cell--border {
    position: relative
}

@media (max-width:991px) {
    .field-info__cell--border {
        padding-top: 3rem
    }
}

.field-info__cell--border:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    height: calc(100% + 4rem);
    opacity: .3;
    border-left: .1rem solid;
    transform: translateY(-50%)
}

@media (max-width:991px) {
    .field-info__cell--border:before {
        top: 0;
        left: 50%;
        height: auto;
        width: calc(100% - 6rem);
        border-top: .1rem solid;
        border-left: 0;
        transform: translateX(-50%)
    }
}

.field-info__list {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%
}

.headline .field-info {
    margin-top: 4rem
}

@media (max-width:991px) {
    .headline .field-info {
        margin-top: 7rem
    }
}

@media (min-width:992px) {
    .headline--wide .field-info {
        padding-top: 9rem
    }
}

.field-info p {
    color: inherit
}

.plyr__control--overlaid {
    background-color: rgba(0, 0, 0, .8);
    padding: 24px;
    border: 2px solid #fff
}

.plyr__control svg {
    width: 15px;
    height: 15px
}

.plyr--youtube .plyr__controls {
    display: none
}

.videobox:not(:first-child) {
    margin-top: 2rem
}

.videobox:not(:last-child) {
    margin-bottom: 2rem
}

.tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap
}

.tags:not(:last-child) {
    font-family: Crimson Text, serif;
    font-style: italic;
    color: #4c4b4b;
    margin-bottom: 3rem;
    font-weight: 500;
    font-size: 17px
}

.tags .dashed-tag {
    position: relative;
    padding-bottom: 1.5rem
}

.tags .dashed-tag:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    width: 20rem;
    border-bottom: .2rem solid #e5e5e5
}

.tags li:not(:last-child):after {
    content: ",";
    margin-right: .5rem
}

.tags .tag {
    color: #4c4b4b
}

hr {
    border: 0;
    border-bottom: .1rem solid #e5e5e5
}

.thumbnail {
    position: relative;
    height: 100%;
    padding-bottom: 2rem;
    border-bottom: .1rem solid #e5e5e5
}

.thumbnail__img {
    position: relative;
    display: block;
    padding-bottom: 56.25%;
    overflow: hidden;
    z-index: 1
}

.thumbnail__img img {
    position: absolute;
    top: 0;
    left: 0;
    transition: all .2s ease-in-out
}

.thumbnail__img[href]:active img,
.thumbnail__img[href]:focus img,
.thumbnail__img[href]:hover img {
    transform: scale(1.1)
}

.thumbnail__img+.thumbnail__body {
    padding: 2rem 1.5rem 0
}

.thumbnail__title {
    font-size: 2rem;
    line-height: 3rem;
    font-weight: 700
}

.thumbnail__title:not(:last-child) {
    margin-bottom: .5rem
}

.thumbnail__date {
    color: #1d2769;
    font-weight: 600;
    text-transform: uppercase
}

.thumbnail__date:not(:first-child) {
    margin-top: 1rem
}

.thumbnail__date:not(:last-child) {
    margin-bottom: 1rem
}

.thumbnail__type {
    font-size: 1.2rem;
    font-weight: 600;
    color: #1d2769;
    text-transform: uppercase
}

.thumbnail__type:not(:first-child) {
    margin-top: 1rem
}

.thumbnail__type:not(:last-child) {
    margin-bottom: 1rem
}

.thumbnail__index {
    top: -1rem;
    left: -1rem;
    background-color: #1d2769;
    line-height: 5rem;
    font-weight: 700;
    width: 5rem;
    height: 5rem;
    text-align: center
}

.thumbnail__index,
.thumbnail__video {
    position: absolute;
    display: block;
    color: #fff;
    z-index: 2
}

.thumbnail__video {
    top: 50%;
    left: 50%;
    background-color: rgba(0, 0, 0, .2);
    width: 6rem;
    height: 6rem;
    border: .1rem solid;
    border-radius: 100%;
    transform: translate(-50%, -50%)
}

.thumbnail__video:before {
    position: inherit;
    top: inherit;
    left: inherit;
    font-size: 1.4rem;
    padding-left: .4rem;
    transform: inherit
}

.thumbnail__legend {
    color: #999
}

.thumbnail--promo {
    border: 0
}

.thumbnail--promo .thumbnail__img {
    padding-bottom: 100%
}

.thumbnail--feed {
    padding-bottom: 0;
    border: 0
}

.thumbnail--feed .thumbnail__img {
    background-color: #f2f2f2;
    padding-bottom: 100%
}

.thumbnail--feed .thumbnail__filler {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1
}

.thumbnail--feed .thumbnail__filler img {
    top: 50%;
    left: 50%;
    width: 7rem;
    height: auto;
    transform: translate(-50%, -50%)
}

.thumbnail--feed .thumbnail__body {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
    word-break: break-word
}

.thumbnail--feed .thumbnail__feed:not(:first-child) {
    margin-top: 2rem
}

.thumbnail--feed .thumbnail__feed:not(:last-child) {
    margin-bottom: 2rem
}

.thumbnail--feed .thumbnail__title {
    margin-bottom: 0
}

.thumbnail--feed .thumbnail__legend {
    margin: 0
}

.thumbnail--feed .thumbnail__icon {
    width: 1.7rem;
    margin-top: .5rem;
    margin-right: 2rem
}

.thumbnail--feed.thumbnail--facebook p a {
    color: #3a5a98
}

.thumbnail--feed.thumbnail--twitter p a {
    color: #1da1f2
}

.thumbnail--feed.thumbnail--linkedin p a {
    color: #006097
}

.thumbnail--feed.thumbnail--instagram p a {
    color: #b83ca4
}

.thumbnail--horizontal {
    border: 0
}

.thumbnail--horizontal .thumbnail__body {
    padding: 3.5rem 2rem
}

.thumbnail.event-ended {
    opacity: .5
}

.thumbnail.event-ended .tags {
    font-weight: 700
}

.course__list .thumbnail.event-ended p,
.thumbnail.event-ended .c-students__discover,
.thumbnail.event-ended .course__list p,
.thumbnail.event-ended .fz-sm {
    font-weight: 500
}

.thumbnails-summary .thumbnail {
    padding-bottom: 0;
    border-bottom: 0
}

.thumbnails--even .thumbnails__item:nth-child(2n),
.thumbnails--odd .thumbnails__item:nth-child(odd) {
    background-color: #f2f2f2
}

.thumbnails-summary {
    position: relative;
    background-color: #edeef3;
    padding-top: 1rem;
    overflow: hidden;
    z-index: 1
}

.thumbnails-summary__cell:first-child:before,
.thumbnails-summary__cell:last-child:before {
    content: "";
    position: absolute;
    left: 50%;
    display: block;
    background-color: #fff;
    width: 200vw;
    transform: translateX(-50%);
    z-index: -1
}

.thumbnails-summary__cell:first-child:before {
    top: -1rem;
    padding-top: 28%
}

.thumbnails-summary__cell:last-child:not(:first-child):before {
    height: 100%;
    margin-top: 28%
}

@media (max-width:575px) {
    .profile-list {
        max-width: 26rem;
        margin: auto
    }
}

.profile {
    position: relative;
    height: 100%;
    z-index: 1
}

@media (min-width:576px) {
    .profile {
        display: flex
    }
}

.profile__cell--img {
    width: 26rem;
    margin-bottom: 2rem
}

@media (min-width:576px) {
    .profile__cell--img {
        flex: 0 0 26rem
    }
}

@media (max-width:575px) {
    .profile__cell--img {
        margin: auto
    }
}

@media (min-width:576px) {
    .profile__cell--img+.profile__cell--content {
        padding-left: 3rem
    }
}

@media (max-width:575px) {
    .profile__cell--img+.profile__cell--content {
        padding-top: 3rem
    }
}

@media (min-width:576px) {
    .profile__cell--content {
        flex: 1;
        display: flex;
        align-items: center
    }
}

.profile__img {
    position: relative;
    display: block;
    height: 100%;
    min-height: 43rem
}

.profile__img img {
    position: absolute;
    top: 0;
    left: 0
}

.profile__content {
    flex: 1
}

.profile__quote {
    position: relative;
    font-family: Ubuntu, sans-serif;
    font-weight: 300;
    font-style: italic;
    padding-left: 2rem;
    margin-top: 4rem
}

.profile__quote:before {
    content: "\E930";
    font-family: icomoon;
    position: absolute;
    top: 50%;
    right: 100%;
    display: block;
    font-size: 4rem;
    line-height: 4rem;
    font-style: normal;
    color: #e6332a;
    transform: translateY(-50%)
}

.profile__quote blockquote {
    quotes: "\AB" "\BB"
}

.profile__quote blockquote:before {
    content: open-quote
}

.profile__quote blockquote:after {
    content: close-quote
}

.profile__quote--bg {
    padding: 2.5rem 2rem 2rem 0
}

.profile__quote--bg:before {
    top: 0;
    left: 0;
    right: auto
}

.profile__quote--bg:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    background-color: hsla(0, 0%, 100%, .1);
    display: block;
    width: calc(100% + 15rem);
    height: 100%;
    z-index: -1
}

@media (min-width:576px) {
    .profile-about {
        display: flex
    }
}

@media (min-width:576px) {

    .profile-about__content,
    .profile-about__img {
        flex: 0 0 50%;
        width: 50%
    }
}

.profile-about__img {
    position: relative;
    display: block;
    padding-bottom: 80%
}

@media (min-width:768px) and (max-width:991px) {
    .profile-about__img {
        padding-bottom: 65%
    }
}

@media (max-width:575px) {
    .profile-about__img {
        padding-bottom: 150%
    }
}

.profile-about__img img {
    position: absolute;
    top: 0;
    left: 0
}

.profile-about__content {
    align-self: flex-end;
    padding: 1rem 2rem 2rem
}

@media (min-width:576px) {
    .profile-about__content {
        padding: 1rem 1.5rem 4rem
    }
}

.profile-about__title {
    font-size: 1.3rem;
    color: #000;
    min-height: 5.8rem
}

.profile-about__contact {
    display: inline-flex;
    font-size: 1.2rem;
    font-weight: 700;
    color: #e6332a;
    text-decoration: none !important;
    text-transform: uppercase
}

.profile-about__contact [class*=" ico-"],
.profile-about__contact [class^=ico-] {
    font-size: 1.8rem;
    flex: 0 0 auto
}

.profile-about .tags {
    position: relative;
    padding-bottom: 1rem
}

.profile-about .tags:not(:last-child) {
    margin-bottom: 1.5rem
}

.profile-about .tags:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    width: 100%;
    margin: 0 -2rem;
    border-bottom: .1rem solid #e5e5e5
}

@media (min-width:576px) {
    .profile-about .tags:after {
        margin: 0 -1.5rem
    }
}

@media (min-width:576px) {
    .profile-about h4 {
        min-height: 6rem
    }
}

.profile-box {
    position: relative;
    display: block;
    height: 100%;
    padding-bottom: 170%;
    color: #fff !important;
    z-index: 1
}

.profile-box__inner {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: 3rem;
    z-index: 1
}

.profile-box__img {
    z-index: -1
}

.profile-box__img,
.profile-box__img:before {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%
}

.profile-box__img:before {
    content: "";
    background-image: linear-gradient(0deg, rgba(0, 0, 0, .6) 0, transparent 70%);
    z-index: 1
}

.table-responsive:not(:last-child) {
    margin-bottom: 3rem
}

.o-table {
    font-size: 1.4rem;
    width: 100%;
    text-align: center
}

.o-table th {
    background-color: #1d2769;
    font-family: Ubuntu, sans-serif;
    font-weight: 700;
    color: #fff
}

.o-table td,
.o-table th {
    padding: 2rem
}

@media (max-width:991px) {

    .o-table td,
    .o-table th {
        min-width: 23rem
    }
}

.o-table td:not(:last-child),
.o-table th:not(:last-child) {
    border-right: .1rem solid #fff
}

.o-table tbody tr:nth-child(odd) {
    background-color: #fafafa
}

.o-table tbody tr:nth-child(2n) {
    background-color: #f2f2f2
}

@media (max-width:991px) {
    .o-table {
        display: block;
        max-width: 100%;
        overflow-x: auto;
        height: auto;
        white-space: nowrap
    }

    .o-table::-webkit-scrollbar {
        height: .3rem;
        background-color: #fff
    }

    .o-table::-webkit-scrollbar-track {
        -webkit-box-shadow: inset 0 0 0 transparent
    }

    .o-table::-webkit-scrollbar-thumb {
        height: .5rem;
        background-color: #1d2769
    }

    .o-table::-webkit-scrollbar-thumb:hover {
        background-color: #1d2769
    }

    .o-table::-o-scrollbar {
        height: .3rem;
        background-color: #fff
    }

    .o-table::-o-scrollbar-track {
        -webkit-box-shadow: inset 0 0 0 transparent
    }

    .o-table::-o-scrollbar-thumb {
        height: .5rem;
        background-color: #1d2769
    }

    .o-table::-o-scrollbar-thumb:hover {
        background-color: #1d2769
    }

    .o-table::-moz-scrollbar {
        height: .3rem;
        background-color: #fff
    }

    .o-table::-moz-scrollbar-track {
        -webkit-box-shadow: inset 0 0 0 transparent
    }

    .o-table::-moz-scrollbar-thumb {
        height: .5rem;
        background-color: #1d2769
    }

    .o-table::-moz-scrollbar-thumb:hover {
        background-color: #1d2769
    }
}

@media (min-width:576px) {
    .book {
        display: flex
    }
}

@media (max-width:575px) {
    .book {
        max-width: 32rem;
        margin: auto
    }
}

.book__img {
    flex: 0 0 16rem;
    width: 16rem;
    box-shadow: 0 0 0 0 rgba(0, 0, 0, .2)
}

@media (max-width:575px) {
    .book__img {
        width: 20rem;
        margin: auto
    }
}

.book__img+.book__info {
    padding-left: 2.5rem
}

@media (max-width:575px) {
    .book__img+.book__info {
        padding-left: 0;
        margin-top: 3rem
    }
}

.book__info {
    align-self: center;
    flex: 1
}

.book__title {
    font-size: 2rem;
    line-height: 3rem;
    margin-bottom: 0 !important
}

.book__title+.book__author {
    margin-top: 0 !important
}

.book__author {
    font-family: Crimson Text, serif;
    font-style: italic
}

.filter {
    margin-left: -3rem;
    margin-right: -3rem
}

.filter__header {
    position: relative;
    display: flex;
    text-transform: uppercase;
    z-index: 1
}

.filter__header:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    border-bottom: .1rem solid #e5e5e5;
    z-index: -1
}

.filter__title {
    background-color: #1d2769;
    display: flex;
    flex: 0 0 auto;
    font-size: 1.2rem;
    color: #fff;
    padding: 2rem 0 2rem 3rem;
    margin: 0 !important;
    transition: all .2s ease-in-out
}

.filter__trigger {
    position: relative;
    background-color: #1d2769;
    width: 7rem
}

.filter__trigger:after,
.filter__trigger:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 1.2rem;
    border-bottom: .2rem solid #fff;
    transition: all .2s ease-in-out
}

.filter__trigger:before {
    transform: translate(-50%, -50%)
}

.filter__trigger:after {
    transform: translate(-50%, -50%) rotate(90deg)
}

.filter__body {
    padding: 0 3rem 3rem
}

.filter__body,
.filter__footer {
    background-color: #1d2769;
    color: #fff
}

.filter__footer {
    padding: 1rem 3rem 4rem
}

.filter.is-open .filter__title {
    flex: 1 0 auto;
    color: hsla(0, 0%, 100%, .6)
}

.filter.is-open .filter__trigger:after {
    transform: translate(-50%, -50%)
}

.filter button.form-control,
.filter input.form-control,
.filter textarea.form-control {
    background-color: hsla(0, 0%, 100%, .1);
    color: inherit;
    border-color: #636995
}

.filter .selectbox .dropdown-menu:not(.inner) {
    background-color: #636995;
    border-color: #636995
}

.filter .selectbox .dropdown-menu.inner {
    color: #fff
}

.filter .selectbox .dropdown-item {
    color: inherit
}

.filter .selectbox .dropdown-item.active,
.filter .selectbox .dropdown-item:hover {
    background-color: #343d78
}

.filter .selectbox .bs-searchbox {
    background-color: #343d78;
    padding: 1rem;
    border-bottom: .1rem solid #636995
}

.filter .selectbox .bs-searchbox .form-control {
    background-color: #fff;
    font-size: 1.3rem;
    font-weight: 500
}

.filter .selectbox .bs-searchbox .form-control::-webkit-input-placeholder {
    color: #000
}

.filter .selectbox .bs-searchbox .form-control::-moz-placeholder {
    color: #000
}

.filter .selectbox .bs-searchbox .form-control:-ms-input-placeholder {
    color: #000
}

.filter .selectbox .bs-searchbox .form-control:-moz-placeholder {
    color: #000
}

.filter .selectbox .no-results {
    background-color: transparent;
    color: inherit;
    margin: 0
}

.feed-filter {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999
}

.feed-filter:not(:first-child) {
    margin-top: 5rem
}

.feed-filter:not(:last-child) {
    margin-bottom: 5rem
}

.feed-filter__item {
    margin: 0 .5rem
}

.feed-filter__btn {
    width: 4rem;
    height: 4rem;
    line-height: 4rem;
    text-align: center;
    border: .1rem solid #e5e5e5;
    border-radius: 100%
}

.feed-filter__btn [class*=" ico-"],
.feed-filter__btn [class^=ico-] {
    font-size: 1.6rem
}

.feed-filter__reset {
    font-size: 1.4rem;
    font-weight: 700;
    text-transform: uppercase
}

.feed-filter__btn,
.feed-filter__reset {
    opacity: .5
}

.feed-filter__item.is-active .feed-filter__btn,
.feed-filter__item.is-active .feed-filter__reset {
    opacity: 1
}

.feed-filter__item.is-active .feed-filter__btn--facebook,
.feed-filter__item.is-active .feed-filter__reset--facebook {
    color: #3a5a98;
    border-color: #3a5a98
}

.feed-filter__item.is-active .feed-filter__btn--twitter,
.feed-filter__item.is-active .feed-filter__reset--twitter {
    color: #1da1f2;
    border-color: #1da1f2
}

.feed-filter__item.is-active .feed-filter__btn--linkedin,
.feed-filter__item.is-active .feed-filter__reset--linkedin {
    color: #006097;
    border-color: #006097
}

.feed-filter__item.is-active .feed-filter__btn--instagram,
.feed-filter__item.is-active .feed-filter__reset--instagram {
    color: #b83ca4;
    border-color: #b83ca4
}

.date_group_position {
    bottom: 2.7rem
}

.content-rte ul:not([class]),
.list-bullet {
    list-style-image: none;
    padding-left: 4rem;
    overflow: hidden
}

.content-rte ul:not(:first-child):not([class]),
.list-bullet:not(:first-child) {
    margin-top: 3rem
}

.content-rte ul:not(:last-child):not([class]),
.list-bullet:not(:last-child) {
    margin-bottom: 3rem
}

.content-rte ul:not([class]) li,
.list-bullet li {
    position: relative
}

.content-rte ul:not([class]) li:not(:last-child),
.list-bullet li:not(:last-child) {
    margin-bottom: .5rem
}

.content-rte ul:not([class]) li:before,
.list-bullet li:before {
    content: "\2022";
    position: absolute;
    top: .8rem;
    left: -1.5rem;
    font-size: 1.8rem;
    line-height: .7rem;
    color: #1d2769
}

.content-rte .field-info ul:not([class]) li:before,
.content-rte .field-negative ul:not([class]) li:before,
.content-rte .field-well ul:not([class]) li:before,
.field-info .content-rte ul:not([class]) li:before,
.field-info .list-bullet li:before,
.field-negative .content-rte ul:not([class]) li:before,
.field-negative .list-bullet li:before,
.field-well .content-rte ul:not([class]) li:before,
.field-well .list-bullet li:before {
    color: #fff
}

.content-rte ul:not([class]) a,
.list-bullet a {
    text-decoration: underline
}

.content-rte ol:not([class]),
.list-decimal {
    list-style-image: none;
    padding-left: 4rem;
    counter-reset: list;
    overflow: hidden
}

.content-rte ol:not(:first-child):not([class]),
.list-decimal:not(:first-child) {
    margin-top: 3rem
}

.content-rte ol:not(:last-child):not([class]),
.list-decimal:not(:last-child) {
    margin-bottom: 3rem
}

.content-rte ol:not([class]) li,
.list-decimal li {
    position: relative
}

.content-rte ol:not([class]) li:not(:last-child),
.list-decimal li:not(:last-child) {
    margin-bottom: .5rem
}

.content-rte ol:not([class]) li:before,
.list-decimal li:before {
    counter-increment: list;
    content: counters(list, " -", decimal-leading-zero) " -" !important;
    position: absolute;
    top: .3rem;
    right: calc(100% + .5rem);
    font-size: 1.3rem;
    color: #1d2769;
    font-weight: 700;
    white-space: nowrap
}

.content-rte .field-info ol:not([class]) li:before,
.content-rte .field-negative ol:not([class]) li:before,
.content-rte .field-well ol:not([class]) li:before,
.field-info .content-rte ol:not([class]) li:before,
.field-info .list-decimal li:before,
.field-negative .content-rte ol:not([class]) li:before,
.field-negative .list-decimal li:before,
.field-well .content-rte ol:not([class]) li:before,
.field-well .list-decimal li:before {
    color: #fff
}

.content-rte ol:not([class]) a,
.list-decimal a {
    text-decoration: underline
}

.list-ico {
    list-style-image: none
}

.list-ico:not(:first-child) {
    margin-top: 3rem
}

.list-ico:not(:last-child) {
    margin-bottom: 3rem
}

.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: 1.2rem
}

.list-ico__item>[class*=" ico-"]:last-child,
.list-ico__item>[class^=ico-]:last-child {
    margin-left: 1.2rem
}

.list-ico__body {
    flex: 1
}

.list-ico--lg [class*=" ico-"],
.list-ico--lg [class^=ico-] {
    font-size: 2.2rem;
    margin-top: 0
}

.list-docs {
    font-size: 1.4rem;
    list-style-image: none
}

.list-docs:not(:first-child) {
    margin-top: 3rem
}

.list-docs:not(:last-child) {
    margin-bottom: 3rem
}

.list-docs li {
    border-bottom: .1rem solid #e5e5e5
}

.list-docs a {
    display: inline-flex;
    align-items: center
}

.list-docs a [class*=" ico-"],
.list-docs a [class^=ico-] {
    font-size: 2.2rem
}

.list-docs a span:first-of-type {
    margin: 1.2rem 1.5rem
}

.list-helpers {
    list-style-image: none;
    font-weight: 500
}

.list-helpers:not(:first-child) {
    margin-top: 3rem
}

.list-helpers:not(:last-child) {
    margin-bottom: 3rem
}

.list-helpers a {
    display: inline-flex;
    align-items: center
}

.list-helpers a [class*=" ico-"],
.list-helpers a [class^=ico-] {
    font-size: 2.2rem
}

.list-helpers a div {
    margin: 1.05rem 1.5rem
}

.list-helpers a div span {
    border-bottom: .1rem solid
}

.list-social {
    display: flex;
    list-style-image: none;
    margin: 0 -.5rem
}

@media (min-width:992px) {
    .list-social {
        margin: 0 -1rem
    }
}

.list-social li {
    margin: 0 .5rem
}

@media (min-width:992px) {
    .list-social li {
        margin: 0 1rem
    }
}

.list-social li a {
    background-color: #e6332a;
    display: block;
    font-size: 1.4rem;
    line-height: 3.2rem;
    color: #fff;
    width: 3rem;
    height: 3rem;
    border-radius: 100%;
    text-align: center
}

.list-social li a:active,
.list-social li a:focus,
.list-social li a:hover {
    background-color: #1d2769;
    color: #fff
}

.board {
    flex: 1 0;
    padding-left: 2.5rem
}

.board:not(:first-child) {
    margin-top: 3rem
}

.board:not(:last-child) {
    margin-bottom: 3rem
}

.board__body:not(:first-child),
.board__header:not(:first-child) {
    margin-top: 2.5rem
}

.board__body:not(:last-child),
.board__header:not(:last-child) {
    margin-bottom: 2.5rem
}

.board__adress span {
    display: block;
    font-weight: 600
}

@media (min-width:992px) {
    .board__adress span {
        margin-bottom: 2rem
    }
}

.board__title {
    position: relative
}

.board__title:before {
    content: "";
    position: absolute;
    top: -.1rem;
    left: -2.5rem;
    height: 3rem;
    border-left: .3rem solid #e6332a
}

.board__social {
    padding-left: 2.5rem
}

.slider-wrap {
    position: relative
}

.slider-wrap.is-locked .autoplay-nav,
.slider-wrap.is-locked .slider-nav {
    display: none
}

.slider-nav {
    position: relative
}

.slider-nav--default {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 3rem
}

.slider-nav--default .slider-prev {
    margin-right: 3rem
}

.slider-nav--default .slider-next {
    margin-left: 3rem
}

.slider-pagination {
    font-family: Crimson Text, serif;
    font-size: 1.4rem
}

.autoplay-nav {
    position: relative;
    text-align: center
}

@media (max-width:991px) {
    .autoplay-nav {
        display: flex;
        justify-content: center
    }
}

.autoplay-nav-prev {
    margin-bottom: 1.5rem
}

@media (max-width:991px) {
    .autoplay-nav-prev {
        margin-right: 1.5rem;
        margin-bottom: 0
    }
}

.autoplay-nav-prev:before {
    content: "\E90E";
    font-family: icomoon
}

@media (max-width:991px) {
    .autoplay-nav-prev:before {
        display: block;
        transform: rotate(-90deg)
    }
}

.autoplay-nav-next {
    margin-top: 1.5rem
}

@media (max-width:991px) {
    .autoplay-nav-next {
        margin-top: 0;
        margin-left: 1.5rem
    }
}

.autoplay-nav-next:before {
    content: "\E90B";
    font-family: icomoon
}

@media (max-width:991px) {
    .autoplay-nav-next:before {
        display: block;
        transform: rotate(-90deg)
    }
}

.autoplay-nav-next,
.autoplay-nav-prev {
    font-size: 1.4rem
}

.autoplay-nav-pagination {
    position: absolute;
    top: 50%;
    left: 50%;
    font-family: Crimson Text, serif;
    font-size: 1.4rem;
    white-space: nowrap;
    transform: translate(-50%, -50%)
}

.autoplay-nav-indicator {
    fill: transparent;
    stroke: #000;
    stroke-width: .4rem;
    width: 6rem;
    height: 6rem;
    stroke-dasharray: 310%;
    stroke-dashoffset: 0%
}

.autoplay-nav--media {
    margin-top: 3rem
}

@media (min-width:992px) {
    .autoplay-nav--media {
        position: absolute;
        top: 50%;
        right: 0;
        margin-top: 0;
        transform: translate(150%, -50%)
    }
}

@media (min-width:992px) {
    .autoplay-nav--hero {
        position: absolute;
        top: 50%;
        left: 15px;
        margin-top: 0;
        transform: translateY(-50%)
    }
}

.autoplay-nav--hero .autoplay-nav-indicator {
    stroke: #fff
}

.scroll-nav {
    display: flex;
    align-items: center;
    margin-top: 2rem
}

.scroll-nav-scrollbar {
    position: relative;
    flex: 1 0;
    z-index: 1
}

.scroll-nav-scrollbar:before {
    content: "";
    position: absolute;
    top: .2rem;
    left: 0;
    width: 100%;
    border-bottom: .1rem solid #e5e5e5
}

.scroll-nav-scrollbar .swiper-scrollbar-drag {
    height: .5rem;
    background-color: #1d2769
}

.scroll-nav-next,
.scroll-nav-prev {
    flex: 0 0 auto;
    line-height: 1.6rem
}

.scroll-nav-next.swiper-scrollbar-lock,
.scroll-nav-prev.swiper-scrollbar-lock {
    display: none
}

.scroll-nav-prev {
    padding: 1rem 2rem 1rem 1rem
}

.scroll-nav-next {
    padding: 1rem 1rem 1rem 2rem
}

@media (min-width:992px) {
    .hero-slider {
        height: 70rem
    }
}

.hero-nav {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    z-index: 1
}

@media (max-width:991px) {
    .hero-nav {
        top: auto;
        bottom: 8rem
    }
}

.hero-nav .container {
    position: relative
}

.access {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 11rem;
    padding-left: 8rem;
    z-index: 99;
    transform: translateY(50%)
}

@media (max-width:767px) {
    .access {
        height: 9.3rem;
        padding-left: 6rem
    }
}

.access-trigger {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #000;
    font-size: 1rem;
    width: 8rem;
    height: 100%;
    text-align: center;
    text-transform: uppercase
}

@media (max-width:767px) {
    .access-trigger {
        width: 6rem
    }
}

.access-trigger [class*=" ico-"],
.access-trigger [class^=ico-] {
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 1.8rem;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -50%);
    transition: all .2s ease-in-out
}

.access-trigger span {
    transition: all .2s ease-in-out
}

.access-wrap {
    background-color: #fff;
    width: 0;
    height: 100%;
    overflow: hidden;
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, .2)
}

.access-slider {
    height: 100%
}

.access-slide {
    width: 15rem;
    color: #666
}

@media (max-width:767px) {
    .access-slide {
        width: 14rem
    }
}

.access-slide:nth-child(-n+3) {
    color: #e6332a
}

.access-slide:nth-child(-n+3) .inline-svg {
    fill: #e6332a
}

.access-nav {
    position: absolute;
    top: 0;
    right: 0;
    background-color: #edeef3;
    color: #000;
    width: 4rem;
    height: 100%
}

.access-next,
.access-prev {
    width: 100%;
    height: 50%;
    padding: 0
}

.access-box {
    display: block;
    padding: 1.5rem;
    text-align: center
}

@media (max-width:767px) {
    .access-box {
        padding: 1.2rem
    }
}

.access-img {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 1rem
}

@media (max-width:767px) {
    .access-img {
        width: 2.5rem;
        height: 2.5rem
    }
}

.access-label {
    font-size: 1.2rem;
    line-height: 1.8rem;
    font-weight: 600;
    text-transform: uppercase
}

@media (max-width:767px) {
    .access-label {
        font-size: 1.1rem;
        line-height: 1.7rem
    }
}

.access.is-active {
    width: 100%
}

.access.is-active .access-wrap:not(.is-locked) {
    padding-right: 4rem
}

.access.is-active .access-trigger [class*=" ico-"],
.access.is-active .access-trigger [class^=ico-] {
    opacity: 1;
    visibility: visible
}

.access.is-active .access-trigger span {
    opacity: 0;
    visibility: hidden
}

.media-slide {
    padding-bottom: 56.25%;
    overflow: hidden
}

@media (max-width:991px) {
    .media-slide {
        padding-bottom: 60%
    }
}

.media-slide .img-cover {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%
}

@media (max-width:991px) {
    .table-slider {
        overflow: visible
    }
}

.table-slide {
    width: auto;
    min-width: 100%
}

.breaking-news-slider {
    background-color: #fafafa;
    padding-right: 8rem;
    border-top: .1rem solid #e5e5e5;
    border-bottom: .1rem solid #e5e5e5
}

.breaking-news-slide {
    padding: 2rem 4rem
}

@media (max-width:991px) {
    .breaking-news-slide {
        padding: 1rem 1.5rem
    }
}

.breaking-news-title {
    font-size: 1.8rem;
    line-height: 2.8rem;
    font-weight: 400;
    color: #e6332a
}

@media (max-width:991px) {
    .breaking-news-title {
        font-size: 1.6rem;
        line-height: 2.6rem
    }
}

.breaking-news-nav {
    position: absolute;
    top: 0;
    right: 0;
    background-color: #f2f2f2;
    height: 100%;
    z-index: 1
}

.breaking-news-next,
.breaking-news-prev {
    height: 100%;
    width: 4rem
}

@media (min-width:992px) {
    .quadruple-slider--vertical .quadruple-slide {
        width: 100% !important
    }
}

@media (min-width:992px) {
    .quadruple-slider--vertical .quadruple-slide:not(:last-child) {
        margin: 0 0 2rem !important
    }
}

@media (min-width:992px) {
    .quadruple-slider--vertical .quadruple-slide:last-child {
        margin: 0 !important
    }
}

@media (min-width:992px) {
    .quadruple-slider--vertical .swiper-wrapper {
        max-width: 100%
    }
}

.quadruple-slide {
    height: auto
}

.staff-slider {
    height: 100%
}

.courses-tab-slide {
    width: auto;
    border-bottom: .1rem solid #e5e5e5
}

@media (max-width:991px) {
    .courses-tab-slide {
        text-align: center
    }
}

.courses-slider {
    overflow: visible
}

.inset-nav__trigger {
    font-weight: 700;
    letter-spacing: .1rem;
    text-align: center;
    text-transform: uppercase
}

@media (min-width:992px) {
    .inset-nav__trigger {
        display: none
    }
}

@media (min-width:992px) {
    .inset-nav__collapse {
        display: block !important;
        height: auto !important
    }
}

@media (max-width:991px) {
    .inset-nav__well {
        margin-top: 2.5rem
    }
}

.inset-nav__back {
    background-color: #1d2769;
    box-shadow: none !important
}

.inset-nav__back [class*=" ico-"],
.inset-nav__back [class^=ico-] {
    background-color: inherit;
    box-shadow: none !important
}

.inset-nav__current {
    background-color: #1d2769;
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .1rem;
    color: #fff;
    width: 100%;
    padding: 1.1rem 2rem;
    text-align: center;
    text-transform: uppercase
}

@media (min-width:992px) {
    .inset-nav__list {
        -moz-columns: 2;
        column-count: 2;
        transform: translateZ(0)
    }
}

.inset-nav__list-item {
    -moz-column-break-inside: avoid;
    break-inside: avoid;
    display: inline-block;
    padding-left: 1rem;
    margin-bottom: 1rem;
    width: 100%;
    overflow: hidden
}

.inset-nav__list-link {
    position: relative;
    display: block;
    background-color: #f2f2f2;
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: .1rem;
    color: #1d2769;
    padding: 1.1rem 3rem;
    text-transform: uppercase
}

.inset-nav__list-link:before {
    content: "\E905";
    font-family: icomoon;
    position: absolute;
    top: .4rem;
    left: 0;
    font-size: 1.9rem;
    transform: translate(-40%)
}

.timeline__row {
    position: relative;
    flex-direction: column;
    z-index: 1
}

.timeline__row:before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    height: 100%;
    border-left: .1rem solid #1d2769;
    z-index: -1
}

@media (max-width:991px) {
    .timeline__row:before {
        height: calc(100% - 3rem);
        border-color: #e5e5e5
    }
}

.timeline__cell {
    flex-basis: auto !important
}

@media (min-width:992px) {
    .timeline__cell {
        margin-bottom: 0 !important
    }
}

@media (min-width:992px) {
    .timeline__cell:nth-child(odd) .timeline__trigger {
        right: calc(-24% + 15px);
        transform: translateX(50%)
    }
}

@media (min-width:992px) {
    .timeline__cell:nth-child(odd) .timeline__arrow {
        right: 100%
    }
}

.timeline__cell:nth-child(odd) .timeline__arrow:before {
    content: "\E901";
    font-family: icomoon
}

.timeline__cell:nth-child(2n) {
    align-self: flex-end
}

@media (min-width:992px) {
    .timeline__cell:nth-child(2n) .timeline__trigger {
        left: calc(-23.7% + 15px);
        transform: translateX(-50%)
    }
}

@media (min-width:992px) {
    .timeline__cell:nth-child(2n) .timeline__arrow {
        left: 100%
    }
}

.timeline__cell:nth-child(2n) .timeline__arrow:before {
    content: "\E902";
    font-family: icomoon
}

@media (min-width:992px) {
    .timeline__collapse {
        display: block !important;
        height: auto !important
    }
}

@media (max-width:991px) {
    .timeline__collapse .thumbnail {
        background-color: #fff;
        margin-top: 2rem
    }
}

.timeline__trigger {
    position: relative;
    background-color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    width: 100%;
    padding: 1.2rem;
    cursor: default !important;
    border: .1rem solid #e5e5e5
}

@media (min-width:992px) {
    .timeline__trigger {
        position: absolute;
        top: 0;
        width: 28%;
        margin-top: 30.5%
    }
}

@media (max-width:991px) {
    .timeline__trigger {
        padding-right: 5.5rem
    }
}

.timeline__trigger:after,
.timeline__trigger:before {
    position: absolute;
    left: 50%;
    background-color: #1d2769;
    display: block;
    width: 1.1rem;
    height: 1.1rem;
    transform: translateX(-50%)
}

@media (min-width:992px) {

    .timeline__trigger:after,
    .timeline__trigger:before {
        content: ""
    }
}

.timeline__trigger:before {
    bottom: 100%
}

.timeline__trigger:after {
    top: 100%
}

.timeline__trigger.collapsed .timeline__indicator:after {
    transform: translate(-50%, -50%) rotate(90deg)
}

.timeline__arrow {
    position: absolute;
    top: 50%;
    font-size: 2.2rem;
    color: #e5e5e5;
    transform: translateY(-50%)
}

@media (max-width:991px) {
    .timeline__arrow {
        display: none
    }
}

.timeline__indicator {
    position: absolute;
    top: 0;
    right: 0;
    background-color: #1d2769;
    color: #fff;
    width: 5rem;
    height: 100%
}

@media (min-width:992px) {
    .timeline__indicator {
        display: none
    }
}

.timeline__indicator:after,
.timeline__indicator:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 1.5rem;
    border-bottom: .2rem solid;
    transform: translate(-50%, -50%);
    transition: all .2s ease-in-out
}

.timeline .thumbnail {
    padding-bottom: 0;
    border: 0
}

@media (min-width:992px) {
    .timeline .thumbnail__img {
        padding-bottom: 80%
    }
}

.sharebar {
    display: inline-block;
    font-size: 1.8rem;
    transform: rotate(-90deg)
}

@media (max-width:991px) {
    .sharebar {
        display: none
    }
}

.sharebar__trigger {
    background-color: #fff;
    display: block;
    line-height: 4rem;
    width: 4rem;
    height: 4rem;
    text-align: center;
    border: .1rem solid #e5e5e5;
    transform: rotate(90deg)
}

.sharebar__dropdown {
    background-color: #1d2769;
    display: block !important;
    font-size: 1.6rem;
    color: #fff;
    width: 100%;
    min-width: auto;
    padding: 0;
    margin-top: -.1rem;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    border: 0;
    border-radius: 0;
    transform: translateY(1rem);
    transition: all .2s ease-in-out
}

.sharebar__dropdown.show {
    opacity: 1;
    visibility: visible;
    transform: none
}

.sharebar__link {
    display: block;
    line-height: 0;
    width: 100%;
    padding: 1rem;
    transform: rotate(90deg)
}

.sharebar.show .sharebar__trigger {
    background-color: #1d2769;
    color: #fff;
    border-color: #1d2769
}

.custom-tabs {
    border-bottom: 0;
    justify-content: center;
    width: 100%
}

.custom-tabs .nav-link {
    font-size: 1.4rem;
    font-weight: 600;
    text-transform: uppercase;
    padding: 1rem 0;
    position: relative;
    border: 0
}

.tab-to-dropdown:not(.activated) .custom-tabs .nav-link {
    margin-right: 3rem
}

.tab-to-dropdown:not(.activated) .custom-tabs .nav-link.active {
    border: 0
}

.tab-to-dropdown:not(.activated) .custom-tabs .nav-link.active:after {
    height: .5rem;
    content: "";
    display: block;
    position: absolute;
    bottom: -.1rem;
    background-color: #e6332a;
    width: 100%
}

.custom-tabs .nav-link:focus,
.custom-tabs .nav-link:hover {
    border-color: transparent transparent #e6332a
}

.tab-content {
    padding-top: 4rem;
    padding-bottom: 4rem
}

.tab-content .thumbnail {
    border-bottom: 0
}

.signature {
    font-family: Ubuntu, sans-serif
}

.signature__title {
    font-size: 2.6rem;
    line-height: 1.6rem;
    color: #000;
    font-weight: 700;
    line-height: normal;
    letter-spacing: .026rem
}

.signature__subtitle p {
    color: #e92027;
    font-weight: 500
}

.signature--selectbox {
    width: 100%;
    margin: 3.2rem 0 3.3rem
}

.signature--selectbox .dropdown-toggle {
    background: #1d2769;
    color: #fff;
    font-size: 1.2rem;
    height: 5.5rem;
    font-weight: 700;
    padding-left: 2rem;
    padding-right: 4rem
}

.signature--selectbox .dropdown-toggle:after {
    right: 2rem
}

.signature--selectbox .dropdown-menu {
    background: #1d2769;
    color: #fff
}

.signature--selectbox .dropdown-menu .dropdown-item {
    white-space: break-spaces;
    color: #fff
}

.signature--selectbox .dropdown-menu .dropdown-item:focus,
.signature--selectbox .dropdown-menu .dropdown-item:hover,
.signature--selectbox .dropdown-menu .no-results {
    background-color: rgba(248, 249, 250, .2901960784313726);
    color: #fff
}

.signature--selectbox .dropdown-menu .no-results {
    padding: .3rem .9rem;
    margin: 0
}

.signature--selectbox .filter-option {
    display: flex;
    align-items: center;
    height: -moz-fit-content;
    height: fit-content;
    white-space: break-spaces
}

.signature-container {
    color: #000
}

.signature-container__title {
    font-weight: 700;
    line-height: normal;
    margin-bottom: 1.4rem;
    font-size: 1.8rem
}

.signature-container__the-signature {
    font-family: Barlow, sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 2.28rem;
    letter-spacing: .015rem;
    margin-bottom: 2.4rem
}

.signature__info {
    margin: 6.3rem 0
}

.signature__info p {
    font-family: Barlow, sans-serif;
    color: #000;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 2.28rem;
    letter-spacing: .015rem;
    background: #f5f5f5;
    padding: 2.3rem 2.4rem 2.3rem 2.1rem
}

.signature .btn-signature-block {
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.signature .tooltip-signatures {
    opacity: 0;
    color: #fff;
    background: rgba(0, 0, 0, .8);
    position: absolute;
    border-radius: .5rem;
    padding: .2rem 1rem .3rem;
    transition: .3s;
    transition-delay: .1s;
    pointer-events: none;
    width: -moz-max-content;
    width: max-content;
    z-index: 9999;
    top: .9rem;
    left: calc(100% + 15px)
}

.signature .tooltip-signatures:after {
    color: rgba(0, 0, 0, .8);
    position: absolute;
    top: 50%;
    left: -.7rem;
    transform: translateY(-50%);
    border-right: .7rem solid rgba(0, 0, 0, .8);
    border-bottom: .7rem solid transparent;
    border-top: .7rem solid transparent;
    content: ""
}

.signature .tooltip-signatures .after-content {
    display: none
}

.signature .tooltip-signatures.active {
    opacity: 1
}

.signature .tooltip-signatures.active .after-content {
    display: block
}

@media (max-width:767px) {
    .signature .tooltip-signatures {
        top: calc(100% + 15px);
        left: 50%;
        transform: translate(-50%);
        padding-top: .4rem
    }

    .signature .tooltip-signatures:after {
        top: -.6rem;
        right: 50%;
        transform: translate(50%);
        border-bottom: .6rem solid rgba(0, 0, 0, .8);
        border-left: .6rem solid transparent;
        border-right: .6rem solid transparent;
        border-top: unset;
        left: unset
    }
}

.content-rte .h1:not(:first-child),
.content-rte .h2:not(:first-child),
.content-rte h1:not(:first-child),
.content-rte h2:not(:first-child) {
    margin-top: 5rem
}

.content-rte .h3:not(:first-child),
.content-rte .h4:not(:first-child),
.content-rte .h5:not(:first-child),
.content-rte h3:not(:first-child),
.content-rte h4:not(:first-child),
.content-rte h5:not(:first-child) {
    margin-top: 3rem
}

.content-rte p {
    color: inherit
}

.content-rte ul:not([class]) {
    padding-left: 7rem
}

@media (max-width:767px) {
    .content-rte ul:not([class]) {
        padding-left: 4rem
    }
}

.content-rte ol:not([class]) {
    padding-left: calc(7rem + 10px)
}

@media (max-width:767px) {
    .content-rte ol:not([class]) {
        padding-left: calc(4rem + 10px)
    }
}

@media (min-width:992px) {
    .suggestion-grid .thumbnail {
        border-bottom: 0
    }
}

.headline__row {
    margin-left: -2rem;
    margin-right: -2rem;
    margin-bottom: -3rem
}

@media (min-width:992px) {
    .headline__row {
        display: flex
    }
}

.headline__cell {
    padding-left: 2rem;
    padding-right: 2rem;
    margin-bottom: 3rem
}

@media (min-width:992px) {
    .headline__cell--img {
        flex: 0 0 50%;
        order: 2;
        width: 50%
    }
}

@media (min-width:992px) {
    .headline__cell--portrait {
        flex: 0 0 27%;
        order: 1;
        width: 27%
    }
}

.headline__cell--content {
    position: relative;
    flex: 1 0
}

@media (min-width:992px) {
    .headline__cell--content {
        order: 1
    }
}

@media (min-width:992px) {
    .headline__cell--center {
        display: flex;
        align-items: center
    }
}

.headline__img {
    position: relative;
    padding-bottom: 56.25%;
    z-index: 2
}

.headline__img img {
    position: absolute;
    top: 0;
    left: 0
}

.headline__portrait {
    height: 100%
}

@media (min-width:992px) {
    .headline__portrait {
        position: relative;
        padding-bottom: 150%;
        z-index: 2
    }
}

@media (max-width:991px) {
    .headline__portrait {
        width: 26rem;
        height: 40rem;
        margin: auto
    }
}

@media (min-width:992px) {
    .headline__portrait img {
        position: absolute;
        top: 0;
        left: 0
    }
}

.headline__content {
    flex: 1 0
}

@media (min-width:992px) {
    .headline__content {
        padding-bottom: 8rem
    }
}

.headline__footer {
    display: flex;
    align-items: center
}

@media (min-width:992px) {
    .headline__footer {
        position: absolute;
        left: 2rem;
        right: 2rem;
        bottom: 0
    }
}

@media (max-width:991px) {
    .headline__footer {
        margin-top: 4rem
    }
}

.headline__title {
    font-size: 3rem;
    line-height: 3.6rem
}

@media (max-width:991px) {
    .headline__title {
        font-size: 2.6rem;
        line-height: 3.2rem
    }
}

.headline__name {
    font-weight: 500;
    font-size: 3rem;
    line-height: 3.6rem
}

@media (max-width:991px) {
    .headline__name {
        font-size: 2.6rem;
        line-height: 3.2rem
    }
}

.headline__author {
    color: #666
}

.headline__entity {
    position: relative;
    display: block;
    color: #999;
    padding-bottom: 1rem
}

.headline__entity:not(:first-child) {
    margin-top: 1.5rem
}

.headline__entity:not(:last-child) {
    margin-bottom: 1.5rem
}

.headline__entity:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 16rem;
    border-bottom: .1rem solid #e5e5e5
}

@media (min-width:992px) {
    .headline__entity:before {
        left: -4rem;
        width: 20rem
    }
}

@media (min-width:992px) {
    .headline--wide .headline__cell--img {
        flex: 0 0 60%;
        width: 60%
    }
}

@media (min-width:992px) {

    .headline--wide .headline__cell--img,
    .headline--wide .headline__cell--portrait {
        margin-bottom: -5rem
    }
}

.o-headroom {
    position: relative;
    margin-top: -7rem;
    z-index: 1
}

.o-headroom:not(:last-child) {
    margin-bottom: 7rem
}

@media (min-width:768px) {
    .o-headroom {
        display: flex;
        min-height: 50rem
    }
}

.o-headroom__wrap {
    flex: 1 0 100%
}

.o-headroom__content {
    position: relative;
    background-color: #fff;
    padding: 5rem 15%;
    text-align: center
}

@media (max-width:767px) {
    .o-headroom__content {
        position: relative;
        padding: 3rem 2rem 0;
        margin-top: -6rem;
        z-index: 1
    }
}

@media (min-width:768px) {
    .o-headroom__img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1
    }
}

@media (max-width:767px) {
    .o-headroom__img {
        position: relative;
        padding-bottom: 55%;
        overflow: hidden
    }
}

@media (max-width:767px) {
    .o-headroom__img img {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%
    }
}

.o-headroom .sharebar {
    position: absolute;
    right: 0;
    bottom: 100%
}

.o-headroom:after {
    content: "";
    display: block;
    font-size: 0;
    min-height: inherit
}

.o-jumbotron {
    position: relative;
    min-height: 20rem;
    text-align: center;
    z-index: 1
}

.o-jumbotron:before {
    content: "\E923";
    font-family: icomoon;
    position: absolute;
    top: -3rem;
    left: 50%;
    font-size: 24rem;
    line-height: 24rem;
    height: 24rem;
    opacity: .1;
    transform: translateX(-50%);
    z-index: -1
}

.boardroom__cell--contact {
    border-top: .1rem solid #e5e5e5;
    padding-top: 0
}

@media (max-width:991px) {
    .boardroom__cell--contact {
        position: relative;
        border-top: 0;
        padding-bottom: 2.5rem;
        margin-bottom: 5rem !important
    }

    .boardroom__cell--contact:before {
        content: "";
        position: absolute;
        bottom: 0;
        left: calc(15px + 2.5rem);
        right: 15px;
        border-top: .1rem solid #e5e5e5
    }
}

@media (min-width:992px) {
    .boardroom__cell--x {
        padding-top: 0;
        border-top: 0;
        border-left: .1rem solid #e5e5e5
    }
}

.boardroom__contact {
    display: flex;
    height: 100%;
    align-items: center
}

.boardroom__map {
    position: relative;
    height: 100%;
    padding-bottom: 60%
}

.boardroom__map .geolocation-map-container,
.boardroom__map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.hero {
    position: relative;
    color: #fff;
    margin-top: -7rem;
    z-index: 1
}

@media (min-width:992px) {
    .hero {
        margin-bottom: 10rem
    }
}

.hero__row {
    position: relative;
    display: flex;
    align-items: center;
    color: inherit !important;
    min-height: 70rem;
    z-index: 1
}

@media (max-width:991px) {
    .hero__row {
        padding: 7rem 0;
        min-height: 30rem
    }
}

.hero__row:after {
    content: "";
    display: block;
    font-size: 0;
    min-height: inherit
}

.hero__cell {
    flex: 1
}

.hero__inner {
    text-align: center
}

.hero__img,
.hero__video {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    overflow: hidden;
    z-index: -1
}

.hero__img:before,
.hero__video:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, .4);
    height: 100%;
    width: 100%;
    z-index: 1
}

.hero__title {
    font-size: 5.2rem;
    line-height: 5.6rem
}

@media (max-width:991px) {
    .hero__title {
        font-size: 3rem;
        line-height: 3.8rem
    }
}

.hero__cap {
    font-size: 2.5rem;
    line-height: 3.1rem;
    font-family: Lora, serif;
    font-style: italic;
    display: block
}

@media (max-width:991px) {
    .hero__cap {
        font-size: 2rem;
        line-height: 2.6rem
    }
}

.hero__container {
    position: absolute;
    left: 0;
    right: 0
}

.hero__container--social {
    top: 50%
}

@media (max-width:991px) {
    .hero__container--social {
        display: none
    }
}

.hero__container--btn {
    bottom: 0
}

.hero__btn {
    position: absolute;
    top: 0;
    right: 15px;
    background-color: #1d2769;
    border-color: #1d2769;
    z-index: 1;
    transform: translateY(-50%)
}

@media (max-width:575px) {
    .hero__btn {
        right: 0;
        padding: 2rem 6rem 2rem 2.5rem
    }
}

.hero__social {
    position: absolute;
    top: 50%;
    right: 15px;
    z-index: 1;
    transform: translateY(-50%)
}

.hero__social li {
    margin: .5rem 0
}

.hero__social li a {
    display: block;
    padding: .5rem
}

.hero__explore {
    position: absolute;
    top: 0;
    left: 10%;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: .1rem;
    color: #333;
    padding: 1.5rem 1.5rem 1.5rem 2.2rem;
    text-transform: uppercase
}

@media (max-width:991px) {
    .hero__explore {
        display: none
    }
}

.hero__explore-icon {
    position: absolute;
    top: 1.8rem;
    left: 0;
    display: block;
    line-height: 1.2rem;
    transform: translateY(-50%)
}

.hero__explore-icon:after,
.hero__explore-icon:before,
.hero__explore-icon [class*=" ico-"],
.hero__explore-icon [class^=ico-] {
    content: "\E90B";
    font-family: icomoon;
    position: absolute;
    left: 0;
    animation: indicator .6s linear infinite;
    color: #333;
    animation-play-state: paused
}

.hero__explore-icon:before {
    top: -.7rem;
    animation-delay: .2s
}

.hero__explore-icon:after {
    top: .7rem;
    animation-delay: .4s
}

@keyframes indicator {
    0% {
        color: rgba(51, 51, 51, 0)
    }

    to {
        color: #333
    }
}

.hero__explore:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1
}

.hero__explore:hover .hero__explore-icon:after,
.hero__explore:hover .hero__explore-icon:before,
.hero__explore:hover [class*=" ico-"],
.hero__explore:hover [class^=ico-] {
    animation-play-state: running
}

.hero--watermark .hero__inner {
    position: relative;
    z-index: 1
}

.hero--watermark .hero__inner:before {
    content: "\E923";
    font-family: icomoon;
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 28rem;
    line-height: 28rem;
    height: 28rem;
    opacity: .2;
    z-index: -1;
    transform: translate(-50%, -50%)
}

@media (max-width:991px) {
    .hero--watermark .hero__inner:before {
        font-size: 18rem;
        line-height: 18rem;
        height: 18rem
    }
}

@media (max-width:991px) {
    .hero--slider .hero__row {
        padding-bottom: 18rem
    }
}

.hero--slider .hero__inner {
    text-align: left
}

@media (min-width:992px) {
    .hero--slider .hero__inner {
        padding-left: 10rem;
        padding-right: 15%
    }
}

@media (min-width:992px) {
    .hero--slider .is-locked .hero__inner {
        padding-left: 0
    }
}

.hero .tags,
.hero p {
    color: inherit
}

.hero .tags {
    font-size: 2rem
}

.hero .tags .tag {
    color: #fff
}

.hero video {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.section__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between
}

.section__body,
.section__footer {
    margin-top: 4rem
}

.section__title {
    flex: 1 0;
    font-size: 3.8rem;
    line-height: 4.4rem;
    margin-bottom: 0 !important
}

@media (max-width:991px) {
    .section__title {
        font-size: 2.8rem;
        line-height: 3.4rem
    }
}

.section[class*=" bgcolor-"],
.section[class^=bgcolor-] {
    padding-top: 7rem;
    padding-bottom: 7rem
}

@media (min-width:992px) {

    .newsroom-grid-x .thumbnail,
    .newsroom-grid-y [class*=" col-"]:last-child .thumbnail,
    .newsroom-grid-y [class^=col-]:last-child .thumbnail {
        border-bottom: 0
    }
}

.newsroom__header {
    justify-content: normal
}

.newsroom__title {
    max-width: 75rem
}

@media (min-width:992px) {
    .newsroom__cell {
        display: flex;
        flex-direction: column
    }
}

.newsroom__content {
    margin-bottom: 3rem
}

.newsroom__btn {
    margin-top: auto;
    text-align: right
}

.course__cell--content {
    align-self: center
}

@media (min-width:992px) {
    .course__cell--content {
        order: 2
    }
}

@media (max-width:991px) {
    .course__cell--content {
        margin-bottom: 9rem
    }
}

@media (min-width:992px) {
    .course__cell--img {
        order: 1
    }
}

@media (min-width:992px) {
    .course__content {
        padding: 8% 0 16rem 8%
    }
}

.course__img {
    padding-bottom: 100%;
    height: 100%
}

@media (min-width:576px) and (max-width:991px) {
    .course__img {
        padding-bottom: 70%
    }
}

.course__img img {
    position: absolute;
    top: 0;
    right: 0;
    width: 50vw;
    max-width: none
}

@media (max-width:991px) {
    .course__img img {
        right: 50%;
        width: 100vw;
        transform: translateX(50%)
    }
}

.course__title {
    font-size: 2.2rem;
    line-height: 2.8rem
}

.course__figure {
    color: #1d2769;
    text-transform: uppercase
}

.course__figure:not(:first-child) {
    margin-top: 2rem
}

.course__figure:not(:last-child) {
    margin-bottom: 2rem
}

.course__list {
    overflow: hidden
}

.course__list li {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
    break-inside: avoid
}

.course__list li:not(:first-child) {
    margin-top: 1rem
}

.course__list li:not(:last-child) {
    margin-bottom: 1rem
}

.course__list label {
    margin: 0 !important
}

.course__list p:not(:first-child) {
    margin-top: 0
}

.course__list p:not(:last-child) {
    margin-bottom: 1rem
}

.course__btn {
    position: absolute;
    right: 0;
    bottom: 5rem;
    background-color: #1d2769;
    border-color: #1d2769;
    transform: translateX(50%)
}

@media (max-width:991px) {
    .course__btn {
        top: 0;
        right: 50%;
        bottom: auto;
        transform: translate(50%, -50%)
    }
}

.course--2 .course__figure {
    color: #ffb500
}

.course--2 .course__btn {
    background-color: #ffb500;
    color: #000 !important;
    border-color: #ffb500
}

.course--2 a:active,
.course--2 a:focus,
.course--2 a:hover {
    color: #ffb500
}

.course--3 .course__figure {
    color: #a6192e
}

.course--3 .course__btn {
    background-color: #a6192e;
    color: #fff !important;
    border-color: #a6192e
}

.course--3 a:active,
.course--3 a:focus,
.course--3 a:hover {
    color: #a6192e
}

.course--4 .course__figure {
    color: #56b7e6
}

.course--4 .course__btn {
    background-color: #56b7e6;
    color: #fff !important;
    border-color: #56b7e6
}

.course--4 a:active,
.course--4 a:focus,
.course--4 a:hover {
    color: #56b7e6
}

.c-profiles {
    position: relative;
    background-color: #1d2769;
    color: #fff;
    z-index: 1
}

@media (max-width:991px) {
    .c-profiles {
        background-color: transparent !important
    }
}

@media (max-width:991px) {
    .c-profiles__wrap {
        max-width: 45rem;
        margin: auto
    }
}

@media (max-width:767px) {
    .c-profiles__wrap {
        max-width: 30rem
    }
}

.c-profiles__cell--content {
    position: relative;
    background-color: #1d2769;
    align-self: center;
    padding-top: 5rem;
    padding-bottom: 5rem
}

.c-profiles__cell--content:before {
    position: absolute;
    top: 0;
    left: 50%;
    background-color: inherit;
    box-sizing: content-box;
    display: block;
    width: 100vw;
    height: 100%;
    padding-bottom: 80%;
    z-index: -1;
    transform: translateX(-50%)
}

@media (max-width:991px) {
    .c-profiles__cell--content:before {
        content: ""
    }
}

@media (max-width:991px) {
    .c-profiles__cell--slider {
        margin-bottom: 5rem
    }
}

.c-profiles p {
    color: inherit
}

@media (min-width:992px) {
    .c-profiles .slider-wrap {
        height: 100%
    }
}

.c-profiles .slider-nav--default {
    color: #666
}

.c-cold {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 55rem;
    z-index: 1
}

@media (max-width:767px) {
    .c-cold {
        align-items: flex-start
    }
}

.c-cold:last-child {
    margin-bottom: -7rem
}

.c-cold__wrap {
    flex: 1 0 100%;
    padding: 5rem 0
}

.c-cold__img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1
}

@media (max-width:767px) {
    .c-cold__img img {
        -o-object-position: right;
        object-position: right
    }
}

.c-cold__img:before {
    position: absolute;
    top: 0;
    left: 0;
    background-image: linear-gradient(180deg, #edeef3 50%, transparent);
    width: 100%;
    height: 50%
}

@media (max-width:767px) {
    .c-cold__img:before {
        content: ""
    }
}

.c-cold:after {
    content: "";
    display: block;
    font-size: 0;
    min-height: inherit
}

.c-cold--dark {
    color: #fff
}

@media (max-width:767px) {
    .c-cold--dark {
        align-items: flex-end
    }
}

.c-cold--dark .c-cold__img img {
    -o-object-position: center;
    object-position: center
}

.c-cold--dark .c-cold__img:before {
    content: "";
    background-image: linear-gradient(90deg, rgba(0, 0, 0, .6) 0, transparent);
    height: 100%
}

@media (max-width:767px) {
    .c-cold--dark .c-cold__img:before {
        background-image: linear-gradient(0deg, rgba(0, 0, 0, .6) 0, transparent)
    }
}

.c-cold--dark p {
    color: inherit
}

@media (min-width:992px) {
    .c-courses__header {
        display: flex;
        align-items: center;
        justify-content: space-between
    }
}

@media (max-width:991px) {
    .c-courses__tabs {
        margin-top: 3rem
    }
}

.c-courses__tab {
    font-size: 1.4rem;
    font-weight: 600;
    padding: .5rem 1rem;
    border-bottom: .2rem solid transparent;
    text-transform: uppercase
}

@media (min-width:992px) {
    .c-courses__tab.is-active {
        color: #1d2769;
        border-color: #1d2769
    }

    .c-courses__tab.is-active.c-courses__tab--2 {
        color: #ffb500;
        border-color: #ffb500
    }

    .c-courses__tab.is-active.c-courses__tab--3 {
        color: #a6192e;
        border-color: #a6192e
    }

    .c-courses__tab.is-active.c-courses__tab--4 {
        color: #56b7e6;
        border-color: #56b7e6
    }
}

@media (max-width:991px) {
    .swiper-slide-active .c-courses__tab {
        color: #1d2769;
        border-color: #1d2769
    }

    .swiper-slide-active .c-courses__tab--2 {
        color: #ffb500;
        border-color: #ffb500
    }

    .swiper-slide-active .c-courses__tab--3 {
        color: #a6192e;
        border-color: #a6192e
    }

    .swiper-slide-active .c-courses__tab--4 {
        color: #56b7e6;
        border-color: #56b7e6
    }
}

.c-courses__body {
    margin-top: 4rem
}

@media (max-width:991px) {
    .c-students__wrap {
        max-width: 45rem;
        margin: auto
    }
}

@media (max-width:767px) {
    .c-students__wrap {
        max-width: 30rem
    }
}

.c-students__row {
    align-items: flex-end
}

@media (max-width:991px) {

    .c-students__cell--content,
    .c-students__cell--promo {
        margin-bottom: 5rem
    }
}

@media (min-width:992px) {
    .c-students__cell--content {
        padding-bottom: 24rem
    }
}

@media (min-width:992px) {
    .c-students__cell--promo {
        padding-bottom: 29rem
    }
}

@media (min-width:992px) {
    .c-students__cell--slider {
        padding: 0 8%
    }
}

@media (max-width:991px) {
    .c-students__cell--slider {
        margin-bottom: 8rem
    }
}

.c-students__title span {
    color: #1d2769
}

.c-students__slider {
    position: relative;
    color: #fff;
    padding-bottom: 7rem;
    z-index: 1
}

@media (max-width:991px) {
    .c-students__slider {
        padding-bottom: 5rem
    }
}

.c-students__slider:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    background-color: #1d2769;
    display: block;
    height: 19rem;
    width: 100vw;
    z-index: -1;
    transform: translateX(-50%)
}

.c-students__btn {
    text-align: center
}

@media (min-width:992px) {
    .c-students__btn {
        position: absolute;
        left: calc(100% - 3rem);
        bottom: 15rem;
        z-index: 1
    }
}

@media (max-width:991px) {
    .c-students__btn {
        margin-top: 3.5rem;
        margin-bottom: -8.5rem
    }
}

.c-students__discover {
    position: absolute;
    top: calc(100% - 15.5rem);
    right: calc(100% + 4rem);
    width: 25rem;
    text-align: right
}

@media (max-width:991px) {
    .c-students__discover {
        display: none
    }
}

.c-students__discover p {
    color: inherit
}

.c-students:not(:first-child) {
    margin-top: 7rem
}

.c-promo {
    position: relative;
    padding-top: 10rem;
    z-index: 1
}

@media (max-width:991px) {
    .c-promo {
        padding-top: 7rem;
        padding-bottom: 7rem
    }
}

.c-promo__row {
    margin: 0 -3%
}

.c-promo__cell {
    padding: 0 3%
}

@media (max-width:991px) {
    .c-promo__cell--box {
        margin-bottom: 7rem
    }
}

@media (min-width:992px) {
    .c-promo__cell--content {
        padding-bottom: 5rem
    }
}

.c-promo__box {
    background-color: #fff;
    height: 100%;
    padding: 4rem 4rem 0
}

@media (max-width:991px) {
    .c-promo__box {
        padding: 2.5rem
    }
}

.c-promo__logo {
    max-width: 21rem;
    max-height: 8rem
}

.c-promo__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1
}

@media (max-width:991px) {
    .c-promo__bg {
        display: none
    }
}

.c-promo__bg:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, .3);
    height: 100%;
    width: 100%
}

.c-keyfigures {
    position: relative;
    color: #fff;
    z-index: 1
}

.c-keyfigures:last-child {
    margin-bottom: -7rem
}

.c-keyfigures__inner {
    position: relative;
    padding: 15rem 0
}

@media (max-width:767px) {
    .c-keyfigures__inner {
        padding: 7rem 0 10rem
    }
}

.c-keyfigures__box {
    display: flex;
    align-items: center;
    max-width: 20rem;
    margin: auto
}

.c-keyfigures__box .inline-svg {
    fill: #fff;
    width: 3rem;
    height: 3rem;
    margin-right: 2rem
}

.c-keyfigures__body {
    flex: 1
}

.c-keyfigures__figure {
    font-family: Lora, serif;
    font-size: 4rem;
    line-height: 4.6rem;
    padding-bottom: 1rem
}

.c-keyfigures__figure:not(:first-child) {
    margin-top: 2rem
}

.c-keyfigures__figure:not(:last-child) {
    margin-bottom: 2rem
}

.c-keyfigures__label {
    font-size: 1.8rem;
    line-height: 2.4rem;
    font-weight: 500;
    letter-spacing: .1rem
}

.c-keyfigures__asterisk {
    position: absolute;
    left: 0;
    bottom: 3rem;
    font-style: italic;
    width: 100%;
    text-align: center
}

.c-keyfigures__img {
    z-index: -1
}

.c-keyfigures__img,
.c-keyfigures__img:before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.c-keyfigures__img:before {
    content: "";
    background-color: rgba(0, 0, 0, .5)
}

.c-keyfigures p {
    color: inherit
}

.affluences-timetable .affluences-timetable-container .day.closed {
    color: #7a7e80 !important
}

.filter .js-form-type-select:focus-visible .form-control,
.filter .js-form-type-select:focus-within .form-control,
.filter .js-form-type-select:focus .form-control {
    border-width: .3rem
}

@media (min-width:992px) {
    .navigation {
        min-height: auto !important
    }
}

@media (max-width:991px) {
    .navigation {
        margin: 4rem 1.5rem;
        overflow: hidden;
        transform: translateZ(0)
    }
}

@media (min-width:992px) {
    .navigation__list {
        display: flex;
        align-items: center;
        margin: 0 -1rem
    }
}

@media (min-width:992px) {
    .navigation__item.is-active .navigation__trigger:before {
        opacity: 1;
        transform: translate(-50%)
    }
}

.navigation__control {
    position: relative
}

.navigation__link {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase
}

@media (min-width:992px) {
    .navigation__link {
        padding: 2.5rem 1rem
    }
}

@media (min-width:992px) and (max-width:1199px) {
    .navigation__link {
        padding: 2.6rem 1rem;
        font-size: 1.3rem
    }
}

@media (max-width:991px) {
    .navigation__link {
        padding: 1.2rem 5rem 1.2rem 0
    }

    .navigation__link:only-child {
        padding: 1.2rem 0
    }
}

@media (min-width:992px) {
    .navigation__trigger {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1
    }
}

@media (max-width:991px) {
    .navigation__trigger {
        position: absolute;
        top: 0;
        right: 0;
        width: 5rem;
        height: 100%;
        z-index: 1
    }
}

@media (max-width:991px) {

    .navigation__trigger:after,
    .navigation__trigger:before {
        content: "";
        position: absolute;
        top: 50%;
        right: 2rem;
        width: 1.4rem;
        border-bottom: .2rem solid #e6332a;
        z-index: 1;
        transform: translateY(-50%);
        transition: all .2s ease-in-out
    }
}

@media (min-width:992px) {
    .navigation__trigger:before {
        content: "";
        position: absolute;
        left: 50%;
        bottom: 1.5rem;
        display: block;
        width: 3rem;
        opacity: 0;
        border-bottom: .3rem solid #e6332a;
        transform: translate(-50%, 1rem);
        transition: all .2s ease-in-out
    }
}

@media (max-width:991px) {
    .navigation__trigger:before {
        transform: translateY(-50%) rotate(90deg)
    }
}

.navigation__back {
    position: relative;
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    color: #e6332a;
    width: 100%;
    padding: 1.5rem 2.5rem;
    text-align: left;
    text-transform: uppercase;
    border-bottom: .1rem solid #e5e5e5
}

@media (min-width:992px) {
    .navigation__back {
        display: none
    }
}

.navigation__back:before {
    content: "\E90C";
    font-family: icomoon;
    position: absolute;
    top: 50%;
    left: 0;
    font-size: 1.2rem;
    transform: translateY(-50%)
}

.navigation__wrapper {
    color: #666
}

@media (min-width:992px) {
    .navigation__wrapper {
        position: absolute;
        top: 100%;
        left: 0;
        background-color: #fff;
        max-height: calc(100vh - 10.2rem);
        width: 100%;
        padding: 5rem 0;
        overflow: auto;
        opacity: 0;
        visibility: hidden;
        box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, .1);
        z-index: 99;
        transform: translateY(2rem);
        transition: all .2s ease-in-out
    }

    .page--front .header:not(.is-scrolling) .navigation__wrapper {
        max-height: calc(100vh - 14.2rem)
    }
}

@media (min-width:992px) {
    .navigation__wrapper.is-active {
        opacity: 1;
        visibility: visible;
        transform: translateY(0)
    }
}

@media (min-width:992px) {
    .navigation__wrap {
        max-width: 80rem;
        margin: auto;
        overflow: hidden
    }
}

@media (max-width:991px) {
    .navigation__wrap {
        min-height: auto !important
    }
}

@media (min-width:992px) {
    .navigation__alpha-list {
        position: relative;
        width: 50%
    }
}

@media (max-width:991px) {
    .navigation__alpha-list {
        position: fixed;
        top: 0;
        right: -100%;
        background-color: #fff;
        width: 100%;
        min-height: 100%;
        z-index: 5;
        transition: all .2s ease-in-out
    }
}

@media (max-width:991px) {
    .navigation__alpha-list.is-active {
        right: 0
    }
}

.navigation__alpha-item {
    border-bottom: .1rem solid #e5e5e5
}

.navigation__alpha-item:first-child {
    border-top: .1rem solid #e5e5e5
}

.navigation__alpha-item.is-active .navigation__alpha-link {
    position: relative;
    background-color: #f2f2f2;
    margin-right: -.1rem;
    z-index: 1
}

.navigation__alpha-item.is-active .navigation__alpha-trigger:before {
    transform: translateY(-50%)
}

.navigation__alpha-control {
    position: relative
}

.navigation__alpha-link {
    display: block;
    font-size: 1.5rem;
    font-weight: 500;
    padding: 1.5rem 5rem 1.5rem 2.5rem
}

.navigation__alpha-link:only-child {
    padding: 1.5rem 2.5rem
}

.navigation__alpha-trigger {
    position: absolute;
    top: 0;
    right: 0;
    width: 5rem;
    height: 100%;
    z-index: 2
}

.navigation__alpha-trigger:after,
.navigation__alpha-trigger:before {
    content: "";
    position: absolute;
    top: 50%;
    right: 2rem;
    width: 1.4rem;
    border-bottom: .2rem solid #e6332a;
    z-index: 1;
    transform: translateY(-50%);
    transition: all .2s ease-in-out
}

.navigation__alpha-trigger:before {
    transform: translateY(-50%) rotate(90deg)
}

.navigation__alpha-back {
    position: relative;
    background-color: #fff;
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    color: #e6332a;
    width: 100%;
    padding: 1.5rem 2.5rem;
    text-align: left;
    border-bottom: .1rem solid #e5e5e5
}

@media (min-width:992px) {
    .navigation__alpha-back {
        display: none
    }
}

.navigation__alpha-back:before {
    content: "\E90C";
    font-family: icomoon;
    position: absolute;
    top: 50%;
    left: 0;
    font-size: 1.2rem;
    transform: translateY(-50%)
}

@media (min-width:992px) {
    .navigation__beta-list {
        position: absolute;
        top: 0;
        left: 100%;
        width: 100%;
        background-color: #f2f2f2;
        padding: 3rem 20%;
        opacity: 0;
        visibility: hidden;
        border-top: .1rem solid #e5e5e5;
        border-left: .1rem solid #e5e5e5;
        transition: all .2s ease-in-out
    }
}

@media (max-width:991px) {
    .navigation__beta-list {
        position: fixed;
        top: 0;
        left: auto;
        right: -100%;
        background-color: #f2f2f2;
        width: 100%;
        min-height: 100%;
        z-index: 9;
        transition: all .2s ease-in-out
    }
}

@media (min-width:992px) {
    .navigation__beta-list.is-active {
        opacity: 1;
        visibility: visible
    }
}

@media (max-width:991px) {
    .navigation__beta-list.is-active {
        right: 0
    }
}

.navigation__beta-control {
    position: relative
}

.navigation__beta-link {
    display: block;
    font-size: 1.5rem;
    padding: 1.5rem 0
}

@media (max-width:991px) {
    .navigation__beta-link {
        padding: 1.5rem 2.5rem
    }
}

.navigation__beta-trigger {
    position: absolute;
    top: 0;
    right: 0
}

.o-toolbar {
    position: fixed;
    top: 0;
    left: 0;
    background-color: #000;
    display: flex;
    color: #fff;
    width: 100%;
    height: 3rem;
    z-index: 500
}

@media (max-width:991px) {
    .o-toolbar {
        display: none
    }
}

.o-toolbar__cell--contrast,
.o-toolbar__cell--fz {
    border-right: .1rem solid hsla(0, 0%, 100%, .4)
}

.o-toolbar__cell--language {
    margin-left: auto;
    border-left: .1rem solid hsla(0, 0%, 100%, .4)
}

.o-toolbar__fz,
.o-toolbar__language {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    text-transform: uppercase
}

.o-toolbar__fz {
    padding: 0 1rem
}

.o-toolbar__fz li button {
    padding: .5rem .4rem
}

.o-toolbar__language {
    padding: 0 2rem
}

.o-toolbar__language li a {
    display: block;
    padding: .5rem .5rem .7rem
}

.o-toolbar__contrast {
    display: block;
    font-size: 1.8rem;
    line-height: 1.8rem;
    padding: .5rem 1rem
}

.flash {
    position: relative;
    background-color: #e6332a;
    color: #fff
}

.flash__inner {
    padding: 1.5rem 5.5rem 1.5rem 15.5rem
}

@media (max-width:767px) {
    .flash__inner {
        padding: 2rem 5.5rem 2rem 2rem
    }
}

.flash__header {
    display: flex;
    align-items: center
}

.flash__body {
    padding-top: 1rem
}

.flash__ico {
    font-size: 3rem;
    color: rgba(0, 0, 0, .4);
    width: 4rem;
    flex: 0 0 4rem;
    height: 100%;
    margin-right: 1rem;
    border-right: .1rem solid rgba(0, 0, 0, .2)
}

@media (min-width:768px) {
    .flash__ico {
        position: absolute;
        top: 0;
        left: 0;
        width: 11.6rem
    }
}

@media (min-width:768px) {

    .flash__ico [class*=" ico-"],
    .flash__ico [class^=ico-] {
        position: absolute;
        top: 50%;
        left: 50%;
        display: block;
        transform: translate(-50%, -50%)
    }
}

.flash__close {
    position: absolute;
    top: 0;
    right: 0;
    background-color: #fff;
    font-size: 1.2rem;
    color: #e6332a;
    height: 100%;
    width: 4rem
}

@media (max-width:767px) {
    .flash__close {
        height: 4rem
    }
}

.flash__close [class*=" ico-"],
.flash__close [class^=ico-] {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    transform: translate(-50%, -50%)
}

.flash p {
    color: inherit
}

.header {
    position: fixed;
    top: 3rem;
    left: 0;
    background-color: #fff;
    box-shadow: 0 1.5rem 1rem -.8rem rgba(0, 0, 0, .1);
    z-index: 99;
    transition: all .2s ease-in-out
}

@media (min-width:1200px) {
    .header {
        top: 3rem
    }
}

@media (max-width:1199px) {
    .header {
        width: 100%
    }
}

@media (min-width:992px) and (max-width:1199px) {
    .header {
        top: 7rem
    }
}

.header__content {
    display: flex;
    align-items: center;
    margin: 0 -1rem;
    transition: all .2s ease-in-out
}

@media (min-width:992px) and (max-width:1199px) {
    .header__content {
        margin: 0 -.5rem
    }
}

.header__item {
    padding: 0 1rem
}

@media (min-width:992px) and (max-width:1199px) {
    .header__item {
        padding: 0 .5rem
    }
}

.header__item--trigger {
    font-size: 0
}

@media (min-width:992px) {
    .header__item--trigger {
        display: none
    }
}

.header__item--menu {
    margin-left: auto
}

.header__item--searchbox {
    padding: 0
}

@media (max-width:991px) {
    .header__item--donation {
        display: none
    }
}

.header__logo {
    display: block;
    width: 13rem;
    height: 5.2rem;
    padding: 1rem 0;
    box-sizing: content-box
}

@media (min-width:992px) and (max-width:1199px) {
    .header__logo {
        width: 11rem;
        height: 4.4rem;
        padding: 1.4rem 0
    }
}

@media (max-width:991px) {
    .header__logo {
        width: 10rem;
        height: 4rem;
        padding: 1.5rem 0
    }
}

.header__donation,
.header__logo .inline-svg {
    transition: all .2s ease-in-out
}

.header__donation {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 500;
    color: #e6332a;
    padding: .8rem 1.2rem;
    border: .1rem solid
}

.header__donation:active,
.header__donation:focus,
.header__donation:hover {
    background-color: #e6332a;
    color: #fff;
    border-color: #e6332a
}

.header__language {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: 700;
    color: #999;
    text-transform: uppercase
}

.header__language li a {
    display: block;
    padding: .5rem
}

.header__language li.is-active {
    color: #666
}

.header__social {
    display: flex;
    align-items: center;
    justify-content: center
}

@media (min-width:992px) {
    .page--front .header:not(.is-scrolling) {
        background-color: transparent;
        color: #fff;
        box-shadow: none
    }

    .page--front .header:not(.is-scrolling) .header__content {
        padding: 2rem 0
    }

    .page--front .header:not(.is-scrolling) .header__logo .inline-svg {
        fill: #fff !important
    }
}

@media (min-width:992px) and (min-width:1200px) {
    .page--front .header:not(.is-scrolling) .header__logo .inline-svg {
        transform: scale(1.3)
    }
}

@media (min-width:992px) {
    .page--front .header:not(.is-scrolling) .header__logo .inline-svg * {
        fill: inherit !important
    }

    .page--front .header:not(.is-scrolling) .header__donation {
        color: #fff
    }
}

@media (max-width:991px) {
    .menu {
        position: absolute;
        top: 100%;
        left: 0;
        background-color: #fff;
        width: 100%;
        max-height: calc(100vh - 7rem);
        opacity: 0;
        visibility: hidden;
        overflow: auto;
        transition: all .2s ease-in-out
    }

    .page--logged-in .menu {
        max-height: calc(100vh - 11rem)
    }
}

.menu-trigger:not(.is-active) .hamburger-inner:before {
    width: 66.666%
}

.menu-trigger:not(.is-active) .hamburger-inner:after {
    width: 33.333%
}

.menu-trigger .hamburger-inner,
.menu-trigger .hamburger-inner:after,
.menu-trigger .hamburger-inner:before {
    transition-property: all
}

@media (min-width:992px) {
    .menu__wrap {
        display: flex;
        align-items: center
    }
}

@media (max-width:991px) {
    .menu__wrap {
        max-width: 32rem;
        margin: auto
    }
}

.menu__item--navigation {
    flex: 1 0 auto
}

@media (max-width:991px) {
    .menu__item--navigation {
        margin-bottom: 2rem
    }
}

@media (min-width:992px) {

    .menu__item--donation,
    .menu__item--language {
        display: none
    }
}

@media (max-width:991px) {

    .menu__item--donation,
    .menu__item--language {
        vertical-align: middle;
        display: inline-block;
        width: 49.5%;
        text-align: center
    }
}

.menu__item--social {
    position: relative;
    color: #666;
    margin-top: 2rem;
    z-index: 1
}

@media (min-width:992px) {
    .menu__item--social {
        display: none
    }
}

.menu__item--social:before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    background-color: #f2f2f2;
    height: 100%;
    width: 100vw;
    z-index: -1;
    transform: translate(-50%)
}

.menu__item--social li {
    margin: 0 .5rem
}

.menu__item--social a {
    display: block;
    padding: .8rem 1rem
}

@media (max-width:991px) {
    .menu.is-active {
        opacity: 1;
        visibility: visible
    }
}

.searchbox {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #1d2769;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    width: 100%;
    height: calc(100vh - 3rem);
    opacity: 0;
    visibility: hidden;
    padding: 8rem;
    z-index: 99;
    transition: all .2s ease-in-out
}

@media (min-width:1200px) {
    .searchbox {
        padding: 8rem;
        height: calc(100vh - 3rem)
    }
}

@media (min-width:992px) and (max-width:1199px) {
    .searchbox {
        height: calc(100vh - 7rem)
    }
}

@media (max-width:991px) {
    .searchbox {
        padding: 8rem 2rem
    }
}

.searchbox__inner {
    position: relative;
    width: 100%;
    max-width: 70rem
}

.searchbox__input {
    width: 100%;
    background-color: transparent;
    font-size: 2.8rem;
    font-weight: 300;
    color: inherit;
    height: 6rem;
    padding: .8rem 6rem .8rem 2.5rem;
    border: 0;
    border-bottom: .1rem solid
}

.searchbox__input::-webkit-input-placeholder {
    color: inherit
}

.searchbox__input::-moz-placeholder {
    color: inherit
}

.searchbox__input:-ms-input-placeholder {
    color: inherit
}

.searchbox__input:-moz-placeholder {
    color: inherit
}

@media (max-width:991px) {
    .searchbox__input {
        font-size: 1.8rem;
        height: 5rem;
        padding: .8rem 5rem .8rem 0
    }
}

.searchbox__sub {
    position: absolute;
    top: 0;
    right: 0;
    width: 6rem;
    height: 100%;
    font-size: 2.4rem
}

@media (max-width:991px) {
    .searchbox__sub {
        width: 5rem
    }
}

.searchbox__close {
    position: absolute;
    top: 2rem;
    left: 50%;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .1rem;
    padding-top: 3rem;
    text-transform: uppercase;
    transform: translateX(-50%)
}

.searchbox__close:after,
.searchbox__close:before {
    content: "\E90E";
    font-family: icomoon;
    position: absolute;
    left: 50%;
    transform: translateX(-50%)
}

.searchbox__close:before {
    top: 0
}

.searchbox__close:after {
    top: 1rem
}

.searchbox__label {
    position: absolute;
    top: 50%;
    left: 3rem;
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .1rem;
    text-transform: uppercase;
    transform: translate(-50%, -50%) rotate(-90deg)
}

@media (max-width:991px) {
    .searchbox__label {
        display: none
    }
}

.searchbox__label [class*=" ico-"],
.searchbox__label [class^=ico-] {
    font-size: 1.6rem;
    margin-left: 1.5rem
}

.searchbox.is-active {
    opacity: 1;
    visibility: visible
}

.background-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .5);
    display: none;
    z-index: 99
}

.background-overlay.is-active {
    display: block
}

body.overlay-active {
    overflow: hidden
}

.profilebox {
    position: static
}

.profilebox__trigger {
    padding: 0;
    text-align: center
}

.profilebox__trigger [class*=" ico-"],
.profilebox__trigger [class^=ico-] {
    font-size: 2.2rem
}

.profilebox__trigger span {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .1rem;
    text-transform: uppercase
}

.profilebox__wrap {
    max-width: 80rem;
    padding: 5rem 0;
    margin: auto
}

@media (max-width:991px) {
    .profilebox__wrap {
        max-width: 32rem
    }
}

.profilebox__dropdown {
    font-size: inherit;
    width: 100%;
    max-height: calc(100vh - 7rem);
    padding: 0;
    margin: 0;
    overflow: auto;
    border: 0;
    border-radius: 0
}

.page--logged-in .profilebox__dropdown {
    max-height: calc(100vh - 11rem)
}

@media (min-width:992px) {
    .profilebox__list {
        -moz-columns: 2;
        column-count: 2;
        -moz-column-gap: 3rem;
        column-gap: 3rem;
        transform: translateZ(0)
    }
}

.profilebox__item {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
    break-inside: avoid;
    margin-bottom: -.1rem;
    border-top: .1rem solid #e5e5e5;
    border-bottom: .1rem solid #e5e5e5
}

.profilebox__link {
    display: block;
    font-weight: 500;
    padding: 1.3rem 2.5rem
}

.footer__upper {
    position: relative;
    background-color: #fafafa;
    color: #000;
    padding: 4rem 0;
    border-top: .1rem solid #e5e5e5
}

.footer__lower {
    position: relative;
    background-color: #000;
    font-family: Ubuntu, sans-serif;
    color: #fff;
    padding: 2rem 0
}

.footer__logo {
    display: block;
    width: 15rem;
    margin-right: 4rem
}

.footer__nav {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -.9rem
}

.footer__nav li {
    padding: 0 .9rem;
    margin-bottom: 1rem
}

.footer__nav li a {
    display: inline-block;
    font-family: Ubuntu, sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    text-transform: uppercase
}

.footer__nav-wrap {
    border-bottom: .1rem solid #e5e5e5
}

@media (max-width:991px) {
    .footer__nav-wrap {
        padding: 1.5rem 0 1rem;
        border-top: .1rem solid #e5e5e5
    }
}

.footer__social {
    display: flex;
    margin: 0 -.5rem
}

@media (min-width:992px) {
    .footer__social {
        margin: 0 -1.5rem
    }
}

.footer__social li {
    margin: 0 .5rem
}

@media (min-width:992px) {
    .footer__social li {
        margin: 0 1.5rem
    }
}

.footer__social li a {
    background-color: #1d2769;
    display: block;
    font-size: 1.4rem;
    line-height: 3.2rem;
    color: #fff;
    width: 3rem;
    height: 3rem;
    border-radius: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center
}

.footer__social li a:active,
.footer__social li a:focus,
.footer__social li a:hover {
    background-color: #e6332a
}

.footer__contact {
    font-family: Ubuntu, sans-serif;
    color: #1d2769;
    border-bottom: .1rem solid
}

@media (min-width:992px) {
    .footer__contact {
        position: absolute;
        left: calc(-100% + 5.2rem);
        bottom: 0
    }
}

.footer__copyright {
    font-size: 1.4rem;
    letter-spacing: .1rem;
    text-align: center
}

.footer__credit {
    text-align: center
}

@media (max-width:767px) {
    .footer__credit:not(:first-child) {
        margin-top: 1.5rem
    }

    .footer__credit:not(:last-child) {
        margin-bottom: 1.5rem
    }
}

.footer__credit-label {
    font-size: 1.2rem
}

.footer__credit-logo {
    display: inline-block;
    width: 11rem;
    margin-left: 1rem
}

.footer .copyright-text {
    font-size: 1.4rem;
    letter-spacing: .1rem;
    text-align: center;
    line-height: 2.6rem;
    color: inherit;
    font-family: inherit;
    margin-bottom: 0
}

.footer p {
    font-family: Barlow, sans-serif;
    line-height: 2.6rem;
    color: inherit
}

.page-wrap {
    position: relative
}

@media (min-width:992px) {
    .page-wrap {
        padding-top: 10.2rem
    }

    .page--front .page-wrap {
        padding-top: 14.2rem
    }
}

@media (max-width:991px) {
    .page-wrap {
        padding-top: 7rem
    }
}

.wrapper {
    margin-top: 7rem;
    margin-bottom: 7rem
}

.tabulation {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999
}

.tabulation li a,
.tabulation li button {
    background-color: #000;
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .1rem;
    color: #fff;
    padding: .8rem 2rem;
    text-transform: uppercase;
    border: .2rem solid #fff
}

.page--logged-in {
    padding-top: 4rem !important;
    margin-left: 0 !important
}

.page--logged-in .toolbar {
    font-size: 85% !important
}

.page--logged-in .layers__triggers,
.page--logged-in .o-toolbar {
    top: 4rem
}

@media (min-width:992px) {
    .page--logged-in .layers__triggers {
        top: 7rem
    }
}

.page--logged-in .header {
    top: 7rem
}

@media (min-width:1200px) {
    .page--logged-in .header {
        top: 7rem
    }
}

@media (min-width:992px) and (max-width:1199px) {
    .page--logged-in .header {
        top: 11rem
    }
}

.page--logged-in .searchbox {
    height: calc(100vh - 7rem)
}

@media (min-width:1200px) {
    .page--logged-in .searchbox {
        height: calc(100vh - 7rem)
    }
}

@media (min-width:992px) and (max-width:1199px) {
    .page--logged-in .searchbox {
        height: calc(100vh - 11rem)
    }
}

@media (min-width:992px) {
    .page--logged-in .navigation__wrapper {
        max-height: calc(100vh - 14.2rem)
    }
}

@media (min-width:992px) {
    .page--logged-in.page--front .header:not(.is-scrolling) .navigation__wrapper {
        max-height: calc(100vh - 18.2rem)
    }
}

.eu-cookie-withdraw-tab {
    left: 0;
    transform: translateY(-100%);
    background-color: #e6332a !important;
    color: #fff
}

.sliding-popup-bottom.active:before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, .6)
}

.sliding-popup-bottom .checkbox input[type=checkbox]~label:before {
    border-color: #1d2769
}

.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: #fff;
    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__message h2,
.eu-cookies__message p {
    color: initial !important
}

.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;
    font-family: inherit !important;
    color: #e6332a;
    padding: 1rem;
    margin-top: 0 !important;
    height: 100%;
    text-transform: uppercase;
    background: none;
    border-radius: 0;
    border: .1rem solid #e6332a !important
}

@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: none;
    text-shadow: none;
    background-color: #e6332a !important;
    color: #fff !important;
    box-shadow: none !important
}

.eu-cookies__categories {
    display: none
}

.eu-cookies__categories.is-active {
    display: block
}

.eu-cookies__category {
    margin-bottom: 2.5rem
}

.eu-cookies__category label {
    color: initial !important
}

.eu-cookies__details {
    color: #1d2769;
    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
}

.layers {
    position: relative;
    z-index: 1
}

@media (max-width:1199px) {
    .layers {
        padding-top: 4rem
    }
}

@media (max-width:991px) {
    .layers {
        padding-top: 3rem
    }
}

.layers__triggers {
    position: fixed;
    top: 3rem;
    right: 0;
    display: flex;
    justify-content: flex-end;
    width: 100%;
    font-size: 0;
    z-index: 10
}

@media (min-width:1200px) {
    .layers__triggers {
        bottom: 0;
        z-index: -1
    }
}

@media (min-width:992px) and (max-width:1199px) {
    .layers__triggers {
        height: 4rem;
        line-height: 4rem
    }
}

@media (max-width:991px) {
    .layers__triggers {
        top: 0;
        height: 3rem;
        line-height: 3rem
    }
}

.layers__trigger {
    --loader-color: #e6332a;
    position: relative;
    flex: 1;
    color: #fff;
    padding: 0;
    text-align: center;
    transition: all .4s ease-in-out
}

.layers__trigger:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 5rem;
    height: 5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(farthest-side, var(--loader-color) 94%, transparent) top/.8rem .8rem no-repeat, conic-gradient(transparent 30%, var(--loader-color));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - .8rem), #000 0);
    opacity: 0;
    visibility: hidden;
    animation: loader 1s linear infinite;
    transition: opacity .2s ease-in-out, visibility .2s ease-in-out
}

@media (max-width:1199px) {
    .layers__trigger:before {
        position: fixed
    }
}

@keyframes loader {
    0% {
        transform: translate(-50%, -50%)
    }

    to {
        transform: translate(-50%, -50%) rotate(1turn)
    }
}

.layers__trigger:hover {
    cursor: pointer
}

@media (min-width:1200px) {
    .layers__trigger {
        flex: 0 0 4rem;
        width: 4rem
    }
}

.layers__trigger>span {
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .2rem;
    text-transform: uppercase;
    white-space: nowrap
}

@media (min-width:1200px) {
    .layers__trigger>span {
        position: absolute;
        top: 50%;
        left: 2rem;
        font-size: 1.4rem;
        transform: translate(-50%, -50%) rotate(90deg)
    }
}

@media (max-width:991px) {
    .layers__trigger>span {
        font-size: 1rem;
        letter-spacing: .1rem
    }
}

.layers__trigger--1 {
    background-color: #fff;
    color: #1d2769
}

@media (min-width:1200px) {
    .layers__trigger--1.is-active {
        opacity: 0;
        visibility: hidden
    }
}

.layers__trigger.is-active:before {
    opacity: 1;
    visibility: visible
}

@media (min-width:1200px) {
    .layers__trigger.is-active {
        flex: 1;
        width: auto
    }
}

@media (max-width:1199px) {
    .layers__trigger.is-loaded:before {
        opacity: 0;
        visibility: hidden
    }
}

.layers__item {
    display: none;
    background-color: #fff;
    opacity: 0;
    overflow: hidden
}

@media (min-width:992px) {
    .page--front .layers__item {
        margin-top: -11.2rem
    }
}

@media (min-width:1200px) {
    .layers__item--1 {
        margin-right: 12rem
    }

    .layers__item--1 .header {
        right: 12rem
    }
}

@media (min-width:1200px) {
    .layers__item--2 {
        margin-left: 8rem;
        margin-right: 8rem
    }

    .layers__item--2 .header {
        left: 8rem;
        right: 8rem
    }
}

@media (min-width:1200px) {
    .layers__item--3 {
        margin-left: 12rem;
        margin-right: 4rem
    }

    .layers__item--3 .header {
        left: 12rem;
        right: 4rem
    }
}

@media (min-width:1200px) {
    .layers__item--4 {
        margin-left: 16rem
    }

    .layers__item--4 .header {
        left: 16rem;
        right: 0
    }
}

.layers__item.flash-collapsing {
    transition: padding .2s ease-in-out
}

.layers__item.is-active {
    display: block;
    opacity: 1;
    visibility: visible
}

.layers__trigger--2 {
    --loader-color: #000;
    background-color: #ffb500
}

@media (max-width:1199px) {
    .layers__trigger--2 {
        --loader-color: #ffb500
    }
}

.layers__trigger--3 {
    --loader-color: #fff;
    background-color: #a6192e
}

@media (max-width:1199px) {
    .layers__trigger--3 {
        --loader-color: #a6192e
    }
}

.layers__trigger--4 {
    --loader-color: #fff;
    background-color: #56b7e6
}

@media (max-width:1199px) {
    .layers__trigger--4 {
        --loader-color: #56b7e6
    }
}

.layers__item--2 .color-primary,
.layers__item--2 .color-secondary,
.layers__item--2 a:active,
.layers__item--2 a:focus,
.layers__item--2 a:hover {
    color: #ffb500
}

.layers__item--2 .bgcolor-primary,
.layers__item--2 .bgcolor-secondary {
    background-color: #f2f2f2;
    color: #333
}

.layers__item--3 .color-primary,
.layers__item--3 .color-secondary,
.layers__item--3 a:active,
.layers__item--3 a:focus,
.layers__item--3 a:hover {
    color: #a6192e
}

.layers__item--3 .bgcolor-primary,
.layers__item--3 .bgcolor-secondary {
    background-color: #f2f2f2;
    color: #333
}

.layers__item--4 .color-primary,
.layers__item--4 .color-secondary,
.layers__item--4 a:active,
.layers__item--4 a:focus,
.layers__item--4 a:hover {
    color: #56b7e6
}

.layers__item--4 .bgcolor-primary,
.layers__item--4 .bgcolor-secondary {
    background-color: #f2f2f2;
    color: #333
}

.layers__item--2 .dash:before {
    border-color: #ffb500
}

.content-rte .layers__item--2 ol:not([class]) li:before,
.content-rte .layers__item--2 ul:not([class]) li:before,
.layers__item--2 .content-rte ol:not([class]) li:before,
.layers__item--2 .content-rte ul:not([class]) li:before,
.layers__item--2 .list-bullet li:before,
.layers__item--2 .list-decimal li:before {
    color: #ffb500
}

.layers__item--2 .list-social li a {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .list-social li a:active,
.layers__item--2 .list-social li a:focus,
.layers__item--2 .list-social li a:hover {
    background-color: #000;
    color: #fff
}

.layers__item--2 .checkbox input[type=checkbox]~label:after,
.layers__item--2 .checkbox input[type=radio]~label:after,
.layers__item--2 .radiobox input[type=checkbox]~label:after,
.layers__item--2 .radiobox input[type=radio]~label:after {
    background-color: #000
}

.layers__item--2 .inset-nav__current {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .inset-nav__list-link {
    color: #000
}

.layers__item--2 .pagination__item.active .pagination__link {
    background-color: #ffb500;
    color: #000;
    border-color: #ffb500
}

.layers__item--2 .filter__title {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .filter__trigger {
    background-color: #ffb500
}

.layers__item--2 .filter__trigger:after,
.layers__item--2 .filter__trigger:before {
    border-color: #000
}

.layers__item--2 .filter__body,
.layers__item--2 .filter__footer {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .filter.is-open .filter__title {
    color: rgba(0, 0, 0, .6)
}

.layers__item--2 .filter button.form-control,
.layers__item--2 .filter input.form-control,
.layers__item--2 .filter textarea.form-control {
    border-color: rgba(0, 0, 0, .5)
}

.layers__item--2 .filter .selectbox .dropdown-menu:not(.inner) {
    background-color: #e5cb8c;
    border-color: rgba(0, 0, 0, .5)
}

.layers__item--2 .filter .selectbox .dropdown-menu.inner {
    color: #000
}

.layers__item--2 .filter .selectbox .dropdown-item {
    color: inherit
}

.layers__item--2 .filter .selectbox .dropdown-item.active,
.layers__item--2 .filter .selectbox .dropdown-item:hover {
    background-color: #ecb839
}

.layers__item--2 .filter .selectbox .bs-searchbox {
    background-color: #fdc035;
    border-color: rgba(0, 0, 0, .5)
}

.layers__item--2 .filter .selectbox .bs-placeholder {
    color: rgba(0, 0, 0, .6)
}

.layers__item--2 .board__title:before {
    border-color: #ffb500
}

.layers__item--2 .thumbnail__date,
.layers__item--2 .thumbnail__type {
    color: #ffb500
}

.layers__item--2 .field-well,
.layers__item--2 .thumbnail__index {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .field-quote {
    color: #000
}

.layers__item--2 .field-quote:before,
.layers__item--2 .field-quote cite {
    color: #ffb500
}

.layers__item--2 .field-collapse__trigger {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .field-negative {
    color: #000
}

.layers__item--2 .field-negative__content:before,
.layers__item--2 .field-negative__img:before {
    background-color: #ffb500
}

.layers__item--2 .field-info {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .field-info a:active,
.layers__item--2 .field-info a:focus,
.layers__item--2 .field-info a:hover,
.layers__item--2 .field-negative a:active,
.layers__item--2 .field-negative a:focus,
.layers__item--2 .field-negative a:hover,
.layers__item--2 .field-well a:active,
.layers__item--2 .field-well a:focus,
.layers__item--2 .field-well a:hover {
    color: #000
}

.layers__item--2 .profile__quote:before {
    color: #ffb500
}

.layers__item--2 .profile__quote--bg:after {
    background-color: rgba(255, 181, 0, .1)
}

.layers__item--2 .profile-about__contact {
    color: #ffb500
}

.layers__item--2 .o-table th {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .scroll-nav-scrollbar .swiper-scrollbar-drag {
    background-color: #ffb500
}

.layers__item--2 .access-slide:nth-child(-n+3) {
    color: #ffb500
}

.layers__item--2 .access-slide:nth-child(-n+3) .inline-svg {
    fill: #ffb500
}

.layers__item--2 .sharebar__dropdown {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .sharebar__link {
    color: #000 !important
}

.layers__item--2 .sharebar.show .sharebar__trigger {
    background-color: #ffb500;
    color: #000;
    border-color: #ffb500
}

@media (min-width:992px) {
    .layers__item--2 .timeline__row:before {
        border-color: #ffb500
    }
}

.layers__item--2 .timeline__trigger:after,
.layers__item--2 .timeline__trigger:before {
    background-color: #ffb500
}

.layers__item--2 .timeline__indicator {
    background-color: #ffb500;
    color: #000
}

.layers__item--3 .dash:before {
    border-color: #a6192e
}

.content-rte .layers__item--3 ol:not([class]) li:before,
.content-rte .layers__item--3 ul:not([class]) li:before,
.layers__item--3 .content-rte ol:not([class]) li:before,
.layers__item--3 .content-rte ul:not([class]) li:before,
.layers__item--3 .list-bullet li:before,
.layers__item--3 .list-decimal li:before {
    color: #a6192e
}

.layers__item--3 .list-social li a {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .list-social li a:active,
.layers__item--3 .list-social li a:focus,
.layers__item--3 .list-social li a:hover {
    background-color: #000;
    color: #fff
}

.layers__item--3 .checkbox input[type=checkbox]~label:after,
.layers__item--3 .checkbox input[type=radio]~label:after,
.layers__item--3 .radiobox input[type=checkbox]~label:after,
.layers__item--3 .radiobox input[type=radio]~label:after {
    background-color: #000
}

.layers__item--3 .inset-nav__current {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .inset-nav__list-link {
    color: #000
}

.layers__item--3 .pagination__item.active .pagination__link {
    background-color: #a6192e;
    color: #fff;
    border-color: #a6192e
}

.layers__item--3 .filter__title {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .filter__trigger {
    background-color: #a6192e
}

.layers__item--3 .filter__trigger:after,
.layers__item--3 .filter__trigger:before {
    border-color: #fff
}

.layers__item--3 .filter__body,
.layers__item--3 .filter__footer {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .filter.is-open .filter__title {
    color: hsla(0, 0%, 100%, .6)
}

.layers__item--3 .filter button.form-control,
.layers__item--3 .filter input.form-control,
.layers__item--3 .filter textarea.form-control {
    border-color: hsla(0, 0%, 100%, .5)
}

.layers__item--3 .filter .selectbox .dropdown-menu:not(.inner) {
    background-color: #bf727e;
    border-color: hsla(0, 0%, 100%, .5)
}

.layers__item--3 .filter .selectbox .dropdown-menu.inner {
    color: #fff
}

.layers__item--3 .filter .selectbox .dropdown-item {
    color: inherit
}

.layers__item--3 .filter .selectbox .dropdown-item.active,
.layers__item--3 .filter .selectbox .dropdown-item:hover {
    background-color: #b33245
}

.layers__item--3 .filter .selectbox .bs-searchbox {
    background-color: #d0223f;
    border-color: hsla(0, 0%, 100%, .5)
}

.layers__item--3 .filter .selectbox .bs-placeholder {
    color: hsla(0, 0%, 100%, .6)
}

.layers__item--3 .board__title:before {
    border-color: #a6192e
}

.layers__item--3 .thumbnail__date,
.layers__item--3 .thumbnail__type {
    color: #a6192e
}

.layers__item--3 .field-well,
.layers__item--3 .thumbnail__index {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .field-quote {
    color: #000
}

.layers__item--3 .field-quote:before,
.layers__item--3 .field-quote cite {
    color: #a6192e
}

.layers__item--3 .field-collapse__trigger {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .field-negative {
    color: #fff
}

.layers__item--3 .field-negative__content:before,
.layers__item--3 .field-negative__img:before {
    background-color: #a6192e
}

.layers__item--3 .field-info {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .field-info a:active,
.layers__item--3 .field-info a:focus,
.layers__item--3 .field-info a:hover,
.layers__item--3 .field-negative a:active,
.layers__item--3 .field-negative a:focus,
.layers__item--3 .field-negative a:hover,
.layers__item--3 .field-well a:active,
.layers__item--3 .field-well a:focus,
.layers__item--3 .field-well a:hover {
    color: #fff
}

.layers__item--3 .profile__quote:before {
    color: #a6192e
}

.layers__item--3 .profile__quote--bg:after {
    background-color: rgba(166, 25, 46, .1)
}

.layers__item--3 .profile-about__contact {
    color: #a6192e
}

.layers__item--3 .o-table th {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .scroll-nav-scrollbar .swiper-scrollbar-drag {
    background-color: #a6192e
}

.layers__item--3 .access-slide:nth-child(-n+3) {
    color: #a6192e
}

.layers__item--3 .access-slide:nth-child(-n+3) .inline-svg {
    fill: #a6192e
}

.layers__item--3 .sharebar__dropdown {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .sharebar__link {
    color: #fff !important
}

.layers__item--3 .sharebar.show .sharebar__trigger {
    background-color: #a6192e;
    color: #fff;
    border-color: #a6192e
}

@media (min-width:992px) {
    .layers__item--3 .timeline__row:before {
        border-color: #a6192e
    }
}

.layers__item--3 .timeline__trigger:after,
.layers__item--3 .timeline__trigger:before {
    background-color: #a6192e
}

.layers__item--3 .timeline__indicator {
    background-color: #a6192e;
    color: #fff
}

.layers__item--4 .dash:before {
    border-color: #56b7e6
}

.content-rte .layers__item--4 ol:not([class]) li:before,
.content-rte .layers__item--4 ul:not([class]) li:before,
.layers__item--4 .content-rte ol:not([class]) li:before,
.layers__item--4 .content-rte ul:not([class]) li:before,
.layers__item--4 .list-bullet li:before,
.layers__item--4 .list-decimal li:before {
    color: #56b7e6
}

.layers__item--4 .list-social li a {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .list-social li a:active,
.layers__item--4 .list-social li a:focus,
.layers__item--4 .list-social li a:hover {
    background-color: #000;
    color: #fff
}

.layers__item--4 .checkbox input[type=checkbox]~label:after,
.layers__item--4 .checkbox input[type=radio]~label:after,
.layers__item--4 .radiobox input[type=checkbox]~label:after,
.layers__item--4 .radiobox input[type=radio]~label:after {
    background-color: #000
}

.layers__item--4 .inset-nav__current {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .inset-nav__list-link {
    color: #000
}

.layers__item--4 .pagination__item.active .pagination__link {
    background-color: #56b7e6;
    color: #fff;
    border-color: #56b7e6
}

.layers__item--4 .filter__title {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .filter__trigger {
    background-color: #56b7e6
}

.layers__item--4 .filter__trigger:after,
.layers__item--4 .filter__trigger:before {
    border-color: #fff
}

.layers__item--4 .filter__body,
.layers__item--4 .filter__footer {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .filter.is-open .filter__title {
    color: hsla(0, 0%, 100%, .6)
}

.layers__item--4 .filter button.form-control,
.layers__item--4 .filter input.form-control,
.layers__item--4 .filter textarea.form-control {
    border-color: hsla(0, 0%, 100%, .5)
}

.layers__item--4 .filter .selectbox .dropdown-menu:not(.inner) {
    background-color: #c8dce6;
    border-color: hsla(0, 0%, 100%, .5)
}

.layers__item--4 .filter .selectbox .dropdown-menu.inner {
    color: #fff
}

.layers__item--4 .filter .selectbox .dropdown-item {
    color: inherit
}

.layers__item--4 .filter .selectbox .dropdown-item.active,
.layers__item--4 .filter .selectbox .dropdown-item:hover {
    background-color: #85c0dd
}

.layers__item--4 .filter .selectbox .bs-searchbox {
    background-color: #84cbeb;
    border-color: hsla(0, 0%, 100%, .5)
}

.layers__item--4 .filter .selectbox .bs-placeholder {
    color: hsla(0, 0%, 100%, .6)
}

.layers__item--4 .board__title:before {
    border-color: #56b7e6
}

.layers__item--4 .thumbnail__date,
.layers__item--4 .thumbnail__type {
    color: #56b7e6
}

.layers__item--4 .field-well,
.layers__item--4 .thumbnail__index {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .field-quote {
    color: #000
}

.layers__item--4 .field-quote:before,
.layers__item--4 .field-quote cite {
    color: #56b7e6
}

.layers__item--4 .field-collapse__trigger {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .field-negative {
    color: #fff
}

.layers__item--4 .field-negative__content:before,
.layers__item--4 .field-negative__img:before {
    background-color: #56b7e6
}

.layers__item--4 .field-info {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .field-info a:active,
.layers__item--4 .field-info a:focus,
.layers__item--4 .field-info a:hover,
.layers__item--4 .field-negative a:active,
.layers__item--4 .field-negative a:focus,
.layers__item--4 .field-negative a:hover,
.layers__item--4 .field-well a:active,
.layers__item--4 .field-well a:focus,
.layers__item--4 .field-well a:hover {
    color: #fff
}

.layers__item--4 .profile__quote:before {
    color: #56b7e6
}

.layers__item--4 .profile__quote--bg:after {
    background-color: rgba(86, 183, 230, .1)
}

.layers__item--4 .profile-about__contact {
    color: #56b7e6
}

.layers__item--4 .o-table th {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .scroll-nav-scrollbar .swiper-scrollbar-drag {
    background-color: #56b7e6
}

.layers__item--4 .access-slide:nth-child(-n+3) {
    color: #56b7e6
}

.layers__item--4 .access-slide:nth-child(-n+3) .inline-svg {
    fill: #56b7e6
}

.layers__item--4 .sharebar__dropdown {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .sharebar__link {
    color: #fff !important
}

.layers__item--4 .sharebar.show .sharebar__trigger {
    background-color: #56b7e6;
    color: #fff;
    border-color: #56b7e6
}

@media (min-width:992px) {
    .layers__item--4 .timeline__row:before {
        border-color: #56b7e6
    }
}

.layers__item--4 .timeline__trigger:after,
.layers__item--4 .timeline__trigger:before {
    background-color: #56b7e6
}

.layers__item--4 .timeline__indicator {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--2 .hero__btn {
    background-color: #ffb500;
    color: #000;
    border-color: #ffb500
}

.layers__item--2 .hero__btn:active,
.layers__item--2 .hero__btn:focus,
.layers__item--2 .hero__btn:hover {
    color: #000
}

.layers__item--2 .c-profiles {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .c-profiles__cell--content {
    background-color: #ffb500
}

.layers__item--2 .c-students__title span {
    color: #ffb500
}

.layers__item--2 .c-students__slider:after {
    background-color: #ffb500
}

.layers__item--2 .c-students .slider-nav,
.layers__item--2 .c-students__discover {
    color: #000
}

.layers__item--2 .c-cold .btn-alpha {
    background-color: #ffb500;
    border-color: #ffb500
}

@media (min-width:992px) {
    .layers__item--2 .c-promo {
        color: #000
    }
}

.layers__item--2 .content-rte .field-info .list-bullet li:before,
.layers__item--2 .content-rte .field-info .list-decimal li:before,
.layers__item--2 .content-rte .field-info ol:not([class]) li:before,
.layers__item--2 .content-rte .field-info ul:not([class]) li:before,
.layers__item--2 .content-rte .field-negative .list-bullet li:before,
.layers__item--2 .content-rte .field-negative .list-decimal li:before,
.layers__item--2 .content-rte .field-negative ol:not([class]) li:before,
.layers__item--2 .content-rte .field-negative ul:not([class]) li:before,
.layers__item--2 .content-rte .field-well .list-bullet li:before,
.layers__item--2 .content-rte .field-well .list-decimal li:before,
.layers__item--2 .content-rte .field-well ol:not([class]) li:before,
.layers__item--2 .content-rte .field-well ul:not([class]) li:before {
    color: #000
}

.layers__item--2 .signature--selectbox .dropdown-menu,
.layers__item--2 .signature--selectbox .dropdown-toggle {
    background: #ffb500
}

.layers__item--2 .signature--selectbox .dropdown-item.active {
    background-color: rgba(248, 249, 250, .2901960784313726);
    color: #fff
}

.layers__item--3 .hero__btn {
    background-color: #a6192e;
    color: #fff;
    border-color: #a6192e
}

.layers__item--3 .hero__btn:active,
.layers__item--3 .hero__btn:focus,
.layers__item--3 .hero__btn:hover {
    color: #fff
}

.layers__item--3 .c-profiles {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .c-profiles__cell--content {
    background-color: #a6192e
}

.layers__item--3 .c-students__title span {
    color: #a6192e
}

.layers__item--3 .c-students__slider:after {
    background-color: #a6192e
}

.layers__item--3 .c-students .slider-nav,
.layers__item--3 .c-students__discover {
    color: #fff
}

.layers__item--3 .c-cold .btn-alpha {
    background-color: #a6192e;
    border-color: #a6192e
}

@media (min-width:992px) {
    .layers__item--3 .c-promo {
        color: #fff
    }
}

.layers__item--3 .content-rte .field-info .list-bullet li:before,
.layers__item--3 .content-rte .field-info .list-decimal li:before,
.layers__item--3 .content-rte .field-info ol:not([class]) li:before,
.layers__item--3 .content-rte .field-info ul:not([class]) li:before,
.layers__item--3 .content-rte .field-negative .list-bullet li:before,
.layers__item--3 .content-rte .field-negative .list-decimal li:before,
.layers__item--3 .content-rte .field-negative ol:not([class]) li:before,
.layers__item--3 .content-rte .field-negative ul:not([class]) li:before,
.layers__item--3 .content-rte .field-well .list-bullet li:before,
.layers__item--3 .content-rte .field-well .list-decimal li:before,
.layers__item--3 .content-rte .field-well ol:not([class]) li:before,
.layers__item--3 .content-rte .field-well ul:not([class]) li:before {
    color: #fff
}

.layers__item--3 .signature--selectbox .dropdown-menu,
.layers__item--3 .signature--selectbox .dropdown-toggle {
    background: #a6192e
}

.layers__item--3 .signature--selectbox .dropdown-item.active {
    background-color: rgba(248, 249, 250, .2901960784313726);
    color: #fff
}

.layers__item--4 .hero__btn {
    background-color: #56b7e6;
    color: #fff;
    border-color: #56b7e6
}

.layers__item--4 .hero__btn:active,
.layers__item--4 .hero__btn:focus,
.layers__item--4 .hero__btn:hover {
    color: #fff
}

.layers__item--4 .c-profiles {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .c-profiles__cell--content {
    background-color: #56b7e6
}

.layers__item--4 .c-students__title span {
    color: #56b7e6
}

.layers__item--4 .c-students__slider:after {
    background-color: #56b7e6
}

.layers__item--4 .c-students .slider-nav,
.layers__item--4 .c-students__discover {
    color: #fff
}

.layers__item--4 .c-cold .btn-alpha {
    background-color: #56b7e6;
    border-color: #56b7e6
}

@media (min-width:992px) {
    .layers__item--4 .c-promo {
        color: #fff
    }
}

.layers__item--4 .content-rte .field-info .list-bullet li:before,
.layers__item--4 .content-rte .field-info .list-decimal li:before,
.layers__item--4 .content-rte .field-info ol:not([class]) li:before,
.layers__item--4 .content-rte .field-info ul:not([class]) li:before,
.layers__item--4 .content-rte .field-negative .list-bullet li:before,
.layers__item--4 .content-rte .field-negative .list-decimal li:before,
.layers__item--4 .content-rte .field-negative ol:not([class]) li:before,
.layers__item--4 .content-rte .field-negative ul:not([class]) li:before,
.layers__item--4 .content-rte .field-well .list-bullet li:before,
.layers__item--4 .content-rte .field-well .list-decimal li:before,
.layers__item--4 .content-rte .field-well ol:not([class]) li:before,
.layers__item--4 .content-rte .field-well ul:not([class]) li:before {
    color: #fff
}

.layers__item--4 .signature--selectbox .dropdown-menu,
.layers__item--4 .signature--selectbox .dropdown-toggle {
    background: #56b7e6
}

.layers__item--4 .signature--selectbox .dropdown-item.active {
    background-color: rgba(248, 249, 250, .2901960784313726);
    color: #fff
}

.layers__item--2 .header {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .header__logo .inline-svg {
    fill: #000
}

@media screen {
    .layers__item--2 .header__logo .inline-svg * {
        fill: inherit
    }
}

.layers__item--2 .header__donation {
    color: #000
}

@media (max-width:991px) {
    .layers__item--2 .header__donation {
        color: #ffb500
    }
}

.layers__item--2 .header__donation:active,
.layers__item--2 .header__donation:focus,
.layers__item--2 .header__donation:hover {
    background-color: #000;
    color: #ffb500 !important;
    border-color: #000
}

@media (max-width:991px) {

    .layers__item--2 .header__donation:active,
    .layers__item--2 .header__donation:focus,
    .layers__item--2 .header__donation:hover {
        background-color: #ffb500;
        color: #000 !important;
        border-color: #ffb500
    }
}

.layers__item--2 .searchbox {
    background-color: #ffb500;
    color: #000
}

@media (max-width:991px) {
    .layers__item--2 .menu__item--language {
        color: #ffb500
    }
}

.layers__item--2 .hamburger-inner,
.layers__item--2 .hamburger-inner:after,
.layers__item--2 .hamburger-inner:before {
    background-color: #000
}

@media (max-width:991px) {
    .layers__item--2 .navigation {
        color: #666
    }
}

@media (min-width:992px) {

    .layers__item--2 .navigation__link:active,
    .layers__item--2 .navigation__link:focus,
    .layers__item--2 .navigation__link:hover {
        color: #000
    }
}

.layers__item--2 .navigation__trigger:after,
.layers__item--2 .navigation__trigger:before {
    border-color: #ffb500
}

.is-scrolling .layers__item--2 .navigation__trigger:after,
.is-scrolling .layers__item--2 .navigation__trigger:before {
    border-color: #fff
}

.layers__item--2 .navigation__back {
    color: #ffb500
}

.layers__item--2 .navigation__alpha-trigger:after,
.layers__item--2 .navigation__alpha-trigger:before,
.layers__item--2 .navigation__beta-trigger:after,
.layers__item--2 .navigation__beta-trigger:before {
    border-color: #ffb500
}

.layers__item--2 .navigation__alpha-back,
.layers__item--2 .navigation__beta-back {
    color: #ffb500
}

.layers__item--2 .is-scrolling .navigation__trigger:after,
.layers__item--2 .is-scrolling .navigation__trigger:before {
    border-color: #fff
}

.layers__item--2 .footer__upper {
    background-color: transparent
}

.layers__item--2 .footer__lower {
    background-color: #ffb500;
    color: #000
}

.layers__item--2 .footer__social li a {
    background-color: #ffb500;
    color: #fff
}

.layers__item--2 .footer__social li a:active,
.layers__item--2 .footer__social li a:focus,
.layers__item--2 .footer__social li a:hover {
    background-color: #000;
    color: #fff
}

.layers__item--3 .header {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .header__logo .inline-svg {
    fill: #fff
}

@media screen {
    .layers__item--3 .header__logo .inline-svg * {
        fill: inherit
    }
}

.layers__item--3 .header__donation {
    color: #fff
}

@media (max-width:991px) {
    .layers__item--3 .header__donation {
        color: #a6192e
    }
}

.layers__item--3 .header__donation:active,
.layers__item--3 .header__donation:focus,
.layers__item--3 .header__donation:hover {
    background-color: #fff;
    color: #a6192e !important;
    border-color: #fff
}

@media (max-width:991px) {

    .layers__item--3 .header__donation:active,
    .layers__item--3 .header__donation:focus,
    .layers__item--3 .header__donation:hover {
        background-color: #a6192e;
        color: #fff !important;
        border-color: #a6192e
    }
}

.layers__item--3 .searchbox {
    background-color: #a6192e;
    color: #fff
}

@media (max-width:991px) {
    .layers__item--3 .menu__item--language {
        color: #a6192e
    }
}

.layers__item--3 .hamburger-inner,
.layers__item--3 .hamburger-inner:after,
.layers__item--3 .hamburger-inner:before {
    background-color: #fff
}

@media (max-width:991px) {
    .layers__item--3 .navigation {
        color: #666
    }
}

@media (min-width:992px) {

    .layers__item--3 .navigation__link:active,
    .layers__item--3 .navigation__link:focus,
    .layers__item--3 .navigation__link:hover {
        color: #fff
    }
}

.layers__item--3 .navigation__trigger:after,
.layers__item--3 .navigation__trigger:before {
    border-color: #a6192e
}

.is-scrolling .layers__item--3 .navigation__trigger:after,
.is-scrolling .layers__item--3 .navigation__trigger:before {
    border-color: #fff
}

.layers__item--3 .navigation__back {
    color: #a6192e
}

.layers__item--3 .navigation__alpha-trigger:after,
.layers__item--3 .navigation__alpha-trigger:before,
.layers__item--3 .navigation__beta-trigger:after,
.layers__item--3 .navigation__beta-trigger:before {
    border-color: #a6192e
}

.layers__item--3 .navigation__alpha-back,
.layers__item--3 .navigation__beta-back {
    color: #a6192e
}

.layers__item--3 .is-scrolling .navigation__trigger:after,
.layers__item--3 .is-scrolling .navigation__trigger:before {
    border-color: #fff
}

.layers__item--3 .footer__upper {
    background-color: transparent
}

.layers__item--3 .footer__lower,
.layers__item--3 .footer__social li a {
    background-color: #a6192e;
    color: #fff
}

.layers__item--3 .footer__social li a:active,
.layers__item--3 .footer__social li a:focus,
.layers__item--3 .footer__social li a:hover {
    background-color: #000;
    color: #fff
}

.layers__item--4 .header {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .header__logo .inline-svg {
    fill: #fff
}

@media screen {
    .layers__item--4 .header__logo .inline-svg * {
        fill: inherit
    }
}

.layers__item--4 .header__donation {
    color: #fff
}

@media (max-width:991px) {
    .layers__item--4 .header__donation {
        color: #56b7e6
    }
}

.layers__item--4 .header__donation:active,
.layers__item--4 .header__donation:focus,
.layers__item--4 .header__donation:hover {
    background-color: #fff;
    color: #56b7e6 !important;
    border-color: #fff
}

@media (max-width:991px) {

    .layers__item--4 .header__donation:active,
    .layers__item--4 .header__donation:focus,
    .layers__item--4 .header__donation:hover {
        background-color: #56b7e6;
        color: #fff !important;
        border-color: #56b7e6
    }
}

.layers__item--4 .searchbox {
    background-color: #56b7e6;
    color: #fff
}

@media (max-width:991px) {
    .layers__item--4 .menu__item--language {
        color: #56b7e6
    }
}

.layers__item--4 .hamburger-inner,
.layers__item--4 .hamburger-inner:after,
.layers__item--4 .hamburger-inner:before {
    background-color: #fff
}

@media (max-width:991px) {
    .layers__item--4 .navigation {
        color: #666
    }
}

@media (min-width:992px) {

    .layers__item--4 .navigation__link:active,
    .layers__item--4 .navigation__link:focus,
    .layers__item--4 .navigation__link:hover {
        color: #fff
    }
}

.layers__item--4 .navigation__trigger:after,
.layers__item--4 .navigation__trigger:before {
    border-color: #56b7e6
}

.is-scrolling .layers__item--4 .navigation__trigger:after,
.is-scrolling .layers__item--4 .navigation__trigger:before {
    border-color: #fff
}

.layers__item--4 .navigation__back {
    color: #56b7e6
}

.layers__item--4 .navigation__alpha-trigger:after,
.layers__item--4 .navigation__alpha-trigger:before,
.layers__item--4 .navigation__beta-trigger:after,
.layers__item--4 .navigation__beta-trigger:before {
    border-color: #56b7e6
}

.layers__item--4 .navigation__alpha-back,
.layers__item--4 .navigation__beta-back {
    color: #56b7e6
}

.layers__item--4 .is-scrolling .navigation__trigger:after,
.layers__item--4 .is-scrolling .navigation__trigger:before {
    border-color: #fff
}

.layers__item--4 .footer__upper {
    background-color: transparent
}

.layers__item--4 .footer__lower,
.layers__item--4 .footer__social li a {
    background-color: #56b7e6;
    color: #fff
}

.layers__item--4 .footer__social li a:active,
.layers__item--4 .footer__social li a:focus,
.layers__item--4 .footer__social li a:hover {
    background-color: #000;
    color: #fff
}

.contrasted {
    background-color: navy;
    color: #ff0
}

.contrasted .color-primary,
.contrasted .color-secondary,
.contrasted a:active,
.contrasted a:focus,
.contrasted a:hover {
    color: #ff0 !important
}

.contrasted [class*=" bgcolor-"],
.contrasted [class^=bgcolor-] {
    background-color: navy !important;
    color: inherit !important
}

.contrasted .h1,
.contrasted .h2,
.contrasted .h3,
.contrasted .h4,
.contrasted .h5,
.contrasted h1,
.contrasted h2,
.contrasted h3,
.contrasted h4,
.contrasted h5,
.contrasted p {
    color: #ff0 !important
}

.contrasted .dash:before {
    border-color: #ff0 !important
}

.contrasted .btn-alpha,
.contrasted .btn-beta {
    background-color: #ff0 !important;
    color: navy !important;
    border-color: #ff0 !important
}

.contrasted .btn-alpha:active,
.contrasted .btn-alpha:focus,
.contrasted .btn-alpha:hover,
.contrasted .btn-beta:active,
.contrasted .btn-beta:focus,
.contrasted .btn-beta:hover {
    color: navy !important;
    border-color: navy !important
}

.contrasted .btn-gamma {
    color: #ff0
}

.contrasted .btn-gamma__label {
    color: inherit
}

.contrasted .btn-gamma__label:before {
    background-color: #ff0 !important
}

.contrasted .btn-gamma [class*=" ico-"],
.contrasted .btn-gamma [class^=ico-] {
    background-color: #ff0;
    color: navy
}

.contrasted .btn-gamma:active,
.contrasted .btn-gamma:focus,
.contrasted .btn-gamma:hover {
    color: navy !important
}

.contrasted .btn-filter {
    color: #ff0 !important
}

.contrasted .btn-filter:after,
.contrasted .btn-filter:before {
    border-color: inherit
}

.contrasted hr {
    border-color: #ff0 !important
}

.contrasted .fieldset {
    background-color: transparent;
    border: .1rem solid #ff0
}

.contrasted button.form-control,
.contrasted input.form-control,
.contrasted textarea.form-control {
    color: #ff0;
    border-color: #ff0
}

.contrasted .selectbox .dropdown-toggle {
    color: #ff0
}

.contrasted .checkbox input[type=checkbox]~label:before,
.contrasted .checkbox input[type=radio]~label:before,
.contrasted .radiobox input[type=checkbox]~label:before,
.contrasted .radiobox input[type=radio]~label:before {
    border-color: #ff0
}

.contrasted .checkbox input[type=checkbox]~label:after,
.contrasted .checkbox input[type=radio]~label:after,
.contrasted .radiobox input[type=checkbox]~label:after,
.contrasted .radiobox input[type=radio]~label:after {
    background-color: #ff0
}

.content-rte .contrasted ol:not([class]) li:before,
.content-rte .contrasted ul:not([class]) li:before,
.contrasted .content-rte ol:not([class]) li:before,
.contrasted .content-rte ul:not([class]) li:before,
.contrasted .list-bullet li:before,
.contrasted .list-decimal li:before {
    color: #ff0
}

.contrasted .list-docs li {
    border-color: #ff0
}

.contrasted .list-social li a {
    background-color: #ff0;
    color: navy !important
}

.contrasted .breadcrumb-wrap {
    background-color: navy;
    border-color: #ff0
}

.contrasted .breadcrumb-item {
    color: #ff0
}

.contrasted .breadcrumb-item:before {
    color: inherit
}

.contrasted .pagination__filler,
.contrasted .pagination__link {
    border-color: #ff0
}

.contrasted .pagination__item.active .pagination__link {
    background-color: #ff0;
    color: navy !important;
    border-color: #ff0
}

.contrasted .inset-nav__current {
    background-color: #ff0;
    color: navy
}

.contrasted .inset-nav__list-link {
    color: #ff0
}

.contrasted .field-well,
.contrasted .inset-nav__list-link {
    background-color: transparent;
    border: .1rem solid #ff0
}

.contrasted .field-quote {
    color: #ff0
}

.contrasted .field-quote cite {
    color: inherit
}

.contrasted .field-collapse__trigger {
    background-color: transparent;
    border: .1rem solid #ff0
}

.contrasted .field-collapse__trigger:after,
.contrasted .field-collapse__trigger:before {
    border-color: #ff0
}

.contrasted .field-collapse__well {
    background-color: transparent;
    border: .1rem solid #ff0;
    border-top: 0
}

.contrasted .field-negative__img:before {
    content: none
}

.contrasted .o-table thead th {
    background-color: #ff0;
    color: navy;
    border-color: navy
}

.contrasted .o-table thead th:last-child {
    border: .1rem solid #ff0
}

.contrasted .o-table tbody tr {
    background-color: transparent;
    color: #ff0
}

.contrasted .o-table tbody td {
    border: .1rem solid #ff0
}

.contrasted .tags {
    color: #ff0 !important
}

.contrasted .thumbnail {
    border-color: #ff0 !important
}

.contrasted .thumbnail__index {
    background-color: #ff0;
    color: navy
}

.contrasted .thumbnail__video {
    color: #ff0
}

.contrasted .thumbnail--feed a {
    color: #ff0 !important
}

.contrasted .thumbnail--horizontal .thumbnail__body {
    padding: 2rem 0
}

.contrasted .thumbnails__item {
    background-color: transparent !important
}

.contrasted .thumbnails-summary {
    background-color: transparent
}

.contrasted .thumbnails-summary__cell:before {
    content: none
}

.contrasted .board__title:before {
    border-color: #ff0
}

.contrasted .profile__quote:before {
    color: #ff0
}

.contrasted .profile__quote:after {
    background-color: rgba(255, 255, 0, .1)
}

.contrasted .autoplay-nav,
.contrasted .slider-nav {
    color: #ff0 !important
}

.contrasted .autoplay-nav-indicator {
    stroke: #ff0 !important
}

.contrasted .scroll-nav-scrollbar:before {
    border-color: rgba(255, 255, 0, .5)
}

.contrasted .scroll-nav-scrollbar .swiper-scrollbar-drag {
    background-color: #ff0
}

.contrasted .access-wrap {
    background-color: navy
}

.contrasted .access-trigger {
    background-color: #ff0;
    color: navy
}

.contrasted .access-img .inline-svg {
    fill: #ff0 !important
}

.contrasted .access-nav {
    background-color: #ff0;
    color: navy !important
}

.contrasted .breaking-news-slider {
    background-color: navy;
    border-color: #ff0
}

.contrasted .breaking-news-nav {
    background-color: #ff0;
    color: navy !important
}

.contrasted .courses-tab-slide {
    border-color: rgba(255, 255, 0, .7) !important
}

.contrasted .filter__body,
.contrasted .filter__footer,
.contrasted .filter__title,
.contrasted .filter__trigger {
    background-color: #ff0;
    color: navy !important
}

.contrasted .filter__header:before {
    border-color: #ff0
}

.contrasted .filter__trigger:after,
.contrasted .filter__trigger:before {
    border-color: navy
}

.contrasted .filter .btn-alpha {
    background-color: navy !important;
    color: #ff0 !important;
    border-color: navy !important
}

.contrasted .filter button.form-control,
.contrasted .filter input.form-control,
.contrasted .filter textarea.form-control {
    background-color: transparent;
    border-color: navy
}

.contrasted .filter .selectbox .dropdown-menu {
    background-color: navy;
    color: #ff0 !important;
    border-color: navy
}

.contrasted .filter .selectbox .dropdown-item:hover {
    background-color: #ff0;
    color: navy !important
}

.contrasted .filter .selectbox .bs-placeholder {
    color: navy
}

.contrasted .filter .selectbox .bs-searchbox {
    background-color: navy;
    border-color: #ff0
}

.contrasted .filter .selectbox .bs-searchbox .form-control {
    background-color: #ff0 !important
}

.contrasted .filter .selectbox .bs-searchbox .form-control::-webkit-input-placeholder {
    color: navy
}

.contrasted .filter .selectbox .bs-searchbox .form-control::-moz-placeholder {
    color: navy
}

.contrasted .filter .selectbox .bs-searchbox .form-control:-ms-input-placeholder {
    color: navy
}

.contrasted .filter .selectbox .bs-searchbox .form-control:-moz-placeholder {
    color: navy
}

.contrasted .feed-filter__reset {
    color: #ff0
}

.contrasted .feed-filter__btn {
    color: #ff0 !important;
    border-color: #ff0 !important
}

.contrasted .timeline__row:before {
    border-color: #ff0
}

.contrasted .timeline__trigger {
    background-color: navy;
    border-color: #ff0
}

.contrasted .timeline__trigger:after,
.contrasted .timeline__trigger:before {
    background-color: #ff0
}

.contrasted .timeline__arrow {
    color: #ff0
}

.contrasted .timeline__indicator {
    background-color: #ff0
}

.contrasted .timeline__indicator:after,
.contrasted .timeline__indicator:before {
    border-color: navy
}

.contrasted .sharebar__trigger {
    background-color: #ff0 !important;
    border-color: #ff0 !important
}

.contrasted .sharebar__dropdown {
    background-color: #ff0
}

.contrasted .sharebar__link,
.contrasted .sharebar__link:active,
.contrasted .sharebar__link:focus,
.contrasted .sharebar__link:hover,
.contrasted .sharebar__trigger,
.contrasted .sharebar__trigger:active,
.contrasted .sharebar__trigger:focus,
.contrasted .sharebar__trigger:hover {
    color: navy !important
}

.contrasted .hero,
.contrasted .hero__explore {
    color: #ff0
}

.contrasted .hero__explore-icon:after,
.contrasted .hero__explore-icon:before,
.contrasted .hero__explore-icon [class*=" ico-"],
.contrasted .hero__explore-icon [class^=ico-] {
    animation-name: indicator-contrast
}

@keyframes indicator-contrast {
    0% {
        color: rgba(255, 255, 0, 0)
    }

    to {
        color: #ff0
    }
}

.contrasted .boardroom__cell--contact,
.contrasted .boardroom__cell--x {
    border-color: #ff0
}

.contrasted .o-headroom__content {
    background-color: navy
}

.contrasted .section[class*=" bgcolor-"],
.contrasted .section[class^=bgcolor-] {
    padding: 0 !important
}

.contrasted .c-profiles,
.contrasted .c-profiles__cell--content {
    background-color: navy
}

.contrasted .c-cold__img:before {
    content: "";
    height: 100%;
    background-image: none;
    background-color: rgba(0, 0, 0, .3)
}

.contrasted .c-courses__tabs {
    border-color: #ff0 !important
}

.contrasted .c-courses__tab {
    color: #ff0 !important
}

.contrasted .c-courses .swiper-slide-thumb-active .c-courses__tab {
    border-color: #ff0 !important
}

.contrasted .c-students__title span {
    color: #ff0 !important
}

.contrasted .c-students__slider:after {
    background-color: navy
}

.contrasted .c-promo__box,
.contrasted .o-toolbar {
    background-color: navy !important
}

.contrasted .o-toolbar {
    color: #ff0 !important;
    box-shadow: inset 0 -.1rem 0 0 rgba(255, 255, 0, .7)
}

.contrasted .o-toolbar__cell {
    border-color: rgba(255, 255, 0, .7)
}

.contrasted .layers__trigger {
    background-color: #ff0;
    color: navy
}

.contrasted .layers__trigger:not(:first-child) {
    box-shadow: inset .1rem 0 0 0 navy
}

.contrasted .layers__item {
    background-color: navy
}

.contrasted .header {
    background-color: #ff0 !important;
    color: navy !important
}

@media (max-width:991px) {
    .contrasted .header {
        box-shadow: inset 0 .1rem 0 0 navy
    }
}

.contrasted .header .header__logo .inline-svg * {
    fill: navy !important
}

.contrasted .header.is-scrolling .navigation__link {
    color: navy !important
}

@media (min-width:992px) {
    .page--front.contrasted .header:not(.is-scrolling) {
        background-color: transparent !important;
        color: #ff0 !important
    }
}

@media (min-width:992px) {
    .page--front.contrasted .header:not(.is-scrolling) .header__logo .inline-svg * {
        fill: #ff0 !important
    }
}

@media (min-width:992px) {

    .page--front.contrasted .header:not(.is-scrolling) .navigation__trigger:after,
    .page--front.contrasted .header:not(.is-scrolling) .navigation__trigger:before {
        border-color: #ff0 !important
    }
}

.contrasted .header__logo .inline-svg * {
    fill: navy !important
}

.contrasted .header__donation {
    background-color: navy !important;
    color: #ff0 !important;
    border-color: navy !important
}

.contrasted .header__language {
    color: #ff0 !important
}

.contrasted .header__language li {
    opacity: .6
}

.contrasted .header__language li.is-active {
    color: inherit;
    opacity: 1
}

.contrasted .header__social li a {
    color: navy !important
}

@media (max-width:991px) {
    .contrasted .menu {
        background-color: navy;
        color: #ff0
    }
}

.contrasted .menu__item--social:before {
    background-color: #ff0
}

.contrasted .searchbox {
    background-color: navy !important;
    color: #ff0 !important
}

@media (max-width:991px) {
    .contrasted .navigation {
        color: #ff0 !important
    }
}

.contrasted .navigation__wrapper {
    color: #ff0 !important
}

@media (min-width:992px) {
    .contrasted .navigation__wrapper {
        background-color: navy !important
    }
}

.contrasted .navigation__trigger:after,
.contrasted .navigation__trigger:before {
    border-color: navy !important
}

.contrasted .navigation__back {
    color: #ff0 !important;
    border-color: #ff0 !important
}

@media (max-width:991px) {

    .contrasted .navigation__alpha-list,
    .contrasted .navigation__beta-list {
        background-color: navy !important
    }
}

.contrasted .navigation__alpha-item,
.contrasted .navigation__alpha-trigger:after,
.contrasted .navigation__alpha-trigger:before {
    border-color: #ff0 !important
}

.contrasted .navigation__alpha-back {
    background-color: navy !important;
    color: #ff0 !important;
    border-color: #ff0 !important
}

.contrasted .navigation__alpha-link {
    background-color: navy !important
}

@media (min-width:992px) {
    .contrasted .navigation__beta-list {
        background-color: transparent !important;
        border-color: #ff0
    }
}

.contrasted .flash {
    background-color: navy
}

.contrasted .flash__ico {
    color: #ff0;
    border-color: rgba(255, 255, 0, .7)
}

.contrasted .flash__close {
    background-color: #ff0;
    color: navy
}

.contrasted .footer__upper {
    background-color: navy;
    color: #ff0;
    border-color: #ff0
}

.contrasted .footer__lower {
    background-color: #ff0;
    color: navy
}

.contrasted .footer__nav-wrap {
    border-color: #ff0
}

.contrasted .footer__contact {
    color: #ff0
}

.contrasted .footer__social li a {
    background-color: #ff0 !important;
    color: navy !important
}

@page {
    size: 210mm 297mm;
    margin: 10mm !important
}

@media print {
    * {
        color-adjust: exact;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact
    }

    body,
    html {
        width: 210mm;
        height: 297mm;
        margin: auto;
        min-width: auto !important
    }

    html {
        font-size: 8px
    }

    .container {
        max-width: none !important;
        min-width: auto !important
    }

    .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-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%
    }

    .inset-nav,
    .sharebar {
        display: none
    }

    .field-quote blockquote {
        border: 0
    }

    .field-collapse__body {
        display: block !important
    }

    .field-negative {
        color: inherit
    }

    .field-negative__content:before,
    .field-negative__img:before {
        content: none
    }

    .timeline__cell:first-child {
        margin-bottom: 30.5%
    }

    .timeline__cell:nth-child(2) {
        margin-top: 30.5%
    }

    .timeline__cell:nth-child(odd):not(:first-child) {
        margin-top: -30.5%
    }

    .timeline__cell:nth-child(odd) .timeline__trigger {
        right: calc(-24.7% + 15px);
        transform: translateX(50%)
    }

    .timeline__cell:nth-child(odd) .timeline__arrow {
        right: 100%
    }

    .timeline__cell:nth-child(2n) .timeline__trigger {
        left: calc(-24.3% + 15px);
        transform: translateX(-50%)
    }

    .timeline__cell:nth-child(2n) .timeline__arrow {
        left: 100%
    }

    .timeline__collapse {
        display: block !important;
        height: auto !important
    }

    .timeline__trigger {
        position: absolute;
        top: 0;
        width: 25%;
        margin-top: 30.5%;
        padding-right: 1.2rem
    }

    .timeline__trigger:after,
    .timeline__trigger:before {
        content: ""
    }

    .timeline__arrow {
        display: block
    }

    .timeline__indicator {
        display: none
    }

    .timeline .thumbnail {
        border: 0
    }

    .timeline .thumbnail__img {
        padding-bottom: 80%
    }

    .autoplay-nav,
    .slider-nav {
        display: none
    }

    .media-slider .swiper-wrapper {
        display: block;
        transform: none !important
    }

    .media-slide {
        width: 100% !important;
        margin-bottom: 3rem
    }

    .page--logged-in,
    .page-wrap {
        padding: 0 !important
    }

    .wrapper {
        margin-bottom: 0
    }

    .flash,
    .o-toolbar {
        display: none
    }

    .header {
        position: relative;
        background-color: transparent !important;
        top: 0
    }

    .header__item--donation,
    .header__item--menu,
    .header__item--profilebox,
    .header__item--search,
    .header__item--trigger {
        display: none
    }

    .header__logo {
        width: 18rem;
        height: 7.2rem;
        padding: 3rem 0
    }

    .layers__item {
        margin: 0 !important
    }

    .footer,
    .layers__triggers {
        display: none
    }
}

__webpack_require__.r(__webpack_exports__);

(function($) {
        var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("/FZm"); var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); var bootstrap_select__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("DPhY"); var bootstrap_select__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(bootstrap_select__WEBPACK_IMPORTED_MODULE_1__); $('.selectbox').selectpicker({
            style:'', styleBase:'form-control', size:5

        }); $('select.selectbox-redirect').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
            var _context; var currentOption=_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(_context=$(this)).call(_context, 'option')[clickedIndex]; window.location=$(currentOption).data('redirect');

        }); $('[type="reset"]').on('click', function () {
            $('.selectbox').val('default').selectpicker("refresh");
        });
}

.call(this, __webpack_require__("EVdn")))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__("EVdn")], __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.map__webpack_require__.r(__webpack_exports__);(function($){var air_datepicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eUt6");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__("99mR");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__("cOG+");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({autoClose:true,dateFormat:"dd/mm/yyyy"});}.call(this,__webpack_require__("EVdn")))__webpack_require__("0E6c");__webpack_require__("tZ82");__webpack_require__("6Xiz");__webpack_require__("EHbf");(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__("EVdn")))

/* 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__("EVdn")))

/* 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__("EVdn")))

/* 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__("EVdn")))(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__("EVdn")))(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__("EVdn")))__webpack_require__.r(__webpack_exports__);

(function($) {
        var _fancyapps_fancybox__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("OWSx"); var _fancyapps_fancybox__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_fancyapps_fancybox__WEBPACK_IMPORTED_MODULE_0__); $(".fancybox").fancybox();
    }

    .call(this, __webpack_require__("EVdn")))(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__("EVdn"))) question-ai-logo useruser fullfull closeclose Chat AI Hello ! Is there any question I can help you with? Which iconic American landmark is located in South Dakota and features the faces of four U.S. presidents? What is the highest peak in the United States? Ask AI