/*
    Affiliate widget styles
    —
    Generated by MAGIC. Don't edit!
*/

.aff-widget {
    max-width: 1000px;
    margin: 0 auto 20px;
    padding: 15px 0 0;
}

.body-site .aff-widget {
    margin-top: 30px;
}

.aff-widget-tabs {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0;
    background: #f0f4f8;
    border-radius: 5px 5px 0 0;
}

.aff-widget-tabs li {
    position: relative;
    display: inline-block;
    width: 25%;
    margin: 0;
    font-size: 14px;
    vertical-align: top;
}

.aff-widget-tabs li a {
    position: relative;
    display: block;
    margin-right: 0;
    padding: 10px 15px;
    color: #2d8ee0;
    font-size: 14px;
    line-height: 20px;
    border: 0;
    border-radius: 4px 4px 0 0;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
}

.aff-widget-tabs li a:hover,
.aff-widget-tabs li a:focus {
    background: #e0e6ef;
    color: #404448;
    text-decoration: none
}

.aff-widget-tabs li.active a,
.aff-widget-tabs li.active a:hover,
.aff-widget-tabs li.active a:focus {
    background: #fff;
    color: #404448;
    font-weight: normal;
    box-shadow: inset 0 0 0 1px #e0e4e8;
}

.aff-widget-tabs li.active:before,
.aff-widget-tabs li.active:hover:before,
.aff-widget-tabs li.active:focus:before {
    content: '';
    display: block;
    position: absolute;
    z-index: 1;
    width: calc(100% - 2px);
    height: 10px;
    left: 1px;
    right: 0;
    bottom: -5px;
    background: #fff;
}

.aff-widget-tabs__step {
    display: inline-block;
    vertical-align: middle;
    height: 30px;
    width: 30px;
    margin-right: 5px;
    border-radius: 50%;
    background: #2d8ee0;
    font-size: 18px;
    text-align: center;
    color: #fff;
    font-weight: bold;
    line-height: 30px;
}

.aff-widget-tabs > li.error .aff-widget-tabs__step {
    background: #e00457;
}

.aff-widget-tabs > li.active .aff-widget-tabs__step {
    background: #e00457;
}

.aff-widget-tabs > li.checked .aff-widget-tabs__step {
    background: #82c015;
}

.aff-widget-tabs > li.checked > a {
    color: #6fa610;
}

@media (max-width: 991px) {
    .aff-widget-tabs > li > a {
        padding: 10px;
        white-space: nowrap;
    }
}

@media (max-width: 700px) {
    .aff-widget-tabs > li > a {
        min-height: 95px;
        padding: 10px 5px;
        white-space: normal;
        text-align: center;
    }

    .aff-widget-tabs__step {
        display: block;
        margin: 0 auto 5px;
    }
}

.aff-widget-content {
    background: #fff;
    border: 1px solid #e0e4e8;
    overflow: hidden;
}

.tab-pane {
    padding: 0 15px;
}

.subtitle {
    font-size: 20px;
    margin: 15px 0;
}

.tagline {
    margin: 15px 0;
}

.aff-widget-bottom {
    margin: 0 -15px;
    padding: 15px;
    text-align: right;
    border-top: 1px solid #e0e4e8;
}

.aff-widget-bottom .btn {
    margin-right: 15px;
}

.aff-widget-bottom .btn:last-child {
    margin-right: 0;
}

.upload-block {
    margin: 20px 0;
    padding: 20px 0;
    text-align: center;
}

.upload-block-file {
    position: absolute;
    right: -900px; top: 0px;
    margin: 0px;
    padding: 0px;
    opacity: 0;
    height: 1px;
    width: 1px;
}

.upload-block__pic {
    display: block;
    margin: 0 auto 10px;
}

