:root {
  --oh-bg: #f4f1ec;
  --oh-panel: #ffffff;
  --oh-text: #171412;
  --oh-muted: #6f6860;
  --oh-border: #ded8ce;
  --oh-gold: #d4af37;
  --oh-gold-dark: #9b7420;
  --oh-brown: #242220;
  --oh-blue: #0b57d0;
  --oh-red: #a11022;
  --oh-shadow: 0 14px 32px rgba(17, 16, 15, 0.16);
  --oh-radius: 16px;
}

* {
  box-sizing: border-box;
}

.oh-app-shell button,
.oh-app-shell input,
.oh-app-shell select {
  font: inherit;
}

.oh-app-shell {
  width: 100%;
  height: min(900px, calc(100vh - 32px));
  min-height: 720px;
  display: flex;
  flex-direction: column;
  color: var(--oh-text);
  font-family: Manrope, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 12% 0%, rgba(212, 175, 55, 0.14), transparent 26%),
    linear-gradient(180deg, #fffaf0 0%, #f4f1ec 100%);
}

.oh-topbar {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--oh-border);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  z-index: 50;
}

.oh-brand-block {
  min-width: 230px;
}

.oh-kicker {
  color: var(--oh-gold-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.oh-brand-block h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2.2vw, 34px);
  line-height: 1.05;
  font-weight: 600;
  color: var(--oh-brown);
}

.oh-controls {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  width: 100%;
}

.oh-control {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 240px;
}

.oh-control-small {
  min-width: 115px;
}

.oh-control span {
  color: var(--oh-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.oh-control input,
.oh-control select {
  height: 40px;
  border: 1px solid var(--oh-border);
  border-radius: 12px;
  background: #fff;
  padding: 0 12px;
  outline: none;
  color: var(--oh-text);
}

.oh-control input:focus,
.oh-control select:focus {
  border-color: var(--oh-gold);
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18);
}

.oh-button {
  height: 40px;
  border: 1px solid var(--oh-gold);
  border-radius: 12px;
  background: linear-gradient(135deg, #b88928 0%, #f1d27a 45%, #b88928 100%);
  color: #171412;
  font-weight: 800;
  padding: 0 16px;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(36, 34, 32, 0.16);
}

.oh-button:hover {
  transform: translateY(-1px);
}



.oh-layout {
  flex: 1 1 auto;
  min-height: 0;
  height: calc(100% - 82px);
  display: grid;
  grid-template-columns: minmax(460px, 60%) minmax(390px, 40%);
  overflow: hidden;
  position: relative;
  isolation: isolate;
}

.oh-map-panel {
  position: relative;
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  z-index: 1;
  background: #dfeadf;
}

.oh-results-panel {
  position: relative;
  min-width: 0;
  min-height: 0;
  height: 100%;
  border-left: 1px solid var(--oh-border);
  background: #f8f6f1;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 5;
  box-shadow: -8px 0 18px rgba(36, 34, 32, 0.04);
}

.oh-map {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 420px;
  background: #dfeadf;
  overflow: hidden;
}

/* =========================================================
   Leaflet core safety CSS - V6

   The previous symptoms looked like the Leaflet tile images were
   being laid out or clipped outside of Leaflet's normal positioning
   rules. This block repeats the important Leaflet positioning rules
   locally so the map still renders correctly even if the CDN Leaflet
   stylesheet loads late, gets cached oddly, or is partially overridden.
   ========================================================= */
#map.leaflet-container {
  overflow: hidden !important;
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  background: #dfeadf !important;
  outline: 0 !important;
  font: 12px/1.5 Arial, Helvetica, sans-serif !important;
}

#map .leaflet-pane,
#map .leaflet-map-pane,
#map .leaflet-tile,
#map .leaflet-marker-icon,
#map .leaflet-marker-shadow,
#map .leaflet-tile-container,
#map .leaflet-pane > svg,
#map .leaflet-pane > canvas,
#map .leaflet-zoom-box,
#map .leaflet-image-layer,
#map .leaflet-layer {
  position: absolute !important;
  left: 0;
  top: 0;
}

#map .leaflet-container img,
#map .leaflet-tile,
#map .leaflet-marker-icon,
#map .leaflet-marker-shadow {
  max-width: none !important;
  max-height: none !important;
}

#map .leaflet-tile {
  user-select: none !important;
  -webkit-user-drag: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  image-rendering: auto !important;
}

#map .leaflet-map-pane {
  z-index: 400;
}

#map .leaflet-tile-pane {
  z-index: 200;
}

#map .leaflet-overlay-pane {
  z-index: 400;
}

#map .leaflet-shadow-pane {
  z-index: 500;
}

#map .leaflet-marker-pane {
  z-index: 600;
}

#map .leaflet-tooltip-pane {
  z-index: 650;
}

#map .leaflet-popup-pane {
  z-index: 700;
}

#map .leaflet-zoom-animated {
  transform-origin: 0 0;
}

#map .leaflet-interactive {
  cursor: pointer;
}

#map .leaflet-grab {
  cursor: grab;
}

#map .leaflet-dragging .leaflet-grab,
#map .leaflet-dragging .leaflet-grab .leaflet-interactive {
  cursor: grabbing;
}

#map .leaflet-control {
  position: relative;
  z-index: 800;
  pointer-events: auto;
}

#map .leaflet-top,
#map .leaflet-bottom {
  position: absolute;
  z-index: 1000;
  pointer-events: none;
}

#map .leaflet-top {
  top: 0;
}

#map .leaflet-right {
  right: 0;
}

#map .leaflet-bottom {
  bottom: 0;
}

#map .leaflet-left {
  left: 0;
}

#map .leaflet-control-container .leaflet-top,
#map .leaflet-control-container .leaflet-bottom {
  pointer-events: none;
}

#map .leaflet-control-container .leaflet-control {
  pointer-events: auto;
}


.oh-map-legend {
  position: absolute;
  left: 14px;
  bottom: 18px;
  z-index: 700;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--oh-border);
  box-shadow: var(--oh-shadow);
  color: var(--oh-muted);
  font-size: 12px;
  font-weight: 700;
}

.oh-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  margin-right: 5px;
  vertical-align: -1px;
}

.oh-dot-solid {
  background: var(--oh-red);
}

.oh-dot-outline {
  border: 2px solid var(--oh-red);
  background: #fff;
}


.oh-results-header {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 18px 18px 13px;
  border-bottom: 1px solid var(--oh-border);
  background: rgba(248, 246, 241, 0.94);
  backdrop-filter: blur(10px);
}

.oh-result-count {
  font-size: 20px;
  font-weight: 900;
  color: var(--oh-brown);
}

.oh-result-subtext {
  margin-top: 3px;
  color: var(--oh-muted);
  font-size: 13px;
}

.oh-selected-property {
  margin: 14px 18px 0;
  padding: 10px 12px;
  border: 1px solid rgba(212, 175, 55, 0.55);
  border-radius: var(--oh-radius);
  background:
    linear-gradient(135deg, rgba(212, 175, 55, 0.13), rgba(255, 255, 255, 0.75)),
    #fff;
  box-shadow: 0 10px 22px rgba(36, 34, 32, 0.10);
}

.oh-selected-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--oh-brown);
}

.oh-selected-meta {
  margin-top: 4px;
  color: var(--oh-muted);
  font-size: 12px;
  line-height: 1.3;
}

.oh-card-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 14px 18px 22px;
}

.oh-card {
  min-width: 0;
  border: 1px solid var(--oh-border);
  border-radius: var(--oh-radius);
  overflow: hidden;
  background: var(--oh-panel);
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(36, 34, 32, 0.10);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.oh-card:hover,
.oh-card:focus {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(36, 34, 32, 0.16);
  border-color: rgba(212, 175, 55, 0.9);
  outline: none;
}

.oh-card.is-selected {
  border-color: var(--oh-blue);
  box-shadow: 0 0 0 2px rgba(11, 87, 208, 0.16), 0 16px 32px rgba(36, 34, 32, 0.16);
}

.oh-card-image-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(36, 34, 32, 0.9), rgba(75, 61, 50, 0.8)),
    #211b18;
}

.oh-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.26s ease;
}

.oh-card:hover .oh-card-image {
  transform: scale(1.025);
}

.oh-card-badge {
  position: absolute;
  top: 9px;
  left: 9px;
  max-width: calc(100% - 18px);
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #201b16;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.1;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.14);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


.oh-card-body {
  padding: 12px 12px 13px;
}

.oh-card-price {
  font-size: 23px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.03em;
  color: #111;
}

.oh-card-facts {
  margin-top: 7px;
  color: #2b2825;
  font-size: 14px;
  font-weight: 650;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-card-address {
  margin-top: 8px;
  color: #605950;
  font-size: 14px;
  line-height: 1.3;
}

.oh-card-subdivision {
  margin-top: 4px;
  color: #887f74;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-card-footer {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
  color: #8a837a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}


.oh-pin-marker-wrap {
  background: transparent !important;
  border: 0 !important;
}

.oh-pin-marker {
  position: relative;
  width: 76px;
  height: 64px;
  transform: translateZ(0);
  pointer-events: auto;
}

.oh-pin-icon {
  position: absolute;
  left: 50%;
  bottom: 11px;
  width: 34px;
  height: 44px;
  transform: translateX(-50%);
  filter: drop-shadow(0 7px 10px rgba(0, 0, 0, 0.30));
}

.oh-pin-icon path {
  fill: var(--oh-red);
  stroke: rgba(255, 255, 255, 0.96);
  stroke-width: 2.4;
}

.oh-pin-icon circle {
  fill: #fff;
  stroke: rgba(255, 255, 255, 0.95);
  stroke-width: 1;
}

.oh-pin-price {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 23px;
  padding: 0 8px;
  border-radius: 999px;
  background: #fff;
  border: 2px solid var(--oh-red);
  color: #171412;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 7px 14px rgba(0, 0, 0, 0.24);
}

.oh-pin-marker.is-selected .oh-pin-icon path {
  fill: var(--oh-blue);
}

.oh-pin-marker.is-selected .oh-pin-price {
  border-color: var(--oh-blue);
  box-shadow: 0 0 0 3px rgba(11, 87, 208, 0.20), 0 8px 16px rgba(0, 0, 0, 0.24);
}

.oh-pin-marker:hover .oh-pin-icon,
.oh-pin-marker.is-selected .oh-pin-icon {
  transform: translateX(-50%) translateY(-2px);
}

.leaflet-popup-content-wrapper {
  border-radius: 14px;
  overflow: hidden;
  padding: 0;
}

.leaflet-popup-content {
  margin: 0;
  width: 220px !important;
  max-width: 220px !important;
}

.oh-popup {
  background: #fff;
}

.oh-popup img {
  display: block;
  width: 100%;
  height: 106px;
  object-fit: cover;
  background: #211b18;
}

.oh-popup-body {
  padding: 12px;
}

.oh-popup-price {
  font-size: 22px;
  font-weight: 950;
  color: #111;
}

.oh-popup-address,
.oh-popup-meta {
  margin-top: 5px;
  color: #605950;
  font-size: 13px;
  line-height: 1.35;
}

.oh-empty {
  grid-column: 1 / -1;
  padding: 24px;
  border: 1px dashed var(--oh-border);
  border-radius: var(--oh-radius);
  background: #fff;
  color: var(--oh-muted);
  text-align: center;
}

@media (max-width: 1120px) {
  .oh-app-shell {
    min-height: 100vh;
    height: auto;
    overflow: visible;
  }

  .oh-topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .oh-controls {
    justify-content: flex-start;
  }

  .oh-layout {
    position: static;
    display: block;
    height: auto;
    overflow: visible;
  }

  .oh-map-panel {
    position: relative;
    top: auto;
    left: auto;
    bottom: auto;
    width: 100%;
    min-width: 0;
    height: 58vh;
    min-height: 430px;
    z-index: 1;
  }

  .oh-results-panel {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    min-width: 0;
    border-left: 0;
    border-top: 1px solid var(--oh-border);
    overflow: visible;
    z-index: 2;
  }
}

@media (max-width: 720px) {
  .oh-control,
  .oh-control-small,
  .oh-button {
    width: 100%;
    min-width: 0;
  }

  .oh-card-list {
    grid-template-columns: 1fr;
    padding-left: 12px;
    padding-right: 12px;
  }

  .oh-results-header,
  .oh-selected-property {
    margin-left: 12px;
    margin-right: 12px;
  }

  .oh-results-header {
    padding-left: 0;
    padding-right: 0;
  }

  .oh-map-panel {
    height: 56vh;
    min-height: 360px;
  }
}


/* V8 - filter controls and compact map card popup. */
#map .leaflet-popup {
  max-width: 240px !important;
}

#map .leaflet-control-zoom a {
  width: 30px !important;
  height: 30px !important;
  line-height: 30px !important;
  display: block !important;
  text-align: center !important;
  text-decoration: none !important;
  color: #333 !important;
  background: #fff !important;
  border-bottom: 1px solid #ccc !important;
}

#map .leaflet-control-zoom a:last-child {
  border-bottom: 0 !important;
}

#map .leaflet-control-attribution {
  font-size: 11px !important;
}


/* =========================================================
   V8 - requested refinements
   ========================================================= */
.oh-control-city {
  min-width: 150px;
}

.oh-control-city input::-webkit-calendar-picker-indicator {
  opacity: 0.65;
}

/* The map popup is now a compact property card anchored to the selected pin.
   It does not auto-pan the map, so it should not jump toward the upper-left
   controls when a pin/card is clicked. */
#map .oh-map-card-popup {
  max-width: 286px !important;
}

#map .oh-map-card-popup .leaflet-popup-content-wrapper {
  border-radius: 16px !important;
  overflow: hidden !important;
  padding: 0 !important;
  box-shadow: 0 18px 36px rgba(18, 16, 14, 0.28) !important;
  border: 1px solid rgba(212, 175, 55, 0.35) !important;
}

#map .oh-map-card-popup .leaflet-popup-content {
  width: 262px !important;
  max-width: 262px !important;
  margin: 0 !important;
}

#map .oh-map-card-popup .leaflet-popup-tip {
  box-shadow: 0 8px 18px rgba(18, 16, 14, 0.20) !important;
}

#map .oh-map-card-popup .leaflet-popup-close-button {
  top: 7px !important;
  right: 7px !important;
  width: 25px !important;
  height: 25px !important;
  line-height: 23px !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: rgba(0, 0, 0, 0.48) !important;
  text-decoration: none !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  z-index: 5 !important;
}

.oh-popup-card {
  width: 262px;
  background: #fff;
  color: #171412;
}

.oh-popup-image-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(36, 34, 32, 0.9), rgba(75, 61, 50, 0.8)),
    #211b18;
}

.oh-popup-image-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oh-popup-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  right: 38px;
  max-width: calc(100% - 46px);
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: #201b16;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.14);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-popup-body {
  padding: 11px 12px 12px;
}

.oh-popup-price {
  font-size: 22px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.03em;
  color: #111;
}

.oh-popup-facts {
  margin-top: 7px;
  color: #2b2825;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-popup-address {
  margin-top: 7px;
  color: #605950;
  font-size: 13px;
  line-height: 1.28;
}

.oh-popup-subdivision {
  margin-top: 5px;
  color: #887f74;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-popup-footer {
  margin-top: 8px;
  color: #8a837a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: right;
}

@media (max-width: 1120px) {
  .oh-control-city {
    min-width: 0;
  }
}


/* =========================================================
   V9 - map interaction, filtering, selected-card, and branding refinements
   ========================================================= */

/* Keep Leaflet popups anchored to the selected marker. Some browser/CSS
   combinations can drop the popup into the top-left of the map unless the
   popup itself is explicitly positioned. */
#map .leaflet-popup {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  text-align: left !important;
  margin-bottom: 20px !important;
  max-width: 286px !important;
  z-index: 720 !important;
}

#map .leaflet-popup-tip-container {
  position: absolute !important;
  left: 50% !important;
  margin-left: -20px !important;
  bottom: -20px !important;
  width: 40px !important;
  height: 20px !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

#map .leaflet-popup-tip {
  width: 17px !important;
  height: 17px !important;
  margin: -10px auto 0 !important;
  padding: 1px !important;
  transform: rotate(45deg) !important;
  background: #fff !important;
}

/* Stronger selected-card state on the right panel. */
.oh-card.is-selected {
  border-color: var(--oh-blue) !important;
  border-width: 2px !important;
  box-shadow:
    0 0 0 3px rgba(11, 87, 208, 0.22),
    0 18px 36px rgba(36, 34, 32, 0.18) !important;
}

/* Extra property-data chips. These use fields we already have but were not
   previously visible on the cards, such as MLS status and MLS area. */
.oh-card-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.oh-card-highlights span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(212, 175, 55, 0.12);
  border: 1px solid rgba(212, 175, 55, 0.34);
  color: #5c4517;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Move and restyle zoom controls so they feel like independent map buttons. */
#map .leaflet-top.leaflet-right {
  top: 14px !important;
  right: 14px !important;
}

#map .leaflet-control-zoom {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

#map .leaflet-control-zoom a {
  width: 38px !important;
  height: 38px !important;
  line-height: 35px !important;
  border: 1px solid rgba(36, 34, 32, 0.16) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--oh-brown) !important;
  box-shadow: 0 8px 18px rgba(36, 34, 32, 0.20) !important;
  font-size: 24px !important;
  font-weight: 900 !important;
  text-align: center !important;
}

#map .leaflet-control-zoom a:hover {
  background: #fff7dc !important;
  border-color: rgba(212, 175, 55, 0.78) !important;
  color: #171412 !important;
}

/* Keep the required map attribution visible, but render it as subtle
   overlay text instead of a prominent branded pill. */
#map .leaflet-control-attribution {
  margin: 0 12px 10px 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.96) !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.72), 0 0 4px rgba(0, 0, 0, 0.18) !important;
  transform: translate(8px, 3px) !important;
  pointer-events: none !important;
}

/* The selected-property text card was removed from the HTML, but keep this as
   a guard if an older cached HTML file still has it. */
.oh-selected-property {
  display: none !important;
}

/* Fine-tune the compact popup to look more like a mini listing card. */
#map .oh-map-card-popup .leaflet-popup-content-wrapper {
  border: 1px solid rgba(212, 175, 55, 0.55) !important;
}

.oh-popup-card {
  width: 262px !important;
}

.oh-popup-footer {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  text-align: left;
}


/* =========================================================
   V10 - custom property popup, cleaner cards, and date filter
   ========================================================= */

.oh-control-date {
  min-width: 130px;
}

.oh-card.is-selected {
  border-color: var(--oh-blue) !important;
  border-width: 3px !important;
  box-shadow:
    0 0 0 4px rgba(11, 87, 208, 0.24),
    0 20px 40px rgba(36, 34, 32, 0.20) !important;
}

.oh-card-footer {
  align-items: flex-end;
  min-height: 16px;
  margin-top: 9px;
}

.oh-card-office {
  max-width: 72%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-card-highlights,
.oh-card-highlights:empty {
  display: none !important;
}

/* The Leaflet popup has been replaced with a custom floating card. This avoids
   the top-left positioning bug and gives us full control over placement. */
.oh-floating-property-popup {
  position: absolute;
  left: 12px;
  top: 12px;
  width: 286px;
  max-width: calc(100% - 24px);
  z-index: 760;
  display: none;
  pointer-events: auto;
  filter: drop-shadow(0 18px 34px rgba(18, 16, 14, 0.26));
}

.oh-floating-property-popup.is-visible {
  display: block;
}

.oh-floating-property-popup::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 16px;
  height: 16px;
  background: #fff;
  border-right: 1px solid rgba(212, 175, 55, 0.34);
  border-bottom: 1px solid rgba(212, 175, 55, 0.34);
}

.oh-floating-property-popup[data-placement="above"]::after {
  bottom: -8px;
}

.oh-floating-property-popup[data-placement="below"]::after {
  top: -8px;
  border-right: 0;
  border-bottom: 0;
  border-left: 1px solid rgba(212, 175, 55, 0.34);
  border-top: 1px solid rgba(212, 175, 55, 0.34);
}

.oh-floating-property-popup .oh-popup-card {
  width: 286px;
  max-width: 100%;
  border: 1px solid rgba(212, 175, 55, 0.36);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.oh-floating-popup-close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 3;
  width: 28px;
  height: 28px;
  line-height: 24px;
  border: 1px solid rgba(255,255,255,0.5);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.56);
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  cursor: pointer;
}

.oh-floating-popup-close:hover {
  background: rgba(0, 0, 0, 0.78);
}

.oh-floating-property-popup .oh-popup-footer {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 9px;
  color: #8a837a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.oh-floating-property-popup .oh-popup-footer span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .oh-control-date {
    min-width: 0;
  }
}

/* Prevent price wrapping on narrower cards. */
.oh-card-price,
.oh-popup-price {
  white-space: nowrap;
}

/* =========================================================
   V11 - address, subdivision, sorting, and brand hover refinements
   ========================================================= */
.oh-button:hover,
.oh-button:focus {
  background: linear-gradient(135deg, #242220 0%, #3b3028 100%) !important;
  border-color: var(--oh-gold) !important;
  color: var(--oh-gold) !important;
  box-shadow: 0 10px 22px rgba(36, 34, 32, 0.24) !important;
  transform: translateY(-1px);
  outline: none;
}

.oh-button:active {
  transform: translateY(0);
}

.oh-card-subdivision,
.oh-popup-subdivision {
  color: #887f74 !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-subdivision-label {
  color: #171412 !important;
  font-weight: 850 !important;
  letter-spacing: 0 !important;
}

.oh-card-address,
.oh-popup-address {
  color: #5f5850 !important;
}


/* =========================================================
   V12 - sorting/filter refinements and cleaner popup pointer
   ========================================================= */
.oh-control-style {
  min-width: 155px;
}

@media (max-width: 1120px) {
  .oh-control-style {
    min-width: 0;
  }
}

/* Replace the rotated square popup pointer with an actual CSS triangle.
   This avoids the "white diamond" look when the card flips below the pin. */
.oh-floating-property-popup::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  background: transparent !important;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 0;
  border-bottom: 0;
}

.oh-floating-property-popup[data-placement="above"]::after {
  bottom: -11px;
  border-top: 12px solid #fff;
}

.oh-floating-property-popup[data-placement="below"]::after {
  top: -11px;
  border-bottom: 12px solid #fff;
}

.oh-floating-property-popup[data-placement="below"] .oh-popup-card {
  border-top-color: rgba(212, 175, 55, 0.55);
}

/* Keep cards compact now that the chips were removed. */
.oh-card-body {
  padding-bottom: 11px;
}

.oh-card-footer {
  margin-top: 8px;
}

/* Make the selected card stand out a little more without feeling oversized. */
.oh-card.is-selected {
  border-width: 3px !important;
  box-shadow:
    0 0 0 5px rgba(11, 87, 208, 0.18),
    0 20px 40px rgba(36, 34, 32, 0.20) !important;
}

/* =========================================================
   V13 - share menu and share-card capture
   ========================================================= */
.oh-card-badge,
.oh-popup-badge {
  max-width: calc(100% - 62px);
}

.oh-share-trigger {
  position: absolute;
  top: 9px;
  right: 9px;
  z-index: 6;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(212, 175, 55, 0.72);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.76);
  color: var(--oh-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
  transition: transform 0.16s ease, background 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.oh-share-trigger svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
}

.oh-share-trigger:hover,
.oh-share-trigger:focus {
  background: rgba(212, 175, 55, 0.96);
  border-color: rgba(212, 175, 55, 1);
  color: #171412;
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.28);
  outline: none;
}

.oh-popup-share-trigger {
  width: 32px;
  height: 32px;
  top: 8px;
  right: 8px;
}

.oh-floating-popup-close {
  display: none !important;
}

.oh-share-menu {
  position: fixed;
  width: 224px;
  z-index: 100000;
  display: none;
  padding: 10px;
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 42px rgba(18, 16, 14, 0.24);
  color: var(--oh-text);
}

.oh-share-menu.is-visible {
  display: block;
}

.oh-share-menu::before {
  content: "";
  position: absolute;
  top: -7px;
  right: 18px;
  width: 14px;
  height: 14px;
  background: rgba(255, 255, 255, 0.98);
  border-left: 1px solid rgba(212, 175, 55, 0.35);
  border-top: 1px solid rgba(212, 175, 55, 0.35);
  transform: rotate(45deg);
}

