@charset "utf-8";
/* CSS Document */
body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background-color: #f8f9fa; /* Light background for better contrast */
	margin: 0;
	padding: 0;
}
/* Adjust map container to ensure toolbar doesn't overlap important content */
#map {
	height: 100vh; /* Full viewport height */
	width: 100%;
}
.ol-control {
	display: none;
}
.rounded-button {
	border-radius: 50%;
}
.clear-icon {
	position: absolute;
	right: 45px;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
	font-size: 1.2em;
	color: #aaa;
	z-index: 1000;
}
.branch-list {
	list-style: none;
	padding-left: 0;
	max-height: 400px;
	overflow-y: auto;
}
.branch-list li {
	margin-bottom: 5px;
	line-height: 1.2;
}
.branch-link {
	cursor: pointer;
	color: #036 !important;
	text-decoration: none;
}
.branch-link:hover {
	text-decoration: underline;
}
.branch-link .bi {
	color: #036 !important;
}
.branch-link:hover .bi {
	color: #007bff;
}
/* Hide toggle button and close button by default */
#toggleSidebar, #sidebar .close-btn {
	display: none;
}
/* Custom Gradient Background for Sidebar */
#sidebar {
	position: relative; /* Establishes a positioning context for the pseudo-element */
	overflow: hidden; /* Ensures the pseudo-element doesn't spill outside */
	padding: 20px;
	/* Optional: Remove Bootstrap's bg-soft-secondary to prevent conflicts */
	background: none;
	border-right: 1px solid #ddd;
}
/* 2. Pseudo-Element for Gradient and Blur */
#sidebar::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	/* Radial Gradient */
	background: radial-gradient(circle, rgba(135, 206, 235, 0.6), rgba(211, 211, 211, 0.6), rgba(70, 130, 180, 0.6));
	filter: blur(15px); /* Adjust blur intensity */
	z-index: -1; /* Places the gradient behind the sidebar content */
	/* For smoother edges */
	border-radius: 0 20px 20px 0; /* Adjust if your sidebar has rounded corners */
}
/* 3. Sidebar Content Styles */
#sidebar .branch-link {
	position: relative; /* Ensures stacking context above the pseudo-element */
	z-index: 1;
	/* Additional styling for branch links */
	display: flex;
	align-items: center;
	padding: 5px 15px;
	border-radius: 8px;
	background-color: rgba(255, 255, 255, 0.8); /* Semi-transparent background for readability */
	margin-bottom: 5px;
	text-decoration: none;
	color: #333; /* Text color */
	transition: background-color 0.3s ease, color 0.3s ease, padding-left 0.3s ease, box-shadow 0.3s ease;
}
#sidebar .branch-link:hover {
	background-color: rgba(173, 216, 230, 0.3); /* Very light blue */
	color: #036 !important;
	padding-left: 10px; /* Subtle slide effect */
	box-shadow: inset 2px 0 0 #00aaff; /* Blue accent on left */
	transition: all 0.3s ease; /* Smooth transition */
}
/* 4. Responsive Adjustments (Optional) */
@media (max-width: 767px) {
	#sidebar {
		padding: 15px;
	}
	#sidebar::before {
		filter: blur(25px); /* Increased blur on smaller screens */
	}
	.branch-link {
		padding: 12px 20px;
		font-size: 1.1rem;
	}
}
/* Adjust sidebar and toggle button for mobile */
@media (max-width: 767.98px) {
	#sidebar {
		position: fixed; /* Fixed for better overlay handling */
		top: 0;
		left: 0;
		height: 100vh;
		width: 80%;
		z-index: 1055; /* Above Bootstrap's modal z-index */
		overflow-y: auto;
		background: linear-gradient(135deg, #f0f0f0, #d9d9d9);
		transform: translateX(-100%);
		transition: transform 0.3s ease-in-out;
		box-shadow: 2px 0 5px rgba(0, 0, 0, 0.3);
	}
	#sidebar.active {
		transform: translateX(0);
	}
	#toggleSidebar {
		display: block; /* Show toggle button only on mobile */
		position: fixed; /* Fixed to stay visible */
		top: 10px;
		left: 10px;
		z-index: 1056; /* Above the sidebar */
	}
	/* Overlay styling */
	#overlay {
		display: none; /* Hidden by default */
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.5);
		z-index: 1054; /* Below the sidebar and toggle button */
	}
	#overlay.active {
		display: block;
	}
	/* Close button inside sidebar */
	#sidebar .close-btn {
		display: block; /* Show close button only on mobile */
		position: absolute;
		top: 8px;
		right: 10px;
		font-size: 1.5rem;
		cursor: pointer;
		color: #aaa;
	}
	#sidebar .close-btn:hover {
		color: #000;
	}
}
/* Tooltip styles */
.tooltip {
	background-color: rgba(0, 0, 0, 0.7);
	color: white;
	padding: 4px 8px;
	border-radius: 4px;
	white-space: nowrap;
	font-size: 12px;
}
/* Marker hover cursor */
.ol-map .ol-unselectable.ol-control {
	cursor: pointer;
}
/* Popup marker styling */
.ol-popup {
	position: absolute;
	background-color: white;
	padding: 0px;
	border-radius: 10px;
	border: 1px solid #cccccc;
	bottom: 12px;
	left: -50px;
	min-width: 300px;
	max-width: 90%; /* Ensure popup doesn't exceed screen width */
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
	pointer-events: auto; /* Ensure the popup can receive pointer events */
}
.ol-popup:after, .ol-popup:before {
	top: 100%;
	border: solid transparent;
	content: " ";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
}
.ol-popup:after {
	border-top-color: white;
	border-width: 10px;
	left: 48px;
	margin-left: -10px;
}
.ol-popup:before {
	border-top-color: #cccccc;
	border-width: 11px;
	left: 48px;
	margin-left: -11px;
}
/* Marker hover effect */
.ol-marker {
    transition: transform 0.5s ease-in-out; /* Smoother easing */
}

