@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");


.rns-form-check-input:active {
    filter: brightness(90%);
}

.card-text .fas {
    font-size: 16px;
    padding-right: 4px;
}


#resultsApp {
    display: flex;
    flex-wrap: wrap;
    min-height: 200px; /* Ensure minimum height for loading state */
    position: relative; /* Establish positioning context */
    width: 100%;
    margin: 0 auto;
    margin-bottom: 15px;
    z-index: 1;
}

/* Map Container Styles */
.results-map-container {
    border-radius: var(--radius-md);
    height: calc(100vh - 85px);
    overflow: hidden;
    position: sticky;
    right: 0;
    top: 95px;
}

.rns-results-container .rns-content-area {
    display: flex;
    width: 100%;    
    justify-content: space-between;
    margin-top: 0px;
    padding: 0 1rem;
}

.search-container {
    margin: 0 auto;
    max-width: 1200px;
    width: 100%;
    padding: 2rem;
}

.grid-container {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    margin-bottom: 20px;
}

.grid-item {
    border: 1px solid #ddd;
    border-radius: var(--radius-sm);
    padding: 10px;
}

.mobile-view-toggle-wrapper {
    display: none;
}

.search-button {
    align-self: center;
    background-color: #007bff;
    border: none;
    border-radius: var(--radius-sm);
    color: white;
    cursor: pointer;
    padding: 10px 20px;
}

    .search-button:hover {
        background-color: var(--primary-color, #0056b3);
    }


.results-book-now-btn {
    padding: 0px 10px 10px;
}

    .results-book-now-btn .rns-btn {
        padding: 10px;
    }

    .results-book-now-btn button {
        width: 100%;
    }

.card-title {
    color: var(--Gray-700, #101828);
    float: left;
    /* Text lg/Semibold */
    font-family: Inter, sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 28px; /* 155.556% */
    width: auto;
}

.supporting-text {
    font-size: 14px;
}

/* Add this to your rns-layout.css or relevant CSS file */
.heart-icon-container {
    align-items: center;
    /* Backdrop blurs/backdrop-blur-md */
    backdrop-filter: blur(8px);
    background-color: rgba(233, 233, 233, 0.7); /* Light gray background */
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--radius-lg); /* Rounded corners */
    bottom: 5px; /* Adjust as needed */
    display: inline-flex;
    font-size: 20px;
    gap: var(--spacing-md, 8px);
    justify-content: center;
    padding: var(--spacing-lg, 8px);
    position: absolute; /* Position it absolutely within the parent */
    right: 5px; /* Adjust as needed */
    z-index: 10; /* Ensure it appears above the image */
}

    .heart-icon-container:hover {
        color: #ff0000;
    }

    .heart-icon-container .fa-solid {
        color: red;
    }

.slider-container {
    position: relative; /* Ensure the container is positioned relative for absolute children */
    border-radius: 12px 12px 0px 0px;
    height: 250px;
    overflow: hidden;
    touch-action: pan-y pinch-zoom;
    width: 100%;
}

#rns-style textarea {
    text-align: left !important;
    padding: 1rem;
    width: 100%;
}

/* Adjustments for view modes */

/* Dashboard Layout */
.dashboard-container {
    margin: 0 auto;
    max-width: 1200px;
}