.oh-share-menu-title {
  position: relative;
  z-index: 2;
  color: var(--oh-gold-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  margin: 2px 4px 3px;
}

.oh-share-menu-property {
  position: relative;
  z-index: 2;
  margin: 0 4px 8px;
  color: #403a34;
  font-size: 12px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-share-menu-item {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
  padding: 8px 9px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #211b18;
  cursor: pointer;
  text-align: left;
  font-size: 13px;
  font-weight: 750;
}

.oh-share-menu-item:hover,
.oh-share-menu-item:focus {
  background: rgba(212, 175, 55, 0.14);
  color: #171412;
  outline: none;
}

.oh-share-menu-item:disabled {
  opacity: 0.55;
  cursor: wait;
}

.oh-share-menu-icon {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  background: rgba(36, 34, 32, 0.08);
  color: var(--oh-gold-dark);
  font-size: 13px;
  font-weight: 950;
}

.oh-share-menu-note {
  position: relative;
  z-index: 2;
  margin: 8px 4px 0;
  padding-top: 8px;
  border-top: 1px solid rgba(222, 216, 206, 0.9);
  color: #827970;
  font-size: 11px;
  line-height: 1.3;
}

.oh-share-menu-status {
  position: relative;
  z-index: 2;
  min-height: 16px;
  margin: 7px 4px 0;
  color: var(--oh-gold-dark);
  font-size: 11px;
  font-weight: 800;
}

.oh-card.is-share-active,
.oh-popup-card.is-share-active {
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.22), 0 16px 32px rgba(36, 34, 32, 0.16);
}

.oh-share-capture-stage {
  position: fixed;
  left: -10000px;
  top: 0;
  width: 420px;
  z-index: -1;
  pointer-events: none;
}

.oh-share-capture-card {
  width: 420px;
  overflow: hidden;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid rgba(212, 175, 55, 0.42);
  box-shadow: 0 16px 40px rgba(36, 34, 32, 0.18);
  font-family: Manrope, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #171412;
}

.oh-share-capture-image-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background:
    linear-gradient(135deg, rgba(36, 34, 32, 0.9), rgba(75, 61, 50, 0.8)),
    #211b18;
}

.oh-share-capture-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.oh-share-capture-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  max-width: calc(100% - 24px);
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: #201b16;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
  box-shadow: 0 5px 12px rgba(0,0,0,0.14);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-share-capture-body {
  padding: 18px 20px 16px;
}

.oh-share-capture-kicker {
  color: var(--oh-gold-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.oh-share-capture-price {
  font-size: 32px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.035em;
}

.oh-share-capture-facts {
  margin-top: 8px;
  color: #282420;
  font-size: 16px;
  font-weight: 750;
}

.oh-share-capture-address {
  margin-top: 11px;
  color: #5f5850;
  font-size: 16px;
  line-height: 1.35;
}

.oh-share-capture-subdivision {
  margin-top: 7px;
  color: #887f74;
  font-size: 13px;
  line-height: 1.35;
}

.oh-share-capture-footer {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 15px;
  color: #7c746a;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.oh-share-capture-footer span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-share-capture-url {
  margin-top: 13px;
  padding-top: 12px;
  border-top: 1px solid rgba(222,216,206,0.88);
  color: var(--oh-gold-dark);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 760px) {
  .oh-share-menu {
    width: min(230px, calc(100vw - 20px));
  }
}

/* =========================================================
   V15 - simplified full listing modal and branded CTA hover state
   ========================================================= */
.oh-full-listing-pill {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 7;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 7px 12px;
  border: 1px solid rgba(212, 175, 55, 0.82);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.82);
  color: var(--oh-gold);
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.01em;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 9px 18px rgba(0, 0, 0, 0.24);
  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
  transition: opacity 0.16s ease, transform 0.16s ease, background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.oh-card:hover .oh-full-listing-pill,
.oh-card:focus-within .oh-full-listing-pill,
.oh-card.is-selected .oh-full-listing-pill,
.oh-popup-card .oh-full-listing-pill {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.oh-full-listing-pill:hover,
.oh-full-listing-pill:focus {
  background: rgba(212, 175, 55, 0.96);
  border-color: var(--oh-gold);
  color: #171412;
  outline: none;
}

.oh-popup-full-listing-pill {
  right: 10px;
  bottom: 9px;
  min-height: 28px;
  padding: 7px 11px;
  font-size: 11px;
}

body.oh-modal-open {
  overflow: hidden;
}

.oh-full-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 200000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(14, 12, 10, 0.68);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.oh-full-modal-overlay.is-visible {
  display: flex;
}

.oh-full-modal-card {
  position: relative;
  width: min(980px, 96vw);
  max-height: min(760px, 92vh);
  display: grid;
  grid-template-columns: minmax(320px, 44%) minmax(0, 56%);
  overflow: hidden;
  border: 1px solid rgba(212, 175, 55, 0.46);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.42);
}

.oh-full-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 4;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(212, 175, 55, 0.72);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.82);
  color: var(--oh-gold);
  font-size: 26px;
  line-height: 30px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.24);
}

.oh-full-modal-close:hover,
.oh-full-modal-close:focus {
  background: var(--oh-gold);
  color: #171412;
  outline: none;
}

.oh-full-modal-image-col {
  min-height: 100%;
  background:
    linear-gradient(135deg, rgba(36, 34, 32, 0.94), rgba(68, 55, 45, 0.88)),
    #211b18;
}

.oh-full-modal-image-wrap {
  position: sticky;
  top: 0;
  height: 100%;
  min-height: 520px;
  overflow: hidden;
  background: #211b18;
}

.oh-full-modal-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.oh-full-modal-image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.20) 100%);
  pointer-events: none;
}

.oh-full-modal-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 60px;
  z-index: 2;
  display: inline-flex;
  width: fit-content;
  max-width: calc(100% - 80px);
  padding: 8px 13px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: #201b16;
  font-size: 13px;
  line-height: 1.1;
  font-weight: 950;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.16);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-full-modal-content {
  min-width: 0;
  padding: 34px 34px 30px;
  overflow-y: auto;
  background:
    radial-gradient(circle at 100% 0%, rgba(212, 175, 55, 0.12), transparent 30%),
    #fff;
}

.oh-full-modal-kicker {
  color: var(--oh-gold-dark);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.oh-full-modal-content h2 {
  margin: 0;
  color: #111;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 0.96;
  letter-spacing: -0.045em;
}

.oh-full-modal-facts {
  margin-top: 12px;
  color: #25211e;
  font-size: 18px;
  font-weight: 850;
}

.oh-full-modal-address {
  margin-top: 16px;
  color: #514a42;
  font-size: 18px;
  line-height: 1.35;
}

.oh-full-modal-subdivision {
  margin-top: 8px;
  color: #6b6259;
  font-size: 15px;
  line-height: 1.35;
}

.oh-full-modal-subdivision span {
  color: #171412;
  font-weight: 900;
}

.oh-full-modal-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 24px;
}

.oh-full-modal-detail-grid div {
  min-width: 0;
  padding: 12px 13px;
  border: 1px solid rgba(222, 216, 206, 0.9);
  border-radius: 15px;
  background: rgba(248, 246, 241, 0.88);
}

.oh-full-modal-detail-grid span {
  display: block;
  margin-bottom: 4px;
  color: var(--oh-gold-dark);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.oh-full-modal-detail-grid strong {
  display: block;
  color: #211b18;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-full-modal-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
}

.oh-full-modal-primary,
.oh-full-modal-action {
  height: 42px;
  min-height: 42px;
  box-sizing: border-box;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0 18px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.oh-full-modal-primary {
  border: 1px solid var(--oh-gold);
  background: linear-gradient(135deg, #b88928 0%, #f1d27a 45%, #b88928 100%);
  color: #171412;
  box-shadow: 0 10px 20px rgba(36, 34, 32, 0.16);
}

.oh-full-modal-action {
  border: 1px solid rgba(36, 34, 32, 0.16);
  background: #fff;
  color: #211b18;
}

.oh-full-modal-primary:hover,
.oh-full-modal-primary:focus,
.oh-full-modal-action:hover,
.oh-full-modal-action:focus {
  transform: translateY(-1px);
  outline: none;
}


.oh-full-modal-primary:hover,
.oh-full-modal-primary:focus {
  border-color: #d4af37;
  background: #211b18;
  color: #d4af37;
  box-shadow: 0 14px 26px rgba(36, 34, 32, 0.26);
}

.oh-full-modal-action:hover,
.oh-full-modal-action:focus {
  border-color: rgba(212, 175, 55, 0.76);
  background: #fff7dc;
}

.oh-full-modal-action:disabled {
  opacity: 0.55;
  cursor: wait;
}

.oh-full-modal-action-status {
  flex: 1 1 180px;
  min-width: 150px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  padding: 0 4px;
  color: var(--oh-gold-dark);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: 0.02em;
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity 0.14s ease, transform 0.14s ease;
  pointer-events: none;
}

.oh-full-modal-action-status.has-message {
  opacity: 1;
  transform: translateY(0);
}

.oh-full-modal-action-status.is-error {
  color: var(--oh-red);
}

.oh-full-modal-contact-note {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(222, 216, 206, 0.9);
  color: #5f5850;
  font-size: 14px;
  line-height: 1.35;
}

.oh-full-modal-contact-note strong {
  color: var(--oh-gold-dark);
  font-size: 17px;
}

.oh-full-modal-status {
  display: none !important;
}

@media (max-width: 860px) {
  .oh-full-modal-overlay {
    padding: 14px;
  }

  .oh-full-modal-card {
    grid-template-columns: 1fr;
    max-height: 94vh;
  }

  .oh-full-modal-image-wrap {
    position: relative;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .oh-full-modal-content {
    padding: 24px 22px 22px;
  }

  .oh-full-modal-detail-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   V18 - multi-photo carousel controls for property cards
   ========================================================= */
.oh-card-image-wrap,
.oh-popup-image-wrap,
.oh-full-modal-image-wrap {
  isolation: isolate;
}

.oh-photo-nav {
  position: absolute;
  top: 50%;
  z-index: 8;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(212, 175, 55, 0.76);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.72);
  color: #fff7df;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 30px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.26);
  transform: translateY(-50%);
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, transform 0.16s ease, opacity 0.16s ease;
  opacity: 0.92;
  user-select: none;
}

.oh-photo-nav-prev {
  left: 10px;
  padding-bottom: 3px;
}

.oh-photo-nav-next {
  right: 10px;
  padding-bottom: 3px;
}

.oh-photo-nav:hover,
.oh-photo-nav:focus {
  background: rgba(212, 175, 55, 0.96);
  border-color: rgba(212, 175, 55, 1);
  color: #171412;
  outline: none;
  opacity: 1;
}

.oh-photo-nav-prev:hover,
.oh-photo-nav-prev:focus {
  transform: translateY(-50%) translateX(-1px);
}

.oh-photo-nav-next:hover,
.oh-photo-nav-next:focus {
  transform: translateY(-50%) translateX(1px);
}

.oh-photo-count {
  position: absolute;
  left: 50%;
  bottom: 11px;
  z-index: 8;
  transform: translateX(-50%);
  min-height: 22px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.74);
  border: 1px solid rgba(212, 175, 55, 0.56);
  color: #fff7df;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.02em;
  box-shadow: 0 7px 16px rgba(0, 0, 0, 0.22);
  pointer-events: none;
}

/* Keep carousel controls from fighting with existing share and listing buttons. */
.oh-card-image-wrap .oh-photo-nav,
.oh-popup-image-wrap .oh-photo-nav {
  width: 32px;
  height: 32px;
  font-size: 27px;
}

.oh-card-image-wrap .oh-photo-nav-prev,
.oh-popup-image-wrap .oh-photo-nav-prev {
  left: 8px;
}

.oh-card-image-wrap .oh-photo-nav-next,
.oh-popup-image-wrap .oh-photo-nav-next {
  right: 8px;
}

.oh-card-image-wrap .oh-photo-count,
.oh-popup-image-wrap .oh-photo-count {
  bottom: 48px;
  font-size: 10px;
  padding: 4px 8px;
}

.oh-popup-image-wrap .oh-photo-count {
  bottom: 43px;
}

.oh-full-modal-image-wrap .oh-photo-nav {
  width: 46px;
  height: 46px;
  font-size: 38px;
  background: rgba(36, 34, 32, 0.66);
}

.oh-full-modal-image-wrap .oh-photo-nav-prev {
  left: 18px;
}

.oh-full-modal-image-wrap .oh-photo-nav-next {
  right: 18px;
}

.oh-full-modal-image-wrap .oh-photo-count {
  bottom: 18px;
  font-size: 12px;
  padding: 7px 11px;
}

@media (hover: hover) {
  .oh-card-image-wrap .oh-photo-nav,
  .oh-popup-image-wrap .oh-photo-nav {
    opacity: 0;
  }

  .oh-card:hover .oh-photo-nav,
  .oh-card:focus-within .oh-photo-nav,
  .oh-popup-card:hover .oh-photo-nav,
  .oh-popup-card:focus-within .oh-photo-nav {
    opacity: 0.94;
  }
}

@media (max-width: 720px) {
  .oh-photo-nav {
    opacity: 0.96;
  }

  .oh-card-image-wrap .oh-photo-nav,
  .oh-popup-image-wrap .oh-photo-nav {
    width: 34px;
    height: 34px;
  }
}


/* =========================================================
   V19 - refined photo controls and full-screen slideshow
   ========================================================= */
.oh-card-image,
.oh-popup-image-wrap img,
.oh-full-modal-image-wrap img,
.oh-slideshow-image {
  transition: opacity 0.24s ease, transform 0.26s ease;
}

.oh-card-image.is-photo-changing,
.oh-popup-image-wrap img.is-photo-changing,
.oh-full-modal-image-wrap img.is-photo-changing,
.oh-slideshow-image.is-photo-changing {
  opacity: 0.16;
}

/* Arrow focus should not stay visually highlighted after mouse clicks. */
.oh-photo-nav:focus:not(:focus-visible),
.oh-share-trigger:focus:not(:focus-visible),
.oh-slideshow-trigger:focus:not(:focus-visible),
.oh-slideshow-nav:focus:not(:focus-visible) {
  outline: none;
  background: rgba(36, 34, 32, 0.72);
  border-color: rgba(212, 175, 55, 0.76);
  color: #fff7df;
  transform: translateY(-50%);
}

.oh-card-image-wrap .oh-photo-count,
.oh-popup-image-wrap .oh-photo-count,
.oh-full-modal-image-wrap .oh-photo-count {
  left: 11px !important;
  right: auto !important;
  bottom: 10px !important;
  transform: none !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #fff7df !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.65), 0 0 9px rgba(0, 0, 0, 0.55);
}

.oh-full-modal-image-wrap .oh-photo-count {
  left: 18px !important;
  bottom: 18px !important;
  font-size: 12px !important;
}

.oh-slideshow-trigger {
  position: absolute;
  top: 9px;
  right: 51px;
  z-index: 6;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(212, 175, 55, 0.72);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.76);
  color: var(--oh-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
  transition: transform 0.16s ease, background 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.oh-slideshow-trigger svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
  transform: translateX(1px);
}

.oh-slideshow-trigger:hover,
.oh-slideshow-trigger:focus-visible {
  background: rgba(212, 175, 55, 0.96);
  border-color: rgba(212, 175, 55, 1);
  color: #171412;
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.28);
  outline: none;
}

.oh-popup-slideshow-trigger {
  top: 8px;
  right: 47px;
  width: 32px;
  height: 32px;
}

.oh-card-badge,
.oh-popup-badge {
  max-width: calc(100% - 104px);
}

.oh-slideshow-overlay {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(14px, 3vw, 34px);
  background:
    radial-gradient(circle at 20% 0%, rgba(212, 175, 55, 0.18), transparent 30%),
    rgba(12, 11, 10, 0.94);
  backdrop-filter: blur(12px);
}

.oh-slideshow-overlay.is-visible {
  display: flex;
}

.oh-slideshow-shell {
  position: relative;
  width: min(1180px, 96vw);
  height: min(760px, 90vh);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  border: 1px solid rgba(212, 175, 55, 0.45);
  border-radius: 24px;
  overflow: hidden;
  background: #14110f;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.48);
}

.oh-slideshow-frame {
  position: relative;
  min-height: 0;
  background: #0f0d0c;
}

.oh-slideshow-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #0f0d0c;
}

.oh-slideshow-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 12;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(212, 175, 55, 0.75);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.78);
  color: var(--oh-gold);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
}

.oh-slideshow-close:hover,
.oh-slideshow-close:focus-visible {
  background: rgba(212, 175, 55, 0.96);
  color: #171412;
  outline: none;
}

.oh-slideshow-nav {
  position: absolute;
  top: 50%;
  z-index: 11;
  width: 54px;
  height: 54px;
  transform: translateY(-50%);
  border: 1px solid rgba(212, 175, 55, 0.78);
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.72);
  color: #fff7df;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 46px;
  line-height: 1;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.34);
}

.oh-slideshow-prev {
  left: 18px;
  padding-bottom: 5px;
}

.oh-slideshow-next {
  right: 18px;
  padding-bottom: 5px;
}

.oh-slideshow-nav:hover,
.oh-slideshow-nav:focus-visible {
  background: rgba(212, 175, 55, 0.96);
  color: #171412;
  outline: none;
}

.oh-slideshow-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 22px;
  border-top: 1px solid rgba(212, 175, 55, 0.26);
  background: linear-gradient(135deg, rgba(36, 34, 32, 0.98), rgba(20, 17, 15, 0.98));
  color: #f7f1e5;
}

.oh-slideshow-caption strong {
  display: block;
  font-size: 22px;
  line-height: 1.1;
}

.oh-slideshow-caption span {
  display: block;
  margin-top: 4px;
  color: rgba(247, 241, 229, 0.76);
  font-size: 14px;
}

.oh-slideshow-count {
  flex: 0 0 auto;
  color: var(--oh-gold);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 720px) {
  .oh-slideshow-shell {
    width: 96vw;
    height: 86vh;
    border-radius: 18px;
  }

  .oh-slideshow-nav {
    width: 44px;
    height: 44px;
    font-size: 38px;
  }

  .oh-slideshow-prev {
    left: 10px;
  }

  .oh-slideshow-next {
    right: 10px;
  }

  .oh-slideshow-caption {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    padding: 13px 15px;
  }
}


/* =========================================================
   V20 - slideshow open fix and right-card content polish
   ========================================================= */
.oh-card-extra-facts {
  margin-top: 5px;
  color: #746b61;
  font-size: 12px;
  line-height: 1.25;
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Do not leave carousel arrows in their highlighted state after a mouse click.
   Keyboard users still get a visible focus style through :focus-visible. */
.oh-photo-nav:focus {
  background: rgba(36, 34, 32, 0.72) !important;
  border-color: rgba(212, 175, 55, 0.76) !important;
  color: #fff7df !important;
  outline: none !important;
}

.oh-photo-nav:hover,
.oh-photo-nav:focus-visible {
  background: rgba(212, 175, 55, 0.96) !important;
  border-color: rgba(212, 175, 55, 1) !important;
  color: #171412 !important;
  outline: none !important;
}

.oh-photo-nav-prev:focus {
  transform: translateY(-50%) !important;
}

.oh-photo-nav-next:focus {
  transform: translateY(-50%) !important;
}

.oh-photo-nav-prev:hover,
.oh-photo-nav-prev:focus-visible {
  transform: translateY(-50%) translateX(-1px) !important;
}

.oh-photo-nav-next:hover,
.oh-photo-nav-next:focus-visible {
  transform: translateY(-50%) translateX(1px) !important;
}

/* Keep the slideshow in the top document layer. The app toggles opacity and
   pointer-events, while JS sets display:flex before showing it. */
.oh-slideshow-overlay {
  z-index: 2147483000 !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, visibility 0.18s ease;
}

.oh-slideshow-overlay.is-visible {
  display: flex !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}


/* =========================================================
   V22 - slideshow click reliability
   ========================================================= */
.oh-slideshow-trigger,
.oh-share-trigger,
.oh-photo-nav,
.oh-full-listing-pill {
  pointer-events: auto !important;
}

.oh-slideshow-trigger {
  z-index: 40 !important;
  touch-action: manipulation;
}

.oh-share-trigger {
  z-index: 41 !important;
  touch-action: manipulation;
}

.oh-slideshow-trigger svg,
.oh-slideshow-trigger svg *,
.oh-share-trigger svg,
.oh-share-trigger svg * {
  pointer-events: none !important;
}

.oh-slideshow-trigger:focus:not(:focus-visible) {
  background: rgba(36, 34, 32, 0.76) !important;
  border-color: rgba(212, 175, 55, 0.72) !important;
  color: var(--oh-gold) !important;
  transform: none !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22) !important;
}


/* =========================================================
   V23 - smart front-card highlight line
   ========================================================= */
.oh-card-smart-fact {
  margin-top: 7px;
  padding: 5px 8px;
  border-radius: 10px;
  background: rgba(212, 175, 55, 0.10);
  border: 1px solid rgba(212, 175, 55, 0.24);
  color: #604916;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-card-smart-fact.is-dom {
  background: rgba(36, 34, 32, 0.06);
  border-color: rgba(36, 34, 32, 0.13);
  color: #4c4137;
}

.oh-card-smart-fact.is-builder {
  background: rgba(212, 175, 55, 0.13);
  border-color: rgba(212, 175, 55, 0.32);
}


/* =========================================================
   V24 - animated front/back card flip
   ========================================================= */
.oh-card {
  overflow: visible;
  perspective: 1300px;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.oh-card-flip-inner {
  position: relative;
  display: grid;
  transform-style: preserve-3d;
  transition: transform 0.58s cubic-bezier(0.2, 0.78, 0.25, 1);
  border-radius: var(--oh-radius);
}

.oh-card.is-flipped .oh-card-flip-inner {
  transform: rotateY(180deg);
}

.oh-card-face {
  grid-area: 1 / 1;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--oh-border);
  border-radius: var(--oh-radius);
  background: var(--oh-panel);
  box-shadow: 0 10px 24px rgba(36, 34, 32, 0.10);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}

.oh-card-front {
  transform: rotateY(0deg);
}

