.filter-applied-block {
    --item-margin-right: 10px;
    --item-margin-bottom: 10px;
    margin: 0 calc(var(--item-margin-right) * -1) calc(var(--item-margin-bottom) * -1) 0;
    display: inline-flex;
    flex-flow: wrap;
    align-items: center;
    white-space: nowrap;
    position: relative;
    z-index: 0
}

.filter-applied-block::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.filter-applied-block::after {
    content: "";
    position: absolute;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-left-color: currentColor;
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2;
    margin-top: calc(var(--item-margin-bottom) / -2)
}

.filter-applied-block.loading {
    pointer-events: none
}

.filter-applied-block.loading::after,
.filter-applied-block.loading::before {
    opacity: .75;
    visibility: visible
}

.filter-applied-block--is-hidden {
    display: none
}

.filter-applied-block__item {
    margin: 0 var(--item-margin-right) var(--item-margin-right) 0;
    padding: 7px 10px;
    display: flex;
    align-items: center;
    line-height: 1;
    color: #fff;
    background: #585858;
    font: 14px/1 var(--text-font);
    cursor: pointer
}

.filter-applied-block__item::after {
    flex-shrink: 0;
    content: "";
    margin: 1px 0 0 5px;
    width: 10px;
    height: 10px;
    background: center/contain no-repeat url(img/icon-cross-white.svg)
}

.filter-applied-block__reset {
    margin: 0 0 0 15px;
    font: 14px/1.3 var(--text-font);
    text-transform: lowercase;
    color: var(--medium-grey-color);
    border-bottom: 1px solid
}

.filter-applied-block__reset--is-hidden {
    display: none
}

.catalog-product-card {
    --card-padding: 20px;
    --tags-font-size: 12px;
    --tag-height: 22px;
    --favorite-icon-size: 20px;
    --picture-margin-top: 5px;
    --picture-margin-bottom: 5px;
    --picture-height: calc((100vw - 320px) / (575 - 320) * (379 - 129) + 129px);
    --picture-max-height: 379px;
    --brand-margin-bottom: 5px;
    --brand-font-size: 14px;
    --title-margin-bottom: 8px;
    --title-font-size: 14px;
    --bottom-font-size: 14px
}

.catalog--without-filter .filter,
.catalog--without-filter .filter__applied-items,
.catalog--without-filter .products-catalog__actions,
.catalog--without-filter .products-catalog__sort {
    display: none
}

.catalog__heading-block {
    display: flex;
    align-items: flex-end
}

.catalog__title {
    text-transform: uppercase
}

.catalog__count {
    margin: 2px 0 0 10px;
    font: 500 14px/1.3 var(--heading-font);
    color: grey;
    white-space: nowrap
}

.catalog__count-number {
    color: var(--yellow-color)
}

.products-catalog__actions {
    margin: 0 0 20px;
    display: flex;
    align-items: center
}

.products-catalog__actions.fixed {
    padding: 10px var(--section-px);
    position: fixed;
    top: var(--fixed-header-height);
    left: 0;
    margin: 0;
    width: 100%;
    border-bottom: 1px solid var(--border-color);
    background: #fff;
    animation: .5s translateToBottom;
    z-index: 2
}

.products-catalog__sort {
    margin: 0 0 0 auto
}

.products-catalog__items-wrapper {
    width: 100%;
    display: flex;
    flex-flow: column
}

.products-catalog__card {
    margin: 0 0 -1px
}

.products-catalog__nav {
    margin: 30px auto 0
}

.products-catalog__loadmore {
    width: 30px;
    height: 30px;
    position: relative;
    z-index: 0
}

.products-catalog__loadmore::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.products-catalog__loadmore::after {
    content: "";
    position: absolute;
    top: calc(50% - 15px);
    left: calc(50% - 15px);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: var(--dark-color);
    border-left-color: var(--dark-color);
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2
}

.products-catalog__loadmore.loading {
    pointer-events: none
}

.products-catalog__loadmore.loading::after,
.products-catalog__loadmore.loading::before {
    opacity: .75;
    visibility: visible
}