.dashboard-title {
    color: var(--neutral-800);
    font-size: 2rem;
    margin-bottom: 2rem;
    width: 100%;
}

    .dashboard-title .rns-btn-secondary,
    .detail-headings .rns-btn-secondary {
        align-items: center;
        display: flex;
        font-size: 14px;
        gap: 8px;
        padding: 8px 16px;
        transition: all 0.2s ease;
    }

        .dashboard-title .rns-btn-secondary:hover,
        .detail-headings .rns-btn-secondary:hover {
            background-color: #f8f9fa;
            border-color: var(--danger, #dc3545);
            color: var(--danger, #dc3545);
        }

            .dashboard-title .rns-btn-secondary:hover iconify-icon,
            .detail-headings .rns-btn-secondary:hover iconify-icon {
                color: var(--danger, #dc3545);
            }

/* Grid Layout */
.dashboard-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 2rem;
}



/* Tile Styling */
.dashboard-tile {
    background: #fff;
    border: 1px solid var(--neutral-200, #e9ecef);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .dashboard-tile:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }

.tile-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.5rem;
}

.tile-header {
    border-bottom: 1px solid var(--neutral-200, #e9ecef);
    margin-bottom: 1rem;
}

    .tile-header h4 {
        align-items: center;
        color: var(--neutral-800);
        display: flex;
        font-size: 1.25rem;
        gap: 0.75rem;
        margin: 0;
    }

.tile-icon {
    color: var(--primary-color, #0056b3);
    font-size: 1.5rem;
}

.tile-body {
    color: var(--neutral-600);
    flex: 1;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

    .tile-footer .rns-btn {
        padding: 0.75rem 1rem;
        width: 100%;
    }

/* Quick Access Section */
.dashboard-addons {
    background: #fff;
    border: 1px solid var(--neutral-200, #e9ecef);
    border-radius: var(--radius-lg);
    margin-top: 2rem;
    padding: 1.5rem;
}

.addon-title {
    color: var(--neutral-800);
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
}

.property-jump-container {
    max-width: 400px;
}

.property-jump-wrapper h4 {
    align-items: center;
    color: var(--neutral-800);
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

/* Property Jump Specific Styles */
#propertyJumpApp-dashboard,
#propertyJumpApp-footer {
    position: relative;
    width: 100%;
}

.property-jump-combobox {
    position: relative;
    width: 100%;
}

    /* Combobox Specific Styles */
    .property-jump-combobox .combobox-wrapper {
        position: relative;
    }

    .property-jump-combobox .dropdown-menu {
        background: white;
        border: 1px solid rgba(0, 0, 0, 0.15);
        border-radius: var(--radius-sm);
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
        display: none;
        visibility: hidden;
        opacity: 0;
        margin-top: 2px;
        max-height: 400px; /* Increased for better UX with all properties */
        overflow-y: auto;
        overflow-x: hidden;
        position: absolute;
        width: 100%;
        z-index: 1000;
        transition: opacity 0.2s ease, visibility 0.2s ease;
        /* Smooth scrolling */
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
    }

        .property-jump-combobox .dropdown-menu.show {
            display: block;
            visibility: visible;
            opacity: 1;
        }

    .property-jump-combobox .property-item {
        align-items: center;
        display: flex;
        justify-content: space-between;
        padding: 8px 12px;
    }

    .property-jump-combobox .property-name {
        font-weight: 500;
    }

    .property-jump-combobox .property-details {
        color: #666;
        font-size: 0.85em;
        margin-left: 8px;
    }

    .property-jump-combobox .dropdown-item {
        color: #333; /* Force dark text instead of inherit */
        padding: 0;
        text-decoration: none;
        display: block;
        width: 100%;
    }

    .property-jump-combobox .dropdown-item .property-jump-item {
        border-bottom: 1px solid #ddd; /* More visible divider */
        padding: 14px 16px; /* Slightly more padding for better spacing */
        width: 100%;
        box-sizing: border-box;
        transition: background-color 0.2s ease;
        min-height: 50px; /* Slightly taller for better visual balance */
        display: flex;
        align-items: center;
        text-align: left; /* Left-align all text */
        gap: 12px; /* Padding between columns */
    }

    .property-jump-combobox .dropdown-item .property-jump-info {
        flex: 1;
        text-align: left;
        min-width: 0; /* Allow text to truncate if needed */
    }

    .property-jump-combobox .dropdown-item .property-jump-name {
        color: #333; /* Force dark text */
        font-weight: 500;
        line-height: 1.3;
        display: block;
        margin: 0;
        text-align: left;
    }

    .property-jump-combobox .dropdown-item .property-jump-details {
        color: #666; /* Force muted dark text */
        font-size: 0.75em;
        text-align: right;
        flex-shrink: 0; /* Prevent shrinking */
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        justify-content: center;
        width: auto; /* Auto-width to fit content */
        line-height: 1.2;
    }

    .property-jump-combobox .dropdown-item .property-jump-details .property-jump-bedroom-info,
    .property-jump-combobox .dropdown-item .property-jump-details .property-jump-bathroom-info {
        display: block;
        margin: 1px 0;
        font-weight: 500;
        color: #555;
    }

    .property-jump-combobox .dropdown-item:last-child .property-jump-item {
        border-bottom: none; /* Remove border from last item */
    }

    /* Subtle hover effect for better UX */
    .property-jump-combobox .dropdown-item:hover .property-jump-item {
        background-color: #f8f9fa; /* Very light gray background on hover */
        border-radius: 4px; /* Subtle rounded corners */
    }

        .property-jump-combobox .dropdown-item.active .property-jump-item,
        .property-jump-combobox .dropdown-item:active .property-jump-item {
            background-color: var(--primary-color, #007bff);
        }

        .property-jump-combobox .dropdown-item.active .property-jump-name,
        .property-jump-combobox .dropdown-item:active .property-jump-name,
        .property-jump-combobox .dropdown-item.active .property-jump-details,
        .property-jump-combobox .dropdown-item:active .property-jump-details {
            color: white;
        }

    /* Input Specific Styles */
    .property-jump-combobox .rns-input {
        background: #fff;
        border: 1px solid #d5d7da;
        border-radius: var(--radius-lg);
        box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.18) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
        cursor: pointer; /* Pointer when not focused */
        display: flex;
        font-weight: 600;
        padding: 12px;
        padding-left: 44px;
        width: 100%;
        color: #333 !important; /* Force dark text color, override any inheritance */
    }

    .property-jump-combobox .rns-input:focus {
        cursor: text; /* Text cursor when focused/active */
        outline: none; /* Remove default focus outline */
        border-color: var(--primary-color, #007bff); /* Highlight border when focused */
        box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); /* Focus ring */
    }

    .property-jump-combobox .rns-input::placeholder {
        color: #999 !important; /* Force placeholder color */
        opacity: 1; /* Ensure placeholder is visible */
    }

    /* Loading State */
    .property-jump-combobox .rns-form-control.is-loading {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="50" cy="50" fill="none" stroke="%23007bff" stroke-width="10" r="35" stroke-dasharray="164.93361431346415 56.97787143782138"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle></svg>');
        background-position: right 10px center;
        background-repeat: no-repeat;
        background-size: 20px;
        padding-right: 40px;
    }

    .dashboard-container .property-jump-component {
        width: 100%;
        max-width:750px;
        margin: 0px auto 30px;
    }

    .dashboard-container h3 {
        margin-bottom: 10px;
    }

.property-select {
    background-color: white;
    border: 1px solid var(--neutral-200);
    border-radius: var(--radius-sm);
    padding: 0.75rem;
    width: 100%;
}

/* Optional: Add custom colors for each tile */
.dashboard-tile .tile-icon {
    color: var(--primary-color, #0056b3);
}

.d-none {
    display: none !important; /* Hide element when needed */
}

.rns-wrapper {
    margin: 0 auto;
}

.rns-search-container {
    margin: 0 auto;
    max-width: 1920px;
    width: 90%;
}

.rns-property-container {
    margin: 0 auto;
    max-width: 1920px;
    padding: 20px 0;
    width: 90%;
}

.property-page {
    padding: 20px;
}

.main-image {
    height: 500px; /* Set a fixed height for the main image container */
    position: relative;
}

    .main-image img {
        border-radius: var(--radius-lg);
        height: 100%;
        object-fit: cover;
        width: 100%;
    }

.thumbnail {
    border-radius: var(--radius-lg);
    object-fit: cover;
}

    .thumbnail img {
        border-radius: var(--radius-lg);
        display: block;
        height: 100%; /* Ensure thumbnails fill the height of their container */
        object-fit: cover;
    }

    .rns-btn {
        font-size: 16px;
    }

.rns-btn-searchbar {
    align-items: center;
    background: #fff;
    background-color: var(--white);
    border: 1px solid #f5f5f5;
    border-radius: var(--radius-lg);
    box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.18) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
    color: var(--gray700);
    display: flex;
    font-size: 16px;
    font-weight: 600;
    justify-content: space-between;
    min-width: 175px;
    padding: 8px 14px;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s;
    white-space: nowrap;
    width: 100%;
    min-height: 42px;
}

.rns-btn:hover {
    background-color: var(--hover-background-color);
    border-color: var(--hover-border-color);
}

.rns-btn-outline-primary:hover {
    background-color: rgba(13, 110, 253, 0.1);
    border-color: #0a58ca;
    color: #0a58ca;
}


/* Search Bar Styles */
.search-bar-wrap {
    background: white;
    padding: 0;
    position: sticky;
    top: 0px;
    width: 100%;
    z-index: 1051; /* Increased z-index to be above most other elements */
}

.search-bar {
    background-color: transparent;
}

/* Sticky class applied dynamically */
.search-bar-wrap .search-bar {
    background-color: transparent;
    left: 0;
    position: relative;
    right: 0;
    top: 0;
    width: 100%;
    z-index: 1000;
}

.search-bar-top,
.rns-form-label .rns-form-check {
    font-size: 18px;
    font-weight: 600;
}

.search-bar .rns-form-label {
    color: #414651;
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 28px;
}

/* Update the form-control styling in rns-layout.css */
select.rns-form-control {
    /* Only apply to select elements */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-position: right 0.75rem center;
    background-repeat: no-repeat;
    background-size: 1em;
    border: 1px solid #d5d7da;
    border-radius: var(--radius-lg);
    box-shadow: 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
    padding-right: 2.5rem;
}

    select.rns-form-control::-ms-expand {
        display: none;
    }

/* Ensure the background doesn't interfere with other elements */
.rns-form-control.rns-btn-searchbar {
    background-image: none;
}

.more-filters-wrap .rns-form-label {
    font-weight: bold;
}


.criteria-container {
    max-width: 100%;
    overflow: hidden;
    padding: 20px;
    background: white;
}

.criteria-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    padding: 10px 0;
}

/* ========================================
   CENTRALIZED CLOSE BUTTON STYLING
   All close button styles are defined here.
   DO NOT add close-button styles in other CSS files.
   ======================================== */

/* Base close button - font-independent SVG icon */
.close-button {
    position: absolute;
    top: 5px;
    right: 5px;
    background: white;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    padding: 0.5rem;
    z-index: 1051;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 0.2s ease;
    /* SVG X icon - not affected by font family or size - bolder stroke */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23666" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px 20px;
}

.close-button:hover {
    background-color: white;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    transform: scale(1.05);
    /* Change SVG to red on hover - bolder stroke */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23dc2626" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>');
}

/* Modal close buttons - inherit base styling with position overrides */
.property-details-modal .close-button,
.rental-terms-modal .close-button {
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    z-index: 10;
}

/* Ensure the parent container has relative positioning */
.more-btn-wrapper {
    position: relative;
}


.filter-toggle-btn {
    background-color: #5486bd;
    border: none;
    color: white;
    cursor: pointer;
    padding: 5px 10px;
}

.search-bar-active {
    background-color: #f9f9f9;
    box-sizing: border-box; /* Ensures padding and borders are included in width */
    margin: 0 auto; /* Center within the container */
    overflow-x: hidden; /* Hide horizontal overflow if it still occurs */
    width: 100%; /* Ensure full width but not overflow */
}

.search-bar-bottom {
    align-items: center;
    /* Removed fixed height if any */
    box-sizing: border-box;
    display: flex; /* Keep flex for alignment */
    justify-content: space-between;
    /* Animation properties */
    max-height: 100px; /* Adjust if needed - large enough for content */
    opacity: 1;
    visibility: visible;
    background: var(--white, #ffffff);
    flex-direction: row;
    border-bottom: 1px solid #e0e0e0;
    border-top: 1px solid #e0e0e0;
    flex-wrap: wrap;
    padding: 8px 10px;
    transition: all 0.3s ease;
}


.search-bar-bottom-left,
.search-bar-bottom-right {
    align-items: center;
    display: flex;
}

.search-bar-bottom-left {
    padding: 0px 4px;
    justify-self: flex-start;
}

.search-bar-bottom-right {
    gap: 20px;
}


.search-bar-bottom .active-filters-count {
    margin-left: 1rem;
    display: flex;
    gap: 10px;
}

.search-bar-bottom .fav-toggle-wrapper,
.search-bar-bottom .sort-dropdown {
    margin-left: 1rem;
    width: auto;
}


.view-options-wrapper {
    padding-right: 10px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.view-mode-options {
    display: flex;
    background-color: var(--white);
    border: 1px solid #f5f5f5;
    border-radius: var(--radius-lg);
    box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.18) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
    padding: 0;
    overflow: hidden;
}

.view-mode-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 15px;
    background: transparent;
    color: var(--text-muted);
    border: none;
    transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    position: relative;
    border-radius: var(--radius-lg);
}

.view-mode-btn:first-child {
    border-radius: var(--radius-lg) 0 0 var(--radius-lg);
}

.view-mode-btn:nth-child(2) {
    border-radius: 0;
}

.view-mode-btn:last-child {
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}

.view-mode-btn.active {
    color: var(--primary-color, #0056b3);
    font-weight: 500;
    background-color: rgba(var(--primary-color-rgb), 0.05);
    box-shadow: 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset;
    border-color: var(--primary-color, #0056b3) !important;
}

.view-mode-btn iconify-icon {
    display: block;
    width: 24px;
    height: 24px;
}

.results-count {
    align-items: center;
    color: #333;
    display: flex;
    font-weight: 500;
    position: relative;
}

    .results-count span {
        font-weight: 600;
        margin-left: 4px;
    }

.active-filters-count {
    align-items: center;
    display: flex;
    gap: 16px;
    margin-left: 15px;
    padding-left: 15px;
    position: relative;
}

    .active-filters-count::before {
        background-color: #ddd;
        content: "";
        height: 16px;
        left: 0;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 1px;
    }

.show-filters-btn,
.clear-filters-btn {
    background: none;
    border: none;
    border-radius: var(--radius-sm);
    color: #666;
    cursor: pointer;
    font-size: 0.9rem;
    line-height: normal;
    padding: 4px 8px;
    transition: all 0.2s ease;
}

.show-filters-btn {
    border: 1px solid var(--primary-color, #0056b3);
    color: var(--primary-color, #0056b3);
}

.clear-filters-btn {
    border: 1px solid;
}

.show-filters-btn:hover {
    background-color: #f5f5f5;
    border-color: var(--primary-color, #0056b3);
    color: var(--primary-color, #0056b3);
}

.clear-filters-btn:hover {
    background-color: rgba(220, 53, 69, 0.1);
    border-color: #bb2d3b;
    color: #bb2d3b;
}

.rns-btn-active-filter {
    border: 1px solid var(--primary-color, #0056b3);
    border-radius: var(--radius-sm);
    color: var(--primary-color, #0056b3);
}

    .rns-btn-active-filter:hover {
        background-color: rgba(13, 110, 253, 0.1);
        border-color: var(--primary-color, #0056b3);
        color: var(--primary-color, #0056b3);
    }

.show-filters-btn:disabled,
.clear-filters-btn:disabled {
    background: none;
    border-color: currentColor;
    cursor: not-allowed;
    opacity: 0.5;
    background-color: #e0e0e0;
    color: #a0a0a0;
}

.active-filter {
    display: inline;
    float: left;
    margin-left: 10px;
    width: fit-content;
}

    .active-filter button {
        padding: 0px 6px;
        align-items: center;
        margin: 10px 0px;
    }

        .active-filter button i {
            margin-left: 5px;
        }

/*View Mode Buttons*/
.view-mode-options {
    gap: 0px;
    display: flex;
    justify-content: center;
}

    .view-mode-options button {
        background: transparent;
        border: 1px solid #c3c3c3;
        border-radius: var(--radius-sm);
        cursor: pointer;
        font-size: 1.2em;
        padding: 7px 10px;
    }

        .view-mode-options button.active {
            border-color: #f0f0f0;
            color: #3c3c3c;
        }

        .view-mode-options button i {
            font-size: 1.2em; /* Adjust icon size as needed */
        }

.view-mode-btn {
    background-color: #fff; /* Button background color */
    border: 1px solid #ccc; /* Border to give a 3D effect */
    border-radius: 5px;
    padding: 10px;
    transition: all 0.3s ease; /* Smooth transition */
}

    .view-mode-btn i {
        color: #333; /* Icon color */
        text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2), -1px -1px 1px rgba(255, 255, 255, 0.5); /* Inward shadow effect on the icon */
    }

    .view-mode-btn.active {
        background-color: #f5f5f5; /* Different background for active state */
        box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.1), inset -1px -1px 2px rgba(255, 255, 255, 0.3);
    }

    .view-mode-btn:hover {
        background-color: #f5f5f5;
        box-shadow: inset 0 0 3px rgba(100, 100, 100, 0.3);
    }

.favorite-icon {
    cursor: pointer;
    font-size: 24px;
    position: relative;
    transition: color 0.2s;
}

    .favorite-icon .badge {
        background-color: red;
        border-radius: 50%;
        color: white;
        font-size: 12px;
        padding: 4px 8px;
        position: absolute;
        right: -10px;
        top: -10px;
    }

.fav-toggle-wrapper {
    line-height: normal;
    padding-top: 4px;
}


.noUi-tooltip {
    display: none;
}

.noUi-active .noUi-tooltip {
    display: block;
}

.noUi-background {
    height: 16px;
}

    .noUi-background.noUi-vertical {
        height: 200px;
        margin: 0 auto 30px;
        width: 16px;
    }

.noUi-base .noUi-connect {
    background: var(--primary-color, #0056b3);
    border-radius: var(9999px);
}

.noUi-base .noUi-handle {
    background: #fff;
    border: 2px solid var(--primary-color, #0056b3);
    border-radius: 9999px;
    box-shadow: 0px 4px 6px -1px rgba(10, 13, 18, 0.1), 0px 2px 4px -2px rgba(10, 13, 18, 0.06);
    height: 24px;
    right: -12px;
    top: -9px;
    width: 24px;
}

.noUi-horizontal .noUi-base .noUi-handle {
    cursor: ew-resize;
}

.noUi-vertical .noUi-base .noUi-handle {
    cursor: ns-resize;
    margin-left: -8px;
}

.noUi-base .noUi-handle:hover {
    background-color: var(--primary-color, #0056b3);
}

.noUi-base .noUi-handle.noUi-active {
    background-color: var(--primary-color, #0056b3);
}

.noUi-base .noUi-handle::before {
    font-size: 16px;
}

.noUi-handle:before,
.noUi-handle:after {
    display: none !important;
}

.noUi-base,
.noUi-connects {
    background: #e9eaeb;
    border-radius: 9999px;
}

/* Base style for the container */
.checkbox-container {
    align-items: center;
    border: 1px solid #ccc;
    border-radius: var(--radius-lg);
    cursor: pointer;
    display: flex;
    font-size: 14px;
    min-height: 42px;
    padding: 5px 10px;
    transition: background-color 0.3s, border-color 0.3s;
}

/* When the checkbox is checked, apply this style to the container */
.checked-container {
    background-color: var(--primary-color, #0056b3);
    border-color: var(--primary-color, #0056b3); /* Blue border */
    color: white; /* White text */
}

.checkbox-container input[type="checkbox"] {
    border-radius: var(--radius-sm);
    color: white;
    margin-left: 0px;
    margin-right: 10px;
    margin-top: 0px;
}

    /* When the checkbox is checked, style the container */
    .checkbox-container input[type="checkbox"]:checked + label {
        border-radius: 2px;
        color: white;
        margin-left: 0px;
    }

    /* Style the container itself when checkbox is checked */
    .checkbox-container input[type="checkbox"]:checked {
        background-color: var(--primary-color, #0056b3);
        border-color: var( --primary-color, #0056b3 ); /* Change border color when checked */
        border-radius: var(--radius-md);
        color: white; /* Change text color when checked */
    }

/* Optional: Apply hover styles */
.checkbox-container:hover {
    background-color: #fafafa; /* Light gray on hover */
    border-color: var( --primary-color, #0056b3 ); /* Optional: Blue border on hover */
    color: #333;
}

/* Optional: Apply hover styles */
.checked-container:hover {
    background-color: #f0f0f0; /* Light gray on hover */
    border-color: var( --primary-color, #0056b3 ); /* Optional: Blue border on hover */
    color: #333;
}

.noUi-value-sub {
    color: #333;
    font-size: 14px;
}

.slider-wrapper {
    min-height: 80px;
    padding: 0.5rem 0;
    width: 100%;
}

.noUi-target {
    height: 10px;
    margin: 0 12px;
}

.noUi-pips {
    color: #000000;
    font-size: 14px;
    position: absolute;
}

.rns-banner-wrapper{
    position: relative;
}

.search-bar-wrap .filter-button {
    margin: 10px 0px;
}

[v-cloak] {
    display: none;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Optional: Dim the content slightly when loading */
.rns-results-container .rns-content-area.loading {
    opacity: 0.8;
    pointer-events: none; /* Prevent interactions */
}

/* Optional: Adjust icon size */
.rns-btn-secondary .fas {
    font-size: 1.2em;
}

.criteria-container {
    max-width: 100%;
    overflow: hidden;
    padding: 0px 20px 10px;
}

.criteria-label {
    padding: 20px 20px 0px;
}

/* Sort Dropdown Styles */
.sort-dropdown-wrapper {
    position: relative;
    flex: 1;
}

.sort-dropdown-wrapper .dropdown-btn {
    position: relative;
    width: 100%;
}

.sort-dropdown-btn {
    width: 100%;
    min-width: 150px;
    padding: 2px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    background: var(--white);
    border-radius: var(--radius-lg);
    transition: all 0.2s ease;
}

.sort-btn-content {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 500;
    line-height: 24px;
}

.sort-btn-content span {
    width: 100%;
}

.sort-dropdown-list {
    position: absolute;
    top: calc(100% + 5px);
    right: 0;
    background: white;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: 0px 4px 6px -2px rgba(16, 24, 40, 0.03), 0px 12px 16px -4px rgba(16, 24, 40, 0.08);
    z-index: 1060;
    min-width: 200px;
}

.sort-dropdown-list .dropdown-item {
    width: 100%;
    padding: 10px 15px;
    text-align: left;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--text-color);
    transition: all 0.2s ease;
    font-size: 14px;
    white-space: nowrap;
}

.sort-dropdown-list .dropdown-item:hover {
    background-color: var(--hover-bg, #f8f9fa);
    color: var(--primary-color, #0056b3);
}

.sort-dropdown-list .dropdown-item:not(:last-child) {
    border-bottom: 1px solid var(--border-color);
}

.sort-dropdown-list .dropdown-item:first-child {
    border-top-left-radius: var(--radius-lg);
    border-top-right-radius: var(--radius-lg);
}

.sort-dropdown-list .dropdown-item:last-child {
    border-bottom-left-radius: var(--radius-lg);
    border-bottom-right-radius: var(--radius-lg);
}



.essentials-dropdown {
    background: white;
    border: 1px solid #ddd;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    left: 0;
    min-width: 685px;
    position: absolute;
    top: 100%;
    z-index: 9999;
}

/* Add transition for mobile modal */
@media (max-width: 768px) {
    .essentials-dropdown {
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    
    .essentials-dropdown:not(.essentials-mobile-visible) {
        opacity: 0;
        visibility: hidden;
    }
    
    .essentials-dropdown.essentials-mobile-visible {
        opacity: 1;
        visibility: visible;
    }
}

#essentials-bar {
    display: inline-block;
    position: relative;
}

    #essentials-bar .rns-btn-searchbar {
        align-items: center;
        background: white;
        border: none;
        border-radius: 3px;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        padding: 10px;
        width: 100%;
    }

        #essentials-bar .rns-btn-searchbar .custom-arrow {
            transition: transform 0.3s;
        }

            #essentials-bar .rns-btn-searchbar .custom-arrow.rotate-180 {
                transform: rotate(180deg);
            }

.filter-section {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0 auto;
    width: 660px;
}

    .filter-section h4 {
        color: #333;
        font-size: 16px;
        margin: 0;
    }

.slider-row {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 20px; /* Ensure enough space between rows */
    justify-content: center;
    margin-bottom: 20px; /* Ensure space between rows */
    position: relative; /* Ensure the pips are positioned relative to the slider row */
    width: 100%;
}

    .slider-row .noUi-target {
        height: auto;
        position: relative; /* Ensure the pips are positioned relative to the slider */
        width: 100%;
    }

    .slider-row .noUi-pips {
        bottom: -20px; /* Adjust this value as needed to position the pips correctly */
        margin-top: 10px;
        position: absolute; /* Ensure pips are positioned within the parent */
        width: 100%; /* Ensure pips span the width of the slider */
    }

/* Customize the arrow */
.custom-arrow {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='21' height='20' viewBox='0 0 21 20' fill='none'%3e%3cpath d='M5.5 7.5L10.5 12.5L15.5 7.5' stroke='%23414651' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-position: center;
    background-repeat: no-repeat;
    display: inline-block;
    height: 20px;
    transition: transform 0.3s ease;
    width: 24px;
}

    /* If you still need the rotation for the open state */
    .custom-arrow.rotate-180 {
        transform: rotate(180deg);
    }

/* For the standard select elements */
.rns-form-select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-position: right 0.75rem center;
    background-repeat: no-repeat;
    background-size: 1em;
    padding-right: 2.5rem;
}

/* Show the dropdown menu when entering */

.fade-slide-enter-to,
.fade-slide-leave-from {
    opacity: 1;
    transform: translateY(0);
}

.date-range-wrapper {
    box-sizing: border-box; /* Include padding and border in width */
    min-width: 320px;
    padding-left: 0px;
}

.rns-dateRange .rns-btn-searchbar  {
    padding-left: 40px;
}

.search-bar-top .date-range-wrapper {
    padding-left: 10px;
}

.rns-input-group .rns-form-control:hover {
    background-color: var(--hover-background-color);
    border-color: var(--hover-border-color);
}

.date-range-wrapper input {
    box-sizing: border-box; /* Include padding and border in width */
    flex: 1; /* Allow the input to grow and fill available space */
    min-width: 0; /* Prevent overflow */
    cursor: pointer;
}

input::placeholder {
    color: #ff0000; /* Change to your desired color */
    opacity: 1; /* Ensure opacity is set to 1 for visibility */
}

input::-moz-placeholder {
    /* Firefox 19+ */
    color: #ff0000;
    opacity: 1;
}

input:-ms-input-placeholder {
    /* IE 10+ */
    color: #ff0000;
    opacity: 1;
}

input::-webkit-input-placeholder {
    /* Safari 10.1+ */
    color: #ff0000;
    opacity: 1;
}

.spacer {
    flex: 1 !important; /* Takes up remaining space to push view-mode-options to the right */
}

#places-bar {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
    gap: 8px;
    left: 10px;
    padding: 8px;
    position: absolute;
    top: 100px;
    z-index: 5;
}

    #places-bar button {
        align-items: center;
        background: white;
        border: none;
        border-radius: 6px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
        cursor: pointer;
        display: flex;
        height: 44px;
        justify-content: center;
        padding: 10px;
        position: relative;
        transition: all 0.2s ease;
        width: 44px;
    }

        #places-bar button:hover {
            background: #f5f5f5;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
            transform: translateY(-1px);
        }

        #places-bar button.active {
            background: var(--primary-color, #2196f3);
            color: white;
            transform: scale(1.05);
        }

            #places-bar button.active iconify-icon {
                color: white;
            }

        #places-bar button iconify-icon {
            color: #666;
            transition: color 0.2s ease;
        }

        #places-bar button:hover iconify-icon {
            color: #333;
        }

        /* Tooltip styles */
        #places-bar button[title]:hover::after {
            background: rgba(0, 0, 0, 0.8);
            border-radius: 4px;
            color: white;
            content: attr(title);
            font-size: 12px;
            left: 100%;
            margin-left: 8px;
            padding: 4px 8px;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            white-space: nowrap;
            z-index: 10;
        }


/* Base dropdown styles */
.dropdown {
    position: relative; /* Position relative for dropdown options */
}

    /* Show dropdown options when active */
    .dropdown.active .dropdown-options {
        display: block; /* Show when active */
    }

.amenities-list {
    display: flex; /* Use Flexbox */
    flex-wrap: wrap; /* Allow items to wrap */
    margin: -0.5rem; /* Adjust margin to control spacing */
}

.amenity-item {
    align-items: center; /* Center items vertically */
    box-sizing: border-box; /* Ensure padding and border are included in the width */
    display: flex; /* Center content */
    flex: 0 0 25%; /* Set each item to take up 25% of the row */
    padding: 0.5rem; /* Optional: Add padding for spacing */
}

.success.total-charges {
    background-color: #f0fff4; /* Subtle green background for total charges */
    border-radius: var(--radius-sm);
    font-weight: bold;
}

.light-bold.total-charges {
    font-weight: bold;
}

.light-bold.initial-payment {
    font-weight: bold;
    margin-top: 10px;
}

.light-font {
    font-weight: normal;
}

.slider-images {
    display: flex;
    height: 100%;
    transition: transform 0.3s ease-out;
    width: 100%;
}

    .slider-images img {
        flex-shrink: 0;
        height: 100%;
        object-fit: cover;
        width: 100%;
    }

.img-slider-wrap button.prev,
.img-slider-wrap button.next {
    background: rgba(0, 0, 0, 0.5);
    border: none;
    color: white;
    cursor: pointer;
    padding: 10px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.img-slider-wrap button.prev {
    left: 0;
}

.img-slider-wrap button.next {
    right: 0;
}

/* Removed duplicate close-button:hover - using SVG-based icon from main .close-button definition */

.rns-list-unstyled {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Property Page Specific Styles */
.rates-loading-state {
    background-color: #f8f9fa;
    border-radius: 0.25rem;
    min-height: 100px;
    padding: 1.5rem;
    text-align: center;
}

.booking-section {
    margin-bottom: 1.5rem;
}

/* Alert Styles within Booking Section */
.booking-section .alert {
    border: none;
    border-radius: 8px;
    margin: 0;
    padding: 16px;
}

.booking-section .alert-info {
    background-color: #f0f7ff;
    color: #1e429f;
}

.booking-section .alert .d-flex {
    gap: 12px;
    align-items: center;
}

.booking-section .alert iconify-icon {
    flex-shrink: 0;
    color: #3b82f6;
}

.booking-section .alert span {
    font-size: 0.95rem;
    line-height: 1.4;
}

/* Loading State within Booking Section */
.booking-section .rates-loading-state {
    background-color: #f0f7ff;
    border-radius: 8px;
    padding: 16px;
    min-height: 44px;
    display: flex;
    align-items: center;
}

.booking-section .rates-loading-state .message-row {
    display: flex;
    gap: 12px;
    align-items: center;
    width: 100%;
}

.booking-section .rates-loading-state .rns-spinner {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    border: 2px solid #3b82f6;
    border-right-color: transparent;
    border-radius: 50%;
    animation: rns-spin 0.75s linear infinite;
}

@keyframes rns-spin {
    to {
        transform: rotate(360deg);
    }
}

.booking-section .rates-loading-state span {
    color: #1e429f;
    font-size: 0.95rem;
    line-height: 1.4;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Charges Container within Booking Section */
.booking-section .charges-container {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

.booking-form {
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 0px 1px 2px 0px rgba(16, 24, 40, 0.06);
    padding: 20px;
    position: sticky;
}

/* Override Bootstrap's default disabled button opacity if needed */
.rns-btn:disabled {
    cursor: not-allowed !important;
    opacity: 0.5;
    pointer-events: auto;
}

    .rns-btn:disabled:hover {
        opacity: 0.4;
    }

/* Tooltip customization if needed */
.tooltip {
    font-size: 0.875rem;
}





/* Checkout Layout */
.checkout-container {
    margin: 0 auto;
    max-width: 1200px;
    padding: 0;
}

.checkout-content {
    display: grid;
    gap: 30px;
    grid-template-columns: 1fr 500px;
    padding: 20px 0px;
}

/* Form Sections */
.checkout-section {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.1);
    margin-bottom: 20px;
    padding: 24px;
}

    .checkout-section h2 {
        color: var(--primary-color, #0056b3);
        font-size: 1.5rem;
        margin-bottom: 24px;
    }

/* Form Groups */
.rns-form-group {
    position: relative;
    margin-bottom: 1.5rem;
}

    .rns-form-group input,
    .rns-form-group select {
        background-color: var(--white, #fff);
        border: 1px solid var(--border-color, #dee2e6);
        border-radius: var(--radius-sm);
        font-size: 16px;
        padding: 12px;
        transition: border-color 0.2s ease;
        width: 100%;
    }

        .rns-form-group input:focus,
        .rns-form-group select:focus {
            border-color: var(--primary-color, #80bdff);
            box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
            outline: none;
        }

        /* Style for invalid inputs */
        .rns-form-group input.is-invalid {
            border-color: var(--danger, #dc3545);
        }

/* Add bottom margin to form rows */
.rns-form-row {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
    margin-left: -10px;
    margin-right: -10px;
}

/* Add spacing between form groups */

/* Style for labels */
.rns-form-group label {
    background: var(--white, #fff);
    color: var(--text-muted, #6c757d);
    left: 12px;
    padding: 0 4px;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.2s;
}

/* Style for focused or filled inputs */
.rns-form-group input:focus + label,
.rns-form-group input:not(:placeholder-shown) + label,
.rns-form-group select:focus + label,
.rns-form-group select:not(:placeholder-shown) + label {
    color: var(--text-dark, #495057);
    top: 0;
    transform: translateY(-50%) scale(0.8);
}

/* Option Groups */
.option-group {
    background: var(--white);
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: var(--radius-lg);
    margin-bottom: 24px;
    padding: 20px;
    display: flex;
    flex-direction: column;
}

.toggle-group {
    display: flex;
    gap: 16px;
    margin-top: 12px;
}

.toggle {
    flex: 1;
    position: relative;
}

    .toggle input[type="radio"] {
        opacity: 0;
        position: absolute;
    }

    .toggle span {
        background: var(--white);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-sm);
        cursor: pointer;
        display: block;
        padding: 10px;
        text-align: center;
        transition: all 0.2s;
    }

    .toggle input[type="radio"]:checked + span {
        background: var(--primary);
        border-color: var(--primary-color, #0056b3);
        color: var(--white);
    }

/* Sticky Sidebar */
.checkout-sidebar {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.1);
    height: fit-content;
    padding: 24px;
    position: sticky;
    top: 20px;
}

.date-range {
    color: var(--text-muted);
    margin-top: 12px;
}

.rate-heading {
    color: #2d3748;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 1rem 10px;
}

.rate-divider {
    background: #e9ecef;
    height: 1px;
    margin: 0.25rem 0;
}

.rate-item {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: 8px 0;
}

/*View Mode Buttons*/

/* Button Styles */
.button-group {
    display: flex;
    gap: 12px;
    justify-content: flex-end; /* Align buttons to the right */
    margin-top: 24px;
}

    .button-group .rns-btn-secondary {
        flex: 0 0 auto; /* Don't grow, keep natural width */
        min-width: 100px; /* Minimum width for back button */
    }

    .button-group .rns-btn-primary {
        flex: 0 0 200px; /* Fixed width for primary button */
    }



.rns-btn-primary {
    align-items: center;
    background: var(--primary-color, #0056b3);
    border: 2px solid var(--Gradient-skeuemorphic-gradient-border, rgba(255, 255, 255, 0.12));
    border-radius: var(--radius-lg);
    box-shadow: 0px 0px 0px 1px var( --Colors-Effects-Shadows-shadow-skeumorphic-inner-border, rgba(10, 13, 18, 0.18) ) inset, 0px -2px 0px 0px var( --Colors-Effects-Shadows-shadow-skeumorphic-inner, rgba(10, 13, 18, 0.05) ) inset, 0px 1px 2px 0px var(--Colors-Effects-Shadows-shadow-xs, rgba(10, 13, 18, 0.05));
    color: #fff;
    display: flex; 
    font-weight: 600;
    gap: 8px;
    justify-content: center;
    padding: 7px 14px;
    cursor: pointer;
}

    .rns-btn-primary:hover {
        background-color: var(--primary-color, #0056b3);
        border-color: var(--primary-color, #0056b3);
    }

    .login-container .rns-btn-primary {
        width: 100%;
    }


.rns-btn-secondary {
    align-items: center;
    background: #fff; /* Added semicolon here */
    border: 1px solid var(--primary-color, #0056b3);
    border-radius: var(--radius-lg);
    box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.18) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
    color: var(--primary-color, #0056b3);
    display: flex;
    font-weight: 600;
    gap: 8px;
    justify-content: center;
    padding: 7px 14px;
    cursor: pointer;
}

    .rns-btn-secondary:hover {
        background-color: #fafafa;
        border-color: var(--primary-color, #0056b3);
        box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.38) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
        color: var(--primary-color, #0056b3);
    }

    .login-container .rns-btn-secondary {
        width: 100%;
    }

.rns-btn-cta {
    align-items: center;
    background-color: var(--primary25);
    border-radius: 0.5rem;
    box-shadow: 0 1px 2px #1018280d;
    color: var(--primary-color, #0056b3);
    display: flex;
    font-weight: 600;
    grid-column-gap: 0.5rem;
    justify-content: center;
    padding: 7px 14px;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s;
    white-space: nowrap;
    cursor: pointer;
}

    .rns-btn-cta:hover {
        background-color: var(--primary50);
        color: var(--primary-color, #0056b3);
    }

/* Credit Card Field */
.eye-button {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
}

/* Form row layout */

.rns-form-row > .rns-form-group {
    flex: 0 0 100%;
    margin-bottom: 0;
    max-width: 100%;
    padding-left: 10px;
    padding-right: 10px;
    width: 100%;
}

/* New flexbox form layout */
.input-row {
    display: flex;
    gap: 20px;
}

.rns-input-group {
    align-items: stretch;
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    position: relative;
    width: 100%;
}

    .rns-input-group.grow-1 {
        flex: 1;
    }

    .rns-input-group.grow-2 {
        flex: 2;
    }

    /* Label styling */
    .rns-input-group label {
        background: var(--white, #fff);
        color: var(--text-muted, #6c757d);
        left: 12px;
        padding: 0 4px;
        pointer-events: none;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        transition: all 0.2s;
        z-index: 6; /* Always above input */
    }

    .rns-input-group input:focus + label,
    .rns-input-group input:not(:placeholder-shown) + label,
    .rns-input-group select:focus + label,
    .rns-input-group select:not(:placeholder-shown) + label {
        background-color: var(--white, #fff);
        color: var(--text-dark, #495057);
        top: 0;
        transform: translateY(-50%) scale(0.8);
    }

.property-jump-combobox .input {
    background: #fff;
    border: 1px solid #d5d7da;
    border-radius: var(--radius-lg);
    box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.18) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
    cursor: pointer;
    display: flex;
    font-weight: 600;
    padding-left: 44px;
}



/* Search Bar Styles */
.search-bar-top {
    align-items: center;
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    gap: 20px;
    margin: 0 auto;
    position: relative;
    width: 100%;
    z-index: 1051;
}

.flex-container {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 10px;
    width: 100%;
}


/* Options Section Styles */

.option-group h3 {
    color: var(--gray900);
    font-size: 1.2rem;
    margin-bottom: 0px;
}

.option-description {
    color: var(--gray600);
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 20px;
}

/* Options Table Styles */
.options-table {
    margin-bottom: 20px;
}

    .options-table table {
        margin-bottom: 15px;
        width: 100%;
    }

    .options-table th {
        background-color: var(--gray50);
        font-weight: 600;
        padding: 12px;
    }

    .options-table td {
        padding: 12px;
        vertical-align: middle;
    }

    .options-table select {
        min-width: 80px;
        width: 80px;
    }

/* Radio Group Styles */
.radio-group {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.radio-option {
    align-items: flex-start;
    border: 1px solid var(--gray300);
    border-radius: var(--radius-md);
    cursor: pointer;
    display: flex;
    gap: 12px;
    padding: 12px;
    transition: all 0.2s ease;
}

    .radio-option:hover {
        background-color: var(--gray50);
    }

    .radio-option input[type="radio"] {
        margin-top: 4px;
        flex-shrink: 0;
    }
    
    /* Highlight selected radio option */
    .radio-option:has(input[type="radio"]:checked) {
        background-color: rgba(var(--primary-color-rgb), 0.08);
        border-color: var(--primary-color);
    }

    .radio-option-group {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .sdp-group {
        margin-bottom: 40px;
    }

    .ti-group {
        margin-bottom: 0px;
    }

.radio-label {
    flex: 1;
    font-weight: 500;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: baseline;
    min-width: 0;
}

.plan-details-link {
    font-size: 0.75rem;
    flex-basis: 100%;
    width: 100%;
}

    .plan-details-link a {
        color: var(--primary-color);
    }

.radio-price {
    color: var(--gray900);
    font-weight: 600;
    font-size: 1.1rem;
    margin-left: auto;
    flex-shrink: 0;
}

.option-note {
    color: var(--gray600);
    font-size: 0.9rem;
    margin-left: 24px;
    margin-top: 4px;
}

.insurance-disclaimer {
    color: #c1c1c1 !important;
    font-weight: 100;
    font-size: 10px;
    line-height: 1.4;
    margin-top: 1rem;
}

    .insurance-disclaimer a {
        color: var(--primary-color);
        text-decoration: underline;
    }

        .insurance-disclaimer a:hover {
            text-decoration: none;
        }

/* Insurance Details */
.insurance-details {
    background-color: var(--gray50);
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    margin: 12px 0;
    padding: 12px;
}

    .insurance-details a {
        color: var(--primary-color, #0056b3);
        text-decoration: underline;
    }

.disclaimer {
    color: var(--gray600);
    font-size: 0.8rem;
    line-height: 1.4;
    margin-top: 8px;
}

/* Promo Code Section */
.promo-input {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

    .promo-input input {
        flex: 1;
    }

    .promo-input button {
        min-width: 100px;
    }


/* Owner Portal Section Styles */
.owner-portal-section {
    margin: 0 auto;
    max-width: 1200px;
    padding: 2rem;
}

.section-title {
    align-items: center;
    color: var(--neutral-800);
    display: flex;
    font-size: 1.75rem;
    gap: 1rem;
    margin: 0;
}

.section-icon {
    color: var(--primary-color, #0056b3);
    font-size: 1.75rem;
}

.section-subtitle {
    color: var(--neutral-700);
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

/* Reservations Form Styles */
.reservations-form {
    margin-bottom: 2rem;
}

.filter-grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.property-selector {
    flex: 1;
    min-width: 250px;
}

.date-range-section {
    flex: 2;
    min-width: 300px;
}

.date-range-picker {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.date-input-group {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 1rem;
}

.date-input {
    flex: 1;
    min-width: 200px;
    position: relative;
}

    .date-input i {
        color: var(--neutral-500);
        left: 12px;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }

    .date-input .rns-form-control {
        padding-left: 2.5rem;
    }

/* Reservations Table Styles */
.reservations-table-container {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.table-responsive {
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
}

.reservations-table {
    margin-bottom: 0;
    white-space: nowrap;
    width: 100%;
}

    .reservations-table th {
        background-color: var(--neutral-50, #f8f9fa);
        border-bottom: 2px solid var(--neutral-200);
        color: var(--neutral-700);
        font-weight: 600;
        padding: 1rem;
    }

    .reservations-table td {
        border-bottom: 1px solid var(--neutral-200);
        padding: 1rem;
        vertical-align: middle;
    }

    .reservations-table tbody tr:hover {
        background-color: var(--neutral-50, #f8f9fa);
    }

.total-row {
    background-color: var(--neutral-50, #f8f9fa);
}

.total-label {
    color: var(--neutral-800);
    font-weight: 600;
    text-align: right;
}

.total-amount {
    color: var(--primary-color, #0056b3);
    font-weight: 600;
}

.no-data-message {
    align-items: center;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.1);
    color: var(--neutral-600);
    display: flex;
    font-size: 1.1rem;
    gap: 0.5rem;
    justify-content: center;
    padding: 3rem;
}

input:-webkit-autofill {
    background-color: transparent;
}

/* Add styles for the sidebar toggle on mobile */
.sidebar-toggle {
    display: none;
}

/* Optional: Add a backdrop when sidebar is expanded on mobile */
.mobile-backdrop {
    display: none;
    background: rgba(0, 0, 0, 0.5);
    bottom: 0;
    left: 0;
    opacity: 0;
    position: fixed;
    right: 0;
    top: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    visibility: hidden;
    z-index: 999;
}

/* Search Criteria Grid Layout */
.criteria-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    overflow: hidden;
    padding: 15px;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

    .criteria-grid .checkbox-container {
        flex: 1 1 150px;
        max-width: 200px;
        min-width: 150px;
    }

.guest-actions {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    justify-content: flex-end;
}

/* Checkout-specific Form Section Styles */

    .checkout-form-section h3 {
        color: #666;
        font-size: 1rem;
        margin-top: 15px;
    }

/* Checkout-specific Input Row Styles */
.checkout-input-row {
    display: flex;
    gap: 20px;
}

    .checkout-input-row.no-gap {
        gap: 0;
        display: flex;
        margin: 0;
    }

        .checkout-input-row.no-gap .checkout-input-group:not(:last-child) input,
        .checkout-input-row.no-gap .checkout-input-group:not(:last-child) select {
            border-bottom-right-radius: 0;
            border-right: none;
            border-top-right-radius: 0;
        }

        .checkout-input-row.no-gap .checkout-input-group:not(:first-child) input,
        .checkout-input-row.no-gap .checkout-input-group:not(:first-child) select {
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

/* Checkout-specific Input Group Styles */
.checkout-input-group {
    flex: 1;
    position: relative;
}

    .checkout-input-group input,
    .checkout-input-group select {
        border: 1px solid #e0e0e0;
        box-sizing: border-box;
        font-size: 16px;
        padding: 12px;
        transition: border-color 0.2s;
        width: 100%;
    }

        .checkout-input-group input::placeholder {
            color: #666;
            opacity: 1;
        }

    .checkout-input-group select {
        color: #666;
    }

        .checkout-input-group select option:first-child {
            color: #666;
        }

        .checkout-input-group select option {
            color: #333;
        }

    .checkout-input-group .phone-format-hint {
        bottom: -20px;
        color: #666;
        font-size: 12px;
        left: 0;
        position: absolute;
    }

    /* Add more space below phone input group to accommodate hint */
    .checkout-input-group.has-hint {
        margin-bottom: 24px;
    }

.phone-format-hint {
    color: #666;
    display: block;
    font-size: 0.8rem;
    margin-top: 4px;
}

.date-range .change-link {
    color: #007bff;
    font-size: 0.8rem;
    margin-left: 10px;
    text-decoration: none;
}

    .date-range .change-link:hover {
        text-decoration: underline;
    }

.date-info p,
.guest-info p {
    align-items: center;
    display: flex;
    gap: 8px;
}

.property-details {
    color: #666;
    font-size: 0.9rem;
    margin: 10px 0;
    text-align: left;
}

    .property-details p {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

    .property-details i {
        margin-right: 5px;
    }

.date-info {
    margin-bottom: 15px;
}

    .date-info p {
        margin-bottom: 5px;
    }

    .date-info .change-link {
        display: block;
        margin-top: 5px;
    }

.guest-info .change-link {
    display: inline-block;
    font-size: 0.8rem;
    margin-top: 5px;
}

.login-container {
    margin: 2rem auto;
    max-width: 500px;
    padding: 1rem;
}

.rns-login-form {
    background: var(--Base-White, #fff);
    border: 1px solid var(--Gray-200, #e4e7ec);
    border-radius: 8px;
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 0px 1px 2px 0px rgba(16, 24, 40, 0.06);
    overflow: hidden;
}

    .rns-login-form .tile-header {
        border-bottom: 1px solid #e5e7eb;
        padding: 1.5rem;
    }

        .rns-login-form .tile-header h4 {
            align-items: center;
            color: #2d3748;
            display: flex;
            gap: 0.5rem;
            margin: 0;
        }

    .rns-login-form .tile-content {
        padding: 1.5rem;
    }

    .rns-login-form .tile-footer {
        background-color: #f8fafc;
        border-top: 1px solid #e5e7eb;
        padding: 1.5rem;
    }

    .rns-login-form .forgot-pin-info {
        margin-bottom: 1rem;
    }

        .rns-login-form .forgot-pin-info p {
            color: #4a5568;
            font-size: 0.875rem;
            margin: 0.5rem 0;
        }

            .rns-login-form .forgot-pin-info p:first-child {
                color: #2d3748;
            }

/* Credit Card Styling Section
-------------------------------------------------- */
/* Credit Card Icons */
.card-type-icons {
    display: flex;
    gap: 4px;
    height: 38px;
    max-width: calc( 48px * var(--cc-type-count, 4) ); /* Dynamic width based on number of types */
    overflow: hidden;
    position: absolute;
    right: 5px;
    top: 56%;
    transform: translateY(-50%);
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    z-index: 10;
}

    .card-type-icons .cc-logo {
        color: #666;
        font-size: 2rem;
        opacity: 0.7;
        position: absolute;
        text-align: center;
        transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), opacity 1.8s cubic-bezier(0.4, 0, 0.2, 1), color 0.8s cubic-bezier(0.4, 0, 0.2, 1), right 0.8s cubic-bezier(0.4, 0, 0.2, 1);
        width: 48px;
        right: calc(48px * (var(--cc-type-count, 4) - var(--cc-index, 1)));
    }

    .card-type-icons.has-active .cc-logo:not(.active) {
        opacity: 0;
        transform: translateX(48px);
        transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 0.8s cubic-bezier(0.4, 0, 0.2, 1), right 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .card-type-icons.has-active .cc-logo.active {
        opacity: 1;
        right: 0;
        transform: translateX(0);
    }

    .card-type-icons iconify-icon[icon="fa-brands:cc-visa"].active {
        color: #1a1f71;
    }

    .card-type-icons iconify-icon[icon="fa-brands:cc-mastercard"].active {
        color: #eb001b;
    }

    .card-type-icons iconify-icon[icon="fa-brands:cc-amex"].active {
        color: #006fcf;
    }

    .card-type-icons iconify-icon[icon="fa-brands:cc-discover"].active {
        color: #ff6000;
    }

    /* Add width transition for active state */
    .card-type-icons.has-active {
        width: 48px;
    }

/* Card icons in review/payment-method context should be contained */
.payment-method .card-type-icons {
    position: relative;
    right: auto;
    top: auto;
    transform: none;
    flex-shrink: 0;
    margin-left: auto; /* Push to the right within flex container */
}


.promo-toggle {
    align-items: center;
    color: var(--primary-color, #0056b3);
    display: inline-flex;
    gap: 0.5rem;
    text-decoration: none;
}

    .promo-toggle:hover {
        text-decoration: underline;
    }

.promo-input-group {
    transition: all 0.3s ease;
}

.promo-status {
    font-size: 0.875rem;
    margin-top: 0.5rem;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.3s ease;
}

    .promo-status.success,
    .promo-status.error {
        opacity: 1;
        transform: translateY(0);
    }

    .promo-status .status-message {
        align-items: center;
        border-radius: var(--radius-sm);
        display: flex;
        gap: 0.5rem;
        padding: 0.5rem;
    }

    .promo-status.success .status-message {
        background-color: #d1e7dd;
        color: #0f5132;
    }

    .promo-status.error .status-message {
        background-color: #f8d7da;
        color: #842029;
    }

    .promo-status i {
        font-size: 1rem;
    }

/* Checkout Accordion Styles */
.checkout-accordion {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.accordion-section {
    border: 1px solid #e9ecef;
    border-radius: var(--radius-lg);
    margin-bottom: 0.5rem;
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

    .accordion-section.completed {
        border-color: #198754;
    }

    .accordion-section.active {
        border-color: var(--primary-color, #0056b3);
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        margin-bottom: 1rem;
    }

.section-header {
    align-items: center;
    background: #f8f9fa;
    border-radius: var(--radius-lg);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    padding: 1rem;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-section.completed .section-header {
    background: #fafffb;
}

.accordion-section.active .section-header {
    background: #fff;
    opacity: 1;
    transform: translateY(0);
}

.header-content {
    align-items: center;
    display: flex;
    flex: 1;
    gap: 1rem;
    min-width: 0; /* Allow flex items to shrink */
}

.step-number {
    align-items: center;
    background: #dee2e6;
    border-radius: 100%;
    color: #495057;
    display: flex;
    font-weight: bold;
    height: 28px;
    justify-content: center;
    min-width: 28px;
    width: 28px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-section.completed .step-number {
    background: #198754;
    color: white;
}

.accordion-section.active .step-number {
    background: var(--primary-color, #0056b3);
    color: white;
}

.step-title {
    color: #495057;
    font-weight: 600;
    flex-shrink: 0;
    min-width: 120px;
    max-width: 120px;
    word-wrap: break-word;
    line-height: 1.2;
}

.step-summary {
    color: #2d3748;
    font-size: 0.875rem;
    margin-left: 1rem;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    flex: 1;
    min-width: 0;
    word-wrap: break-word;
    line-height: 1.3;
}

.section-content {
    background: white;
    border-top: 1px solid #e0e0e0;
    padding: 1rem;
    border-radius: 0px 0px 8px 8px;
    transition: all 0.3s ease;
    animation: slideDown 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: top;
}

/* Animation for content */

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Add/modify these styles */

.guest-dropdown {
    background: white;
    border: 1px solid #ddd;
    border-radius: var(--radius-sm);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    box-sizing: content-box;
    left: 0;
    padding: 15px;
    position: absolute;
    right: 0;
    top: 100%;
    width: fit-content;
    min-width: 212px;
    z-index: 1000;
}

/* Guest selector styles */
.guest-selector {
    align-items: center;
    border: 1px solid #f5f5f5;
    background-color: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0px 0px 0px 1px rgba(10, 13, 18, 0.18) inset, 0px -2px 0px 0px rgba(10, 13, 18, 0.05) inset, 0px 1px 2px 0px rgba(10, 13, 18, 0.05);
    display: flex;
    justify-content: space-around;
    margin: 15px 0px;
}

.guest-input-wrapper {
    align-items: center;
    border-left: 1px solid #d5d7da;
    border-right: 1px solid #d5d7da;
    display: flex;
    font-size: 14px;
    font-weight: 600;
    gap: 8px;
    justify-content: center;
    padding: 8px 16px;
}

.guest-input-wrapper .icon-wrapper {
    width: 34px;
    text-align: end;
}

.guest-input {
    align-items: center;
    background: #fafafa;
    border: 1px solid #e9eaeb;
    border-radius: 9999px;
    display: flex;
    padding: 2px 6px;
    text-align: center;
    width: 34px;
}

.guest-btn {
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: center;
    padding: 5px;
}

    .guest-btn.decrease {
        align-items: center;
        border-radius: var(--radius-lg);
        display: flex;
        gap: 8px;
        justify-content: center;
        min-height: 40px;
        padding: 8px 12px;
    }

    .guest-btn.increase {
        align-items: center;
        border-radius: var(--radius-lg);
        display: flex;
        gap: 8px;
        justify-content: center;
        min-height: 40px;
        padding: 8px 12px;
    }

    .guest-btn:disabled {
        cursor: not-allowed;
        opacity: 0.5;
    }

/* Loading States */
.loading-overlay {
    align-items: center;
    backdrop-filter: blur(5px);
    background: rgba(255, 255, 255, 0.9);
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    position: fixed; /* Position relative to viewport for proper overlay */
    right: 0;
    top: 0;
    transition: opacity 0.3s ease;
    z-index: 9999; /* High z-index to appear above all content */
}

.spinner-container {
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
}

    .spinner-container p {
        background: white;
        border-radius: var(--radius-lg);
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        left: 50%;
        padding: 1rem 2rem;
        position: absolute;
        top: 2rem;
        transform: translateX(-50%);
        white-space: nowrap;
    }

.spinner {
    animation: spin 1s linear infinite;
    border: 3px solid #f3f3f3;
    border-radius: 50%;
    border-top: 3px solid var(--primary-color, #0056b3);
    height: 40px;
    margin: 0 auto;
    width: 40px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Smooth transitions for accordion sections */

@keyframes slideDown {
    from {
        opacity: 0;
        transform: scaleY(0.95);
    }
    to {
        opacity: 1;
        transform: scaleY(1);
    }
}

/* Smooth transitions for section headers */

/* Active section animations */

.accordion-section:not(.active) .section-header {
    opacity: 0.7;
    transform: translateY(0);
}

/* Step number transitions */

/* Summary content transitions */

.completed .step-summary {
    opacity: 1;
    transform: translateY(0);
}

[v-cloak] ~ [v-cloak-hide] {
    display: block;
}

.accordion-section.locked {
    opacity: 0.7;
    pointer-events: none;
}

    .accordion-section.locked .section-header {
        cursor: not-allowed;
    }

/* Optional: Add a subtle shake animation for invalid fields */
@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    75% {
        transform: translateX(5px);
    }
}

.checkout-input-group input.is-invalid:focus {
    animation: shake 0.2s ease-in-out;
}

.payment-summary {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

    .payment-summary .masked-card {
        font-family: monospace;
    }

    .payment-summary .fa-brands {
        font-size: 1.2em;
        margin-left: 0.25rem;
    }

.review-details .payment-info {
    margin-bottom: 1rem;
}

.review-details .card-details {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

.review-details .masked-card {
    font-family: monospace;
    margin: 0 0.5rem;
}

.review-details .fa-brands {
    font-size: 1.2em;
}

/* Review Section Styles */
.review-section {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
    margin-bottom: 1.5rem;
    overflow: hidden;
    border: 1px solid #e9ecef;
}

.review-title {
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
    border-bottom: 2px solid #e9ecef;
    font-size: 1.125rem;
    font-weight: 600;
    margin: 0;
    padding: 1.25rem 1.5rem;
    color: #1f2937;
}

.review-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0.5rem 0;
}

.review-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #f3f4f6;
}

    .review-item:last-child {
        border-bottom: none;
    }

.review-label {
    font-weight: 600;
    font-size: 0.8125rem;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.review-value {
    color: #1f2937;
    line-height: 1.5;
    font-size: 0.9375rem;
}

.review-empty {
    justify-content: center;
    text-align: center;
    padding: 3rem 1.5rem;
}

.payment-method {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
}

    .payment-method .masked-card {
        font-size: 1rem;
        font-weight: 500;
    }

.payment-method-item {
    align-items: start;
}

.card-type-icons {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.25rem;
}

.masked-card,
.masked-account,
.masked-routing {
    font-family: monospace;
}

.text-success {
    color: #198754;
}


.property-info {
    flex: 1;
    padding-right: 1rem;
}

    .property-info h3 {
        margin: 0 0 0.5rem 0;
        text-align: left;
    }

.property-header {
    display: flex;
    flex-direction: row-reverse; /* Swap the order */
    gap: 1rem;
}

.stay-details {
    border-top: 1px solid #e9ecef;
    padding-top: 10px;
}

.stay-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
}

.stay-label {
    display: flex;
    flex-direction: row;
    gap: 10px;
}

.change-link {
    color: #3182ce;
    flex-shrink: 0; /* Prevent link from shrinking */
    font-size: 0.85rem;
    margin-left: 1rem;
    text-decoration: none;
}

    .change-link:hover {
        text-decoration: underline;
    }

/* Charge type styling */
.rate-item.total-charges {
    background: #f0fff4;
    border-radius: var(--radius-sm);
    font-weight: 600;
    margin: 0px -10px;
    padding: 15px 10px;
}

.rate-item.light-font {
    color: #4a5568;
}

/* Override text color for total charges */
.rate-item.total-charges .charge-name,
.rate-item.total-charges .charge-amount {
    color: #166534; /* Darker green for better contrast */
    font-size: 16px;
}

/* Input group container styles */
.input-section {
    border: 1px solid #dee2e6;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

    /* Add border bottom to all rows and single input groups */
    .input-section .checkout-input-row,
    .input-section > .checkout-input-group {
        border-bottom: 1px solid #dee2e6;
    }

        /* Remove border bottom from the last row or last single input group */
        .input-section .checkout-input-row:last-child,
        .input-section > .checkout-input-group:last-child {
            border-bottom: none;
        }

    /* Remove default form control borders */
    .input-section .rns-form-control {
        border: none;
    }

    .checkout-payment-input .rns-form-control {
        padding-left: 2rem;
    }

/* Remove gap between inputs in a row */

.checkout-input-row.no-gap .checkout-input-group {
    flex: 1;
}

    /* Add right border between inputs in the same row */
    .checkout-input-row.no-gap
    .checkout-input-group:not(:last-child)
    .rns-form-control {
        border-right: 1px solid #dee2e6;
    }

/* Input validation styling - inset version */
.input-section .rns-form-control.is-invalid {
    border-radius: 0.375rem !important;
    box-shadow: inset 0 0 0 1.5px #dc3545;
    background-color: #fff;
}

    .input-section .rns-form-control.is-invalid:focus {
        box-shadow: inset 0 0 0 2px #dc3545;
    }

/* Ensure validation state is visible */

/* Add styling for billing toggle */
.billing-toggle {
    font-size: 0.9rem;
}

    .billing-toggle a {
        text-decoration: none;
    }

        .billing-toggle a:hover {
            text-decoration: underline;
        }

/* Credit Card Input Styling */
.rns-input-group-text {
    position: absolute;
    background: transparent;
    border-left: none;
    display: flex;
    height: 44px;
    align-items: center;
    gap: 8px;
    padding: 0.5rem 0.75rem;
}

    .rns-input-group-text i {
        font-size: 1.5rem;
        opacity: 0.3;
        transition: opacity 0.3s ease;
    }

        .rns-input-group-text i.active {
            opacity: 1;
        }

    /* Brand-specific colors when active */
    .rns-input-group-text .fa-cc-visa.active {
        color: #1a1f71; /* Visa blue */
    }

    .rns-input-group-text .fa-cc-mastercard.active {
        color: #eb001b; /* Mastercard red */
    }

    .rns-input-group-text .fa-cc-amex.active {
        color: #006fcf; /* American Express blue */
    }

    .rns-input-group-text .fa-cc-discover.active {
        color: #ff6000; /* Discover orange */
    }

.rns-input-group .rns-form-control {
    min-width: 0;
    position: relative;
    height: 42px;
    cursor: pointer;
}

.rns-input-group .rns-input-group-text {
    border-bottom-right-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
}



/* Basic Modal Styling */
.property-details-modal {
    align-items: center;
    background: rgba(0, 0, 0, 0.5);
    bottom: 0;
    display: flex; /* Changed from display: none */
    justify-content: center;
    left: 0;
    overflow-y: auto;
    position: fixed;
    right: 0;
    top: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 9999;
}

    /* Show modal when visible */
    .property-details-modal[v-show="true"] {
        opacity: 1;
        visibility: visible;
    }



.property-details-modal .modal-body {
    max-height: calc(90vh - 4rem);
    overflow-y: auto;
    padding: 1rem;
}

/* Property Images in Modal */
.property-details-modal .row .col-lg-8 {
    padding-right: 8px;
}

.property-details-modal .row .col-lg-4 {
    padding-left: 8px;
}

.property-details-modal .main-image {
    height: 400px;
    margin-bottom: 0 !important;
}

    .property-details-modal .main-image img {
        border-radius: var(--radius-lg);
        height: 100%;
        object-fit: cover;
        width: 100%;
    }

.property-details-modal .col-lg-4 .row {
    height: 400px !important;
    margin: -4px;
}

.property-details-modal .col-lg-4 .col-6 {
    height: 50%;
    padding: 4px;
    width: 100% !important;
}

.property-details-modal .thumbnail {
    border-radius: var(--radius-lg);
    height: 100%;
    margin: 0;
    object-fit: cover;
    width: 100%;
}

/* Iconify Icon Styles */
iconify-icon {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    vertical-align: -0.125em;
}

.tile-icon iconify-icon {
    height: 32px;
    width: 32px;
}

.guest-actions .rns-btn iconify-icon,
.nav-link iconify-icon {
    height: 16px;
    margin-right: auto;
    vertical-align: bottom;
    width: 16px;
}

.rns-input-group-addon iconify-icon {
    height: 20px;
    position: relative;
    width: 20px;
    z-index: 9;
}

.card-text iconify-icon {
    height: 20px;
    margin-right: 5px;
    vertical-align: text-bottom;
    width: 20px;
}

.map-control iconify-icon {
    height: 24px;
    width: 24px;
}

.heart-icon iconify-icon {
    height: 24px;
    width: 24px;
}

#favorites-link iconify-icon {
    color: var(--primary-color, #0056b3);
    height: 32px;
    width: 32px;
}

.footer-links iconify-icon,
.contact-list iconify-icon {
    height: 20px;
    margin-right: 0.5rem;
    vertical-align: middle;
    width: 20px;
}

.motto iconify-icon {
    color: var(--primary-color, #0056b3);
    height: 24px;
    vertical-align: middle;
    width: 24px;
}

.rns-propertyJump .rns-input-group-addon {
    left: 12px;
    position: absolute;
    top: 25%;
    z-index: 10;
    pointer-events: none;
    color: #666;
}

.rates-table {
    max-height: 300px;
    overflow-y: auto;
    border-radius: var(--radius-lg);
    overflow-x: auto;
}


.property-specs {
    display: flex;
    gap: 2rem;
    margin-top: 1rem;
}

    .property-specs span {
        align-items: center;
        display: flex;
        gap: 0.5rem;
    }

.guest-details,
.payment-details {
    display: grid;
    gap: 1.5rem;
}

/* Fix modal flash on load */

/* Ensure Fancybox appears above modal */
.fancybox__container {
    z-index: 10000 !important; /* Higher than modal z-index */
}

/* Update modal z-index to be below Fancybox */

/* Grid layout for modal images */
.image-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.image-grid-item {
    border-radius: var(--radius-lg);
    overflow: hidden;
}

    .image-grid-item img {
        height: 100%;
        object-fit: cover;
        transition: transform 0.3s ease;
        width: 100%;
    }

    .image-grid-item:hover img {
        transform: scale(1.05);
    }

/* Base container styles */

/* Flex container for search bar */

.guest-dropdown-wrapper {
    position: relative; /* Important for dropdown positioning */
}

.search-container .guest-dropdown-wrapper {
    flex-grow: 1;
}

.more-btn-wrapper {
    flex: 0 1 auto;
    width: auto;
}

.search-btn-wrapper {
    flex: 0 0 auto; /* Don't grow or shrink */
    width: auto;
}

/* Ensure dropdowns don't get cut off */
.dropdown-menu {
    max-height: 80vh;
    -webkit-overflow-scrolling: touch;
    overflow-y: auto;
}

.search-title {
    color: #fff;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 600;
    margin-bottom: 2rem;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.search-box {
    background: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    margin: 0 auto; /* Center the box */
    padding: 1rem 0.5rem;
    width: fit-content; /* Only take up needed space */
}

/* Inline search form styles */
.search-form-inline {
    align-items: center;
    display: flex;
}

    .search-form-inline > * {
        margin: 0 !important;
        min-width: 0 !important;
    }

.essentials-dropdown-wrapper {
    display: inline-block;
    position: relative;
}

.essentials-container {
    position: relative;
    margin: 0 auto;
    max-width: 1200px;
    padding: 2rem;
    width: 100%;
}

/* Target the visible input element */
.rns-input-group input[type="text"].rns-form-control::placeholder {
    color: var(--gray700); /* Replace with your desired color */
    opacity: 1; /* Ensure full opacity */
}

/* Add vendor prefixes for broader compatibility */
.rns-input-group
input[type="text"].rns-form-control::-webkit-input-placeholder {
    color: var(--gray700);
    opacity: 1;
}

.rns-input-group input[type="text"].rns-form-control::-moz-placeholder {
    color: var(--gray700);
    opacity: 1;
}

.rns-input-group input[type="text"].rns-form-control:-ms-input-placeholder {
    color: var(--gray700);
    opacity: 1;
}

.rns-input-group input[type="text"].rns-form-control:-moz-placeholder {
    color: var(--gray700);
    opacity: 1;
}

/* Body class for modal open state */
body.modal-open {
    overflow: hidden;
    padding-right: 17px; /* Prevents layout shift when scrollbar disappears */
    position: fixed;
    width: 100%;
}

/* Inquiry Form Styles */
.inquiry-container {
    margin: 0 auto;
    max-width: 1200px;
    padding: 2rem 1rem;
}

.inquiry-subtitle {
    color: var(--text-muted);
    margin-bottom: 2rem;
}


.rns-form-padding {
    margin-bottom: 1rem;
}

.rns-form-control::placeholder {
    color: var(--text-muted);
}

.rns-form-actions {
    margin-top: 2rem;
    text-align: right;
}

/* Modal styles */
/* Modal Styles */
.rns-modal-overlay {
    align-items: center;
    background-color: rgba(0, 0, 0, 0.5);
    display: none;
    height: 100%;
    justify-content: center;
    left: 0;
    opacity: 0;
    position: fixed;
    top: 0;
    transition: opacity 0.15s linear;
    width: 100%;
    z-index: 1050;
}

    .rns-modal-overlay.rns-modal-active {
        display: flex;
        opacity: 1;
    }

.rns-modal-content {
    background-color: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
    margin: 1rem;
    max-height: 90vh;
    max-width: 500px;
    position: relative;
    transform: scale(0.95);
    transition: transform 0.15s ease-out;
    width: 90%;
}

.rns-modal-overlay.rns-modal-active .rns-modal-content {
    transform: scale(1);
}

.rns-modal-lg {
    max-width: 800px;
}

.rns-modal-xl {
    max-width: 1200px;
    width: 95%;
}

.rns-modal-scrollable .rns-modal-body {
    overflow-y: auto;
}

.rns-modal-header {
    align-items: center;
    border-bottom: 1px solid #dee2e6;
    display: flex;
    justify-content: space-between;
    padding: 1rem 1.5rem;
}

.rns-modal-title {
    align-items: center;
    display: flex;
    font-size: 1.25rem;
    gap: 0.5rem;
    margin: 0;
}

.rns-modal-body {
    flex: 1 1 auto;
    padding: 1.5rem;
    position: relative;
}

.rns-modal-footer {
    align-items: center;
    border-top: 1px solid #dee2e6;
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    padding: 1rem 1.5rem;
}

/* Top Bar Styles */
.top-bar-links {
    align-items: center;
    display: flex;
    gap: 20px;
    position: absolute;
    right: 20px;
    top: 8px;
    z-index: 99;
}

.contact-number {
    align-items: center;
    color: #333;
    display: flex;
    font-size: 16px;
    font-weight: 500;
    gap: 6px;
    text-decoration: none;
    transition: color 0.2s ease;
}

    .contact-number:hover {
        color: var(--primary-color, #0056b3);
    }

#favorites-link {
    text-decoration: none;
}

/* .heart-wrapper {
    align-items: center;
    display: flex;
    position: relative;
} 

#favorites-icon {
    color: var(--primary-color, #0056b3);
    transition: transform 0.2s ease;
}

#favorites-link:hover #favorites-icon {
    transform: scale(1.1);
}

#favorites-count {
    align-items: center;
    background-color: white;
    border: 1px solid var(--primary-color, #0056b3);
    border-radius: 50%;
    color: var(--primary-color, #0056b3);
    display: flex;
    font-size: 12px;
    font-weight: 600;
    height: 15px;
    justify-content: center;
    margin-left: -12px;
    margin-top: 12px;
    min-width: 15px;
    transition: all 0.2s ease;
}

#favorites-link:hover #favorites-count {
    transform: translateY(2px);
}*/

/* Hide arrows and their container completely by default */
.prev,
.next {
    opacity: 0; /* Hide arrows */
    transition: all 0.3s ease;
}

/* Show arrows only when hovering over the property tile */
.property-tile:hover .prev,
.property-tile:hover .next {
    opacity: 1; /* Show arrows */
    transition: all 0.3s ease;
}

/* wwwroot/css/rns-layout.css */
.property-tile {
    background: var(--Base-White, #fff);
    border-radius: var(--radius-xlg);
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 0px 1px 2px 0px rgba(16, 24, 40, 0.06);
    display: flex;
    flex-direction: column;
    height: 100%;
    position: relative;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    will-change: transform, box-shadow;
}

@keyframes tileHoverBounce {
    0% {
        box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 0px 1px 2px 0px rgba(16, 24, 40, 0.06), 0 0 0 2px transparent;
        transform: translateY(0);
    }

    10% {
        box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.08), 0 0 0 1px var(--primary-color, #0056b3);
        transform: translateY(1px);
    }

    40% {
        box-shadow: 0px 3px 4px rgba(16, 24, 40, 0.12), 0 0 0 1px var(--primary-color, #0056b3);
        transform: translateY(-1px);
    }

    70% {
        box-shadow: 0px 5px 8px rgba(16, 24, 40, 0.18), 0 0 0 2px var(--primary-color, #0056b3);
        transform: translateY(-3px);
    }

    100% {
        box-shadow: 0px 6px 12px rgba(16, 24, 40, 0.26), 0 0 0 2px var(--primary-color, #0056b3);
        transform: translateY(-4px);
    }
}

@keyframes tileHoverOut {
    0% {
        box-shadow: 0px 4px 8px rgba(16, 24, 40, 0.16);
        transform: translateY(-3px);
    }

    50% {
        box-shadow: 0px 2px 4px rgba(16, 24, 40, 0.12);
        transform: translateY(-1px);
    }

    100% {
        box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 0px 1px 2px 0px rgba(16, 24, 40, 0.06);
        transform: translateY(0px);
    }  
}


.property-tile {
    box-sizing: border-box;
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 
                0px 1px 2px 0px rgba(16, 24, 40, 0.06);
}

.property-tile:hover {
    animation: tileHoverBounce 0.4s ease-in-out forwards;
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 
                0px 1px 2px 0px rgba(16, 24, 40, 0.06),
                0 0 0 2px var(--primary-color, #0056b3);
}

/*need hover out not just in animations*/
.property-tile:not(:hover) {
    animation: tileHoverOut 0.4s ease-in-out forwards;
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 
                0px 1px 2px 0px rgba(16, 24, 40, 0.06),
                0 0 0 2px transparent;
}


.property-tile .content {
    flex: 1;
}

.search-bar-toggle {
    display: none;
}

/* Search bar bottom section layout */

.search-bar-bottom .col-md-6 {
    align-items: center;
    display: flex;
    width: auto;
}

    .search-bar-bottom .col-md-6:first-child {
        flex: 1;
    }

    .search-bar-bottom .col-md-6:last-child {
        gap: 20px;
        justify-content: flex-end;
        padding-right: 10px;
    }

/* Hide elements in collapsed state */

/* Button styles */
.search-bar-bottom .show-filters-btn,
.search-bar-bottom .clear-filters-btn {
    align-items: center;
    display: flex;
    font-size: 14px;
    justify-content: center;
    padding: 5px 12px;
    white-space: nowrap;
}

/* Sort dropdown styles */
.search-bar-bottom .sort-dropdown-btn {
    min-height: 30px;
    height: 30px;
    align-items: center;
    border-radius: var(--radius-lg);
    cursor: pointer;
    display: flex;
    gap: 8px;
    white-space: nowrap;
    z-index: 1060;
}

/* Radio Group Validation Styles */

.radio-option-group.is-invalid {
    background-color: rgb(255 236 236);
    border: 1px solid #dc3545;
    border-radius: var(--radius-sm);
    padding: 15px;
}


.error-message {
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

.expanded-header {
    text-align: center;
}

/* Mobile Header - Hidden by default on desktop */
.mobile-header {
    display: none;
}

.mobile-header-content {
    display: none;
}

.handle-bar {
    display: none;
}

/* Body class for when booking form is expanded */
body.booking-form-expanded {
    height: 100%;
    overflow: hidden;
    position: fixed;
    width: 100%;
}

/* Ensure the backdrop covers the entire viewport */

.mobile-backdrop.active {
    opacity: 1;
    visibility: visible;
}

.prop-slider-image {
    cursor: pointer;
    transition: opacity 0.3s ease;
    box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.10), 0px 1px 2px 0px rgba(16, 24, 40, 0.06);
}

/* Search Page Styles */

.search-content {
    display: flex;
    gap: 5rem;
    margin: 1.5rem 0px;
}

/* Left Column */
.search-left-column {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 2rem;
}

.search-top-row {
    display: flex;
    gap: 1rem;
}

.search-dropdowns {
    display: grid;
    gap: 1rem;
}

/* Right Column */
.search-right-column {
    flex: 1;
    min-width: 300px;
}

.slider-group {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Search Criteria Section */
.search-criteria-section {
    border-top: 1px solid var(--border-color);
    padding-top: 2rem;
    position: relative;
}

    .search-criteria-section h2 {
        color: var(--heading-color);
        margin-bottom: 1.5rem;
    }

/* Search Button Container */
.search-button-container {
    margin-top: 2rem;
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    align-items: center;
}

    .search-button-container .rns-btn {
        min-width: 150px;
        padding: 0.75rem 1.5rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
    }

/* Slider Customization */
.search-container .slider-wrapper {
    padding: 10px 0;
}

/* Checkbox Customization */
.search-container .checkbox-container {
    align-items: center;
    border-radius: var(--radius-lg);
    display: flex;
    font-size: 14px;
    max-width: 100%;
    padding: 0.5rem;
    padding-left: 10px;
    transition: background-color 0.2s ease;
}

    .search-container .checkbox-container:hover {
        background-color: var(--hover-bg);
    }

.search-container .rns-form-check-input {
    margin-right: 0.5rem;
}

.search-container .date-range-wrapper {
    padding: 0;
}

.results-tile-content {
    color: var(--gray900);
    display: flex;
    flex-direction: column;
    flex: 1;
    width: 100%;
}

.results-tile-title {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 0;
    padding: 15px 15px 0px 15px;
    flex: 1;
    display: flex;
    align-items: flex-start;
}

.property-tile a {
    text-decoration: none !important;
    display: flex !important;
    flex-direction: column;
    height: 100%;
}

.results-tile-details {
    color: var(--gray600);
    display: flex;
    flex-direction: row;
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 400;
    justify-content: space-between;
    line-height: 24px;
    margin-bottom: 0;
    margin-top: 8px;
    max-width: 300px;
    padding: 0px 15px;
    width: 100%;
    flex-shrink: 0;
}

.results-tile-details-item {
    align-items: center;
    display: flex;
    gap: 5px;
    justify-content: space-between;
}

/* Update tile bottom row to stretch fully */
.results-tile-footer {
    align-items: center;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    display: flex;
    justify-content: space-between;
    margin: 8px 10px 0 10px;
    padding: 10px 5px;
    flex-shrink: 0;
}

/* Adjust price display spacing */
.results-price-display {
    margin-top: 0;
    padding-top: 0;
}

.results-tile-arrow {
    align-items: center;
    color: var(--primary-color, #0056b3);
    display: flex;
    justify-content: flex-end;
    margin-left: 15px;
}

.results-nightly-rate {
    color: var(--primary-color, #0056b3);
    font-size: 1.1rem;
    font-weight: 600;
}

.results-price-disclaimer {
    color: var(--gray600);
    cursor: pointer;
    font-size: 12px;
    position: relative;
    text-decoration: underline;
    transition: color 0.2s ease;
}

    .results-price-disclaimer:hover {
        color: var(--primary-color, #0056b3);
    }

.results-rates-popup {
    background: white;
    border-radius: var(--radius-lg);
    bottom: calc(100% + 10px);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    left: 0;
    position: absolute;
    width: 300px;
    z-index: 1000;
}

.results-rates-popup-content {
    padding: 15px;
}

.results-rates-popup-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

    .results-rates-popup-header h5 {
        font-size: 1rem;
        font-weight: 600;
        margin: 0;
    }

.results-rates-loading-state {
    padding: 10px;
    text-align: center;
}

.results-rates-error-state {
    color: var(--danger);
    padding: 10px;
}

.results-rates-breakdown {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.results-rates-rate-item {
    align-items: center;
    display: flex;
    font-size: 0.9rem;
    justify-content: space-between;
    padding: 3px 0;
}

    .results-rates-rate-item.total-charges {
        border-top: 1px solid var(--border-color);
        font-weight: 600;
        background: #f0fff4;
        border-radius: var(--radius-sm);
        margin: 5px -10px 0px -10px;
        padding: 15px 10px;
    }

    .results-rates-rate-item.initial-payment {
        font-weight: 500;
    }

/* Add a small arrow at the bottom of the popup */
.results-rates-popup::after {
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid white;
    bottom: -8px;
    content: "";
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.1));
    left: 20px;
    position: absolute;
}

.results-rates-rate-item.light-font {
    color: #4a5568;
}

/* Loading states for FP price filtering hydration */
.results-loading-indicator,
.toggle-loading {
    align-items: center;
    display: flex;
    gap: 8px;
}

.inline-spinner {
    animation: spin 1s linear infinite;
    border: 2px solid #f3f3f3;
    border-radius: 50%;
    border-top: 2px solid var(--primary-color, #0056b3);
    height: 16px;
    width: 16px;
}

.pricing-status {
    color: var(--gray600);
    font-size: 0.85em;
    font-weight: normal;
    margin-left: 8px;
}

/* Pricing skeleton for individual tiles */
.pricing-skeleton {
    position: relative;
}

.skeleton-line {
    animation: shimmer 1.5s ease-in-out infinite;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    border-radius: 4px;
    height: 20px;
    width: 120px;
}

.skeleton-line-small {
    animation: shimmer 1.5s ease-in-out infinite;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    border-radius: 4px;
    height: 14px;
    width: 80px;
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

/* Override text color for total charges */
.results-rates-rate-item.total-charges .charge-name,
.results-rates-rate-item.total-charges .charge-amount {
    color: #166534; /* Darker green for better contrast */
    font-size: 16px;
}

/* Hide the increment arrows in WebKit browsers */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Hide the increment arrows in Firefox */
input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.noUi-base .noUi-handle:focus,
.noUi-base .noUi-handle:focus-visible {
    border-color: var(--primary-color, #0056b3);
    box-shadow: 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset;
    outline: none !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.rns-input-group .rns-form-control:focus,
.rns-input-group .rns-form-control:focus-visible {
    border-color: var(--primary-color, #0056b3) !important;
    box-shadow: 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset;
    outline: none !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

#rns-style textarea {
    align-items: center;
    align-self: stretch;
    background-color: white;
    border-radius: var(--radius-lg);
    display: flex;
    font-size: 16px;
    gap: 8px;
    margin-bottom: 0;
    min-height: unset;
    padding: 12px;
    position: relative;
    transition: all 0.3s ease;
}

.checkout-textarea {
    resize: none;
    width: 100%;
}

.search-criteria-section .criteria-grid {
    max-height: 175px; /* Initial collapsed height */
}

.criteria-grid.expanded {
    max-height: 2000px; /* Remove height restriction when expanded */
}

.criteria-overlay {
    align-items: flex-end;
    background: linear-gradient( to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 1) 100% );
    bottom: 0;
    display: flex;
    height: 100px;
    justify-content: center;
    left: 0;
    padding-bottom: 1rem;
    position: absolute;
    right: 0;
    transition: opacity 0.3s ease;
}

    .criteria-overlay.hidden {
        opacity: 0;
        pointer-events: none;
    }

.expand-button {
    align-items: center;
    background: var(--primary-color, #007bff);
    border: none;
    border-radius: 25px;
    color: white;
    cursor: pointer;
    display: flex;
    font-weight: 500;
    gap: 0.5rem;
    padding: 0.5rem 1.5rem;
    transition: background-color 0.2s ease;
}


    .expand-button iconify-icon {
        transition: transform 0.3s ease;
    }

    .expand-button.expanded iconify-icon {
        transform: rotate(180deg);
    }

/* ----------------------------------------------- SLIM SELECT CUSTOM STYLES ----------------------------------------------- */

.ss-main {
    align-items: center;
    align-self: stretch;
    background-color: white;
    border: 1px solid var(--ss-border-color);
    border-radius: var(--radius-lg);
    cursor: pointer;
    display: flex;
    font-size: 16px;
    gap: 8px;
    margin-bottom: 0;
    min-height: unset;
    padding: 12px;
    position: relative;
    transition: all 0.3s ease;
}

    /* Selected Value Container */
    .ss-main .ss-values {
        align-items: center;
        display: flex;
        flex: 1;
    }

    .ss-main .ss-single {
        color: var(--ss-font-color);
        padding: 0;
    }

    /* Placeholder */
    .ss-main .ss-values .ss-placeholder {
        color: var(--ss-font-placeholder-color);
        font-family: Inter, sans-serif;
        font-size: 16px;
        font-weight: 400;
        line-height: 22px;
        opacity: 1;
        overflow: hidden;
        text-overflow: ellipsis;
    }

/* Dropdown Container */
.ss-content {
    background: #fff;
    border: 1px solid #e9eaeb;
    border-radius: var(--radius-lg);
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    box-shadow: 0px 12px 16px -4px rgba(10, 13, 18, 0.08), 0px 4px 6px -2px rgba(10, 13, 18, 0.03), 0px 2px 2px -1px rgba(10, 13, 18, 0.04);
    left: 0;
    margin: 4px 0;
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 9999;
}

    .ss-content.ss-open-below {
        margin-top: 8px !important;
    }

.ss-main.ss-open-below {
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}

.ss-main.ss-open-above {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.ss-main:focus {
    border-color: var(--primary-color, #0056b3) !important;
    box-shadow: 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset, 0 0 2px var(--primary-color, #0056b3) inset;
    outline: none !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

/* Dropdown Options */
.ss-content .ss-list .ss-option {
    color: var(--ss-font-color);
    cursor: pointer;
    font-family: var(--Font-family-font-family-body, Inter);
    font-size: var(--Font-size-text-md, 16px);
    font-weight: 600;
    line-height: var(--Line-height-text-md, 24px);
    padding: 8px 12px;
}

/* Hover and Selected States */
.ss-main .ss-content .ss-list .ss-option:hover {
    background-color: var(--ss-highlight-color);
    border-radius: var(--radius-md);
}

.ss-content .ss-list .ss-option.ss-highlighted,
.ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected {
    background-color: var(--ss-highlight-color);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3e%3cpath d='M16.6666 5L7.49998 14.1667L3.33331 10' stroke='currentColor' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-position: right 12px center;
    background-repeat: no-repeat;
    border-radius: var(--radius-md);
    color: var(--primary-color, #0056b3);
    padding-right: 40px;
}

    .ss-content .ss-list .ss-option.ss-highlighted,
    .ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected svg {
        fill: var(--primary-color, #0056b3);
    }

/* Custom Arrow */
.ss-main .ss-arrow {
    display: none;
}

.ss-main::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3e%3cpath d='M5 7.5L10 12.5L15 7.5' stroke='currentColor' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-position: center;
    background-repeat: no-repeat;
    content: "";
    height: 20px;
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    width: 20px;
}

/* Arrow rotation for open states */
.ss-main.ss-open-above::after,
.ss-main.ss-open-below::after {
    transform: translateY(-50%) rotate(180deg);
}

/* Disabled State */
.ss-main.ss-disabled {
    background-color: var(--ss-disabled-color);
    cursor: not-allowed;
}

/* Search Input */
.ss-main .ss-content .ss-search input {
    border: 1px solid var(--ss-border-color);
    border-radius: var(--radius-lg);
    color: var(--ss-font-color);
    font-size: 16px;
    padding: 8px 12px;
    width: 100%;
}

    .ss-main .ss-content .ss-search input::placeholder {
        color: var(--ss-font-placeholder-color);
    }





.no-image {
    align-items: center;
    background-color: #f0f0f0;
    border-radius: var(--radius-sm);
    color: #666;
    display: flex;
    height: 120px;
    justify-content: center;
}

.rates-table table {
    background-color: #fff;
    border-collapse: collapse;
    font-size: 14px;
    width: 100%;
}

.rates-table thead {
    background-color: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
}

.rates-table th {
    color: #495057;
    font-weight: 600;
    padding: 12px 15px;
    text-align: left;
    white-space: nowrap;
}

.rates-table td {
    border-bottom: 1px solid #dee2e6;
    color: #212529;
    padding: 12px 15px;
}

.rates-table tbody tr:hover {
    background-color: #f8f9fa;
    transition: background-color 0.2s ease;
}

.rates-table tbody tr:last-child td {
    border-bottom: none;
}



/* Container for the toggle switch */
.fav-toggle-wrapper .rns-form-check.rns-form-switch {
    align-items: center; /* Vertically centers label and switch */
    cursor: pointer;
    display: inline-flex; /* Aligns label and input nicely */
    min-height: 24px; /* Ensure minimum height */
    padding-left: 0; /* Override default Bootstrap padding if needed */
    position: relative; /* Ensures proper positioning context */
    -webkit-tap-highlight-color: transparent; /* Remove tap highlight on mobile */
}

/* The actual checkbox input - hidden but functional */
.fav-toggle-wrapper .rns-form-check-input {
    appearance: none; /* Remove default browser styling */
    -webkit-appearance: none; /* Remove default browser styling for Safari */
    background-color: #ddd; /* Default background color (track) */
    border: none; /* Remove default border */
    border-radius: 24px; /* Fully rounded track */
    box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.6); /* Subtle shadow for depth */
    box-sizing: content-box; /* Ensure padding/border don't affect width/height */
    cursor: pointer;
    height: 20px;
    margin: 0; /* Reset margin */
    position: relative; /* Relative position for the pseudo-element */
    transition: background-color 0.3s ease, border-color 0.3s ease; /* Smooth transitions */
    width: 44px;
}

    /* The sliding knob */
    .fav-toggle-wrapper .rns-form-check-input::before {
        background-color: white; /* Knob color */
        border-radius: 50%; /* Make the knob circular */
        bottom: -1px; /* Position from bottom */
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); /* Subtle shadow for depth */
        content: "";
        height: 24px; /* Knob height */
        left: -2px; /* Initial position from left */
        position: absolute;
        transition: transform 0.3s ease, background-color 0.3s ease; /* Smooth slide transition */
        width: 24px; /* Knob width */
    }

    /* Checked state: Change track background and move the knob */
    .fav-toggle-wrapper .rns-form-check-input:checked {
        background-color: var( --primary-color ); /* Use primary color for active track */
        border-color: var( --primary-color ); /* Ensure border matches if one were added */
    }

        .fav-toggle-wrapper .rns-form-check-input:checked::before {
            bottom: -1px;
            left: 2px;
            transform: translateX( 20px ); /* Move knob to the right (44px width - 20px knob - 2*2px padding) */
        }

    /* Hover state: Subtle feedback */
    .fav-toggle-wrapper .rns-form-check-input:not(:disabled):not(:checked):hover {
        background-color: #ddd; /* Slightly darker gray on hover when off */
    }

/* Label styling */
.fav-toggle-wrapper .rns-form-check-label {
    color: #495057; /* Default label color */
    cursor: pointer;
    font-size: 14px; /* Consistent font size */
    line-height: 24px; /* Align text vertically with the switch */
    margin-left: 8px; /* Space between switch and label */
}

.desktop-guest-selector {
    display: block;
}

.mobile-guest-selector {
    display: none;
}

.essentials-filters {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Base styles for essentials filter items */
.filter-item {
    margin-bottom: 1rem;
    /* Add other base styles if needed */
}

/* Styles for the container of select dropdowns */
.select-filters {
    display: grid; /* Use Grid */
    grid-template-columns: repeat(2, 1fr); /* 2 equal columns */
    gap: 1rem 3rem;
    width: 100%; /* Ensure it takes full width of its container */
}

/* Ensure individual filter items behave correctly within the grid */
.select-filters .filter-item {
    width: auto; /* Allow grid to control width */
    margin-bottom: 0; /* Remove bottom margin if gap handles spacing */
}

/* Ensure labels and selects within filter items behave well */
.select-filters .filter-item label,
.select-filters .filter-item select {
    display: block; /* Make label and select block-level */
    width: 100%; /* Make them fill their grid cell */
}



.see-all-photos-btn {
    align-items: center;
    backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--radius-xlg);
    bottom: 16px;
    color: var(--gray600);
    cursor: pointer;
    display: flex;
    font-size: 14px;
    font-weight: 600;
    gap: 8px;
    padding: 8px 12px;
    position: absolute;
    right: 16px;
    text-decoration: none;
    transition: all 0.2s ease;
    z-index: 2;
}

    .see-all-photos-btn:hover {
        background: rgba(255, 255, 255, 0.65);
        color: var(--gray700);
        text-decoration: none;
    }

    .see-all-photos-btn iconify-icon {
        height: 20px;
        width: 20px;
    }

.prop-slider-image.loading {
    opacity: 0.6;
    animation: shimmer 1.5s infinite;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
}

/* Optional loading animation */
@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

@media print {
    body {
        background: white;
    }
}


@media (max-width: 576px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }
    .card-type-icons {
        height: 24px;
        max-width: calc(28px * var(--cc-type-count, 4));
    }

        .card-type-icons .cc-logo {
            font-size: 1.25rem;
            right: calc(28px * (var(--cc-type-count, 4) - var(--cc-index, 1)));
            width: 28px;
        }

    /* Card icons in payment method review context on mobile */
    .payment-method .card-type-icons {
        height: 28px;
        max-width: calc(28px * var(--cc-type-count, 4));
        margin-left: 0.25rem;
    }

        .payment-method .card-type-icons .cc-logo {
            font-size: 1.1rem;
            width: 28px;
        }
}


@media (min-width: 769px) and (max-width: 1300px) {
    .rns-property-container {
        width: 90%;
    }
}

@media (min-width: 1301px) {
    .rns-property-container {
        width: 80%;
    }
}

.property-summary {
    padding-top: 1rem;
}

.checkout-property-header {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    flex-direction: row;
}

.checkout-property-header .property-image {
    flex: 0 0 250px;
    height: 130px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin: 0;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.checkout-property-header .property-image:hover {
    transform: scale(1.02);
}

.checkout-property-header .property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-lg);
}

.checkout-property-header .property-info {
    flex: 1;
    padding: 0;
}

.checkout-property-header .property-details {
    margin-bottom: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.checkout-property-header .property-details p {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.checkout-property-header .property-details span {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--gray600);
    font-size: 0.9rem;
}

.checkout-property-header .property-details i {
    width: 16px;
    color: var(--gray500);
}

.checkout-property-header .show-details-link {
    color: var(--primary-color, #0056b3);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
}

.checkout-property-header .show-details-link:hover {
    text-decoration: underline;
}

.checkout-form-section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Promo Code Styles */

.promo-toggle {
    color: var(--primary-color, #0056b3);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
}

.promo-toggle:hover {
    text-decoration: underline;
}

.promo-input-group {
    margin-top: 1rem;
}

.promo-input-group .checkout-input-row {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.promo-input-group .checkout-input-group {
    flex: 1;
}

.promo-input-group .rns-form-control {
    width: 100%;
    height: 48px;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    border: 1px solid #dee2e6;
    border-radius: var(--radius-lg);
    transition: border-color 0.15s ease-in-out;
}

.promo-input-group .rns-form-control:focus {
    border-color: var(--primary-color, #0056b3);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.promo-input-group .rns-btn {
    height: 48px;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: 500;
}

.promo-status {
    margin-top: 0.75rem;
}

.promo-status .status-message {
    font-size: 0.9rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.promo-status.success .status-message {
    background-color: #d1fae5;
    color: #065f46;
}

.promo-status.error .status-message {
    background-color: #fee2e2;
    color: #991b1b;
}

.promo-status i {
    font-size: 1rem;
}

/* Message Box Styles */
.travel-details-messages {
    margin: 1rem 0;
}

.message-box {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 0.75rem;
}

.message-box iconify-icon {
    flex-shrink: 0;
}

.message-box span {
    font-size: 0.95rem;
    line-height: 1.4;
}

.message-box.info {
    background-color: #f0f9ff;
    color: #0c4a6e;
    border: 1px solid #bae6fd;
}

.message-box.info iconify-icon {
    color: #0284c7;
}

.message-box.error {
    background-color: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.message-box.error iconify-icon {
    color: #dc2626;
}

.property-details-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.property-details-modal.active {
    opacity: 1;
    visibility: visible;
}

.property-details-modal .modal-content {
    background: #fff;
    border-radius: var(--radius-lg);
    width: 90%;
    max-width: 1200px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.property-details-modal.active .modal-content {
    transform: translateY(0);
    top: 0;
    left: 0;
}

/* close-button styles now centralized at top of file - see line ~685 */

.property-details-modal .modal-body {
    padding: 2rem;
}

/* Modal Layout */
.modal-image-grid {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.checkout-content .main-image-container {
    flex: 1;
    max-width: 65%;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 16/9;
}

.checkout-content .main-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.main-image-container {
    border-radius: var(--radius-lg);
        overflow: hidden;
}

.thumbnail-stack {
    flex: 0 0 33%;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.thumbnail-container {
    flex: 1;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 16/9;
}

.thumbnail-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.thumbnail-container:hover img {
    transform: scale(1.05);
}

/* Modal Property Info */
.modal-property-info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.modal-property-title {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--gray900);
    margin: 0;
}

.modal-property-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    padding: 1rem;
    background-color: var(--gray50);
    border-radius: var(--radius-lg);
}

.spec-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--gray700);
}

.spec-item iconify-icon {
    color: var(--gray500);
}

/* Modal Sections */
.modal-section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.modal-section-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gray800);
    margin: 0;
}

.modal-section-content {
    color: var(--gray700);
    line-height: 1.6;
}

/* Modal Amenities */
.modal-amenities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}

.modal-amenity-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1rem;
    background-color: var(--gray50);
    border-radius: var(--radius-lg);
}

.amenity-name {
    font-weight: 600;
    color: var(--gray800);
}

.amenity-description {
    color: var(--gray600);
    font-size: 0.95rem;
}

/* Property Tile Image Placeholder */
.img-slider-wrap .placeholder {
    align-items: center;
    background: var(--gray100);
    border-radius: var(--radius-xlg) var(--radius-xlg) 0px 0px;
    display: flex;
    flex-direction: column;
    height: 250px;
    justify-content: center;
    position: relative;
    width: 100%;
}


.img-slider-wrap .placeholder span {
    color: var(--gray600);
    font-size: 14px;
    font-weight: 500;
}

/* Checkout Sidebar Placeholder States */
.stay-placeholder {
    color: var(--gray500);
    font-style: italic;
    font-size: 0.9rem;
}

.mobile-placeholder {
    color: var(--gray500);
    font-style: italic;
    font-size: 0.85rem;
}

/* Shimmer animation for skeletons */
@keyframes shimmer {
    0% {
        background-position: -468px 0;
    }
    100% {
        background-position: 468px 0;
    }
}

.map-skeleton {
    width: 100%;
    height: 100%;
    background: #f6f7f8;
    background-image: linear-gradient(to right, #f6f7f8 0%, #edeef1 20%, #f6f7f8 40%, #f6f7f8 100%);
    background-repeat: no-repeat;
    background-size: 800px 100%; /* Changed from fixed 468px to relative 800px for better coverage */
    display: inline-block;
    position: relative;
    animation: shimmer 1s linear infinite;
    border-radius: 4px; /* Optional: adds rounded corners */
}

/* Base styles for more filters */
.more-filters-wrap {
    box-sizing: border-box;
    margin: 0 auto;
    max-height: 0; /* Default state */
    opacity: 0; /* Default state */
    overflow: hidden; /* Prevent overflow */
    transition: all 0.3s ease-out;
    width: 100%;
    will-change: transform, opacity, max-height;
}

.home-search-container .more-filters-wrap {
    align-items: center;
    background-color: rgba(0, 0, 0, 0.5);
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 2000;
    /* Ensure modal breaks out of any positioned parent containers */
    transform: none !important;
    margin: 0 !important;
}


/* Results page specific styles */
.rns-results-container .more-filters-wrap {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    z-index: 1000;
}

/* Desktop results page behavior - dropdown style */
@media (min-width: 769px) {
    .rns-results-container .more-filters-visible {
        max-height: 500px;
        opacity: 1;
        overflow: auto;
        /* Override modal styles for results page slide-down behavior */
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        background-color: white !important;
        display: block !important;
        align-items: unset;
        justify-content: unset;
        z-index: 1000 !important;
        transform: none !important;
    }
}

/* Mobile results page behavior - modal style */
@media (max-width: 768px) {
    .rns-results-container .more-filters-visible {
        /* Allow the mobile modal styles to take precedence */
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background-color: rgba(0, 0, 0, 0.5) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 9998 !important;
        transform: none !important;
        max-height: 100% !important;
        overflow: visible !important;
    }
}

.more-filters-wrap .more-filters-content {
    background: white;
    border-radius: var(--radius-lg);
    margin: auto;
    max-height: 95vh;
    overflow-y: auto;
    padding: 25px;
    position: relative;
    transform: none;
}

/* Results page specific content styling */
.rns-results-container .more-filters-wrap .more-filters-content {
    margin: 0;
    max-height: none;
    padding: 20px;
    border-radius: 0;
    width: 100%;
}



/* Ensure the close button is hidden on desktop results but shown on mobile */
.rns-results-container .more-filters-wrap .close-button {
    display: none;
}

@media (max-width: 768px) {
    .rns-results-container .more-filters-wrap .close-button {
        display: block;
    }
}

/* Add transition for mobile modal for more filters */
@media (max-width: 768px) {
    .more-filters-wrap {
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    
    .more-filters-wrap:not(.more-filters-visible) {
        opacity: 0 !important;
        visibility: hidden !important;
    }
    
    .more-filters-wrap.more-filters-visible {
        opacity: 1 !important;
        visibility: visible !important;
    }
}

.more-filters-visible {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    max-height: 100%;
    opacity: 1; /* Fully visible */
    overflow: auto; /* Allow scrolling if content exceeds max height */
    /* Ensure the modal breaks out of constrained containers */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 9998 !important;
    transform: none !important;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex !important;
    align-items: center;
    justify-content: center;
}



/* Criteria container styles */
.criteria-container {
    max-width: 100%;
    overflow: hidden;
    padding: 20px;
    background: white;
}

.criteria-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    padding: 10px 0;
}

/* Ensure the parent containers have proper positioning */
.more-btn-wrapper,
.rns-more-btn-wrapper {
    position: relative;
}

/* Lightweight image loading states - REMOVED
 * These classes were causing images to be invisible by default
 * Images should be visible immediately and use skeleton overlays for loading feedback
 */

.image-skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
}

@keyframes skeleton-loading {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

.loading-optimized {
    transition: opacity 0.3s ease;
}

/* Ensure image containers have relative positioning for skeletons */
.rns-slider-container {
    position: relative;
}

/* Custom Max-Width Utility Classes for Full-Width Layouts */
.max-w-custom-1200 { max-width: 1200px; }
.max-w-custom-1250 { max-width: 1250px; }
.max-w-custom-1300 { max-width: 1300px; }
.max-w-custom-1350 { max-width: 1350px; }
.max-w-custom-1400 { max-width: 1400px; }
.max-w-custom-1450 { max-width: 1450px; }
.max-w-custom-1500 { max-width: 1500px; }
.max-w-custom-1550 { max-width: 1550px; }
.max-w-custom-1600 { max-width: 1600px; }
.max-w-custom-1650 { max-width: 1650px; }
.max-w-custom-1700 { max-width: 1700px; }
.max-w-custom-1750 { max-width: 1750px; }
.max-w-custom-1800 { max-width: 1800px; }
.max-w-custom-1850 { max-width: 1850px; }
.max-w-custom-1900 { max-width: 1900px; }
.max-w-custom-1950 { max-width: 1950px; }
.max-w-custom-2000 { max-width: 2000px; }
.max-w-custom-2050 { max-width: 2050px; }
.max-w-custom-2100 { max-width: 2100px; }
.max-w-custom-2150 { max-width: 2150px; }
.max-w-custom-2200 { max-width: 2200px; }
.max-w-custom-2250 { max-width: 2250px; }
.max-w-custom-2300 { max-width: 2300px; }
.max-w-custom-2350 { max-width: 2350px; }
.max-w-custom-2400 { max-width: 2400px; }

/* Property Carousel Styles */
.property-carousel-section {
    position: relative;
}

.carousel-scroll-container {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    scroll-behavior: smooth !important;
    padding: 1rem 1rem; /* Add horizontal padding for edge spacing */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
    /* Removed scroll-snap for smoother manual scrolling */
}

.carousel-scroll-container::-webkit-scrollbar {
    height: 8px;
}

.carousel-scroll-container::-webkit-scrollbar-track {
    background: transparent;
}

.carousel-scroll-container::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}

.carousel-scroll-container::-webkit-scrollbar-thumb:hover {
    background-color: rgba(0, 0, 0, 0.3);
}

.carousel-tile-wrapper {
    flex: 0 0 auto;
    width: 350px;
    /* No margin - using gap only for simpler math */
}

.carousel-property-tile {
    height: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.carousel-property-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.carousel-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.carousel-nav-btn:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.carousel-nav-btn-prev {
    left: -24px;
}

.carousel-nav-btn-next {
    right: -24px;
}

@media (max-width: 768px) {
    .carousel-nav-btn {
        width: 40px;
        height: 40px;
        z-index: 20;
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(4px);
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    }
    
    .carousel-nav-btn-prev {
        left: 8px;
    }
    
    .carousel-nav-btn-next {
        right: 8px;
    }
    
    .carousel-scroll-container {
        gap: 1rem; /* Reduce gap on mobile */
        padding: 1rem 0; /* Remove left/right padding to fix centering calculations */
        /* No scroll-snap - handled by JavaScript for better control */
        overflow-x: hidden; /* Hide scrollbar on mobile */
    }
    
    .carousel-tile-wrapper {
        width: calc(100vw - 7rem); /* More peek - 80px showing of next tile */
        max-width: 360px;
    }
}

/* Main Layout */

.jump-input{
    width: 100%;
}