
/* =================================================================
   Featured Properties (Flexbox)
   ================================================================= */

.featured-wrapper {
    width: 100%;
    padding-right: var(--bs-gutter-x, 0.75rem); /* Default Bootstrap padding */
    padding-left: var(--bs-gutter-x, 0.75rem);  /* Default Bootstrap padding */
    margin-right: auto;
    margin-left: auto;
}

/* Replaces .row and manages padding for the slider items */
.featured-slider-row {
    margin-right: -15px; /* Adjusting for the item padding */
    margin-left: -15px;  /* Adjusting for the item padding */
}

/* Replaces .col-sm-4 p-3. This controls the spacing around each slider item. */
/* Slick creates the width, we add padding to create the gutter. */
.slider-item-padding {
    padding: 15px; /* Replaces p-3 (1rem or 16px) */
    box-sizing: border-box;
}


/* ----------------------------------------------------------------
   Inner Layouts (Price and Status)
   ---------------------------------------------------------------- */

.featured-property-details .featured-details-header-flex {
    display: flex;
    justify-content: space-between; /* Space them out */
    align-items: flex-start;
}

/* Replaces .col-6 for Price */
.featured-details-price-column {
    /* Allow it to grow a little, but status remains fixed width */
    flex-grow: 1; 
    padding-right: 10px; /* Space between price and status */
}

/* Replaces .col-6 for Status */
.featured-details-status-column {
    flex-shrink: 0; /* Prevents it from shrinking */
    text-align: right;
}

/* Replaces .row and .col-12 for address */
.featured-details-address-row {
    width: 100%; /* Ensure it spans full width */
    margin-top: 5px; /* Simple vertical separation */
}

.featured-property-container {
	
	opacity: 1;
	position:relative;
   transition: opacity .25s ease-in-out;
   -moz-transition: opacity .25s ease-in-out;
   -webkit-transition: opacity .25s ease-in-out;

}

.featured-property-container:hover {
	
	opacity: 0.6;
   
}


.featured-price-label { 

	font-size:0.75rem;
	color:#666666;
	letter-spacing: 5px;

}

.featured-price { 

	font-size:1.5rem;
	color:#000;
	font-weight:500;
	margin:2px 0 5px 0;

}

.featured-address {
	
	font-size:0.9rem;
	color:#666666;
	font-weight:300;
	
}

.featured-property-details {
	
	background:#FFF;
   	padding:20px;
   -webkit-border-bottom-right-radius: 15px;
	-webkit-border-bottom-left-radius: 15px;
	-moz-border-radius-bottomright: 15px;
	-moz-border-radius-bottomleft: 15px;
	border-bottom-right-radius: 15px;
	border-bottom-left-radius: 15px;
   
}


.featured-status-label-available, .featured-status-label-unavailable, .featured-status-label-new-valuation {
	
	float:right;
	padding:8px 20px;
	border-radius:10px;
	font-size:0.9rem;
	color:#FFF;
	text-transform:uppercase;
	
}

.featured-status-label-available {
	
	background-color: #333;
	
}

.featured-status-label-unavailable {
	
	background-color: #BB1C1C;
	
}

.featured-status-label-new-valuation {
	
	background-color: #E78F30;
	
}
	
img.featured-property-image, .image-coming-soon {
	
	height:200px;
	width:100%;
	-webkit-border-top-left-radius: 15px;
	-webkit-border-top-right-radius: 15px;
	-moz-border-radius-topleft: 15px;
	-moz-border-radius-topright: 15px;
	border-top-left-radius: 15px;
	border-top-right-radius: 15px;
	
}


.prev, .next {
	
	font-size:55px;
	cursor:pointer;
	
}

.next i, .prev i {
	
	color:#000;
	opacity:0.1;
	
}

.prev i:hover, .next i:hover {
	
	opacity:0.15;
	
}

/* ----------------------------------------------------------------
   Navigation Row
   ---------------------------------------------------------------- */

