/* ==========================================================================
   Realtor Search — results app, autocomplete, listing page
   Visual language is taken from the home page: Georgia headings, Inter body,
   7px cards with a 1px hairline and no shadow, 5px buttons, eyebrow > heading
   section headers, and full-width bands that alternate white / cream / soft.
   Every colour and font is a kit variable with the kit's own value as fallback.
   Page width comes from --container-max-width, which FP_Results prints from the
   Elementor kit setting (desktop / tablet / mobile).
   Structure:  .fp-band (full width) > .fp-boxed (kit width) > .fp-row > content
   ========================================================================== */
/* ---------- Root Header Height Tokens ---------- */
:root {
  --fp-header-height: 60px;
}

@media (max-width: 1024px) {
  :root {
    --fp-header-height: 60px;
  }
}

.fp-rs,
.fp-ld,
.fp-ac,
.fp-lb {
  --fp-green: var(--e-global-color-primary, #173b34);
  --fp-green-2: var(--e-global-color-secondary, #234d44);
  --fp-text: var(--e-global-color-text, #202522);
  --fp-muted: var(--e-global-color-muted_text, #68716d);
  --fp-faint: #858d89;
  --fp-line: var(--e-global-color-border_line, #e2e6e1);
  --fp-line-2: #aebbb5;
  /* ghost-button border, as on the home page */
  --fp-soft: var(--e-global-color-soft_bg, #eef3ee);
  --fp-cream: var(--e-global-color-cream_bg, #f7f7f3);
  --fp-white: #fff;
  --fp-danger: #b42318;
  --fp-eyebrow: #658177;
  /* home-page eyebrow colour (FEATURED LISTINGS) */
  --fp-specs: #77807c;
  /* home-page card spec-line colour */
  --fp-head: var(--e-global-typography-primary-font-family, "Georgia"), Georgia, "Times New Roman", serif;
  --fp-ui: var(--e-global-typography-text-font-family, "Inter"), "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --fp-r: 7px;
  --fp-r-btn: 5px;
  --fp-r-tag: 3px;
  --fp-shadow: 0 4px 14px rgba(12, 29, 25, .08);
  --fp-shadow-lg: 0 18px 44px rgba(12, 29, 25, .18);
  --fp-band-y: clamp(36px, 4.5vw, 64px);
  /* vertical padding of a band */
  --fp-gutter: 20px;
  /* side margin below the container width — same 20px the header, footer and home sections use */
  font-family: var(--fp-ui);
  color: var(--fp-text);
  box-sizing: border-box;
  font-size: 15px;
  line-height: 1.5;
}

.fp-rs *,
.fp-ld *,
.fp-ac *,
.fp-lb * {
  box-sizing: border-box;
}

/* the page template's <main>: Hello Elementor caps .site-main at 1140px (body:not([class*=elementor-page-]) .site-main),
   which outranks a lone class — so our bands could never reach the viewport edge. Override it for our template only. */
body .site-main.fp-fullwidth,
main.fp-fullwidth {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-top: 60px !important;
  padding-bottom: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

.admin-bar body .site-main.fp-fullwidth,
.admin-bar main.fp-fullwidth {
  padding-top: calc(60px + 32px) !important;
  padding-bottom: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

@media screen and (max-width: 782px) {

  .admin-bar body .site-main.fp-fullwidth,
  .admin-bar main.fp-fullwidth {
    padding-top: calc(60px + 46px) !important;
  }
}

/* Keep Elementor header navigation on a single clean row (prevent "Resources" wrapping) */
#masthead .hfe-nav-menu ul.hfe-nav-menu,
#masthead .hfe-nav-menu ul.sub-menu,
#masthead nav.hfe-nav-menu__layout-horizontal ul {
  flex-wrap: nowrap !important;
}

#masthead .hfe-nav-menu .menu-item a {
  white-space: nowrap !important;
}

/* Ensure Elementor fixed header stays visible on top of page content and handles admin bar */
header#masthead,
header.site-header,
#masthead .elementor-element-hdr_root_fw,
#masthead .elementor-element-b8b5699,
#masthead .e-parent {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1080 !important;
  margin-bottom: 0 !important;
  min-height: 60px !important;
  height: 60px !important;
  box-sizing: border-box !important;
}

#masthead .elementor-element-hdr_root_fw>.e-con-inner,
#masthead .elementor-element-hdr_inner_boxed,
#masthead .elementor-element-hdr_inner_boxed>.e-con-inner {
  height: 60px !important;
  min-height: 60px !important;
  align-items: center !important;
}

/* Position fixed header below admin bar when logged in */
.admin-bar header#masthead,
.admin-bar header.site-header,
.admin-bar #masthead .elementor-element-hdr_root_fw,
.admin-bar #masthead .elementor-element-b8b5699,
.admin-bar #masthead .e-parent {
  top: 32px !important;
}

@media screen and (max-width: 782px) {

  .admin-bar header#masthead,
  .admin-bar header.site-header,
  .admin-bar #masthead .elementor-element-hdr_root_fw,
  .admin-bar #masthead .elementor-element-b8b5699,
  .admin-bar #masthead .e-parent {
    top: 46px !important;
  }
}

.fp-rs [hidden],
.fp-ld [hidden],
.fp-ac[hidden],
.fp-lb[hidden],
.fp-rs__modal[hidden],
.fp-rs__loading[hidden] {
  display: none !important;
}

/* ---------- structure ---------- */
.fp-band {
  width: 100%;
}

/* content is exactly the kit container width (like every Elementor section on the site); the gutter sits outside it */
.fp-boxed {
  width: 100%;
  max-width: calc(var(--container-max-width, 1140px) + 2 * var(--fp-gutter));
  margin-inline: auto;
}

.fp-row {
  width: 100%;
}

/* ---------- neutralise Hello Elementor's global form/button resets inside our UI ---------- */
.fp-rs button,
.fp-ld button,
.fp-ac button,
.fp-lb button {
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  color: inherit;
  font: inherit;
  line-height: normal;
  width: auto;
  white-space: normal;
  transition: none;
  text-align: center;
  cursor: pointer;
}

.fp-rs button:hover,
.fp-rs button:focus,
.fp-ld button:hover,
.fp-ld button:focus,
.fp-ac button:hover,
.fp-ac button:focus,
.fp-lb button:hover,
.fp-lb button:focus {
  background-color: transparent;
  color: inherit;
  text-decoration: none;
}

.fp-rs :is(select, input, textarea),
.fp-ld :is(select, input, textarea) {
  font-family: inherit;
  font-size: 14px;
  color: var(--fp-text);
}

.fp-rs a,
.fp-ld a {
  color: var(--fp-green);
}

.fp-scard,
.fp-card {
  cursor: pointer;
}

.fp-scard__link,
.fp-card__link {
  color: inherit;
  text-decoration: none;
  display: block;
}

.fp-scard__link:hover,
.fp-card__link:hover {
  color: inherit;
}

/* ---------- shared atoms ---------- */
.fp-vh {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* eyebrow > heading, exactly as the home page sections */
.fp-eyebrow {
  display: block;
  font-family: var(--fp-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--fp-eyebrow);
  margin: 0 0 12px;
}

.fp-h2 {
  font-family: var(--fp-head);
  font-weight: 400;
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.08;
  color: var(--fp-text);
  margin: 0;
}

.fp-sub {
  font-size: 14px;
  color: var(--fp-muted);
  margin: 10px 0 0;
}

.fp-sechead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.fp-sechead>div {
  min-width: 0;
}

/* buttons: solid 5px (like "List Property") and ghost 5px (like "View all listings →") */
:is(.fp-rs, .fp-ld, .fp-lb, .fp-ac) .fp-rs__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 42px;
  padding: 0 24px;
  border: 1px solid var(--fp-green);
  border-radius: var(--fp-r-btn);
  background: var(--fp-green);
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, color .15s, border-color .15s;
}

:is(.fp-rs, .fp-ld, .fp-lb, .fp-ac) .fp-rs__btn:hover {
  background: var(--fp-green-2);
  border-color: var(--fp-green-2);
  color: #fff;
}

:is(.fp-rs, .fp-ld, .fp-lb, .fp-ac) .fp-rs__btn--ghost {
  background: transparent;
  color: var(--fp-green);
  border-color: var(--fp-line-2);
  font-size: 14px;
  font-weight: 600;
}

:is(.fp-rs, .fp-ld, .fp-lb, .fp-ac) .fp-rs__btn--ghost:hover {
  background: var(--fp-soft);
  color: var(--fp-green);
  border-color: var(--fp-line-2);
}

:is(.fp-rs, .fp-ld, .fp-lb, .fp-ac) .fp-rs__btn--block {
  width: 100%;
}

:is(.fp-rs, .fp-ld) .fp-rs__btn svg {
  width: 16px;
  height: 16px;
}

/* ==========================================================================
   RESULTS APP
   ========================================================================== */
.fp-rs {
  width: 100%;
  background: var(--fp-cream);
  min-height: 60vh;
}

/* ---------- band 1: toolbar (white, hairline, cleanly integrated at top) ---------- */
.fp-rs__toolbar {
  position: relative;
  top: 0;
  z-index: 1050;
  background: #fff;
  border-bottom: 1px solid var(--fp-line);
  box-shadow: 0 4px 14px rgba(12, 29, 25, 0.05);
}

.fp-rs__topbar {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 14px 0;
}

.fp-rs__searchwrap {
  position: relative;
  flex: 1 1 300px;
  min-width: 220px;
  margin-right: 14px;
  z-index: 1051;
}

.fp-rs .fp-rs__search,
.fp-rs .fp-rs__search:focus {
  width: 100%;
  height: 48px;
  border: 1px solid var(--fp-line-2);
  border-radius: 999px;
  padding: 0 56px 0 44px;
  font-size: 15px;
  font-weight: 500;
  color: var(--fp-text);
  outline: 0;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2368716d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") 16px center/18px no-repeat;
  transition: border-color .15s, box-shadow .15s;
}

.fp-rs .fp-rs__search:focus {
  border-color: var(--fp-green);
  box-shadow: 0 0 0 3px rgba(23, 59, 52, .12);
}

.fp-rs .fp-rs__search::placeholder {
  color: var(--fp-faint);
  font-weight: 400;
}

.fp-rs__search::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

:is(.fp-rs) .fp-rs__go {
  position: absolute;
  right: 4px;
  top: 4px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--fp-green);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}

:is(.fp-rs) .fp-rs__go:hover {
  background: var(--fp-green-2);
  color: #fff;
}

.fp-rs__go svg {
  width: 18px;
  height: 18px;
}

/* inline quick filters: label over value, separated by hairlines */
.fp-rs__field {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 16px;
  border-left: 1px solid var(--fp-line);
  min-width: 124px;
  height: 48px;
}

.fp-rs__field--sm {
  min-width: 96px;
}

.fp-rs__field label {
  font-size: 11px;
  font-weight: 500;
  color: var(--fp-faint);
  margin: 0 0 2px;
  line-height: 1.1;
  letter-spacing: .01em;
}

.fp-rs__field select,
.fp-rs__modal select,
.fp-rs__sort select {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  padding: 0 20px 0 0;
  height: 22px;
  line-height: 22px;
  max-width: 100%;
  font-size: 14px;
  font-weight: 600;
  color: var(--fp-green);
  cursor: pointer;
  outline: 0;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2368716d' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 0 center/14px no-repeat;
}

:is(.fp-rs) .fp-rs__pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding: 0 18px;
  margin-left: 14px;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  background: #fff;
  color: var(--fp-green);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  transition: background .15s;
}

:is(.fp-rs) .fp-rs__pill:hover {
  background: var(--fp-soft);
  color: var(--fp-green);
}

.fp-rs__pill-ic {
  display: inline-flex;
}

.fp-rs__pill-ic svg {
  width: 16px;
  height: 16px;
}

/* ---------- band 2: results (cream) ---------- */
.fp-rs__body {
  position: relative;
  z-index: 1;
  padding-bottom: var(--fp-band-y);
}

.fp-rs__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding: 16px 0 14px;
}

