/* Обёртка для моделей (это твой <main>) */
.models-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center;
    align-items: stretch;
    padding: 20px 0;
    background-color: #e8efef; /* светлый фон для блока main */
}

/* h1 как отдельная строка (чтобы не «мешался» карточкам) */
.models-wrapper > h1 {
    flex: 0 0 100%;
    margin: 0 0 12px 0;
    text-align: center;
    color: #2e3137;
}

/* ====== Кликабельная обёртка карточки — теперь это флекс-айтем сетки ====== */
.model-card-link {
    display: flex;
    flex: 0 1 280px;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    max-width: 100%;          /* чтобы не вылезала за контейнер */
}


/* Карточка модели (внутри ссылки) */
.model-card {
    background: #fff;
    border: 2px solid #00c9c8; /* фирменный бирюзовый цвет */
    border-radius: 8px;
    flex: 1;
    width: 100%;               /* заполняет ширину своей ссылки */
    box-shadow: 0 2px 8px rgb(0 0 0 / 0.1);
    display: flex;
    flex-direction: column;
    overflow: hidden;

    /* плавные переходы */
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    -webkit-transition: -webkit-transform 0.2s ease, box-shadow 0.2s ease;
    -moz-transition: transform 0.2s ease, box-shadow 0.2s ease;
    -o-transition: transform 0.2s ease, box-shadow 0.2s ease;
    will-change: transform, box-shadow;
}

/* Ховер на ПЛАШКЕ (обёртке-ссылке), чтобы вся карточка реагировала */
.model-card-link:hover .model-card {
    transform: translateY(-6px);
    -webkit-transform: translateY(-6px);
    -ms-transform: translateY(-6px);

    box-shadow: 0 8px 20px rgb(0 0 0 / 0.15);
    -webkit-box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Фокус по клавиатуре — доступность */
.model-card-link:focus-visible .model-card {
    outline: 3px solid #00c9c8;
    outline-offset: 2px;
}

/* Обёртка для изображения */
.model-img-wrapper {
    position: relative;
    width: 100%;
    height: 180px;
    overflow: hidden;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.model-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    -o-object-fit: contain; /* старый Opera */
}

/* Бейджи (badges) */
.badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    z-index: 10;
}

.badge {
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 12px;
    color: #fff;
    user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    white-space: nowrap;
}

.badge-new {
    background-color: #00c9c8;
}

.badge-hot {
    background-color: #ff5722;
}

.badge-discount {
    background-color: #ff9800;
}

.badge-out {
    background-color: #888;
}

/* Информация о модели */
.model-info {
    padding: 12px 16px 20px 16px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.model-title {
    font-size: 1.2rem;
    margin: 0 0 8px 0;
    color: #2e3137;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.model-desc {
    display: -webkit-box;
    flex-grow: 1;
    font-size: 0.9rem;
    color: #555;
    margin-bottom: 12px;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Цена */
.model-price {
    font-weight: 700;
    font-size: 1.1rem;
    color: #00c9c8;
    margin-bottom: 12px;
}

.old-price {
    text-decoration: line-through;
    color: #888;
    margin-right: 8px;
}

/* Кнопка "Подробнее" (внутри ссылки теперь как <span>) */
.model-link {
    display: inline-block;
    background-color: #00c9c8;
    color: #fff;
    padding: 8px 14px;
    border-radius: 6px;
    margin-top: auto;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.3s ease;
    -webkit-transition: background-color 0.3s ease;
    -moz-transition: background-color 0.3s ease;
    -o-transition: background-color 0.3s ease;
}

.model-link:hover {
    background-color: #019d9b;
}

/* Центрирование <picture> и <img> */
.model-img-wrapper picture {
    display: flex; /* flex-контейнер */
    justify-content: center; /* горизонтальное центрирование */
    align-items: center;      /* вертикальное центрирование */
    width: 100%;
    height: 100%;
}

.model-img-wrapper picture img {
    display: block;       /* убрать нижние отступы у img */
    max-width: 100%;      /* не растягиваем больше контейнера */
    max-height: 100%;     /* не выше контейнера */
    object-fit: contain;  /* сохраняем пропорции, вписываем в контейнер */
    -o-object-fit: contain;
}

/* ====== Адаптивность ====== */
/* На планшетах — уже, но по 2–3 в ряд, влезут благодаря flex-basis */
@media (max-width: 1024px) {
    .model-card-link {
        flex: 0 1 320px;   /* можно позволить чуть шире */
    }
}

/* На телефонах — во всю ширину, стабильно и без плясок */
@media (max-width: 768px) {
    .models-wrapper {
        justify-content: stretch; /* не критично, но можно оставить center */
    }
    .model-card-link {
        flex: 1 1 100%;
    }
    .model-card {
        width: 100%;
    }
}

/* Если совсем узко (<547px) — тоже во всю ширину */
@media (max-width: 547px) {
    .model-card-link {
        flex: 1 1 100%;
    }
}

/* Предпочтение: без анимаций */
@media (prefers-reduced-motion: reduce) {
    .model-card {
        transition: none;
        -webkit-transition: none;
        -moz-transition: none;
        -o-transition: none;
    }
    .model-card-link:hover .model-card {
        transform: none;
        -webkit-transform: none;
        -ms-transform: none;
        box-shadow: 0 2px 8px rgb(0 0 0 / 0.1);
        -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }
}