/* Replaces .row for navigation */
.featured-nav-row {
    width: 100%;
    margin-top: 15px; /* Spacing below the slider */
}

/* Replaces .col-12 text-center for alignment */
.featured-nav-center {
    width: 100%;
    text-align: center;
}

/*------------------------------------------------------------------
	Property Results Search Bar
	-----------------------------------------------------------------*/
	
/* --- Global Wrapper (No Max-Width Here Anymore) --- */
.max-width-container {
    margin-bottom: 20px;
}

/* --- Search Bar Container (Full Width Box with Shadow) --- */
.custom-search-wrapper {
    width: 100%; 
    background-color: #fff;
    padding: 20px 0;
	margin-bottom:40px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

/* --- Inner Content Container (Max-Width 1500px, Centers Content) --- */
.search-inner-content {
    max-width: 1500px; 
    margin: 0 auto;
    padding: 0 15px;
}

.search-inner-content h1 {
	
	font-size:1.6rem;
	
}

/* --- Refine Button Styling (Mobile Only) --- */
#refine-button {
    display: none;
    cursor: pointer;
    font-weight: 500;
	font-size:1rem;
    color: #333;
    margin-bottom: 0;
    text-decoration: none;
    text-align: center;
    width: 100%;
}
#refine-button:hover {
    /*color: #007bff;*/
}

/* --- The Flex Form (Refine Area) --- */
.search-flex-form {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
}
/* ... rest of form styles ... */
.search-field {
    flex: 1;
    min-width: 140px;
}
.search-field.checkbox-wrapper,
.search-field.submit-wrapper {
    flex: 0 0 auto;
}
.search-flex-form select,
.search-flex-form input[type="text"] { 

    width: 100%;
    padding: 8px 12px;
	height:45px;
    border: 1px solid #ced4da;
    border-radius: 4px;
	font-weight:300;
	background:#FFF;
	color: #495057;
	font-size:1rem;
    box-sizing: border-box;
	
}
.search-flex-form select:focus,
.search-flex-form input[type="text"]:focus {
   border-color: #666;
   outline: 0;
}

/* --- Placeholder Styling --- */

.search-flex-form input[type="text"]::placeholder {
    color: #495057; 
    opacity: 1;
}
.search-flex-form input[type="text"]:-ms-input-placeholder {
    color: #495057;
}
.search-flex-form input[type="text"]::-ms-input-placeholder {
    color: #495057;
}

/* --- Checkbox Styling --- */
.checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
    cursor: pointer;
    user-select: none;
}

/* --- Button Styling --- */
.search-btn {

    border: none;
	padding:10px 20px !important;

}

/* --- New CSS for View Toggle Buttons --- */
#sort-view-options div:last-child > div {
    /* Set up the container for the segmented buttons */
    display: flex;
    border: 1px solid #ced4da; /* Light border around the whole segment */
    border-radius: 4px; /* Slightly rounded corners */
    overflow: hidden; /* Ensures corners look clean */

}

#sort-view-options div:last-child a, 
#sort-view-options div:last-child span {
    /* Base style for both active span and inactive link */
    padding: 10px 10px;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 5px;
    line-height: 1.2;
}

/* Style for the ACTIVE view (span element) */
#sort-view-options div:last-child span {
    background-color: var(--e-global-color-primary); /* Primary color background */
    color: white !important; /* White text */
    border-right: 1px solid var(--e-global-color-primary); /* Darker line to separate button segments */
    /* Override HTML inline styles */
    font-weight: 300; 
    color: inherit;
}

/* Style for the INACTIVE view (a element) */
#sort-view-options div:last-child a {
    background-color: #f8f9fa; /* Light background */
    color: #495057 !important; /* Dark grey text */
    font-weight: 400;
}

/* Hover state for inactive link */
#sort-view-options div:last-child a:hover {
    background-color: #e9ecef; /* Slightly darker hover background */
    color: #666 !important; /* Primary color on hover */
}