.fp-rs__header-left {
  min-width: 0;
}

.fp-rs__eyebrow {
  display: block;
  font-family: var(--fp-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--fp-eyebrow);
  margin: 0 0 4px;
}

.fp-rs__title {
  font-family: var(--fp-head);
  font-weight: 400;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.1;
  color: var(--fp-text);
  margin: 0;
}

.fp-rs__count {
  display: none;
}

.fp-rs__header-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.fp-rs__sort {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  padding: 0 14px;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  background: #fff;
  font-size: 13px;
  color: var(--fp-muted);
  white-space: nowrap;
}

.fp-rs__sort select {
  height: 20px;
  line-height: 20px;
}

.fp-rs__toggle {
  display: inline-flex;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  background: #fff;
  overflow: hidden;
}

:is(.fp-rs) .fp-rs__toggle button {
  height: 40px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--fp-muted);
  transition: background .15s, color .15s;
}

:is(.fp-rs) .fp-rs__toggle button+button {
  border-left: 1px solid var(--fp-line-2);
}

:is(.fp-rs) .fp-rs__toggle button.is-active {
  background: var(--fp-green);
  color: #fff;
}

.fp-rs__notice {
  margin: 0 0 20px;
  padding: 12px 16px;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r-btn);
  background: #fff;
  font-size: 14px;
  color: var(--fp-text);
}