.ol-marker:hover {
    transform: scale(1.2); /* Scale up on hover */
    cursor: pointer; /* Change cursor to pointer on hover */
}


/* Reduce font size for pop-up tabs */
.ol-popup .nav-tabs .nav-link {
	font-size: 0.9rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* Enhanced UI styling */
.accordion-button:not(.collapsed) {
	background-color: #014890;
	color: white;
}
.accordion-button.collapsed {
	background-color: #014890;
	color: #fff;
}
.btn-primary {
	background-color: #014890;
	border-color: #014890;
}
.btn-primary:hover {
	background-color: #0b5ed7;
	border-color: #0a58ca;
}
/* Button group color customization */
.btn-group .btn-info {
	background-color: #17a2b8;
	border-color: #17a2b8;
}
.btn-group .btn-success {
	background-color: #28a745;
	border-color: #28a745;
}
.btn-group .btn-warning {
	background-color: #ffc107;
	border-color: #ffc107;
	color: #212529;
}
.btn-group .btn {
    background-color: #007bff; /* Change this to your desired background color */
    color: white; /* Change this to your desired text color */
    border: none; /* Remove default border */
}

.btn-group .btn:hover {
    background-color: #0056b3; /* Change this to your desired hover background color */
    color: white; /* Change hover text color if needed */
}

.btn-group .btn-secondary {
    background-color: #F0F8FF; /* Light blue background */
    color: #2C3E50; /* Dark slate gray text for good contrast */
	font-weight: 500;
    border: 1px solid #B9D9EB; /* Slightly darker border for definition */
	  font-size: 12px; /* Decrease font size here */
}

.btn-group .btn-secondary:hover {
    background-color: #E1EBEE; /* Slightly darker shade for hover effect */
    color: #1B2631; /* Darker text color on hover */
}


/* Ensure the overlay covers the entire screen on mobile */
@media (max-width: 767.98px) {
	#overlay {
		display: none; /* Hidden by default */
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.5);
		z-index: 1054; /* Below the sidebar and toggle button */
	}
	#overlay.active {
		display: block;
	}
	.ol-popup {
		min-width: 300px; /* Slightly smaller on very small screens */
		max-width: 95%; /* Allow a bit more flexibility */
	}
}
/* Toolbar Styling */
.map-toolbar {
	position: absolute;
	top: 10px;
	right: 10px;
	background: rgba(0, 0, 0, 0.7); /* Semi-transparent black background */
	border-radius: 4px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
	z-index: 1000;
	display: flex;
	flex-direction: column;
	padding: 5px;
}
.map-toolbar button {
	margin: 2px 0;
	width: 40px;
	height: 40px;
	border: none;
	background: none;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: white; /* White icons */
}
.map-toolbar button:hover {
	background: rgba(255, 255, 255, 0.1); /* Light hover effect */
	border-radius: 4px;
}
.map-toolbar .layers-dropdown {
	position: relative;
}
.map-toolbar .dropdown-menu {
	position: absolute;
	top: 0;
	right: 50px;
}
/* CSS to add vertical spacing and style the autocomplete dropdown */
.search-container {
	position: relative;
	margin-bottom: 1.5rem; /* Adjust spacing as needed */
}
#searchDropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 1000;
	max-height: 300px;
	overflow-y: auto;
	margin-top: 0.5rem;
	display: none; /* Hidden by default */
}
#searchDropdown.show {
	display: block;
}
#searchDropdown .dropdown-item {
	cursor: pointer;
}
#searchDropdown .dropdown-item:hover {
	background-color: #f8f9fa;
}
.search-container .form-control {
	z-index: 1050;
}
@media (max-width: 767.98px) {
	.search-container {
		margin-bottom: 1rem;
	}
}
.searchListingsAccordion {
	margin-top: 10px !important;
}
@media (max-width: 767px) {
	.searchListingsAccordion {
		margin-top: 70px !important;
		transition: margin-top 0.3s ease-in-out;
	}
}
#searchResults {
	background-color: rgba(255, 255, 255, 0.4); /* Adjust the alpha value for transparency */
}
.form-check-input:checked {
    background-color: #888!important;
    border-color: #888!important;
}
.tab-content {
    font-size: 0.875rem; /* Adjust to your desired size */
}
/* Modern Filter Styles */
.filter-group {
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.filter-group:last-child {
    border-bottom: none;
}

.filter-label {
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-weight: bold;
    color: #6c757d;
    margin-bottom: 0.5rem;
}

/* Button group styles */
.filter-btn-group {
    display: flex;
    width: 100%;
}

.filter-btn {
    flex: 1;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    border: 1px solid #dee2e6;
    background-color: #f8f9fa;
    color: #495057;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.filter-btn:first-child {
    border-radius: 0.25rem 0 0 0.25rem;
}

.filter-btn:last-child {
    border-radius: 0 0.25rem 0.25rem 0;
}

.filter-btn.active {
    background-color: #014890;
    border-color: #014890;
    color: white;
}

/* Feature chip styles */
.feature-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.feature-chip {
    margin: 0;
}

.chip-label {
    display: inline-block;
    padding: 0.375rem 0.75rem;
    border-radius: 50rem;
    border: 1px solid #dee2e6;
    background-color: #f8f9fa;
    color: #495057;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.chip-label.active {
    background-color: #014890;
    border-color: #014890;
    color: white;
}
/* Modern Filter Styles */
.filter-section {
    margin-bottom: 1rem;
}

.filter-caption {
    font-size: 0.875rem;
    color: #6c757d;
    margin-bottom: 0.5rem;
}

.filter-toggle-group {
    display: flex;
    flex-wrap: wrap;
}

/* Bootstrap 5 Switch Customization */
.form-switch .form-check-input {
    height: 1.25rem;
    width: 2.25rem;
    cursor: pointer;
    background-color: #dee2e6; /* Grey for unchecked */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.form-switch .form-check-input:checked {
    background-color: #28a745; /* Soft green for checked - more intuitive */
    border-color: #28a745;
}

.form-switch .form-check-label {
    font-size: 0.875rem;
    cursor: pointer;
    user-select: none;
}

/* Add these new styles for better visual feedback */
.form-check-label {
    transition: color 0.2s ease;
}

.form-switch .form-check-input:checked ~ .form-check-label {
    color: #212529;
    font-weight: 500;
}

.form-switch .form-check-input:not(:checked) ~ .form-check-label {
    color: #6c757d;
}

/* Add these styles to reduce the size of the search and filters header */
.accordion-header .d-none.d-md-block {
    font-size: 0.9rem;
    padding: 0.5rem 1rem !important;
    margin-bottom: 0;
}

.accordion-button {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

/* Make the accordion body more compact */
.accordion-body {
    padding: 0.75rem;
} 