div.gallery {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}

div.gallery-item {
  margin: 5px;
  width: calc(25% - 20px);
}

div.gallery-item img {
  border: 1px solid #ccc;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

div.gallery-item img:hover {
  border: 1px solid #777;
}


div.gallery-item div.desc {
  padding: 15px;
  text-align: center;
}

.multi-1line-truncate {
    display: -webkit-box;
    -webkit-line-clamp: 1; /* Limit to 1 line */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.multi-2line-truncate {
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Limit to 2 lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}



<!-- https://codepen.io/mal-chut/pen/oNmvwbR -->

.slide-container{
  max-width: 1120px;
  width: 100%;
  padding: 40px 0;
}
.slide-content{
  margin: 0 40px;
  overflow: hidden;
  border-radius: 25px;
}
.card{
  border-radius: 25px;
  background-color: #FFF;
  margin-bottom: 50px;
}
.image-content,
.card-content{
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px 14px;
  padding-top: 0px;
}
.image-content{
  position: relative;
  row-gap: 5px;
}
.card-image{
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
/*  width: 150px; */
/*   border-radius: 50%; */
  background: #FFF;
/*   padding: 3px; */
}
.card-image .card-img{
  height: 100%;
  width: 100%;
  object-fit: cover;
/*  border-radius: 50%; */
/*  border: 4px solid #ccc; */
}
.name{
  font-size: 14px;
  font-weight: 500;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 1; /* Limit to 1 line */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.subtitle{
  font-size: 18px;
  color: #707070;
  text-align: center;
}
.description{
  font-size: 18px;
  color: #707070;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 4; /* Limit to 4 lines */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0px;
  padding: 0px;
}
.button{
  border: none;
  font-size: 16px;
  color: #444;
  padding: 8px 16px;
  background-color: #ccc;
  border-radius: 6px;
  margin: 14px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
}
.button:hover{
  background: #aaa;
}

.swiper-navBtn{
  color: #ccc;
  transition: color 0.3s ease;
}
.swiper-navBtn:hover{
  color: #555;
}
.swiper-navBtn::before,
.swiper-navBtn::after{
  font-size: 35px;
}
.swiper-button-next{
  right: 0;
}
.swiper-button-prev{
  left: 0;
}
.swiper-pagination-bullet{
  background-color: #ccc;
  opacity: 1;
}
.swiper-pagination-bullet-active{
  background-color: #555;
}

@media screen and (max-width: 768px) {
  .slide-content{
    margin: 0 10px;
  }
  .swiper-navBtn{
    display: none;
  }
}