.fp-rs__notice.is-error {
  border-color: #f0c9c5;
  background: #fdf3f2;
  color: var(--fp-danger);
}

/* ---------- map view: list left, map right ---------- */
.fp-rs__split {
  display: grid;
  grid-template-columns: minmax(330px, 400px) minmax(0, 1fr);
  gap: 20px;
  height: clamp(520px, calc(100vh - 230px), 860px);
}

/* Full-viewport App layout for Map view on desktop */
@media (min-width: 992px) {

  .fp-rs[data-view="map"],
  .fp-rs:not([data-view="list"]) {
    height: calc(100vh - var(--fp-header-height, 60px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .admin-bar .fp-rs[data-view="map"],
  .admin-bar .fp-rs:not([data-view="list"]) {
    height: calc(100vh - var(--fp-header-height, 60px) - 32px);
  }

  @media screen and (max-width: 782px) {

    .admin-bar .fp-rs[data-view="map"],
    .admin-bar .fp-rs:not([data-view="list"]) {
      height: calc(100vh - var(--fp-header-height, 60px) - 46px);
    }
  }

  .fp-rs[data-view="map"] .fp-rs__toolbar,
  .fp-rs:not([data-view="list"]) .fp-rs__toolbar {
    flex: 0 0 auto;
    position: relative;
    top: 0;
    z-index: 1050;
  }

  .fp-rs[data-view="map"] .fp-rs__body,
  .fp-rs:not([data-view="list"]) .fp-rs__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: 16px;
    overflow: hidden;
  }

  .fp-rs[data-view="map"] .fp-rs__body>.fp-boxed,
  .fp-rs:not([data-view="list"]) .fp-rs__body>.fp-boxed {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }

  .fp-rs[data-view="map"] .fp-rs__header,
  .fp-rs:not([data-view="list"]) .fp-rs__header {
    flex: 0 0 auto;
    padding: 14px 0 12px;
  }

  .fp-rs[data-view="map"] .fp-rs__split,
  .fp-rs:not([data-view="list"]) .fp-rs__split {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    margin-bottom: 0;
  }

  .fp-rs[data-view="map"] .fp-rs__side,
  .fp-rs:not([data-view="list"]) .fp-rs__side {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .fp-rs[data-view="map"] .fp-rs__side-list,
  .fp-rs:not([data-view="list"]) .fp-rs__side-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }

  .fp-rs[data-view="map"] .fp-rs__side .fp-rs__pager,
  .fp-rs:not([data-view="list"]) .fp-rs__side .fp-rs__pager {
    flex: 0 0 auto;
    padding: 10px 0 4px;
    margin-top: 4px;
    background: transparent;
    border: none;
    box-shadow: none;
  }

  .fp-rs[data-view="map"] .fp-rs__mapwrap,
  .fp-rs:not([data-view="list"]) .fp-rs__mapwrap {
    height: 100%;
    min-height: 0;
  }
}

.fp-rs__side {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.fp-rs__side-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 2px 10px 2px 2px;
  scrollbar-width: thin;
  scrollbar-color: #cfd7d2 transparent;
}

.fp-rs__side-list::-webkit-scrollbar {
  width: 6px;
}

.fp-rs__side-list::-webkit-scrollbar-thumb {
  background: #cfd7d2;
  border-radius: 3px;
}

.fp-rs__mapwrap {
  position: relative;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  overflow: hidden;
  background: var(--fp-soft);
}

.fp-rs__map {
  position: absolute;
  inset: 0;
}

.fp-rs__maptools {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 500;
  display: inline-flex;
  background: #fff;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  overflow: hidden;
  box-shadow: var(--fp-shadow);
}

:is(.fp-rs) .fp-rs__maptools button {
  height: 36px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--fp-muted);
  transition: background .15s, color .15s;
}

:is(.fp-rs) .fp-rs__maptools button+button {
  border-left: 1px solid var(--fp-line);
}

:is(.fp-rs) .fp-rs__maptools button.is-active {
  background: var(--fp-green);
  color: #fff;
}

.fp-rs__maptools--draw {
  left: auto;
  right: 12px;
}

:is(.fp-rs) .fp-rs__maptools--draw button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.fp-rs__maptools--draw svg {
  width: 15px;
  height: 15px;
}

.fp-rs__drawhint {
  position: absolute;
  top: 60px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 500;
  background: var(--fp-green);
  color: #fff;
  padding: 9px 16px;
  border-radius: var(--fp-r-btn);
  font-size: 13px;
  font-weight: 500;
  pointer-events: none;
  box-shadow: var(--fp-shadow);
  white-space: nowrap;
}

.fp-rs__map.is-drawing {
  cursor: crosshair;
}

.fp-rs__map.is-drawing .leaflet-interactive {
  pointer-events: none;
}

.fp-rs__mapnote {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 500;
  background: #fff;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r-btn);
  padding: 7px 12px;
  font-size: 12px;
  color: var(--fp-muted);
}

:is(.fp-rs) .fp-rs__boundary {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  z-index: 500;
  height: 40px;
  padding: 0 20px;
  border-radius: var(--fp-r-btn);
  background: var(--fp-green);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  box-shadow: var(--fp-shadow);
  white-space: nowrap;
}

:is(.fp-rs) .fp-rs__boundary:hover {
  background: var(--fp-green-2);
  color: #fff;
}

/* leaflet chrome */
.fp-rs .leaflet-container,
.fp-ld .leaflet-container {
  font-family: var(--fp-ui);
}

:is(.fp-rs, .fp-ld) .leaflet-control-zoom {
  border: 1px solid var(--fp-line-2) !important;
  border-radius: var(--fp-r-btn) !important;
  overflow: hidden;
  box-shadow: var(--fp-shadow) !important;
}

:is(.fp-rs, .fp-ld) .leaflet-control-zoom a {
  width: 32px;
  height: 32px;
  line-height: 32px;
  border: 0;
  color: var(--fp-green);
  background: #fff;
  font-size: 18px;
}

:is(.fp-rs, .fp-ld) .leaflet-control-zoom a+a {
  border-top: 1px solid var(--fp-line);
}

:is(.fp-rs, .fp-ld) .leaflet-control-zoom a:hover {
  background: var(--fp-soft);
}

:is(.fp-rs, .fp-ld) .leaflet-control-attribution {
  background: rgba(255, 255, 255, .85);
  font-size: 10px;
  padding: 2px 8px;
}

/* pins */
.fp-pin-wrap {
  background: transparent;
  border: 0;
}

.fp-pin {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translate(-50%, -100%);
  cursor: pointer;
  transition: transform .15s;
}

.fp-pin svg {
  width: 30px;
  height: 30px;
  fill: var(--fp-green);
  stroke: #fff;
  stroke-width: 1.4;
  filter: drop-shadow(0 2px 3px rgba(12, 29, 25, .3));
}

.fp-pin svg circle {
  fill: #fff;
  stroke: none;
}

.fp-pin.is-active,
.fp-pin:hover {
  transform: translate(-50%, -100%) scale(1.2);
  z-index: 1000;
}

.fp-pin.is-active svg,
.fp-pin:hover svg {
  fill: var(--fp-green-2);
}

.fp-cluster {
  background: var(--fp-green);
  color: #fff;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  border: 3px solid #fff;
  box-shadow: var(--fp-shadow);
}

.fp-cluster--md {
  width: 46px;
  height: 46px;
}

.fp-cluster--lg {
  width: 54px;
  height: 54px;
  font-size: 14px;
}

.fp-rs .leaflet-popup-content-wrapper {
  border-radius: var(--fp-r);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--fp-line);
  box-shadow: var(--fp-shadow-lg);
}