.upload-block__explainer {
    margin: 30px 0 0;
}
.upload-block__explainer-item {
    position: relative;
    display: inline-block;
    margin: 0 20px 30px;
    padding: 15px 20px;
    color: #707478;
    box-shadow: 0 10px 30px rgba(0, 54, 153, 0.15);
    border-radius: 5px;
}
.upload-block__explainer-item > a {
    display: block;
    cursor: pointer;
}
.upload-block__explainer-item > a:hover {
    text-decoration: none;
}
.upload-block__explainer-item > a > .tsi {
    color: #2d8ee0;
}
.upload-block__explainer-item > a:hover > .tsi,
.upload-block__explainer-item > a:focus > .tsi {
    color: #41a8ff;
}
.upload-block__explainer-ico {
    display: block;
    width: 42px;
    margin: 0 auto 15px;
    font-size: 42px;
    color: #808498;
}
.upload-block__explainer-count {
    display: inline-block;
    width: 20px;
    height: 20px;
    margin: 0 5px 0 0;
    line-height: 20px;
    border-radius: 50%;
    text-align: center;
    font-weight: bold;
}
.upload-block__explainer .tsi-truck {
    -webkit-transform: scaleX(-1);
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -ms-transform: scaleX(-1);
    transform: scaleX(-1);
}
.upload-block__explainer-item:nth-child(1):after,
.upload-block__explainer-item:nth-child(2):after {
    content: "\e915";
    position: absolute;
    display: block;
    width: 30px;
    height: 30px;
    top: 50%;
    right: -37px;
    margin-top: -15px;
    font: normal normal normal 17px/28px "ts-icons";
    color: rgba(0, 54, 153, 0.25);
    text-align: center;
    font-weight: bold;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
@media (max-width: 840px) {
    .upload-block__explainer-item {
        display: block;
        max-width: 320px;
        margin: 0 auto 30px;
        padding: 15px;
        text-align: left;
    }
    .upload-block__explainer-item:nth-child(1):after,
    .upload-block__explainer-item:nth-child(2):after {
        top: auto;
        bottom: -31px;
        left: 10px;
         -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }
    .upload-block__explainer-ico {
        display: inline-block;
        width: 24px;
        margin: -3px 15px 0 0;
        vertical-align: middle;
        font-size: 24px;
    }
}

.upload-block__btn {
    margin: 10px auto 15px;
    cursor: pointer;
    overflow: hidden;
}

.upload-block__btn--gallery {
    margin-left: 20px;
}
@media (max-width: 460px) {
    .upload-block__btn--gallery {
        margin-left: 0;
    }
}

.upload-block__hint {
    color: #808488;
}

.upload-drop-file-zone {
    border: dotted white;
}

.upload-drop-file-zone-hover {
    border: dotted #ff0084;
}

@media (max-width: 700px) {
    .upload-block {
        padding-bottom: 0;
    }
}

.material__title {
    margin: 0 0 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.aff-widget__upload-controls {
    display: flex;
    flex-flow: row wrap;
}

.aff-widget__upload-zoom {
    flex: 1 1 0%;
    margin-left: auto;
}

.aff-widget .model-zoom-title {
    margin-bottom: 15px;
    text-align: right;
}
.units {
    flex: 0 1 auto;
    margin: 0 0 15px;
}
.units__label {
    margin-right: 5px;
    vertical-align: middle;
}
@media (max-width: 720px) {
    .aff-widget__upload-zoom {
        flex: 1 1 100%;
    }
    .units {
        flex-basis: 100%;
    }
    .aff-widget .model-zoom-title {
        text-align: left;
    }
    .aff-widget #modelZoom {
        margin: 0 -15px;
    }
    .aff-widget .model-zoom {
        border-radius: 0;
    }
}

.models {
    margin: 0 -15px;
}

.models__row {
    padding-top: 15px;
    border-bottom: 1px solid #e6e8ea;
}

.models__row:hover {
    background: #f8fafc;
}

.models__row:hover .models__del {
    background: #f8fafc;
}

.models__row:after {
    content: '';
    display: table;
    clear: both;
}

.models__pic {
    position: relative;
    float: left;
    width: 95px;
    margin-bottom: 10px;
    padding-left: 15px;
}

.model_loading_error_reason {
    color: red;
    font-size: 12px;
}

.models_loading_progress {
    height: 5px;
    background-color: #d0d4d8;
    border-radius: 5px;
}

.models__pic img {
    width: 100%;
    border-radius: 5px;
}

.models__pic-qty {
    position: absolute;
    z-index: 1;
    bottom: 0;
    right: 0;
    display: inline-block;
    height: 15px;
    padding: 0 5px;
    font-size: 14px;
    line-height: 15px;
    border-radius: 20px;
    color: #fff;
    background: #82c015;
    cursor: default;
}

.models__loading,
.models__pic img.models__loading {
    display: block;
    width: 30px;
    height: 30px;
    margin: 5px auto 0;
    border-radius: 0;
}

.preloader__loading {
    display: block;
    width: 60px;
    height: 60px;
    margin: 25px auto;
    border-radius: 0;
}

.models__data {
    margin-left: 110px;
    font-size: 0;
}

.models__info,
.models__qty,
.models__del {
    display: inline-block;
    vertical-align: top;
}

.models__info {
    width: calc(100% - 130px);
}

.models__title {
    font-size: 18px;
    line-height: 20px;
    margin: 0 0 5px;
    text-overflow: ellipsis;
    overflow: hidden;
}

.models__size {
    margin-bottom: 10px;
    font-size: 13px;
    line-height: 18px;
    color: #808488;
}

.models__loading-state {
    font-size: 14px;
    margin: 0 0 10px;
}

.models__qty {
    width: 90px;
    padding: 0 10px;
}

.models__qty label {
    font-size: 14px;
    color: #505458;
}

.models__del {
    width: 40px;
    margin-left: 90px;
    padding-right: 10px;
    text-align: center;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 24px;
    line-height: 30px;
    text-decoration: none;
    color: #b0b4b8;
    border: 0;
    background: #fff;
}

.models__del:hover {
    text-decoration: none;
    color: #404448;
}

.models__del:focus {
    outline: none;
}

.models__qty + .models__del {
    margin: 0;
    padding-top: 25px;
}

.models__controls {
    padding-top: 15px;
}

.models__add-btn {
    margin: 0 0 15px 15px;
}

@media (max-width: 500px) {
    .models { }

    .models__row {
        position: relative;
    }

    .models__row + .models__row { }

    .models__data {
        position: relative;
        margin-left: 0;
    }

    .models__info {
        width: calc(100% - 95px);
        padding-right: 10px;
        padding-left: 10px;
        min-height: 70px;
    }

    .models__title {
        font-size: 14px;
        font-weight: bold;
    }

    .models__size {
        font-size: 12px;
        white-space: normal;
    }

    .models__qty {
        float: left;
        width: 200px;
        padding: 10px 0 10px 15px;
    }

    .models__qty .control-label {
        width: 90px;
    }

    .models__qty .form-control {
        display: inline-block;
        width: 70px;
    }

    .models__del {
        float: right;
        padding-top: 10px !important;
    }
}

.preview {
    display: block;
    width: 100%;
    min-width: 100%;
    max-width: 100px;
    margin-bottom: 20px;
    border-radius: 5px;
    border: 1px solid #e0e4e8;
    text-align: left;
}

.preview__hint {
    padding: 5px 5px 0 15px;
    font-size: 12px;
    color: #606468;
}

.preview__view3d {
    margin: 10px 15px;
}

.preview__slider {
    width: 100%;
    height: 130px;
    padding: 10px 15px 0;
    overflow: auto;
    white-space: nowrap;
    font-size: 0;
}

.preview_slider-clickable::-webkit-scrollbar {
    cursor: -webkit-grab;
}

.preview__slider::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    border-radius: 10px;
}

