.tour-card {
    max-width: 350px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    /* Center the card within its column */
}

.tour-card-img-wrapper {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.tour-card-img-link {
    display: block;
    width: 100%;
    height: 100%;
    cursor: pointer;
    text-decoration: none;
}

.tour-card-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease;
}

.tour-card-img-link:hover img {
    transform: scale(1.05);
}

.tour-card-body {
    padding: 1rem 1.25rem !important;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    /* Important for flex children with line-clamp */
}

.tour-card-btn {
    color: var(--secondary);
    border: 1px solid var(--secondary);
    letter-spacing: 0.15em;
}

.tour-card-btn:hover {
    color: #fff;
    background-color: var(--secondary);
    border: 1px solid var(--secondary);
}

.tour-card-desc {
    /* Limit description to 4 lines with ellipsis - MUST be in this order */
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    /* Text styling */
    text-align: left !important;
    word-wrap: break-word;
    word-break: break-word;
    hyphens: none;
    /* Spacing */
    margin-bottom: 0.75rem;
    /* Dimensions - ensure width is defined for line-clamp to work */
    width: 100% !important;
    min-height: 0 !important;
    /* Important for flex children */
    /* Set explicit line-height for consistent calculation */
    line-height: 1.5 !important;
    /* Ensure it doesn't grow beyond 4 lines - Bootstrap small is ~0.875rem */
    max-height: 5.25rem !important;
    /* 0.875rem * 1.5 line-height * 4 lines = 5.25rem */
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .tour-card {
        max-width: 280px;
    }

    .tour-card-img-wrapper {
        aspect-ratio: 4 / 3;
    }

    .tour-card-body {
        padding: 1rem !important;
    }

    .tour-card-title {
        font-size: 1rem;
    }

    .tour-card-desc {
        font-size: 0.85rem;
    }
}