.modules-archive { padding: 2vw 0 4vw; }
.modules-archive__head { text-align: center; margin-bottom: 2.5vw; }
.modules-archive__title { margin: 0 0 0.6vw; }
.modules-archive__subtitle { font-size: 1.04vw; color: #6B7280; max-width: 50vw; margin: 0 auto; line-height: 1.5; }

/* ФИЛЬТРЫ */
.modules-filters { background: #fff; border: 1px solid rgba(28,28,28,0.08); border-radius: 1.2vw; padding: 1.4vw 1.6vw; margin-bottom: 2vw; display: flex; flex-direction: column; gap: 1vw; }
.modules-filters__group { display: flex; align-items: center; gap: 1vw; flex-wrap: wrap; }
.modules-filters__label { font-size: 0.83vw; color: #6B7280; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; min-width: 6vw; }
.modules-filters__list { display: flex; flex-wrap: wrap; gap: 0.5vw; }
.modules-filters__chip { display: inline-flex; align-items: center; gap: 0.4vw; padding: 0.55vw 1vw; background: #F5F7FA; border: 1px solid transparent; border-radius: 999px; font-size: 0.94vw; color: var(--text-main-color); text-decoration: none; transition: all 0.15s; }
.modules-filters__chip:hover { border-color: rgba(28,28,28,0.15); }
.modules-filters__chip.is-active { background: var(--main-color); color: #fff; border-color: var(--main-color); }
.modules-filters__count { font-size: 0.78vw; opacity: 0.6; }
.modules-filters__chip.is-active .modules-filters__count { opacity: 0.85; }

/* СЕТКА — 4 колонки */
.modules-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2vw; }

/* КАРТОЧКА */
.module-card { background: #fff; border: 1px solid rgba(28,28,28,0.08); border-radius: 1vw; overflow: hidden; display: flex; flex-direction: column; transition: all 0.2s; }
.module-card:hover { border-color: color-mix(in srgb, var(--main-color) 30%, transparent); transform: translateY(-2px); box-shadow: 0 1vw 2vw rgba(0,0,0,0.06); }

.module-card__head { display: flex; justify-content: space-between; align-items: center; gap: 0.4vw; padding: 0.7vw 0.8vw 0; }
.module-card__badge { display: inline-block; padding: 0.25vw 0.55vw; border-radius: 0.35vw; font-size: 0.7vw; font-weight: 600; }
.module-card__badge--cms  { background: #F5F7FA; color: var(--text-main-color); }
.module-card__badge--free { background: #DCFCE7; color: #15803D; }

.module-card__thumb { display: block; aspect-ratio: 1 / 1; overflow: hidden; margin: 0.6vw 0.8vw 0; border-radius: 0.5vw; background: #F5F7FA; }
.module-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.module-card__thumb:hover img { transform: scale(1.03); }

.module-card__body {
    padding: 0.8vw 1vw 1vw;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.module-card__title { font-size: 0.95vw; font-weight: 600; margin: 0 0 0.35vw; line-height: 1.3; }
.module-card__title a { color: var(--text-main-color); text-decoration: none; }
.module-card__title a:hover { color: var(--main-color); }
.module-card__short { font-size: 0.78vw; color: #6B7280; line-height: 1.45; margin-bottom: 0.5vw; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.module-card__meta { display: flex; gap: 0.6vw; font-size: 0.7vw; color: #9CA3AF; margin-bottom: 0.4vw; }

/* Распорка — прижимает цену+кнопку к низу, кнопки на одной линии */
.module-card__spacer { flex-grow: 1; min-height: 0.5vw; }

/* ЦЕНА — над кнопкой */
.module-card__pricing {
    padding: 0.7vw 0 0.65vw;
    border-top: 1px solid rgba(28,28,28,0.07);
    margin-top: 0.5vw;
    min-height: 2.2vw; /* одинаковая высота блока во всех карточках */
}
.module-card__price-value {
    font-size: 1.15vw;
    font-weight: 700;
    color: var(--main-color);
    line-height: 1.15;
}
.module-card__price-value--free { color: #15803D; }
.module-card__price-rub {
    font-size: 0.7vw;
    color: #9CA3AF;
    margin-top: 0.15vw;
}

/* КНОПКА — одинаковая высота */
.module-card__btn { width: 100%; height: 2.4vw; padding: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.module-card__btn span { font-size: 0.82vw; font-weight: 600; }

/* ПУСТОЙ СТЕЙТ */
.modules-empty { text-align: center; padding: 4vw 2vw; background: #fff; border-radius: 1vw; border: 1px dashed rgba(28,28,28,0.15); }
.modules-empty__icon { font-size: 4vw; margin-bottom: 1vw; }
.modules-empty__title { font-size: 1.4vw; font-weight: 600; margin-bottom: 0.5vw; }
.modules-empty__text { font-size: 1vw; color: #6B7280; margin-bottom: 1.5vw; }
.modules-empty__btn { display: inline-flex; padding: 0 2vw; height: 3vw; align-items: center; }

/* === ПЛАНШЕТ === */
@media (max-width: 1100px) {
    .modules-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 992px) {
    .modules-archive__subtitle { font-size: 1.85vw; max-width: 100%; }
    .modules-filters { padding: 3vw; border-radius: 2vw; gap: 2vw; }
    .modules-filters__group { gap: 2vw; }
    .modules-filters__label { font-size: 1.5vw; min-width: auto; width: 100%; }
    .modules-filters__chip { padding: 1.2vw 2vw; font-size: 1.7vw; }
    .modules-filters__count { font-size: 1.4vw; }
    .modules-grid { grid-template-columns: repeat(2, 1fr); gap: 2vw; }
    .module-card { border-radius: 2vw; }
    .module-card__head { padding: 1.5vw 1.8vw 0; }
    .module-card__badge { font-size: 1.4vw; padding: 0.6vw 1.2vw; border-radius: 0.8vw; }
    .module-card__thumb { margin: 1.2vw 1.8vw 0; border-radius: 1.2vw; }
    .module-card__body { padding: 2vw 2.4vw 2.4vw; }
    .module-card__title { font-size: 2.1vw; }
    .module-card__short { font-size: 1.65vw; }
    .module-card__meta { font-size: 1.5vw; }
    .module-card__pricing { padding: 1.5vw 0; }
    .module-card__price-value { font-size: 2.4vw; }
    .module-card__price-rub { font-size: 1.4vw; }
    .module-card__btn { height: 5vw; }
    .module-card__btn span { font-size: 1.6vw; }
}

/* === МОБИЛЬНЫЙ === */
@media (max-width: 600px) {
    .modules-archive__subtitle { font-size: 3.6vw; }
    .modules-filters { padding: 5vw; border-radius: 3vw; gap: 4vw; }
    .modules-filters__group { gap: 3vw; }
    .modules-filters__label { font-size: 3vw; }
    .modules-filters__chip { padding: 2.2vw 3.5vw; font-size: 3.4vw; border-radius: 999px; }
    .modules-filters__count { font-size: 2.8vw; }
    .modules-grid { grid-template-columns: 1fr; gap: 4vw; }
    .module-card { border-radius: 3vw; }
    .module-card__head { padding: 3vw 3.5vw 0; }
    .module-card__badge { font-size: 3vw; padding: 1.2vw 2.2vw; border-radius: 1.5vw; }
    .module-card__thumb { margin: 2.5vw 3.5vw 0; border-radius: 2.5vw; }
    .module-card__body { padding: 4vw 4.5vw; }
    .module-card__title { font-size: 4.6vw; }
    .module-card__short { font-size: 3.6vw; -webkit-line-clamp: 4; }
    .module-card__meta { font-size: 3vw; }
    .module-card__pricing { padding: 3vw 0; }
    .module-card__price-value { font-size: 5.5vw; }
    .module-card__price-rub { font-size: 3vw; }
    .module-card__btn { height: 11vw; }
    .module-card__btn span { font-size: 3.6vw; }
}