/* Hotel listing filters: scoped to this page so shared controls are unaffected. */
.hotel-listing-layout {
    align-items: flex-start;
}

.hotel-listing-title {
    margin: 0 0 13px;
    color: #17243b;
    font-size: 25px;
    font-weight: 800;
    line-height: 1.45;
    text-align: right;
}

.hotel-listing-breadcrumb {
    direction: rtl;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 13px;
    color: #8b8f98;
    font-size: 12px;
    line-height: 1.5;
}

.hotel-listing-breadcrumb .la {
    color: #b5b7bc;
    font-size: 12px;
}

.hotel-listing-breadcrumb strong {
    color: #2b3444;
    font-weight: 700;
}

.hotel-listing-map-preview {
    position: relative;
    display: block;
    height: 160px;
    margin: 0 0 28px;
    overflow: hidden;
    border-radius: 12px;
    background: #edf0eb;
}

.hotel-listing-map-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hotel-listing-map-preview span {
    position: absolute;
    right: 20px;
    bottom: 19px;
    left: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    color: #ff4050;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.hotel-listing-map-preview span .la {
    font-size: 20px;
}

.hotel-results-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
}

.hotel-result-item {
    min-width: 0;
}

.hotel-result-item[hidden] {
    display: none;
}

.hotel-card-availability {
    min-height: 1.5rem;
    margin-top: .5rem;
    font-size: .9rem;
}
.hotel-card-availability.is-available { color: #16834a; }
.hotel-card-availability.needs-inquiry { color: #765b16; }
.hotel-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin: 1.5rem 0; }
.hotel-pagination a { padding: .4rem .8rem; border: 1px solid #d6dce3; border-radius: .35rem; }

.hotel-card-vertical {
    display: block;
    height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 12px;
    background: #fff;
    box-shadow: none;
}

.hotel-card-vertical .card-img {
    position: relative;
    width: 100%;
    border-radius: 12px 12px 0 0;
    overflow: hidden;
}

.hotel-card-vertical .card-img picture,
.hotel-card-vertical .card-img img {
    display: block;
    width: 100%;
}

.hotel-card-vertical .card-img img {
    height: 190px;
    object-fit: cover;
}

.hotel-card-vertical .card-img .badge {
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 5px 9px;
    border-radius: 6px;
    background: #e82d3f;
    color: #fff;
    font-size: 12px;
}

.hotel-card-vertical .card-body {
    padding: 12px 4px 2px;
    text-align: right;
}

.hotel-card-rating-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 23px;
    margin-bottom: 8px;
}

.hotel-card-rating-row .hotel-stars {
    display: inline-flex;
    gap: 1px;
    color: #ffb400;
    font-size: 16px;
}

.hotel-card-score {
    color: #455065;
    font-size: 12px;
}

.hotel-card-vertical .card-title {
    min-height: 26px;
    margin: 0 0 8px;
    color: #17243b;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.55;
}

.hotel-card-vertical .card-title a {
    color: inherit;
}

.hotel-card-vertical .card-meta {
    min-height: 22px;
    margin: 0 0 13px;
    color: #596273;
    font-size: 12px;
}

.hotel-card-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
    color: #5d6675;
    font-size: 12px;
}

.hotel-card-price strong {
    color: #17243b;
    font-size: 16px;
    font-weight: 800;
}

.hotel-card-badge {
    display: inline-block;
    margin-top: 13px;
    padding: 5px 9px;
    border-radius: 6px;
    background: #e8f8ef;
    color: #18a85b;
    font-size: 12px;
    font-weight: 700;
}

.hotel-listing-sortbar {
    direction: rtl;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 28px;
    min-height: 70px;
    margin-bottom: 16px;
    border-bottom: 1px solid #f0f0f0;
    color: #17243b;
    font-size: 14px;
    white-space: nowrap;
}

.hotel-listing-sortbar button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #17243b;
    font: inherit;
    cursor: pointer;
}

.hotel-listing-sortbar button.is-active {
    color: #ff3d4e;
    font-weight: 700;
}

.hotel-listing-sort-label {
    font-weight: 700;
}

.hotel-filter-button {
    bottom: 1rem;
    left: 1rem;
    z-index: 1030;
}

.hotel-listing-filters {
    direction: rtl;
    color: #242424;
}

.listing-filters-panel {
    border: 1px solid #e2e2e2;
    border-radius: 13px;
    background: #fff;
}

.listing-filters-header {
    padding: 20px 24px 18px;
    border-bottom: 1px solid #e6e6e6;
    color: #202020;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.4;
    text-align: right;
}

.listing-filter-section {
    padding: 20px 20px;
    border-bottom: 1px solid #ececec;
}

.listing-filter-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 17px;
    color: #2d2d2d;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
}

.listing-filter-section-title .la {
    color: #3f3f3f;
    font-size: 17px;
}

.listing-hotel-search {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 9px;
    height: 47px;
    padding: 0 15px;
    border-radius: 12px;
    background: #f5f5f5;
    color: #a5a5a5;
}

.listing-hotel-search .la {
    font-size: 22px;
}

.listing-hotel-search .hotelSearchInput {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #333;
    font-size: 14px;
    text-align: right;
}

.listing-hotel-search .hotelSearchInput::placeholder {
    color: #aaa;
}

.listing-price-values {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: -1px 0 20px;
    color: #444;
    font-size: 13px;
    direction: ltr;
}

.listing-price-values strong {
    font-weight: 800;
}