.fp-rs .leaflet-popup-content {
  margin: 0 !important;
  width: 260px !important;
}

.fp-popup img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
}

.fp-popup__b {
  padding: 14px 16px 16px;
}

.fp-popup__p {
  font-size: 20px;
  font-weight: 700;
  color: var(--fp-text);
}

.fp-popup__a {
  font-size: 13px;
  color: var(--fp-muted);
  margin: 4px 0 12px;
  line-height: 1.45;
}

.fp-popup__go {
  display: block;
  text-align: center;
  background: var(--fp-green);
  color: #fff !important;
  text-decoration: none;
  padding: 10px;
  border-radius: var(--fp-r-btn);
  font-size: 13px;
  font-weight: 600;
}

/* ---------- cards: the home-page card (white, hairline, 7px, photo flush to the top) ---------- */
.fp-card,
.fp-scard {
  position: relative;
  background: #fff;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
}

.fp-card:hover,
.fp-scard:hover,
.fp-scard.is-active {
  border-color: var(--fp-line-2);
  box-shadow: var(--fp-shadow);
}

.fp-scard.is-active {
  border-color: var(--fp-green);
}

.fp-card__media,
.fp-scard__media {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--fp-soft);
}

.fp-card__media img,
.fp-scard__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.fp-card:hover .fp-card__media img,
.fp-scard:hover .fp-scard__media img {
  transform: scale(1.03);
}

.fp-card__nophoto {
  width: 100%;
  height: 100%;
  min-height: 120px;
  background: var(--fp-soft) center/44px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23aebbb5' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E");
}

.fp-card__price,
.fp-scard__price {
  font-family: var(--fp-ui);
  font-weight: 700;
  color: var(--fp-text);
  line-height: 1.1;
}

:is(.fp-rs, .fp-ld) .fp-card__addr,
:is(.fp-rs, .fp-ld) .fp-scard__addr {
  font-family: var(--fp-ui);
  font-size: 14px;
  color: var(--fp-text);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.fp-card__specs,
.fp-scard__specs {
  display: flex;
  flex-wrap: wrap;
  color: var(--fp-specs);
  font-size: 12px;
  font-family: var(--fp-ui);
}

.fp-card__specs span,
.fp-scard__specs span {
  white-space: nowrap;
}

.fp-card__specs span+span::before,
.fp-scard__specs span+span::before {
  content: "\2022";
  margin: 0 7px;
  color: var(--fp-line-2);
}

.fp-card__specs b,
.fp-scard__specs b {
  font-weight: 400;
  color: inherit;
  margin-right: 3px;
}

.fp-card__time,
.fp-scard__time {
  font-size: 12px;
  color: var(--fp-faint);
}

.fp-card__broker {
  font-size: 12px;
  color: var(--fp-faint);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-card__tag {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--fp-green);
  color: #fff;
  font-family: var(--fp-ui);
  font-size: 10px;
  font-weight: 600;
  padding: 5px 8px;
  border-radius: var(--fp-r-tag);
  letter-spacing: .01em;
}

.fp-fav {
  display: none !important;
}

/* side card (horizontal) */
.fp-scard {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  flex: 0 0 auto;
}

.fp-scard__media {
  height: 100%;
  min-height: 128px;
}

.fp-scard__body {
  padding: 14px 16px 12px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.fp-scard__price {
  font-size: 18px;
}

.fp-scard__addr {
  font-size: 14px;
}

.fp-scard__specs {
  margin-top: 2px;
}

.fp-scard__specs .fp-sqft {
  flex-basis: 100%;
}

.fp-scard__specs .fp-sqft::before {
  content: none;
  margin: 0;
}

.fp-scard__foot {
  margin-top: auto;
  padding-top: 6px;
}

/* grid card (vertical) */
.fp-rs__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
}

.fp-card {
  display: flex;
  flex-direction: column;
}

.fp-card__media {
  aspect-ratio: 4 / 3;
}

.fp-card__body {
  padding: 20px 20px 6px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.fp-card__price {
  font-size: 22px;
}

.fp-card__addr {
  font-size: 14px;
}

.fp-card__specs {
  margin-top: 4px;
}

.fp-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 20px 18px;
}

/* ---------- pager ---------- */
.fp-rs__pager {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 18px 0 10px;
}

.fp-rs__pager:empty {
  display: none !important;
}

.fp-rs__pager--center {
  padding: 40px 0 20px;
}

.fp-pager {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--fp-ui);
  font-size: 13.5px;
  color: var(--fp-muted);
  white-space: nowrap;
  line-height: 1;
  user-select: none;
  -webkit-user-select: none;
}

