/* Canonical listings filter and shared custom dropdown system. */
:root {
  --listing-dropdown-border: #dfe4e8;
  --listing-dropdown-shadow: 0 10px 24px rgba(15, 30, 45, 0.08), 0 2px 6px rgba(15, 30, 45, 0.04);
  --listing-dropdown-hover: #f7f9fa;
  --listing-dropdown-selected: #edf6fb;
}

.property-discovery { --border:#d9dece; --text:#1f2933; --army:#4a5e3a; --font-heading:"Concise-RegularDemo",sans-serif; --font-interface:"Concise-RegularDemo",sans-serif; }
.property-discovery.discovery-filter {
  --discovery-font: 'Concise-RegularDemo', sans-serif;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-family: var(--discovery-font);
}

.discovery-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.discovery-header h2 {
  margin: 0;
  color: var(--navy);
  font: 600 18px/1.3 var(--font-heading);
}

.discovery-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
}

.discovery-count:empty {
  display: none;
}

.discovery-transactions {
  display: flex;
  gap: 0;
  padding: 0;
  margin-bottom: 22px;
  border: 1px solid var(--border);
  border-radius: 2px;
  background: var(--white);
  overflow: hidden;
}

.discovery-transactions button {
  display: inline-flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font: 500 13px var(--font-interface);
  cursor: pointer;
}

.discovery-transactions button + button {
  border-left: 1px solid var(--border);
}

.discovery-transactions button:hover:not([aria-pressed="true"]) {
  background: rgba(13, 27, 42, 0.04);
  color: var(--text);
}

.discovery-transactions button[aria-pressed="true"] {
  background: #edf6fb;
  color: #0b527f;
  font-weight: 600;
  box-shadow: none;
}

.property-discovery .discovery-field-group {
  display: grid;
  gap: 7px;
  margin-bottom: 17px;
}

.listing-dropdown {
  position: relative;
  min-width: 0;
}

.listing-dropdown.is-open,
.property-discovery .rail-location {
  z-index: 40;
}