.preview_slider-clickable::-webkit-scrollbar-track {
    cursor: -webkit-grab;
}

.preview__slider::-webkit-scrollbar-track {
    background-color: #e0e4e8;
    border-radius: 10px;
}

.preview_slider-clickable::-webkit-scrollbar-thumb {
    cursor: -webkit-grab;
}

.preview__slider::-webkit-scrollbar-thumb {
    background-color: #808488;
    border-radius: 10px;
}

.preview_slider-clickable {
    cursor: pointer;
}

.preview__slide {
    position: relative;
    display: inline-block;
    vertical-align: top;
    width: 100px;
    height: 75px;
    margin-right: 20px;
    border-radius: 5px;
    -webkit-transition: all .2s ease;
    -moz-transition: all .2s ease;
    -o-transition: all .2s ease;
    transition: all .2s ease;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    box-shadow: 0 1px 5px 0 rgba(0, 54, 153, 0.3);
}

.preview_slider-clickable:hover {
    box-shadow: 0 3px 20px 0 rgba(0, 54, 153, 0.3);
}

.preview__slide--selected,
.preview__slide--selected:hover {
    cursor: default;
    box-shadow: 0 3px 20px 0 rgba(0, 54, 153, 0.3), 0 0 0 2px #2d8ee0;
}

