.travel-product-widget { position:relative; max-width:100%; margin:auto; font-family:sans-serif; }

.image-box { position:relative; height:250px; cursor:pointer; overflow:hidden; }
.image-box img {
  width:100%; height:100%; object-fit:cover;
  border-top-left-radius:15px; border-top-right-radius:15px;
  position:absolute; top:0; left:0;
  opacity:0; transition:opacity 1s ease-in-out;
}
.image-box img.active { opacity:1; z-index:1; }

.text-box {
  height:260px; background:#f9f9f9; padding:15px; text-align:left;
  border-bottom-left-radius:15px; border-bottom-right-radius:15px;
  display:flex; flex-direction:column; justify-content:flex-start;
}
.text-box h2 { font-size:24px; color:#1a1a1aff; margin:0 0 10px; }
.description {
  flex:0 0 60px; font-size:16px; color:#666666ff; line-height:20px;
  overflow:hidden; text-overflow:ellipsis; margin-bottom:10px;
}
.bottom-content { margin-top:auto; padding-top:10px; }
.meta { display:flex; gap:20px; margin-bottom:20px; }
.duration { font-size:14px; color:#1a1a1acc; }
.price { font-size:14px; font-weight:600; color:#ffc533ff; }
.cta-btn {
  display:block; width:100%; height:36px; line-height:36px;
  background:#2e8575ff; color:#fff; text-decoration:none !important;
  font-weight:normal !important; font-size:16px; border-radius:5px;
  text-align:center; margin-top:10px;
}

.pagination { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); z-index:2; }
.pagination .dot {
  display:inline-block; width:10px; height:10px; margin:0 5px;
  background:#aaa; border-radius:50%; cursor:pointer; transition:all 0.3s ease;
}
.pagination .dot.active { width:25px; border-radius:15px; background:#2e8575ff; }