.products-catalog__loadmore.hide {
    display: none
}

.open-filter-button {
    display: flex;
    align-items: center
}

.open-filter-button__icon {
    margin: 0 10px 0 0;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    background: center/contain no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDE4IDE4Ij48cGF0aCBmaWxsPSIjMTQxNDE0IiBkPSJNLjQyOCA0LjQ5aDE3LjE0NGMuMjUgMCAuNDI4LS4yMTMuNDI4LS40MjdzLS4xNDMtLjQ2My0uMzkyLS40NjNILjQyOEEuNDMzLjQzMyAwIDAgMCAwIDQuMDI3YzAgLjIxNC4xNzguNDY0LjQyOC40NjRaTTE3LjYwOCA4Ljk5SC40MjhBLjQzMy40MzMgMCAwIDAgMCA5LjQxOGEuNDYuNDYgMCAwIDAgLjQyOC40MjhoMTcuMTQ0Yy4yNSAwIC40MjgtLjIxNC40MjgtLjQyOHMtLjE0My0uNDI4LS4zOTItLjQyOFpNMTcuNjA4IDE0LjM0NkguNDI4YS40MzMuNDMzIDAgMCAwLS40MjguNDI3LjQ2LjQ2IDAgMCAwIC40MjguNDI4aDE3LjE0NGMuMjUgMCAuNDI4LS4yMTQuNDI4LS40MjggMC0uMjEzLS4xNDMtLjQyNy0uMzkyLS40MjdaIi8+PGNpcmNsZSBjeD0iMTMiIGN5PSI0IiByPSIxLjYiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzE0MTQxNCIgc3Ryb2tlLXdpZHRoPSIuOCIvPjxjaXJjbGUgY3g9IjUiIGN5PSIxNSIgcj0iMS42IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMxNDE0MTQiIHN0cm9rZS13aWR0aD0iLjgiLz48L3N2Zz4=)
}

.tax-product_brand .filter__search-result,
.tax-product_designer .filter__search-result {
    max-height: none !important
}

.filter {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    min-width: 100vw;
    max-width: 100vw;
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
    max-height: 100vh;
    max-height: calc(var(--vh, 1vh) * 100);
    z-index: 4;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s
}

.filter.active {
    opacity: 1;
    visibility: visible
}

.filter__content {
    padding: 30px 0 70px;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--white-color)
}

.filter__heading {
    margin: 0 0 20px;
    padding: 0 var(--section-px);
    display: flex;
    align-items: center
}

.filter__reset {
    margin: 0 0 0 15px;
    font: 14px/1.3 var(--text-font);
    text-transform: lowercase;
    color: var(--medium-grey-color);
    border-bottom: 1px solid
}

.filter__reset--is-hidden {
    display: none
}

.filter__close {
    top: 30px;
    right: var(--section-px);
    position: fixed;
    width: 15px;
    height: 15px;
    background-color: #fff;
    z-index: 1
}

.filter__close-icon {
    width: 100%;
    height: 100%;
    pointer-events: none
}

.filter__applied-items {
    margin: 0 -10px 0 0;
    padding: 0 var(--section-px) 20px;
    display: flex;
    flex-flow: wrap;
    border-bottom: 1px solid
}

.filter__applied-items .filter__reset,
.filter__applied-items--is-hidden,
.filter__applied-items:empty {
    display: none
}

.filter__applied-item {
    margin: 0 10px 10px 0;
    padding: 7px 10px;
    display: flex;
    align-items: center;
    line-height: 1;
    color: #fff;
    background: #585858;
    font: 14px/1 var(--text-font)
}

.filter__applied-item[data-applied-item-id=filter-colors],
.filter__applied-item[data-value="В наличии"],
.filter__applied-item[data-value=Скоро] {
    text-transform: lowercase
}

.filter__applied-item::after {
    flex-shrink: 0;
    content: "";
    margin: 1px 0 0 5px;
    width: 10px;
    height: 10px;
    background: center/contain no-repeat url(img/icon-cross-white.svg)
}