/* Remove border on the last segment to avoid double lines */
#sort-view-options div:last-child > div > *:last-child {
    border-right: none !important;
}

/* --- Ensure icons look good inside the buttons --- */
#sort-view-options i {
    font-size: 14px;
}



#dynamic_select {
	
	font-size:1rem;
	font-weight:300;
	background:#fff;
	border:none;
	padding:7px 15px;
	height:42px;
	border-radius: 4px;
	color:#666;
	border:1px solid #E6E6E6;
	
}


/* --- Desktop Responsiveness (Screen >= 993px) --- */
@media (min-width: 993px) {
    /* Ensure the refine form is ALWAYS visible on desktop */
    #refine {
        display: block !important;
		
    }
    
    /* 1. HIDE the separate Title Bar (which is toggled on mobile) */
    #search-options-title {
        display: none !important;
    }

    /* 2. Style the ALWAYS visible Quick Filters bar */
    #quick-filters {
        display: block !important;
        /* Use the negative margin to pull the content up towards the search box */
        margin-top: -10px; 
        padding: 0 15px;
        margin-bottom: 0;
    }
    
    /* 3. Use Flexbox on the inner div to align the title left and filters right, on the same line */
    #quick-filters > div {
        width: 100%;
        display: flex;
        justify-content: space-between; /* Aligns Title Left, Filters Right */
        align-items: center; /* VERTICALLY ALIGNED */
    }
    
    /* 4. Ensure the desktop title placeholder is VISIBLE on desktop */
    #quick-filters .desktop-title-placeholder {
        display: block !important;
    }

    /* Prevent Sort label wrapping on desktop */
    #sort-view-options label[for="dynamic_select"] {
        white-space: nowrap;
    }

    /* Ensure the Sort/View container is visible and aligned right */
    #sort-view-options {
        display: flex !important;
        justify-content: flex-end;
    }
}

/* --- Mobile Responsiveness (Screen <= 992px) --- */
@media (max-width: 992px) {
    /* Show the refine button on mobile */
    #refine-button {
        display: block;
    }
	
	.custom-search-wrapper {
    
    padding: 15px 0;
	margin-bottom:40px;
    border-radius: 0;

}
    
    /* CRITICAL FIX: Hide the main form by default on mobile load */
    .custom-search-wrapper #refine {
        display: none;
		padding-top:20px;
		padding-bottom:20px;
    }
	
	.checkbox-wrapper {
		
		padding:10px 0;
		
	}
    
    /* The Title Bar should be hidden by default (controlled by JS slideToggle) */

	
	.search-inner-content h1 {
		
		display:none;
	
}
    


    /* 2. Quick filters (Sort/View) ALIGN LEFT ON MOBILE and are visible */
    #quick-filters {
        display: block !important;
        margin-bottom: 15px; 
        padding: 0 15px;
        margin-top: 0;
    }
    
    /* Target the inner div containing the sort/view options */
    #quick-filters > div {
        width: 100%; 
        display: flex;
        justify-content: flex-start; /* Aligns content to the left edge */
        align-items: center;
    }
    
    /* Ensure the Sort/View container aligns left */
    #sort-view-options {
        display: flex !important;
        width: 100%;
        justify-content: flex-start;
    }

    /* Prevent Sort label wrapping on mobile */
    #sort-view-options label[for="dynamic_select"] {
        white-space: nowrap;
    }

    /* Stack form items vertically on mobile (for #refine form) */
    .search-flex-form {
        flex-direction: column;
        align-items: stretch;
    }
    .search-field, 
    .search-field.checkbox-wrapper, 
    .search-field.submit-wrapper {
        width: 100%;
        min-width: 0;
    }
    .search-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ----------------------------------------------------------------
   Property Results Grid
   ----------------------------------------------------------------- */