:is(.fp-rs) .fp-pager .fp-pager__btn,
:is(.fp-rs) .fp-pager button {
  width: 38px;
  height: 38px;
  min-width: 38px;
  padding: 0;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  background: #fff;
  color: var(--fp-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .15s ease;
  box-sizing: border-box;
  flex-shrink: 0;
}

:is(.fp-rs) .fp-pager .fp-pager__btn svg,
:is(.fp-rs) .fp-pager button svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  display: block;
}

:is(.fp-rs) .fp-pager .fp-pager__btn:hover:not(:disabled),
:is(.fp-rs) .fp-pager button:hover:not(:disabled) {
  background: var(--fp-green);
  border-color: var(--fp-green);
  color: #fff;
  box-shadow: 0 2px 8px rgba(23, 59, 52, 0.18);
}

:is(.fp-rs) .fp-pager .fp-pager__btn:disabled,
:is(.fp-rs) .fp-pager button:disabled {
  opacity: 0.4;
  color: #858d89;
  border-color: var(--fp-line);
  background: #f8faf9;
  cursor: not-allowed;
  pointer-events: none;
}

.fp-pager .fp-pager__select-wrap {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.fp-pager select,
.fp-pager .fp-pager__select {
  appearance: none;
  -webkit-appearance: none;
  height: 38px;
  min-width: 60px;
  line-height: 36px;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173b34' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 8px center/12px no-repeat;
  padding: 0 26px 0 10px;
  font-family: inherit;
  font-weight: 600;
  color: var(--fp-green);
  font-size: 14px;
  cursor: pointer;
  outline: 0;
  box-sizing: border-box;
  text-align: center;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.fp-pager select:focus,
.fp-pager .fp-pager__select:focus {
  border-color: var(--fp-green);
  box-shadow: 0 0 0 3px rgba(23, 59, 52, .12);
}

.fp-pager .fp-pager__of {
  display: none !important;
}

/* ---------- empty / loading ---------- */
.fp-rs__empty {
  text-align: center;
  padding: 56px 24px;
  background: #fff;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  color: var(--fp-muted);
}

.fp-rs__empty h3 {
  font-family: var(--fp-head);
  font-weight: 400;
  font-size: 24px;
  color: var(--fp-text);
  margin: 0 0 8px;
}

.fp-rs__empty p {
  margin: 0;
}

.fp-rs__loading {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 1060;
  background: rgba(23, 59, 52, .12);
  overflow: hidden;
}

.fp-rs__loading span {
  position: absolute;
  left: -40%;
  width: 40%;
  height: 100%;
  background: var(--fp-green);
  animation: fp-bar 1s linear infinite;
}

@keyframes fp-bar {
  to {
    left: 100%;
  }
}

.fp-skel {
  flex: 0 0 auto;
  height: 130px;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  background: linear-gradient(90deg, #fff 25%, var(--fp-soft) 50%, #fff 75%) 0 0/200% 100%;
  animation: fp-skel 1.3s infinite;
}

@keyframes fp-skel {
  to {
    background-position: -200% 0;
  }
}

/* Floating map spinner badge */
.fp-rs__map-spinner {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: #fff;
  color: var(--fp-text);
  font-size: 13px;
  font-weight: 600;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(12, 29, 25, 0.15);
  border: 1px solid var(--fp-line);
  pointer-events: none;
}

.fp-rs__map-spinner[hidden] {
  display: none !important;
}

.fp-spin-svg {
  width: 16px;
  height: 16px;
  animation: fp-spin 0.75s linear infinite;
  color: var(--fp-green);
}

@keyframes fp-spin {
  100% {
    transform: rotate(360deg);
  }
}

/* Search button spinner state */
.fp-rs__go.is-loading svg {
  animation: fp-spin 0.75s linear infinite;
  opacity: 0.75;
}

/* ---------- filters modal ---------- */
.fp-rs__modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(12, 29, 25, .5);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(12px, 5vh, 56px) 16px;
  overflow-y: auto;
}

.fp-rs__modal-panel {
  width: 100%;
  max-width: 1040px;
  background: #fff;
  border-radius: var(--fp-r);
  box-shadow: var(--fp-shadow-lg);
  overflow: hidden;
}

.fp-rs__modal-panel--sm {
  max-width: 520px;
}

.fp-rs__modal-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 12px 0 20px;
  border-bottom: 1px solid var(--fp-line);
}

:is(.fp-rs, .fp-ld) .fp-rs__modal-tabs>button[data-group] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 18px 16px;
  font-size: 15px;
  font-weight: 600;
  color: var(--fp-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .15s, border-color .15s;
}

:is(.fp-rs, .fp-ld) .fp-rs__modal-tabs>button[data-group]:hover {
  color: var(--fp-green);
}

:is(.fp-rs, .fp-ld) .fp-rs__modal-tabs>button[data-group].is-active {
  color: var(--fp-green);
  border-bottom-color: var(--fp-green);
}

.fp-rs__modal-tabs>button[data-group] svg {
  width: 18px;
  height: 18px;
}

.fp-rs__modal-tabs>strong {
  padding: 18px 0;
  font-size: 16px;
  font-weight: 600;
}

:is(.fp-rs, .fp-ld) .fp-rs__modal-close {
  margin-left: auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: var(--fp-muted);
  font-size: 26px;
  line-height: 1;
}

:is(.fp-rs, .fp-ld) .fp-rs__modal-close:hover {
  background: var(--fp-soft);
  color: var(--fp-green);
}

.fp-rs__modal-body {
  padding: 24px 28px 8px;
}

.fp-rs__modal-search {
  margin-bottom: 24px;
}

.fp-rs__modal-search input {
  width: 100%;
  height: 48px;
  border: 1px solid var(--fp-line-2);
  border-radius: 999px;
  padding: 0 20px;
  font-size: 15px;
  outline: 0;
}

.fp-rs__modal-search input:focus {
  border-color: var(--fp-green);
  box-shadow: 0 0 0 3px rgba(23, 59, 52, .12);
}

.fp-rs__fgrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px 20px;
}