.filter__tags {
    margin: 30px -5px 0 0;
    padding: 0 var(--section-px) 25px;
    display: flex;
    align-items: center;
    flex-flow: wrap;
    color: var(--grey-color);
    font: 12px/1 var(--heading-font)
}

.filter__tag {
    margin: 0 5px 5px 0;
    padding: 5px 10px;
    display: flex;
    align-items: center;
    border: 1px solid #f7f5f3;
    background: #f7f5f3;
    line-height: 1;
    position: relative;
    z-index: 0
}

.filter__tag::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: #f7f5f3;
    z-index: 1
}

.filter__tag::after {
    content: "";
    position: absolute;
    top: calc(50% - .5em);
    left: calc(50% - .5em);
    width: 1em;
    height: 1em;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: currentColor;
    border-left-color: currentColor;
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2
}

.filter__tag.loading {
    pointer-events: none
}

.filter__tag.loading::after,
.filter__tag.loading::before {
    opacity: .75;
    visibility: visible
}

.filter__tag--is-lowercase {
    text-transform: lowercase
}

.filter__tag-input {
    display: none
}

.filter__tag-input:checked+.filter__tag-checkbox {
    background-color: currentColor;
    border-color: currentColor
}

.filter__tag-input:checked+.filter__tag-checkbox::after {
    opacity: 1
}

.filter__tag-checkbox {
    margin: 0 10px 0 0;
    flex-shrink: 0;
    width: 15px;
    height: 15px;
    border: 1px solid var(--border-color);
    transition: background-color .5s, border-color .5s;
    position: relative;
    flex-shrink: 0;
    border: 1px solid var(--beige-color)
}

.filter__tag-checkbox::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 3px;
    transform: rotate(-45deg);
    width: 7px;
    height: 4px;
    border: 1px solid var(--white-color);
    border-top: 0;
    border-right: 0;
    opacity: 0;
    transition: opacity .5s
}

.filter__attribute {
    padding: 15px var(--section-px);
    border-bottom: 1px solid var(--border-color)
}

.filter__attribute:first-child {
    border-top: 1px solid var(--border-color)
}

.filter__attribute-title {
    font: 700 16px/1 var(--heading-font);
    text-transform: uppercase;
    color: #505050
}

.filter__attribute-content {
    padding: 15px 0 10px
}

.filter__dropdown {
    margin: 0 0 -15px;
    display: flex;
    flex-flow: column;
    align-items: flex-start;
    color: var(--medium-grey-color);
    text-transform: uppercase;
    font: 500 16px/1.3 var(--heading-font)
}

.filter__dropdown-item {
    margin: 0 0 15px
}

.filter__dropdown-item--is-active>.filter__dropdown-item-title.lazyloaded::before,
.filter__dropdown-item--is-active>.filter__dropdown-item-title:not(.lazy)::before {
    transform: rotate(180deg);
    filter: none
}

.filter__dropdown-item--has-sublist {
    overflow: hidden;
    transition: max-height .5s;
    will-change: max-height
}

.filter__dropdown-item--has-sublist>.filter__dropdown-item-title.lazyloaded::before,
.filter__dropdown-item--has-sublist>.filter__dropdown-item-title:not(.lazy)::before {
    flex-shrink: 0;
    content: "";
    position: absolute;
    top: calc(.7em - 3px);
    left: 0;
    width: 10px;
    height: 5px;
    background: center/contain url(img/icon-dropdown.svg) no-repeat;
    filter: invert(52%) sepia(0) saturate(3893%) hue-rotate(70deg) brightness(98%) contrast(94%);
    transition: filter .5s, transform .5s
}

.filter__dropdown-item-title {
    padding-left: 30px;
    width: 100%;
    position: relative
}

.filter__dropdown-item-label {
    display: flex;
    position: relative;
    z-index: 0
}

.filter__dropdown-item-label::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.filter__dropdown-item-label::after {
    content: "";
    position: absolute;
    top: calc(50% - 7.5px);
    left: calc(50% - 7.5px);
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--dark-color);
    border-left-color: var(--dark-color);
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2
}