/* Container and Grid Setup */
.flex-container {

    padding-left: 20px;
    padding-right: 20px;
    margin: 0 auto;
	max-width:1520px;

}

.property-grid {
    
	display: flex;
    flex-wrap: wrap; /* Allows items to wrap to the next line */
    /* To offset the padding on the grid items, simulating Bootstrap's negative margin row */
    margin-left: -15px;
    margin-right: -15px;
}

/* Property Grid Item - Column Sizing */
.property-grid-item {
    /* Equivalent to the original p-3 (padding: 1rem) */
    padding: 15px;
    box-sizing: border-box; /* Ensures padding is included in the item's total width */
    /* Default: Equivalent to col-sm-12 (100% width for small screens and up) */
    width: 100%; 
}




/* Inner Detail Layout (Equivalent to nested Bootstrap rows/cols) */

/* The header: address on left, price on right */
.grid-property-details-header {
    display: flex;
    justify-content: space-between; /* Pushes address left, price right */
    align-items: flex-start;
    margin-bottom: 0px; /* Spacing between header and type line */
}

.grid-result-address-wrap {
    /* Allows address to grow, but ensures price doesn't wrap prematurely */
    flex-grow: 1;
    min-width: 0; /* Important for flex-grow to work correctly with long text */
}

.grid-result-price-wrap {
    /* Simulates text-sm-end (price aligned right) */
    text-align: right; 
    flex-shrink: 0; /* Prevents price from shrinking */
    margin-left: 10px; /* Space between address and price */
}

.grid-rent-frequency {
    font-size: 70%; /* Equivalent to inline style */
}

/* The type/icon line */
.grid-property-details-type {
    /* No flex needed here, but kept as a wrapper */
    margin-top: 10px; /* Equivalent to mt-2 */
}

.property-icon {
    margin-right: 5px; /* Equivalent to me-2 */
}

.property-icon.ml-1 {
    margin-left: 10px; /* Equivalent to ms-3 */
}


/* Pagination (Equivalent to justify-content-end) */
.pagination.flex-justify-end {
    display: flex;
    justify-content: flex-end;
}

/* --- Pagination Styles --- */

/* 1. Base Container and Alignment */
.pagination {
    display: flex;
    padding-left: 0;
    list-style: none;
    border-radius: 0.25rem; /* Optional: Slight rounding */
    margin-top: 2rem; /* Replaces Bootstrap's mt-4 */
}

/* Align to the right (flex-justify-end class) */
.flex-justify-end {
    justify-content: flex-end;
}

/* 2. Page Item (The <li>) */
.page-item {
    margin: 0 2px;
}

/* 3. Page Link (The <a>) */
.page-link {
    /* Basic Layout */
    position: relative;
    display: block;
    padding: 0.5rem 0.75rem;
    line-height: 1.25;
    
    /* Typography and Color */
    color: #007bff; /* Primary link color */
    background-color: #fff;
    text-decoration: none;
    font-weight: 500;

    /* Border and Shape */
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    transition: all 0.2s ease-in-out; /* Smooth transition for hover/active */
}

/* Adjust radius for 'Previous' and 'Next' if desired */
.page-item:first-child .page-link,
.page-item:last-child .page-link {
    border-radius: 0.25rem;
}


/* 4. Hover State */
.page-link:hover {
    z-index: 2;
    color: #0056b3;
    background-color: #e9ecef;
    border-color: #dee2e6;
    transform: translateY(-1px); /* Subtle lift on hover */
}

/* 5. Active/Current Page State */
.page-item.active .page-link {
    z-index: 3;
    color: #fff;
    background-color: #007bff; /* Highlight color */
    border-color: #007bff;
    pointer-events: none; /* Make it non-clickable */
    font-weight: 700;
}

/* 6. Disabled State (for 'Previous' button on page 1) */
.page-item.disabled .page-link,
.page-link[aria-disabled="true"] {
    color: #6c757d;
    pointer-events: none;
    background-color: #fff;
    border-color: #dee2e6;
    opacity: 0.7;
}