.listing-price-separator {
    color: #777;
}

.listing-price-slider {
    position: relative;
    height: 22px;
    margin: 0 13px;
    direction: rtl;
}

.listing-price-slider::before {
    position: absolute;
    top: 10px;
    right: 0;
    left: 0;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(to left, #ededed 0 var(--range-start), #ff4050 var(--range-start) var(--range-end), #ededed var(--range-end) 100%);
    content: "";
}

.listing-price-slider input[type="range"] {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 22px;
    margin: 0;
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    pointer-events: none;
}

.listing-price-slider input[type="range"]::-webkit-slider-runnable-track {
    height: 2px;
    background: transparent;
}

.listing-price-slider input[type="range"]::-moz-range-track {
    height: 2px;
    background: transparent;
}

.listing-price-slider input[type="range"]::-webkit-slider-thumb {
    width: 18px;
    height: 18px;
    margin-top: -8px;
    border: 2px solid #ff4050;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(255, 64, 80, .05);
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    pointer-events: auto;
}

.listing-price-slider input[type="range"]::-moz-range-thumb {
    width: 15px;
    height: 15px;
    border: 2px solid #ff4050;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    pointer-events: auto;
}

.listing-price-slider input[type="range"]:disabled::-webkit-slider-thumb,
.listing-price-slider input[type="range"]:disabled::-moz-range-thumb {
    border-color: #c8c8c8;
    cursor: default;
}

.listing-price-scale {
    display: flex;
    justify-content: space-between;
    margin: 2px 13px 0;
    color: #a4a4a4;
    font-size: 12px;
}

.listing-star-options,
.listing-type-options {
    display: grid;
    gap: 12px;
}

.listing-star-row,
.listing-type-row {
    display: flex;
    align-items: center;
    min-height: 24px;
    margin: 0;
    cursor: pointer;
    font-size: 14px;
    line-height: 1.3;
}

.listing-star-row input,
.listing-type-row input,
.listing-filter-facilities input[type="checkbox"] {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    margin: 0 0 0 10px;
    accent-color: #ff4050;
}

.listing-star-label {
    min-width: 54px;
    color: #4b4b4b;
}

.listing-star-row .ratings {
    display: inline-flex;
    gap: 2px;
    direction: ltr;
    color: #ffb400;
    font-size: 16px;
}

.listing-type-row {
    color: #4b4b4b;
}

.listing-filter-facilities .sidebar-widget {
    margin: 0;
    padding: 0;
}

.listing-filter-facilities .title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 17px;
    color: #2d2d2d;
    font-size: 16px;
    font-weight: 700;
}

.listing-filter-facilities .title::after {
    color: #3f3f3f;
    content: "⌃";
    font-size: 18px;
    font-weight: 400;
}

.listing-filter-facilities .sidebar-category {
    display: grid;
    gap: 12px;
}

.listing-filter-facilities .custom-checkbox {
    display: flex;
    align-items: center;
    min-height: 24px;
}

.listing-filter-facilities .custom-checkbox label {
    margin: 0;
    color: #4b4b4b;
    cursor: pointer;
    font-size: 14px;
}

.listing-filter-facilities .btn-text {
    margin-top: 8px;
    color: #ff4050;
    font-size: 13px;
}

.listing-filter-reset {
    padding: 16px 20px;
}

.listing-filter-reset button {
    width: 100%;
    padding: 9px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    color: #555;
    font-size: 13px;
}

@media (min-width: 992px) {
    .hotel-listing-layout {
        direction: ltr;
    }

    .hotel-listing-layout > #desktopFiltersHost {
        order: 2;
        flex: 0 0 25%;
        max-width: 25%;
        direction: rtl;
    }

    .hotel-listing-layout > .hotel-listing-results {
        order: 1;
        direction: rtl;
    }

    .hotel-results-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (min-width: 1280px) {
    .hotel-results-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

}

@media (max-width: 991.98px) {
    .hotel-listing-title {
        font-size: 21px;
    }

    .hotel-listing-sortbar {
        gap: 14px;
        min-height: 55px;
        overflow-x: auto;
        font-size: 13px;
    }

    .hotel-listing-filters {
        width: 100%;
    }

    .listing-filters-panel {
        border: 0;
        border-radius: 0;
    }
}

.hotel-listing-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:8px 0 22px;padding:10px 0 16px;background:transparent;border:0;border-bottom:1px solid #e5ebf0;border-radius:0;direction:rtl}
.hotel-sort-label{font-size:13px;font-weight:600;color:#6c7a8c;white-space:nowrap}
.hotel-sort-options{display:flex;flex-wrap:wrap;gap:6px}
.hotel-sort-option{appearance:none;border:1px solid transparent;border-radius:20px;background:transparent;color:#586779;padding:8px 14px;font:inherit;font-size:13px;line-height:1.6;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.hotel-sort-option:hover{background:#f2f6f9;color:#183d5b}
.hotel-sort-option.is-active{background:#eaf5f5;border-color:#bfdddd;color:#08797d;font-weight:700}
.hotel-sort-option:focus-visible{outline:2px solid #16838c;outline-offset:3px}
.hotel-listing-toolbar [role=status]{width:100%}
@media(max-width:575px){.hotel-listing-toolbar{gap:9px;padding-bottom:12px}.hotel-sort-label{width:100%}.hotel-sort-options{gap:5px}.hotel-sort-option{padding:7px 11px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.hotel-sort-option{transition:none}}
