.catalog {
    padding: 40px var(--container-pad) var(--section-pad-bottom);
}

@media (max-width: 1500px) {
    .catalog {
        padding: 20px 20px 100px;
    }
}

.catalog__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px var(--grid-gap);
}

.card-main {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.card-main__img {
    aspect-ratio: 910 / 820;
    overflow: hidden;
}

.card-main__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.card-main:hover .card-main__img img {
    transform: scale(1.04);
}

.card-main__title {
    font-size: var(--fs-card);
    line-height: 1.1;
    color: #0D0A0A;
}

.catalog__small {
    display: none;
    grid-template-columns: 1fr 1fr;
    gap: 40px 20px;
    margin-top: 0;
    height: 0;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s ease-in-out;
}

.catalog__small .button {
    grid-column: span 2;
    margin: 0 auto;
    margin-top: 40px;
}

.catalog__more {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.catalog__small.is-visible {
    height: auto;
    opacity: 1;
    visibility: visible;
    margin-top: 40px;
}

@media (max-width: 768px) {
	.banners {
		padding: 0 15px 80px !important;
	}
	.banner__heading {
		font-size: 54px !important;
	}
	.banner__desc {
		font-size: 18px !important;
	}
	.card-main__title {
		font-size: 16px;
	}
	.catalog {
		padding: 20px 15px 60px;
	}
    .catalog__grid {
        gap: 24px 16px;
    }
    .card-main {
        gap: 16px;
    }
    .catalog__small.is-visible {
        margin-top: 24px;
    }
    .catalog__small .button {
        margin-top: 32px;
    }
}

@media (max-width: 576px) {
.banners {
		padding: 0 15px 60px !important;
	}
.banner__heading {
		font-size: 40px !important;
	}
	.banner__desc {
		font-size: 16px !important;
	}
    .catalog__grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

    .card-main {
        gap: 12px;
    }

	.card-main:nth-child(-n + 5) {
		grid-column: span 2;
	}

    .card-main__img {
        aspect-ratio: 345 / 329;
    }

    .card-main--hide-mobile {
        display: none;
    }

    .catalog__small {
        gap: 16px 8px;
        margin-top: 24px;
    }

    .card-main--small .card-main__img {
        aspect-ratio: 168 / 196;
    }

    .catalog__more {
        margin-top: 32px;
    }
}

.card-main.hidden {
    display: none;
}