/* 7. Empty Results Message */
.pb-4 {
    padding-bottom: 1.5rem !important; /* Replaces Bootstrap's pb-4 */
}

/* Copied over styles */

#search-results-container, #particulars-container {
	
	background: var(--e-global-color-c4946b0);
	padding:0 0 40px 0;

}

#search-results a {
	
	text-decoration:none;
	
}

.grid-property-container {
	
	opacity: 1;
	position:relative;
   transition: opacity .25s ease-in-out;
   -moz-transition: opacity .25s ease-in-out;
   -webkit-transition: opacity .25s ease-in-out;

}

.grid-property-container:hover {
	
	opacity: 0.6;
   
}

.status-label {
	
	background:var( --e-global-color-e58a26a );
	
}

.status-label-under-offer {
	
	background:var( --e-global-color-9c435f3 );
	
	
}

img.grid-property-image, .image-coming-soon {
	
	width:100%;
	display:block;
	height:200px;
	-webkit-border-top-left-radius: 15px;
	-webkit-border-top-right-radius: 15px;
	-moz-border-radius-topleft: 15px;
	-moz-border-radius-topright: 15px;
	border-top-left-radius: 15px;
	border-top-right-radius: 15px;
	
}

.image-coming-soon {
	
	background:rgba(0, 0, 0, 0.03);
	display: flex;
  	align-items: center;
  	justify-content: center;
	font-weight:300;
	
}



.grid-property-details {
	
   padding:20px;
   background:var( --e-global-color-df232bc );
   -webkit-border-bottom-right-radius: 15px;
	-webkit-border-bottom-left-radius: 15px;
	-moz-border-radius-bottomright: 15px;
	-moz-border-radius-bottomleft: 15px;
	border-bottom-right-radius: 15px;
	border-bottom-left-radius: 15px;
   
}

.grid-result-address {
	
	font-size:0.9rem;
	color:var( --e-global-color-3aa1982 );
	font-weight:300;
	
}

.grid-result-price {

	font-size:1.2rem;
	color:var( --e-global-color-3aa1982 );
	font-weight:500;
	margin:0px 0 5px 0;

}

.grid-result-type i {
	
color:var(--e-global-color-accent);
	
}

.grid-result-type {
	
	font-size:0.9rem;
	text-decoration:none;
	/*color:#333;*/
	color:#FFF;
	
}

.page-item .page-link {
	
	color:#333;
	
}

.page-item.active .page-link {
 
  /*background-color: #000;
  border-color: #000;*/
  background-color:var(--e-global-color-accent);
  border-color:var(--e-global-color-accent);
 
}



/* ------------------------------------------------------
   Responsive 
   -------------------------------------------------------*/

@media (min-width: 400px) {
		
img.featured-property-image, img.grid-property-image, .image-coming-soon {
	
	height:260px;
	
}	
	
}

@media (min-width: 500px) {

img.featured-property-image, img.grid-property-image, .image-coming-soon {
	
	height:320px;
	
}
		
}

@media (min-width: 768px) {

.property-grid-item {
        width: 50%; /* 2 items per row */
    }

img.featured-property-image, img.grid-property-image, .image-coming-soon {
	
	height:220px;
	
}

}

@media (min-width: 991px) {

img.featured-property-image, img.grid-property-image, .image-coming-soon {
	
	height:300px;
	
}

}		

@media (min-width: 1200px) {

.prev {left:30px;color:#fff;}
.next {right:30px;color:#fff;}
.prev:hover, .next:hover {color:#ccc;}

.property-grid-item {
        width: 33.3333%; /* 3 items per row */
}

img.featured-property-image, img.grid-property-image, .image-coming-soon {
	
	height:230px;
	
}

}

@media (min-width: 1400px) {
	
img.featured-property-image, img.grid-property-image, .image-coming-soon {
	
	width:100%;
	height:290px;
	
}

}