/*
 * ---------------------------------------------------------------------------
 *  Limelight Realty -- modern RealtyPress styling
 *
 *  Targets RealtyPress Premium v1.9.9.x default markup. Loaded AFTER
 *  typography-overrides.css, so the design tokens defined there
 *  (--lt-font-body, --lt-green-text, --lt-navy, etc.) are available.
 *
 *  Goals:
 *    - Modern listing card design (large photo, clear price hierarchy,
 *      address, beds/baths/sqft, rounded corners, soft shadows, hover).
 *    - Polished bxSlider listing carousel + Bootstrap listing slider.
 *    - Clean listing search form with real tap targets on mobile.
 *    - Branded contact form (panel-ized, generous inputs, primary CTA).
 *    - Mobile-first: stacks neatly < 768px, comfortable spacing,
 *      no overlapping elements, no tiny text, no cramped filters.
 *
 *  Selector specificity: RealtyPress wraps almost everything in
 *  `.bootstrap-realtypress`. We mostly use that single qualifier and
 *  rely on later cascade order. Where we have to beat the plugin's
 *  inline `<style>` injections (which use 4-class selectors), we match
 *  the same depth or use !important sparingly.
 *
 *  Loaded via wp_enqueue_style at priority 1000 in functions.php so it
 *  beats every plugin CSS AND the typography-overrides file.
 * ---------------------------------------------------------------------------
 */

/* ============================================================ Section spacing
 *
 * Standardize the space around RealtyPress sections so they breathe and
 * align with the rest of the homepage. Pages embed widgets/shortcodes
 * via short content blocks, so we apply spacing to widget wrappers and
 * shortcode wrappers directly.
 */
.realtypress-widget,
.rps-contact-form-widget,
.listing-preview-widget,
.rps-city-list-widget,
.rps-property-type-list-widget,
.user-favorites-widget,
.bootstrap-realtypress > .rps-listing-carousel-shortcode,
.bootstrap-realtypress > .rps-listing-preview-shortcode,
.bootstrap-realtypress > .rps-listings,
.bootstrap-realtypress > .rps-listing-slider-shortcode {
  margin-bottom: 48px;
}

