.calendar-icons-slider .icons-grid-item {
    height: 240px;
    font-size: 12px;
    line-height: 13px;
}

/* Враппер карточки должен занимать всю ширину слайда */
.calendar-icons-slider .icons-grid-item-wrap {
    width: 100%;
}

/* image-area: в column-flex родителе align-items:center без width сжимает до содержимого.
   Явно задаём width:100% чтобы flex-center внутри мог центрировать картинку.
   padding — отступ от краёв карточки, box-sizing чтобы padding не добавлял ширину. */
.calendar-icons-slider .icons-grid-item > div:nth-child(1) {
    width: 100%;
    height: 175px !important; /* перебиваем inline style="height:420px" из contentGridItem.php */
    padding: 8px 8px 0;
    box-sizing: border-box;
}

/* Текстовый блок тоже должен быть на всю ширину,
   иначе align-items:center в column-flex сожмёт его до содержимого */
.calendar-icons-slider .icons-grid-item > div:nth-child(2) {
    width: 100%;
    height: 65px;
    box-sizing: border-box;
}

/* Промежуточный враппер картинки (div.m-3.w-100 из contentGridItem):
   переводим в flex-контейнер с центрированием, убираем height:100% чтобы
   flex-center родителя мог центрировать его по вертикали */
.calendar-icons-slider .icons-grid-item > div:nth-child(1) > div {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* picture: ширина 100% для горизонтального центрирования img внутри,
   высота auto — авторазмер по картинке */
.calendar-icons-slider .icons-grid-item .image-picture {
    width: 100%;
    height: auto;
}

.calendar-icons-slider .icons-grid-item .image-img {
    display: block;
    max-width: 100%;
    max-height: 159px; /* 175px - 8px padding-top */
    object-fit: contain;
}
