
.tour-card-wrapper { display: block; background: white; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-sm); transition: all 0.3s ease; color: inherit; position: relative; }
.tour-card-img-box { position: relative; height: 240px; overflow: hidden; }
.tour-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.tour-card-wrapper:hover .tour-card-img { transform: scale(1.1); }
.tour-card-gradient { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0,0,0,0.6), transparent); height: 80px; }
.tour-bestseller-badge { position: absolute; top: 15px; left: 15px; background: var(--accent); color: var(--primary); padding: 6px 14px; border-radius: 30px; font-weight: 700; font-size: 0.75rem; z-index: 2; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.tour-card-body { padding: 24px; }
.tour-card-title { margin-bottom: 10px; font-size: clamp(1.1rem, 2.5vw, 1.3rem); font-weight: 700; line-height: 1.4; min-height: 54px; }
.tour-card-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; padding-top: 15px; border-top: 1px solid #f1f5f9; }
.tour-price-label { font-size: 0.8rem; color: var(--text-muted); display: block; }
.tour-price-val { font-size: 1.2rem; font-weight: 800; color: var(--primary); }
.tour-hidden-item { display: none; opacity: 0; transform: translateY(20px); transition: opacity 0.5s ease, transform 0.5s ease; }
.tour-visible { display: block; opacity: 1; transform: translateY(0); }