.filter__dropdown-item-label.loading {
    pointer-events: none
}

.filter__dropdown-item-label.loading::after,
.filter__dropdown-item-label.loading::before {
    opacity: .75;
    visibility: visible
}

.filter__dropdown-item-input {
    display: none
}

.filter__dropdown-sublist {
    margin: 0 0 -10px;
    padding: 15px 0 0 30px;
    display: flex;
    flex-flow: column;
    align-items: flex-start;
    font: 500 14px/1.3 var(--heading-font)
}

.filter__dropdown-sublist-item {
    margin: 0 0 10px
}

.filter__dropdown-sublist-item--has-subsublist {
    overflow: hidden;
    transition: max-height .5s;
    will-change: max-height
}

.filter__dropdown-sublist-item--has-subsublist>.filter__dropdown-sublist-item-title::before {
    flex-shrink: 0;
    content: "+";
    position: absolute;
    top: 0;
    left: 0;
    font-size: 18px;
    width: 1em;
    text-align: center;
    color: grey;
    line-height: .9;
    transition: color .5s
}

.filter__dropdown-sublist-item--is-active>.filter__dropdown-sublist-item-title::before {
    content: "-";
    color: grey
}

.filter__dropdown-sublist-item-label {
    display: flex;
    position: relative;
    z-index: 0
}

.filter__dropdown-sublist-item-label::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.filter__dropdown-sublist-item-label::after {
    content: "";
    position: absolute;
    top: calc(50% - 7.5px);
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--dark-color);
    border-left-color: var(--dark-color);
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2;
    left: calc(50% - 7.5px + 10px)
}

.filter__dropdown-sublist-item-label.loading {
    pointer-events: none
}

.filter__dropdown-sublist-item-label.loading::after,
.filter__dropdown-sublist-item-label.loading::before {
    opacity: .75;
    visibility: visible
}

.filter__dropdown-sublist-item-input {
    display: none
}

.filter__dropdown-sublist-item-title {
    padding-left: 20px;
    width: 100%;
    position: relative
}

.filter__dropdown-subsublist {
    margin: 0 0 -5px;
    padding: 10px 0 0;
    display: flex;
    flex-flow: column;
    align-items: flex-start;
    text-transform: lowercase;
    font-weight: 400
}

.filter__dropdown-subsublist-item {
    margin: 0 0 5px
}

.filter__dropdown-subsublist-item-label {
    display: flex;
    position: relative;
    z-index: 0
}

.filter__dropdown-subsublist-item-label::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.filter__dropdown-subsublist-item-label::after {
    content: "";
    position: absolute;
    top: calc(50% - 5px);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: var(--dark-color);
    border-left-color: var(--dark-color);
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2;
    left: calc(50% - 5px + 10px)
}

.filter__dropdown-subsublist-item-label.loading {
    pointer-events: none
}

.filter__dropdown-subsublist-item-label.loading::after,
.filter__dropdown-subsublist-item-label.loading::before {
    opacity: .75;
    visibility: visible
}

.filter__dropdown-subsublist-item-input {
    display: none
}

.filter__dropdown-subsublist-item-title {
    padding: 0 0 0 20px
}

.filter__minmax {
    display: flex;
    flex-wrap: wrap;
    color: #505050;
    font: 14px/1 var(--text-font)
}

.filter__minmax-field {
    flex-shrink: 0;
    width: 50%;
    display: flex;
    position: relative
}

.filter__minmax-field[data-text-after]>.filter__minmax-field-text-after {
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%)
}

.filter__minmax-field[data-text-before]>.filter__minmax-input {
    padding-left: 30px
}

.filter__minmax-field::before {
    content: attr(data-text-before);
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%)
}

.filter__minmax-input {
    padding: 6px 0;
    width: 100%;
    border: 1px solid var(--border-color);
    font: inherit;
    color: inherit
}

.filter__minmax-input--type-min {
    border-right: 0
}