.preview__slide--selected:after {
    content: "\e954";
    position: absolute;
    display: block;
    width: 16px;
    height: 16px;
    top: -8px;
    right: -8px;
    font: normal normal normal 9px/17px "ts-icons";
    color: #fff;
    background: #2d8ee0;
    text-align: center;
    border-radius: 20px;
    font-weight: bold;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.preview__slider span:last-child .preview__slide {
    margin-right: 0;
}

.preview__material {
    position: absolute;
    bottom: -25px;
    left: 0;
    right: 0;
    height: 14px;
    padding: 0 2px 0 15px;
    line-height: 14px;
    font-size: 12px;
    z-index: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

.preview__material-color {
    position: absolute;
    top: 2px;
    left: 0;
    display: block;
    height: 10px;
    width: 10px;
    border-radius: 30px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}

.preview__pic {
    display: block;
    width: 100%;
    border-radius: 5px;
}

.preview__qty {
    position: absolute;
    z-index: 1;
    bottom: -3px;
    right: -3px;
    display: inline-block;
    height: 15px;
    padding: 0 5px;
    font-size: 14px;
    line-height: 15px;
    border-radius: 20px;
    color: #fff;
    background: #82c015;
}

.color-switcher__material-list .material-item {
    margin: 0 3px 5px;
    width: calc(33.3333% - 6px);
    height: 30px;
    padding: 0;
    line-height: 30px;
    cursor: pointer;
}

.color-switcher__mobile > .material-item {
    display: block;
    width: 100%;
    margin: 0;
}

.printers { }

.printers__control {
    display: flex;
}

.printers__loc {
    margin-bottom: 5px;
    color: #707478;
}

.printers__loc .UserLocationWidget > .btn-link {
    padding-top: 3px;
    padding-bottom: 3px;
}

.printers__sort {
    margin-bottom: 5px;
    margin-left: auto;
}

.printers__sort label {
    margin-right: 5px;
}

.printers__sort select {
    display: inline-block;
    width: auto;
}

@media (max-width: 580px) {
    .printers__control {
        display: flex;
        flex-flow: row wrap;
    }

    .printers__sort {
        margin-bottom: 15px;
        width: 100%;
    }
}

.model-printers-available {
    font-size: 0;
    position: relative;
    margin: 0 0 15px;
    padding: 10px;
    border: 1px solid #e0e4e8;
    border-radius: 5px;
    display: block;
    background: #fff;
    -webkit-transition: all .2s ease;
    -moz-transition: all .2s ease;
    -o-transition: all .2s ease;
    transition: all .2s ease;
    cursor: pointer;
}

.model-printers-available:hover {
    border: 1px solid #2d8ee0;
    background: #f8fcff;
}

.model-printers-available--choosen,
.model-printers-available--choosen:hover {
    border: 1px solid #82c015;
    background: #f8fffc;
    border-top-right-radius: 8px;
}

.model-printers-available--choosen:after {
    content: "\e955";
    position: absolute;
    display: block;
    width: 15px;
    height: 15px;
    top: -7px;
    right: -7px;
    font: normal normal normal 15px/15px "ts-icons";
    color: #6fa610;
    background: #fff;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.model-printers-available__wrap,
.model-printers-available__info,
.model-printers-available__quality,
.model-printers-available__rating,
.model-printers-available__delivery,
.model-printers-available__price,
.model-printers-available__color,
.model-printers-available__print-btn,
.model-printers-available__price-btn {
    font-size: 14px;
    display: inline-block;
    padding-right: 10px;
    padding-left: 10px;
    vertical-align: middle;
}

.model-printers-available__wrap {
    /*width: 70%;*/
    width: 100%;
    padding: 0;
    border-radius: 5px;
    font-size: 0;
}

.model-printers-available__info {
    width: 100%;
    padding: 0;
}

.model-printers-available__info__img {
    position: relative;
    float: left;
    width: 30px;
    height: 30px;
    margin: 0 10px 5px 0;
    text-align: center;
}
.model-printers-available__info__img a {
    display: block;
    overflow: hidden;
}
.model-printers-available__info__img img {
    width: 30px;
    height: 30px;
    border-radius: 50%;
}
.model-printers-available__info__img .cert-label {
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
}

.model-printers-available__info__ps {
    margin-left: 40px;
    padding-right: 10px;
}

.model-printers-available__info__ps-title {
    color: #2a2a2a;
    font-weight: bold;
    line-height: 15px;
}

.model-printers-available__info__ps-title > a {
    color: #2a2a2a;
    -webkit-transition: all .2s ease;
    -moz-transition: all .2s ease;
    -o-transition: all .2s ease;
    transition: all .2s ease;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.model-printers-available--choosen .model-printers-available__info__ps-title > a,
.model-printers-available:hover .model-printers-available__info__ps-title > a {
    /*color: #2d8ee0;*/
}

.model-printers-available__info__ps-rating {
    margin-bottom: 2px;
    font-size: 12px;
    color: #909498;
}

.star-rating-block {
    display: inline-block;
}

.star-rating-block .rating-xs {
    position: relative;
    font-size: 12px;
    top: -2px;
    margin-right: 5px;
}

.aff-widget .star-rating-count {
    font-size: 14px;
    color: #707478;
    font-weight: normal;
}

.model-printers-available__info__ps-printer {
    padding-bottom: 10px;
    font-size: 12px;
    line-height: 15px;
    color: #909498;
}

.model-printers-available__info__descript {
    margin-left: 40px;
}

.model-printers-available__quality {
    width: 25%;
    color: #888;
    font-size: 14px;
    padding: 0;
}

.model-printers-available__rating {
    width: 25%;
    font-weight: bold;
}

.model-printers-available__rating .tsi {
    color: #e00457;
}

.model-printers-available__delivery {
    font-size: 14px;
    width: 100%;
    padding: 0 0 0 40px;
    vertical-align: top;
}

.model-printers-available__delivery-title {
    padding: 0;
    line-height: 15px;
    font-size: 14px;
}

.model-printers-available__price-delivery {
    font-size: 12px;
}

.model-printers-available__price-delivery strong {
    color: #404448;
}

.model-printers-available__delivery-types { }

.model-printers-available__price {
    display: inline-block;
    width: 100%;
    height: auto;
    padding: 10px 0 0 40px;
    font-weight: bold;
    white-space: nowrap;
    text-align: left;
}

.ts-print-price {
    display: inline;
    color: #404448;
    font-weight: bold;
}

.model-printers-available__price.model-printers-available__price--for-others {
    border: 1px solid #e0e4e8;
    height: 30px;
    line-height: 30px;
}

.model-printers-available__color {
    width: 100%;
    padding: 0 5px 0 0;
}

.model-printers-available__color .material-item {
    display: block;
}

.model-printers-available__color .ts-material-color:hover {
    top: 0;
    cursor: default;
}

.model-printers-available__print-btn {
    width: 100%;
    padding: 10px 0 0 40px;
}

.model-printers-available__print-btn .btn {
    height: 40px;
    margin: 0;
    padding-right: 0;
    padding-left: 0;
    font-size: 14px;
    border-radius: 0 0 5px 5px;
}

.model-printers-available__print-btn.model-printers-available__print-btn--for-others .btn {
    height: 30px;
    padding: 4px 0;
    min-height: 30px;
    background: #e0e4e8;
    border-color: #e0e4e8;
    color: #606468;
    cursor: default;
    font-size: 12px;
}

.model-printers-available__price-btn {
    width: 100%;
    padding: 0;
    border-radius: 5px;
    font-size: 0;
}

.model-printers-available__show-more {
    display: block;
    margin: 15px 0;
    padding: 10px 0;
    text-align: center;
    border-radius: 5px;
    background: #f0f4f8;
    color: #2d8ee0;
    font-weight: bold;
}

.model-printers-available__show-more:hover {
    background: #e0e4e8;
    color: #2d8ee0;
}

.model-printers-available__show-more:hover,
.model-printers-available__show-more:focus {
    text-decoration: none;
}

@media (max-width: 450px) {
    .model-printers-available__rating,
    .model-printers-available__quality {
        display: none;
    }
}

@media (min-width: 450px) {
    .model-printers-available__wrap {
        width: 70%;
    }

    .model-printers-available__info {
        width: 100%;
    }

    .model-printers-available__quality {
        width: 25%;
    }

    .model-printers-available__rating {
        width: 25%;
    }

    .model-printers-available__delivery { }

    .model-printers-available__price-btn {
        width: 30%;
        vertical-align: top;
    }

    .model-printers-available__price {
        padding: 0 0 10px;
        line-height: 15px;
        text-align: right;
    }

    .model-printers-available__color { }

    .model-printers-available__print-btn {
        padding: 0;
    }
}

@media (min-width: 600px) and (max-width: 767px) {
    .model-printers-available__wrap {
        width: 75%;
        padding: 0 10px 0 0;
    }

    .model-printers-available__info {
        width: 60%;
    }

    .model-printers-available__quality {
        width: 25%;
        margin-bottom: 10px;
    }

    .model-printers-available__rating {
        width: 25%;
        margin-bottom: 10px;
    }

    .model-printers-available__delivery {
        width: 40%;
        padding: 0;
    }

    .model-printers-available__price-btn {
        width: 25%;
    }

    .model-printers-available__price { }

    .model-printers-available__color {
        width: 35%;
        margin-top: 5px;
        text-align: left;
    }

    .model-printers-available__print-btn { }

    .model-printers-available__print-btn .btn {
        border-radius: 5px;
    }
}

@media (min-width: 1000px) {
    .model-printers-available__wrap {
        width: 85%;
    }

    .model-printers-available__info {
        width: 60%;
    }
    .model-printers-available__delivery {
        width: 40%;
        padding: 0 10px 0 0;
    }

    .model-printers-available__price-btn {
        width: 15%;
    }
    .model-printers-available__print-btn .btn {
        height: 30px;
        min-height: 30px;
        padding-top: 4px;
        padding-bottom: 4px;
    }
}

/* Item rendering */
.item-rendering { }

@media (max-width: 767px) {
    .item-rendering {
        margin: 50px 0;
    }
}

.item-rendering__message {
    padding: 20px 30px;
    border-radius: 10px;
    font-size: 30px;
    line-height: 30px;
    text-align: center;
    background: #fff;
}

.item-rendering__line {
    width: 0;
    margin: 15px 0 0;
    padding: 5px;
    border-radius: 10px;
    background: #e00457;
}

@keyframes wave_animation {
    0% { transform: translateY(0) }
    20% { transform: translateY(-3px) }
    35% { transform: translateY(-18px) }
    45% { transform: translateY(-20px) }
    55% { transform: translateY(-18px) }
    80% { transform: translateY(-3px) }
    100% { transform: translateY(0) }
}

.wave-anim {
    animation-name: wave_animation;
    animation-duration: 4500ms;
    transform-origin: 70% 70%;
    animation-iteration-count: infinite;
    animation-timing-function: linear
}

@keyframes line_animation {
    from { width: 0 }
    to { width: 100% }
}

.line-anim {
    animation-name: line_animation;
    animation-duration: 17000ms;
    transform-origin: 70% 70%;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

.ng-leave-prepare, .ng-leave-active {
    display: none;
}

#form-views.ng-enter {
    -webkit-animation: slideInRight 0.5s both ease;
    -moz-animation: slideInRight 0.5s both ease;
    animation: slideInRight 0.5s both ease;
}

.modal-model3d-preview {
    width: 100%;
    max-width: 830px;
}

.modal-part-title {
    margin-bottom: 15px;
    text-align: center;
}

.modal-part-image {
    width: 100%;
}

.modal-model3d-part-positions {
    text-align: center;
    font-size: 0;
}

.modal-model3d-part-positions-wrap {
    display: inline-block;
    max-width: calc(100% - 80px);
    margin: 0 10px;
}

.modal-model3d-part-positions .btn-sm {
    padding-left: 0;
    padding-right: 0;
    vertical-align: top;
}

.modal-part-position-element {
    display: inline-block;
    margin: 0 5px 5px;
}

.model-part-position-active {
    background: #e0e4e8;
    border-color: #e0e4e8;
    color: #404448;
    font-size: 24px;
}

/* leave animation */
#form-views.ng-leave {
    -webkit-animation: slideOutLeft 0.5s both ease;
    -moz-animation: slideOutLeft 0.5s both ease;
    animation: slideOutLeft 0.5s both ease;
}

/* ANIMATIONS
============================================================================= */
/* slide out to the left */
@keyframes slideOutLeft {
    to { transform: translateX(-200%); }
}

@-moz-keyframes slideOutLeft {
    to { -moz-transform: translateX(-200%); }
}

@-webkit-keyframes slideOutLeft {
    to { -webkit-transform: translateX(-200%); }
}

/* slide in from the right */
@keyframes slideInRight {
    from { transform: translateX(200%); }
    to { transform: translateX(0); }
}

@-moz-keyframes slideInRight {
    from { -moz-transform: translateX(200%); }
    to { -moz-transform: translateX(0); }
}

@-webkit-keyframes slideInRight {
    from { -webkit-transform: translateX(200%); }
    to { -webkit-transform: translateX(0); }
}

.img-opacity30 {
    opacity: 0.3;
}

.aff-widget__checkout-page {
    background: #fff;
    border-radius: 5px;
}