.fp-rs__f {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.fp-rs__f--wide {
  grid-column: span 2;
}

.fp-rs__f>label {
  font-size: 13px;
  font-weight: 600;
  color: var(--fp-text);
}

.fp-rs__f :is(select, input[type=text], input[type=date]) {
  height: 42px;
  width: 100%;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  padding: 0 34px 0 12px;
  appearance: none;
  -webkit-appearance: none;
  font-size: 14px;
  font-weight: 500;
  color: var(--fp-text);
  outline: 0;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2368716d' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 12px center/12px no-repeat;
  transition: border-color .15s, box-shadow .15s;
}

.fp-rs__f :is(input[type=text], input[type=date]) {
  background-image: none;
  padding-right: 12px;
}

.fp-rs__f :is(select, input):focus {
  border-color: var(--fp-green);
  box-shadow: 0 0 0 3px rgba(23, 59, 52, .12);
}

.fp-rs__range {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}

.fp-rs__range span {
  color: var(--fp-faint);
}

.fp-rs__radios {
  display: flex;
  gap: 22px;
  height: 42px;
  align-items: center;
}

.fp-rs__radios label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--fp-text);
  cursor: pointer;
}

.fp-rs__radios input {
  accent-color: var(--fp-green);
  width: 16px;
  height: 16px;
  margin: 0;
}

.fp-rs__modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 20px 28px 24px;
  border-top: 1px solid var(--fp-line);
  margin-top: 16px;
}

/* ==========================================================================
   AUTOCOMPLETE
   ========================================================================== */
.fp-ac {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 99999;
  background: #fff;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  box-shadow: var(--fp-shadow-lg);
  overflow-y: auto;
  text-align: left;
  max-height: 66vh;
  padding: 6px 0;
}

.fp-ac__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fp-faint);
}

.fp-ac__head svg {
  width: 14px;
  height: 14px;
  color: var(--fp-green);
}

.fp-ac__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  font-size: 14.5px;
  color: var(--fp-text);
  cursor: pointer;
  text-decoration: none;
}

.fp-ac__item b {
  font-weight: 600;
}

.fp-ac__item:hover,
.fp-ac__item.is-focus {
  background: var(--fp-cream);
}

.fp-ac__item small {
  font-size: 11.5px;
  color: var(--fp-faint);
  white-space: nowrap;
}

:is(.fp-ac) .fp-ac__del {
  color: var(--fp-faint);
  padding: 0 4px;
  font-size: 15px;
}

:is(.fp-ac) .fp-ac__del:hover {
  color: var(--fp-text);
}

/* ==========================================================================
   LISTING PAGE
   ========================================================================== */
.fp-ld {
  width: 100%;
  background: #fff;
}

.fp-ld .fp-band {
  padding-block: var(--fp-band-y);
}

.fp-ld .fp-band--cream {
  background: var(--fp-cream);
}

.fp-ld .fp-band--soft {
  background: var(--fp-soft);
}

.fp-ld .fp-band--top {
  padding-top: 20px;
}

.fp-ld__crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: var(--fp-faint);
  margin: 0 0 28px;
}

.fp-ld__crumbs a {
  color: var(--fp-muted);
  text-decoration: none;
}

.fp-ld__crumbs a:hover {
  color: var(--fp-green);
  text-decoration: underline;
}

/* header: eyebrow + address + place  |  price + actions */
.fp-ld__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 28px;
}

.fp-ld__top-l {
  min-width: 0;
}

.fp-ld__h1 {
  font-family: var(--fp-head);
  font-weight: 400;
  font-size: clamp(30px, 3vw, 40px);
  line-height: 1.1;
  color: var(--fp-text);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  margin: 0;
}

.fp-ld__addr {
  font-size: 16px;
  color: var(--fp-text);
  margin: 8px 0 0;
}

.fp-ld .fp-ld__mls {
  font-size: 13px;
  color: var(--fp-faint);
  margin: 10px 0 0;
}

.fp-ld .fp-ld__mls b {
  font-weight: 500;
  color: var(--fp-muted);
}

.fp-ld__top-r {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  flex: 0 0 auto;
}

.fp-ld__price {
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 700;
  color: var(--fp-text);
  line-height: 1.1;
  white-space: nowrap;
}

.fp-ld__badge {
  display: inline-flex;
  align-items: center;
  background: var(--fp-green);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: var(--fp-r-tag);
  margin-left: 10px;
  vertical-align: middle;
  letter-spacing: .01em;
}

/* gallery */
.fp-ld__gallery {
  position: relative;
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 8px;
  height: clamp(280px, 32vw, 420px);
  max-height: 420px;
  overflow: hidden;
  border-radius: var(--fp-r);
}

.fp-ld__gallery--single,
.fp-ld__gallery--two {
  grid-template-rows: 1fr;
}

.fp-ld__gallery--single {
  grid-template-columns: 1fr;
}

.fp-ld__gallery--two {
  grid-template-columns: 1fr 1fr;
}

:is(.fp-ld) .fp-ld__photo {
  position: relative;
  overflow: hidden;
  border-radius: var(--fp-r);
  background: var(--fp-soft);
  padding: 0;
  margin: 0;
  border: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
  min-height: 0;
  min-width: 0;
  display: block;
}

:is(.fp-ld) .fp-ld__gallery:not(.fp-ld__gallery--single):not(.fp-ld__gallery--two) .fp-ld__photo:first-child {
  grid-row: 1 / span 2;
  height: 100%;
}

.fp-ld__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.fp-ld__photo:hover img {
  transform: scale(1.03);
}

:is(.fp-ld) .fp-ld__allphotos {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 3;
  height: 38px;
  padding: 0 16px;
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  background: #fff;
  color: var(--fp-green);
  font-size: 14px;
  font-weight: 600;
  box-shadow: var(--fp-shadow);
}

:is(.fp-ld) .fp-ld__allphotos:hover {
  background: var(--fp-soft);
  color: var(--fp-green);
}

:is(.fp-ld) .fp-ld__tour {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 16px;
  border-radius: var(--fp-r-btn);
  background: var(--fp-green);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  box-shadow: var(--fp-shadow);
}

:is(.fp-ld) .fp-ld__tour:hover {
  background: var(--fp-green-2);
  color: #fff;
}

/* ---------- listing body: a stack of white section cards on the cream band ---------- */
.fp-ld__stack {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fp-ld__card {
  background: #fff;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  padding: clamp(22px, 2.6vw, 36px);
}

.fp-ld__card>.fp-h2 {
  font-size: clamp(22px, 2vw, 26px);
  margin: 0 0 20px;
}

.fp-ld__remarks {
  font-size: 16px;
  line-height: 1.75;
  color: var(--fp-text);
  margin: 0;
  white-space: normal;
}

.fp-ld__remarks--sm {
  font-size: 15px;
  line-height: 1.65;
}

.fp-ld__h3,
.fp-ld h4 {
  font-family: var(--fp-ui);
  font-size: 15px;
  font-weight: 600;
  color: var(--fp-text);
  margin: 0 0 4px;
}

/* details tabs: only the chosen panel is on screen */
.fp-ld__tabbar {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--fp-line);
  margin: -6px 0 26px;
  overflow-x: auto;
  scrollbar-width: none;
}