.oh-card-back {
  transform: rotateY(180deg);
  background:
    radial-gradient(circle at 18% 0%, rgba(212, 175, 55, 0.22), transparent 34%),
    linear-gradient(145deg, #2c2925 0%, #171412 100%);
  border-color: rgba(212, 175, 55, 0.36);
  color: #fff8e6;
}

.oh-card:hover .oh-card-face,
.oh-card:focus .oh-card-face,
.oh-card:focus-within .oh-card-face {
  box-shadow: 0 16px 32px rgba(36, 34, 32, 0.16);
  border-color: rgba(212, 175, 55, 0.9);
}

.oh-card.is-selected .oh-card-face {
  border-color: var(--oh-blue) !important;
  border-width: 2px !important;
  box-shadow:
    0 0 0 3px rgba(11, 87, 208, 0.22),
    0 18px 36px rgba(36, 34, 32, 0.18) !important;
}

.oh-card-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.oh-card-price-row .oh-card-price {
  min-width: 0;
}

.oh-card-flip-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 999px;
  border: 1px solid rgba(212, 175, 55, 0.48);
  background: rgba(36, 34, 32, 0.88);
  color: #fff5d0;
  font-size: 10px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 7px 9px;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 8px 16px rgba(36, 34, 32, 0.18);
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

.oh-card-flip-pill:hover,
.oh-card-flip-pill:focus-visible {
  background: linear-gradient(135deg, #b88928 0%, #f1d27a 48%, #b88928 100%);
  color: #171412;
  border-color: rgba(212, 175, 55, 0.98);
  transform: translateY(-1px);
  outline: none;
}

.oh-card-flip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  font-size: 13px;
  line-height: 1;
}

.oh-card-flip-pill:hover .oh-card-flip-icon,
.oh-card-flip-pill:focus-visible .oh-card-flip-icon {
  background: rgba(23, 20, 18, 0.16);
}

.oh-card-back-inner {
  min-height: 100%;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.oh-card-back-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.oh-card-back-kicker {
  color: var(--oh-gold);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.oh-card-back-address {
  margin-top: 3px;
  color: #fff8e6;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.12;
  font-weight: 700;
}

.oh-card-back .oh-card-flip-pill {
  flex: 0 0 auto;
  background: rgba(255, 255, 255, 0.08);
  color: #fff3c4;
}

.oh-card-back-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.oh-card-back-detail {
  min-width: 0;
  padding: 8px 9px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.075);
  border: 1px solid rgba(212, 175, 55, 0.20);
}

.oh-card-back-label {
  display: block;
  color: rgba(255, 248, 230, 0.62);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.oh-card-back-detail strong {
  display: block;
  color: #fff8e6;
  font-size: 12px;
  line-height: 1.18;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-card-back-highlight {
  padding: 10px 11px;
  border-radius: 13px;
  background: rgba(212, 175, 55, 0.10);
  border: 1px solid rgba(212, 175, 55, 0.24);
  color: rgba(255, 248, 230, 0.88);
  font-size: 13px;
  line-height: 1.35;
}

.oh-card-back-highlight span {
  display: block;
  margin-bottom: 4px;
  color: var(--oh-gold);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.oh-card-back-actions {
  margin-top: auto;
  display: flex;
  justify-content: flex-end;
}

.oh-card-back-full-listing {
  border: 1px solid rgba(212, 175, 55, 0.68);
  border-radius: 999px;
  background: linear-gradient(135deg, #b88928 0%, #f1d27a 48%, #b88928 100%);
  color: #171412;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 9px 12px;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.20);
}

.oh-card-back-full-listing:hover,
.oh-card-back-full-listing:focus-visible {
  background: #171412;
  color: var(--oh-gold);
  outline: none;
}

.oh-card-back-empty {
  grid-column: 1 / -1;
  padding: 14px;
  color: rgba(255, 248, 230, 0.78);
  border: 1px dashed rgba(212, 175, 55, 0.25);
  border-radius: 12px;
}

@media (max-width: 720px) {
  .oh-card-back-grid {
    grid-template-columns: 1fr 1fr;
  }

  .oh-card-flip-pill {
    font-size: 9px;
    padding: 7px 8px;
  }
}

/* =========================================================
   V25 - premium flip-card refinement
   - fixed, consistent card height
   - true 3D flip animation triggered on the existing card node
   - same 8 detail boxes on every back face
   - lighter rounded-rectangle flip controls
   ========================================================= */
.oh-card {
  height: 438px;
  min-height: 438px;
  max-height: 438px;
}

.oh-card-flip-inner {
  height: 100%;
  min-height: 438px;
  will-change: transform;
}

.oh-card-face {
  height: 100%;
  min-height: 0;
}

.oh-card-front,
.oh-card-back {
  display: flex;
  flex-direction: column;
}

.oh-card-front .oh-card-image-wrap {
  flex: 0 0 auto;
}

.oh-card-front .oh-card-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.oh-card-front .oh-card-footer {
  margin-top: auto;
}

.oh-card-flip-pill {
  border-radius: 10px !important;
  border: 1px solid rgba(36, 34, 32, 0.18) !important;
  background: linear-gradient(180deg, #f4f1ec 0%, #e6e0d5 100%) !important;
  color: #242220 !important;
  box-shadow: 0 5px 12px rgba(36, 34, 32, 0.12) !important;
  padding: 8px 10px !important;
  letter-spacing: 0.05em;
}

.oh-card-flip-pill:hover,
.oh-card-flip-pill:focus-visible {
  border-color: rgba(212, 175, 55, 0.78) !important;
  background: linear-gradient(135deg, #fff8e1 0%, #d4af37 100%) !important;
  color: #171412 !important;
  transform: translateY(-1px);
}

.oh-card-flip-icon {
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: currentColor !important;
  font-size: 15px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
}

.oh-card-flip-pill:hover .oh-card-flip-icon,
.oh-card-flip-pill:focus-visible .oh-card-flip-icon {
  background: transparent !important;
}

.oh-card-back-inner {
  height: 100%;
  padding: 14px;
  gap: 10px;
  overflow: hidden;
}

.oh-card-back-topline {
  flex: 0 0 auto;
  min-height: 48px;
}

.oh-card-back-address {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.oh-card-back-grid {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(4, 48px);
  gap: 8px;
}

.oh-card-back-detail {
  min-height: 0;
  height: 48px;
  padding: 7px 9px;
}

.oh-card-back-label {
  margin-bottom: 2px;
}

.oh-card-back-detail strong {
  font-size: 12px;
  line-height: 1.16;
}

.oh-card-back-highlight {
  flex: 1 1 auto;
  min-height: 78px;
  max-height: 92px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}

.oh-card-back-highlight span {
  display: block;
}

.oh-card-back-actions {
  flex: 0 0 auto;
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.oh-card-back .oh-card-flip-pill,
.oh-card-back-full-listing {
  min-height: 35px;
}

.oh-card-back .oh-card-flip-pill {
  flex: 0 0 auto;
}

.oh-card-back-full-listing {
  flex: 0 0 auto;
  border-radius: 999px;
}

@media (max-width: 720px) {
  .oh-card {
    height: 452px;
    min-height: 452px;
    max-height: 452px;
  }

  .oh-card-flip-inner {
    min-height: 452px;
  }
}


/* =========================================================
   V26 - compact flip-card back
   - restores a shorter card height closer to the original card feel
   - uses 6 consistent detail boxes instead of 8
   - tightens the space below the address before the detail grid
   ========================================================= */
.oh-card {
  height: 392px;
  min-height: 392px;
  max-height: 392px;
}

.oh-card-flip-inner {
  height: 100%;
  min-height: 392px;
}

.oh-card-back-inner {
  height: 100%;
  padding: 12px;
  gap: 7px;
  overflow: hidden;
}

.oh-card-back-topline {
  min-height: 39px;
  margin-bottom: 0;
}

.oh-card-back-kicker {
  font-size: 10px;
  letter-spacing: 0.11em;
}

.oh-card-back-address {
  margin-top: 2px;
  font-size: 17px;
  line-height: 1.04;
  -webkit-line-clamp: 2;
}

.oh-card-back-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, 42px);
  gap: 7px;
}

.oh-card-back-detail {
  height: 42px;
  padding: 6px 8px;
  border-radius: 10px;
}

.oh-card-back-label {
  font-size: 10px;
  margin-bottom: 1px;
}

.oh-card-back-detail strong {
  font-size: 13px;
  line-height: 1.12;
}

.oh-card-back-highlight {
  min-height: 122px;
  max-height: 132px;
  padding: 10px 11px;
  font-size: 13px;
  line-height: 1.28;
  -webkit-line-clamp: 6;
}

.oh-card-back-highlight span {
  margin-bottom: 4px;
  font-size: 10px;
}

.oh-card-back-actions {
  gap: 8px;
}

.oh-card-back .oh-card-flip-pill,
.oh-card-back-full-listing {
  min-height: 32px;
  padding-top: 7px !important;
  padding-bottom: 7px !important;
}

@media (max-width: 720px) {
  .oh-card {
    height: 392px;
    min-height: 392px;
    max-height: 392px;
  }
}


/* =========================================================
   V27 - back-card text and unit consistency refinements
   ========================================================= */
.oh-card-back-label {
  font-size: 10px !important;
}

.oh-card-back-detail strong {
  font-size: 13px !important;
}

/* =========================================================
   V29 - stronger unselected card border + subdivision value color
   ========================================================= */
.oh-card:not(.is-selected) .oh-card-face {
  border: 1px solid rgba(23, 20, 18, 0.72) !important;
}

.oh-card:not(.is-selected):hover .oh-card-face,
.oh-card:not(.is-selected):focus .oh-card-face,
.oh-card:not(.is-selected):focus-within .oh-card-face {
  border-color: rgba(212, 175, 55, 0.96) !important;
}

.oh-card-subdivision {
  color: #171412 !important;
}

.oh-card-subdivision .oh-subdivision-label {
  color: #171412 !important;
  font-weight: 850 !important;
}

/* =========================================================
   V32 - selected pin photo path + alignment refinement
   Moves the circular selected-pin photo 2px higher and lets the selected
   pin photo try the same alternate relative paths as the card images.

   V31 - selected map pin size refinement
   Blue selected pin is 20% smaller while the circular photo is 20% larger.

   V30 - selected map pin photo marker
   Replaces the duplicate on-map listing card popup with a
   larger selected GPS pin containing a circular property photo.
   ========================================================= */
.oh-pin-marker-wrap.oh-pin-marker-selected-wrap {
  z-index: 980 !important;
}

.oh-pin-marker.is-selected {
  width: 131px;
  height: 171px;
  transform: translateZ(0);
  pointer-events: auto;
}

.oh-pin-marker.is-selected .oh-pin-icon {
  width: 109px;
  height: 142px;
  left: 50%;
  bottom: 10px;
  filter:
    drop-shadow(0 18px 24px rgba(0, 0, 0, 0.34))
    drop-shadow(0 0 14px rgba(11, 87, 208, 0.34));
  transition: transform 0.18s ease, filter 0.18s ease;
}

.oh-pin-marker.is-selected .oh-pin-icon path {
  fill: var(--oh-blue);
  stroke: rgba(255, 255, 255, 0.98);
  stroke-width: 1.9;
}

.oh-pin-marker.is-selected .oh-pin-icon circle {
  fill: #ffffff;
  stroke: rgba(255, 255, 255, 0.98);
  stroke-width: 1.4;
}

.oh-selected-pin-photo {
  position: absolute;
  left: 50%;
  top: 25px;
  width: 89px;
  height: 89px;
  transform: translateX(-50%);
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
  border: 3px solid rgba(255, 255, 255, 0.98);
  box-shadow:
    inset 0 0 0 1px rgba(36, 34, 32, 0.18),
    0 8px 18px rgba(0, 0, 0, 0.22);
  z-index: 3;
}

.oh-selected-pin-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oh-selected-pin-plus {
  position: absolute;
  left: 50%;
  top: 113px;
  transform: translateX(-50%);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 26px;
  font-weight: 900;
  line-height: 1;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.30),
    0 0 8px rgba(255, 255, 255, 0.18);
  pointer-events: none;
  user-select: none;
  transition: transform 0.16s ease, opacity 0.16s ease;
}

.oh-pin-marker.is-selected {
  cursor: pointer;
}

.oh-pin-marker.is-selected:hover .oh-selected-pin-plus {
  transform: translateX(-50%) scale(1.08);
}

.oh-pin-marker.is-selected .oh-pin-price {
  min-width: 62px;
  height: 28px;
  bottom: 2px;
  padding: 0 11px;
  border-width: 3px;
  border-color: var(--oh-blue);
  color: #111;
  font-size: 14px;
  box-shadow: 0 0 0 4px rgba(11, 87, 208, 0.22), 0 10px 20px rgba(0, 0, 0, 0.26);
  z-index: 4;
}

.oh-pin-marker.is-selected:hover .oh-pin-icon,
.oh-pin-marker.is-selected .oh-pin-icon {
  transform: translateX(-50%) translateY(-4px);
}

/* Keep the retired floating popup hidden if an older browser event leaves it in the DOM. */
.oh-floating-property-popup.is-visible {
  display: none !important;
}

/* =========================================================
   V35 - redesigned full listing modal
   ========================================================= */
.oh-full-modal-card-redesign {
  width: min(1120px, 96vw);
  max-height: min(820px, 93vh);
  grid-template-columns: minmax(360px, 46%) minmax(0, 54%);
  border-radius: 26px;
  background: #fffaf2;
  border: 1px solid rgba(212, 175, 55, 0.58);
  box-shadow:
    0 38px 100px rgba(0, 0, 0, 0.46),
    0 0 0 1px rgba(255, 255, 255, 0.14) inset;
}

.oh-full-modal-gallery {
  min-height: 100%;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  background:
    radial-gradient(circle at 0% 0%, rgba(212, 175, 55, 0.18), transparent 34%),
    linear-gradient(135deg, rgba(36, 34, 32, 0.98), rgba(20, 18, 16, 0.96));
}

.oh-full-modal-card-redesign .oh-full-modal-image-wrap {
  position: relative;
  top: auto;
  height: 100%;
  min-height: 560px;
  background: #211b18;
}

.oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oh-full-modal-card-redesign .oh-full-modal-image-wrap::after {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.18) 70%, rgba(0, 0, 0, 0.32) 100%);
}

.oh-full-modal-photo-mls {
  position: absolute;
  right: 18px;
  bottom: 14px;
  z-index: 8;
  min-height: 0;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(36, 34, 32, 0.78);
  border: 1px solid rgba(212, 175, 55, 0.58);
  color: #fff7df;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
}

.oh-full-modal-gallery-caption {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  color: rgba(255, 247, 223, 0.82);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-top: 1px solid rgba(212, 175, 55, 0.22);
}

.oh-full-modal-card-redesign .oh-full-modal-content {
  padding: 32px 34px 30px;
  background:
    radial-gradient(circle at 100% 0%, rgba(212, 175, 55, 0.16), transparent 28%),
    linear-gradient(180deg, #fffdf7 0%, #f8f4ec 100%);
}

.oh-full-modal-header-row {
  display: block;
}

.oh-full-modal-mls-chip {
  flex: 0 0 auto;
  margin-top: 4px;
  padding: 8px 11px;
  border-radius: 999px;
  border: 1px solid rgba(212, 175, 55, 0.48);
  background: rgba(255, 255, 255, 0.72);
  color: #5b4518;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 8px 18px rgba(36, 34, 32, 0.08);
}

.oh-full-modal-card-redesign .oh-full-modal-kicker {
  margin-bottom: 9px;
  color: var(--oh-gold-dark);
  font-size: 12px;
  letter-spacing: 0.16em;
}

.oh-full-modal-card-redesign .oh-full-modal-content h2 {
  font-size: clamp(38px, 4.5vw, 56px);
}

.oh-full-modal-card-redesign .oh-full-modal-facts {
  margin-top: 12px;
  font-size: 17px;
  line-height: 1.35;
}

.oh-full-modal-card-redesign .oh-full-modal-address {
  margin-top: 15px;
  color: #3f3933;
  font-size: 18px;
}

.oh-full-modal-card-redesign .oh-full-modal-subdivision {
  color: #211b18;
  font-size: 15px;
}

.oh-full-modal-actions-top {
  margin-top: 20px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(222, 216, 206, 0.92);
}

.oh-full-modal-section {
  margin-top: 22px;
}

.oh-full-modal-section-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  color: var(--oh-gold-dark);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.oh-full-modal-section-heading::after {
  content: "";
  height: 1px;
  flex: 1 1 auto;
  background: linear-gradient(90deg, rgba(212, 175, 55, 0.46), transparent);
}

.oh-full-modal-description-section {
  margin-top: 22px;
}

.oh-full-modal-description {
  max-height: 170px;
  margin: 0;
  padding: 15px 16px;
  overflow-y: auto;
  border: 1px solid rgba(212, 175, 55, 0.28);
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(212, 175, 55, 0.08), rgba(255, 255, 255, 0.78)),
    #fff;
  color: #403a34;
  font-size: 14px;
  line-height: 1.55;
  box-shadow: 0 10px 22px rgba(36, 34, 32, 0.06);
}

.oh-full-modal-card-redesign .oh-full-modal-detail-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 0;
}

.oh-full-modal-card-redesign .oh-full-modal-listing-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.oh-full-modal-card-redesign .oh-full-modal-detail-grid div {
  min-height: 70px;
  padding: 10px 11px;
  border-color: rgba(212, 175, 55, 0.28);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 18px rgba(36, 34, 32, 0.05);
}

.oh-full-modal-card-redesign .oh-full-modal-detail-grid span,
.oh-full-modal-community-box span {
  color: #80621f;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.oh-full-modal-card-redesign .oh-full-modal-detail-grid strong,
.oh-full-modal-community-box strong {
  margin-top: 4px;
  color: #211b18;
  font-size: 13px;
  line-height: 1.28;
  font-weight: 900;
}

.oh-full-modal-community-box {
  display: grid;
  gap: 9px;
}

.oh-full-modal-community-box div {
  padding: 12px 13px;
  border: 1px solid rgba(212, 175, 55, 0.28);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 18px rgba(36, 34, 32, 0.05);
}

.oh-full-modal-community-box span,
.oh-full-modal-community-box strong {
  display: block;
}

.oh-full-modal-card-redesign .oh-full-modal-contact-note {
  margin-top: 22px;
  padding: 15px 16px;
  border: 1px solid rgba(212, 175, 55, 0.24);
  border-radius: 16px;
  background: rgba(36, 34, 32, 0.045);
}

.oh-full-modal-card-redesign .oh-full-modal-primary:hover,
.oh-full-modal-card-redesign .oh-full-modal-primary:focus {
  background: #211b18;
  color: var(--oh-gold);
}

@media (max-width: 1020px) {
  .oh-full-modal-card-redesign {
    grid-template-columns: 1fr;
    max-height: 94vh;
    overflow-y: auto;
  }

  .oh-full-modal-gallery {
    min-height: 0;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    overflow: visible;
  }
}

@media (max-width: 720px) {
  .oh-full-modal-card-redesign {
    width: 100%;
    border-radius: 20px;
  }

  .oh-full-modal-header-row {
    flex-direction: column;
    gap: 8px;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    padding: 24px 18px 22px;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid,
  .oh-full-modal-card-redesign .oh-full-modal-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .oh-full-modal-description {
    max-height: 210px;
  }
}

/* =========================================================
   V37 - modal photo viewport alignment
   Keeps the large modal gallery inside the visible modal height so
   the bottom-left Photo 1/X and bottom-right MLS pill stay visible.
   ========================================================= */
.oh-full-modal-card-redesign {
  height: min(820px, 93vh);
  max-height: min(820px, 93vh);
  align-items: stretch;
}

.oh-full-modal-card-redesign .oh-full-modal-gallery {
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.oh-full-modal-card-redesign .oh-full-modal-image-wrap {
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden;
}

.oh-full-modal-card-redesign .oh-full-modal-content {
  min-height: 0;
  overflow-y: auto;
}

.oh-full-modal-card-redesign .oh-full-modal-image-wrap .oh-photo-nav {
  top: 50% !important;
}

.oh-full-modal-card-redesign .oh-full-modal-image-wrap .oh-photo-count {
  left: 18px !important;
  bottom: 18px !important;
  z-index: 14 !important;
  font-size: 12px !important;
}

.oh-full-modal-card-redesign .oh-full-modal-photo-mls {
  right: 18px;
  bottom: 18px;
  z-index: 14;
}

@media (max-width: 1020px) {
  .oh-full-modal-card-redesign {
    height: auto;
    max-height: 94vh;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery {
    height: auto;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    height: 56vh !important;
    min-height: 360px !important;
  }
}


/* =========================================================
   V49 - selected GPS pin circular photo rendering hardening
   The blue selected pin now renders the property photo both as an
   inline img and as a CSS background image, with stronger stacking
   so the SVG pin cannot visually cover the photo.
   ========================================================= */
.oh-pin-marker.is-selected .oh-pin-icon {
  z-index: 1 !important;
}

.oh-pin-marker.is-selected .oh-selected-pin-photo {
  z-index: 20 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.oh-pin-marker.is-selected .oh-selected-pin-photo img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  border-radius: 999px !important;
  z-index: 21 !important;
}

.oh-pin-marker.is-selected .oh-selected-pin-plus {
  z-index: 24 !important;
}

.oh-pin-marker.is-selected .oh-pin-price {
  z-index: 25 !important;
}


/* =========================================================
   V50 - selected GPS pin photo overlay hardening
   Adds the selected property photo as a pseudo-element on the
   selected marker itself and makes the SVG center circle transparent.
   This avoids the white SVG center covering the property photo in
   WordPress/Elementor/Leaflet stacking contexts.
   ========================================================= */
.oh-pin-marker.is-selected {
  --oh-selected-pin-photo-url: none;
}

.oh-pin-marker.is-selected::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 25px !important;
  width: 89px !important;
  height: 89px !important;
  transform: translateX(-50%) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  background-color: #ffffff !important;
  background-image: var(--oh-selected-pin-photo-url) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  border: 3px solid rgba(255, 255, 255, 0.98) !important;
  box-shadow:
    inset 0 0 0 1px rgba(36, 34, 32, 0.18),
    0 8px 18px rgba(0, 0, 0, 0.22) !important;
  z-index: 30 !important;
  pointer-events: none !important;
}

.oh-pin-marker.is-selected .oh-pin-icon circle {
  fill: transparent !important;
  stroke: transparent !important;
}

.oh-pin-marker.is-selected .oh-selected-pin-photo {
  background-image: var(--oh-selected-pin-photo-url) !important;
  z-index: 32 !important;
}

.oh-pin-marker.is-selected .oh-selected-pin-photo img {
  z-index: 33 !important;
}

.oh-pin-marker.is-selected .oh-selected-pin-plus {
  z-index: 36 !important;
}

.oh-pin-marker.is-selected .oh-pin-price {
  z-index: 38 !important;
}

/* =========================================================
   V51 - WordPress / Elementor app-shell layout for map page
   - hides the normal large footer only on the open house page
   - adds a compact persistent mini footer
   - locks the desktop map experience to the visible viewport
   ========================================================= */
:root {
  --oh-mini-footer-height: 54px;
  --oh-page-gutter-bottom: 0px;
}

body.page-id-1914 footer#wp-footer,
body.page-id-1914 #wp-footer,
body.page-id-1914 .footer-main {
  display: none !important;
}

body.page-id-1914 .elementor-widget-html,
body.page-id-1914 .elementor-widget-html > .elementor-widget-container {
  width: 100% !important;
  max-width: 100% !important;
}

body.page-id-1914 .oh-app-shell {
  max-height: none !important;
}

body.page-id-1914 .oh-mini-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999990;
  min-height: var(--oh-mini-footer-height);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 24px;
  color: rgba(255, 255, 255, 0.86);
  background:
    linear-gradient(rgba(28, 25, 22, 0.94), rgba(18, 16, 14, 0.97)),
    #1d1916;
  border-top: 1px solid rgba(212, 175, 55, 0.48);
  box-shadow: 0 -10px 26px rgba(0, 0, 0, 0.34);
  font-family: Manrope, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.page-id-1914 .oh-mini-footer-inner {
  width: min(1680px, 100%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

body.page-id-1914 .oh-mini-footer-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  overflow: hidden;
  white-space: nowrap;
}

body.page-id-1914 .oh-mini-footer-brand strong {
  color: #f4f0e8;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.03em;
}

body.page-id-1914 .oh-mini-footer-brand span {
  color: rgba(255, 255, 255, 0.68);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.page-id-1914 .oh-mini-footer-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
}

body.page-id-1914 .oh-mini-footer-link,
body.page-id-1914 .oh-mini-footer-more {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(212, 175, 55, 0.62);
  background: rgba(255, 255, 255, 0.04);
  color: #d4af37;
  padding: 0 14px;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.02em;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

body.page-id-1914 .oh-mini-footer-link:hover,
body.page-id-1914 .oh-mini-footer-more:hover {
  background: rgba(212, 175, 55, 0.12);
  color: #f1d67a;
}

body.page-id-1914 .oh-mini-footer-panel {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: calc(var(--oh-mini-footer-height) + 10px);
  z-index: 999991;
  width: min(960px, calc(100vw - 48px));
  margin-left: auto;
  margin-right: auto;
  padding: 18px;
  border: 1px solid rgba(212, 175, 55, 0.48);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(212, 175, 55, 0.08), rgba(255, 255, 255, 0.02)),
    rgba(26, 23, 20, 0.98);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.48);
}

body.page-id-1914 .oh-mini-footer-panel[hidden] {
  display: none !important;
}

body.page-id-1914 .oh-mini-footer-panel-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

body.page-id-1914 .oh-mini-footer-panel-grid div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

body.page-id-1914 .oh-mini-footer-panel-grid strong {
  color: #d4af37;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.page-id-1914 .oh-mini-footer-panel-grid span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
  line-height: 1.42;
}

@media (min-width: 1121px) {
  html:has(body.page-id-1914),
  body.page-id-1914,
  body.page-id-1914.oh-page-shell-locked {
    overflow: hidden !important;
  }

  body.page-id-1914 .wrapper-page,
  body.page-id-1914 #page-content,
  body.page-id-1914 .elementor-1914,
  body.page-id-1914 .elementor-1914 > .e-con,
  body.page-id-1914 .elementor-1914 .elementor-widget-html,
  body.page-id-1914 .elementor-1914 .elementor-widget-html > .elementor-widget-container {
    overflow: visible !important;
    max-height: none !important;
  }

  body.page-id-1914 .oh-app-shell {
    height: var(--oh-live-shell-height, calc(100vh - 210px)) !important;
    min-height: 520px !important;
    overflow: hidden !important;
    flex: 0 0 auto !important;
  }

  body.page-id-1914 .oh-topbar {
    flex: 0 0 auto !important;
    position: relative !important;
    top: auto !important;
  }

  body.page-id-1914 .oh-layout {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.page-id-1914 .oh-map-panel,
  body.page-id-1914 .oh-map {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.page-id-1914 .oh-results-panel {
    height: 100% !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
  }
}

@media (max-width: 1120px) {
  body.page-id-1914 {
    padding-bottom: var(--oh-mini-footer-height) !important;
  }

  body.page-id-1914 .oh-mini-footer {
    padding-left: 16px;
    padding-right: 16px;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    gap: 10px;
  }

  body.page-id-1914 .oh-mini-footer-brand {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
    white-space: normal;
  }

  body.page-id-1914 .oh-mini-footer-panel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  :root {
    --oh-mini-footer-height: 68px;
  }

  body.page-id-1914 .oh-mini-footer {
    padding: 8px 12px;
  }

  body.page-id-1914 .oh-mini-footer-brand strong {
    font-size: 12px;
  }

  body.page-id-1914 .oh-mini-footer-brand span {
    display: none;
  }

  body.page-id-1914 .oh-mini-footer-link,
  body.page-id-1914 .oh-mini-footer-more {
    min-height: 32px;
    padding-left: 11px;
    padding-right: 11px;
    font-size: 11px;
  }

  body.page-id-1914 .oh-mini-footer-panel {
    left: 12px;
    right: 12px;
    width: calc(100vw - 24px);
    bottom: calc(var(--oh-mini-footer-height) + 8px);
    padding: 14px;
  }

  body.page-id-1914 .oh-mini-footer-panel-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}


/* =========================================================
   V53 - compact desktop header / results / card grid
   - shortens the title to "Open Houses" in the Elementor markup
   - keeps desktop filters in one row where possible
   - gives the right results panel more room
   - uses a minimum card width before falling back to one card per row
   - collapses the results explanation into one compact line
   ========================================================= */
@media (min-width: 1121px) {
  .oh-app-shell {
    min-height: 560px !important;
  }

  .oh-topbar {
    min-height: 74px !important;
    padding: 10px 16px !important;
    gap: 14px !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
  }

  .oh-brand-block {
    flex: 0 0 165px !important;
    min-width: 165px !important;
  }

  .oh-brand-block h1 {
    font-size: clamp(25px, 2.1vw, 30px) !important;
    line-height: 0.98 !important;
    white-space: nowrap !important;
  }

  .oh-controls {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: end !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    min-width: 0 !important;
    width: auto !important;
  }

  .oh-control {
    min-width: 0 !important;
    flex: 0 1 auto !important;
    gap: 2px !important;
  }

  .oh-control span {
    font-size: 10px !important;
    line-height: 1.05 !important;
    letter-spacing: 0.075em !important;
    white-space: nowrap !important;
  }

  .oh-control input,
  .oh-control select {
    height: 36px !important;
    border-radius: 10px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    min-width: 0 !important;
  }

  .oh-controls > .oh-control:nth-of-type(1) {
    flex-basis: 210px !important;
  }

  .oh-control-city {
    flex-basis: 178px !important;
  }

  .oh-control-date {
    flex-basis: 120px !important;
  }

  .oh-control-style {
    flex-basis: 190px !important;
  }

  .oh-controls > .oh-control:nth-of-type(5) {
    flex-basis: 92px !important;
  }

  .oh-control-sort {
    flex-basis: 108px !important;
  }

  .oh-button {
    flex: 0 0 auto !important;
    height: 36px !important;
    min-width: 108px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    border-radius: 10px !important;
    white-space: nowrap !important;
  }

  .oh-layout {
    grid-template-columns: minmax(440px, 55%) minmax(520px, 45%) !important;
  }

  .oh-results-header {
    padding: 10px 16px 8px !important;
  }

  .oh-results-header > div {
    min-width: 0 !important;
    display: flex !important;
    align-items: baseline !important;
    gap: 10px !important;
  }

  .oh-result-count {
    flex: 0 0 auto !important;
    font-size: 18px !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
  }

  .oh-result-subtext {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin-top: 0 !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .oh-card-list {
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 16px 18px !important;
  }
}

@media (min-width: 1121px) and (max-width: 1280px) {
  .oh-topbar {
    padding-left: 12px !important;
    padding-right: 12px !important;
    gap: 10px !important;
  }

  .oh-brand-block {
    flex-basis: 132px !important;
    min-width: 132px !important;
  }

  .oh-brand-block h1 {
    font-size: 23px !important;
  }

  .oh-controls {
    gap: 6px !important;
  }

  .oh-controls > .oh-control:nth-of-type(1) {
    flex-basis: 170px !important;
  }

  .oh-control-city {
    flex-basis: 132px !important;
  }

  .oh-control-date {
    flex-basis: 112px !important;
  }

  .oh-control-style {
    flex-basis: 145px !important;
  }

  .oh-controls > .oh-control:nth-of-type(5) {
    flex-basis: 78px !important;
  }

  .oh-control-sort {
    flex-basis: 94px !important;
  }

  .oh-button {
    min-width: 94px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .oh-layout {
    grid-template-columns: minmax(430px, 54%) minmax(500px, 46%) !important;
  }
}


/* =========================================================
   V54 - desktop card width and map/results balance refinement
   - keeps map at no less than 50% of the app width on desktop
   - gives the results/cards panel enough room for two usable cards when possible
   - increases card minimum width so photo date/time pills and address lines do not get crushed
   - falls back to one wider card when the results panel cannot support two 300px+ cards
   ========================================================= */
@media (min-width: 1121px) {
  .oh-layout {
    grid-template-columns: minmax(50%, 1fr) minmax(0, 50%) !important;
  }

  .oh-card-list {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 14px 18px !important;
  }

  .oh-card-badge {
    font-size: 12px !important;
    padding: 5px 9px !important;
    max-width: calc(100% - 18px) !important;
  }
}

/* At narrower desktop widths, prefer one readable card over two skinny cards. */
@media (min-width: 1121px) and (max-width: 1350px) {
  .oh-card-list {
    grid-template-columns: 1fr !important;
  }
}

/* At larger desktop widths, keep two cards but preserve the 300px minimum. */
@media (min-width: 1351px) {
  .oh-card-list {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  }
}

/* =========================================================
   V55 - branded filter bar, standardized two-line addresses,
   and improved front/back card spacing
   - gives the title/filter bar a warmer KC-RELO-friendly palette
   - keeps the map at 50% width on desktop while letting the card grid
     auto-fit readable 308px cards instead of forcing one column early
   - standardizes card addresses to street on line one and city/state/zip
     on line two for cleaner two-column consistency
   - tightens front-card spacing and rebalances the back-card layout/actions
   ========================================================= */
.oh-topbar {
  background:
    linear-gradient(180deg, rgba(249, 243, 229, 0.98) 0%, rgba(241, 233, 216, 0.98) 100%) !important;
  border-top: 1px solid rgba(212, 175, 55, 0.42);
  border-bottom: 1px solid rgba(191, 156, 79, 0.34) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 8px 20px rgba(42, 33, 24, 0.06);
}

.oh-brand-block {
  position: relative;
  padding: 6px 18px 6px 2px;
}

.oh-brand-block::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 3px;
  width: 64px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(212, 175, 55, 0.95), rgba(212, 175, 55, 0));
}

.oh-brand-block h1 {
  color: #2a2118 !important;
}

.oh-control span {
  color: #6b5943 !important;
}

.oh-control input,
.oh-control select {
  background: rgba(255, 250, 240, 0.96) !important;
  border-color: rgba(131, 109, 66, 0.22) !important;
  color: #241d16 !important;
}

.oh-control input::placeholder {
  color: #867564;
}

.oh-results-panel {
  background: #fbf8f1;
}

.oh-results-header {
  background: linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(250, 246, 238, 0.98));
  border-bottom: 1px solid rgba(222, 216, 206, 0.92);
}

.oh-card-front .oh-card-body {
  padding: 10px 11px 11px !important;
}

.oh-card-front .oh-card-image-wrap {
  aspect-ratio: 1.64 / 1;
}

.oh-card-price-row {
  gap: 8px;
}

.oh-card-facts {
  margin-top: 6px !important;
  font-size: 13px !important;
}

.oh-card-extra-facts {
  margin-top: 4px !important;
  font-size: 11px !important;
}

.oh-card-address {
  margin-top: 7px !important;
  display: grid;
  gap: 1px;
  min-height: 34px;
}

.oh-card-address-line {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-card-address-street {
  color: #4f473f;
  font-size: 14px;
  font-weight: 780;
  line-height: 1.22;
}

.oh-card-address-locality {
  color: #72695f;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.2;
}

.oh-card-subdivision {
  margin-top: 5px !important;
}

.oh-card-smart-fact {
  margin-top: 6px !important;
  padding: 4px 7px !important;
  font-size: 10.5px !important;
}

.oh-card-footer {
  margin-top: 8px !important;
  font-size: 10.5px !important;
}

.oh-card-back-inner {
  padding: 12px !important;
  gap: 9px !important;
}

.oh-card-back-topline {
  min-height: 44px !important;
}

.oh-card-back-address {
  font-size: 17px !important;
  line-height: 1.08 !important;
}

.oh-card-back-grid {
  grid-template-rows: repeat(3, 44px) !important;
  gap: 7px !important;
}

.oh-card-back-detail {
  height: 44px !important;
  padding: 6px 8px !important;
}

.oh-card-back-label {
  font-size: 8.5px !important;
  margin-bottom: 2px !important;
}

.oh-card-back-detail strong {
  font-size: 11.5px !important;
}

.oh-card-back-highlight {
  flex: 1 1 auto;
  min-height: 76px !important;
  max-height: 90px !important;
  display: flex !important;
  flex-direction: column;
  gap: 4px;
  padding: 9px 10px !important;
  overflow: hidden;
}

.oh-card-back-highlight-text {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: rgba(255, 248, 230, 0.88);
  font-size: 12.5px;
  line-height: 1.3;
}

.oh-card-back-actions {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  align-items: stretch !important;
}

.oh-card-back .oh-card-flip-pill,
.oh-card-back-full-listing {
  width: 100%;
  min-width: 0;
  min-height: 34px !important;
  justify-content: center;
  text-align: center;
  font-size: 10px !important;
  line-height: 1.05;
  letter-spacing: 0.035em !important;
  padding: 8px 8px !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.oh-card-back-full-listing {
  border-radius: 10px !important;
}

@media (min-width: 1121px) {
  .oh-layout {
    grid-template-columns: minmax(50%, 1fr) minmax(0, 50%) !important;
  }

  .oh-results-header {
    padding: 8px 14px 6px !important;
  }

  .oh-result-count {
    font-size: 17px !important;
  }

  .oh-result-subtext {
    font-size: 11.5px !important;
  }

  .oh-card-list {
    grid-template-columns: repeat(auto-fit, minmax(308px, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 14px 18px !important;
  }
}

@media (min-width: 1121px) and (max-width: 1350px) {
  .oh-card-list {
    grid-template-columns: repeat(auto-fit, minmax(308px, 1fr)) !important;
  }
}

@media (min-width: 1351px) {
  .oh-card-list {
    grid-template-columns: repeat(auto-fit, minmax(308px, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  .oh-card-back-actions {
    grid-template-columns: 1fr;
  }

  .oh-card-back .oh-card-flip-pill,
  .oh-card-back-full-listing {
    font-size: 10.5px !important;
  }
}


/* =========================================================
   V56 - card interaction and spacing refinement
   - changes selected right-panel card accent from default blue to branded gold
   - fixes hidden "View Full Listing" pill intercepting clicks before it is visible
   - gives the front card more body room by slightly shortening the photo area
   - further stabilizes the front-card vertical stack and footer alignment
   - tightens the back-card grid/highlight/actions alignment
   ========================================================= */

/* Selected property card now uses the brand gold accent. The map selected pin
   remains blue so users still get a strong map location cue. */
.oh-card.is-selected .oh-card-face {
  border-color: rgba(212, 175, 55, 0.98) !important;
  border-width: 2px !important;
  box-shadow:
    0 0 0 3px rgba(212, 175, 55, 0.28),
    0 18px 36px rgba(78, 56, 17, 0.24) !important;
}

.oh-card.is-selected .oh-card-back {
  border-color: rgba(212, 175, 55, 0.98) !important;
}

/* The hidden button should not catch clicks. Earlier V22 global pointer rules
   made the invisible full-listing pill clickable, so clicking that photo area
   opened the modal before the button was visible. */
.oh-full-listing-pill {
  pointer-events: none !important;
}

.oh-card:hover .oh-full-listing-pill,
.oh-card:focus-within .oh-full-listing-pill,
.oh-card.is-selected .oh-full-listing-pill,
.oh-popup-card .oh-full-listing-pill {
  pointer-events: auto !important;
}

/* More room for text on the front of the card. */
.oh-card-front .oh-card-image-wrap {
  aspect-ratio: 16 / 8.45 !important;
}

.oh-card-front .oh-card-body {
  padding: 9px 11px 10px !important;
  overflow: hidden;
}

.oh-card-price-row {
  flex: 0 0 auto;
  align-items: center !important;
  gap: 8px !important;
}

.oh-card-price-row .oh-card-price,
.oh-card-price {
  font-size: 22px !important;
  line-height: 1 !important;
  flex: 1 1 auto;
  min-width: 0;
}

.oh-card-flip-pill {
  flex: 0 0 auto;
}

.oh-card-facts,
.oh-card-extra-facts,
.oh-card-address,
.oh-card-subdivision,
.oh-card-smart-fact,
.oh-card-footer {
  flex: 0 0 auto;
}

.oh-card-facts {
  margin-top: 5px !important;
  font-size: 12.5px !important;
  line-height: 1.18 !important;
}

.oh-card-extra-facts {
  margin-top: 3px !important;
  font-size: 10.5px !important;
  line-height: 1.14 !important;
}

.oh-card-address {
  margin-top: 6px !important;
  min-height: 32px !important;
  gap: 0 !important;
}

.oh-card-address-street {
  font-size: 13.5px !important;
  line-height: 1.15 !important;
}

.oh-card-address-locality {
  font-size: 12.5px !important;
  line-height: 1.15 !important;
}

.oh-card-subdivision {
  margin-top: 4px !important;
  font-size: 11.5px !important;
  line-height: 1.15 !important;
}

.oh-card-smart-fact {
  margin-top: 5px !important;
  min-height: 18px;
  padding: 3px 7px !important;
  font-size: 10px !important;
  line-height: 1.12 !important;
}

.oh-card-footer {
  min-height: 16px;
  margin-top: auto !important;
  padding-top: 5px;
  font-size: 10px !important;
  line-height: 1.05 !important;
}

.oh-card-office,
.oh-card-mls {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oh-card-office {
  flex: 1 1 auto;
}

.oh-card-mls {
  flex: 0 0 auto;
}

/* Back side: give the fields and actions a clearer vertical rhythm. */
.oh-card-back-inner {
  padding: 12px !important;
  gap: 8px !important;
}

.oh-card-back-topline {
  min-height: 40px !important;
}

.oh-card-back-kicker {
  font-size: 10px !important;
  line-height: 1.1 !important;
}

.oh-card-back-address {
  margin-top: 2px !important;
  font-size: 16px !important;
  line-height: 1.08 !important;
}

.oh-card-back-grid {
  grid-template-rows: repeat(3, 42px) !important;
  gap: 7px !important;
}

.oh-card-back-detail {
  height: 42px !important;
  padding: 5px 8px !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.oh-card-back-label {
  font-size: 8px !important;
  line-height: 1 !important;
  margin-bottom: 3px !important;
}

.oh-card-back-detail strong {
  font-size: 11.5px !important;
  line-height: 1.08 !important;
}

.oh-card-back-highlight {
  min-height: 78px !important;
  max-height: 86px !important;
  padding: 8px 10px !important;
  gap: 3px !important;
}

.oh-card-back-highlight span {
  font-size: 10px !important;
  line-height: 1 !important;
  margin-bottom: 2px !important;
}

.oh-card-back-highlight-text {
  font-size: 12px !important;
  line-height: 1.24 !important;
  -webkit-line-clamp: 4;
}

.oh-card-back-actions {
  margin-top: auto !important;
  gap: 8px !important;
}

.oh-card-back .oh-card-flip-pill,
.oh-card-back-full-listing {
  min-height: 36px !important;
  height: 36px !important;
  font-size: 9.5px !important;
  padding: 7px 7px !important;
}


/* =========================================================
   V57 - hover-intent CTA + card balance refinement
   - delays front-card CTA activation so a first click selects the card
   - further balances front-card footer spacing
   - expands the back-card highlight area and centers button labels
   ========================================================= */

/* Do not reveal/catch the front-photo CTA immediately on hover.
   A short hover-intent delay keeps a quick first click from opening the
   full listing modal before the user has actually selected the card. */
.oh-card:hover .oh-full-listing-pill {
  opacity: 0 !important;
  transform: translateY(4px) !important;
  pointer-events: none !important;
}

.oh-card.is-hover-cta-active .oh-full-listing-pill,
.oh-card:focus-within .oh-full-listing-pill,
.oh-card.is-selected .oh-full-listing-pill,
.oh-popup-card .oh-full-listing-pill {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* Front-card vertical balance. */
.oh-card-smart-fact {
  margin-top: 4px !important;
}

.oh-card-footer {
  margin-top: 6px !important;
  padding-top: 4px !important;
  min-height: 17px !important;
}

.oh-card-office,
.oh-card-mls {
  font-size: 10px !important;
  line-height: 1.05 !important;
}

/* Back-card layout polish. */
.oh-card-back-highlight {
  min-height: 104px !important;
  max-height: 116px !important;
  padding: 9px 10px !important;
}

.oh-card-back-highlight-text {
  -webkit-line-clamp: 6 !important;
  line-clamp: 6;
  font-size: 12px !important;
  line-height: 1.24 !important;
}

.oh-card-back-actions {
  gap: 8px !important;
  align-items: stretch !important;
}

.oh-card-back .oh-card-flip-pill,
.oh-card-back-full-listing {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  height: 38px !important;
  padding: 7px 9px !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.03em !important;
}

.oh-card-back .oh-card-flip-pill span,
.oh-card-back-full-listing span {
  display: inline-flex;
  align-items: center;
}


/* =========================================================
   V58 - front footer/address refinement + larger back-card text
   - preserves compact single-line brokerage/MLS footer with earlier truncation
   - gives the address block a bit more breathing room
   - nudges the footer slightly lower for better balance
   - increases back-card field text and button font sizes
   ========================================================= */

/* Front-card spacing and footer balance */
.oh-card-address {
  margin-top: 8px !important;
  margin-bottom: 3px !important;
  min-height: 36px !important;
  gap: 1px !important;
}

.oh-card-subdivision {
  margin-top: 6px !important;
}

.oh-card-smart-fact {
  margin-top: 5px !important;
}

.oh-card-footer {
  display: flex !important;
  align-items: flex-end !important;
  gap: 10px !important;
  margin-top: 9px !important;
  padding-top: 5px !important;
  min-height: 18px !important;
}

.oh-card-office,
.oh-card-mls {
  font-size: 10px !important;
  line-height: 1.05 !important;
}

.oh-card-office {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.oh-card-mls {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

/* Back-card readable text increase */
.oh-card-back-kicker {
  font-size: 10.5px !important;
}

.oh-card-back-address {
  font-size: 17px !important;
  line-height: 1.1 !important;
}

.oh-card-back-label {
  font-size: 9px !important;
  line-height: 1.02 !important;
}

.oh-card-back-detail strong {
  font-size: 12.5px !important;
  line-height: 1.1 !important;
}

.oh-card-back-highlight span {
  font-size: 10.5px !important;
}

.oh-card-back-highlight-text {
  font-size: 12.75px !important;
  line-height: 1.26 !important;
}

.oh-card-back .oh-card-flip-pill,
.oh-card-back-full-listing {
  font-size: 11.5px !important;
}


/* =========================================================
   V59 - larger front-card address text
   - increases street and city/state/zip prominence because the
     address is one of the most important pieces of card information
   - keeps the two-line address structure and uses slightly tighter
     line-height so the card remains balanced
   ========================================================= */

.oh-card-address {
  min-height: 41px !important;
  margin-top: 8px !important;
  margin-bottom: 3px !important;
}

.oh-card-address-street {
  font-size: 15px !important;
  line-height: 1.16 !important;
  font-weight: 850 !important;
  color: #3f3831 !important;
}

.oh-card-address-locality {
  font-size: 14px !important;
  line-height: 1.14 !important;
  font-weight: 700 !important;
  color: #5e554d !important;
}


/* =========================================================
   V60 - single-card result layout + price pin rounding fix
   - keeps one visible property from stretching across the whole panel
   - preserves the normal card size/shape for single-result map views
   ========================================================= */
@media (min-width: 1121px) {
  .oh-card-list.has-one-card {
    grid-template-columns: minmax(0, 340px) !important;
    justify-content: center !important;
    align-content: start !important;
  }

  .oh-card-list.has-one-card .oh-card {
    width: min(340px, 100%) !important;
    justify-self: center !important;
  }
}


/* =========================================================
   V61 - expanded single-property result card
   - when only one property is visible, use a larger feature-card layout
   - keeps the right panel feeling intentional without stretching the photo so
     much that the details disappear
   ========================================================= */
@media (min-width: 1121px) {
  .oh-card-list.has-one-card {
    grid-template-columns: minmax(0, min(620px, calc(100% - 28px))) !important;
    justify-content: center !important;
    align-content: start !important;
    padding-top: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card {
    width: min(620px, calc(100% - 28px)) !important;
    height: min(520px, calc(100vh - 375px)) !important;
    min-height: 470px !important;
    max-height: 530px !important;
    justify-self: center !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face {
    height: 100% !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    aspect-ratio: 16 / 6.85 !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 13px 15px 14px !important;
  }

  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price {
    font-size: 26px !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 8px !important;
    font-size: 14px !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 5px !important;
    font-size: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 10px !important;
    margin-bottom: 4px !important;
    min-height: 42px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 16px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    font-size: 14px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 7px !important;
    font-size: 12.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 8px !important;
    min-height: 24px !important;
    padding: 5px 9px !important;
    font-size: 11.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: auto !important;
    padding-top: 9px !important;
    min-height: 22px !important;
  }

  .oh-card-list.has-one-card .oh-card-office,
  .oh-card-list.has-one-card .oh-card-mls {
    font-size: 10.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    padding: 17px !important;
    gap: 11px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-topline {
    min-height: 50px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-address {
    font-size: 20px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    grid-template-rows: repeat(3, 52px) !important;
    gap: 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    height: 52px !important;
    padding: 7px 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-label {
    font-size: 9.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail strong {
    font-size: 13.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 118px !important;
    max-height: 138px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 6 !important;
    font-size: 13.25px !important;
  }
}


/* =========================================================
   V65 - 1920 x 1080 matched compact flip-card height
   - keeps the V61 1440 x 900 reference layout unchanged
   - applies only to large desktop viewports
   - reduces the V64 large-screen card height so the front footer and
     back action buttons sit closer to the content above them
   - keeps the card shell, flip-inner, front face, and back face at the
     exact same height for the 3D flip effect
   - does not affect the single-property feature-card layout
   ========================================================= */
@media (min-width: 1600px) and (min-height: 900px) {
  .oh-card-list:not(.has-one-card) .oh-card {
    height: 404px !important;
    min-height: 404px !important;
    max-height: 404px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face {
    height: 100% !important;
    min-height: 404px !important;
    max-height: 404px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 100% !important;
    min-height: 404px !important;
    max-height: 404px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    flex: 0 0 168px !important;
    height: 168px !important;
    max-height: 168px !important;
    aspect-ratio: auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 9px 11px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    min-height: 17px !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    display: flex !important;
    flex: 0 0 auto !important;
    min-height: 16px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
  }
}


/* =========================================================
   V66 - 1536 x 864 front-card breathing-room refinement
   - keeps the V61 1440 x 900 reference layout unchanged
   - targets the mid-large desktop band below the V65 large-screen rule
   - gives multi-card front faces a little more vertical room while keeping
     front and back flip faces exactly the same height
   - slightly shortens the front image area and tightens front-card spacing so
     brokerage and MLS footer text remain visible
   - slightly relaxes the single-property feature-card front face so its footer
     does not ride too close to the bottom at 1536 x 864
   ========================================================= */
@media (min-width: 1480px) and (max-width: 1599px) and (min-height: 820px) {
  .oh-card-list:not(.has-one-card) .oh-card {
    height: 400px !important;
    min-height: 400px !important;
    max-height: 400px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face {
    height: 100% !important;
    min-height: 400px !important;
    max-height: 400px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 100% !important;
    min-height: 400px !important;
    max-height: 400px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    aspect-ratio: 16 / 8.0 !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 9px 11px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 4px !important;
    min-height: 17px !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    display: flex !important;
    flex: 0 0 auto !important;
    min-height: 16px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 112px !important;
    max-height: 122px !important;
  }

  .oh-card-list.has-one-card .oh-card {
    height: min(500px, calc(100vh - 364px)) !important;
    min-height: 476px !important;
    max-height: 520px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    aspect-ratio: 16 / 6.45 !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 12px 14px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 7px !important;
    min-height: 22px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: auto !important;
    padding-top: 7px !important;
    min-height: 20px !important;
  }
}


/* =========================================================
   V67 - 1366 x 768 single-property compact feature-card refinement
   - keeps the V61 1440 x 900 reference layout unchanged
   - preserves the 1536 x 864 V66 behavior and the larger-screen V65 behavior
   - targets lower-height desktop screens where the single-property feature card
     is too tall and auto-scrolls the result pane to the bottom of the card
   - shortens the single-card front image area so the brokerage and MLS footer
     fit cleanly on the front face
   - reduces back-card vertical consumption by tightening the address area,
     grid rows, and highlight block while keeping the front and back faces the
     exact same overall height for the flip effect
   - does not change the multi-card / two-card layout because that already
     looks good at 1366 x 768
   ========================================================= */
@media (min-width: 1121px) and (max-width: 1479px) and (max-height: 800px) {
  .oh-card-list.has-one-card .oh-card {
    width: min(620px, calc(100% - 24px)) !important;
    height: 430px !important;
    min-height: 430px !important;
    max-height: 430px !important;
    justify-self: center !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 100% !important;
    min-height: 430px !important;
    max-height: 430px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    aspect-ratio: 16 / 5.95 !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 10px 12px 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price {
    font-size: 24px !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 6px !important;
    font-size: 13px !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 11px !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 8px !important;
    margin-bottom: 3px !important;
    min-height: 36px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 15px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    font-size: 13px !important;
    line-height: 1.15 !important;
  }

  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 6px !important;
    min-height: 18px !important;
    padding: 4px 8px !important;
    font-size: 10.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    display: flex !important;
    align-items: flex-end !important;
    gap: 8px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
    min-height: 16px !important;
  }

  .oh-card-list.has-one-card .oh-card-office,
  .oh-card-list.has-one-card .oh-card-mls {
    font-size: 9.75px !important;
    line-height: 1.04 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    padding: 13px !important;
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-topline {
    min-height: 44px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-address {
    font-size: 18px !important;
    line-height: 1.08 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    grid-template-rows: repeat(3, 46px) !important;
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    height: 46px !important;
    padding: 6px 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-label {
    font-size: 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail strong {
    font-size: 12.75px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 92px !important;
    max-height: 98px !important;
    padding: 8px 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-actions {
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    font-size: 10.5px !important;
    padding: 6px 8px !important;
  }
}


/* =========================================================
   V68 - 1280 x 800 stacked feature-card layout for multi-property results
   - keeps the V61 1440 x 900 reference layout unchanged
   - preserves the V65, V66, and V67 targeted breakpoint behavior
   - targets narrower desktop screens where the normal multi-card layout drops
     to one column but the standard card shell becomes too compressed
   - makes multi-property results use the same larger feature-card treatment as
     the single-property layout, stacked vertically one after the next
   - keeps front and back flip faces exactly the same height for each card
   ========================================================= */
@media (min-width: 1121px) and (max-width: 1320px) and (min-height: 760px) {
  .oh-card-list:not(.has-one-card) {
    grid-template-columns: minmax(0, min(620px, calc(100% - 24px))) !important;
    justify-content: center !important;
    align-content: start !important;
    gap: 14px !important;
    padding-top: 12px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    width: min(620px, calc(100% - 24px)) !important;
    height: 430px !important;
    min-height: 430px !important;
    max-height: 430px !important;
    justify-self: center !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 100% !important;
    min-height: 430px !important;
    max-height: 430px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    aspect-ratio: 16 / 5.95 !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 10px 12px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price {
    font-size: 24px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    margin-top: 6px !important;
    font-size: 13px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 11px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address {
    margin-top: 8px !important;
    margin-bottom: 3px !important;
    min-height: 36px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-street {
    font-size: 15px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-locality {
    font-size: 13px !important;
    line-height: 1.15 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 12px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 6px !important;
    min-height: 18px !important;
    padding: 4px 8px !important;
    font-size: 10.5px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    display: flex !important;
    align-items: flex-end !important;
    gap: 8px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
    min-height: 16px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-office,
  .oh-card-list:not(.has-one-card) .oh-card-mls {
    font-size: 9.75px !important;
    line-height: 1.04 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-inner {
    padding: 13px !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-topline {
    min-height: 44px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-address {
    font-size: 18px !important;
    line-height: 1.08 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-grid {
    grid-template-rows: repeat(3, 46px) !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail {
    height: 46px !important;
    padding: 6px 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-label {
    font-size: 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail strong {
    font-size: 12.75px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 92px !important;
    max-height: 98px !important;
    padding: 8px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight-text {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-actions {
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back .oh-card-flip-pill,
  .oh-card-list:not(.has-one-card) .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    font-size: 10.5px !important;
    padding: 6px 8px !important;
  }
}


/* =========================================================
   V69 - 1024 x 768 tablet-landscape / small desktop refinement
   - keeps all approved desktop breakpoints unchanged
   - compacts the filter row at 1024-wide layouts by hiding Style and reducing
     the search field width so filters can fit on one row
   - adds a map overlay button that scrolls to the first property card when
     results are stacked below the map
   - makes below-map cards use the full available width in a wide horizontal
     card format so content can fit without increasing card height
   - keeps front and back flip faces exactly matched in height
   ========================================================= */
.oh-map-results-jump {
  display: none;
}

@media (min-width: 900px) and (max-width: 1120px) {
  .oh-topbar {
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    min-height: 78px !important;
    padding: 10px 18px !important;
  }

  .oh-brand-block {
    flex: 0 0 185px !important;
    min-width: 185px !important;
  }

  .oh-brand-block h1 {
    font-size: 25px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .oh-controls {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: end !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    min-width: 0 !important;
  }

  .oh-control-style {
    display: none !important;
  }

  .oh-control {
    min-width: 0 !important;
    flex: 0 1 auto !important;
    gap: 2px !important;
  }

  .oh-control span {
    font-size: 9px !important;
    line-height: 1 !important;
    letter-spacing: 0.075em !important;
    white-space: nowrap !important;
  }

  .oh-control input,
  .oh-control select {
    height: 38px !important;
    border-radius: 10px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    min-width: 0 !important;
    font-size: 14px !important;
  }

  .oh-controls > .oh-control:nth-of-type(1) {
    flex-basis: 132px !important;
  }

  .oh-control-city {
    flex-basis: 132px !important;
  }

  .oh-control-date {
    flex-basis: 112px !important;
  }

  .oh-controls > .oh-control:nth-of-type(5) {
    flex-basis: 82px !important;
  }

  .oh-control-sort {
    flex-basis: 86px !important;
  }

  .oh-button {
    flex: 0 0 auto !important;
    height: 38px !important;
    min-width: 102px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    border-radius: 10px !important;
    white-space: nowrap !important;
  }

  .oh-map-panel {
    height: 52vh !important;
    min-height: 360px !important;
  }

  .oh-map-results-jump {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid rgba(212, 175, 55, 0.72);
    border-radius: 999px;
    background: rgba(23, 20, 18, 0.88);
    color: #fff3c4;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
  }

  .oh-map-results-jump:hover,
  .oh-map-results-jump:focus-visible {
    background: linear-gradient(135deg, #b88928 0%, #f1d27a 48%, #b88928 100%);
    color: #171412;
    outline: none;
  }

  .oh-results-header {
    padding: 10px 32px 8px !important;
  }

  .oh-results-header > div {
    min-width: 0 !important;
    display: flex !important;
    align-items: baseline !important;
    gap: 9px !important;
  }

  .oh-result-count {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    font-size: 20px !important;
    line-height: 1.12 !important;
  }

  .oh-result-subtext {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin-top: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
  }

  .oh-card-list,
  .oh-card-list.has-one-card {
    grid-template-columns: 1fr !important;
    justify-content: stretch !important;
    align-content: start !important;
    gap: 14px !important;
    padding: 12px 32px 28px !important;
  }

  .oh-card-list .oh-card,
  .oh-card-list.has-one-card .oh-card {
    width: 100% !important;
    max-width: none !important;
    height: 392px !important;
    min-height: 392px !important;
    max-height: 392px !important;
    justify-self: stretch !important;
  }

  .oh-card-list .oh-card-flip-inner,
  .oh-card-list .oh-card-face,
  .oh-card-list .oh-card-front,
  .oh-card-list .oh-card-back {
    height: 100% !important;
    min-height: 392px !important;
    max-height: 392px !important;
  }

  .oh-card-list .oh-card-front {
    display: grid !important;
    grid-template-columns: minmax(0, 46%) minmax(0, 54%) !important;
    grid-template-rows: 1fr !important;
  }

  .oh-card-list .oh-card-front .oh-card-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list .oh-card-front .oh-card-badge {
    max-width: calc(100% - 72px) !important;
    font-size: 11px !important;
    padding: 5px 8px !important;
  }

  .oh-card-list .oh-card-front .oh-share-trigger {
    top: 10px !important;
    right: 10px !important;
  }

  .oh-card-list .oh-card-front .oh-photo-nav-prev {
    left: 10px !important;
  }

  .oh-card-list .oh-card-front .oh-photo-nav-next {
    right: 10px !important;
  }

  .oh-card-list .oh-card-front .oh-full-listing-pill {
    right: 14px !important;
    bottom: 16px !important;
    max-width: calc(100% - 28px) !important;
  }

  .oh-card-list .oh-card-front .oh-card-body {
    height: 100% !important;
    min-height: 0 !important;
    padding: 14px 16px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  .oh-card-list .oh-card-price-row .oh-card-price,
  .oh-card-list .oh-card-price {
    font-size: 25px !important;
  }

  .oh-card-list .oh-card-facts {
    margin-top: 8px !important;
    font-size: 13.5px !important;
  }

  .oh-card-list .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 11px !important;
  }

  .oh-card-list .oh-card-address {
    margin-top: 9px !important;
    min-height: 39px !important;
  }

  .oh-card-list .oh-card-address-street {
    font-size: 15.25px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list .oh-card-address-locality {
    font-size: 13.25px !important;
    line-height: 1.15 !important;
  }

  .oh-card-list .oh-card-subdivision {
    margin-top: 6px !important;
    font-size: 12px !important;
  }

  .oh-card-list .oh-card-smart-fact {
    margin-top: 7px !important;
    min-height: 20px !important;
    padding: 4px 8px !important;
    font-size: 10.5px !important;
  }

  .oh-card-list .oh-card-footer {
    display: flex !important;
    align-items: flex-end !important;
    gap: 8px !important;
    margin-top: auto !important;
    padding-top: 6px !important;
    min-height: 18px !important;
  }

  .oh-card-list .oh-card-office,
  .oh-card-list .oh-card-mls {
    font-size: 10px !important;
    line-height: 1.05 !important;
  }

  .oh-card-list .oh-card-back-inner {
    padding: 15px !important;
    gap: 8px !important;
  }

  .oh-card-list .oh-card-back-topline {
    min-height: 42px !important;
  }

  .oh-card-list .oh-card-back-address {
    font-size: 18px !important;
    line-height: 1.08 !important;
  }

  .oh-card-list .oh-card-back-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, 48px) !important;
    gap: 8px !important;
  }

  .oh-card-list .oh-card-back-detail {
    height: 48px !important;
    padding: 6px 9px !important;
  }

  .oh-card-list .oh-card-back-highlight {
    min-height: 98px !important;
    max-height: 104px !important;
    padding: 8px 10px !important;
  }

  .oh-card-list .oh-card-back-highlight-text {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    font-size: 12.25px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list .oh-card-back .oh-card-flip-pill,
  .oh-card-list .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    font-size: 10.5px !important;
    padding: 6px 9px !important;
  }
}


/* =========================================================
   V70 - 1024 x 768 refinement follow-up
   - wires the Houses below map jump button in JS and keeps it visible above the map
   - fixes the 1024-wide horizontal card image area so the photo fills the full card height
   - reduces wasted white space on both single-card and multi-card front faces by lowering
     the horizontal-card height and tightening body spacing
   - trims back-card white space while preserving equal front/back heights for the flip effect
   ========================================================= */
@media (min-width: 900px) and (max-width: 1120px) {
  .oh-results-header {
    padding: 8px 20px 7px !important;
  }

  .oh-results-header > div {
    gap: 8px !important;
  }

  .oh-result-count {
    font-size: 18px !important;
  }

  .oh-result-subtext {
    font-size: 12px !important;
  }

  .oh-card-list,
  .oh-card-list.has-one-card {
    gap: 12px !important;
    padding: 12px 20px 22px !important;
  }

  .oh-card-list .oh-card,
  .oh-card-list.has-one-card .oh-card {
    height: 338px !important;
    min-height: 338px !important;
    max-height: 338px !important;
  }

  .oh-card-list .oh-card-flip-inner,
  .oh-card-list .oh-card-face,
  .oh-card-list .oh-card-front,
  .oh-card-list .oh-card-back,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    min-height: 338px !important;
    max-height: 338px !important;
  }

  .oh-card-list .oh-card-front,
  .oh-card-list.has-one-card .oh-card-front {
    grid-template-columns: minmax(0, 46%) minmax(0, 54%) !important;
    align-items: stretch !important;
  }

  .oh-card-list .oh-card-front .oh-card-image-wrap,
  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    position: relative !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
  }

  .oh-card-list .oh-card-front .oh-card-image,
  .oh-card-list.has-one-card .oh-card-front .oh-card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-card-list .oh-card-front .oh-card-badge,
  .oh-card-list.has-one-card .oh-card-front .oh-card-badge {
    max-width: calc(100% - 64px) !important;
    font-size: 10.5px !important;
    padding: 4px 8px !important;
  }

  .oh-card-list .oh-card-front .oh-photo-count,
  .oh-card-list.has-one-card .oh-card-front .oh-photo-count {
    left: 10px !important;
    bottom: 10px !important;
    font-size: 10px !important;
  }

  .oh-card-list .oh-card-front .oh-full-listing-pill,
  .oh-card-list.has-one-card .oh-card-front .oh-full-listing-pill {
    right: 12px !important;
    bottom: 12px !important;
    min-height: 30px !important;
    padding: 6px 11px !important;
    font-size: 11px !important;
  }

  .oh-card-list .oh-card-front .oh-card-body,
  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 12px 14px 10px !important;
  }

  .oh-card-list .oh-card-price-row .oh-card-price,
  .oh-card-list .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price {
    font-size: 22px !important;
    line-height: 1.04 !important;
  }

  .oh-card-list .oh-card-facts,
  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 7px !important;
    font-size: 12px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list .oh-card-extra-facts,
  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 3px !important;
    font-size: 10.5px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list .oh-card-address,
  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 7px !important;
    min-height: 34px !important;
  }

  .oh-card-list .oh-card-address-street,
  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 14px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list .oh-card-address-locality,
  .oh-card-list.has-one-card .oh-card-address-locality {
    font-size: 12px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list .oh-card-subdivision,
  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 11.5px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list .oh-card-smart-fact,
  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 5px !important;
    min-height: 18px !important;
    padding: 3px 8px !important;
    font-size: 10px !important;
  }

  .oh-card-list .oh-card-footer,
  .oh-card-list.has-one-card .oh-card-footer {
    padding-top: 4px !important;
    min-height: 15px !important;
  }

  .oh-card-list .oh-card-office,
  .oh-card-list .oh-card-mls,
  .oh-card-list.has-one-card .oh-card-office,
  .oh-card-list.has-one-card .oh-card-mls {
    font-size: 9.25px !important;
    line-height: 1.04 !important;
  }

  .oh-card-list .oh-card-back-inner,
  .oh-card-list.has-one-card .oh-card-back-inner {
    padding: 12px !important;
    gap: 7px !important;
  }

  .oh-card-list .oh-card-back-topline,
  .oh-card-list.has-one-card .oh-card-back-topline {
    min-height: 34px !important;
  }

  .oh-card-list .oh-card-back-address,
  .oh-card-list.has-one-card .oh-card-back-address {
    font-size: 16px !important;
    line-height: 1.06 !important;
  }

  .oh-card-list .oh-card-back-grid,
  .oh-card-list.has-one-card .oh-card-back-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, 40px) !important;
    gap: 7px !important;
  }

  .oh-card-list .oh-card-back-detail,
  .oh-card-list.has-one-card .oh-card-back-detail {
    height: 40px !important;
    padding: 5px 8px !important;
  }

  .oh-card-list .oh-card-back-label,
  .oh-card-list.has-one-card .oh-card-back-label {
    font-size: 8px !important;
    line-height: 1 !important;
  }

  .oh-card-list .oh-card-back-detail strong,
  .oh-card-list.has-one-card .oh-card-back-detail strong {
    font-size: 11.5px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list .oh-card-back-highlight,
  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 72px !important;
    max-height: 76px !important;
    padding: 7px 9px !important;
  }

  .oh-card-list .oh-card-back-highlight-text,
  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    font-size: 11px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list .oh-card-back .oh-card-flip-pill,
  .oh-card-list .oh-card-back-full-listing,
  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 31px !important;
    height: 31px !important;
    font-size: 10px !important;
    padding: 5px 8px !important;
  }
}


/* =========================================================
   V71 - 1080 x 1920 tall-portrait refinement
   - keeps prior landscape and lower-width tablet breakpoints intact
   - shortens the map on tall portrait screens so more property cards are visible below the fold
   - keeps stacked multi-property cards readable while showing more of the results panel
   - expands the single-property card into a larger, fuller page-style listing without making the map taller
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1500px) {
  .oh-topbar {
    padding-bottom: 10px !important;
  }

  .oh-map-panel {
    height: 37vh !important;
    min-height: 300px !important;
    max-height: 700px !important;
  }

  .oh-map {
    min-height: 300px !important;
  }

  .oh-map-results-jump {
    bottom: 14px !important;
  }

  .oh-results-header {
    padding: 10px 28px 8px !important;
  }

  .oh-card-list {
    gap: 12px !important;
    padding: 12px 28px 26px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    height: 356px !important;
    min-height: 356px !important;
    max-height: 356px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    min-height: 356px !important;
    max-height: 356px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 12px 14px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price {
    font-size: 21px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    font-size: 12px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-extra-facts {
    font-size: 10.5px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-street {
    font-size: 14px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-locality {
    font-size: 12px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-grid {
    grid-template-rows: repeat(2, 42px) !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail {
    height: 42px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 74px !important;
    max-height: 78px !important;
  }

  .oh-card-list.has-one-card {
    padding-top: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card {
    height: 486px !important;
    min-height: 486px !important;
    max-height: 486px !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    min-height: 486px !important;
    max-height: 486px !important;
  }

  .oh-card-list.has-one-card .oh-card-front {
    grid-template-columns: minmax(0, 44%) minmax(0, 56%) !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 14px 16px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price {
    font-size: 24px !important;
    line-height: 1.04 !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 8px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 8px !important;
    min-height: 40px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 15px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    font-size: 13px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 6px !important;
    font-size: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 7px !important;
    min-height: 19px !important;
    font-size: 10.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    min-height: 16px !important;
    padding-top: 5px !important;
  }

  .oh-card-list.has-one-card .oh-card-office,
  .oh-card-list.has-one-card .oh-card-mls {
    font-size: 9.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    padding: 14px !important;
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-topline {
    min-height: 38px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-address {
    font-size: 17px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    grid-template-rows: repeat(2, 44px) !important;
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    height: 44px !important;
    padding: 6px 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail strong {
    font-size: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 84px !important;
    max-height: 90px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    font-size: 11px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 33px !important;
    height: 33px !important;
  }
}


/* =========================================================
   V72 - 1080 x 1920 portrait fixed-map / scrolling-results refinement
   - keeps the map visible while the lower property panel scrolls
   - applies only to the large tall portrait range introduced in V71
   - turns the app shell into a viewport-tall experience with the results panel
     scrolling independently beneath the map
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1500px) {
  .oh-app-shell {
    height: 100vh !important;
    min-height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
  }

  .oh-layout {
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(300px, 37vh) minmax(0, 1fr) !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .oh-map-panel {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .oh-results-panel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    border-top: 1px solid var(--oh-border) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .oh-results-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 25 !important;
    background: #f8f6f1 !important;
    box-shadow: 0 1px 0 rgba(36, 34, 32, 0.06) !important;
  }

  .oh-card-list {
    padding-bottom: 92px !important;
  }

  .oh-card-list.has-one-card {
    padding-bottom: 92px !important;
  }
}


/* =========================================================
   V73 - large portrait modal redesign
   - for 1080 x 1920-style portrait screens, the full listing modal becomes
     a near-full-screen flyer layout with the photo across the top and the
     details below, so it uses the available space much more effectively
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1500px) {
  .oh-full-modal-overlay {
    padding: 16px 14px 86px !important;
    align-items: center !important;
  }

  .oh-full-modal-card-redesign {
    width: min(1000px, 95vw) !important;
    height: min(1640px, 90vh) !important;
    max-height: min(1640px, 90vh) !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(360px, 38vh) minmax(0, 1fr) !important;
    border-radius: 24px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery {
    min-height: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
    background: #211b18 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    padding: 24px 24px 26px !important;
    overflow-y: auto !important;
  }

  .oh-full-modal-close {
    top: 14px !important;
    right: 14px !important;
    width: 38px !important;
    height: 38px !important;
    font-size: 24px !important;
  }

  .oh-full-modal-header-row {
    display: block !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-kicker {
    margin-bottom: 8px !important;
    font-size: 11px !important;
    letter-spacing: 0.14em !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content h2 {
    font-size: clamp(28px, 4.6vw, 42px) !important;
    line-height: 1.02 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-facts {
    margin-top: 9px !important;
    font-size: 14px !important;
    line-height: 1.28 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-address {
    margin-top: 10px !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-subdivision {
    margin-top: 5px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  .oh-full-modal-actions-top {
    margin-top: 14px !important;
    padding-bottom: 16px !important;
    gap: 8px !important;
  }

  .oh-full-modal-primary,
  .oh-full-modal-action {
    min-height: 34px !important;
    padding: 8px 12px !important;
    font-size: 11px !important;
  }

  .oh-full-modal-action-status {
    min-height: 18px !important;
    font-size: 11px !important;
  }

  .oh-full-modal-section {
    margin-top: 16px !important;
  }

  .oh-full-modal-description-section {
    margin-top: 16px !important;
  }

  .oh-full-modal-section-heading {
    margin-bottom: 8px !important;
    font-size: 11px !important;
    letter-spacing: 0.11em !important;
  }

  .oh-full-modal-description {
    max-height: none !important;
    padding: 12px 13px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid div {
    min-height: 62px !important;
    padding: 9px 10px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid span,
  .oh-full-modal-community-box span {
    font-size: 9px !important;
    letter-spacing: 0.08em !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid strong,
  .oh-full-modal-community-box strong {
    margin-top: 3px !important;
    font-size: 12px !important;
    line-height: 1.22 !important;
  }

  .oh-full-modal-community-box {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .oh-full-modal-community-box div {
    padding: 10px 11px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-contact-note {
    margin-top: 16px !important;
    padding: 12px 13px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
}


/* =========================================================
   V74 - 1080 x 1920 single-property results panel expansion
   - on large portrait screens, when only one property is visible,
     expand the under-map card into a fuller listing display so it
     uses most of the available results-panel space
   - keeps the multi-property stacked layout unchanged
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1500px) {
  .oh-card-list.has-one-card {
    padding-top: 14px !important;
    padding-bottom: 96px !important;
  }

  .oh-card-list.has-one-card .oh-card {
    width: 100% !important;
    height: 760px !important;
    min-height: 760px !important;
    max-height: 760px !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    min-height: 760px !important;
    max-height: 760px !important;
  }

  .oh-card-list.has-one-card .oh-card-front {
    grid-template-columns: minmax(0, 47%) minmax(0, 53%) !important;
    align-items: stretch !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-badge {
    max-width: calc(100% - 92px) !important;
    font-size: 13px !important;
    padding: 5px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-share-trigger,
  .oh-card-list.has-one-card .oh-card-front .oh-photo-nav-prev,
  .oh-card-list.has-one-card .oh-card-front .oh-photo-nav-next {
    transform: scale(1.08) !important;
    transform-origin: center center !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-photo-count {
    left: 14px !important;
    bottom: 14px !important;
    font-size: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-full-listing-pill {
    right: 16px !important;
    bottom: 16px !important;
    min-height: 38px !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 20px 22px 18px !important;
  }

  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price {
    font-size: 28px !important;
    line-height: 1.02 !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 12px !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 6px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 14px !important;
    min-height: 64px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 20px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    margin-top: 4px !important;
    font-size: 17px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 12px !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 12px !important;
    min-height: 26px !important;
    padding: 5px 11px !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
    border-radius: 14px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    padding-top: 12px !important;
    min-height: 21px !important;
  }

  .oh-card-list.has-one-card .oh-card-office,
  .oh-card-list.has-one-card .oh-card-mls {
    font-size: 11.5px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    padding: 20px !important;
    gap: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-topline {
    min-height: 56px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-address {
    font-size: 28px !important;
    line-height: 1.06 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(3, 68px) !important;
    gap: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    height: 68px !important;
    padding: 9px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-label {
    font-size: 10px !important;
    line-height: 1 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail strong {
    margin-top: 5px !important;
    font-size: 16px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 150px !important;
    max-height: none !important;
    padding: 12px 14px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 7 !important;
    line-clamp: 7 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-actions {
    margin-top: auto !important;
    gap: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 42px !important;
    height: 42px !important;
    font-size: 13px !important;
    padding: 8px 14px !important;
  }
}


/* =========================================================
   V75 - 1024 x 1366 portrait map-lock / map-height refinement
   - for higher-resolution portrait tablet layouts, keep the map locked in place
     while the results panel scrolls independently beneath it
   - constrain the map to no more than roughly half of the viewport height
   - hide the "Houses below map" overlay for these higher-resolution portrait sizes
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1200px) and (max-height: 1499px) {
  .oh-app-shell {
    height: 100vh !important;
    min-height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
  }

  .oh-layout {
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(280px, 43vh) minmax(0, 1fr) !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .oh-map-panel {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 50vh !important;
    overflow: hidden !important;
  }

  .oh-map {
    min-height: 280px !important;
    height: 100% !important;
  }

  .oh-results-panel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    border-top: 1px solid var(--oh-border) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .oh-results-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 25 !important;
    background: #f8f6f1 !important;
    box-shadow: 0 1px 0 rgba(36, 34, 32, 0.06) !important;
  }

  .oh-card-list,
  .oh-card-list.has-one-card {
    padding-bottom: 92px !important;
  }

  .oh-map-results-jump {
    display: none !important;
  }
}

@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1500px) {
  .oh-map-results-jump {
    display: none !important;
  }
}


/* =========================================================
   V76 - higher-resolution portrait sticky filter bar refinement
   - for the two higher-resolution portrait layouts, keep the top filter bar
     locked in place while the map/results region beneath it handles scrolling
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1200px) {
  .oh-app-shell {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .oh-topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 70 !important;
    flex: 0 0 auto !important;
  }

  .oh-layout {
    min-height: 0 !important;
  }
}


/* =========================================================
   V77 - higher-resolution portrait shell-lock fix
   - V76 made the filter bar sticky in CSS, but the page-shell height script
     was still releasing the shell on widths below 1121px, allowing the whole
     page to scroll and carry the filters out of view
   - V77 updates the shell-lock logic in app.js and uses the live shell height
     variable here so the filter bar, map, and scrollable results region stay
     in the viewport together on 1080 x 1920 and 1024 x 1366 portrait layouts
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1200px) {
  .oh-app-shell {
    height: var(--oh-live-shell-height, calc(100vh - 150px)) !important;
    min-height: min(760px, var(--oh-live-shell-height, calc(100vh - 150px))) !important;
    max-height: var(--oh-live-shell-height, calc(100vh - 150px)) !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .oh-topbar {
    position: relative !important;
    top: auto !important;
    z-index: 70 !important;
    flex: 0 0 auto !important;
  }

  .oh-layout {
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .oh-results-panel {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
}


/* =========================================================
   V78 - 1024 x 1366 portrait full-listing modal expansion
   - on the higher-resolution portrait tablet layout, enlarge the full listing
     modal so it uses much more of the available vertical space and reads more
     like a full listing ad than a smaller centered popup
   ========================================================= */
@media (orientation: portrait) and (min-width: 1000px) and (max-width: 1120px) and (min-height: 1200px) and (max-height: 1499px) {
  .oh-full-modal-overlay {
    padding: 10px 10px 74px !important;
    align-items: center !important;
  }

  .oh-full-modal-card-redesign {
    width: min(1000px, 97vw) !important;
    height: min(1240px, 94vh) !important;
    max-height: min(1240px, 94vh) !important;
    grid-template-columns: minmax(360px, 47%) minmax(0, 53%) !important;
    border-radius: 24px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery {
    min-height: 0 !important;
    height: 100% !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    min-height: 0 !important;
    height: 100% !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    padding: 28px 28px 30px !important;
    overflow-y: auto !important;
  }

  .oh-full-modal-close {
    top: 12px !important;
    right: 12px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content h2 {
    font-size: clamp(40px, 4.8vw, 58px) !important;
    line-height: 1.02 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-facts {
    margin-top: 12px !important;
    font-size: 17px !important;
    line-height: 1.33 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-address {
    margin-top: 16px !important;
    font-size: 18px !important;
    line-height: 1.32 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-subdivision {
    margin-top: 6px !important;
    font-size: 15px !important;
    line-height: 1.24 !important;
  }

  .oh-full-modal-actions-top {
    margin-top: 18px !important;
    padding-bottom: 18px !important;
    gap: 10px !important;
  }

  .oh-full-modal-section,
  .oh-full-modal-description-section {
    margin-top: 18px !important;
  }

  .oh-full-modal-description {
    max-height: none !important;
    min-height: 180px !important;
    padding: 14px 15px !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid {
    gap: 10px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid div,
  .oh-full-modal-community-box div {
    min-height: 76px !important;
    padding: 11px 12px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid strong,
  .oh-full-modal-community-box strong {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-contact-note {
    margin-top: 18px !important;
    padding: 14px 15px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
  }
}


/* =========================================================
   V79 - 912 x 1368 portrait map/filter locking refinement
   - for the next-step portrait tablet width, keep the filter bar locked in place,
     cap the map at about half the screen, let the results panel scroll independently,
     and hide the Houses below map overlay
   ========================================================= */
@media (orientation: portrait) and (min-width: 880px) and (max-width: 999px) and (min-height: 1200px) {
  .oh-app-shell {
    height: var(--oh-live-shell-height, calc(100vh - 150px)) !important;
    min-height: min(760px, var(--oh-live-shell-height, calc(100vh - 150px))) !important;
    max-height: var(--oh-live-shell-height, calc(100vh - 150px)) !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .oh-topbar {
    position: relative !important;
    top: auto !important;
    z-index: 70 !important;
    flex: 0 0 auto !important;
  }

  .oh-layout {
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(260px, 42vh) minmax(0, 1fr) !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .oh-map-panel {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 50vh !important;
    overflow: hidden !important;
  }

  .oh-map {
    min-height: 260px !important;
    height: 100% !important;
  }

  .oh-results-panel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    border-top: 1px solid var(--oh-border) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .oh-results-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 25 !important;
    background: #f8f6f1 !important;
    box-shadow: 0 1px 0 rgba(36, 34, 32, 0.06) !important;
  }

  .oh-card-list,
  .oh-card-list.has-one-card {
    padding-bottom: 92px !important;
  }

  .oh-map-results-jump {
    display: none !important;
  }
}


/* =========================================================
   V80 - 912 x 1368 true half-screen map cap
   - V79 capped the map itself near half the viewport, but that did not account
     for the website header area plus the open-house filter bar above it
   - V80 uses a JS-calculated map-height variable so the bottom of the map stays
     above the halfway point of the visible screen on this portrait tablet size
   ========================================================= */
@media (orientation: portrait) and (min-width: 880px) and (max-width: 999px) and (min-height: 1200px) {
  .oh-layout {
    grid-template-rows: minmax(220px, var(--oh-portrait-medium-map-height, 34vh)) minmax(0, 1fr) !important;
  }

  .oh-map-panel {
    max-height: var(--oh-portrait-medium-map-height, 34vh) !important;
  }

  .oh-map {
    min-height: 220px !important;
  }
}


/* =========================================================
   V81 - 912 x 1368 portrait modal photo-height correction
   - on the 880-999px portrait tablet range, the large modal should not let the
     photo dominate half the screen or push the carousel controls off-canvas
   - make the photo band roughly the top third of the screen and keep the rest
     of the modal available for listing details
   ========================================================= */
@media (orientation: portrait) and (min-width: 880px) and (max-width: 999px) and (min-height: 1200px) {
  .oh-full-modal-overlay {
    padding: 10px 10px 74px !important;
    align-items: center !important;
  }

  .oh-full-modal-card-redesign {
    width: min(960px, 95vw) !important;
    height: min(1230px, 93vh) !important;
    max-height: min(1230px, 93vh) !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(240px, 33vh) minmax(0, 1fr) !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery {
    min-height: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    background: #211b18 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    min-height: 0 !important;
    padding: 20px 20px 24px !important;
    overflow-y: auto !important;
  }

  .oh-full-modal-image-wrap .oh-photo-nav {
    width: 42px !important;
    height: 42px !important;
    font-size: 34px !important;
  }

  .oh-full-modal-image-wrap .oh-photo-nav-prev {
    left: 12px !important;
  }

  .oh-full-modal-image-wrap .oh-photo-nav-next {
    right: 12px !important;
  }

  .oh-full-modal-image-wrap .oh-photo-count {
    left: 14px !important;
    bottom: 14px !important;
  }

  .oh-full-modal-photo-mls {
    right: 14px !important;
    bottom: 14px !important;
  }
}

/* =========================================================
   V82 - 820 x 1180 portrait compact filter-bar and locked map refinement
   - keeps the filter/title row locked with the map and results below it
   - converts the compact portrait filter row to a single visible line with
     Open Houses + City + Date + Price sort + expand arrow
   - moves secondary controls into a dismissible popover panel
   - caps the visible map band at 30% of the total screen height
   ========================================================= */
.oh-filter-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(212, 175, 55, 0.95);
  border-radius: 12px;
  background: linear-gradient(135deg, #b88928 0%, #f1d27a 45%, #b88928 100%);
  color: #171412;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(36, 34, 32, 0.16);
}

.oh-filter-toggle-icon {
  font-size: 16px;
  line-height: 1;
  transition: transform 160ms ease;
}

body.oh-compact-filters-open .oh-filter-toggle-icon {
  transform: rotate(180deg);
}

.oh-compact-filter-popover[hidden] {
  display: none !important;
}

@media (orientation: portrait) and (min-width: 780px) and (max-width: 879px) and (min-height: 1100px) {
  .oh-app-shell {
    height: var(--oh-live-shell-height, calc(100vh - 150px)) !important;
    min-height: min(680px, var(--oh-live-shell-height, calc(100vh - 150px))) !important;
    max-height: var(--oh-live-shell-height, calc(100vh - 150px)) !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .oh-topbar {
    position: relative !important;
    z-index: 90 !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    min-height: 68px !important;
    padding: 10px 12px !important;
    overflow: visible !important;
  }

  .oh-brand-block {
    flex: 0 0 118px !important;
    min-width: 118px !important;
  }

  .oh-brand-block h1 {
    font-size: clamp(16px, 2.5vw, 20px) !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }

  .oh-controls {
    position: relative !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(130px, 1.15fr) minmax(118px, 1fr) minmax(112px, 0.96fr) 40px !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }

  .oh-controls > .oh-control {
    min-width: 0 !important;
    width: 100% !important;
    gap: 0 !important;
  }

  .oh-controls > .oh-control span {
    display: none !important;
  }

  .oh-controls > .oh-control input,
  .oh-controls > .oh-control select {
    width: 100% !important;
    height: 38px !important;
    min-width: 0 !important;
    border-radius: 10px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
  }

  .oh-controls > .oh-control:not(.oh-control-city):not(.oh-control-date),
  .oh-controls > #resetMapBtn {
    display: none !important;
  }

  .oh-controls > #compactFilterToggleBtn {
    display: inline-flex !important;
    align-self: center !important;
    justify-self: stretch !important;
    width: 40px !important;
    height: 38px !important;
    min-width: 40px !important;
    border-radius: 10px !important;
  }

  .oh-controls > #compactFilterPopover:not([hidden]) {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    right: 0 !important;
    left: auto !important;
    width: min(340px, calc(100vw - 48px)) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 14px !important;
    border: 1px solid rgba(212, 175, 55, 0.42) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.985) !important;
    box-shadow: 0 18px 36px rgba(18, 16, 14, 0.22) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 140 !important;
  }

  .oh-controls > #compactFilterPopover[hidden] {
    display: none !important;
  }

  .oh-compact-filter-popover .oh-control,
  .oh-compact-filter-popover .oh-button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .oh-compact-filter-popover .oh-control {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
  }

  .oh-compact-filter-popover .oh-control span {
    display: block !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    letter-spacing: 0.08em !important;
  }

  .oh-compact-filter-popover .oh-control input,
  .oh-compact-filter-popover .oh-control select,
  .oh-compact-filter-popover .oh-button {
    height: 40px !important;
    width: 100% !important;
    font-size: 14px !important;
  }

  .oh-layout {
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: var(--oh-portrait-compact-map-height, 30vh) minmax(0, 1fr) !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .oh-map-panel {
    position: relative !important;
    width: 100% !important;
    height: var(--oh-portrait-compact-map-height, 30vh) !important;
    min-height: 0 !important;
    max-height: var(--oh-portrait-compact-map-height, 30vh) !important;
    overflow: hidden !important;
  }

  .oh-map {
    height: 100% !important;
    min-height: 0 !important;
  }

  .oh-results-panel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    border-left: 0 !important;
    border-top: 1px solid var(--oh-border) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .oh-results-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 25 !important;
    padding: 8px 14px 7px !important;
    background: #f8f6f1 !important;
    box-shadow: 0 1px 0 rgba(36, 34, 32, 0.06) !important;
  }

  .oh-result-count {
    font-size: 18px !important;
    line-height: 1.1 !important;
  }

  .oh-result-subtext {
    font-size: 11px !important;
    line-height: 1.25 !important;
  }

  .oh-card-list,
  .oh-card-list.has-one-card {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 12px 14px 96px !important;
  }

  .oh-map-results-jump {
    display: none !important;
  }
}


/* =========================================================
   V83 - 820 x 1180 portrait compact refinement follow-up
   - hide the compact filter popover until requested and allow the arrow button
     to both open and close it
   - move sort into the popover so the title, city, and date have cleaner spacing
   - restore readable text-driven property tiles/cards in this compact portrait band
   - reduce the full-listing modal photo band to roughly the top 30% of the screen
   ========================================================= */
@media (orientation: portrait) and (min-width: 780px) and (max-width: 879px) and (min-height: 1100px) {
  .oh-card-list,
  .oh-card-list.has-one-card {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 12px 14px 96px !important;
  }

  .oh-card-list .oh-card,
  .oh-card-list.has-one-card .oh-card {
    width: 100% !important;
    height: 252px !important;
    min-height: 252px !important;
    max-height: 252px !important;
  }

  .oh-card-list .oh-card-flip-inner,
  .oh-card-list .oh-card-face,
  .oh-card-list .oh-card-front,
  .oh-card-list .oh-card-back,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    min-height: 252px !important;
    max-height: 252px !important;
    height: 252px !important;
  }

  .oh-card-list .oh-card-front,
  .oh-card-list.has-one-card .oh-card-front {
    display: grid !important;
    grid-template-columns: minmax(0, 43%) minmax(0, 57%) !important;
    align-items: stretch !important;
  }

  .oh-card-list .oh-card-front .oh-card-image-wrap,
  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
  }

  .oh-card-list .oh-card-front .oh-card-image,
  .oh-card-list.has-one-card .oh-card-front .oh-card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-card-list .oh-card-front .oh-card-badge,
  .oh-card-list.has-one-card .oh-card-front .oh-card-badge {
    max-width: calc(100% - 70px) !important;
    font-size: 11px !important;
    padding: 5px 10px !important;
  }

  .oh-card-list .oh-card-front .oh-share-trigger,
  .oh-card-list.has-one-card .oh-card-front .oh-share-trigger {
    top: 10px !important;
    right: 10px !important;
    transform: scale(0.92) !important;
  }

  .oh-card-list .oh-card-front .oh-photo-nav-prev,
  .oh-card-list.has-one-card .oh-card-front .oh-photo-nav-prev {
    left: 10px !important;
  }

  .oh-card-list .oh-card-front .oh-photo-nav-next,
  .oh-card-list.has-one-card .oh-card-front .oh-photo-nav-next {
    right: 10px !important;
  }

  .oh-card-list .oh-card-front .oh-photo-count,
  .oh-card-list.has-one-card .oh-card-front .oh-photo-count {
    left: 10px !important;
    bottom: 10px !important;
    font-size: 11px !important;
  }

  .oh-card-list .oh-card-front .oh-full-listing-pill,
  .oh-card-list.has-one-card .oh-card-front .oh-full-listing-pill {
    right: 10px !important;
    bottom: 10px !important;
    min-height: 34px !important;
    padding: 7px 12px !important;
    font-size: 12px !important;
  }

  .oh-card-list .oh-card-front .oh-card-body,
  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    padding: 12px 14px 10px !important;
  }

  .oh-card-list .oh-card-price-row,
  .oh-card-list.has-one-card .oh-card-price-row {
    gap: 10px !important;
    align-items: flex-start !important;
    margin-bottom: 2px !important;
  }

  .oh-card-list .oh-card-price-row .oh-card-price,
  .oh-card-list .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price {
    font-size: 18px !important;
    line-height: 1.02 !important;
  }

  .oh-card-list .oh-flip-trigger,
  .oh-card-list.has-one-card .oh-flip-trigger {
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
  }

  .oh-card-list .oh-card-facts,
  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 6px !important;
    font-size: 12px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
  }

  .oh-card-list .oh-card-extra-facts,
  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 10px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list .oh-card-address,
  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 8px !important;
    min-height: 0 !important;
  }

  .oh-card-list .oh-card-address-street,
  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 14px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list .oh-card-address-locality,
  .oh-card-list.has-one-card .oh-card-address-locality {
    margin-top: 3px !important;
    font-size: 12px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list .oh-card-subdivision,
  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 6px !important;
    font-size: 10px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
  }

  .oh-card-list .oh-card-smart-fact,
  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 6px !important;
    font-size: 10px !important;
    padding: 4px 8px !important;
  }

  .oh-card-list .oh-card-footer,
  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: auto !important;
    padding-top: 8px !important;
    font-size: 9px !important;
    line-height: 1.1 !important;
    gap: 8px !important;
  }

  .oh-card-list .oh-card-back,
  .oh-card-list.has-one-card .oh-card-back {
    padding: 12px 12px 10px !important;
    overflow: hidden !important;
  }

  .oh-card-list .oh-card-back .oh-card-back-header,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-header {
    margin-bottom: 8px !important;
  }

  .oh-card-list .oh-card-back .oh-card-back-address,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-address {
    margin-bottom: 8px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list .oh-card-back .oh-card-back-grid,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-grid {
    gap: 6px !important;
    margin-bottom: 8px !important;
  }

  .oh-card-list .oh-card-back .oh-card-back-highlight,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-highlight {
    min-height: 66px !important;
    padding: 8px 10px !important;
    font-size: 10px !important;
    line-height: 1.22 !important;
  }

  .oh-card-list .oh-card-back .oh-card-back-actions,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-actions {
    gap: 8px !important;
    margin-top: 8px !important;
  }

  .oh-card-list .oh-card-back .oh-card-back-button,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-button {
    min-height: 34px !important;
    font-size: 11px !important;
  }

  .oh-full-modal-overlay {
    padding: 10px 10px 74px !important;
    align-items: center !important;
  }

  .oh-full-modal-card-redesign {
    width: min(840px, 96vw) !important;
    height: min(1080px, 94vh) !important;
    max-height: min(1080px, 94vh) !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(200px, 30vh) minmax(0, 1fr) !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery {
    min-height: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    background: #211b18 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    min-height: 0 !important;
    padding: 18px 18px 22px !important;
    overflow-y: auto !important;
  }

  .oh-full-modal-image-wrap .oh-photo-nav {
    width: 42px !important;
    height: 42px !important;
    font-size: 34px !important;
  }

  .oh-full-modal-image-wrap .oh-photo-nav-prev {
    left: 12px !important;
  }

  .oh-full-modal-image-wrap .oh-photo-nav-next {
    right: 12px !important;
  }

  .oh-full-modal-image-wrap .oh-photo-count {
    left: 14px !important;
    bottom: 14px !important;
  }

  .oh-full-modal-photo-mls {
    right: 14px !important;
    bottom: 14px !important;
  }
}


/* =========================================================
   V84 - 820 x 1180 portrait follow-up refinement
   - right-align the compact visible controls so they stay clear of the title
   - use the compact header as title + city + date + toggle only
   - restore the under-map results to the landscape-style 2-column card grid
     so flipped cards have enough vertical space for both action buttons
   ========================================================= */
@media (orientation: portrait) and (min-width: 780px) and (max-width: 879px) and (min-height: 1100px) {
  .oh-topbar {
    justify-content: space-between !important;
  }

  .oh-brand-block {
    flex: 0 0 auto !important;
    min-width: auto !important;
    width: auto !important;
    margin-right: 12px !important;
  }

  .oh-controls {
    flex: 0 0 auto !important;
    width: fit-content !important;
    max-width: calc(100% - 160px) !important;
    margin-left: auto !important;
    grid-template-columns: minmax(118px, 132px) minmax(118px, 132px) 40px !important;
    justify-content: end !important;
    justify-items: stretch !important;
  }

  .oh-card-list:not(.has-one-card) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 14px 96px !important;
    align-items: start !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    width: 100% !important;
    height: 318px !important;
    min-height: 318px !important;
    max-height: 318px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 318px !important;
    min-height: 318px !important;
    max-height: 318px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front {
    display: grid !important;
    grid-template-columns: minmax(0, 44%) minmax(0, 56%) !important;
    align-items: stretch !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    padding: 12px 12px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price {
    font-size: 17px !important;
    line-height: 1.02 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-flip-trigger {
    min-height: 36px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    margin-top: 5px !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 10px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address {
    margin-top: 7px !important;
    min-height: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-street {
    font-size: 13px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-locality {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 6px !important;
    font-size: 10px !important;
    padding: 4px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    margin-top: auto !important;
    padding-top: 8px !important;
    font-size: 9px !important;
    line-height: 1.1 !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back {
    padding: 12px !important;
    overflow: hidden !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-inner {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-header,
  .oh-card-list:not(.has-one-card) .oh-card-back-address {
    margin-bottom: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-address {
    font-size: 11px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail {
    min-height: 46px !important;
    height: 46px !important;
    padding: 6px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-label {
    font-size: 8.5px !important;
    line-height: 1 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail strong {
    margin-top: 3px !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 58px !important;
    max-height: none !important;
    padding: 8px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight-text {
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-actions {
    margin-top: auto !important;
    display: flex !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back .oh-card-flip-pill,
  .oh-card-list:not(.has-one-card) .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    font-size: 11px !important;
    padding: 7px 10px !important;
    flex: 1 1 0 !important;
  }
}


/* =========================================================
   V85 - 820 x 1180 portrait card alignment refinement
   - keep the compact filter bar behavior from V83/V84
   - switch the multi-property result cards back to the same
     top-photo / text-below tile style used on the larger landscape layout
   - give flipped cards enough height and action space so buttons do not collide
   ========================================================= */
@media (orientation: portrait) and (min-width: 780px) and (max-width: 879px) and (min-height: 1100px) {
  .oh-card-list:not(.has-one-card) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 14px 96px !important;
    align-items: start !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    width: 100% !important;
    height: 352px !important;
    min-height: 352px !important;
    max-height: 352px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 352px !important;
    min-height: 352px !important;
    max-height: 352px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    display: flex !important;
    flex-direction: column !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front {
    grid-template-columns: none !important;
    align-items: initial !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    position: relative !important;
    flex: 0 0 auto !important;
    height: 164px !important;
    min-height: 164px !important;
    max-height: 164px !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-badge {
    top: 10px !important;
    left: 10px !important;
    max-width: calc(100% - 86px) !important;
    font-size: 10px !important;
    padding: 4px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-share-trigger {
    top: 10px !important;
    right: 10px !important;
    transform: scale(0.9) !important;
    transform-origin: top right !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-photo-nav-prev {
    left: 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-photo-nav-next {
    right: 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-photo-count {
    left: 10px !important;
    bottom: 8px !important;
    font-size: 10px !important;
    z-index: 3 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-full-listing-pill {
    right: 10px !important;
    bottom: 8px !important;
    min-height: 30px !important;
    padding: 6px 10px !important;
    font-size: 10.5px !important;
    z-index: 3 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 11px 12px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price-row {
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 1px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price {
    font-size: 17px !important;
    line-height: 1.03 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-flip-trigger {
    min-height: 35px !important;
    padding: 0 10px !important;
    font-size: 11px !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    margin-top: 6px !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-extra-facts {
    margin-top: 3px !important;
    font-size: 10px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address {
    margin-top: 7px !important;
    min-height: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-street {
    font-size: 13px !important;
    line-height: 1.17 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-locality {
    margin-top: 3px !important;
    font-size: 10.5px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 10px !important;
    line-height: 1.14 !important;
    white-space: normal !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 5px !important;
    padding: 4px 8px !important;
    font-size: 9.5px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    margin-top: auto !important;
    padding-top: 7px !important;
    font-size: 9px !important;
    line-height: 1.08 !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back {
    padding: 11px !important;
    overflow: hidden !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-inner {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    gap: 7px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-header {
    margin-bottom: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-address {
    margin-bottom: 0 !important;
    font-size: 12px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail {
    min-height: 42px !important;
    height: 42px !important;
    padding: 6px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-label {
    font-size: 8px !important;
    line-height: 1 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail strong {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 52px !important;
    padding: 8px 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight-text {
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    font-size: 9.5px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-actions {
    margin-top: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back .oh-card-flip-pill,
  .oh-card-list:not(.has-one-card) .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    padding: 7px 8px !important;
    font-size: 10px !important;
    width: 100% !important;
    justify-content: center !important;
  }
}


/* =========================================================
   V86 - 820 x 1180 portrait card height follow-up
   - make the single-result tile substantially taller so the back content fits
   - make the multi-result portrait tiles taller so the full front-card content
     and footer area are visible without clipping
   - keep the full listing modal unchanged
   ========================================================= */
@media (orientation: portrait) and (min-width: 780px) and (max-width: 879px) and (min-height: 1100px) {
  .oh-card-list.has-one-card .oh-card {
    height: 382px !important;
    min-height: 382px !important;
    max-height: 382px !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 382px !important;
    min-height: 382px !important;
    max-height: 382px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 100% !important;
    min-height: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 14px 16px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price {
    font-size: 20px !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 7px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 5px !important;
    font-size: 10.5px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 15px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    font-size: 12.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 7px !important;
    font-size: 10.5px !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 7px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    padding-top: 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back {
    padding: 14px 14px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-header {
    margin-bottom: 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-address {
    margin-bottom: 10px !important;
    font-size: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-grid {
    gap: 8px !important;
    margin-bottom: 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-detail {
    min-height: 48px !important;
    padding: 8px 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-highlight {
    min-height: 88px !important;
    padding: 10px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-actions {
    margin-top: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-button,
  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 36px !important;
    height: 36px !important;
    font-size: 11px !important;
    justify-content: center !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    height: 390px !important;
    min-height: 390px !important;
    max-height: 390px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 390px !important;
    min-height: 390px !important;
    max-height: 390px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    height: 178px !important;
    min-height: 178px !important;
    max-height: 178px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 12px 12px 11px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price {
    font-size: 18px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    margin-top: 6px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address {
    margin-top: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-subdivision {
    margin-top: 6px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 6px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    padding-top: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back {
    padding: 12px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail {
    min-height: 46px !important;
    height: 46px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 70px !important;
    padding: 9px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight-text {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-actions {
    margin-top: auto !important;
  }
}


/* =========================================================
   V87 - 768 x 1024 portrait compact tablet refinement
   - applies the same compact city/date/toggle filter treatment used on the
     previous portrait breakpoint, with the visible controls right-aligned
   - shrinks and locks the map band so one full under-map card fits below it
   - keeps the under-map cards in the same top-photo / text-below style used
     on the previous portrait size, with taller heights so content is not cut off
   - reduces the big full-listing modal photo band to roughly 30% of the screen
   - lightly nudges the site-header menu/search controls left for this width
   ========================================================= */
.oh-map-results-jump {
  display: none;
}

@media (orientation: portrait) and (min-width: 700px) and (max-width: 779px) and (min-height: 980px) and (max-height: 1099px) {
  .oh-app-shell {
    height: var(--oh-live-shell-height, calc(100vh - 148px)) !important;
    min-height: min(700px, var(--oh-live-shell-height, calc(100vh - 148px))) !important;
    max-height: var(--oh-live-shell-height, calc(100vh - 148px)) !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .oh-topbar {
    position: relative !important;
    z-index: 90 !important;
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    min-height: 64px !important;
    padding: 10px 12px !important;
    overflow: visible !important;
  }

  .oh-brand-block {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin-right: 10px !important;
  }

  .oh-brand-block h1 {
    font-size: clamp(15px, 3vw, 18px) !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }

  .oh-controls {
    position: relative !important;
    flex: 0 0 auto !important;
    width: fit-content !important;
    max-width: calc(100% - 154px) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    display: grid !important;
    grid-template-columns: minmax(92px, 104px) minmax(92px, 104px) 40px !important;
    align-items: center !important;
    justify-content: end !important;
    justify-items: stretch !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }

  .oh-controls > .oh-control {
    min-width: 0 !important;
    width: 100% !important;
    gap: 0 !important;
  }

  .oh-controls > .oh-control span {
    display: none !important;
  }

  .oh-controls > .oh-control input,
  .oh-controls > .oh-control select {
    width: 100% !important;
    height: 36px !important;
    min-width: 0 !important;
    border-radius: 10px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
  }

  .oh-controls > .oh-control:not(.oh-control-city):not(.oh-control-date),
  .oh-controls > #resetMapBtn {
    display: none !important;
  }

  .oh-controls > #compactFilterToggleBtn {
    display: inline-flex !important;
    align-self: center !important;
    justify-self: stretch !important;
    width: 40px !important;
    height: 36px !important;
    min-width: 40px !important;
    border-radius: 10px !important;
  }

  .oh-controls > #compactFilterPopover:not([hidden]) {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    right: 0 !important;
    left: auto !important;
    width: min(320px, calc(100vw - 40px)) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 14px !important;
    border: 1px solid rgba(212, 175, 55, 0.42) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.985) !important;
    box-shadow: 0 18px 36px rgba(18, 16, 14, 0.22) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 140 !important;
  }

  .oh-controls > #compactFilterPopover[hidden] {
    display: none !important;
  }

  .oh-compact-filter-popover .oh-control,
  .oh-compact-filter-popover .oh-button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .oh-compact-filter-popover .oh-control {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
  }

  .oh-compact-filter-popover .oh-control span {
    display: block !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    letter-spacing: 0.08em !important;
  }

  .oh-compact-filter-popover .oh-control input,
  .oh-compact-filter-popover .oh-control select,
  .oh-compact-filter-popover .oh-button {
    height: 40px !important;
    width: 100% !important;
    font-size: 14px !important;
  }

  .oh-layout {
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: var(--oh-portrait-compact-map-height, 31vh) minmax(0, 1fr) !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .oh-map-panel {
    position: relative !important;
    width: 100% !important;
    height: var(--oh-portrait-compact-map-height, 31vh) !important;
    min-height: 0 !important;
    max-height: var(--oh-portrait-compact-map-height, 31vh) !important;
    overflow: hidden !important;
  }

  .oh-map {
    height: 100% !important;
    min-height: 0 !important;
  }

  .oh-results-panel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    border-left: 0 !important;
    border-top: 1px solid var(--oh-border) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .oh-results-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 25 !important;
    padding: 8px 12px 7px !important;
    background: #f8f6f1 !important;
    box-shadow: 0 1px 0 rgba(36, 34, 32, 0.06) !important;
  }

  .oh-result-count {
    font-size: 17px !important;
    line-height: 1.08 !important;
  }

  .oh-result-subtext {
    font-size: 10px !important;
    line-height: 1.22 !important;
  }

  .oh-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 10px 10px 96px !important;
    align-items: start !important;
  }

  .oh-card-list.has-one-card {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 10px 10px 96px !important;
    align-items: start !important;
  }

  .oh-card-list.has-one-card .oh-card {
    width: 100% !important;
    height: 370px !important;
    min-height: 370px !important;
    max-height: 370px !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 370px !important;
    min-height: 370px !important;
    max-height: 370px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 172px !important;
    min-height: 172px !important;
    max-height: 172px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 12px 14px 11px !important;
  }

  .oh-card-list.has-one-card .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price {
    font-size: 20px !important;
    line-height: 1.03 !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 6px !important;
    font-size: 12px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 4px !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 14px !important;
    line-height: 1.17 !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list.has-one-card .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 10px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list.has-one-card .oh-card-smart-fact {
    margin-top: 5px !important;
    font-size: 9.5px !important;
    padding: 4px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: auto !important;
    padding-top: 8px !important;
    font-size: 9px !important;
    line-height: 1.08 !important;
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back {
    padding: 12px !important;
    overflow: hidden !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    gap: 7px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-address {
    font-size: 11px !important;
    line-height: 1.18 !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    min-height: 42px !important;
    height: 42px !important;
    padding: 6px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-label {
    font-size: 8px !important;
    line-height: 1 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail strong {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 54px !important;
    padding: 8px 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    font-size: 9.5px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-actions {
    margin-top: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    padding: 7px 8px !important;
    font-size: 10px !important;
    width: 100% !important;
    justify-content: center !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    width: 100% !important;
    height: 386px !important;
    min-height: 386px !important;
    max-height: 386px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 386px !important;
    min-height: 386px !important;
    max-height: 386px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    display: flex !important;
    flex-direction: column !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front {
    grid-template-columns: none !important;
    align-items: initial !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    position: relative !important;
    flex: 0 0 auto !important;
    height: 170px !important;
    min-height: 170px !important;
    max-height: 170px !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-badge {
    top: 9px !important;
    left: 9px !important;
    max-width: calc(100% - 82px) !important;
    font-size: 9px !important;
    padding: 4px 7px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-share-trigger {
    top: 9px !important;
    right: 9px !important;
    transform: scale(0.88) !important;
    transform-origin: top right !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-photo-nav-prev {
    left: 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-photo-nav-next {
    right: 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-photo-count {
    left: 9px !important;
    bottom: 8px !important;
    font-size: 10px !important;
    z-index: 3 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-full-listing-pill {
    right: 9px !important;
    bottom: 8px !important;
    min-height: 29px !important;
    padding: 6px 9px !important;
    font-size: 10px !important;
    z-index: 3 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 11px 11px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price-row {
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 1px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price {
    font-size: 18px !important;
    line-height: 1.03 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-flip-trigger {
    min-height: 34px !important;
    padding: 0 10px !important;
    font-size: 10.5px !important;
    flex: 0 0 auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    margin-top: 6px !important;
    font-size: 10.5px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-extra-facts {
    margin-top: 3px !important;
    font-size: 9.5px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address {
    margin-top: 7px !important;
    min-height: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-street {
    font-size: 13px !important;
    line-height: 1.17 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-locality {
    margin-top: 3px !important;
    font-size: 10.25px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-subdivision {
    margin-top: 5px !important;
    font-size: 9.75px !important;
    line-height: 1.14 !important;
    white-space: normal !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 5px !important;
    padding: 4px 8px !important;
    font-size: 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    margin-top: auto !important;
    padding-top: 7px !important;
    font-size: 8.5px !important;
    line-height: 1.08 !important;
    gap: 7px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back {
    padding: 11px !important;
    overflow: hidden !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-inner {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    gap: 7px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-address {
    margin-bottom: 0 !important;
    font-size: 11px !important;
    line-height: 1.16 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail {
    min-height: 42px !important;
    height: 42px !important;
    padding: 6px 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-label {
    font-size: 8px !important;
    line-height: 1 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-detail strong {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight {
    min-height: 52px !important;
    padding: 8px 9px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-highlight-text {
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    font-size: 9.5px !important;
    line-height: 1.2 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back-actions {
    margin-top: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-back .oh-card-flip-pill,
  .oh-card-list:not(.has-one-card) .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    padding: 7px 8px !important;
    font-size: 10px !important;
    width: 100% !important;
    justify-content: center !important;
  }

  .oh-full-modal-overlay {
    padding: 8px 8px 72px !important;
    align-items: center !important;
  }

  .oh-full-modal-card-redesign {
    width: min(760px, 96vw) !important;
    height: min(960px, 92vh) !important;
    max-height: min(960px, 92vh) !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(210px, 30vh) minmax(0, 1fr) !important;
    border-radius: 20px !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery,
  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    min-height: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    padding: 18px 18px 22px !important;
    overflow-y: auto !important;
  }

  .oh-full-modal-close {
    top: 10px !important;
    right: 10px !important;
    width: 34px !important;
    height: 34px !important;
    font-size: 22px !important;
  }

  .oh-full-modal-header-row {
    display: block !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-kicker {
    margin-bottom: 8px !important;
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content h2 {
    font-size: clamp(24px, 5vw, 34px) !important;
    line-height: 1.03 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-facts {
    margin-top: 8px !important;
    font-size: 13px !important;
    line-height: 1.28 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-address {
    margin-top: 10px !important;
    font-size: 13px !important;
    line-height: 1.24 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-subdivision {
    margin-top: 5px !important;
    font-size: 12px !important;
    line-height: 1.18 !important;
  }

  .oh-full-modal-actions-top {
    margin-top: 14px !important;
    padding-bottom: 14px !important;
    gap: 8px !important;
  }

  .oh-full-modal-primary,
  .oh-full-modal-action {
    min-height: 34px !important;
    padding: 8px 10px !important;
    font-size: 10px !important;
  }

  .oh-full-modal-action-status {
    min-height: 18px !important;
    font-size: 10px !important;
  }

  .oh-full-modal-section,
  .oh-full-modal-description-section {
    margin-top: 14px !important;
  }

  .oh-full-modal-section-heading {
    margin-bottom: 8px !important;
    font-size: 10px !important;
    letter-spacing: 0.1em !important;
  }

  .oh-full-modal-description {
    max-height: none !important;
    min-height: 120px !important;
    padding: 11px 12px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid div,
  .oh-full-modal-community-box div {
    min-height: 60px !important;
    padding: 8px 9px !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid span,
  .oh-full-modal-community-box span {
    font-size: 8px !important;
    letter-spacing: 0.08em !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-detail-grid strong,
  .oh-full-modal-community-box strong {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }

  .oh-full-modal-community-box {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-contact-note {
    margin-top: 14px !important;
    padding: 11px 12px !important;
    font-size: 11px !important;
    line-height: 1.38 !important;
  }

  header .elementor-menu-toggle,
  .elementor-location-header .elementor-menu-toggle,
  header .elementor-button,
  .elementor-location-header .elementor-button,
  header a[href*="mls"],
  .elementor-location-header a[href*="mls"] {
    transform: translateX(-10px) !important;
  }
}


/* =========================================================
   V88 - 768 x 1024 portrait follow-up
   - reduce the map band further so the first result card starts lower and has
     enough visible room above the persistent footer
   - add a little breathing room below the results-count bar so cards do not feel
     hidden under that sticky bar
   - make the single-result tile slightly taller and keep front/back matched
   - keep the multi-result cards in the same 2-column top-photo tile style while
     tightening the front content enough to keep the footer visible
   - force the full-listing modal photo to span the full width and cap the
     property-description box to roughly four text rows
   ========================================================= */
@media (orientation: portrait) and (min-width: 700px) and (max-width: 779px) and (min-height: 980px) and (max-height: 1099px) {
  .oh-layout {
    grid-template-rows: var(--oh-portrait-compact-map-height, 25vh) minmax(0, 1fr) !important;
  }

  .oh-map-panel {
    height: var(--oh-portrait-compact-map-height, 25vh) !important;
    max-height: var(--oh-portrait-compact-map-height, 25vh) !important;
  }

  .oh-card-list,
  .oh-card-list.has-one-card {
    padding-top: 16px !important;
  }

  .oh-card-list.has-one-card .oh-card {
    height: 398px !important;
    min-height: 398px !important;
    max-height: 398px !important;
  }

  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 398px !important;
    min-height: 398px !important;
    max-height: 398px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 174px !important;
    min-height: 174px !important;
    max-height: 174px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 12px 14px 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    padding-top: 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back {
    padding: 12px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    min-height: 66px !important;
    padding: 8px 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-actions {
    margin-top: auto !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card {
    height: 386px !important;
    min-height: 386px !important;
    max-height: 386px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-flip-inner,
  .oh-card-list:not(.has-one-card) .oh-card-face,
  .oh-card-list:not(.has-one-card) .oh-card-front,
  .oh-card-list:not(.has-one-card) .oh-card-back {
    height: 386px !important;
    min-height: 386px !important;
    max-height: 386px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-image-wrap {
    height: 164px !important;
    min-height: 164px !important;
    max-height: 164px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 10px 11px 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-price,
  .oh-card-list:not(.has-one-card) .oh-card-price-row .oh-card-price {
    font-size: 17px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-flip-trigger {
    min-height: 33px !important;
    padding: 0 9px !important;
    font-size: 10px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-facts {
    margin-top: 5px !important;
    font-size: 10px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-extra-facts {
    margin-top: 2px !important;
    font-size: 9px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address {
    margin-top: 6px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-street {
    font-size: 12.5px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-address-locality {
    margin-top: 2px !important;
    font-size: 10px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-subdivision {
    margin-top: 4px !important;
    font-size: 9.25px !important;
    line-height: 1.12 !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-smart-fact {
    margin-top: 4px !important;
    padding: 3px 7px !important;
    font-size: 8.75px !important;
  }

  .oh-card-list:not(.has-one-card) .oh-card-footer {
    padding-top: 6px !important;
    font-size: 8.25px !important;
    line-height: 1.05 !important;
  }

  .oh-full-modal-card-redesign {
    width: min(760px, 96vw) !important;
    height: min(960px, 92vh) !important;
    max-height: min(960px, 92vh) !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(210px, 30vh) minmax(0, 1fr) !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-gallery {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap {
    width: 100% !important;
    min-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #211b18 !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-image-wrap img {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .oh-full-modal-card-redesign .oh-full-modal-content {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
  }

  .oh-full-modal-description {
    min-height: 0 !important;
    max-height: 92px !important;
    overflow-y: auto !important;
    padding: 10px 12px !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
  }
}


/* =========================================================
   V89 - visible brokerage / REALTOR / Equal Housing footer branding
   - injects a compact RE/MAX Innovations identity area into the persistent
     footer using the provided web-hosted image assets
   - keeps the legal / brokerage branding visible on tablet and desktop layouts
     instead of relying only on the More popup panel
   ========================================================= */
body.page-id-1914 .oh-mini-footer-identity {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 2px 10px;
  border-left: 1px solid rgba(212, 175, 55, 0.22);
  border-right: 1px solid rgba(212, 175, 55, 0.22);
}

body.page-id-1914 .oh-mini-footer-affiliation {
  color: rgba(255, 255, 255, 0.62);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.page-id-1914 .oh-mini-footer-remax-logo,
body.page-id-1914 .oh-mini-footer-legal-logo {
  display: block;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 3px 8px rgba(0, 0, 0, 0.22));
}

body.page-id-1914 .oh-mini-footer-remax-logo {
  height: 34px;
  max-width: 132px;
  background: rgba(255, 255, 255, 0.96);
  border-radius: 6px;
  padding: 3px 6px;
}

body.page-id-1914 .oh-mini-footer-legal-logo {
  height: 34px;
  max-width: 54px;
  border-radius: 5px;
}

@media (min-width: 1121px) {
  :root {
    --oh-mini-footer-height: 62px;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    grid-template-columns: minmax(280px, 1fr) auto minmax(220px, auto);
  }
}

@media (min-width: 700px) and (max-width: 1120px) {
  :root {
    --oh-mini-footer-height: 76px;
  }

  body.page-id-1914 .oh-mini-footer {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) auto minmax(150px, auto);
    align-items: center;
    gap: 12px;
  }

  body.page-id-1914 .oh-mini-footer-brand {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

  body.page-id-1914 .oh-mini-footer-brand span {
    max-width: 260px;
    line-height: 1.22;
  }

  body.page-id-1914 .oh-mini-footer-identity {
    gap: 8px;
    padding-left: 8px;
    padding-right: 8px;
  }

  body.page-id-1914 .oh-mini-footer-affiliation {
    display: none;
  }

  body.page-id-1914 .oh-mini-footer-remax-logo {
    height: 38px;
    max-width: 142px;
  }

  body.page-id-1914 .oh-mini-footer-legal-logo {
    height: 38px;
    max-width: 58px;
  }

  body.page-id-1914 .oh-mini-footer-actions {
    justify-content: flex-end;
  }
}

@media (min-width: 700px) and (max-width: 820px) {
  :root {
    --oh-mini-footer-height: 82px;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    grid-template-columns: minmax(158px, 1fr) auto minmax(132px, auto);
    gap: 8px;
  }

  body.page-id-1914 .oh-mini-footer-brand strong {
    font-size: 12px;
  }

  body.page-id-1914 .oh-mini-footer-brand span {
    max-width: 180px;
    font-size: 10.5px;
  }

  body.page-id-1914 .oh-mini-footer-remax-logo {
    height: 32px;
    max-width: 120px;
    padding: 3px 5px;
  }

  body.page-id-1914 .oh-mini-footer-legal-logo {
    height: 32px;
    max-width: 48px;
  }

  body.page-id-1914 .oh-mini-footer-link,
  body.page-id-1914 .oh-mini-footer-more {
    min-height: 31px;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 10.5px;
  }
}

@media (max-width: 699px) {
  body.page-id-1914 .oh-mini-footer-identity {
    display: none;
  }
}


/* =========================================================
   V90 - footer logo strip refinement
   - removes the large left footer name block on the open house page
   - shows only the four supplied logos, tightly cropped and vertically fitted
   - keeps the actions on the right side of the persistent footer
   ========================================================= */
body.page-id-1914 .oh-mini-footer-brand--logos {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}

body.page-id-1914 .oh-mini-footer-brand--logos strong,
body.page-id-1914 .oh-mini-footer-brand--logos span {
  display: none !important;
}

body.page-id-1914 .oh-mini-footer-identity {
  display: none !important;
}

body.page-id-1914 .oh-mini-footer-logos {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  width: 100%;
  overflow: hidden;
}

body.page-id-1914 .oh-mini-footer-logo {
  display: block;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.28));
}

body.page-id-1914 .oh-mini-footer-logo--remax-pin {
  height: 34px;
  flex: 0 0 auto;
}

body.page-id-1914 .oh-mini-footer-logo--remax-innovations {
  height: 32px;
  max-width: min(34vw, 290px);
  flex: 0 1 auto;
}

body.page-id-1914 .oh-mini-footer-logo--realtor,
body.page-id-1914 .oh-mini-footer-logo--eho {
  height: 30px;
  flex: 0 0 auto;
}

@media (max-width: 1120px) {
  body.page-id-1914 {
    --oh-mini-footer-height: 60px;
  }

  body.page-id-1914 .oh-mini-footer {
    padding-inline: 16px;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    gap: 12px;
  }

  body.page-id-1914 .oh-mini-footer-logos {
    gap: 8px;
  }

  body.page-id-1914 .oh-mini-footer-logo--remax-pin {
    height: 30px;
  }

  body.page-id-1914 .oh-mini-footer-logo--remax-innovations {
    height: 28px;
    max-width: min(36vw, 240px);
  }

  body.page-id-1914 .oh-mini-footer-logo--realtor,
  body.page-id-1914 .oh-mini-footer-logo--eho {
    height: 26px;
  }
}

@media (max-width: 820px) {
  body.page-id-1914 .oh-mini-footer-brand--logos {
    display: none !important;
  }
}


/* =========================================================
   V91 - portrait tablet footer-logo visibility correction
   - V90's logo strip rendered in landscape, but the earlier max-width
     footer rule hid the logo container in portrait tablet widths
   - re-enables the four-logo strip for tablet portrait sizes while still
     leaving true phone footer treatment for the upcoming phone-specific pass
   ========================================================= */
@media (orientation: portrait) and (min-width: 700px) and (max-width: 820px) {
  body.page-id-1914 .oh-mini-footer {
    padding-inline: 14px !important;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    justify-content: space-between !important;
    gap: 10px !important;
  }

  body.page-id-1914 .oh-mini-footer-brand--logos {
    display: flex !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 160px) !important;
    overflow: hidden !important;
  }

  body.page-id-1914 .oh-mini-footer-logos {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  body.page-id-1914 .oh-mini-footer-logo--remax-pin {
    height: 28px !important;
    flex: 0 0 auto !important;
  }

  body.page-id-1914 .oh-mini-footer-logo--remax-innovations {
    height: 25px !important;
    max-width: min(32vw, 180px) !important;
    flex: 0 1 auto !important;
  }

  body.page-id-1914 .oh-mini-footer-logo--realtor,
  body.page-id-1914 .oh-mini-footer-logo--eho {
    height: 24px !important;
    flex: 0 0 auto !important;
  }

  body.page-id-1914 .oh-mini-footer-actions {
    margin-left: auto !important;
    flex: 0 0 auto !important;
  }

  body.page-id-1914 .oh-mini-footer-link,
  body.page-id-1914 .oh-mini-footer-more {
    min-height: 32px !important;
    padding: 0 12px !important;
    font-size: 11px !important;
  }
}

@media (max-width: 699px) {
  body.page-id-1914 .oh-mini-footer-brand--logos {
    display: none !important;
  }
}


/* =========================================================
   V92 - standardized persistent footer across all map form factors
   - uses the logo strip as the actual left-side footer content
   - keeps Call/Text and More right-aligned at every width
   - removes/hides legacy text or injected identity variants without relying on
     the previous footer layout rules
   ========================================================= */
body.page-id-1914 {
  --oh-mini-footer-height: 60px;
}

body.page-id-1914 .oh-mini-footer {
  min-height: var(--oh-mini-footer-height) !important;
  padding: 7px clamp(8px, 1.6vw, 24px) !important;
  overflow: hidden !important;
}

body.page-id-1914 .oh-mini-footer-inner {
  width: min(1680px, 100%) !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(8px, 1.4vw, 18px) !important;
  min-width: 0 !important;
}

body.page-id-1914 .oh-mini-footer-brand,
body.page-id-1914 .oh-mini-footer-brand--logos {
  display: flex !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

body.page-id-1914 .oh-mini-footer-brand strong,
body.page-id-1914 .oh-mini-footer-brand span,
body.page-id-1914 .oh-mini-footer-affiliation,
body.page-id-1914 .oh-mini-footer-identity {
  display: none !important;
}

body.page-id-1914 .oh-mini-footer-logos {
  display: flex !important;
  flex: 0 1 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: clamp(5px, 0.85vw, 11px) !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: auto !important;
  overflow: visible !important;
}

body.page-id-1914 .oh-mini-footer-logo {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
  object-position: left center !important;
  flex-shrink: 1 !important;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.28)) !important;
}

body.page-id-1914 .oh-mini-footer-logo--remax-pin {
  height: clamp(21px, 3.2vw, 34px) !important;
  flex: 0 0 auto !important;
}

body.page-id-1914 .oh-mini-footer-logo--remax-innovations {
  height: clamp(18px, 2.55vw, 31px) !important;
  max-width: clamp(72px, 22vw, 275px) !important;
  flex: 1 1 auto !important;
}

body.page-id-1914 .oh-mini-footer-logo--realtor,
body.page-id-1914 .oh-mini-footer-logo--eho {
  height: clamp(18px, 2.65vw, 30px) !important;
  flex: 0 0 auto !important;
}

body.page-id-1914 .oh-mini-footer-actions {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(6px, 1vw, 10px) !important;
  min-width: max-content !important;
  white-space: nowrap !important;
}

body.page-id-1914 .oh-mini-footer-link,
body.page-id-1914 .oh-mini-footer-more {
  min-height: clamp(29px, 3.7vw, 34px) !important;
  padding-left: clamp(9px, 1.6vw, 14px) !important;
  padding-right: clamp(9px, 1.6vw, 14px) !important;
  font-size: clamp(10px, 1.35vw, 12px) !important;
}

@media (max-width: 520px) {
  body.page-id-1914 {
    --oh-mini-footer-height: 58px;
  }

  body.page-id-1914 .oh-mini-footer {
    padding-inline: 8px !important;
  }

  body.page-id-1914 .oh-mini-footer-inner {
    gap: 7px !important;
  }

  body.page-id-1914 .oh-mini-footer-logos {
    gap: 4px !important;
  }

  body.page-id-1914 .oh-mini-footer-logo--remax-pin {
    height: 20px !important;
  }

  body.page-id-1914 .oh-mini-footer-logo--remax-innovations {
    height: 18px !important;
    max-width: 70px !important;
  }

  body.page-id-1914 .oh-mini-footer-logo--realtor,
  body.page-id-1914 .oh-mini-footer-logo--eho {
    height: 18px !important;
  }

  body.page-id-1914 .oh-mini-footer-actions {
    gap: 6px !important;
  }

  body.page-id-1914 .oh-mini-footer-link,
  body.page-id-1914 .oh-mini-footer-more {
    min-height: 30px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
    font-size: 10px !important;
  }
}

/* =========================================================
   V94 - footer logo 80%-height standardization
   - keep the four footer logos at a consistent 80% of footer height
   - vertically center the logos inside the persistent footer bar
   - preserve right-aligned Call / Text and More actions
   ========================================================= */
body.page-id-1914 {
  --oh-mini-footer-logo-height: calc(var(--oh-mini-footer-height) * 0.7);
}

body.page-id-1914 .oh-mini-footer {
  min-height: var(--oh-mini-footer-height) !important;
  height: var(--oh-mini-footer-height) !important;
  padding-block: 0 !important;
  overflow: hidden !important;
}

body.page-id-1914 .oh-mini-footer-inner {
  height: var(--oh-mini-footer-height) !important;
  min-height: var(--oh-mini-footer-height) !important;
  align-items: center !important;
}

body.page-id-1914 .oh-mini-footer-brand,
body.page-id-1914 .oh-mini-footer-brand--logos {
  height: var(--oh-mini-footer-height) !important;
  min-height: var(--oh-mini-footer-height) !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  overflow: hidden !important;
}

body.page-id-1914 .oh-mini-footer-logos {
  height: var(--oh-mini-footer-height) !important;
  min-height: var(--oh-mini-footer-height) !important;
  align-items: center !important;
  overflow: hidden !important;
}

body.page-id-1914 .oh-mini-footer-logo,
body.page-id-1914 .oh-mini-footer-logo--remax-pin,
body.page-id-1914 .oh-mini-footer-logo--remax-innovations,
body.page-id-1914 .oh-mini-footer-logo--realtor,
body.page-id-1914 .oh-mini-footer-logo--eho {
  height: var(--oh-mini-footer-logo-height) !important;
  min-height: var(--oh-mini-footer-logo-height) !important;
  max-height: var(--oh-mini-footer-logo-height) !important;
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  align-self: center !important;
  object-fit: contain !important;
  object-position: left center !important;
}

body.page-id-1914 .oh-mini-footer-actions {
  margin-left: auto !important;
  flex: 0 0 auto !important;
  justify-content: flex-end !important;
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 520px) {
  body.page-id-1914 .oh-mini-footer-logo,
  body.page-id-1914 .oh-mini-footer-logo--remax-pin,
  body.page-id-1914 .oh-mini-footer-logo--remax-innovations,
  body.page-id-1914 .oh-mini-footer-logo--realtor,
  body.page-id-1914 .oh-mini-footer-logo--eho {
    height: var(--oh-mini-footer-logo-height) !important;
    min-height: var(--oh-mini-footer-logo-height) !important;
    max-height: var(--oh-mini-footer-logo-height) !important;
    width: auto !important;
    max-width: none !important;
  }
}


/* =========================================================
   V96 - 430 x 932 phone filter-bar first pass
   - top row shows Open Houses on the left
   - right side shows "Filters →" plus the down-arrow button
   - all filter and sort controls move into the popup
   - popup opens/closes from the arrow button and closes on outside tap
   ========================================================= */
@media (orientation: portrait) and (min-width: 320px) and (max-width: 699px) and (min-height: 720px) {
  .oh-app-shell {
    height: var(--oh-live-shell-height, calc(100vh - 126px)) !important;
    min-height: min(620px, var(--oh-live-shell-height, calc(100vh - 126px))) !important;
    max-height: var(--oh-live-shell-height, calc(100vh - 126px)) !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .oh-topbar {
    position: relative !important;
    z-index: 90 !important;
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    min-height: 56px !important;
    padding: 8px 10px !important;
    overflow: visible !important;
  }

  .oh-brand-block {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin-right: 8px !important;
  }

  .oh-brand-block h1 {
    font-size: clamp(15px, 4.6vw, 19px) !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }

  .oh-brand-block p {
    display: none !important;
  }

  .oh-controls {
    position: relative !important;
    flex: 0 0 auto !important;
    width: fit-content !important;
    max-width: calc(100% - 142px) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    display: grid !important;
    grid-template-columns: auto 38px !important;
    align-items: center !important;
    justify-content: end !important;
    justify-items: stretch !important;
    gap: 7px !important;
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }

  .oh-controls::before {
    content: "Filters \2192";
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    color: rgba(244, 240, 232, 0.92) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35) !important;
  }

  .oh-controls > .oh-control,
  .oh-controls > #resetMapBtn {
    display: none !important;
  }

  .oh-controls > #compactFilterToggleBtn {
    display: inline-flex !important;
    align-self: center !important;
    justify-self: stretch !important;
    width: 38px !important;
    height: 36px !important;
    min-width: 38px !important;
    border-radius: 10px !important;
  }

  .oh-controls > #compactFilterPopover:not([hidden]) {
    position: absolute !important;
    top: calc(100% + 9px) !important;
    right: 0 !important;
    left: auto !important;
    width: min(330px, calc(100vw - 22px)) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 14px !important;
    border: 1px solid rgba(212, 175, 55, 0.42) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.985) !important;
    box-shadow: 0 18px 36px rgba(18, 16, 14, 0.22) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 160 !important;
  }

  .oh-controls > #compactFilterPopover[hidden] {
    display: none !important;
  }

  .oh-compact-filter-popover .oh-control,
  .oh-compact-filter-popover .oh-button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .oh-compact-filter-popover .oh-control {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
  }

  .oh-compact-filter-popover .oh-control span {
    display: block !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    letter-spacing: 0.08em !important;
  }

  .oh-compact-filter-popover .oh-control input,
  .oh-compact-filter-popover .oh-control select,
  .oh-compact-filter-popover .oh-button {
    height: 40px !important;
    width: 100% !important;
    font-size: 14px !important;
  }

  .oh-layout {
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: var(--oh-portrait-compact-map-height, 30vh) minmax(0, 1fr) !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .oh-map-panel {
    position: relative !important;
    width: 100% !important;
    height: var(--oh-portrait-compact-map-height, 30vh) !important;
    min-height: 0 !important;
    max-height: var(--oh-portrait-compact-map-height, 30vh) !important;
    overflow: hidden !important;
  }

  .oh-map {
    height: 100% !important;
    min-height: 0 !important;
  }

  .oh-results-panel {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    border-left: 0 !important;
    border-top: 1px solid var(--oh-border) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .oh-results-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 25 !important;
    background: #f8f6f1 !important;
    box-shadow: 0 1px 0 rgba(36, 34, 32, 0.06) !important;
  }
}

/* =========================================================
   V97 - phone portrait locked filter bar refinement
   - for 430 x 932-style phone portrait, prevent the full page from scrolling
   - keep the Open Houses / Filters bar locked in the app shell
   - let only the results panel scroll below the locked map/filter area
   ========================================================= */
@media (orientation: portrait) and (min-width: 320px) and (max-width: 699px) and (min-height: 720px) {
  html:has(body.page-id-1914.oh-page-shell-locked),
  body.page-id-1914.oh-page-shell-locked {
    height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  body.page-id-1914.oh-page-shell-locked .wrapper-page,
  body.page-id-1914.oh-page-shell-locked #page-content,
  body.page-id-1914.oh-page-shell-locked .elementor-1914,
  body.page-id-1914.oh-page-shell-locked .elementor-1914 > .e-con,
  body.page-id-1914.oh-page-shell-locked .elementor-1914 .elementor-widget-html,
  body.page-id-1914.oh-page-shell-locked .elementor-1914 .elementor-widget-html > .elementor-widget-container {
    overflow: visible !important;
    max-height: none !important;
  }

  body.page-id-1914.oh-page-shell-locked .oh-app-shell {
    position: relative !important;
    height: var(--oh-live-shell-height, calc(100vh - 126px)) !important;
    max-height: var(--oh-live-shell-height, calc(100vh - 126px)) !important;
    overflow: hidden !important;
  }

  body.page-id-1914.oh-page-shell-locked .oh-topbar {
    position: relative !important;
    top: auto !important;
    z-index: 120 !important;
    flex: 0 0 auto !important;
  }

  body.page-id-1914.oh-page-shell-locked .oh-layout {
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.page-id-1914.oh-page-shell-locked .oh-results-panel {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }
}


/* =========================================================
   V98 - phone filter label color + open-house label cleanup
   - make the phone "Filters →" label dark for better readability
   - app.js removes leading "Public:" from open-house display text
   ========================================================= */
@media (orientation: portrait) and (max-width: 699px) {
  .oh-controls::before {
    color: #241f1b !important;
    text-shadow: none !important;
  }
}


/* =========================================================
   V99 - compact phone portrait map/results/card compression
   - trims map height slightly on narrow portrait phones
   - keeps the visible/filtered bar to a single compact line
   - suppresses subdivision and smart-fact callout on small phones
   - moves the address directly below price and right-aligns facts below the flip button
   - reduces front-card vertical height for better use of limited viewport space
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-layout {
    grid-template-rows: minmax(190px, 26vh) minmax(0, 1fr) !important;
  }

  .oh-map-panel {
    height: min(26vh, 240px) !important;
    max-height: min(26vh, 240px) !important;
  }

  .oh-results-header {
    padding: 9px 12px 8px !important;
    display: flex !important;
    align-items: baseline !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
    overflow: hidden !important;
  }

  .oh-result-count {
    flex: 0 0 auto !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }

  .oh-result-subtext {
    flex: 1 1 auto !important;
    margin-top: 0 !important;
    font-size: 11.5px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .oh-card-list {
    padding: 10px 10px 16px !important;
    gap: 10px !important;
  }

  .oh-card-front .oh-card-image-wrap {
    aspect-ratio: 16 / 7.2 !important;
  }

  .oh-card-front .oh-card-body,
  .oh-card-list.has-one-card .oh-card-front .oh-card-body,
  .oh-card-list:not(.has-one-card) .oh-card-front .oh-card-body {
    padding: 8px 10px 8px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .oh-card-price-row {
    gap: 7px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-price-row .oh-card-price,
  .oh-card-price {
    font-size: 18px !important;
    line-height: 1 !important;
  }

  .oh-card-flip-pill {
    min-height: 34px !important;
    padding: 8px 10px !important;
    font-size: 10px !important;
  }

  .oh-card-address {
    order: 2 !important;
    margin-top: 5px !important;
    min-height: 0 !important;
    gap: 1px !important;
  }

  .oh-card-address-street {
    font-size: 13px !important;
    line-height: 1.14 !important;
  }

  .oh-card-address-locality {
    font-size: 12px !important;
    line-height: 1.14 !important;
  }

  .oh-card-facts {
    order: 3 !important;
    align-self: flex-end !important;
    margin-top: 4px !important;
    font-size: 11.5px !important;
    line-height: 1.12 !important;
    text-align: right !important;
  }

  .oh-card-extra-facts {
    order: 4 !important;
    align-self: flex-end !important;
    margin-top: 2px !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    text-align: right !important;
  }

  .oh-card-subdivision,
  .oh-card-smart-fact {
    display: none !important;
  }

  .oh-card-footer {
    order: 5 !important;
    margin-top: 6px !important;
    font-size: 9.75px !important;
    line-height: 1.1 !important;
  }
}


/* =========================================================
   V100 - small-phone portrait front/back card refinements
   - remove garage and lot size from compact back-face details
   - enlarge price, address, flip button, and brokerage / MLS text
   - move facts to a left-justified block beneath the address
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-card-price-row {
    align-items: center !important;
    gap: 8px !important;
  }

  .oh-card-price-row .oh-card-price,
  .oh-card-price {
    font-size: 19px !important;
    line-height: 1 !important;
  }

  .oh-card-flip-pill {
    min-height: 36px !important;
    padding: 8px 12px !important;
    font-size: 11.5px !important;
  }

  .oh-card-address {
    margin-top: 6px !important;
  }

  .oh-card-address-street {
    font-size: 14.5px !important;
    line-height: 1.14 !important;
    font-weight: 700 !important;
  }

  .oh-card-address-locality {
    font-size: 12.5px !important;
    line-height: 1.15 !important;
  }

  .oh-card-facts {
    order: 3 !important;
    align-self: flex-start !important;
    margin-top: 5px !important;
    font-size: 11.75px !important;
    line-height: 1.18 !important;
    text-align: left !important;
  }

  .oh-card-extra-facts {
    order: 4 !important;
    align-self: flex-start !important;
    margin-top: 2px !important;
    font-size: 10.5px !important;
    line-height: 1.12 !important;
    text-align: left !important;
  }

  .oh-card-footer {
    order: 5 !important;
    margin-top: 6px !important;
    font-size: 10.5px !important;
    line-height: 1.14 !important;
    display: flex !important;
    justify-content: space-between !important;
    gap: 8px !important;
  }

  .oh-card-footer-left,
  .oh-card-footer-right {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .oh-card-back-highlight {
    margin-top: 8px !important;
  }
}


/* =========================================================
   V101 - compact phone single-card refinements
   - pull back-face highlight and action buttons upward after field removal
   - enlarge front-face price, address, flip button, brokerage, and MLS text
   - keep front/back heights matched while trimming unused white space
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-card-list.has-one-card .oh-card,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 362px !important;
    min-height: 362px !important;
    max-height: 362px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 164px !important;
    min-height: 164px !important;
    max-height: 164px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 9px 10px 8px !important;
    gap: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-price-row {
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-price,
  .oh-card-list.has-one-card .oh-card-price-row .oh-card-price {
    font-size: 28px !important;
    line-height: 0.98 !important;
    letter-spacing: -0.02em !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-flip-pill {
    min-height: 38px !important;
    padding: 8px 12px !important;
    font-size: 17px !important;
    line-height: 1 !important;
  }

  .oh-card-list.has-one-card .oh-card-address {
    margin-top: 6px !important;
    gap: 1px !important;
  }

  .oh-card-list.has-one-card .oh-card-address-street {
    font-size: 18px !important;
    line-height: 1.08 !important;
    font-weight: 800 !important;
  }

  .oh-card-list.has-one-card .oh-card-address-locality {
    margin-top: 2px !important;
    font-size: 14px !important;
    line-height: 1.08 !important;
  }

  .oh-card-list.has-one-card .oh-card-facts,
  .oh-card-list.has-one-card .oh-card-extra-facts {
    align-self: flex-start !important;
    width: 100% !important;
    text-align: left !important;
  }

  .oh-card-list.has-one-card .oh-card-facts {
    margin-top: 5px !important;
    font-size: 12px !important;
    line-height: 1.14 !important;
  }

  .oh-card-list.has-one-card .oh-card-extra-facts {
    margin-top: 1px !important;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: 6px !important;
    padding-top: 0 !important;
    font-size: 11.5px !important;
    line-height: 1.08 !important;
    display: flex !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }

  .oh-card-list.has-one-card .oh-card-footer-left,
  .oh-card-list.has-one-card .oh-card-footer-right {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .oh-card-list.has-one-card .oh-card-back {
    padding: 10px !important;
    overflow: hidden !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    gap: 5px !important;
    padding: 0 !important;
    justify-content: flex-start !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    gap: 5px !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    min-height: 40px !important;
    height: 40px !important;
    padding: 6px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    margin-top: 3px !important;
    min-height: 0 !important;
    padding: 7px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight-text {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    font-size: 10px !important;
    line-height: 1.18 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-actions {
    margin-top: 6px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
    align-items: center !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 34px !important;
    height: 34px !important;
    padding: 7px 8px !important;
    font-size: 10px !important;
    width: 100% !important;
    justify-content: center !important;
  }
}


/* =========================================================
   V102 - remove remaining unused vertical space on compact single cards
   - pull highlight and buttons upward on back face
   - trim extra bottom whitespace on front face
   - shorten front/back equally after content shift
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-card-list.has-one-card .oh-card,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 338px !important;
    min-height: 338px !important;
    max-height: 338px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 156px !important;
    min-height: 156px !important;
    max-height: 156px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 8px 10px 6px !important;
    gap: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: 4px !important;
  }

  .oh-card-list.has-one-card .oh-card-back {
    padding: 9px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-inner {
    gap: 4px !important;
    min-height: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back-grid {
    gap: 4px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-detail {
    min-height: 38px !important;
    height: 38px !important;
    padding: 5px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-highlight {
    margin-top: 0 !important;
    flex: 0 0 auto !important;
    padding: 6px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back-actions {
    margin-top: 4px !important;
    gap: 6px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back-full-listing {
    min-height: 32px !important;
    height: 32px !important;
  }
}


/* =========================================================
   V103 - explicitly collapse the removed-field gap on compact single-card backs
   - pull the highlight block directly under the details grid
   - pull action buttons directly under the highlight block
   - shorten front/back card height equally after reclaiming that space
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-card-list.has-one-card .oh-card,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 324px !important;
    min-height: 324px !important;
    max-height: 324px !important;
  }

  .oh-card-list.has-one-card .oh-card-back {
    padding: 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-inner {
    min-height: 0 !important;
    height: 100% !important;
    padding: 0 !important;
    gap: 4px !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-topline {
    min-height: 0 !important;
    margin-bottom: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-grid {
    gap: 4px !important;
    margin: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-detail {
    min-height: 38px !important;
    height: 38px !important;
    padding: 5px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-highlight {
    min-height: 0 !important;
    max-height: none !important;
    margin-top: -1px !important;
    padding: 6px 8px !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-highlight-text {
    margin-top: 0 !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-actions {
    margin-top: 4px !important;
    padding-top: 0 !important;
    gap: 6px !important;
    align-items: center !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-flip-pill,
  .oh-card-list.has-one-card .oh-card-back .oh-card-back-full-listing {
    min-height: 32px !important;
    height: 32px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-image-wrap {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
  }

  .oh-card-list.has-one-card .oh-card-front .oh-card-body {
    padding: 8px 10px 5px !important;
    gap: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-footer {
    margin-top: 3px !important;
    padding-top: 0 !important;
  }
}


/* =========================================================
   V104 - compact phone back-card field restore
   - restore the two removed fields on the back of the phone card
   - use a 2-column / 3-row detail grid so the back card behaves predictably
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-card-list.has-one-card .oh-card,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 362px !important;
    min-height: 362px !important;
    max-height: 362px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(3, 38px) !important;
    gap: 4px !important;
    margin: 0 !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-detail {
    min-height: 38px !important;
    height: 38px !important;
    padding: 5px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-highlight {
    margin-top: 4px !important;
    padding: 6px 8px !important;
  }

  .oh-card-list.has-one-card .oh-card-back .oh-card-back-actions {
    margin-top: 4px !important;
  }
}


/* =========================================================
   V106 - compact phone single-card height reduction from V104
   - start from V104
   - reduce the compact phone single-card height by exactly 20px
   - keep front and back matched at the new height
   ========================================================= */
@media (orientation: portrait) and (max-width: 430px) {
  .oh-card-list.has-one-card .oh-card,
  .oh-card-list.has-one-card .oh-card-flip-inner,
  .oh-card-list.has-one-card .oh-card-face,
  .oh-card-list.has-one-card .oh-card-front,
  .oh-card-list.has-one-card .oh-card-back {
    height: 342px !important;
    min-height: 342px !important;
    max-height: 342px !important;
  }
}
