.page_catalog {
    background: #f2f0ef;
    list-style: none;                   /* убираем точки у списка */

    max-width: 1400px;     /* ограничение ширины */
    margin: 0 auto;        /* центрирование */
    padding: 0 0px;       /* отступы слева/справа */
    box-sizing: border-box;
    margin-top: 20px;
}

.banner {
    width: 100%;               /* контейнер на всю ширину страницы */
    max-width: 1200px;         /* максимум ширины на десктопе */
    margin: 20px auto;          /* сверху и снизу 20px, по центру */
    padding: 30px;             /* внутренние отступы сверху/снизу/слева/справа */
    box-sizing: border-box;    /* чтобы padding не увеличивал ширину */
}

.banner img {
    width: 100%;               /* картинка растягивается под контейнер */
    height: auto;              /* сохраняем пропорции */
    border-radius: 20px;       /* скругление */
    object-fit: cover;         /* обрезка по размеру контейнера */
    display: block;            /* убираем лишние пробелы под img */
}

@media (max-width: 640px) {
    .banner {
        padding: 0 10px;     /* меньше отступы на мобильных */
        margin-bottom: 12px;
    }

    .banner img {
        border-radius: 12px; /* скругление меньше на маленьких экранах */
    }
}

.catalog {
    background: white;

    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));
    grid-auto-rows: minmax(465px, auto);
    gap: 16px;

    border-radius: 20px;
    padding: 24px;
}

.short_description { /* Описание товара в каталоге */
    font-family: Arial, sans-serif;
    flex: 1 1 auto;
    font-size: 16px;
    line-height: 24px;
    color: black;

    margin: 0 0px 10px 0px;

    display: -webkit-box; /* Необходимое свойство */
    -webkit-line-clamp: 2; /* Количество строк */
    -webkit-box-orient: vertical; /* Вертикальная ориентация */
    overflow: hidden; /* Скрытие лишнего */
    text-overflow: ellipsis;
    align-self: flex-end;



}

.product {
    background: white;

    border-radius: 12px;


    display: flex;
    overflow: hidden;               /* ← важно, чтобы скругление + обрезка работали */
    flex-direction: column;
    min-height: 0;                  /* если карточка в grid/flex */
}

.gallery_images {
    --gap: 16px;
    flex: 0 0 auto;
    display: flex;
    flex-wrap: nowrap;
    gap: var(--gap);
    overflow-x: auto;
    overflow-y: hidden;

    scroll-snap-type: x mandatory;           /* обязательно mandatory для жёсткого прилипания */
    scroll-behavior: smooth;                 /* плавный скролл (очень важно для ощущения) */
    scroll-padding: 0 calc(50% - 210px);     /* центрирует активное фото */

    padding: 0 0 0px 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    border: 1px solid #ddd;

}

/* Ключевые изменения здесь */
.gallery-img {
    flex: 0 0 100%;                      /* ← 100% ширины контейнера = видно ровно одно фото */
    width: 100%;
    max-width: none;                     /* убираем ограничение */
    height: auto;
    aspect-ratio: 3 / 3 ;                 /* или 3/2, 16/9 — под твои фото */
    object-fit: cover;
    border-radius: 12px 12px 0 0;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);

    scroll-snap-stop: always;            /* браузер не пропустит этот элемент */
}

/* Скрываем скроллбар полностью, если не нужен */
.gallery_images::-webkit-scrollbar {
    display: none;                       /* Chrome, Safari, Edge */
}
.gallery_images {
    -ms-overflow-style: none;            /* IE и Edge */
    scrollbar-width: none;               /* Firefox */
}

/* Опционально: небольшие края соседних фото для намёка (эффект peek) */
.gallery_images {
    scroll-padding-left: 32px;
    scroll-padding-right: 32px;
}

/* Если хочешь, чтобы на мобильных было чуть меньше отступов */
@media (max-width: 640px) {
    .gallery_images {
        scroll-padding: 0 16px;
    }
}