.fp-ld__tabbar::-webkit-scrollbar {
  display: none;
}

:is(.fp-ld) .fp-ld__tab {
  flex: 0 0 auto;
  padding: 12px 18px 14px;
  font-size: 15px;
  font-weight: 600;
  color: var(--fp-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
  transition: color .15s, border-color .15s;
}

:is(.fp-ld) .fp-ld__tab:hover {
  color: var(--fp-green);
}

:is(.fp-ld) .fp-ld__tab.is-active {
  color: var(--fp-green);
  border-bottom-color: var(--fp-green);
}

:is(.fp-ld) .fp-ld__tab:focus-visible {
  outline: 2px solid var(--fp-green);
  outline-offset: -2px;
  border-radius: 3px;
}

.fp-ld__tabpanel>.fp-ld__kvs {
  border-top: 1px solid var(--fp-line);
}

.fp-ld__tabpanel>.fp-ld__kvs .fp-ld__kv {
  padding-top: 16px;
}

.fp-ld__tabs .fp-ld__group--text {
  margin-top: 26px;
}

/* open house callout */
.fp-ld__card--oh {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  background: var(--fp-soft);
  border-color: #d3dfd7;
  padding: 20px 26px;
}

.fp-ld__card--oh>svg {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  color: var(--fp-green);
  margin-top: 2px;
}

.fp-ld__oh-title {
  font-family: var(--fp-ui);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fp-green);
  margin: 0 0 6px;
}

.fp-ld__oh-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 28px;
}

.fp-ld__oh-list li {
  font-size: 15px;
  color: var(--fp-text);
}

.fp-ld__oh-list b {
  font-weight: 600;
}

.fp-ld__oh-list span {
  color: var(--fp-muted);
  margin-left: 6px;
}

.fp-ld__oh-list small {
  display: block;
  font-size: 13px;
  color: var(--fp-faint);
  margin-top: 2px;
}

/* fact tiles: label above value, hairline rows, 4-up on desktop */
.fp-ld__kvs {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  column-gap: 32px;
}

.fp-ld__kv {
  display: block;
  padding: 14px 0 6px;
  font-size: 14px;
  min-width: 0;
}

/* one full-width rule under each heading anchors the tile rows */
.fp-ld__card>.fp-h2+.fp-ld__kvs {
  border-top: 1px solid var(--fp-line);
}

.fp-ld__kv dt {
  font-size: 12.5px;
  color: var(--fp-muted);
}

.fp-ld__kv dd {
  margin: 4px 0 0;
  font-size: 15px;
  font-weight: 500;
  color: var(--fp-text);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

/* building & features: sub-groups stacked, each with its own tile rows */
.fp-ld__groups {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.fp-ld__group {
  min-width: 0;
}

.fp-ld__group h4 {
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--fp-line);
}

.fp-ld__rooms-wrap {
  margin-top: 26px;
}

.fp-ld__rooms {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin-top: 12px;
}

.fp-ld__rooms th,
.fp-ld__rooms td {
  text-align: left;
  padding: 10px 12px 10px 0;
  border-bottom: 1px solid var(--fp-line);
}

.fp-ld__rooms thead th {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--fp-muted);
  padding-top: 0;
}

.fp-ld__rooms-level th {
  font-weight: 600;
  color: var(--fp-green);
  padding-top: 16px;
}

.fp-ld__rooms td {
  color: var(--fp-text);
}

.fp-ld__rooms td:nth-child(2) {
  color: var(--fp-muted);
}

.fp-ld__source {
  font-size: 12.5px;
  color: var(--fp-faint);
  margin: 4px 0 0;
}

/* similar homes: three home-page cards */
.fp-ld__similar-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.fp-ld__group--text {
  margin-top: 26px;
}

.fp-ld__group--text h4 {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 8px;
}

.fp-ld--missing {
  max-width: var(--container-max-width, 1140px);
  margin: 0 auto;
  padding: 96px var(--fp-gutter);
  text-align: center;
}

.fp-ld--missing h1 {
  font-family: var(--fp-head);
  font-weight: 400;
  font-size: 34px;
  margin: 0 0 12px;
}

.fp-ld--missing p {
  color: var(--fp-muted);
  margin: 0 0 24px;
}

/* legacy sidebar bits (rendered only with sidebar="yes") */
.fp-ld__cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 40px;
  align-items: start;
}

.fp-ld__cols--single {
  grid-template-columns: minmax(0, 1fr);
}

.fp-ld__side {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: calc(var(--fp-header-height, 76px) + 24px);
}

.admin-bar .fp-ld__side {
  top: calc(var(--fp-header-height, 76px) + 32px + 24px);
}

@media screen and (max-width: 782px) {
  .fp-ld__side {
    top: calc(var(--fp-header-height, 70px) + 24px);
  }

  .admin-bar .fp-ld__side {
    top: calc(var(--fp-header-height, 70px) + 46px + 24px);
  }
}

@media screen and (max-width: 600px) {
  .admin-bar .fp-ld__side {
    top: calc(var(--fp-header-height, 70px) + 24px);
  }
}

.fp-ld__box {
  background: #fff;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-r);
  padding: 20px;
}

.fp-ld__box-title {
  font-family: var(--fp-head);
  font-size: 20px;
  margin: 0 0 12px;
}

.fp-ld__or {
  text-align: center;
  color: var(--fp-faint);
  font-size: 12px;
  margin: 8px 0;
}

.fp-ld__agent {
  display: flex;
  gap: 12px;
  align-items: center;
}

.fp-ld__agent-ph {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--fp-soft);
}

.fp-ld__agent-name {
  font-weight: 600;
}

.fp-ld__agent-title,
.fp-ld__office-line,
.fp-ld__office-addr {
  font-size: 13px;
  color: var(--fp-muted);
}

.fp-ld__office-name {
  font-weight: 600;
  margin-top: 12px;
}

.fp-ld__agent-link {
  font-size: 13px;
}

