.catalog-page {
    padding: 0 10vw 3vw 10vw;
}
.categories {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5vw;
  grid-auto-rows: minmax(20vw, auto);
  padding: 3vw 0 3.75vw;
}
.categories .link {
	background: #c7c7c7;
	position: relative;
	background-size: cover;
	background-position: 50% 50%;
}
.categories .link p {
    position: absolute;
    text-transform: uppercase;
    font-weight: bold;
    left: 1vw;
    z-index: 2;
	letter-spacing: .15vw;
	font-size: .8vw;
}
.categories .link .shadow {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    opacity: 0;
    transition: .25s;
}
.categories .link .shadow .show-more {
    padding: 40px 80px 40px 0;
    display: flex;
    align-items: center;
    position: relative;
    font-size: .7vw;
    text-transform: none;
    font-weight: normal;
    line-height: .7vw;
    color: #000;
}
.categories .link .shadow .show-more::before {
    content:'';
    display: block;
    width: 30px;
    height: 1px;
    position: absolute;
    right: 40px;
    background: #9A9A9A;
    opacity: 1 !important;
}
.categories .link .shadow .show-more::after {
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    position: absolute;
    border-right: 1px solid #9A9A9A;
    border-top: 1px solid #9A9A9A;
    right: 40px;
    transform: rotate(45deg);
    opacity: 1 !important;
}
.categories .link:nth-of-type(1) {
	grid-column: 1 / 3;
	grid-row: 1;
}
.categories .link:nth-of-type(2) {
	grid-column: 3;
	grid-row: 1 / 3;
}
.categories .link:nth-of-type(5) {
	grid-column: 2;
	grid-row: 2 / 4;
}
.categories .link:nth-of-type(8) {
	grid-column: 3 / 5;
	grid-row: 3;
}
.categories .link:nth-of-type(9) {
	grid-column: 1 / 3;
	grid-row: 4;
}
.categories .link p {
    color: #fff;
    top: 1vw;
}
.categories .link .shadow {
    background: #FFFFFFa8;
    color: #000;
    align-items: flex-end;
}
.categories .link:hover > .shadow {
    opacity: 1;
}
.categories-list {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    list-style: none;
    justify-content: center;
    text-transform: uppercase;
    font-size: 1vw;
    font-weight: bold;
    margin: 3vw 0 1.5vw;
}
.categories-list li {
    margin: 0 1vw 1vw;
	letter-spacing: .15vw;
	font-size: .8vw;
}
.sort-block {
    display: flex;
    justify-content: center;
    margin-bottom: 3vw;
    font-size: 1vw;
    font-size: 0;
    opacity: 0;
}
.sort-block .title {
    margin-right: 20px;
    color: #9A9A9A;
}
.sort-block .select-sort {
    position: relative;
}
.sort-block .selected {
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
}
.sort-block .selected::after {
    display: block;
    content: '';
    width: 6px;
    height: 6px;
    border-bottom: 1px solid #000;
    border-right: 1px solid #000;
    position: absolute;
    right: -12px;
    transform: rotate(45deg);
    margin-bottom: 4px;
}
.sort-block .list {
    position: absolute;
    top: 100%;
    padding: 0;
    margin: 0;
    list-style: none;
    display: none;
}
.sort-block .select-sort.active .list {
    display: block;
}
.sort-block .list li {
    cursor: pointer;
}
.empty {
    text-align: center;
    margin: 230px 0;
    width: 100%;
}
.products-block {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}
.products-block .item {
    width: calc(25% - 30px);
    margin: 0 40px 40px 0;
    position: relative;
}
.products-block .item:nth-of-type(4n + 4) {
    margin-right: 0;
}
.products-block .item .image {
    width: 100%;
    height: 25vw;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.products-block .item .image img {
    height: 100%;
    width: auto;
    position: absolute;
}
.products-block .item .name {
    margin-top: 10px;
    font-size: 1vw;
    display: flex;
    height: 3vw;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.products-block .item .bottom {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
}
.products-block .item .price {
    font-size: 16px;
    font-weight: bold;
}
.products-block .item .shopping-cart {
    cursor: pointer;
}
.catalog-page .show-all {
    margin: 20px 0;
    padding: 20px 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    position: relative;
    font-size: 14px;
    text-transform: none;
    font-weight: normal;
    line-height: 14px;
    width: 175px;
    margin: 0 auto;
    font-weight: bold;
}
.catalog-page .show-all::before {
    content:'';
    display: block;
    width: 30px;
    height: 1px;
    position: absolute;
    right: 40px;
    background: #000;
    opacity: 1 !important;
}
.catalog-page .show-all::after {
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    position: absolute;
    border-right: 1px solid #000;
    border-top: 1px solid #000;
    right: 40px;
    transform: rotate(45deg);
    opacity: 1 !important;
}
.hidden {
    display: none !important;
}
@media screen and (max-width: 768px) {
    .catalog-page {
        padding: 0 5vw;
    }
    .categories {
        gap: 5vw;
        grid-auto-rows: minmax(50vw, auto);
    }
    .categories .link:nth-of-type(1) {
        grid-column: 1 / 5;
        grid-row: 1;
    }
    .categories .link:nth-of-type(2) {
        grid-column: 1 / 3;
        grid-row: 2 / 4;
    }
    .categories .link:nth-of-type(3) {
        grid-column: 3 / 5;
        grid-row: 2;
    }
    .categories .link:nth-of-type(4) {
        grid-column: 1 / 3;
        grid-row: 5;
    }
    .categories .link:nth-of-type(5) {
        grid-column: 3 / 5;
        grid-row: 5 / 7;
    }
    .categories .link:nth-of-type(6) {
        grid-column: 3 / 5;
        grid-row: 3;
    }
    .categories .link:nth-of-type(7) {
        grid-column: 1 / 3;
        grid-row: 6;
    }
    .categories .link:nth-of-type(8) {
        grid-column: 1 / 5;
        grid-row: 4;
    }
    .categories .link:nth-of-type(9) {
        grid-column: 1 / 5;
        grid-row: 7;
    }
    .categories .link:nth-of-type(10) {
        grid-column: 1 / 3;
        grid-row: 8;
    }
    .categories .link:nth-of-type(11) {
        grid-column: 3 /5;
        grid-row: 8;
    }
    .categories .link p {
        font-size: 3.5vw;
    }
    .products-block .item {
        width: calc(50% - 2.5vw);
        margin: 0 5vw 5vw 0;
    }
    .products-block .item:nth-of-type(2n + 2) {
        margin-right: 0;
    }
    .products-block .item .image {
        height: 60vw;
    }
    .products-block .item .name {
        font-size: 2.5vw;
        height: auto;
    }
    .products-block .item .bottom {
        margin-top: 3vw;
    }
    .products-block .item .price {
        font-size: 4vw;
    }
    .products-block .item .shopping-cart img {
        width: 5vw;
    }
    .categories-list {
        font-size: 3vw;
    }
    .categories-list li {
        margin: 0 2vw 2vw;
		font-size: 2.5vw;
    }
    .sort-block {
        font-size: 3vw;
    }
}