.property-discovery .field-label {
  display: block;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.property-discovery .discovery-control {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 2px;
  background: var(--white);
  transition: border-color 160ms ease, outline-color 160ms ease;
}

.property-discovery .discovery-control:focus-within {
  border-color: var(--army);
  outline: 3px solid rgba(74, 94, 58, 0.1);
}

.listing-location-field { position:relative; }
.listing-location-control { gap:10px; }
.listing-location-control input {
  flex:1;
  min-width:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font:inherit;
}
.listing-location-control:has(input[aria-invalid="true"]) {
  border-color:#b42318;
  outline:3px solid rgba(180,35,24,.1);
}
.listing-location-field.is-menu-open .listing-dropdown__chevron .ui-arrow { transform:rotate(270deg); }
.listing-location-results { padding:6px; }
.listing-location-option {
  display:flex;
  width:100%;
  min-height:48px;
  padding:9px 10px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.listing-location-option:hover,
.listing-location-option:focus-visible,
.listing-location-option[aria-selected="true"] { background:#eef6fb; }
.listing-location-option:focus-visible { outline:2px solid #8fc5e5; outline-offset:-2px; }
.listing-location-option__text { display:flex; min-width:0; flex-direction:column; gap:2px; }
.listing-location-option__label { font-size:14px; font-weight:600; }
.listing-location-option__context { color:var(--muted); font-size:12px; font-weight:400; }
.listing-location-message { padding:12px 10px; color:var(--muted); font-size:13px; }

.property-discovery .field-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.property-discovery :is(.field-icon, .field-chevron) {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: #7b8796;
  pointer-events: none;
}

.listing-dropdown__trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--border, var(--line));
  border-radius: 2px;
  background: var(--white, #fff);
  justify-content: flex-start;
  color: var(--text, var(--ink));
  font: 400 14px 'Concise-RegularDemo', sans-serif;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, outline-color 160ms ease, background-color 160ms ease;
}

.listing-dropdown__trigger:hover {
  border-color: #aab5bd;
}

.listing-dropdown__trigger:focus-visible {
  border-color: #8fc5e5;
  outline: 2px solid rgba(37, 134, 189, 0.32);
  outline-offset: 2px;
}

.listing-dropdown__icon,
.listing-dropdown__chevron {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: #7b8796;
  pointer-events: none;
}

.listing-dropdown__icon svg {
  width: 16px;
  height: 16px;
}

.listing-dropdown__label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.listing-dropdown__chevron {
  margin-left: auto;
}

.listing-dropdown__chevron .ui-arrow {
  width: 15px;
  height: 15px;
  transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

.listing-dropdown__trigger[aria-expanded="true"] .listing-dropdown__chevron .ui-arrow,
.price-field[open] > .listing-dropdown__trigger .listing-dropdown__chevron .ui-arrow {
  transform: rotate(270deg);
}

.listing-dropdown__menu {
  position: absolute;
  z-index: 60;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  width: auto;
  max-width: 100%;
  max-height: min(320px, calc(100vh - 32px));
  overflow-x: hidden;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid var(--listing-dropdown-border);
  border-radius: 7px;
  background: var(--white);
  box-shadow: var(--listing-dropdown-shadow);
  font-family: 'Concise-RegularDemo', sans-serif;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-5px) scale(0.98);
  transform-origin: top center;
  transition: opacity 180ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 180ms;
}

.listing-dropdown__menu.opens-upward {
  top: auto;
  bottom: calc(100% + 6px);
  transform: translateY(5px) scale(0.98);
  transform-origin: bottom center;
}

.listing-dropdown__menu:is(.is-open, .is-closing),
.price-field[open] > .listing-dropdown__menu--panel {
  visibility: visible;
}

.listing-dropdown__menu.is-open,
.price-field[open] > .listing-dropdown__menu--panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}

.listing-dropdown__menu.is-closing {
  opacity: 0;
  transform: translateY(-3px) scale(0.985);
  transition-duration: 140ms;
}

.listing-dropdown__menu.opens-upward.is-closing {
  transform: translateY(3px) scale(0.985);
}

.listing-dropdown__option {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--navy);
  font-size: 14px;
  font-family: 'Concise-RegularDemo', sans-serif;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition: background-color 140ms ease, color 140ms ease;
}

.listing-dropdown__option:hover {
  background: var(--listing-dropdown-hover);
}

.listing-dropdown__option[aria-selected="true"] {
  background: var(--listing-dropdown-selected);
  color: #0b527f;
  font-weight: 500;
}

.listing-dropdown__option:focus-visible {
  background: var(--listing-dropdown-hover);
  outline: 2px solid #8fc5e5;
  outline-offset: -2px;
}

.listing-dropdown__option > span {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}

select[data-listing-dropdown][hidden] { display:none !important; }

.listing-dropdown--sort { width:190px; }
.listing-dropdown--sort .listing-dropdown__menu { right:0; left:auto; width:max(100%,190px); max-width:min(280px,calc(100vw - 24px)); }
.sort-control { display:flex; align-items:center; gap:6px; }
.header-inner > .sort-control .listing-dropdown__trigger { min-height:38px; padding:8px 10px; border-color:var(--line); border-radius:6px; }
.results-header .sort-control .listing-dropdown__trigger { min-height:40px; border-radius:6px; }

.listing-dropdown__menu--panel {
  width:330px;
  max-width:calc(100vw - 40px);
  max-height:none;
  overflow:visible;
  padding:10px;
}

.price-popover.listing-dropdown__menu--panel {
  top:calc(100% + 6px);
  border-color:var(--border, var(--line));
  border-radius:6px;
  box-shadow:0 8px 24px rgba(13, 27, 42, 0.08);
}

.field > label { font-size:14px; }
.field > .listing-dropdown { width:100%; }
.filter-flyout .field .listing-dropdown__trigger { min-height:44px; }

.discovery-filter select {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: 400 14px var(--font-interface);
  cursor: pointer;
  appearance: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.discovery-fields {
  display: flex;
  flex-direction: column;
}

.discovery-fields .discovery-field-group:last-child {
  margin-bottom: 20px;
}

.discovery-filter .search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  padding: 11px 20px;
  margin: 0 0 8px;
  border: 1px solid #0b527f;
  border-radius: 2px;
  background: #0b527f;
  color: var(--white);
  font: 600 14px var(--font-interface);
  cursor: pointer;
}

.property-discovery.discovery-filter :is(h2, button, select, option) {
  font-family: var(--discovery-font);
}

.discovery-filter .search-btn:hover {
  border-color: #083f62;
  background: #083f62;
}

.discovery-status {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  text-align: left;
}

/* Sidebar adapters only: keep the existing results column and card widths. */
.search-rail.discovery-filter { display:flex; gap:0; }
.discovery-header { flex-wrap:wrap; gap:4px 10px; }
.discovery-header h2 { font-size:18px; }
.discovery-badge { font-size:12px; }
.discovery-filter .discovery-control { gap:10px; height:46px; min-height:46px; color:var(--text); text-align:left; }
.discovery-filter .field-row { font-size:14px; }
.discovery-filter .field-icon svg { width:16px; height:16px; stroke-width:1.75; }
.discovery-filter .field-chevron svg { width:15px; height:15px; stroke-width:2; }
.discovery-filter .field-chevron { margin-left:auto; }
.discovery-filter .filter-value { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.discovery-filter .field-row input,.discovery-filter .field-row select { height:24px; min-height:0; padding:0; border:0; outline:0; background:transparent; width:100%; min-width:0; font-size:14px; color:var(--text); }
.discovery-filter input::placeholder { color:var(--text); opacity:1; }
.discovery-filter .button.search-btn { margin:0 0 8px; height:46px; min-height:46px; background:#0b527f; border:1px solid #0b527f; color:var(--white); font-size:14px; font-weight:600; border-radius:2px; }
.discovery-filter .button.search-btn:hover { border-color:#083f62; background:#083f62; }
.discovery-filter :is(button,summary,input):focus-visible { outline:2px solid var(--army); outline-offset:2px; }
.discovery-filter .field-row input:focus-visible { outline:0; }
.discovery-filter .discovery-control:hover { border-color:#aab5bd; }
.discovery-filter .discovery-control[aria-expanded="true"] { border-color:#bdddf1; color:var(--text); background:white; box-shadow:none; }
.discovery-filter #moreFiltersButton:not(:focus-visible) { border-color:var(--border); outline:0; color:var(--text); background:var(--white); box-shadow:none; }
.discovery-filter #moreFiltersButton:focus-visible { border-color:var(--army); outline:2px solid var(--army); outline-offset:2px; }
.discovery-filter .price-popover__fields > input { height:44px; }
#advancedFilters { display:grid; gap:20px; }
#listingFiltersDialog .button.primary,#pricePanel .button.primary { background:#e6f3fb; border-color:#bdddf1; color:#0b527f; border-radius:2px; }
#listingFiltersDialog .button.primary:hover,#pricePanel .button.primary:hover { background:#cfe9f7; border-color:#8fc5e5; }
@media (min-width:901px) {
  .discovery-filter .native-filter { display:none; }
}
@media (min-width:901px) and (max-height:650px) {
  .filter-sidebar { position:static; }
}
@media (max-width:900px) {
  #mobilePrimaryFilters .search-rail { display:flex; }
  #mobilePrimaryFilters .filter-trigger { display:none; }
  #mobilePrimaryFilters .price-field summary { display:flex; }
  #mobilePrimaryFilters .price-popover { margin-top:12px; }
  #listingFiltersDialog .mobile-location-field { display:none; }
  #listingFiltersDialog #applyFilters { display:inline-flex; }
  #listingFiltersDialog .dialog-heading h2 { font-size:18px; }
  #mobilePrimaryFilters .discovery-header h2 { font-size:18px; }
  #mobilePrimaryFilters .field-row input,#mobilePrimaryFilters .field-row select { font-size:16px; }
  #advancedFilters { margin-bottom:17px; }
  .listing-dropdown__menu { left:0; right:0; width:100%; max-width:100%; transform-origin:top center; }
  .listing-dropdown__menu.opens-upward { transform-origin:bottom center; }
  .listing-dropdown__option { min-height:44px; }
  .listing-dropdown--sort { width:150px; }
  .listing-dropdown--sort .listing-dropdown__menu { right:0; left:auto; width:max(100%,190px); max-width:calc(100vw - 24px); }
}

/* The sticky containing block ends before the normal-flow action cards. */
.listings-sidebar { display:grid; grid-template-rows:minmax(min-content,1fr) auto; align-self:stretch; min-width:0; gap:32px; padding-bottom:72px; }
.filter-scroll-boundary { min-width:0; }
.sidebar-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.sidebar-action { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-width:0; min-height:112px; padding:16px 8px; border:1px solid #d9dece; border-radius:2px; background:var(--white); color:#0b527f; text-align:center; font-size:14px; font-weight:500; line-height:1.4; transition:border-color 160ms,background-color 160ms,color 160ms; }
.sidebar-action img { display:block; width:34px; height:34px; object-fit:contain; flex-shrink:0; }
.sidebar-action > span { display:flex; align-items:center; justify-content:center; min-height:2.8em; }
.sidebar-action:is(:hover,:focus-visible) { border-color:#bdddf1; background:#e6f3fb; color:#0b527f; }
@media (max-width:900px) {
  .listings-sidebar { display:block; padding-bottom:28px; }
  .listings-sidebar .filter-sidebar { display:block; position:static; }
  .sidebar-actions { margin-top:32px; }
  .sidebar-action { min-height:120px; }
  #filterFormHome { scroll-margin-top:20px; }
  #filterFormHome .filter-trigger { display:none; }
  #filterFormHome .price-popover { position:absolute; width:330px; max-width:calc(100vw - 40px); margin-top:0; }
  #filterFormHome .field-row input,#filterFormHome .field-row select { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) {
  .sidebar-action,.listing-dropdown__menu,.listing-dropdown__option,.listing-dropdown__chevron .ui-arrow { transition:none; }
}