.fp-ld__minis {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fp-ld__mini {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 13px;
}

.fp-ld__powered {
  text-align: center;
}

.fp-ld__powered img {
  display: inline-block;
}

.fp-ld__realtor-link {
  display: block;
  margin-top: 8px;
  font-size: 13px;
}

.fp-powered img {
  display: block;
}

/* lightbox */
.fp-lb {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(12, 22, 19, .96);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
}

.fp-lb__bar {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
}

:is(.fp-lb) .fp-lb__close {
  background: rgba(255, 255, 255, .12);
  color: #fff;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 26px;
}

:is(.fp-lb) .fp-lb__close:hover {
  background: rgba(255, 255, 255, .24);
  color: #fff;
}

.fp-lb img#fp-lb-img {
  max-width: 90vw;
  max-height: 72vh;
  object-fit: contain;
  border-radius: var(--fp-r);
}

:is(.fp-lb) .fp-lb__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, .14);
  color: #fff;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  font-size: 28px;
}

:is(.fp-lb) .fp-lb__nav:hover {
  background: rgba(255, 255, 255, .28);
  color: #fff;
}

.fp-lb__prev {
  left: 24px;
}

.fp-lb__next {
  right: 24px;
}

.fp-lb__thumbs {
  display: flex;
  gap: 8px;
  max-width: 92vw;
  overflow-x: auto;
  padding: 8px;
  scrollbar-width: none;
}

.fp-lb__thumbs::-webkit-scrollbar {
  display: none;
}

.fp-lb__thumbs img {
  width: 80px;
  height: 58px;
  object-fit: cover;
  border-radius: var(--fp-r-btn);
  opacity: .45;
  cursor: pointer;
  outline: 2px solid transparent;
  transition: opacity .15s, outline-color .15s;
}

.fp-lb__thumbs img.is-active {
  opacity: 1;
  outline-color: #fff;
}

/* lead form */
.fp-lead {
  padding: 20px 24px 8px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.fp-lead__about {
  margin: 0;
  font-size: 13px;
  color: var(--fp-muted);
}

.fp-lead label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--fp-text);
}

.fp-lead :is(input, select, textarea) {
  border: 1px solid var(--fp-line-2);
  border-radius: var(--fp-r-btn);
  padding: 11px 12px;
  font-weight: 400;
  font-size: 14px;
  color: var(--fp-text);
  outline: 0;
  background: #fff;
}

.fp-lead :is(input, select, textarea):focus {
  border-color: var(--fp-green);
  box-shadow: 0 0 0 3px rgba(23, 59, 52, .12);
}

.fp-lead__hp {
  position: absolute;
  left: -9999px;
}

.fp-lead__status {
  padding: 11px 12px;
  border-radius: var(--fp-r-btn);
  font-size: 13.5px;
  background: var(--fp-soft);
  color: var(--fp-green);
}

.fp-lead__status.is-error {
  background: #fdf3f2;
  color: var(--fp-danger);
}

.fp-lead .fp-rs__modal-actions {
  margin: 0 -24px;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1180px) {
  .fp-rs__fgrid {
    grid-template-columns: repeat(2, 1fr);
  }

  .fp-rs__split {
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
  }
}

@media (max-width: 1100px) {
  .fp-rs__field {
    display: none;
  }

  /* quick filters live in the Filters modal */
}

@media (max-width: 991px) {
  .fp-rs__split {
    grid-template-columns: 1fr;
    height: auto;
  }

  .fp-rs__mapwrap {
    height: 46vh;
    min-height: 320px;
    order: -1;
  }

  .fp-rs__side-list {
    overflow: visible;
    padding: 0;
  }

  .fp-ld__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .fp-ld__top-r {
    align-items: flex-start;
  }

  .fp-ld__gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    height: clamp(240px, 46vw, 420px);
  }

  :is(.fp-ld) .fp-ld__gallery:not(.fp-ld__gallery--single):not(.fp-ld__gallery--two) .fp-ld__photo:first-child {
    grid-row: auto;
  }

  :is(.fp-ld) .fp-ld__gallery:not(.fp-ld__gallery--single):not(.fp-ld__gallery--two) .fp-ld__photo:nth-child(n+3) {
    display: none;
  }

  .fp-ld__similar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fp-ld__cols {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .fp-rs__topbar {
    padding: 10px 0;
  }

  .fp-rs__searchwrap {
    margin-right: 10px;
  }

  .fp-rs .fp-rs__search,
  .fp-rs .fp-rs__search:focus {
    height: 44px;
    padding-left: 40px;
  }

  :is(.fp-rs) .fp-rs__go {
    width: 36px;
    height: 36px;
  }

  :is(.fp-rs) .fp-rs__pill {
    margin-left: 0;
    padding: 0 12px;
    height: 44px;
  }

  .fp-rs__header {
    padding: 24px 0 18px;
  }

  .fp-rs__header-right {
    width: 100%;
    justify-content: space-between;
  }

  .fp-rs__grid {
    grid-template-columns: 1fr;
  }

  .fp-rs__modal {
    padding: 0;
  }

  .fp-rs__modal-panel {
    border-radius: 0;
    min-height: 100%;
  }

  .fp-rs__modal-body {
    padding: 20px 18px;
  }

  .fp-rs__fgrid {
    grid-template-columns: 1fr;
  }

  .fp-rs__f--wide {
    grid-column: span 1;
  }

  .fp-rs__modal-actions {
    padding: 16px 18px 20px;
  }

  .fp-ld__gallery {
    grid-template-columns: 1fr;
  }

  :is(.fp-ld) .fp-ld__gallery .fp-ld__photo:nth-child(n+2) {
    display: none;
  }

  .fp-ld__similar-grid {
    grid-template-columns: 1fr;
  }

  .fp-ld__kvs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
  }

  .fp-ld__card--oh {
    padding: 16px 18px;
    gap: 12px;
  }

  :is(.fp-ld) .fp-ld__tab {
    padding: 10px 14px 12px;
    font-size: 14px;
  }

  .fp-ld__tabbar {
    margin-bottom: 20px;
  }

  .fp-lb__thumbs img {
    width: 62px;
    height: 46px;
  }
}

@media (max-width: 560px) {
  :is(.fp-rs) .fp-rs__pill {
    font-size: 0;
    gap: 0;
    width: 44px;
    justify-content: center;
  }

  .fp-rs__pill-ic svg {
    width: 18px;
    height: 18px;
  }

  .fp-scard {
    grid-template-columns: 124px minmax(0, 1fr);
  }

  .fp-scard__body {
    padding: 12px 12px 10px;
  }
}

@media print {

  .fp-rs__toolbar,
  .fp-lb,
  #fp-lead,
  .fp-ld__similar,
  .fp-ld__crumbs {
    display: none !important;
  }

  .fp-ld .fp-band {
    padding-block: 16px;
    break-inside: avoid;
  }
}