.bootstrap-realtypress h3.widget-title,
.bootstrap-realtypress .widget-title {
  font-family: var(--lt-font-display, "Nexa", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 700;
  letter-spacing: -0.005em;
  margin: 0 0 18px;
  color: var(--lt-ink-display, #0f172a);
}

/* ============================================================ Listing cards
 *
 * Affects the GRID variant (listing results page, listings widget,
 * listing-preview shortcode in vertical mode, favourites grid). Targeted
 * via the standard wrapper classes RealtyPress emits.
 */

.bootstrap-realtypress .rps-grid-result,
.bootstrap-realtypress .rps-list-result .rps-property-result,
.bootstrap-realtypress .rps-listing-preview-shortcode,
.bootstrap-realtypress .rps-favorites .rps-favorites-result {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}

.bootstrap-realtypress .rps-grid-result:hover,
.bootstrap-realtypress .rps-list-result .rps-property-result:hover,
.bootstrap-realtypress .rps-listing-preview-shortcode:hover,
.bootstrap-realtypress .rps-favorites .rps-favorites-result:hover {
  transform: translateY(-2px);
  border-color: #d6e3da;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.10);
}

/* Listing photo — bigger, more cinematic. */
.bootstrap-realtypress .rps-grid-result .rps-property-photo,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-photo,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-photo,
.bootstrap-realtypress .rps-favorites .rps-favorites-result .rps-property-photo {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: #f3f4f6;
  border-radius: 0;
}

.bootstrap-realtypress .rps-grid-result .rps-property-photo img,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-photo img,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-photo img,
.bootstrap-realtypress .rps-favorites .rps-favorites-result .rps-property-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.bootstrap-realtypress .rps-grid-result:hover .rps-property-photo img,
.bootstrap-realtypress .rps-list-result .rps-property-result:hover .rps-property-photo img,
.bootstrap-realtypress .rps-listing-preview-shortcode:hover .rps-property-photo img,
.bootstrap-realtypress .rps-favorites .rps-favorites-result:hover .rps-property-photo img {
  transform: scale(1.04);
}

/* Property info block. */
.bootstrap-realtypress .rps-grid-result .rps-property-info,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-info,
.bootstrap-realtypress .rps-favorites .rps-favorites-result .rps-property-info {
  padding: 18px 18px 20px;
  background: #fff !important;
  border: 0 !important;
}

.bootstrap-realtypress .rps-grid-result .rps-property-info .price,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info .price,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-info .price,
.bootstrap-realtypress .rps-favorites .rps-favorites-result .rps-property-info .price {
  font-family: var(--lt-font-display, "Nexa", "Inter", sans-serif);
  font-size: 22px;
  font-weight: 700;
  color: var(--lt-ink-display, #0f172a);
  letter-spacing: -0.005em;
  margin: 0 0 6px;
  line-height: 1.15;
}

.bootstrap-realtypress .rps-grid-result .rps-property-info .address,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info .address,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-info .address,
.bootstrap-realtypress .rps-favorites .rps-favorites-result .rps-property-info .address {
  font-size: 16px;
  font-weight: 600;
  color: var(--lt-ink-display, #0f172a) !important;
  margin: 0 0 2px;
  line-height: 1.35;
}

.bootstrap-realtypress .rps-grid-result .rps-property-info .city-province-postalcode,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info .city-province-postalcode,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-info .city-province-postalcode,
.bootstrap-realtypress .rps-favorites .rps-favorites-result .rps-property-info .city-province-postalcode {
  font-size: 14px !important;
  color: var(--lt-ink-mute, #5b6470) !important;
  font-weight: 500;
  margin: 0 0 12px;
}

/* Beds / baths / sqft strip. */
.bootstrap-realtypress .rps-grid-result .rps-property-info .rps-result-feature-label,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info .rps-result-feature-label,
.bootstrap-realtypress .rps-listing-preview-shortcode .rps-property-info .rps-result-feature-label,
.bootstrap-realtypress .rps-result-feature-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  background: #f6f7f8;
  border: 1px solid #ececec;
  border-radius: 999px;
  padding: 4px 10px;
  margin-right: 6px;
  margin-bottom: 6px;
  letter-spacing: 0.01em;
}

.bootstrap-realtypress .rps-result-feature-label-sm {
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  padding: 3px 9px;
  margin-right: 6px;
  letter-spacing: 0.01em;
}

/* "SOLD" badge styling (the legacy h3 in carousel templates). */
.bootstrap-realtypress .price h3,
.bootstrap-realtypress .slider-price {
  display: inline-block;
  font-family: var(--lt-font-display, "Nexa", "Inter", sans-serif);
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  background: var(--lt-green-text, #0e7a26);
  padding: 4px 12px;
  border-radius: 6px;
  letter-spacing: 0.04em;
  margin: 0;
}

/* Favourites button (heart) sitting on the listing card. */
.bootstrap-realtypress .rps-favorites-button-pill,
.bootstrap-realtypress .rps-favorites-add,
.bootstrap-realtypress .rps-favorites-remove {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.10);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--lt-ink-soft, #374151);
  font-size: 16px;
  transition: background-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
}

.bootstrap-realtypress .rps-favorites-button-pill:hover,
.bootstrap-realtypress .rps-favorites-add:hover,
.bootstrap-realtypress .rps-favorites-remove:hover {
  background: #fff;
  color: #c81d4a;
  transform: scale(1.08);
}

.bootstrap-realtypress .rps-favorites-remove,
.bootstrap-realtypress .rps-favorites-button-pill.is-favourite {
  color: #c81d4a;
}

/* Status pill (For Sale / Sold / etc) overlaid on photo. */
.bootstrap-realtypress .rps-grid-result .rps-property-photo:before,
.bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-photo:before {
  content: "";
}

/* ============================================================ Responsive grid
 *
 * RealtyPress emits a Bootstrap 3 grid (.col-lg-3 .col-md-4 .col-sm-6),
 * which is fine but the gutters are tight. Pad the columns and let the
 * cards' rounded corners/shadows breathe.
 */
.bootstrap-realtypress .rps-grid .row,
.bootstrap-realtypress .rps-list .row {
  margin-left: -12px;
  margin-right: -12px;
}

.bootstrap-realtypress .rps-grid .row > [class^="col-"],
.bootstrap-realtypress .rps-list .row > [class^="col-"] {
  padding-left: 12px;
  padding-right: 12px;
}

/* ============================================================ Listing carousel (bxSlider)
 */

.bootstrap-realtypress .rps-listing-carousel-shortcode .panel,
.bootstrap-realtypress .rps-listing-carousel .panel {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.bootstrap-realtypress .rps-listing-carousel-shortcode .panel-heading,
.bootstrap-realtypress .rps-listing-carousel .panel-heading {
  background: transparent;
  border: 0;
  padding: 0 0 14px;
}

.bootstrap-realtypress .rps-listing-carousel-shortcode .panel-heading strong,
.bootstrap-realtypress .rps-listing-carousel .panel-heading strong {
  font-family: var(--lt-font-display, "Nexa", "Inter", sans-serif);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 700;
  color: var(--lt-ink-display, #0f172a);
  letter-spacing: -0.005em;
}

.bootstrap-realtypress .rps-listing-carousel-shortcode .panel-body,
.bootstrap-realtypress .rps-listing-carousel .panel-body {
  padding: 0;
  background: transparent;
}

.bootstrap-realtypress .bx-slider .slide {
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #ececec;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  margin-right: 14px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.bootstrap-realtypress .bx-slider .slide:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.10);
}

.bootstrap-realtypress .bx-slider .slide-link {
  position: relative;
  display: block;
  color: inherit;
  text-decoration: none;
}

.bootstrap-realtypress .bx-slider .slide-link img {
  width: 100%;
  height: auto;
  display: block;
}

/* No-results message (used by the new no_results_message parameter). */
.bootstrap-realtypress .rps-listing-carousel-shortcode .text-center,
.bootstrap-realtypress .rps-listing-slider-shortcode .text-center,
.bootstrap-realtypress .rps-listing-preview-shortcode .text-center {
  background: #f7f8f9;
  border: 1px dashed #d8dadd;
  border-radius: 12px;
  padding: 36px 24px;
  color: var(--lt-ink-soft, #374151);
  font-size: 16px;
  line-height: 1.6;
}

/* ============================================================ Listing slider (Bootstrap carousel)
 */

.bootstrap-realtypress .rps-listing-slider-shortcode {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
  background: #000;
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-inner > .item {
  position: relative;
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-inner > .item > a > img {
  width: 100%;
  height: clamp(280px, 50vw, 520px);
  object-fit: cover;
  display: block;
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-caption {
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.65) 100%);
  text-align: left;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 32px 36px;
  text-shadow: none;
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-caption .slider-price {
  display: inline-block;
  font-family: var(--lt-font-display, "Nexa", "Inter", sans-serif);
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.005em;
  margin: 0 0 6px;
  background: transparent;
  padding: 0;
  border-radius: 0;
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-caption p {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.92);
  margin: 0 0 10px;
  line-height: 1.45;
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-control {
  width: 56px;
  background: transparent;
  opacity: 0.85;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-control.left:before,
.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-control.right:before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: var(--lt-ink-display, #0f172a);
  font-family: "FontAwesome", sans-serif;
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-control.left:before  { content: "\f104"; left: 16px;  }
.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-control.right:before { content: "\f105"; right: 16px; }

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-indicators li {
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.0);
}

.bootstrap-realtypress .rps-listing-slider-shortcode .carousel-indicators li.active {
  background: #fff;
}

/* ============================================================ Listing search form
 *
 * Big, friendly inputs. Standard Bootstrap 3 .form-control + plugin
 * filter rows.
 */

.bootstrap-realtypress .rps-listing-search-form,
.bootstrap-realtypress .rps-listing-search-shortcode-form,
.bootstrap-realtypress .rps-listing-search-form-shortcode {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 14px;
  padding: 22px 22px 18px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}

.bootstrap-realtypress .rps-listing-search-form .panel,
.bootstrap-realtypress .rps-listing-search-shortcode-form .panel {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.bootstrap-realtypress .rps-listing-search-form .panel-heading,
.bootstrap-realtypress .rps-listing-search-shortcode-form .panel-heading {
  background: transparent;
  border: 0;
  padding: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
}

.bootstrap-realtypress .rps-listing-search-form .panel-body,
.bootstrap-realtypress .rps-listing-search-shortcode-form .panel-body {
  padding: 0;
}

.bootstrap-realtypress .rps-listing-search-form label,
.bootstrap-realtypress .rps-listing-search-shortcode-form label {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--lt-ink-soft, #374151);
}

.bootstrap-realtypress .rps-listing-search-form .form-control,
.bootstrap-realtypress .rps-listing-search-form select,
.bootstrap-realtypress .rps-listing-search-form input[type="text"],
.bootstrap-realtypress .rps-listing-search-shortcode-form .form-control,
.bootstrap-realtypress .rps-listing-search-shortcode-form select,
.bootstrap-realtypress .rps-listing-search-shortcode-form input[type="text"] {
  height: 46px;
  font-size: 16px;
  border-radius: 10px;
}

/* "Search" submit button on listing search forms. */
.bootstrap-realtypress .rps-listing-search-form button[type="submit"],
.bootstrap-realtypress .rps-listing-search-shortcode-form button[type="submit"] {
  background: var(--lt-navy, #2d3b4f);
  border-color: var(--lt-navy, #2d3b4f);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  height: 46px;
  padding: 0 24px;
  border-radius: 10px;
  letter-spacing: 0.02em;
  text-transform: none;
  transition: background-color 0.18s ease, transform 0.12s ease;
}

.bootstrap-realtypress .rps-listing-search-form button[type="submit"]:hover,
.bootstrap-realtypress .rps-listing-search-shortcode-form button[type="submit"]:hover {
  background: var(--lt-green-text, #0e7a26);
  border-color: var(--lt-green-text, #0e7a26);
}

/* ============================================================ Contact form
 */

.bootstrap-realtypress .rps-contact-form .panel,
.bootstrap-realtypress .rps-contact-form-widget .panel {
  border: 1px solid #ececec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
  overflow: hidden;
}

.bootstrap-realtypress .rps-contact-form .panel-heading {
  background: transparent;
  border: 0;
  padding: 22px 22px 8px;
}

.bootstrap-realtypress .rps-contact-form .panel-heading strong {
  font-family: var(--lt-font-display, "Nexa", "Inter", sans-serif);
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: 700;
  color: var(--lt-ink-display, #0f172a);
  letter-spacing: -0.005em;
  display: block;
  margin-bottom: 4px;
}

.bootstrap-realtypress .rps-contact-form .panel-body {
  padding: 14px 22px 8px;
}

.bootstrap-realtypress .rps-contact-form .panel-footer {
  background: transparent;
  border: 0;
  padding: 12px 22px 22px;
}

.bootstrap-realtypress .rps-contact-form .form-group label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--lt-ink-soft, #374151);
  margin-bottom: 6px;
}

.bootstrap-realtypress .rps-contact-form .form-control {
  height: 46px;
  font-size: 16px;
  border-radius: 10px;
  border-color: #d6dadf;
}

.bootstrap-realtypress .rps-contact-form textarea.form-control {
  height: 130px;
  padding-top: 12px;
}

.bootstrap-realtypress .rps-contact-form .panel-footer .btn-primary {
  background: var(--lt-navy, #2d3b4f);
  border-color: var(--lt-navy, #2d3b4f);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  height: 50px;
  border-radius: 10px;
  letter-spacing: 0.02em;
  transition: background-color 0.18s ease, transform 0.12s ease;
}

.bootstrap-realtypress .rps-contact-form .panel-footer .btn-primary:hover,
.bootstrap-realtypress .rps-contact-form .panel-footer .btn-primary:focus {
  background: var(--lt-green-text, #0e7a26);
  border-color: var(--lt-green-text, #0e7a26);
  color: #fff;
}

/* Math captcha row -- give it room to breathe. */
.bootstrap-realtypress #math-quiz {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--lt-ink-soft, #374151);
}

.bootstrap-realtypress #math-quiz input[type="text"] {
  width: 110px;
  flex: 0 0 auto;
}

.bootstrap-realtypress #math-quiz .refresh-math-captcha {
  font-size: 13px;
  color: var(--lt-ink-mute, #5b6470);
}

/* Inline alerts after submit. */
.bootstrap-realtypress .rps-contact-alerts:not(:empty) {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #fff7ed;
  border: 1px solid #fcd9b6;
  color: #7c2d12;
  font-size: 14px;
  line-height: 1.5;
}

/* ============================================================ Lists / panels
 *  Used by city-list + property-types widgets.
 */
.bootstrap-realtypress .rps-city-list-widget .panel,
.bootstrap-realtypress .rps-property-type-list-widget .panel,
.rps-city-list-widget .panel,
.rps-property-type-list-widget .panel {
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  background: #fff;
}

.bootstrap-realtypress .rps-city-list-widget .panel-heading,
.bootstrap-realtypress .rps-property-type-list-widget .panel-heading {
  background: #fafbfc;
  border-bottom: 1px solid #eceff2;
  border-radius: 12px 12px 0 0;
  padding: 14px 18px;
  font-size: 15px;
  font-weight: 700;
  color: var(--lt-ink-display, #0f172a);
}

.bootstrap-realtypress .rps-city-list-widget .panel-body,
.bootstrap-realtypress .rps-property-type-list-widget .panel-body {
  padding: 8px 6px;
}

.bootstrap-realtypress .city-list,
.bootstrap-realtypress .property-types-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
}

.bootstrap-realtypress .city-list li,
.bootstrap-realtypress .property-types-list li {
  margin: 0;
}

.bootstrap-realtypress .city-list li a,
.bootstrap-realtypress .property-types-list li a {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f4f6f8;
  border: 1px solid #e7eaee;
  color: var(--lt-ink-soft, #374151);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.15s ease;
}

.bootstrap-realtypress .city-list li a:hover,
.bootstrap-realtypress .property-types-list li a:hover {
  background: var(--lt-green-text, #0e7a26);
  border-color: var(--lt-green-text, #0e7a26);
  color: #fff !important;
  text-decoration: none;
}

/* ============================================================ Mobile responsiveness
 *
 * RealtyPress emits a lot of legacy Bootstrap 3 markup. We force key
 * elements to stack & stay tappable below 768px.
 */

@media (max-width: 991px) {
  .bootstrap-realtypress .rps-listing-search-form .col-sm-3,
  .bootstrap-realtypress .rps-listing-search-shortcode-form .col-sm-3 {
    margin-bottom: 8px;
  }

  .bootstrap-realtypress .rps-listing-slider-shortcode .carousel-caption {
    padding: 22px 24px;
  }
}

@media (max-width: 767px) {
  .bootstrap-realtypress .rps-grid-result,
  .bootstrap-realtypress .rps-list-result .rps-property-result,
  .bootstrap-realtypress .rps-listing-preview-shortcode {
    margin-bottom: 18px;
  }

  /* Stack list-style results vertically on phones. */
  .bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-photo,
  .bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info {
    width: 100%;
    float: none;
    display: block;
  }

  .bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-photo {
    aspect-ratio: 16 / 10;
  }

  /* Bigger tap targets on contact + search forms. */
  .bootstrap-realtypress .rps-contact-form .form-control,
  .bootstrap-realtypress .rps-listing-search-form .form-control,
  .bootstrap-realtypress .rps-listing-search-shortcode-form .form-control {
    height: 48px;
    font-size: 16px;       /* prevents iOS focus zoom */
  }

  .bootstrap-realtypress .rps-contact-form .panel-heading,
  .bootstrap-realtypress .rps-contact-form .panel-body,
  .bootstrap-realtypress .rps-contact-form .panel-footer {
    padding-left: 16px;
    padding-right: 16px;
  }

  .bootstrap-realtypress .rps-listing-slider-shortcode .carousel-caption {
    padding: 18px 18px;
  }

  .bootstrap-realtypress .rps-listing-slider-shortcode .carousel-caption p {
    font-size: 14px;
  }

  .bootstrap-realtypress .rps-listing-slider-shortcode .carousel-control {
    width: 44px;
  }

  .bootstrap-realtypress .rps-grid-result .rps-property-info,
  .bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info {
    padding: 14px 14px 16px;
  }

  .bootstrap-realtypress .rps-grid-result .rps-property-info .price,
  .bootstrap-realtypress .rps-list-result .rps-property-result .rps-property-info .price {
    font-size: 20px;
  }

  /* Pill chips: keep them readable. */
  .bootstrap-realtypress .rps-result-feature-label {
    font-size: 12.5px;
    padding: 3px 9px;
  }
}

/* ============================================================ Single-listing page footer CTA
 *
 * Styling for the .lt-listing-footer__cta panel that the
 * limelight-rp-overrides mu-plugin injects after every single listing.
 */

.lt-listing-footer__cta {
  margin: 36px 0 24px;
  padding: 28px 32px;
  background: linear-gradient(135deg, var(--lt-navy, #2d3b4f) 0%, #15263d 100%);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
  color: #fff;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
}

.lt-listing-footer__cta-text h3 {
  font-family: var(--lt-font-display, "Nexa", "Inter", sans-serif);
  font-size: clamp(20px, 2vw, 26px);
  margin: 0 0 6px;
  color: #fff;
  font-weight: 700;
  letter-spacing: -0.005em;
}

.lt-listing-footer__cta-text p {
  font-size: 15px;
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.55;
}

.lt-listing-footer__cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.lt-listing-footer__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  letter-spacing: 0.01em;
  line-height: 1;
  transition: background-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
}

.lt-listing-footer__btn--primary {
  background: var(--lt-green-text, #0e7a26);
  color: #fff !important;
}

.lt-listing-footer__btn--primary:hover,
.lt-listing-footer__btn--primary:focus {
  background: var(--lt-green-strong, #0a5d1d);
  color: #fff !important;
  transform: translateY(-1px);
}

.lt-listing-footer__btn--secondary {
  background: rgba(255, 255, 255, 0.10);
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.30);
}

.lt-listing-footer__btn--secondary:hover,
.lt-listing-footer__btn--secondary:focus {
  background: rgba(255, 255, 255, 0.18);
  color: #fff !important;
}

@media (max-width: 600px) {
  .lt-listing-footer__cta {
    padding: 22px 20px;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .lt-listing-footer__cta-buttons {
    justify-content: center;
  }
  .lt-listing-footer__btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* ============================================================ Print
 */

@media print {
  .bootstrap-realtypress .rps-grid-result,
  .bootstrap-realtypress .rps-list-result .rps-property-result {
    box-shadow: none;
    border: 1px solid #ccc;
    page-break-inside: avoid;
  }
  .lt-listing-footer__cta { display: none; }
}
