.search-main { padding-top: 56px; }
html, body { height: 100%; overflow: hidden; }
/* Force navbar visible and dark elements on this page */
.navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 10020; background: #ffffff !important; box-shadow: 0 2px 16px rgba(0,0,0,0.08); }
.sidebar-overlay { z-index: 20049 !important; position: fixed; }
.sidebar { z-index: 20050 !important; position: fixed; }
.navbar .brand-name, .navbar .phone-number, .navbar .nav-icon { color: #000 !important; }
.navbar .nav-icon svg { stroke: #000 !important; }
.navbar .hamburger-menu span { background-color: #000 !important; }
/* Fixed split layout (desktop) */
.search-list { position: fixed; left: 0; top: 56px; bottom: 0; width: 50vw; border-right: 1px solid #eee; overflow: auto; background: #fff; }
.search-map { position: fixed; right: 0; top: 56px; bottom: 0; width: 50vw; }
.search-controls { position: fixed; left: 0; top: 64px; width: 50vw; display: flex; align-items: center; gap: .9rem; padding: 1rem 1rem; background: #fff; z-index: 6; border-bottom: 1px solid #eee; }
.chip, .search-controls .chip { border: 1px solid #111 !important; background: #fff !important; padding: .8rem 1.1rem !important; border-radius: 0 !important; cursor: pointer; font-weight: 400; font-size: .95rem; }
.results-note { margin-left: auto; color: #6b6b6b; font-weight: 400; font-size: .95rem; }

.search-split { display: contents; }
.list-inner { padding: 120px 1rem 1rem; display: grid; place-items: center; min-height: 100%; }
.placeholder { color: #6b6b6b; font-weight: 400; padding: .75rem 0; font-size: 1.1rem; }

.search-map { position: fixed; }
#map { position: absolute; inset: 0; width: 100%; height: 100%; filter: grayscale(1) contrast(1.05); }
.map-overlay-tip { position: absolute; left: 12px; bottom: 12px; background: rgba(255,255,255,.9); border: 1px solid #e5e5e5; padding: .5rem .75rem; font-size: .85rem; color: #333; border-radius: 4px; }
/* Desaturate map controls for a cleaner look */
.leaflet-control-zoom a { background: #fff; color: #111; border: 1px solid #e1e1e1; box-shadow: none; }
.leaflet-control-zoom a:hover { background: #111; color: #fff; }
.leaflet-control-attribution { background: rgba(255,255,255,.8); color: #777; }

/* Modals */
.modal { position: fixed; inset: 0; background: rgba(255,255,255,.6); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; z-index: 10010; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .25s ease, visibility .25s ease; }
.modal.active { opacity: 1; visibility: visible; pointer-events: auto; }
.modal-card { background: #fff; width: min(92vw, 640px); border: 1px solid #e8e8e8; border-radius: 0; overflow: hidden; box-shadow: 0 8px 40px rgba(0,0,0,.12); transform: translateY(-6px); transition: transform .25s ease; }
.modal.active .modal-card { transform: translateY(0); }
.modal-header, .modal-footer { padding: .9rem 1rem; display: flex; align-items: center; justify-content: space-between; }
.modal-header h3 { margin: 0; font-size: 1.25rem; font-weight: 600; }
.modal-body { padding: 1rem; color: #6b6b6b; }
.modal-close { border: 0; background: transparent; font-size: 1.25rem; cursor: pointer; }

/* Buttons in modal use sharp edges */
.modal .btn-primary { border-radius: 0; background: #111; color: #fff; padding: .7rem 1rem; border: 0; }
.modal .btn-primary:hover { background: #000; }

/* Mobile */
.mobile-tabs { display: none; gap: .5rem; padding: .75rem 0; }
.tab-btn { flex: 1; border: 1px solid #ddd; background: #fff; padding: .6rem; }
.tab-btn.active { background: #111; color: #fff; border-color: #111; }

@media (max-width: 1024px){
  .search-list { width: 48vw; }
  .search-controls { width: 48vw; top: 60px; }
  .search-map { width: 52vw; }
}
@media (max-width: 800px){
  html, body { overflow: auto; }
  .search-controls { position: sticky; top: 56px; width: 100%; }
  .search-list { position: relative; width: 100%; top: 0; height: auto; border-right: 0; }
  .search-map { position: relative; width: 100%; height: 60vh; top: 0; }
  #map { position: relative; height: 60vh; }
  .mobile-tabs { display: flex; }
}


