.tg-sidebar {
    background: transparent;
    padding-inline: 20px;
    border-radius: 0;
}

.tg-widget {
    margin-bottom: 15px;
}

.tg-widgetsearch .tg-widgettitle {
    padding-bottom: 20px !important;
}

.tg-widgettitle h5 {
    padding: 0;
    font-weight: 600;
    color: #333;
}

.tg-formsearch .input-group {
    border-radius: 4px 0 0 4px;
    border: 1px solid #ddd;
    width: 100%;
}

.tg-formsearch .form-control {
    border: none;
    padding: 10px 15px;
}

.tg-formsearch .input-group-addon {
    background: none;
    border: none;
    color: #333;
}

.tg-widgetpackagetypes {
    margin: 0 !important;
}

.tg-list-unstyled {
    display: flex;
    flex-direction: column;
    line-height: 0px;
    padding: 0;
    margin: 0;
}

.tg-list-unstyled li {
    margin-bottom: -15px;
}

.tg-widgetpackagetypes .tg-widgettitle {
    padding-bottom: 20px !important;
}

.tg-widgetpackagetypes .radio {
    margin-bottom: 0px;
}

.tg-widgetpackagetypes .radio label {
    font-weight: normal;
    cursor: pointer;
    display: flex;
    align-items: center;
    font-size: 14px;
    line-height: 1;
}

/* Custom Square Radio Button Styling */
.tg-widgetpackagetypes .radio input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 16px;
    height: 16px;
    border: 2px solid #ddd;
    border-radius: 2px;
    background-color: #fff;
    margin-top: -1px;
    margin-right: 15px;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    outline: none;
    box-shadow: none;
}

.tg-widgetpackagetypes .radio input[type="radio"]:checked {
    background-color: #ff7550;
    border-color: #ff7550;
    outline: none;
    box-shadow: none;
}

.tg-widgetpackagetypes .radio input[type="radio"]:checked::after {
    content: '✓';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 10px;
    font-weight: bold;
}

.tg-widgetpackagetypes .radio input[type="radio"]:hover {
    border-color: #ff7550;
    outline: none;
    box-shadow: none;
}

/* No Results Message Styling */
.no-results-message {
    text-align: center;
    padding: 60px 20px;
    background: #f8f9fa;
    border-radius: 8px;
    margin: 20px 0;
}

.no-results-icon {
    font-size: 48px;
    color: #6c757d;
    margin-bottom: 20px;
}

.no-results-message h3 {
    color: #495057;
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 15px;
}

.no-results-message p {
    color: #6c757d;
    font-size: 16px;
    line-height: 1.;
    margin-bottom: 10px;
}

.no-results-message p:last-child {
    margin-bottom: 0;
    font-size: 14px;
}

.search-highlight {
    background-color: #fff3cd;
    color: inherit;
    padding: 0;
    border-radius: 2px;
    font-weight: normal;
}

.filter-sort {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.tg-listing .tg-populartour,
.tg-listing .tg-trendingtrip {
    padding: 0 0 0;
}

#tg-content {
    overflow-x: hidden;
    max-height: 100vh;
    overflow-y: auto;
    margin-top: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

/* --- FINAL FIX FOR UNEVEN CARD HEIGHTS (PackagesListing.html) --- */

/* 1. Ensure the Bootstrap column itself is a Flex container.
   This guarantees that the .tg-populartour card can take 100% of the column height,
   which is stretched by the parent #tg-content (already set to display: flex). */
#tg-content>.row>[class*="col-"] {
    display: flex;
    height: 100%;
    /* Important: Makes the column fill the stretched space */
}

/* 2. Force the actual package card element to take the full height of its column.
   It is now a column-based flex container to position content, image, and footer. */
.tg-populartour,
.tg-trendingtrip {
    height: 100%;
    width: 100%;
    /* Ensure it fills the column horizontally */
    display: flex;
    flex-direction: column;
    /* Remove any fixed heights or conflicting floats/margins here if they exist */
}

/* 3. Make the image figure always take a fixed portion of the card */
.tg-populartour figure,
.tg-trendingtrip figure {
    /* Optional: If you want all images to have a consistent aspect ratio regardless of content below */
    /* flex-shrink: 0; */
}

/* 4. The main content section must GROW to take all available vertical space, 
   pushing the footer/price section to the bottom. */
.tg-populartour .tg-populartourcontent,
.tg-trendingtrip .tg-populartourcontent,
.tg-trendingtrip .tg-trendingtripcontent {
    /* Using a generic class to be safe */
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    /* Start content at the top */
}

/* 5. Ensure the description area has a minimum size to reserve space for the longest text.
   This helps the "float" effect look better before the Flexbox takes full effect. */
.tg-populartour .tg-description {
    /* This rule is already in main.css, but a min-height helps prevent jumping */
    min-height: 50px;
    margin-bottom: 10px;
    /* Add some space above the next element */
}

/* 6. Ensure the price/footer section is always at the bottom.
   It should NOT grow, allowing the content above it to push it down. */
.tg-populartour .tg-populartourfoot,
.tg-trendingtrip .tg-populartourfoot {
    margin-top: auto;
    /* Pushes this element to the end of the flex-grow area */
    flex-shrink: 0;
    /* Prevents it from shrinking */
}

::-webkit-scrollbar {
    display: none;
}

@media screen and (max-width: 1000px) {
    .filter-sort {
        height: 60vh;
    }

    #tg-content {
        overflow-x: hidden;
        overflow-y: auto;
    }

}

@media (max-width: 768px) {
    .tg-sidebar {
        margin-bottom: 20px;
    }

    .tg-populartour {
        margin-bottom: 20px;
    }
}

@media (min-width: 550px) and (max-width: 1000px) {
    .tg-content .row {
        display: flex;
        flex-wrap: wrap;
    }

    .filter-sort.col-md-3,
    .filter-sort.col-lg-3 {
        width: 33.333333% !important;
        float: left !important;
    }

    .col-md-9.col-lg-9 {
        width: 66.666667% !important;
        float: left !important;
    }

    .tg-package-item,
    #package-cards-container>.col-lg-4,
    #package-cards-container>.col-md-4 {
        width: 50% !important;
        float: left !important;
        clear: none !important;
    }
}