.filter__minmax-fitld-text-after {
    display: none
}

.filter__minmax-slider {
    margin: 25px 0 0;
    flex-shrink: 0;
    display: flex;
    width: 100%
}

.filter__minmax-button {
    margin-top: 25px
}

.filter__colors {
    margin: -10px -10px 0 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap
}

.filter__color-field {
    margin: 10px 10px 0 0;
    flex-shrink: 0
}

.filter__color-input {
    display: none
}

.filter__color-input:checked+.filter__color-circle {
    box-shadow: inset 0 0 0 2px currentColor
}

.filter__color-circle {
    display: block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid transparent;
    color: var(--white-color);
    transition: box-shadow .5s ease-in-out;
    background-size: 150%;
    background-position: center
}

.filter__color-circle[style*="#fff"] {
    color: #ccc
}

.filter__search-field {
    display: flex;
    position: relative
}

.filter__search-field.lazyloaded::after,
.filter__search-field:not(.lazy)::after {
    content: "";
    width: 15px;
    height: 15px;
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    background: center/contain no-repeat url(img/icon-search.svg);
    opacity: .3
}

.filter__search-input {
    padding: 6px 25px 6px 10px;
    width: 100%;
    border: 1px solid var(--border-color)
}

.filter__search-input::-moz-placeholder {
    font: inherit;
    color: #ccc;
    text-transform: lowercase
}

.filter__search-input::placeholder {
    font: inherit;
    color: #ccc;
    text-transform: lowercase
}

.filter__search-result {
    margin: 15px 0 0;
    display: flex;
    flex-flow: column;
    align-items: flex-start;
    color: #585858;
    overflow-x: hidden;
    overflow-y: auto;
    position: relative
}

.filter__search-result--not-found::after {
    content: "Ничего не найдено"
}

.filter__search-result-item {
    margin: 0 0 5px;
    display: flex;
    align-items: flex-start;
    flex-flow: column
}

.filter__search-result-item:last-child {
    margin-bottom: 0
}

.filter__search-result-item.hide {
    display: none
}

.filter__search-result-item-word {
    font-weight: 500
}

.filter__search-result-item-field {
    margin: 5px 0 4px;
    display: flex;
    align-items: center;
    cursor: pointer;
    position: relative;
    z-index: 0
}

.filter__search-result-item-field::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: #f7f5f3;
    z-index: 1
}

.filter__search-result-item-field::after {
    content: "";
    position: absolute;
    top: calc(50% - .5em);
    left: calc(50% - .5em);
    width: 1em;
    height: 1em;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: currentColor;
    border-left-color: currentColor;
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2;
    display: none !important;
}

.filter__search-result-item-field.loading {
    pointer-events: none
}

.filter__search-result-item-field.loading::after,
.filter__search-result-item-field.loading::before {
    opacity: .75;
    visibility: visible
}

.filter__search-result-item-field:last-child {
    margin-bottom: 0
}

.filter__search-result-item-field.hide,
.filter__search-result-item-input {
    display: none
}

.filter__search-result-item-input:checked+.filter__search-result-item-checkbox {
    background-color: currentColor;
    border-color: currentColor
}

.filter__search-result-item-input:checked+.filter__search-result-item-checkbox::after {
    opacity: 1
}

.filter__search-result-item-checkbox {
    margin: 0 7px 0 0;
    flex-shrink: 0;
    width: 15px;
    height: 15px;
    border: 1px solid var(--border-color);
    transition: background-color .5s, border-color .5s;
    position: relative
}

.filter__search-result-item-checkbox::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 3px;
    transform: rotate(-45deg);
    width: 7px;
    height: 4px;
    border: 1px solid var(--white-color);
    border-top: 0;
    border-right: 0;
    opacity: 0;
    transition: opacity .5s
}

.filter__checkboxes {
    display: flex;
    flex-flow: column;
    align-items: flex-start;
    color: #585858
}

.filter__checkboxes-field {
    margin: 0 0 5px;
    display: flex;
    align-items: center;
    cursor: pointer;
    position: relative;
    z-index: 0
}

