Showing source for: https://bnb.co.ke/
Duration: 1.244466s
Server: nginx/1.24.0 (Ubuntu)
<!DOCTYPE html>
<html lang="en-gb">
<head>
<!-- Basic Meta Tags -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta http-equiv="content-language" content="en-ke">
<meta name="google-site-verification" content="qxFc2ur8Dxbxmx7iDW_a3ObLGMJvv9m1evH0-FfBrls" />
<!-- PWA Meta Tags -->
<meta name="theme-color" content="#FFFFFF"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="apple-mobile-web-app-title" content="bnb.co.ke">
<!-- Web App Manifest -->
<link rel="manifest" href="/static/manifest.json">
<!-- Dynamic SEO Meta Tags - FIXED TO SMALL b -->
<title>BnB, staycations & holiday homes in Kenya!</title>
<meta name="description" content="BnB, staycations & holiday homes in Kenya. Browse verified listings with photos, amenities, and booking details." />
<meta name="author" content="bnb.co.ke" />
<meta name="robots" content="index, follow" />
<!-- Canonical URL -->
<link rel="canonical" href="https://bnb.co.ke/" />
<!-- Open Graph / Social Media Meta Tags -->
<meta property="og:title" content="BnB, staycations & holiday homes in Kenya!" />
<meta property="og:description" content="BnB, staycations & holiday homes in Kenya. Browse verified listings with photos, amenities, and booking details." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://bnb.co.ke/" />
<meta property="og:image" content="https://bnb.co.ke/static/images/open.jpg" />
<meta property="og:site_name" content="bnb.co.ke" />
<!-- Favicon files -->
<link rel="icon" href="/static/images/favicon.ico" type="image/x-icon">
<link rel="icon" type="image/png" sizes="32x32" href="/static/images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/images/favicon-16x16.png">
<link rel="apple-touch-icon" href="/static/images/apple-touch-icon.png">
<!-- Bootstrap CSS -->
<link rel="stylesheet" type="text/css" href="/static/css/bootstrap.css" />
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Poppins:400,600,700&display=swap" rel="stylesheet" />
<!-- Lightbox Gallery CSS -->
<link rel="stylesheet" href="/static/css/ekko-lightbox.css" />
<!-- PWA CSS -->
<link rel="stylesheet" href="/static/css/pwa.css">
<!-- Font Awesome CSS -->
<link href="/static/css/font-awesome.min.css" rel="stylesheet" />
<!-- Custom CSS -->
<link href="/static/css/style.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Responsive CSS -->
<link href="/static/css/bnb.css" rel="stylesheet" />
<link rel="preload" as="image" href="/media/listings/main/Dinning.jpg" fetchpriority="high">
<!-- Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://bnb.co.ke/#website",
"name": "bnb.co.ke",
"alternateName": ["bnb Kenya", "bnb.co.ke"],
"url": "https://bnb.co.ke/",
"description": "BnB, staycations \u0026 holiday homes in Kenya. Browse verified listings with photos, amenities, and booking details.",
"potentialAction": {
"@type": "SearchAction",
"target": "https://bnb.co.ke/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
},
{
"@type": "Service",
"@id": "https://bnb.co.ke/#service",
"name": "bnb staycations in Kenya",
"description": "Premium vacation rentals and holiday homes across Kenya",
"provider": {
"@type": "Organization",
"name": "bnb.co.ke"
},
"areaServed": "Kenya",
"serviceType": "Vacation Rentals",
"offers": {
"@type": "Offer",
"description": "Professional accommodation booking"
}
},
{
"@type": "Organization",
"@id": "https://bnb.co.ke/#organization",
"name": "bnb.co.ke",
"url": "https://bnb.co.ke/",
"logo": {
"@type": "ImageObject",
"url": "https://bnb.co.ke/static/images/logo.png",
"width": "300",
"height": "100"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "Customer Service",
"areaServed": "KE",
"availableLanguage": ["English", "Swahili"]
}
}
]
}
</script>
<!-- Location-specific Schema -->
</head>
<body>
<!-- Elevated Header Section -->
<header class="header_section" style="position: relative; z-index: 1000; ">
<nav>
<div class="container-fluid" style="display: flex; justify-content: space-between; align-items: center; ">
<style>
.menu_btn-style .s-1,
.menu_btn-style .s-2 {
background-color: #FFFFFF !important;
}
</style>
<!-- Enhanced Hamburger Menu Button -->
<div class="custom_menu-btn" style="margin-left: auto; z-index: 1001; position: relative;">
<button onclick="toggleNav()" id="hamburgerBtn" style="
border: none;
background: transparent !important;
cursor: pointer;
padding: 8px;
position: relative;
z-index: 1001;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 6px;
width: 42px;
height: 42px;
border-radius: 10px;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
">
<!-- Top bar — shorter -->
<span class="s-1" style="
display: block;
width: 16px;
height: 2px;
background-color: #333;
border-radius: 2px;
align-self: flex-end;
margin-right: 6px;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
transform-origin: center;
"></span>
<!-- Bottom bar — longer -->
<span class="s-2" style="
display: block;
width: 24px;
height: 2px;
background-color: #333;
border-radius: 2px;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
transform-origin: center;
"></span>
</button>
<!-- Floating Menu Label (Optional) -->
<div class="menu-label" style="
position: absolute;
top: -8px;
right: -8px;
background: linear-gradient(135deg, #FF5A5F 0%, #FF385C 100%);
color: white;
font-size: 10px;
font-weight: 700;
padding: 2px 8px;
border-radius: 10px;
opacity: 0;
transform: translateY(-10px);
transition: all 0.3s ease;
white-space: nowrap;
box-shadow: 0 2px 10px rgba(255, 90, 95, 0.3);
">
MENU
</div>
</div>
</div>
<!-- Enhanced Overlay Menu -->
<div id="myNav" class="overlay">
<!-- Animated Background Pattern -->
<!-- Enhanced Menu Content -->
<div class="overlay-content">
<!-- Enhanced Menu Links -->
<div class="menu-links-container" style="
display: grid;
gap: 15px;
padding: 0 20px;
">
<a href="/" class="nav-link" onclick="toggleNav()" style="
color: #FFFFFF;
text-decoration: none;
font-weight: 600;
padding: 20px 24px;
display: flex;
align-items: center;
font-size: 20px;
background: rgba(255, 255, 255, 0.05);
border-radius: 16px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border: 1px solid rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
transform: translateX(-20px);
opacity: 0;
">
<div class="link-icon" style="
width: 40px;
height: 40px;
background: linear-gradient(135deg, rgba(255, 90, 95, 0.2) 0%, rgba(255, 56, 92, 0.2) 100%);
border-radius: 10px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
">
<i class="fa fa-book" aria-hidden="true" style="font-size: 18px; color: #FF0000;"></i>
</div>
<div class="link-content">
<div style="font-size: 20px; margin-bottom: 4px;">BnB, staycations & holiday homes!</div>
<div style="font-size: 14px; color: rgba(255, 255, 255, 0.6);">Book great stays!</div>
</div>
<div class="link-arrow" style="
margin-left: auto;
opacity: 0;
transform: translateX(-10px);
transition: all 0.3s ease;
">
<i class="fa fa-chevron-right" aria-hidden="true" style="color: rgba(255, 255, 255, 0.5);"></i>
</div>
</a>
<a href="/book-via-whatsapp/" class="nav-link" onclick="toggleNav()" style="
color: #FFFFFF;
text-decoration: none;
font-weight: 600;
padding: 20px 24px;
display: flex;
align-items: center;
font-size: 20px;
background: rgba(255, 255, 255, 0.05);
border-radius: 16px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border: 1px solid rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
transform: translateX(-20px);
opacity: 0;
">
<div class="link-icon" style="
width: 40px;
height: 40px;
background: linear-gradient(135deg, rgba(37, 211, 102, 0.2) 0%, rgba(18, 140, 126, 0.2) 100%);
border-radius: 10px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
">
<i class="fab fa-whatsapp" style="font-size: 18px; color: #25D366;"></i>
</div>
<div class="link-content">
<div style="font-size: 20px; margin-bottom: 4px;">WhatsApp</div>
<div style="font-size: 14px; color: rgba(255, 255, 255, 0.6);">Chat via whatsapp</div>
</div>
<div class="link-arrow" style="
margin-left: auto;
opacity: 0;
transform: translateX(-10px);
transition: all 0.3s ease;
">
<i class="fa fa-chevron-right" aria-hidden="true" style="color: rgba(255, 255, 255, 0.5);"></i>
</div>
</a>
<a href="/my-listings/" class="nav-link" onclick="toggleNav()" style="
color: #FFFFFF;
text-decoration: none;
font-weight: 600;
padding: 20px 24px;
display: flex;
align-items: center;
font-size: 20px;
background: rgba(255, 255, 255, 0.05);
border-radius: 16px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border: 1px solid rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
transform: translateX(-20px);
opacity: 0;
animation-delay: 0.1s;
">
<div class="link-icon" style="
width: 40px;
height: 40px;
background: linear-gradient(135deg, rgba(0, 123, 255, 0.2) 0%, rgba(0, 86, 179, 0.2) 100%);
border-radius: 10px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
">
<i class="fas fa-bullhorn" aria-hidden="true" style="font-size: 18px; color: #007bff;"></i>
</div>
<div class="link-content">
<div style="font-size: 20px; margin-bottom: 4px;">Sign Up / Log In </div>
<div style="font-size: 14px; color: rgba(255, 255, 255, 0.6);">Host ? Reach thousands of guests</div>
</div>
<div class="link-arrow" style="
margin-left: auto;
opacity: 0;
transform: translateX(-10px);
transition: all 0.3s ease;
">
<i class="fa fa-chevron-right" aria-hidden="true" style="color: rgba(255, 255, 255, 0.5);"></i>
</div>
</a>
<a href="/auth/login/" class="nav-link" onclick="toggleNav()" style="
color: #FFFFFF;
text-decoration: none;
font-weight: 600;
padding: 20px 24px;
display: flex;
align-items: center;
font-size: 20px;
background: rgba(255, 255, 255, 0.05);
border-radius: 16px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border: 1px solid rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
transform: translateX(-20px);
opacity: 0;
animation-delay: 0.1s;
">
<div class="link-icon" style="
width: 40px;
height: 40px;
background: linear-gradient(135deg, rgba(0, 123, 255, 0.2) 0%, rgba(0, 86, 179, 0.2) 100%);
border-radius: 10px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
">
<i class="fas fa-toolbox" aria-hidden="true" style="font-size: 18px; color: #007bff;"></i>
</div>
<div class="link-content">
<div style="font-size: 20px; margin-bottom: 4px;">Account </div>
<div style="font-size: 14px; color: rgba(255, 255, 255, 0.6);">Manage your host account</div>
</div>
<div class="link-arrow" style="
margin-left: auto;
opacity: 0;
transform: translateX(-10px);
transition: all 0.3s ease;
">
<i class="fa fa-chevron-right" aria-hidden="true" style="color: rgba(255, 255, 255, 0.5);"></i>
</div>
</a>
</div>
<!-- Menu Footer -->
<div class="menu-footer" data-nosnippet style="
margin-top: 60px;
padding: 30px 20px 0;
border-top: 1px solid rgba(255, 255, 255, 0.1);
opacity: 0;
transform: translateY(20px);
transition: all 0.5s ease 0.4s;
">
<div style="color: rgba(255, 255, 255, 0.5); font-size: 14px; line-height: 1.6;">
<div style="display: flex; align-items: center; gap: 20px; margin-top: 20px;">
<span style="display: flex; align-items: center; gap: 8px;">
<i class="fa fa-check-circle" aria-hidden="true" style="color: #34a853;"></i>
<span>Verified Properties</span>
</span>
<span style="display: flex; align-items: center; gap: 8px;">
<i class="fa fa-shield-alt" aria-hidden="true" style="color: #4285f4;"></i>
<span>Secure Booking</span>
</span>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<script>function toggleNav() {
const nav = document.getElementById("myNav");
const hamburgerBtn = document.getElementById("hamburgerBtn");
nav.classList.toggle("menu_width");
hamburgerBtn.classList.toggle("menu_btn-style");
// Prevent body scroll when menu is open
document.body.style.overflow = nav.classList.contains("menu_width") ? "hidden" : "auto";
}
// Optional: Close menu with Escape key
document.addEventListener('keydown', function(event) {
const nav = document.getElementById("myNav");
if (event.key === "Escape" && nav.classList.contains("menu_width")) {
toggleNav();
}
});</script>
<!-- Main Content Block -->
<main>
<section class="mobile-spacing" style="
background: linear-gradient(180deg, #ffffff 0%, #fcfcfc 100%);
margin: 9px;
border-radius: 18px;
padding: 8px;
border: 1px solid #ececec;
box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 24px -12px rgba(0,0,0,0.08);
position: sticky;
top: 12px;
z-index: 50;
">
<div class="filters-container" style="
position: relative;
z-index: 2;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: nowrap;
width: 100%;
overflow: visible !important;
">
<!-- Brand Logo -->
<div class="logo-section" data-nosnippet style="
flex-shrink: 0;
padding: 0 10px 0 6px;
display: flex;
align-items: center;
min-width: 110px;
">
<a class="navbar-brand" href="/" style="
text-decoration: none;
display: flex;
align-items: center;
gap: 6px;
">
<img src="/static/images/android-chrome-192x192.png"
alt="bnb.co.ke"
data-nosnippet
style="
height: 32px;
width: auto;
display: block;
object-fit: contain;
">
</a>
</div>
<!-- Unified Filter Pill -->
<div class="filters-section" style="
display: flex;
align-items: center;
gap: 0;
flex: 1;
min-width: 0;
overflow: visible !important;
position: relative;
z-index: 50;
background: #ffffff;
border-radius: 18px;
padding: 4px;
box-shadow:
0 0 0 1px rgba(0,0,0,0.04),
0 1px 2px rgba(0,0,0,0.04),
0 12px 32px -16px rgba(0,0,0,0.12);
max-width: 540px;
margin: 0 auto;
">
<!-- Location Dropdown -->
<div class="filter-dropdown" style="position: relative; flex: 1; min-width: 0; z-index: 100;">
<div class="location-dropdown" style="position: relative; z-index: 1000;">
<div class="dropdown-trigger-location" style="
background: transparent;
border-radius: 100px;
padding: 9px 16px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
color: #1a1a1a;
display: flex;
align-items: center;
gap: 9px;
border: none;
transition: background 0.2s ease;
"
onmouseover="this.style.background='#f7f7f7'"
onmouseout="this.style.background='transparent'">
<i class="fa fa-location-dot" style="color: #D32F2F; font-size: 12px; opacity: 0.85;"></i>
<span class="selected-location-text" id="locationPlaceholder" style="flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0.01em;"> </span>
</div>
<div class="dropdown-menu-location" style="
position: absolute;
top: calc(100% + 10px);
left: 0;
min-width: 280px;
background: #ffffff;
border-radius: 20px;
box-shadow:
0 0 0 1px rgba(0,0,0,0.05),
0 24px 48px -16px rgba(0,0,0,0.18);
z-index: 9999;
display: none;
max-height: 380px;
overflow-y: auto;
padding: 6px;
">
<div style="padding: 8px 8px 10px; position: sticky; top: 0; background: #ffffff; z-index: 10; border-radius: 16px 16px 0 0;">
<div class="claymorphic-search" style="position: relative; background: #f5f5f5; border-radius: 100px; padding: 2px;">
<i class="fa fa-search" style="position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #999; font-size: 11px;"></i>
<input type="text" class="location-search-input" placeholder="Search locations" style="
width: 100%;
padding: 9px 14px 9px 36px;
border: none;
border-radius: 100px;
font-size: 12.5px;
outline: none;
font-family: 'Poppins', 'Inter', sans-serif;
background: transparent;
color: #1a1a1a;
">
</div>
</div>
<div class="location-options-container" style="padding: 2px;">
<div class="dropdown-option-location claymorphic-option" data-value="kilimani" data-url="/location/kilimani/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kilimani</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="westlands" data-url="/location/westlands/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Westlands</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kileleshwa" data-url="/location/kileleshwa/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kileleshwa</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="waiyaki_way" data-url="/location/waiyaki_way/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Waiyaki way</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="riverside" data-url="/location/riverside/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Riverside</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="pangani" data-url="/location/pangani/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Pangani</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="parklands" data-url="/location/parklands/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Parklands</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ngara" data-url="/location/ngara/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ngara</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="garden_city" data-url="/location/garden_city/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Garden City</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="roysambu" data-url="/location/roysambu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Roysambu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="roasters" data-url="/location/roasters/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Roasters</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="mirema" data-url="/location/mirema/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Mirema</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="trm_drive" data-url="/location/trm_drive/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Trm drive</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="lumumba_drive" data-url="/location/lumumba_drive/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Lumumba drive</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kitisuru" data-url="/location/kitisuru/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kitisuru</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="lavington" data-url="/location/lavington/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Lavington</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="loresho" data-url="/location/loresho/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Loresho</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kiambu_road" data-url="/location/kiambu_road/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kiambu Road</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="thindigua" data-url="/location/thindigua/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>thindigua</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="zimmerman" data-url="/location/zimmerman/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Zimmerman</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kahawa_sukari" data-url="/location/kahawa_sukari/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kahawa Sukari</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kahawa_wendani" data-url="/location/kahawa_wendani/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kahawa Wendani</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kasarani" data-url="/location/kasarani/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kasarani</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="bypass" data-url="/location/bypass/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Bypass</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="membley" data-url="/location/membley/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Membley</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ruiru" data-url="/location/ruiru/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ruiru</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kamakis" data-url="/location/kamakis/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kamakis</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kiambu" data-url="/location/kiambu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kiambu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="thome" data-url="/location/thome/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Thome</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kinoo" data-url="/location/kinoo/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kinoo</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="muthiga" data-url="/location/muthiga/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Muthiga</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ngong" data-url="/location/ngong/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ngong</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="rongai" data-url="/location/rongai/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Rongai</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="gwakairu" data-url="/location/gwakairu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Gwakairu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kimbo" data-url="/location/kimbo/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kimbo</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="k_road" data-url="/location/k_road/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>K Road</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="juja" data-url="/location/juja/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Juja</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="thika" data-url="/location/thika/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Thika</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kahawa_west" data-url="/location/kahawa_west/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kahawa West</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kitengela" data-url="/location/kitengela/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kitengela</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kikuyu_road" data-url="/location/kikuyu_road/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kikuyu road</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="watamu" data-url="/location/watamu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Watamu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="diani" data-url="/location/diani/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Diani</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="nyali" data-url="/location/nyali/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Nyali</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="mtwapa" data-url="/location/mtwapa/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Mtwapa</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="shanzu" data-url="/location/shanzu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Shanzu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="mombasa" data-url="/location/mombasa/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Mombasa</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="malindi" data-url="/location/malindi/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Malindi</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kilifi_town" data-url="/location/kilifi_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kilifi Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="embakasi" data-url="/location/embakasi/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Embakasi</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="fedha" data-url="/location/fedha/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Fedha</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="south_b" data-url="/location/south_b/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>South B</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="south_c" data-url="/location/south_c/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>South C</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="utawala" data-url="/location/utawala/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Utawala</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="eldoret" data-url="/location/eldoret/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Eldoret</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="nakuru" data-url="/location/nakuru/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Nakuru</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="naivasha" data-url="/location/naivasha/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Naivasha</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="homeland" data-url="/location/homeland/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Homeland</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="hurlingham" data-url="/location/hurlingham/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Hurlingham</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kabete" data-url="/location/kabete/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kabete</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kangemi" data-url="/location/kangemi/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kangemi</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="karen" data-url="/location/karen/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Karen</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kawangware" data-url="/location/kawangware/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kawangware</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="milimani" data-url="/location/milimani/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Milimani</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="muthaiga" data-url="/location/muthaiga/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Muthaiga</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="mwiki" data-url="/location/mwiki/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Mwiki</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="nairobi_west" data-url="/location/nairobi_west/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Nairobi West</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ongata_rongai" data-url="/location/ongata_rongai/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ongata Rongai</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ruai" data-url="/location/ruai/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ruai</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ruaka" data-url="/location/ruaka/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ruaka</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="ruaraka" data-url="/location/ruaraka/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Ruaraka</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="runda" data-url="/location/runda/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Runda</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="saika" data-url="/location/saika/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Saika</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="syokimau" data-url="/location/syokimau/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Syokimau</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="thogoto" data-url="/location/thogoto/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Thogoto</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="upper_hill" data-url="/location/upper_hill/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Upper Hill</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="uthiru" data-url="/location/uthiru/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Uthiru</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="athiriver" data-url="/location/athiriver/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Athiriver</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kisumu" data-url="/location/kisumu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kisumu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="machakos" data-url="/location/machakos/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Machakos</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="meru_town" data-url="/location/meru_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Meru Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="nanyuki" data-url="/location/nanyuki/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Nanyuki</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="nyeri_town" data-url="/location/nyeri_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Nyeri Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="embu_town" data-url="/location/embu_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Embu Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="narok_town" data-url="/location/narok_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Narok Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kisii_town" data-url="/location/kisii_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kisii Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="voi" data-url="/location/voi/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Voi</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="isiolo_town" data-url="/location/isiolo_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Isiolo Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="bomet" data-url="/location/bomet/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Bomet</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kakamega_town" data-url="/location/kakamega_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kakamega Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="limuru" data-url="/location/limuru/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Limuru</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="nyahururu" data-url="/location/nyahururu/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Nyahururu</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="migori_town" data-url="/location/migori_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Migori Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kitui_town" data-url="/location/kitui_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kitui Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="bungoma_town" data-url="/location/bungoma_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Bungoma Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="wangige" data-url="/location/wangige/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Wangige</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kericho_town" data-url="/location/kericho_town/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kericho Town</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="dubai" data-url="/location/dubai/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Dubai</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="usa" data-url="/location/usa/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>usa</span>
</div>
<div class="dropdown-option-location claymorphic-option" data-value="kenya" data-url="/location/kenya/" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
position: relative;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-location-dot" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Kenya</span>
</div>
</div>
</div>
</div>
</div>
<!-- Divider -->
<div style="width: 1px; height: 22px; background: linear-gradient(180deg, transparent, #e5e5e5 20%, #e5e5e5 80%, transparent); flex-shrink: 0;"></div>
<!-- Property Type Dropdown -->
<div class="filter-dropdown" style="position: relative; flex: 1; min-width: 0; z-index: 100;">
<div class="property-dropdown" style="position: relative; z-index: 1000;">
<div class="dropdown-trigger-property" style="
background: transparent;
border-radius: 100px;
padding: 9px 16px;
cursor: pointer;
justify-content: flex-end;
font-size: 13px;
font-weight: 500;
color: #1a1a1a;
display: flex;
align-items: center;
gap: 9px;
border: none;
transition: background 0.2s ease;
"
onmouseover="this.style.background='#f7f7f7'"
onmouseout="this.style.background='transparent'">
<i class="fa fa-city" style="color: #D32F2F; font-size: 12px; opacity: 0.85;"></i>
<span class="selected-property-text" id="propertyPlaceholder" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0.01em;"> </span>
</div>
<div class="dropdown-menu-property" style="
position: absolute;
top: calc(100% + 10px);
right: 0;
min-width: 280px;
background: #ffffff;
border-radius: 20px;
box-shadow:
0 0 0 1px rgba(0,0,0,0.05),
0 24px 48px -16px rgba(0,0,0,0.18);
z-index: 9999;
display: none;
max-height: 380px;
overflow-y: auto;
padding: 6px;
">
<div style="padding: 8px 8px 10px; position: sticky; top: 0; background: #ffffff; z-index: 10; border-radius: 16px 16px 0 0;">
<div class="claymorphic-search" style="position: relative; background: #f5f5f5; border-radius: 100px; padding: 2px;">
<i class="fa fa-search" style="position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #999; font-size: 11px;"></i>
<input type="text" class="property-search-input" placeholder="Search property types" style="
width: 100%;
padding: 9px 14px 9px 36px;
border: none;
border-radius: 100px;
font-size: 12.5px;
outline: none;
font-family: 'Poppins', 'Inter', sans-serif;
background: transparent;
color: #1a1a1a;
">
</div>
</div>
<div class="property-options-container" style="padding: 2px;">
<div class="dropdown-option-property claymorphic-option" data-value="hidden_gems" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Hidden gems/Cabins/Vacation Holiday homes</span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="studio_staycation" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span> studio </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="one_bedroom_staycation" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span> One Bedroom </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="two_bedroom_staycation" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span> Two Bedroom </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="three_bedroom_staycation" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Three Bedroom </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="Own_compound_staycation" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Own compound/villa staycation</span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="beach_house_staycation" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span> Beach house staycation</span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="studio" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span> Furnished Houses for rent - Studio </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="one_bedroom" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Furnished Houses for rent - One Bedroom </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="two_bedroom" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Furnished Houses for rent - Two Bedroom </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="three_bedroom" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Furnished Houses for rent - Three Bedroom </span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="Own_compound" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Furnished Houses for rent - Own compound</span>
</div>
<div class="dropdown-option-property claymorphic-option" data-value="beach_house" style="
padding: 10px 14px;
margin: 1px 0;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
transition: all 0.15s ease;
font-size: 13px;
border-radius: 12px;
color: #2a2a2a;
"
onmouseover="this.style.background='#fafafa'; this.style.paddingLeft='18px'"
onmouseout="this.style.background='transparent'; this.style.paddingLeft='14px'">
<i class="fa fa-fa-city" style="width: 16px; color: #D32F2F; font-size: 12px; opacity: 0.75;"></i>
<span>Furnished Houses for rent - beach house </span>
</div>
</div>
</div>
</div>
</div>
<!-- Search Button — RED -->
<button id="applyFilters" class="apply-button" style="
background: #D32F2F;
color: #ffffff;
border: none;
padding: 0 22px;
border-radius: 100px;
font-weight: 500;
font-size: 12px;
letter-spacing: 0.02em;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
font-family: 'Poppins', 'Inter', sans-serif;
white-space: nowrap;
flex-shrink: 0;
height: 36px;
min-width: 104px;
box-shadow: 0 4px 12px -4px rgba(211,47,47,0.35);
"
onmouseover="this.style.background='#B71C1C'; this.style.transform='translateY(-1px)'; this.style.boxShadow='0 8px 20px -4px rgba(211,47,47,0.5)';"
onmouseout="this.style.background='#D32F2F'; this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 12px -4px rgba(211,47,47,0.35)';">
<span style="position: relative; display: inline-flex; align-items: center; justify-content: center;">
<i class="fa-solid fa-magnifying-glass" style="font-size: 13px;"></i>
<i class="fa-solid fa-wand-magic-sparkles" style="position: absolute; top: -6px; right: -8px; font-size: 8px; color: #ffd700; animation: sparkle 2s ease-in-out infinite;"></i>
</span>
<span>Search</span>
</button>
</div>
<!-- Hidden filters -->
<select id="locationFilter" style="display: none;">
<option value="all" selected>All Locations</option>
<option value="kilimani" data-url="/location/kilimani/"
>
Kilimani
</option>
<option value="westlands" data-url="/location/westlands/"
>
Westlands
</option>
<option value="kileleshwa" data-url="/location/kileleshwa/"
>
Kileleshwa
</option>
<option value="waiyaki_way" data-url="/location/waiyaki_way/"
>
Waiyaki way
</option>
<option value="riverside" data-url="/location/riverside/"
>
Riverside
</option>
<option value="pangani" data-url="/location/pangani/"
>
Pangani
</option>
<option value="parklands" data-url="/location/parklands/"
>
Parklands
</option>
<option value="ngara" data-url="/location/ngara/"
>
Ngara
</option>
<option value="garden_city" data-url="/location/garden_city/"
>
Garden City
</option>
<option value="roysambu" data-url="/location/roysambu/"
>
Roysambu
</option>
<option value="roasters" data-url="/location/roasters/"
>
Roasters
</option>
<option value="mirema" data-url="/location/mirema/"
>
Mirema
</option>
<option value="trm_drive" data-url="/location/trm_drive/"
>
Trm drive
</option>
<option value="lumumba_drive" data-url="/location/lumumba_drive/"
>
Lumumba drive
</option>
<option value="kitisuru" data-url="/location/kitisuru/"
>
Kitisuru
</option>
<option value="lavington" data-url="/location/lavington/"
>
Lavington
</option>
<option value="loresho" data-url="/location/loresho/"
>
Loresho
</option>
<option value="kiambu_road" data-url="/location/kiambu_road/"
>
Kiambu Road
</option>
<option value="thindigua" data-url="/location/thindigua/"
>
thindigua
</option>
<option value="zimmerman" data-url="/location/zimmerman/"
>
Zimmerman
</option>
<option value="kahawa_sukari" data-url="/location/kahawa_sukari/"
>
Kahawa Sukari
</option>
<option value="kahawa_wendani" data-url="/location/kahawa_wendani/"
>
Kahawa Wendani
</option>
<option value="kasarani" data-url="/location/kasarani/"
>
Kasarani
</option>
<option value="bypass" data-url="/location/bypass/"
>
Bypass
</option>
<option value="membley" data-url="/location/membley/"
>
Membley
</option>
<option value="ruiru" data-url="/location/ruiru/"
>
Ruiru
</option>
<option value="kamakis" data-url="/location/kamakis/"
>
Kamakis
</option>
<option value="kiambu" data-url="/location/kiambu/"
>
Kiambu
</option>
<option value="thome" data-url="/location/thome/"
>
Thome
</option>
<option value="kinoo" data-url="/location/kinoo/"
>
Kinoo
</option>
<option value="muthiga" data-url="/location/muthiga/"
>
Muthiga
</option>
<option value="ngong" data-url="/location/ngong/"
>
Ngong
</option>
<option value="rongai" data-url="/location/rongai/"
>
Rongai
</option>
<option value="gwakairu" data-url="/location/gwakairu/"
>
Gwakairu
</option>
<option value="kimbo" data-url="/location/kimbo/"
>
Kimbo
</option>
<option value="k_road" data-url="/location/k_road/"
>
K Road
</option>
<option value="juja" data-url="/location/juja/"
>
Juja
</option>
<option value="thika" data-url="/location/thika/"
>
Thika
</option>
<option value="kahawa_west" data-url="/location/kahawa_west/"
>
Kahawa West
</option>
<option value="kitengela" data-url="/location/kitengela/"
>
Kitengela
</option>
<option value="kikuyu_road" data-url="/location/kikuyu_road/"
>
Kikuyu road
</option>
<option value="watamu" data-url="/location/watamu/"
>
Watamu
</option>
<option value="diani" data-url="/location/diani/"
>
Diani
</option>
<option value="nyali" data-url="/location/nyali/"
>
Nyali
</option>
<option value="mtwapa" data-url="/location/mtwapa/"
>
Mtwapa
</option>
<option value="shanzu" data-url="/location/shanzu/"
>
Shanzu
</option>
<option value="mombasa" data-url="/location/mombasa/"
>
Mombasa
</option>
<option value="malindi" data-url="/location/malindi/"
>
Malindi
</option>
<option value="kilifi_town" data-url="/location/kilifi_town/"
>
Kilifi Town
</option>
<option value="embakasi" data-url="/location/embakasi/"
>
Embakasi
</option>
<option value="fedha" data-url="/location/fedha/"
>
Fedha
</option>
<option value="south_b" data-url="/location/south_b/"
>
South B
</option>
<option value="south_c" data-url="/location/south_c/"
>
South C
</option>
<option value="utawala" data-url="/location/utawala/"
>
Utawala
</option>
<option value="eldoret" data-url="/location/eldoret/"
>
Eldoret
</option>
<option value="nakuru" data-url="/location/nakuru/"
>
Nakuru
</option>
<option value="naivasha" data-url="/location/naivasha/"
>
Naivasha
</option>
<option value="homeland" data-url="/location/homeland/"
>
Homeland
</option>
<option value="hurlingham" data-url="/location/hurlingham/"
>
Hurlingham
</option>
<option value="kabete" data-url="/location/kabete/"
>
Kabete
</option>
<option value="kangemi" data-url="/location/kangemi/"
>
Kangemi
</option>
<option value="karen" data-url="/location/karen/"
>
Karen
</option>
<option value="kawangware" data-url="/location/kawangware/"
>
Kawangware
</option>
<option value="milimani" data-url="/location/milimani/"
>
Milimani
</option>
<option value="muthaiga" data-url="/location/muthaiga/"
>
Muthaiga
</option>
<option value="mwiki" data-url="/location/mwiki/"
>
Mwiki
</option>
<option value="nairobi_west" data-url="/location/nairobi_west/"
>
Nairobi West
</option>
<option value="ongata_rongai" data-url="/location/ongata_rongai/"
>
Ongata Rongai
</option>
<option value="ruai" data-url="/location/ruai/"
>
Ruai
</option>
<option value="ruaka" data-url="/location/ruaka/"
>
Ruaka
</option>
<option value="ruaraka" data-url="/location/ruaraka/"
>
Ruaraka
</option>
<option value="runda" data-url="/location/runda/"
>
Runda
</option>
<option value="saika" data-url="/location/saika/"
>
Saika
</option>
<option value="syokimau" data-url="/location/syokimau/"
>
Syokimau
</option>
<option value="thogoto" data-url="/location/thogoto/"
>
Thogoto
</option>
<option value="upper_hill" data-url="/location/upper_hill/"
>
Upper Hill
</option>
<option value="uthiru" data-url="/location/uthiru/"
>
Uthiru
</option>
<option value="athiriver" data-url="/location/athiriver/"
>
Athiriver
</option>
<option value="kisumu" data-url="/location/kisumu/"
>
Kisumu
</option>
<option value="machakos" data-url="/location/machakos/"
>
Machakos
</option>
<option value="meru_town" data-url="/location/meru_town/"
>
Meru Town
</option>
<option value="nanyuki" data-url="/location/nanyuki/"
>
Nanyuki
</option>
<option value="nyeri_town" data-url="/location/nyeri_town/"
>
Nyeri Town
</option>
<option value="embu_town" data-url="/location/embu_town/"
>
Embu Town
</option>
<option value="narok_town" data-url="/location/narok_town/"
>
Narok Town
</option>
<option value="kisii_town" data-url="/location/kisii_town/"
>
Kisii Town
</option>
<option value="voi" data-url="/location/voi/"
>
Voi
</option>
<option value="isiolo_town" data-url="/location/isiolo_town/"
>
Isiolo Town
</option>
<option value="bomet" data-url="/location/bomet/"
>
Bomet
</option>
<option value="kakamega_town" data-url="/location/kakamega_town/"
>
Kakamega Town
</option>
<option value="limuru" data-url="/location/limuru/"
>
Limuru
</option>
<option value="nyahururu" data-url="/location/nyahururu/"
>
Nyahururu
</option>
<option value="migori_town" data-url="/location/migori_town/"
>
Migori Town
</option>
<option value="kitui_town" data-url="/location/kitui_town/"
>
Kitui Town
</option>
<option value="bungoma_town" data-url="/location/bungoma_town/"
>
Bungoma Town
</option>
<option value="wangige" data-url="/location/wangige/"
>
Wangige
</option>
<option value="kericho_town" data-url="/location/kericho_town/"
>
Kericho Town
</option>
<option value="dubai" data-url="/location/dubai/"
>
Dubai
</option>
<option value="usa" data-url="/location/usa/"
>
usa
</option>
<option value="kenya" data-url="/location/kenya/"
>
Kenya
</option>
</select>
<select id="propertyTypeFilter" style="display: none;">
<option value="">Property Type</option>
<option value="hidden_gems"
>
Hidden gems/Cabins/Vacation Holiday homes
</option>
<option value="studio_staycation"
>
studio
</option>
<option value="one_bedroom_staycation"
>
One Bedroom
</option>
<option value="two_bedroom_staycation"
>
Two Bedroom
</option>
<option value="three_bedroom_staycation"
>
Three Bedroom
</option>
<option value="Own_compound_staycation"
>
Own compound/villa staycation
</option>
<option value="beach_house_staycation"
>
Beach house staycation
</option>
<option value="studio"
>
Furnished Houses for rent - Studio
</option>
<option value="one_bedroom"
>
Furnished Houses for rent - One Bedroom
</option>
<option value="two_bedroom"
>
Furnished Houses for rent - Two Bedroom
</option>
<option value="three_bedroom"
>
Furnished Houses for rent - Three Bedroom
</option>
<option value="Own_compound"
>
Furnished Houses for rent - Own compound
</option>
<option value="beach_house"
>
Furnished Houses for rent - beach house
</option>
</select>
</div>
</section>
<style>
@keyframes sparkle {
0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
50% { transform: scale(1.4) rotate(20deg); opacity: 0.6; }
}
/* Smooth scrollbar for dropdowns */
.dropdown-menu-location::-webkit-scrollbar,
.dropdown-menu-property::-webkit-scrollbar { width: 6px; }
.dropdown-menu-location::-webkit-scrollbar-thumb,
.dropdown-menu-property::-webkit-scrollbar-thumb { background: #e0e0e0; border-radius: 3px; }
.dropdown-menu-location::-webkit-scrollbar-track,
.dropdown-menu-property::-webkit-scrollbar-track { background: transparent; }
/* Mobile refinements */
@media (max-width: 640px) {
.filters-section {
max-width: 100% !important;
}
#applyFilters {
padding: 0 16px !important;
min-width: 92px !important;
font-size: 11.5px !important;
}
}
</style>
<!-- listings gallery section -->
<section>
<div style="border-radius:21px; overflow: hidden; margin-top: 5px;">
<div class="container-fluid">
<!-- ============================================
HERO CAROUSEL WITH SKELETON UI
============================================ -->
<section class="hero-carousel-section">
<div class="hero-carousel-container">
<div class="hero-carousel" id="heroCarousel">
<!-- SKELETON -->
<div class="hero-skeleton" id="heroSkeleton" aria-hidden="true">
<div class="hero-skeleton-item">
<div class="hero-skeleton-img shimmer"></div>
<div class="hero-skeleton-overlay"></div>
<div class="hero-skeleton-content">
<div class="hero-skeleton-line shimmer" style="width: 28%;"></div>
<div class="hero-skeleton-line shimmer" style="width: 55%; height: 22px;"></div>
<div class="hero-skeleton-line shimmer" style="width: 38%; height: 26px;"></div>
</div>
</div>
</div>
<!-- REAL CAROUSEL -->
<div class="hero-carousel-inner" id="heroCarouselInner">
<div class="hero-carousel-item active" data-slide-index="0">
<div class="hero-img-wrapper">
<img
class="hero-img"
src="/media/listings/main/Dinning.jpg"
alt="1 Bedroom Apartment with a balcony along the Eastern By Pass"
width="1200"
height="675"
decoding="async"
loading="eager"
fetchpriority="high"
onload="this.classList.add('loaded')"
>
</div>
<div class="hero-overlay"></div>
<div class="hero-content">
<div class="hero-delivery">
<i class="fa fa-gem"></i> BnB, staycations & holiday homes !
</div>
<div class="hero-category">
Utawala • Astrol
</div>
<p class="hero-price">
Ksh 3500 <small>/= night</small>
</p>
</div>
</div>
<div class="hero-carousel-item " data-slide-index="1">
<div class="hero-img-wrapper">
<img
class="hero-img"
src="/media/listings/main/1000009111.jpg"
alt="Shangri-la residency Westlands"
width="1200"
height="675"
decoding="async"
loading="lazy"
onload="this.classList.add('loaded')"
>
</div>
<div class="hero-overlay"></div>
<div class="hero-content">
<div class="hero-delivery">
<i class="fa fa-gem"></i> BnB, staycations & holiday homes !
</div>
<div class="hero-category">
Westlands • Shangri-la residency
</div>
<p class="hero-price">
Ksh 6000 <small>/= night</small>
</p>
</div>
</div>
<div class="hero-carousel-item " data-slide-index="2">
<div class="hero-img-wrapper">
<img
class="hero-img"
src="/media/listings/main/IMG_4185-HDR.jpg"
alt="Cozy Nest 1BR Kilimani"
width="1200"
height="675"
decoding="async"
loading="lazy"
onload="this.classList.add('loaded')"
>
</div>
<div class="hero-overlay"></div>
<div class="hero-content">
<div class="hero-delivery">
<i class="fa fa-gem"></i> BnB, staycations & holiday homes !
</div>
<div class="hero-category">
Kilimani • Near Yaya Centre
</div>
<p class="hero-price">
Ksh 5000 <small>/= night</small>
</p>
</div>
</div>
</div>
<!-- INDICATORS -->
<div class="hero-carousel-indicators">
<span class="hero-indicator active" data-slide="0" aria-label="Go to slide 1"></span>
<span class="hero-indicator " data-slide="1" aria-label="Go to slide 2"></span>
<span class="hero-indicator " data-slide="2" aria-label="Go to slide 3"></span>
</div>
</div>
</div>
</section>
<style>
.hero-carousel-item, .hero-carousel-item .hero-img-wrapper { overflow: hidden !important; }
.hero-img { display: block !important; }
.hero-carousel-item.active .hero-img { transform: none !important; }
.hero-carousel-item.active .hero-img-wrapper { transform: scale(1.05); transition: transform 6s ease; }
</style>
<!-- ============================================
LISTINGS GRID SKELETON UI
============================================ -->
<div class="listings-skeleton" id="listingsSkeleton" aria-hidden="true">
<div class="skeleton-card">
<div class="skeleton-card-img shimmer"></div>
<div class="skeleton-card-body">
<div class="skeleton-card-line shimmer" style="width:35%;height:10px;"></div>
<div class="skeleton-card-line shimmer" style="width:70%;height:16px;margin-top:6px;"></div>
<div class="skeleton-card-line shimmer" style="width:45%;height:20px;margin-top:12px;"></div>
<div class="skeleton-card-line shimmer" style="width:80%;height:12px;margin-top:10px;"></div>
<div class="skeleton-card-actions">
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
</div>
</div>
</div>
<div class="skeleton-card">
<div class="skeleton-card-img shimmer"></div>
<div class="skeleton-card-body">
<div class="skeleton-card-line shimmer" style="width:35%;height:10px;"></div>
<div class="skeleton-card-line shimmer" style="width:70%;height:16px;margin-top:6px;"></div>
<div class="skeleton-card-line shimmer" style="width:45%;height:20px;margin-top:12px;"></div>
<div class="skeleton-card-line shimmer" style="width:80%;height:12px;margin-top:10px;"></div>
<div class="skeleton-card-actions">
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
</div>
</div>
</div>
<div class="skeleton-card">
<div class="skeleton-card-img shimmer"></div>
<div class="skeleton-card-body">
<div class="skeleton-card-line shimmer" style="width:35%;height:10px;"></div>
<div class="skeleton-card-line shimmer" style="width:70%;height:16px;margin-top:6px;"></div>
<div class="skeleton-card-line shimmer" style="width:45%;height:20px;margin-top:12px;"></div>
<div class="skeleton-card-line shimmer" style="width:80%;height:12px;margin-top:10px;"></div>
<div class="skeleton-card-actions">
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
</div>
</div>
</div>
<div class="skeleton-card">
<div class="skeleton-card-img shimmer"></div>
<div class="skeleton-card-body">
<div class="skeleton-card-line shimmer" style="width:35%;height:10px;"></div>
<div class="skeleton-card-line shimmer" style="width:70%;height:16px;margin-top:6px;"></div>
<div class="skeleton-card-line shimmer" style="width:45%;height:20px;margin-top:12px;"></div>
<div class="skeleton-card-line shimmer" style="width:80%;height:12px;margin-top:10px;"></div>
<div class="skeleton-card-actions">
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
</div>
</div>
</div>
<div class="skeleton-card">
<div class="skeleton-card-img shimmer"></div>
<div class="skeleton-card-body">
<div class="skeleton-card-line shimmer" style="width:35%;height:10px;"></div>
<div class="skeleton-card-line shimmer" style="width:70%;height:16px;margin-top:6px;"></div>
<div class="skeleton-card-line shimmer" style="width:45%;height:20px;margin-top:12px;"></div>
<div class="skeleton-card-line shimmer" style="width:80%;height:12px;margin-top:10px;"></div>
<div class="skeleton-card-actions">
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
</div>
</div>
</div>
<div class="skeleton-card">
<div class="skeleton-card-img shimmer"></div>
<div class="skeleton-card-body">
<div class="skeleton-card-line shimmer" style="width:35%;height:10px;"></div>
<div class="skeleton-card-line shimmer" style="width:70%;height:16px;margin-top:6px;"></div>
<div class="skeleton-card-line shimmer" style="width:45%;height:20px;margin-top:12px;"></div>
<div class="skeleton-card-line shimmer" style="width:80%;height:12px;margin-top:10px;"></div>
<div class="skeleton-card-actions">
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
<div class="skeleton-pill shimmer"></div>
</div>
</div>
</div>
</div>
<!-- ============================================
ALL LISTINGS GRID (hidden until ready)
============================================ -->
<div class="row listings-grid-loading" id="gallery-container">
<div class="col-md-4 col-sm-6 mb-4" data-location="utawala" style="margin-bottom: 15px !important;">
<div class="listing-card">
<!-- Image Gallery for Grid Items -->
<div class="image-gallery" id="grid-gallery-205">
<!-- Main Image Display -->
<img src="/media/listings/main/Dinning.jpg"
alt="1 Bedroom Apartment with a balcony along the Eastern By Pass - Image 1"
class="listing-img clickable-image"
loading="lazy"
style="width: 100%; height: 100%; object-fit: cover; object-position: center;"
data-gallery-id="grid-205"
data-image-index="0"
data-listing-id="205"
data-listing-title="1 Bedroom Apartment with a balcony along the Eastern By Pass"
data-listing-location="Utawala"
data-listing-phone="+254711656082"
data-listing-price="3500.00"
data-listing-type="one_bedroom_staycation"
data-listing-image="/media/listings/main/Dinning.jpg"
data-listing-guests="2"
data-listing-bedrooms="1"
data-listing-bathrooms="1"
data-listing-description="Sun\u002D Side Homes: Home Away from Home\u000D\u000AStep into comfort and relaxation in our cozy apartment designed to feel just like home. Whether you’re here for a short getaway or a longer stay, you’ll enjoy a welcoming space with everything you need,from a fully equipped kitchen and comfortable beds to modern amenities.\u000D\u000AIn addition, The apartment is just 15 mins from the airport \u0026 SGR. Perfect for solo travelers or couples, —this is your home away from home.Kick back and relax in this calm, stylish space."
data-all-images='/media/listings/main/Dinning.jpg,/media/listings/extra/Dinning_2.jpg,/media/listings/extra/Living_room.jpg,/media/listings/extra/Couch.jpg,/media/listings/extra/Bed_1.jpg,/media/listings/extra/Kitchen.jpg,/media/listings/extra/Window_Bedroom.jpg,/media/listings/extra/Balcony.jpg'>
<!-- Navigation Arrows -->
<button class="gallery-nav prev" onclick="changeImage('grid-205', -1, event)">
<i class="fa fa-chevron-left" aria-hidden="true"></i>
</button>
<button class="gallery-nav next" onclick="changeImage('grid-205', 1, event)">
<i class="fa fa-chevron-right" aria-hidden="true"></i>
</button>
<!-- Thumbnails -->
<div class="gallery-thumbnails">
<div class="gallery-thumbnail active"
onclick="goToImage('grid-205', 0, event)">
<img src="/media/listings/main/Dinning.jpg" alt="Thumbnail 1">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 1, event)">
<img src="/media/listings/extra/Dinning_2.jpg" alt="Thumbnail 2">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 2, event)">
<img src="/media/listings/extra/Living_room.jpg" alt="Thumbnail 3">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 3, event)">
<img src="/media/listings/extra/Couch.jpg" alt="Thumbnail 4">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 4, event)">
<img src="/media/listings/extra/Bed_1.jpg" alt="Thumbnail 5">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 5, event)">
<img src="/media/listings/extra/Kitchen.jpg" alt="Thumbnail 6">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 6, event)">
<img src="/media/listings/extra/Window_Bedroom.jpg" alt="Thumbnail 7">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-205', 7, event)">
<img src="/media/listings/extra/Balcony.jpg" alt="Thumbnail 8">
</div>
</div>
</div>
<div class="property-type-badge one_bedroom_staycation" style="top: 15px; right: 15px; padding: 5px 12px; font-size: 0.6rem;">
One Bedroom
</div>
<div class="listing-info" style="padding: 20px;">
<h3 style="
font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, sans-serif;
font-size: 0.75rem;
font-weight: 600;
letter-spacing: -0.2px;
line-height: 1.3;
margin-bottom: 8px;
color: #111;
text-transform: capitalize;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
">
1 Bedroom Apartment With A Balcony Along The Eastern By Pass
<span class="verified-badge" style="color: #34a853; font-size: 0.9rem; margin-left: 4px; vertical-align: middle;" title="Verified property">
<i class="fa fa-check-circle" aria-hidden="true"></i>
</span>
</h3>
<p class="location" style="font-size: 0.75rem; color: #666; margin-bottom: 10px;">
<i class="fa fa-map-marker" style="color: #007bff;" aria-hidden="true"></i>
Utawala • Astrol
</p>
<p class="price-tag" style="font-size: 0.75rem; font-weight: 700; color: #28a745; margin: 10px 0;">
Ksh 3500 <small style="font-size: 0.9rem; color: #666;">/= night</small>
</p>
<!-- AMENITIES -->
<div style="margin: 15px 0; padding: 10px 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee;">
<h4 style="font-size: 0.9rem; font-weight: 600; margin-bottom: 8px; color: #555;">Amenities</h4>
<div style="display: flex; gap: 15px; flex-wrap: wrap;">
<div style="display: flex; align-items: center; gap: 5px;">
<i class="fa fa-wifi" aria-hidden="true" style="color: #007bff; font-size: 0.9rem;"></i>
<span style="font-size: 0.8rem; color: #555;">WiFi</span>
</div>
<div style="display: flex; align-items: center; gap: 5px;">
<i class="fa fa-car" aria-hidden="true" style="color: #28a745; font-size: 0.9rem;"></i>
<span style="font-size: 0.8rem; color: #555;">Parking</span>
</div>
<a href="/listing/1-bedroom-appartment-with-a-balacony-along-the-eastern-by-pass-abf20a13/" title="View full details, photos, and amenities">
<i class="fa fa-search" aria-hidden="true"></i> View full Details
</a>
</div>
</div>
<!-- Action Buttons -->
<div class="listing-actions" style="display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; width: 100%;">
<!-- Share Button -->
<button type="button" class="share-btn"
data-url="/listing/1-bedroom-appartment-with-a-balacony-along-the-eastern-by-pass-abf20a13/"
data-title="1 Bedroom Apartment with a balcony along the Eastern By Pass"
aria-label="Share this listing"
style="
width: 44px;
height: 44px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
color: #333;
font-size: 1.2rem;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
cursor: pointer;
flex-shrink: 0;
padding: 0;
"
onmouseover="this.style.background='rgba(255,255,255,0.35)'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.background='rgba(255,255,255,0.2)'; this.style.transform='translateY(0)';">
<i class="fa fa-share-alt" aria-hidden="true" style="color: #555;"></i>
</button>
<!-- Book Now Button -->
<a href="/book/205/"
style="background-color: #D32F2F; color: white; padding: 10px 16px; text-decoration: none; border-radius: 30px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: all 0.3s ease; flex: 1 1 auto; min-width: 0; justify-content: center; white-space: nowrap; font-size: clamp(0.85rem, 2.5vw, 1rem);"
onmouseover="this.style.backgroundColor='#e04a50'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.backgroundColor='#D32F2F'; this.style.transform='translateY(0)';"
title="Book this property online">
<i class="fa fa-calendar" aria-hidden="true"></i>
<span>Book now</span>
</a>
<!-- WhatsApp Button -->
<a href="https://wa.me/254798246467?text=Hello%21%20I%27d%20like%20to%20inquire%20about%20this%20property%3A%0AProperty%3A%201%20Bedroom%20Apartment%20with%20a%20balcony%20along%20the%20Eastern%20By%20Pass%0ALocation%3A%20Utawala%20-%20Astrol%0AHost%3A%20Faith%20Njuguna%0APrice%3A%20KSh%203500.00/night%0AProperty%20Type%3A%20%20One%20Bedroom%20%0A%0AView%20Property%3A%20https%3A//bnb.co.ke/listing/1-bedroom-appartment-with-a-balacony-along-the-eastern-by-pass-abf20a13/" target="_blank"
style="background-color: #25D366; color: white; padding: 10px 16px; text-decoration: none; border-radius: 30px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: all 0.3s ease; flex: 1 1 auto; min-width: 0; justify-content: center; white-space: nowrap; font-size: clamp(0.8rem, 2vw, 0.9rem);"
onmouseover="this.style.backgroundColor='#1da851'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.backgroundColor='#25D366'; this.style.transform='translateY(0)';"
title="Contact admin to book on behalf of client">
<i class="fab fa-whatsapp" aria-hidden="true"></i>
<span>Chat </span>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-4 col-sm-6 mb-4" data-location="westlands" style="margin-bottom: 15px !important;">
<div class="listing-card">
<!-- Image Gallery for Grid Items -->
<div class="image-gallery" id="grid-gallery-362">
<!-- Main Image Display -->
<img src="/media/listings/main/1000009111.jpg"
alt="Shangri-la residency Westlands - Image 1"
class="listing-img clickable-image"
loading="lazy"
style="width: 100%; height: 100%; object-fit: cover; object-position: center;"
data-gallery-id="grid-362"
data-image-index="0"
data-listing-id="362"
data-listing-title="Shangri-la residency Westlands"
data-listing-location="Westlands"
data-listing-phone="+254758313582"
data-listing-price="6000.00"
data-listing-type="one_bedroom_staycation"
data-listing-image="/media/listings/main/1000009111.jpg"
data-listing-guests="3"
data-listing-bedrooms="1"
data-listing-bathrooms="1"
data-listing-description="No description available"
data-all-images='/media/listings/main/1000009111.jpg,/media/listings/extra/1000009107.jpg,/media/listings/extra/1000009119.jpg,/media/listings/extra/1000009123.jpg,/media/listings/extra/1000009121.jpg,/media/listings/extra/1000009127.jpg,/media/listings/extra/1000009109.jpg'>
<!-- Navigation Arrows -->
<button class="gallery-nav prev" onclick="changeImage('grid-362', -1, event)">
<i class="fa fa-chevron-left" aria-hidden="true"></i>
</button>
<button class="gallery-nav next" onclick="changeImage('grid-362', 1, event)">
<i class="fa fa-chevron-right" aria-hidden="true"></i>
</button>
<!-- Thumbnails -->
<div class="gallery-thumbnails">
<div class="gallery-thumbnail active"
onclick="goToImage('grid-362', 0, event)">
<img src="/media/listings/main/1000009111.jpg" alt="Thumbnail 1">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-362', 1, event)">
<img src="/media/listings/extra/1000009107.jpg" alt="Thumbnail 2">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-362', 2, event)">
<img src="/media/listings/extra/1000009119.jpg" alt="Thumbnail 3">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-362', 3, event)">
<img src="/media/listings/extra/1000009123.jpg" alt="Thumbnail 4">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-362', 4, event)">
<img src="/media/listings/extra/1000009121.jpg" alt="Thumbnail 5">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-362', 5, event)">
<img src="/media/listings/extra/1000009127.jpg" alt="Thumbnail 6">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-362', 6, event)">
<img src="/media/listings/extra/1000009109.jpg" alt="Thumbnail 7">
</div>
</div>
</div>
<div class="property-type-badge one_bedroom_staycation" style="top: 15px; right: 15px; padding: 5px 12px; font-size: 0.6rem;">
One Bedroom
</div>
<div class="listing-info" style="padding: 20px;">
<h3 style="
font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, sans-serif;
font-size: 0.75rem;
font-weight: 600;
letter-spacing: -0.2px;
line-height: 1.3;
margin-bottom: 8px;
color: #111;
text-transform: capitalize;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
">
Shangri-La Residency Westlands
<span class="verified-badge" style="color: #34a853; font-size: 0.9rem; margin-left: 4px; vertical-align: middle;" title="Verified property">
<i class="fa fa-check-circle" aria-hidden="true"></i>
</span>
</h3>
<p class="location" style="font-size: 0.75rem; color: #666; margin-bottom: 10px;">
<i class="fa fa-map-marker" style="color: #007bff;" aria-hidden="true"></i>
Westlands • Shangri-la residency
</p>
<p class="price-tag" style="font-size: 0.75rem; font-weight: 700; color: #28a745; margin: 10px 0;">
Ksh 6000 <small style="font-size: 0.9rem; color: #666;">/= night</small>
</p>
<!-- AMENITIES -->
<div style="margin: 15px 0; padding: 10px 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee;">
<h4 style="font-size: 0.9rem; font-weight: 600; margin-bottom: 8px; color: #555;">Amenities</h4>
<div style="display: flex; gap: 15px; flex-wrap: wrap;">
<div style="display: flex; align-items: center; gap: 5px;">
<i class="fa fa-wifi" aria-hidden="true" style="color: #007bff; font-size: 0.9rem;"></i>
<span style="font-size: 0.8rem; color: #555;">WiFi</span>
</div>
<div style="display: flex; align-items: center; gap: 5px;">
<i class="fa fa-car" aria-hidden="true" style="color: #28a745; font-size: 0.9rem;"></i>
<span style="font-size: 0.8rem; color: #555;">Parking</span>
</div>
<a href="/listing/shangri-la-residency-westlands-09a57625/" title="View full details, photos, and amenities">
<i class="fa fa-search" aria-hidden="true"></i> View full Details
</a>
</div>
</div>
<!-- Action Buttons -->
<div class="listing-actions" style="display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; width: 100%;">
<!-- Share Button -->
<button type="button" class="share-btn"
data-url="/listing/shangri-la-residency-westlands-09a57625/"
data-title="Shangri-la residency Westlands"
aria-label="Share this listing"
style="
width: 44px;
height: 44px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
color: #333;
font-size: 1.2rem;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
cursor: pointer;
flex-shrink: 0;
padding: 0;
"
onmouseover="this.style.background='rgba(255,255,255,0.35)'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.background='rgba(255,255,255,0.2)'; this.style.transform='translateY(0)';">
<i class="fa fa-share-alt" aria-hidden="true" style="color: #555;"></i>
</button>
<!-- Book Now Button -->
<a href="/book/362/"
style="background-color: #D32F2F; color: white; padding: 10px 16px; text-decoration: none; border-radius: 30px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: all 0.3s ease; flex: 1 1 auto; min-width: 0; justify-content: center; white-space: nowrap; font-size: clamp(0.85rem, 2.5vw, 1rem);"
onmouseover="this.style.backgroundColor='#e04a50'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.backgroundColor='#D32F2F'; this.style.transform='translateY(0)';"
title="Book this property online">
<i class="fa fa-calendar" aria-hidden="true"></i>
<span>Book now</span>
</a>
<!-- WhatsApp Button -->
<a href="https://wa.me/254798246467?text=Hello%21%20I%27d%20like%20to%20inquire%20about%20this%20property%3A%0AProperty%3A%20Shangri-la%20residency%20Westlands%0ALocation%3A%20Westlands%20-%20Shangri-la%20residency%0AHost%3A%20Anagwe%0APrice%3A%20KSh%206000.00/night%0AProperty%20Type%3A%20%20One%20Bedroom%20%0A%0AView%20Property%3A%20https%3A//bnb.co.ke/listing/shangri-la-residency-westlands-09a57625/" target="_blank"
style="background-color: #25D366; color: white; padding: 10px 16px; text-decoration: none; border-radius: 30px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: all 0.3s ease; flex: 1 1 auto; min-width: 0; justify-content: center; white-space: nowrap; font-size: clamp(0.8rem, 2vw, 0.9rem);"
onmouseover="this.style.backgroundColor='#1da851'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.backgroundColor='#25D366'; this.style.transform='translateY(0)';"
title="Contact admin to book on behalf of client">
<i class="fab fa-whatsapp" aria-hidden="true"></i>
<span>Chat </span>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-4 col-sm-6 mb-4" data-location="kilimani" style="margin-bottom: 15px !important;">
<div class="listing-card">
<!-- Image Gallery for Grid Items -->
<div class="image-gallery" id="grid-gallery-246">
<!-- Main Image Display -->
<img src="/media/listings/main/IMG_4185-HDR.jpg"
alt="Cozy Nest 1BR Kilimani - Image 1"
class="listing-img clickable-image"
loading="lazy"
style="width: 100%; height: 100%; object-fit: cover; object-position: center;"
data-gallery-id="grid-246"
data-image-index="0"
data-listing-id="246"
data-listing-title="Cozy Nest 1BR Kilimani"
data-listing-location="Kilimani"
data-listing-phone="+254708738333"
data-listing-price="5000.00"
data-listing-type="one_bedroom_staycation"
data-listing-image="/media/listings/main/IMG_4185-HDR.jpg"
data-listing-guests="2"
data-listing-bedrooms="1"
data-listing-bathrooms="1"
data-listing-description="Cozy Nest is a beautifully furnished one bedroom with calm ambiance located at the heart of Kilimani. Its unique because of its proximity to the city center and inportant amenities. Its best for both short and long stay."
data-all-images='/media/listings/main/IMG_4185-HDR.jpg,/media/listings/extra/IMG_4164-HDR.jpg,/media/listings/extra/IMG_4119-HDR.jpg,/media/listings/extra/IMG_4098-HDR.jpg,/media/listings/extra/_C9A0095.JPG,/media/listings/extra/Screenshot_20260122_204447.jpg,/media/listings/extra/IMG_4140-HDR.jpg,/media/listings/extra/IMG_4170-HDR.jpg'>
<!-- Navigation Arrows -->
<button class="gallery-nav prev" onclick="changeImage('grid-246', -1, event)">
<i class="fa fa-chevron-left" aria-hidden="true"></i>
</button>
<button class="gallery-nav next" onclick="changeImage('grid-246', 1, event)">
<i class="fa fa-chevron-right" aria-hidden="true"></i>
</button>
<!-- Thumbnails -->
<div class="gallery-thumbnails">
<div class="gallery-thumbnail active"
onclick="goToImage('grid-246', 0, event)">
<img src="/media/listings/main/IMG_4185-HDR.jpg" alt="Thumbnail 1">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 1, event)">
<img src="/media/listings/extra/IMG_4164-HDR.jpg" alt="Thumbnail 2">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 2, event)">
<img src="/media/listings/extra/IMG_4119-HDR.jpg" alt="Thumbnail 3">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 3, event)">
<img src="/media/listings/extra/IMG_4098-HDR.jpg" alt="Thumbnail 4">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 4, event)">
<img src="/media/listings/extra/_C9A0095.JPG" alt="Thumbnail 5">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 5, event)">
<img src="/media/listings/extra/Screenshot_20260122_204447.jpg" alt="Thumbnail 6">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 6, event)">
<img src="/media/listings/extra/IMG_4140-HDR.jpg" alt="Thumbnail 7">
</div>
<div class="gallery-thumbnail "
onclick="goToImage('grid-246', 7, event)">
<img src="/media/listings/extra/IMG_4170-HDR.jpg" alt="Thumbnail 8">
</div>
</div>
</div>
<div class="property-type-badge one_bedroom_staycation" style="top: 15px; right: 15px; padding: 5px 12px; font-size: 0.6rem;">
One Bedroom
</div>
<div class="listing-info" style="padding: 20px;">
<h3 style="
font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, sans-serif;
font-size: 0.75rem;
font-weight: 600;
letter-spacing: -0.2px;
line-height: 1.3;
margin-bottom: 8px;
color: #111;
text-transform: capitalize;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
">
Cozy Nest 1br Kilimani
<span class="verified-badge" style="color: #34a853; font-size: 0.9rem; margin-left: 4px; vertical-align: middle;" title="Verified property">
<i class="fa fa-check-circle" aria-hidden="true"></i>
</span>
</h3>
<p class="location" style="font-size: 0.75rem; color: #666; margin-bottom: 10px;">
<i class="fa fa-map-marker" style="color: #007bff;" aria-hidden="true"></i>
Kilimani • Near Yaya Centre
</p>
<p class="price-tag" style="font-size: 0.75rem; font-weight: 700; color: #28a745; margin: 10px 0;">
Ksh 5000 <small style="font-size: 0.9rem; color: #666;">/= night</small>
</p>
<!-- AMENITIES -->
<div style="margin: 15px 0; padding: 10px 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee;">
<h4 style="font-size: 0.9rem; font-weight: 600; margin-bottom: 8px; color: #555;">Amenities</h4>
<div style="display: flex; gap: 15px; flex-wrap: wrap;">
<div style="display: flex; align-items: center; gap: 5px;">
<i class="fa fa-wifi" aria-hidden="true" style="color: #007bff; font-size: 0.9rem;"></i>
<span style="font-size: 0.8rem; color: #555;">WiFi</span>
</div>
<div style="display: flex; align-items: center; gap: 5px;">
<i class="fa fa-car" aria-hidden="true" style="color: #28a745; font-size: 0.9rem;"></i>
<span style="font-size: 0.8rem; color: #555;">Parking</span>
</div>
<a href="/listing/cozy-nest-1br-kilimani-2a654757/" title="View full details, photos, and amenities">
<i class="fa fa-search" aria-hidden="true"></i> View full Details
</a>
</div>
</div>
<!-- Action Buttons -->
<div class="listing-actions" style="display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; width: 100%;">
<!-- Share Button -->
<button type="button" class="share-btn"
data-url="/listing/cozy-nest-1br-kilimani-2a654757/"
data-title="Cozy Nest 1BR Kilimani"
aria-label="Share this listing"
style="
width: 44px;
height: 44px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
color: #333;
font-size: 1.2rem;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
cursor: pointer;
flex-shrink: 0;
padding: 0;
"
onmouseover="this.style.background='rgba(255,255,255,0.35)'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.background='rgba(255,255,255,0.2)'; this.style.transform='translateY(0)';">
<i class="fa fa-share-alt" aria-hidden="true" style="color: #555;"></i>
</button>
<!-- Book Now Button -->
<a href="/book/246/"
style="background-color: #D32F2F; color: white; padding: 10px 16px; text-decoration: none; border-radius: 30px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: all 0.3s ease; flex: 1 1 auto; min-width: 0; justify-content: center; white-space: nowrap; font-size: clamp(0.85rem, 2.5vw, 1rem);"
onmouseover="this.style.backgroundColor='#e04a50'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.backgroundColor='#D32F2F'; this.style.transform='translateY(0)';"
title="Book this property online">
<i class="fa fa-calendar" aria-hidden="true"></i>
<span>Book now</span>
</a>
<!-- WhatsApp Button -->
<a href="https://wa.me/254798246467?text=Hello%21%20I%27d%20like%20to%20inquire%20about%20this%20property%3A%0AProperty%3A%20Cozy%20Nest%201BR%20Kilimani%0ALocation%3A%20Kilimani%20-%20Near%20Yaya%20Centre%0AHost%3A%20Rocky%20Wesonga%0APrice%3A%20KSh%205000.00/night%0AProperty%20Type%3A%20%20One%20Bedroom%20%0A%0AView%20Property%3A%20https%3A//bnb.co.ke/listing/cozy-nest-1br-kilimani-2a654757/" target="_blank"
style="background-color: #25D366; color: white; padding: 10px 16px; text-decoration: none; border-radius: 30px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; transition: all 0.3s ease; flex: 1 1 auto; min-width: 0; justify-content: center; white-space: nowrap; font-size: clamp(0.8rem, 2vw, 0.9rem);"
onmouseover="this.style.backgroundColor='#1da851'; this.style.transform='translateY(-2px)';"
onmouseout="this.style.backgroundColor='#25D366'; this.style.transform='translateY(0)';"
title="Contact admin to book on behalf of client">
<i class="fab fa-whatsapp" aria-hidden="true"></i>
<span>Chat </span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ============================================
STYLES
============================================ -->
<style>
/* ============================================
HERO CAROUSEL SKELETON
============================================ */
.hero-carousel { position: relative; }
.hero-skeleton {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
z-index: 5;
overflow: hidden;
transition: opacity 0.3s ease;
}
.hero-skeleton-item { position: absolute; inset: 0; }
.hero-skeleton-img {
position: absolute;
inset: 0;
background-color: #d8d8d8;
}
.hero-skeleton-overlay {
position: absolute;
inset: 0;
background: linear-gradient(
to top,
rgba(0, 0, 0, 0.75) 0%,
rgba(0, 0, 0, 0.35) 40%,
rgba(0, 0, 0, 0.10) 100%
);
}
.hero-skeleton-content {
position: absolute;
left: 1.25rem;
right: 1.25rem;
bottom: 2rem;
display: flex;
flex-direction: column;
gap: 0.75rem;
z-index: 2;
}
.hero-skeleton-line {
height: 14px;
border-radius: 6px;
background-color: rgba(255, 255, 255, 0.30);
}
/* Shared shimmer */
.shimmer {
position: relative;
overflow: hidden;
background-color: rgba(255, 255, 255, 0.22);
}
.shimmer::after {
content: "";
position: absolute;
inset: 0;
transform: translateX(-100%);
background: linear-gradient(
90deg,
transparent 0%,
rgba(255, 255, 255, 0.45) 50%,
transparent 100%
);
animation: heroShimmer 1.4s infinite;
}
@keyframes heroShimmer {
100% { transform: translateX(100%); }
}
.hero-skeleton.hidden {
opacity: 0;
pointer-events: none;
}
#heroCarouselInner {
opacity: 0;
transition: opacity 0.35s ease;
}
#heroCarouselInner.ready { opacity: 1; }
.hero-img {
opacity: 0;
transition: opacity 0.4s ease;
}
.hero-img.loaded { opacity: 1; }
/* ============================================
LISTINGS GRID SKELETON
============================================ */
.listings-skeleton {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin-bottom: 30px;
}
.skeleton-card {
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.skeleton-card-img {
width: 100%;
height: 280px;
background-color: #e0e0e0;
}
.skeleton-card-body {
padding: 20px;
display: flex;
flex-direction: column;
gap: 4px;
}
.skeleton-card-line {
height: 14px;
border-radius: 6px;
background-color: #e0e0e0;
}
.skeleton-card-actions {
display: flex;
gap: 8px;
margin-top: 16px;
}
.skeleton-pill {
flex: 1;
height: 40px;
border-radius: 20px;
background-color: #e0e0e0;
}
.skeleton-pill:first-child {
flex: 0 0 44px;
border-radius: 50%;
}
.listings-skeleton .shimmer {
background-color: #e0e0e0;
}
.listings-skeleton .shimmer::after {
background: linear-gradient(
90deg,
transparent 0%,
rgba(255, 255, 255, 0.65) 50%,
transparent 100%
);
animation: listingsShimmer 1.4s infinite;
}
@keyframes listingsShimmer {
100% { transform: translateX(100%); }
}
.listings-grid-loading {
opacity: 0;
visibility: hidden;
transition: opacity 0.4s ease;
}
.listings-grid-loaded {
opacity: 1;
visibility: visible;
}
.listings-skeleton.hidden {
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
}
/* ============================================
NO-LISTINGS BOT & TYPEWRITER
============================================ */
.dancing-bot-wrapper { flex-shrink: 0; }
.dancing-bot {
position: relative;
width: 110px;
height: 120px;
animation: floatBot 2s ease-in-out infinite;
cursor: pointer;
}
@keyframes floatBot {
0% { transform: translateY(0px); }
50% { transform: translateY(-8px); }
100% { transform: translateY(0px); }
}
.antenna {
position: absolute;
width: 6px;
height: 24px;
background: #2c3e66;
border-radius: 10px;
top: -12px;
left: 50%;
transform: translateX(-50%);
animation: wiggle 0.5s infinite alternate;
z-index: 2;
}
.antenna::after {
content: "⚡";
position: absolute;
top: -22px;
left: -5px;
font-size: 14px;
animation: spark 1s infinite;
}
@keyframes wiggle {
0% { transform: translateX(-50%) rotate(-6deg); }
100% { transform: translateX(-50%) rotate(6deg); }
}
@keyframes spark {
0%, 100% { opacity: 0.6; text-shadow: 0 0 0px gold; }
50% { opacity: 1; text-shadow: 0 0 6px #ffb347; }
}
.bot-head {
position: relative;
width: 70px;
height: 65px;
background: radial-gradient(circle at 30% 30%, #e0e7ff, #b7c9e2);
border-radius: 50% 45% 55% 50%;
margin: 0 auto;
box-shadow: 0 6px 12px rgba(0,0,0,0.1);
animation: headBob 0.8s infinite alternate;
}
@keyframes headBob {
0% { transform: translateY(0px) rotate(0deg); }
100% { transform: translateY(3px) rotate(2deg); }
}
.eyes {
display: flex;
gap: 20px;
justify-content: center;
padding-top: 22px;
}
.eye {
width: 12px;
height: 12px;
background: #0a1a2f;
border-radius: 50%;
box-shadow: 0 0 0 2px #fef9e6;
animation: blink 3s infinite;
}
.eye.right { animation-delay: 0.2s; }
@keyframes blink {
0%, 90%, 100% { transform: scaleY(1); }
95% { transform: scaleY(0.1); }
}
.simple-body {
width: 45px;
height: 35px;
background: linear-gradient(135deg, #3e5a8f, #2b3b5c);
border-radius: 20px 20px 16px 16px;
margin: 5px auto 0;
box-shadow: inset 0 1px 3px rgba(255,255,200,0.3), 0 3px 6px rgba(0,0,0,0.1);
}
.arm {
position: absolute;
width: 22px;
height: 8px;
background: #2e4a7c;
border-radius: 20px;
top: 65px;
}
.left-arm {
left: -8px;
transform: rotate(-20deg);
animation: swingLeft 0.6s infinite alternate;
}
.right-arm {
right: -8px;
transform: rotate(20deg);
animation: swingRight 0.6s infinite alternate;
}
@keyframes swingLeft {
0% { transform: rotate(-25deg); }
100% { transform: rotate(15deg); }
}
@keyframes swingRight {
0% { transform: rotate(25deg); }
100% { transform: rotate(-15deg); }
}
.typewriter-container {
display: inline-flex;
align-items: baseline;
background: rgba(255,255,245,0.5);
padding: 12px 20px;
border-radius: 60px;
backdrop-filter: blur(4px);
font-size: 1.3rem;
font-weight: 600;
font-family: 'Inter', system-ui, 'Segoe UI', sans-serif;
}
.typewriter-text {
background: linear-gradient(125deg, #1c2b44, #2a3f62);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
letter-spacing: -0.2px;
white-space: nowrap;
}
.cursor-blink {
display: inline-block;
width: 3px;
height: 1.4rem;
background: #ff8c42;
margin-left: 5px;
border-radius: 4px;
animation: cursorFlash 0.8s step-end infinite;
}
@keyframes cursorFlash {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
/* ============================================
RESPONSIVE
============================================ */
@media (max-width: 991px) {
.listings-skeleton { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
.hero-skeleton-content {
left: 1rem;
right: 1rem;
bottom: 1.5rem;
}
.hero-skeleton-line { height: 12px; }
}
@media (max-width: 575px) {
.listings-skeleton { grid-template-columns: 1fr; }
.skeleton-card-img { height: 220px; }
}
@media (max-width: 550px) {
.typewriter-text { font-size: 1rem; white-space: normal; word-break: keep-all; }
.typewriter-container { padding: 8px 16px; }
.cursor-blink { height: 1.2rem; }
.dancing-bot { width: 95px; height: 100px; }
.bot-head { width: 60px; height: 55px; }
.simple-body { width: 40px; height: 28px; }
}
@media (max-width: 480px) {
.listing-actions { gap: 6px; }
.listing-actions a { padding: 10px 12px !important; }
.listing-actions a[href^="tel:"] span {
display: inline !important;
margin-left: 4px;
font-size: 0.85rem;
}
}
@media (max-width: 360px) {
.listing-actions a[href*="whatsapp"] span { font-size: 0.75rem; }
}
@media (max-width: 768px) {
.listing-actions { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
.shimmer::after { animation: none; }
.hero-img,
#heroCarouselInner,
.hero-skeleton,
.listings-grid-loading,
.listings-skeleton.hidden {
transition: none;
}
}
</style>
<!-- ============================================
SCRIPTS
============================================ -->
<script>
/* ---------- HERO CAROUSEL SKELETON ---------- */
(function () {
const skeleton = document.getElementById('heroSkeleton');
const inner = document.getElementById('heroCarouselInner');
if (!skeleton || !inner) return;
const HERO_MIN_MS = 600;
const heroStart = Date.now();
const firstImg = inner.querySelector('.hero-img');
let revealed = false;
function reveal() {
if (revealed) return;
revealed = true;
const wait = Math.max(0, HERO_MIN_MS - (Date.now() - heroStart));
setTimeout(function () {
inner.classList.add('ready');
skeleton.classList.add('hidden');
setTimeout(function () {
if (skeleton && skeleton.parentNode) {
skeleton.parentNode.removeChild(skeleton);
}
}, 400);
}, wait);
}
if (!firstImg) { reveal(); return; }
if (firstImg.complete && firstImg.naturalWidth > 0) { reveal(); return; }
firstImg.addEventListener('load', reveal, { once: true });
firstImg.addEventListener('error', reveal, { once: true });
setTimeout(reveal, 4000);
})();
/* ---------- LISTINGS GRID SKELETON ---------- */
(function () {
const skeleton = document.getElementById('listingsSkeleton');
const gallery = document.getElementById('gallery-container');
if (!skeleton || !gallery) return;
const MIN_DISPLAY_MS = 800;
const MAX_WAIT_MS = 8000;
const startTime = Date.now();
let done = false;
function finish() {
if (done) return;
done = true;
const elapsed = Date.now() - startTime;
const remaining = Math.max(0, MIN_DISPLAY_MS - elapsed);
setTimeout(function () {
skeleton.classList.add('hidden');
gallery.classList.remove('listings-grid-loading');
gallery.classList.add('listings-grid-loaded');
setTimeout(function () {
if (skeleton && skeleton.parentNode) {
skeleton.parentNode.removeChild(skeleton);
}
}, 350);
}, remaining);
}
const cards = gallery.querySelectorAll('.listing-card');
if (cards.length === 0) { finish(); return; }
const images = Array.from(gallery.querySelectorAll('.listing-img'));
const total = images.length;
if (total === 0) { finish(); return; }
let loaded = 0;
images.forEach(function (img) {
function tick() {
loaded++;
if (loaded === total) finish();
}
if (img.complete && img.naturalWidth > 0) {
tick();
} else {
img.addEventListener('load', tick, { once: true });
img.addEventListener('error', tick, { once: true });
}
});
setTimeout(finish, MAX_WAIT_MS);
})();
/* ---------- SHARE BUTTONS ---------- */
document.addEventListener('DOMContentLoaded', function () {
const shareButtons = document.querySelectorAll('.share-btn');
shareButtons.forEach(button => {
button.addEventListener('click', async function (e) {
e.preventDefault();
const url = this.dataset.url;
const title = this.dataset.title;
const fullUrl = window.location.origin + url;
if (navigator.share) {
try {
await navigator.share({
title: title,
text: `Check out this amazing property: ${title}`,
url: fullUrl
});
} catch (err) {
console.log('Share cancelled or failed');
}
} else {
try {
await navigator.clipboard.writeText(fullUrl);
alert('Link copied to clipboard!');
} catch (err) {
alert('Please copy the link manually');
}
}
});
});
});
/* ---------- NO-LISTINGS BOT + TYPEWRITER ---------- */
(function () {
const el = document.getElementById('dynamic-message');
if (!el) return;
const message = " Hi buddy! chat our Assistant for fast, secure and seamless booking!";
let i = 0;
let isDeleting = false;
function animate() {
if (!isDeleting) {
if (i < message.length) {
el.innerText = message.slice(0, i + 1);
i++;
setTimeout(animate, 70);
} else {
isDeleting = true;
setTimeout(animate, 1800);
}
} else {
if (i > 0) {
el.innerText = message.slice(0, i - 1);
i--;
setTimeout(animate, 45);
} else {
isDeleting = false;
setTimeout(animate, 700);
}
}
}
animate();
const bot = document.querySelector('.dancing-bot');
if (bot) {
bot.addEventListener('click', () => {
bot.style.transform = 'scale(0.95)';
setTimeout(() => bot.style.transform = '', 150);
const eyes = document.querySelectorAll('.eye');
eyes.forEach(e => {
e.style.backgroundColor = '#ffcf40';
setTimeout(() => e.style.backgroundColor = '#0a1a2f', 200);
});
});
}
})();
</script>
<!-- Pagination Section -->
<section class="pagination-section" style="margin: 40px 0 20px 0;">
<div class="container-fluid">
<div class="pagination-wrapper" style="display: flex; justify-content: center; align-items: center; gap: 10px; flex-wrap: wrap;">
<!-- Previous Page Link -->
<!-- Page Numbers -->
<div class="page-numbers" style="display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;">
<span class="current-page"
style="background: #FF0000; color: white; min-width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; box-shadow: 0 4px 12px rgba(255,0,0,0.3);">
1
</span>
<a href="?page=2"
class="page-link"
style="background: white; color: #333; min-width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; border: 1px solid #ddd; font-weight: 500; transition: all 0.3s ease;"
onmouseover="this.style.background='#f8f9fa'; this.style.borderColor='#FF0000'; this.style.color='#FF0000';"
onmouseout="this.style.background='white'; this.style.borderColor='#ddd'; this.style.color='#333';">
2
</a>
<a href="?page=3"
class="page-link"
style="background: white; color: #333; min-width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; border: 1px solid #ddd; font-weight: 500; transition: all 0.3s ease;"
onmouseover="this.style.background='#f8f9fa'; this.style.borderColor='#FF0000'; this.style.color='#FF0000';"
onmouseout="this.style.background='white'; this.style.borderColor='#ddd'; this.style.color='#333';">
3
</a>
</div>
<!-- Next Page Link -->
<a href="?page=2"
class="pagination-btn next"
style="background: white; color: #333; padding: 10px 20px; text-decoration: none; border-radius: 30px; border: 1px solid #ddd; display: inline-flex; align-items: center; gap: 8px; font-weight: 500; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.05);"
onmouseover="this.style.background='#f8f9fa'; this.style.borderColor='#FF0000'; this.style.color='#FF0000';"
onmouseout="this.style.background='white'; this.style.borderColor='#ddd'; this.style.color='#333';">
Next
<i class="fa fa-chevron-right" aria-hidden="true" style="font-size: 12px;"></i>
</a>
</div>
</div>
</section>
<!-- Location-Specific SEO Content Section for BnB -->
<!-- Content for "all" location (Home page) -->
<section class="seo-location-section">
<div class="container-fluid">
<div class="seo-content-wrapper">
<div class="seo-content-grid">
<!-- Main Content Card for All Locations -->
<div class="main-content-card">
<div class="content-grid">
<p class="content-paragraph">
Explore our extensive collection of <strong>BnB,staycations & holiday homes in Kenya!</strong>.
Whether you're planning a beach getaway in Diani, a business trip in Nairobi, a safari adventure in Maasai Mara,
or a mountain retreat in Nanyuki, we offer premium accommodation options across the country.
</p>
<p class="content-paragraph">
Our <strong>BnB,staycations & holiday homes in Kenya!</strong> cater to various travel needs including family vacations,
romantic getaways, corporate stays, and group retreats. Each property is carefully selected to provide
exceptional experiences with professional hosting and modern amenities.
</p>
</div>
</div>
<!-- Top Destinations Section -->
<div class="nearby-areas-card">
<h3 class="nearby-title">
Explore more locations!
</h3>
<div class="nearby-links-container">
<a href="/location/kilimani/"
class="nearby-link">
Kilimani
</a>
<a href="/location/westlands/"
class="nearby-link">
Westlands
</a>
<a href="/location/kileleshwa/"
class="nearby-link">
Kileleshwa
</a>
<a href="/location/waiyaki_way/"
class="nearby-link">
Waiyaki way
</a>
<a href="/location/riverside/"
class="nearby-link">
Riverside
</a>
<a href="/location/pangani/"
class="nearby-link">
Pangani
</a>
<a href="/location/parklands/"
class="nearby-link">
Parklands
</a>
<a href="/location/ngara/"
class="nearby-link">
Ngara
</a>
<a href="/location/garden_city/"
class="nearby-link">
Garden City
</a>
<a href="/location/roysambu/"
class="nearby-link">
Roysambu
</a>
<a href="/location/roasters/"
class="nearby-link">
Roasters
</a>
<a href="/location/mirema/"
class="nearby-link">
Mirema
</a>
<a href="/location/trm_drive/"
class="nearby-link">
Trm drive
</a>
<a href="/location/lumumba_drive/"
class="nearby-link">
Lumumba drive
</a>
<a href="/location/kitisuru/"
class="nearby-link">
Kitisuru
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Enhanced Mobile-Responsive Image Modal -->
<div id="imageModal" class="modal" style="display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.95);">
<div class="modal-content" style="position: relative; margin: auto; padding: 0; width: 100%; height: 100%; display: flex; flex-direction: column; background: #000;">
<!-- Close Button -->
<span class="close" style="position: fixed; top: 15px; right: 15px; color: white; font-size: 32px; font-weight: bold; cursor: pointer; z-index: 10000; background: rgba(0,0,0,0.7); border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; line-height: 1; touch-action: manipulation;">
×
</span>
<!-- Modal Navigation -->
<button class="modal-nav prev" onclick="modalPrevImage()" style="position: absolute; top: 50%; left: 10px; transform: translateY(-50%); background: rgba(255,255,255,0.25); border: none; width: 44px; height: 44px; border-radius: 50%; color: white; font-size: 20px; cursor: pointer; z-index: 10000; display: flex; align-items: center; justify-content: center; backdrop-filter: blur(10px); touch-action: manipulation; min-width: 44px; min-height: 44px;">
<i class="fa fa-chevron-left" aria-hidden="true"></i>
</button>
<button class="modal-nav next" onclick="modalNextImage()" style="position: absolute; top: 50%; right: 10px; transform: translateY(-50%); background: rgba(255,255,255,0.25); border: none; width: 44px; height: 44px; border-radius: 50%; color: white; font-size: 20px; cursor: pointer; z-index: 10000; display: flex; align-items: center; justify-content: center; backdrop-filter: blur(10px); touch-action: manipulation; min-width: 44px; min-height: 44px;">
<i class="fa fa-chevron-right" aria-hidden="true"></i>
</button>
<!-- Image Counter -->
<div id="modalImageCounter" style="position: fixed; top: 15px; left: 15px; background: rgba(0,0,0,0.7); color: white; padding: 6px 12px; border-radius: 20px; font-size: 14px; z-index: 10000; font-weight: 500;">
<span id="currentImage">1</span> / <span id="totalImages">1</span>
</div>
<div class="modal-body" style="display: flex; flex-direction: column; height: 100%;">
<!-- Image Section - Adjusts based on screen size -->
<div class="modal-image-container" style="flex: 1; position: relative; overflow: hidden; background: #000; min-height: 40vh;">
<img id="modalImage" src="" alt="" style="width: 100%; height: 100%; object-fit: contain; object-position: center; -webkit-touch-callout: none; user-select: none;">
</div>
<!-- Listing Info Section - Collapsible on mobile -->
<div class="modal-listing-info" style="flex-shrink: 0; max-height: 45vh; padding: 15px; background: white; overflow-y: auto; border-top-left-radius: 20px; border-top-right-radius: 20px; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); position: relative;">
<!-- Collapse handle for mobile -->
<div class="collapse-handle" style="position: absolute; top: 8px; left: 50%; transform: translateX(-50%); width: 40px; height: 4px; background: #ddd; border-radius: 2px; cursor: grab; touch-action: manipulation;"></div>
<div style="margin-top: 10px;">
<h3 id="modalListingTitle" style="margin: 0 0 10px 0; color: #333; font-size: 1.2rem; font-weight: bold; line-height: 1.3;"></h3>
<div style="display: flex; flex-direction: column; gap: 8px; margin-bottom: 15px;">
<p id="modalListingPrice" class="price" style="color: #28a745; font-weight: bold; margin: 0; font-size: 1.2rem; order: 1;">
KSh <span id="priceText"></span> <small style="font-size: 0.85rem; color: #666;">/ night</small>
</p>
<p id="modalListingLocation" class="location" style="color: #666; margin: 0; font-size: 0.95rem; display: flex; align-items: center; gap: 6px; order: 2;">
<i class="fa fa-map-marker" aria-hidden="true" style="color: #007bff; flex-shrink: 0;"></i>
<span id="locationText" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"></span>
</p>
</div>
<div class="listing-details" style="margin-bottom: 15px; display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;">
<div id="modalListingGuests" class="detail-item" style="display: flex; align-items: center; gap: 6px; color: #333; padding: 6px 10px; background: #f8f9fa; border-radius: 8px; font-size: 0.9rem; min-height: 36px;">
<i class="fa fa-users" aria-hidden="true" style="color: #007bff; font-size: 0.9rem;"></i>
<span id="guestsText"></span> guests
</div>
<div id="modalListingBedrooms" class="detail-item" style="display: flex; align-items: center; gap: 6px; color: #333; padding: 6px 10px; background: #f8f9fa; border-radius: 8px; font-size: 0.9rem; min-height: 36px;">
<i class="fa fa-bed" aria-hidden="true" style="color: #007bff; font-size: 0.9rem;"></i>
<span id="bedroomsText"></span> bedrooms
</div>
<div id="modalListingBathrooms" class="detail-item" style="display: flex; align-items: center; gap: 6px; color: #333; padding: 6px 10px; background: #f8f9fa; border-radius: 8px; font-size: 0.9rem; min-height: 36px;">
<i class="fa fa-bath" aria-hidden="true" style="color: #007bff; font-size: 0.9rem;"></i>
<span id="bathroomsText"></span> bathrooms
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
(function() {
// Wait for DOM ready
document.addEventListener('DOMContentLoaded', function() {
const carousel = document.getElementById('heroCarousel');
if (!carousel) return;
const slides = document.querySelectorAll('.hero-carousel-item');
const indicators = document.querySelectorAll('.hero-indicator');
const prevBtn = document.querySelector('.hero-carousel-control-prev');
const nextBtn = document.querySelector('.hero-carousel-control-next');
let currentSlide = 0;
const totalSlides = slides.length;
let autoInterval = null;
let touchStartX = 0;
let touchEndX = 0;
// If only one slide, hide navigation and stop auto-play
if (totalSlides <= 1) {
if (prevBtn) prevBtn.style.display = 'none';
if (nextBtn) nextBtn.style.display = 'none';
const indicatorsContainer = document.querySelector('.hero-carousel-indicators');
if (indicatorsContainer) indicatorsContainer.style.display = 'none';
return;
}
// Functions
function showSlide(index) {
if (index >= totalSlides) index = 0;
if (index < 0) index = totalSlides - 1;
currentSlide = index;
slides.forEach((slide, i) => {
slide.classList.toggle('active', i === currentSlide);
});
indicators.forEach((ind, i) => {
ind.classList.toggle('active', i === currentSlide);
});
}
function nextSlide() {
showSlide(currentSlide + 1);
resetAutoInterval();
}
function prevSlide() {
showSlide(currentSlide - 1);
resetAutoInterval();
}
function goToSlide(index) {
showSlide(index);
resetAutoInterval();
}
function startAutoSlide() {
if (autoInterval) clearInterval(autoInterval);
autoInterval = setInterval(() => {
nextSlide();
}, 5000);
}
function resetAutoInterval() {
if (autoInterval) clearInterval(autoInterval);
startAutoSlide();
}
function stopAutoSlide() {
if (autoInterval) clearInterval(autoInterval);
}
// Event listeners for buttons
if (prevBtn) prevBtn.addEventListener('click', prevSlide);
if (nextBtn) nextBtn.addEventListener('click', nextSlide);
indicators.forEach((ind, i) => {
ind.addEventListener('click', () => goToSlide(i));
});
// Touch swipe support
carousel.addEventListener('touchstart', (e) => {
touchStartX = e.changedTouches[0].screenX;
stopAutoSlide();
}, { passive: true });
carousel.addEventListener('touchend', (e) => {
touchEndX = e.changedTouches[0].screenX;
const diff = touchEndX - touchStartX;
if (Math.abs(diff) > 50) {
if (diff > 0) {
prevSlide();
} else {
nextSlide();
}
}
startAutoSlide();
});
// Pause on hover / touch
carousel.addEventListener('mouseenter', stopAutoSlide);
carousel.addEventListener('mouseleave', startAutoSlide);
carousel.addEventListener('touchstart', stopAutoSlide);
carousel.addEventListener('touchend', startAutoSlide);
// Optional: respect reduced motion
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');
if (prefersReducedMotion.matches) {
stopAutoSlide();
slides.forEach(slide => {
slide.style.transition = 'none';
});
}
// Initialize
showSlide(0);
startAutoSlide();
});
})();
</script>
<script>
let modalCurrentImageIndex = 0;
let modalAllImages = [];
let modalCurrentListingId = null;
document.addEventListener('DOMContentLoaded', function() {
const modal = document.getElementById('imageModal');
const modalImage = document.getElementById('modalImage');
const modalListingTitle = document.getElementById('modalListingTitle');
const modalListingPrice = document.getElementById('modalListingPrice');
const priceText = document.getElementById('priceText');
const modalListingLocation = document.getElementById('modalListingLocation');
const locationText = document.getElementById('locationText');
const modalListingGuests = document.getElementById('modalListingGuests');
const guestsText = document.getElementById('guestsText');
const modalListingBedrooms = document.getElementById('modalListingBedrooms');
const bedroomsText = document.getElementById('bedroomsText');
const modalListingBathrooms = document.getElementById('modalListingBathrooms');
const bathroomsText = document.getElementById('bathroomsText');
const closeBtn = document.querySelector('.close');
const currentImageSpan = document.getElementById('currentImage');
const totalImagesSpan = document.getElementById('totalImages');
// Add click event to all listing images
document.querySelectorAll('.clickable-image').forEach(img => {
img.addEventListener('click', function(e) {
// Check if click came from gallery navigation
if (e.target.closest('.gallery-nav') || e.target.closest('.gallery-thumbnail')) {
return; // Don't open modal if clicking navigation
}
const listingData = {
id: this.getAttribute('data-listing-id'),
title: this.getAttribute('data-listing-title'),
location: this.getAttribute('data-listing-location'),
price: this.getAttribute('data-listing-price'),
image: this.getAttribute('data-listing-image'),
guests: this.getAttribute('data-listing-guests'),
bedrooms: this.getAttribute('data-listing-bedrooms'),
bathrooms: this.getAttribute('data-listing-bathrooms')
};
// Get all images for this listing
const allImagesAttr = this.getAttribute('data-all-images');
modalAllImages = allImagesAttr ? allImagesAttr.split(',') : [listingData.image];
modalCurrentImageIndex = parseInt(this.getAttribute('data-image-index')) || 0;
modalCurrentListingId = listingData.id;
// Populate modal with listing data
modalImage.src = modalAllImages[modalCurrentImageIndex];
modalImage.alt = listingData.title;
modalListingTitle.textContent = listingData.title;
priceText.textContent = listingData.price;
locationText.textContent = listingData.location;
guestsText.textContent = listingData.guests;
bedroomsText.textContent = listingData.bedrooms;
bathroomsText.textContent = listingData.bathrooms;
// Update image counter
currentImageSpan.textContent = modalCurrentImageIndex + 1;
totalImagesSpan.textContent = modalAllImages.length;
// Show modal
modal.style.display = 'block';
document.body.classList.add('modal-open');
document.body.style.overflow = 'hidden';
});
});
// Close modal when clicking X
closeBtn.addEventListener('click', function() {
modal.style.display = 'none';
document.body.classList.remove('modal-open');
document.body.style.overflow = 'auto';
modalAllImages = [];
modalCurrentImageIndex = 0;
modalCurrentListingId = null;
});
// Close modal when clicking outside the content
modal.addEventListener('click', function(e) {
if (e.target === modal) {
modal.style.display = 'none';
document.body.classList.remove('modal-open');
document.body.style.overflow = 'auto';
modalAllImages = [];
modalCurrentImageIndex = 0;
modalCurrentListingId = null;
}
});
// Close modal with Escape key
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && modal.style.display === 'block') {
modal.style.display = 'none';
document.body.classList.remove('modal-open');
document.body.style.overflow = 'auto';
modalAllImages = [];
modalCurrentImageIndex = 0;
modalCurrentListingId = null;
}
});
// Add keyboard navigation for images
document.addEventListener('keydown', function(e) {
if (modal.style.display === 'block') {
if (e.key === 'ArrowRight') {
modalNextImage();
} else if (e.key === 'ArrowLeft') {
modalPrevImage();
}
}
});
// Swipe gesture support for mobile
let touchStartX = 0;
let touchEndX = 0;
modal.addEventListener('touchstart', function(e) {
touchStartX = e.changedTouches[0].screenX;
}, { passive: true });
modal.addEventListener('touchend', function(e) {
touchEndX = e.changedTouches[0].screenX;
handleSwipe();
}, { passive: true });
function handleSwipe() {
const swipeThreshold = 50;
const diff = touchStartX - touchEndX;
if (Math.abs(diff) > swipeThreshold) {
if (diff > 0) {
modalNextImage();
} else {
modalPrevImage();
}
}
}
});
// Modal Image Navigation
function modalNextImage() {
if (modalAllImages.length > 0) {
modalCurrentImageIndex = (modalCurrentImageIndex + 1) % modalAllImages.length;
updateModalImage();
}
}
function modalPrevImage() {
if (modalAllImages.length > 0) {
modalCurrentImageIndex = (modalCurrentImageIndex - 1 + modalAllImages.length) % modalAllImages.length;
updateModalImage();
}
}
function updateModalImage() {
const modalImage = document.getElementById('modalImage');
const currentImageSpan = document.getElementById('currentImage');
if (modalImage && modalAllImages[modalCurrentImageIndex]) {
modalImage.src = modalAllImages[modalCurrentImageIndex];
currentImageSpan.textContent = modalCurrentImageIndex + 1;
}
}
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Function to share or copy URL
function shareListing(url, title) {
const fullUrl = window.location.origin + url;
if (navigator.share) {
navigator.share({
title: title,
text: 'Check out this unit on Bnb.co.ke: ' + title,
url: fullUrl,
}).catch(err => {
console.log('Share failed:', err);
copyToClipboard(fullUrl, title);
});
} else {
copyToClipboard(fullUrl, title);
}
}
// Fallback: copy to clipboard with notification
function copyToClipboard(text, title) {
navigator.clipboard.writeText(text).then(() => {
showNotification('Copied link to clipboard: ' + title);
}).catch(err => {
console.error('Could not copy text: ', err);
alert('Unable to copy. Please copy the URL manually: ' + text);
});
}
// Show temporary notification
function showNotification(message) {
const notification = document.createElement('div');
notification.textContent = message;
notification.style.position = 'fixed';
notification.style.bottom = '20px';
notification.style.left = '50%';
notification.style.transform = 'translateX(-50%)';
notification.style.backgroundColor = '#333';
notification.style.color = '#fff';
notification.style.padding = '12px 24px';
notification.style.borderRadius = '30px';
notification.style.zIndex = '10000';
notification.style.fontSize = '14px';
notification.style.fontWeight = '500';
notification.style.boxShadow = '0 2px 10px rgba(0,0,0,0.2)';
document.body.appendChild(notification);
setTimeout(() => {
notification.style.opacity = '0';
setTimeout(() => notification.remove(), 300);
}, 2000);
}
// Attach click handlers to all share buttons
document.querySelectorAll('.share-btn, .hero-btn-share').forEach(btn => {
btn.addEventListener('click', function(e) {
e.preventDefault();
const url = this.getAttribute('data-url');
const title = this.getAttribute('data-title');
if (url && title) {
shareListing(url, title);
} else {
console.warn('Missing data-url or data-title on share button');
}
});
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// ==================== LOCATION CUSTOM DROPDOWN ====================
const locationDropdown = document.querySelector('.location-dropdown');
if (locationDropdown) {
const trigger = locationDropdown.querySelector('.dropdown-trigger-location');
const menu = locationDropdown.querySelector('.dropdown-menu-location');
const selectedText = locationDropdown.querySelector('.selected-location-text');
const optionsContainer = locationDropdown.querySelector('.location-options-container');
const allLocationOptions = Array.from(optionsContainer.querySelectorAll('.dropdown-option-location'));
const searchInput = locationDropdown.querySelector('.location-search-input');
const hiddenLocationSelect = document.getElementById('locationFilter');
function closeLocationDropdown(e) {
if (!locationDropdown.contains(e.target)) {
if (menu) menu.style.display = 'none';
if (searchInput) searchInput.value = '';
filterLocationOptions('');
}
}
function filterLocationOptions(searchTerm) {
const term = searchTerm.toLowerCase();
allLocationOptions.forEach(option => {
const text = option.querySelector('span').innerText.toLowerCase();
if (term === '' || text.includes(term)) {
option.style.display = 'flex';
} else {
option.style.display = 'none';
}
});
}
if (searchInput) {
searchInput.addEventListener('input', function(e) {
filterLocationOptions(e.target.value);
});
}
if (trigger) {
trigger.addEventListener('click', function(e) {
e.stopPropagation();
const isVisible = menu.style.display === 'block';
document.querySelectorAll('.dropdown-menu-location, .dropdown-menu-property').forEach(m => {
if (m !== menu) m.style.display = 'none';
});
menu.style.display = isVisible ? 'none' : 'block';
if (!isVisible && searchInput) {
setTimeout(() => {
searchInput.focus();
if (window.innerWidth <= 768) {
searchInput.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
}, 100);
filterLocationOptions('');
}
});
}
allLocationOptions.forEach(option => {
option.addEventListener('click', function(e) {
e.stopPropagation();
const value = this.dataset.value;
const text = this.querySelector('span').innerText;
const icon = this.querySelector('i').cloneNode(true);
const url = this.dataset.url;
selectedText.innerText = text.replace(/[✨📍🏠]/g, '').trim();
const oldIcon = trigger.querySelector('i:first-child');
if (oldIcon) oldIcon.replaceWith(icon);
if (hiddenLocationSelect) {
for (let i = 0; i < hiddenLocationSelect.options.length; i++) {
if (hiddenLocationSelect.options[i].value === value) {
hiddenLocationSelect.selectedIndex = i;
break;
}
}
if (url && hiddenLocationSelect.options[hiddenLocationSelect.selectedIndex]) {
hiddenLocationSelect.options[hiddenLocationSelect.selectedIndex].setAttribute('data-url', url);
}
const changeEvent = new Event('change', { bubbles: true });
hiddenLocationSelect.dispatchEvent(changeEvent);
}
menu.style.display = 'none';
if (searchInput) searchInput.value = '';
filterLocationOptions('');
});
});
document.addEventListener('click', closeLocationDropdown);
}
// ==================== PROPERTY TYPE CUSTOM DROPDOWN ====================
const propertyDropdown = document.querySelector('.property-dropdown');
if (propertyDropdown) {
const trigger = propertyDropdown.querySelector('.dropdown-trigger-property');
const menu = propertyDropdown.querySelector('.dropdown-menu-property');
const selectedText = propertyDropdown.querySelector('.selected-property-text');
const optionsContainer = propertyDropdown.querySelector('.property-options-container');
const allPropertyOptions = Array.from(optionsContainer.querySelectorAll('.dropdown-option-property'));
const searchInput = propertyDropdown.querySelector('.property-search-input');
const hiddenPropertySelect = document.getElementById('propertyTypeFilter');
function closePropertyDropdown(e) {
if (!propertyDropdown.contains(e.target)) {
if (menu) menu.style.display = 'none';
if (searchInput) searchInput.value = '';
filterPropertyOptions('');
}
}
function filterPropertyOptions(searchTerm) {
const term = searchTerm.toLowerCase();
allPropertyOptions.forEach(option => {
const text = option.querySelector('span').innerText.toLowerCase();
if (term === '' || text.includes(term)) {
option.style.display = 'flex';
} else {
option.style.display = 'none';
}
});
}
if (searchInput) {
searchInput.addEventListener('input', function(e) {
filterPropertyOptions(e.target.value);
});
}
if (trigger) {
trigger.addEventListener('click', function(e) {
e.stopPropagation();
const isVisible = menu.style.display === 'block';
document.querySelectorAll('.dropdown-menu-location, .dropdown-menu-property').forEach(m => {
if (m !== menu) m.style.display = 'none';
});
menu.style.display = isVisible ? 'none' : 'block';
if (!isVisible && searchInput) {
setTimeout(() => {
searchInput.focus();
if (window.innerWidth <= 768) {
searchInput.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
}, 100);
filterPropertyOptions('');
}
});
}
allPropertyOptions.forEach(option => {
option.addEventListener('click', function(e) {
e.stopPropagation();
const value = this.dataset.value;
const text = this.querySelector('span').innerText;
const icon = this.querySelector('i').cloneNode(true);
selectedText.innerText = text;
const oldIcon = trigger.querySelector('i:first-child');
if (oldIcon) oldIcon.replaceWith(icon);
if (hiddenPropertySelect) {
for (let i = 0; i < hiddenPropertySelect.options.length; i++) {
if (hiddenPropertySelect.options[i].value === value) {
hiddenPropertySelect.selectedIndex = i;
break;
}
}
const changeEvent = new Event('change', { bubbles: true });
hiddenPropertySelect.dispatchEvent(changeEvent);
}
menu.style.display = 'none';
if (searchInput) searchInput.value = '';
filterPropertyOptions('');
});
});
document.addEventListener('click', closePropertyDropdown);
}
// ==================== APPLY FILTERS ====================
const locationFilter = document.getElementById('locationFilter');
const propertyTypeFilter = document.getElementById('propertyTypeFilter');
const applyFiltersBtn = document.getElementById('applyFilters');
if (applyFiltersBtn) {
applyFiltersBtn.addEventListener('click', function() {
applyFilters();
});
}
function applyFilters() {
const locationSlug = locationFilter ? locationFilter.value : 'all';
const propertyType = propertyTypeFilter ? propertyTypeFilter.value : '';
const urlParams = new URLSearchParams(window.location.search);
if (locationSlug === 'all' || !locationSlug) {
urlParams.delete('location');
} else {
const selectedOption = locationFilter ? locationFilter.options[locationFilter.selectedIndex] : null;
const locationUrl = selectedOption ? selectedOption.getAttribute('data-url') : null;
if (locationUrl) {
let newUrl = locationUrl;
if (propertyType) {
newUrl += `?property_type=${propertyType}`;
}
window.location.href = newUrl;
return;
}
}
if (propertyType) {
urlParams.set('property_type', propertyType);
} else {
urlParams.delete('property_type');
}
urlParams.delete('page');
const newUrl = window.location.pathname + (urlParams.toString() ? '?' + urlParams.toString() : '');
window.location.href = newUrl;
}
// ==================== INITIALIZE SELECTED VALUES ====================
function initializeSelectedValues() {
if (locationFilter && locationFilter.value !== 'all') {
const locationDropdownContainer = document.querySelector('.location-dropdown');
if (locationDropdownContainer) {
const selectedText = locationDropdownContainer.querySelector('.selected-location-text');
const selectedOption = locationFilter.options[locationFilter.selectedIndex];
if (selectedText && selectedOption) {
selectedText.innerText = selectedOption.text;
}
}
}
if (propertyTypeFilter && propertyTypeFilter.value) {
const propertyDropdownContainer = document.querySelector('.property-dropdown');
if (propertyDropdownContainer) {
const selectedText = propertyDropdownContainer.querySelector('.selected-property-text');
const selectedOption = propertyTypeFilter.options[propertyTypeFilter.selectedIndex];
if (selectedText && selectedOption) {
selectedText.innerText = selectedOption.text;
const trigger = propertyDropdownContainer.querySelector('.dropdown-trigger-property');
const options = propertyDropdownContainer.querySelectorAll('.dropdown-option-property');
options.forEach(option => {
if (option.dataset.value === propertyTypeFilter.value) {
const newIcon = option.querySelector('i').cloneNode(true);
const oldIcon = trigger.querySelector('i:first-child');
if (oldIcon) oldIcon.replaceWith(newIcon);
}
});
}
}
}
}
initializeSelectedValues();
});
</script>
<!-- Fixed JavaScript for Desktop Sliding -->
<script>
let currentSlide = 0;
let slideInterval;
const slides = document.querySelectorAll('.listing-slide');
const totalSlides = slides.length;
const isMobile = window.innerWidth < 768;
// Only initialize slider functionality if we have slides
if (totalSlides > 0) {
function updateSlider() {
const slidesContainer = document.getElementById('slidesContainer');
const dots = document.querySelectorAll('.slider-dot');
// If only one slide, just make sure it's properly displayed
if (totalSlides === 1) {
if (slides[0]) {
slides[0].classList.add('active-slide');
slides[0].style.opacity = '1';
slides[0].style.transform = 'scale(1)';
}
if (slidesContainer) {
slidesContainer.style.transform = 'translateX(0)';
}
return;
}
if (isMobile) {
// Mobile: Traditional sliding
slidesContainer.style.transform = `translateX(-${currentSlide * 100}%)`;
} else {
// Desktop: Use active class for animation
slides.forEach((slide, index) => {
slide.classList.toggle('active-slide', index === currentSlide);
// Add/remove opacity and scale for desktop
if (!isMobile) {
if (index === currentSlide) {
slide.style.opacity = '1';
slide.style.transform = 'scale(1)';
} else {
slide.style.opacity = '0.7';
slide.style.transform = 'scale(0.95)';
}
}
});
// Center the active slide on desktop
if (!isMobile && slidesContainer) {
const activeSlide = slides[currentSlide];
if (activeSlide) {
const slideWidth = activeSlide.offsetWidth;
const containerWidth = slidesContainer.parentElement.offsetWidth;
if (totalSlides <= 3) {
// For 3 or fewer slides, don't scroll, just show them all
slidesContainer.style.transform = 'translateX(0)';
} else {
// For more than 3 slides, calculate proper centering
const scrollPosition = (slideWidth * currentSlide) - (containerWidth / 2) + (slideWidth / 2);
const maxScroll = slideWidth * totalSlides - containerWidth;
const finalPosition = Math.max(0, Math.min(scrollPosition, maxScroll));
slidesContainer.style.transform = `translateX(-${finalPosition}px)`;
}
}
}
}
// Update dots if they exist
dots.forEach((dot, index) => {
if (dot) {
dot.classList.toggle('active', index === currentSlide);
}
});
}
function nextSlide() {
if (totalSlides <= 1) return; // Don't navigate if only one slide
if (currentSlide < totalSlides - 1) {
currentSlide++;
} else {
currentSlide = 0;
}
updateSlider();
resetAutoSlide();
}
function prevSlide() {
if (totalSlides <= 1) return; // Don't navigate if only one slide
if (currentSlide > 0) {
currentSlide--;
} else {
currentSlide = totalSlides - 1;
}
updateSlider();
resetAutoSlide();
}
function goToSlide(index) {
if (totalSlides <= 1) return; // Don't navigate if only one slide
if (index >= 0 && index < totalSlides) {
currentSlide = index;
updateSlider();
resetAutoSlide();
}
}
function startAutoSlide() {
if (totalSlides > 1) {
slideInterval = setInterval(nextSlide, 5000);
}
}
function resetAutoSlide() {
clearInterval(slideInterval);
startAutoSlide();
}
// Initialize
updateSlider();
if (totalSlides > 1) {
startAutoSlide();
}
// Handle window resize
let resizeTimeout;
window.addEventListener('resize', () => {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(() => {
// Recalculate on resize
const newIsMobile = window.innerWidth < 768;
if (newIsMobile !== isMobile) {
// Reset to first slide on breakpoint change
currentSlide = 0;
updateSlider();
}
}, 250);
});
// Pause auto-slide on hover
const slider = document.getElementById('listingsSlider');
if (slider) {
slider.addEventListener('mouseenter', () => {
clearInterval(slideInterval);
});
slider.addEventListener('mouseleave', () => {
if (totalSlides > 1) {
startAutoSlide();
}
});
// Touch support for mobile
let touchStartX = 0;
let touchEndX = 0;
slider.addEventListener('touchstart', (e) => {
touchStartX = e.changedTouches[0].screenX;
clearInterval(slideInterval);
});
slider.addEventListener('touchend', (e) => {
touchEndX = e.changedTouches[0].screenX;
if (totalSlides > 1) {
handleSwipe();
startAutoSlide();
}
});
function handleSwipe() {
const swipeThreshold = 50;
const diff = touchStartX - touchEndX;
if (Math.abs(diff) > swipeThreshold) {
if (diff > 0) {
nextSlide();
} else {
prevSlide();
}
}
}
}
}
// Image Gallery Functions (remain the same)
function changeImage(galleryId, direction, event) {
if (event) {
event.stopPropagation();
event.preventDefault();
}
let gallery;
if (galleryId.startsWith('grid-')) {
gallery = document.getElementById(`grid-gallery-${galleryId.replace('grid-', '')}`);
} else if (galleryId.startsWith('featured-')) {
gallery = document.getElementById(`featured-gallery-${galleryId.replace('featured-', '')}`);
} else {
gallery = document.getElementById(`featured-gallery-${galleryId}`);
}
if (!gallery) return;
const mainImage = gallery.querySelector('.listing-img');
const thumbnails = gallery.querySelectorAll('.gallery-thumbnail');
const images = gallery.querySelectorAll('.gallery-thumbnail img');
if (!mainImage || images.length === 0) return;
let currentIndex = parseInt(mainImage.getAttribute('data-image-index')) || 0;
let newIndex = (currentIndex + direction + images.length) % images.length;
// Update main image
mainImage.src = images[newIndex].src;
mainImage.setAttribute('data-image-index', newIndex);
mainImage.setAttribute('data-listing-image', images[newIndex].src);
// Update thumbnails
thumbnails.forEach((thumb, index) => {
thumb.classList.toggle('active', index === newIndex);
});
}
function goToImage(galleryId, index, event) {
if (event) {
event.stopPropagation();
event.preventDefault();
}
let gallery;
if (galleryId.startsWith('grid-')) {
gallery = document.getElementById(`grid-gallery-${galleryId.replace('grid-', '')}`);
} else if (galleryId.startsWith('featured-')) {
gallery = document.getElementById(`featured-gallery-${galleryId.replace('featured-', '')}`);
} else {
gallery = document.getElementById(`featured-gallery-${galleryId}`);
}
if (!gallery) return;
const mainImage = gallery.querySelector('.listing-img');
const thumbnails = gallery.querySelectorAll('.gallery-thumbnail');
const images = gallery.querySelectorAll('.gallery-thumbnail img');
if (!mainImage || images.length === 0 || index >= images.length) return;
// Update main image
mainImage.src = images[index].src;
mainImage.setAttribute('data-image-index', index);
mainImage.setAttribute('data-listing-image', images[index].src);
// Update thumbnails
thumbnails.forEach((thumb, idx) => {
thumb.classList.toggle('active', idx === index);
});
}
</script>
<script>
(function() {
'use strict';
// ===== ELEMENTS =====
var locationPlaceholder = document.getElementById('locationPlaceholder');
var propertyPlaceholder = document.getElementById('propertyPlaceholder');
// ===== DYNAMIC WORDS =====
var locationWords = ['Kilimani', 'Kileleshwa', 'Westlands', 'Karen', 'Lavington', 'Parklands', 'Runda', 'Muthaiga'];
var propertyWords = ['Cabin', 'Studio', 'Apartment', 'Villa', 'Cottage', 'Bungalow', 'Penthouse', 'Townhouse'];
var locationIndex = 0;
var propertyIndex = 0;
var locationLocked = false;
var propertyLocked = false;
// ===== HIDDEN SELECTS =====
var hiddenLoc = document.getElementById('locationFilter');
var hiddenProp = document.getElementById('propertyTypeFilter');
// ===== DETERMINE LOCK STATE FROM SERVER-RENDERED SELECTS =====
// A field should be LOCKED only if a real (non-default) value is selected.
var locHasValue = hiddenLoc && hiddenLoc.value && hiddenLoc.value !== 'all';
var propHasValue = hiddenProp && hiddenProp.value && hiddenProp.value !== '';
if (locHasValue) {
var locOpt = hiddenLoc.querySelector('option[value="' + hiddenLoc.value + '"]');
if (locOpt) {
locationPlaceholder.textContent = locOpt.textContent.trim();
locationLocked = true;
}
}
if (propHasValue) {
var propOpt = hiddenProp.querySelector('option[value="' + hiddenProp.value + '"]');
if (propOpt) {
propertyPlaceholder.textContent = propOpt.textContent.trim();
propertyLocked = true;
}
}
// ===== FALLBACK: sessionStorage (only used if server-rendered selects are empty) =====
// Important: only lock from storage if the server didn't already tell us the state.
try {
if (!locationLocked && sessionStorage.getItem('bnb_location_locked') === '1') {
locationLocked = true;
var savedLoc = sessionStorage.getItem('bnb_location_text');
if (savedLoc) locationPlaceholder.textContent = savedLoc;
}
if (!propertyLocked && sessionStorage.getItem('bnb_property_locked') === '1') {
propertyLocked = true;
var savedProp = sessionStorage.getItem('bnb_property_text');
if (savedProp) propertyPlaceholder.textContent = savedProp;
}
} catch (e) { /* sessionStorage may be disabled */ }
// ===== ROTATION FUNCTIONS =====
function rotateLocation() {
if (locationLocked) return;
locationIndex = (locationIndex + 1) % locationWords.length;
locationPlaceholder.style.opacity = '0';
setTimeout(function() {
if (locationLocked) return;
locationPlaceholder.textContent = locationWords[locationIndex];
locationPlaceholder.style.opacity = '1';
}, 200);
}
function rotateProperty() {
if (propertyLocked) return;
propertyIndex = (propertyIndex + 1) % propertyWords.length;
propertyPlaceholder.style.opacity = '0';
setTimeout(function() {
if (propertyLocked) return;
propertyPlaceholder.textContent = propertyWords[propertyIndex];
propertyPlaceholder.style.opacity = '1';
}, 200);
}
// ===== SMOOTH TRANSITION =====
locationPlaceholder.style.transition = 'opacity 0.3s ease';
propertyPlaceholder.style.transition = 'opacity 0.3s ease';
// ===== INTERVALS =====
var locationInterval = null;
var propertyInterval = null;
function startLocationRotation() {
if (locationLocked) return;
if (locationInterval) return; // already running
locationInterval = setInterval(rotateLocation, 2500);
}
function startPropertyRotation() {
if (propertyLocked) return;
if (propertyInterval) return; // already running
propertyInterval = setInterval(rotateProperty, 2500);
}
// Start only the ones that aren't locked
startLocationRotation();
startPropertyRotation();
// ===== LOCK HELPERS =====
function lockLocation(text) {
locationLocked = true;
if (locationInterval) {
clearInterval(locationInterval);
locationInterval = null;
}
if (text) locationPlaceholder.textContent = text;
locationPlaceholder.style.opacity = '1';
try {
sessionStorage.setItem('bnb_location_locked', '1');
if (text) sessionStorage.setItem('bnb_location_text', text);
} catch (e) {}
}
function lockProperty(text) {
propertyLocked = true;
if (propertyInterval) {
clearInterval(propertyInterval);
propertyInterval = null;
}
if (text) propertyPlaceholder.textContent = text;
propertyPlaceholder.style.opacity = '1';
try {
sessionStorage.setItem('bnb_property_locked', '1');
if (text) sessionStorage.setItem('bnb_property_text', text);
} catch (e) {}
}
// ===== LOCK ON TRIGGER CLICK =====
// (User opening the menu → freeze that field's placeholder on current word)
var locationTrigger = document.querySelector('.dropdown-trigger-location');
var propertyTrigger = document.querySelector('.dropdown-trigger-property');
if (locationTrigger) {
locationTrigger.addEventListener('click', function() {
// Only lock if the user is actually interacting with location
lockLocation(locationPlaceholder.textContent);
});
}
if (propertyTrigger) {
propertyTrigger.addEventListener('click', function() {
lockProperty(propertyPlaceholder.textContent);
});
}
// ===== LOCK ON OPTION SELECTION =====
document.querySelectorAll('.dropdown-option-location').forEach(function(option) {
option.addEventListener('click', function(e) {
e.stopPropagation();
var selectedText = this.querySelector('span').textContent.trim();
lockLocation(selectedText);
if (hiddenLoc) hiddenLoc.value = this.getAttribute('data-value') || 'all';
});
});
document.querySelectorAll('.dropdown-option-property').forEach(function(option) {
option.addEventListener('click', function(e) {
e.stopPropagation();
var selectedText = this.querySelector('span').textContent.trim();
lockProperty(selectedText);
if (hiddenProp) hiddenProp.value = this.getAttribute('data-value') || '';
});
});
// ===== LOCK ON SEARCH INPUT FOCUS =====
var locInput = document.querySelector('.location-search-input');
var propInput = document.querySelector('.property-search-input');
if (locInput) {
locInput.addEventListener('focus', function() {
lockLocation(locationPlaceholder.textContent);
});
}
if (propInput) {
propInput.addEventListener('focus', function() {
lockProperty(propertyPlaceholder.textContent);
});
}
// ===== APPLY FILTERS BUTTON =====
// Only lock a field if the user actually chose a value for it.
// The other field keeps rotating dynamically — even across the page reload.
var applyBtn = document.getElementById('applyFilters');
if (applyBtn) {
applyBtn.addEventListener('click', function() {
// ----- Location -----
if (hiddenLoc && hiddenLoc.value && hiddenLoc.value !== 'all') {
var lo = hiddenLoc.querySelector('option[value="' + hiddenLoc.value + '"]');
lockLocation(lo ? lo.textContent.trim() : locationPlaceholder.textContent);
} else {
// User did NOT filter by location → keep it dynamic
try {
sessionStorage.removeItem('bnb_location_locked');
sessionStorage.removeItem('bnb_location_text');
} catch (e) {}
}
// ----- Property Type -----
if (hiddenProp && hiddenProp.value) {
var po = hiddenProp.querySelector('option[value="' + hiddenProp.value + '"]');
lockProperty(po ? po.textContent.trim() : propertyPlaceholder.textContent);
} else {
// User did NOT filter by property type → keep it dynamic
try {
sessionStorage.removeItem('bnb_property_locked');
sessionStorage.removeItem('bnb_property_text');
} catch (e) {}
}
});
}
})();
</script>
</main>
<!-- BNBKE Contact FAB -->
<div style="position: fixed; bottom: 24px; right: 24px; z-index: 1000;">
<!-- Main FAB -->
<button id="bnbkeFab" style="
background: #FFFFFF;
color: #D32F2F !important;
border: 1px solid #dadce0;
border-radius: 20px;
padding: 6px 16px;
font-size: 12px;
font-weight: 900;
font-family: 'Google Sans', 'Roboto', Arial, sans-serif;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1),
0 0 20px rgba(255, 90, 95, 0.4),
0 0 35px rgba(255, 90, 95, 0.25);
display: flex;
align-items: center;
gap: 6px;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
min-width: 100px;
justify-content: center;
z-index: 1002;
outline: none;
height: 49px;
line-height: 1;
"
onfocus="this.style.outline='none'"
onmouseover="this.style.boxShadow='0 4px 15px rgba(0, 0, 0, 0.15), 0 0 25px rgba(255, 90, 95, 0.5), 0 0 40px rgba(255, 90, 95, 0.35)'; this.style.background='#FFFFFF'; this.style.setProperty('color', ' #D32F2F', 'important')"
onmouseout="this.style.boxShadow='0 2px 10px rgba(0, 0, 0, 0.1), 0 0 20px rgba(255, 90, 95, 0.4), 0 0 35px rgba(255, 90, 95, 0.25)'; this.style.background='#FFFFFF'; this.style.setProperty('color', ' #D32F2F', 'important')">
<i class="fa fa-comment" aria-hidden="true" style="font-size: 13px; color: inherit !important;"></i>
<span style="color: #000000; font-size: 12px;">Assistant</span>
</button>
<!-- Hidden Contact Options -->
<div id="bnbkeOptions" style="
position: absolute;
bottom: 70px;
right: 0;
display: none;
flex-direction: column;
gap: 10px;
z-index: 1001;
">
<!-- Book Now Option -->
<!-- Email Contact - Direct mailto link -->
<a href="mailto:[email protected]?subject=Inquiry%20about%20BNB&body=Hello,%20I%20would%20like%20to%20get%20more%20information..." style="
background: #FF5A5F; /* Airbnb-like coral color */
color: white !important;
border: none;
border-radius: 50px;
padding: 12px 20px;
font-size: 14px;
font-weight: 600;
font-family: 'Google Sans', 'Roboto', Arial, sans-serif;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
text-decoration: none;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
min-width: 140px;
justify-content: center;
animation: slideUp 0.4s ease-out;
">
<i class="fas fa-book" aria-hidden="true" style="font-size: 16px;"></i>
Email us
</a>
<!-- WhatsApp Booking - Using actual WhatsApp brand color -->
<a href="/book-via-whatsapp/" style="
background: #25D366;
color: white !important;
border: none;
border-radius: 50px;
padding: 12px 20px;
font-size: 14px;
font-weight: 600;
font-family: 'Google Sans', 'Roboto', Arial, sans-serif;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
text-decoration: none;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
min-width: 140px;
justify-content: center;
animation: slideUp 0.5s ease-out;
">
<i class="fab fa-whatsapp" aria-hidden="true" style="font-size: 16px;"></i>
Chat via whatsApp
</a>
</div>
</div>
<!-- PWA Installation Prompt -->
<div id="pwaInstallPrompt" class="pwa-install-prompt" style="display: none;">
<div class="pwa-prompt-content">
<div class="pwa-prompt-buttons">
<button id="pwaInstallBtn" class="pwa-install-btn">
<i class="fa fa-download" style="margin-right: 8px;"></i>
Install App
</button>
<button id="pwaLaterBtn" class="pwa-later-btn">Maybe Later</button>
<button id="pwaCloseBtn" class="pwa-close-btn">✕</button>
</div>
</div>
</div>
<!-- iOS Install Instructions -->
<div id="iosInstallPrompt" class="ios-install-prompt" style="display: none;">
<div class="ios-prompt-content">
<div class="ios-prompt-header">
<h3>Add to Home Screen</h3>
<p>For the best experience, add BnB to your home screen</p>
</div>
<div class="ios-instructions">
<div class="ios-step">
<div class="step-number">1</div>
<div class="step-text">Tap the <span class="share-icon">📤</span> Share button</div>
</div>
<div class="ios-step">
<div class="step-number">2</div>
<div class="step-text">Scroll down and tap<br>"Add to Home Screen"</div>
</div>
<div class="ios-step">
<div class="step-number">3</div>
<div class="step-text">Tap "Add" in the top right</div>
</div>
</div>
<div class="ios-prompt-buttons">
<button id="iosGotItBtn" class="ios-gotit-btn">Got it, thanks!</button>
<button id="iosDismissBtn" class="ios-dismiss-btn">Don't show again</button>
</div>
</div>
</div>
<style>
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideDown {
from {
opacity: 1;
transform: translateY(0);
}
to {
opacity: 0;
transform: translateY(20px);
}
}
@keyframes pulse {
0% {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1),
0 0 20px rgba(255, 90, 95, 0.4),
0 0 35px rgba(255, 90, 95, 0.25);
}
50% {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1),
0 0 25px rgba(255, 90, 95, 0.6),
0 0 45px rgba(255, 90, 95, 0.4);
}
100% {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1),
0 0 20px rgba(255, 90, 95, 0.4),
0 0 35px rgba(255, 90, 95, 0.25);
}
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-5px);
}
60% {
transform: translateY(-3px);
}
}
.pulse-animation {
animation: pulse 2s infinite;
}
.bounce-animation {
animation: bounce 2s infinite;
}
</style>
<script>
let isBnbkeOptionsVisible = false;
function toggleBnbkeOptions() {
const options = document.getElementById('bnbkeOptions');
const fab = document.getElementById('bnbkeFab');
if (!isBnbkeOptionsVisible) {
// Show options
options.style.display = 'flex';
options.style.animation = 'slideUp 0.3s ease-out';
fab.innerHTML = '<i class="fa fa-times" aria-hidden="true" style="font-size: 16px; color: inherit !important;"></i> Close';
fab.classList.remove('pulse-animation', 'bounce-animation');
} else {
// Hide options
options.style.animation = 'slideDown 0.3s ease-out';
setTimeout(() => {
options.style.display = 'none';
}, 250);
fab.innerHTML = '<i class="fa fa-comment" aria-hidden="true" style="font-size: 16px; color: inherit !important;"></i> <span style="color: #000000;">Assistant</span>';
}
isBnbkeOptionsVisible = !isBnbkeOptionsVisible;
}
// Add click event to BNBKE FAB
document.getElementById('bnbkeFab').addEventListener('click', toggleBnbkeOptions);
// Close options when clicking outside
document.addEventListener('click', function(event) {
const fabContainer = document.querySelector('div[style*="position: fixed; bottom: 24px; right: 24px;"]');
const options = document.getElementById('bnbkeOptions');
if (isBnbkeOptionsVisible && !fabContainer.contains(event.target)) {
toggleBnbkeOptions();
}
});
// Add animations on page load
document.addEventListener('DOMContentLoaded', function() {
const fab = document.getElementById('bnbkeFab');
// Start with bounce animation
fab.classList.add('bounce-animation');
// Switch to pulse after bounce completes
setTimeout(() => {
fab.classList.remove('bounce-animation');
fab.classList.add('pulse-animation');
}, 4000);
});
// Remove animations when user interacts
document.getElementById('bnbkeFab').addEventListener('mouseenter', function() {
this.classList.remove('pulse-animation', 'bounce-animation');
});
// Optional: Add tooltip
document.getElementById('bnbkeFab').title = "Get help or explore BNB vacation rentals";
</script>
<script>
// Simplified PWA Installation Manager
class PWAInstallManager {
constructor() {
this.deferredPrompt = null;
this.isiOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
this.isStandalone = window.matchMedia('(display-mode: standalone)').matches ||
window.navigator.standalone === true;
this.init();
}
init() {
// Initialize service worker
this.registerServiceWorker();
// Handle installation prompts
this.setupInstallPrompt();
// Setup event listeners
this.setupEventListeners();
// Check if should show prompts
setTimeout(() => this.checkPrompts(), 3000);
// Setup offline detection
this.setupOfflineDetection();
}
registerServiceWorker() {
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/static/sw.js')
.then(registration => {
console.log('✅ Service Worker registered:', registration.scope);
})
.catch(error => {
console.log('❌ Service Worker registration failed:', error);
});
});
}
}
setupInstallPrompt() {
// Standard PWA install prompt
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault();
this.deferredPrompt = e;
console.log('📱 PWA install prompt available');
});
// Track installation
window.addEventListener('appinstalled', () => {
console.log('🎉 PWA installed successfully');
this.hidePWAInstallPrompt();
this.showInstallSuccess();
});
}
setupEventListeners() {
// PWA install button
document.getElementById('pwaInstallBtn')?.addEventListener('click', () => {
this.installPWA();
});
// PWA later button
document.getElementById('pwaLaterBtn')?.addEventListener('click', () => {
this.hidePWAInstallPrompt();
// Don't store dismissal - will show again next session
});
// PWA close button
document.getElementById('pwaCloseBtn')?.addEventListener('click', () => {
this.hidePWAInstallPrompt();
// Don't store dismissal - will show again next session
});
// iOS got it button
document.getElementById('iosGotItBtn')?.addEventListener('click', () => {
this.hideIOSInstallPrompt();
// Don't store dismissal - will show again next session
});
// iOS dismiss button
document.getElementById('iosDismissBtn')?.addEventListener('click', () => {
this.hideIOSInstallPrompt();
// Don't store dismissal - will show again next session
});
}
async installPWA() {
if (this.deferredPrompt) {
try {
this.deferredPrompt.prompt();
const { outcome } = await this.deferredPrompt.userChoice;
if (outcome === 'accepted') {
console.log('✅ User accepted PWA install');
this.showInstallSuccess();
}
this.deferredPrompt = null;
this.hidePWAInstallPrompt();
} catch (error) {
console.error('Error installing PWA:', error);
}
}
}
checkPrompts() {
// Don't show if already installed
if (this.isStandalone) {
return;
}
// Show PWA prompt for non-iOS
if (this.shouldShowPWAPrompt()) {
this.showPWAInstallPrompt();
}
// Show iOS instructions for iOS
if (this.shouldShowiOSPrompt()) {
setTimeout(() => this.showIOSInstallPrompt(), 5000);
}
}
shouldShowPWAPrompt() {
// Don't show on iOS (use custom instructions instead)
if (this.isiOS) return false;
// Check if deferred prompt is available
return !!this.deferredPrompt;
}
shouldShowiOSPrompt() {
// Only show on iOS Safari
if (!this.isiOS) return false;
// Don't show if already installed
if (this.isStandalone) return false;
return true;
}
showPWAInstallPrompt() {
const prompt = document.getElementById('pwaInstallPrompt');
if (prompt) {
prompt.style.display = 'block';
console.log('📱 Showing PWA install prompt');
}
}
hidePWAInstallPrompt() {
const prompt = document.getElementById('pwaInstallPrompt');
if (prompt) {
prompt.style.display = 'none';
}
}
showIOSInstallPrompt() {
const prompt = document.getElementById('iosInstallPrompt');
if (prompt) {
prompt.style.display = 'flex';
console.log('🍎 Showing iOS install instructions');
}
}
hideIOSInstallPrompt() {
const prompt = document.getElementById('iosInstallPrompt');
if (prompt) {
prompt.style.display = 'none';
}
}
showInstallSuccess() {
this.showToast('🎉 BNBKE installed successfully!');
}
showToast(message, duration = 3000) {
const toast = document.createElement('div');
toast.style.cssText = `
position: fixed;
bottom: 80px;
left: 50%;
transform: translateX(-50%);
background: rgba(0, 0, 0, 0.9);
color: white;
padding: 12px 24px;
border-radius: 12px;
font-weight: 500;
z-index: 10001;
animation: slideUp 0.3s ease;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
`;
toast.textContent = message;
document.body.appendChild(toast);
setTimeout(() => {
toast.style.animation = 'slideDown 0.3s ease';
setTimeout(() => document.body.removeChild(toast), 300);
}, duration);
}
setupOfflineDetection() {
window.addEventListener('online', () => {
document.getElementById('offlineIndicator')?.classList.remove('show');
});
window.addEventListener('offline', () => {
document.getElementById('offlineIndicator')?.classList.add('show');
});
}
}
// Initialize when DOM is ready
document.addEventListener('DOMContentLoaded', () => {
new PWAInstallManager();
});
</script>
<!-- Bootstrap JS for Dropdowns -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<script src="/static/js/jquery-3.4.1.min.js"></script>
<script src="/static/js/ekko-lightbox.min.js"></script>
<script src="/static/js/bootstrap.js"></script>
<script src="/static/js/sw.js"></script>
<!-- Optional JavaScript -->
<script src="/static/js/jquery-3.4.1.min.js"></script>
<script src="/static/js/bootstrap.js"></script>
<script src="/static/js/ekko-lightbox.min.js"></script>
<script src="/static/js/custom.js"></script>
<script src="/static/js/sw.js"></script>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://bnb.co.ke/ |
|
2026-10-17 06:57:06 |
| 2 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:06 |
| 3 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:05 |
| 4 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:04 |
| 5 |
https://www.gosawa.com/ |
|
2026-10-17 06:57:04 |
| 6 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:03 |
| 7 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 06:57:03 |
| 8 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:03 |
| 9 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:02 |
| 10 |
https://andresubfkp.glifeblog.com/ |
|
2026-10-17 06:57:02 |
| 11 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:01 |
| 12 |
https://website.informer.com/tumbl… |
|
2026-10-17 06:57:01 |
| 13 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:01 |
| 14 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:00 |
| 15 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:57:00 |
| 16 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:56:59 |
| 17 |
https://corretorforexatibaiablog.b… |
|
2026-10-17 06:56:58 |
| 18 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:56:58 |
| 19 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 06:56:58 |
| 20 |
https://yirkosivirich.com/ |
|
2026-10-17 06:56:58 |