.filter__checkboxes-field::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: #f7f5f3;
    z-index: 1
}

.filter__checkboxes-field::after {
    content: "";
    position: absolute;
    top: calc(50% - .5em);
    left: calc(50% - .5em);
    width: 1em;
    height: 1em;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: currentColor;
    border-left-color: currentColor;
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2
}

.filter__checkboxes-field.loading {
    pointer-events: none
}

.filter__checkboxes-field.loading::after,
.filter__checkboxes-field.loading::before {
    opacity: .75;
    visibility: visible
}

.filter__checkboxes-field:last-child {
    margin-bottom: 0
}

.filter__checkboxes-input {
    display: none
}

.filter__checkboxes-input:checked+.filter__checkboxes-checkbox {
    background-color: currentColor;
    border-color: currentColor
}

.filter__checkboxes-input:checked+.filter__checkboxes-checkbox::after {
    opacity: 1
}

.filter__checkboxes-checkbox {
    margin: 0 7px 0 0;
    flex-shrink: 0;
    width: 15px;
    height: 15px;
    border: 1px solid var(--border-color);
    transition: background-color .5s, border-color .5s;
    position: relative
}

.filter__checkboxes-checkbox::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 3px;
    transform: rotate(-45deg);
    width: 7px;
    height: 4px;
    border: 1px solid var(--white-color);
    border-top: 0;
    border-right: 0;
    opacity: 0;
    transition: opacity .5s
}

.filter__apply-button-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 75px;
    padding: 0 var(--section-px);
    background: var(--white-color);
    z-index: 1
}

.filter__apply-button {
    height: 45px;
    position: relative;
    z-index: 0
}

.filter__apply-button::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.filter__apply-button::after {
    content: "";
    position: absolute;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--dark-color);
    border-left-color: var(--dark-color);
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2
}

.filter__apply-button.loading {
    pointer-events: none
}

.filter__apply-button.loading::after,
.filter__apply-button.loading::before {
    opacity: .75;
    visibility: visible
}

.sort {
    color: var(--medium-grey-color);
    text-transform: lowercase;
    position: relative;
    z-index: 2
}

.sort::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    pointer-events: none;
    background: var(--white-color);
    z-index: 1
}

.sort::after {
    content: "";
    position: absolute;
    top: calc(50% - .5em);
    left: calc(50% - .5em);
    width: 1em;
    height: 1em;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: currentColor;
    border-left-color: currentColor;
    animation: .5s linear infinite spin;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    z-index: 2
}

.sort.loading {
    pointer-events: none
}

.sort.loading::after,
.sort.loading::before {
    opacity: .75;
    visibility: visible
}

.sort__button {
    display: flex;
    align-items: center
}

.sort__button::before {
    content: attr(data-sort-text)
}

.sort__button::after {
    margin: 3px 0 0 7px;
    flex-shrink: 0;
    content: "";
    width: .5em;
    height: .4em;
    background: center/contain no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjUiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA4IDUiPjxwYXRoIHN0cm9rZT0iIzE0MTQxNCIgZD0ibTcgLjUtMyAzLTMtMyIvPjwvc3ZnPg==);
    opacity: .6
}

.sort__list {
    display: flex;
    flex-flow: column;
    position: absolute;
    top: 100%;
    right: 0;
    opacity: 0;
    visibility: hidden;
    white-space: nowrap;
    background: var(--white-color);
    border: 1px solid #ccc;
    color: grey;
    z-index: 1
}

.sort__list.active {
    opacity: 1;
    visibility: visible
}

.sort__list-item-input {
    display: none
}

.sort__list-item-input:checked+.sort__list-item-text {
    pointer-events: none;
    opacity: .5
}

.sort__list-item-text {
    display: block;
    padding: 10px 15px;
    transition: background-color .5s, color .5s;
    cursor: pointer
}

.sort__list-item-text:hover {
    color: var(--dark-color);
    background: #f7f5f3
}

.filter__search-result-item-field::after {
    display: none !important;
}
