/* Limelight London Listings — pager chrome; cards come from RealtyPress grid */

.ll-london-listings {
  position: relative;
}

.ll-london-listings.is-loading .ll-london-listings__grid {
  opacity: 0.45;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.ll-london-listings__pager {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
  margin: 1.25rem 0 0;
}

.ll-london-listings__pager[hidden] {
  display: none !important;
}

.ll-london-listings__page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  text-decoration: none;
  color: inherit;
  font-size: 0.9rem;
  line-height: 1.2;
}

.ll-london-listings__page-btn.is-current {
  font-weight: 700;
  border-color: currentColor;
}

.ll-london-listings__page-btn.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}

.ll-london-listings__ellipsis {
  opacity: 0.6;
  padding: 0 0.15rem;
}

.ll-london-listings__status:empty {
  display: none;
}

.ll-london-listings__status:not(:empty) {
  text-align: center;
  margin-top: 0.75rem;
  font-size: 0.9rem;
  opacity: 0.8;
}

/* RP grid still emits its own pager markup sometimes — keep ours authoritative */
.ll-london-listings .result-pagination {
  display: none !important;
}

/* -------------------------------------------------------------------------
 * Equal-height cards (CSS only; scoped to this shortcode)
 *
 * Bootstrap 3 rows float columns by default. Flex + height:100% makes every
 * card in a visual row match the tallest sibling without fixed heights or
 * cropping listing text. Images keep their natural aspect ratio.
 * ---------------------------------------------------------------------- */

/* Stretch columns within each results row */
.ll-london-listings .rps-grid-result > .row,
.ll-london-listings .rps-grid-result .row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}

/* Bootstrap clearfix breakers still force a new flex line (= visual row) */
.ll-london-listings .row > .clearfix {
  flex: 0 0 100%;
  width: 100%;
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
}

/* Grid item fills the stretched column */
.ll-london-listings .listing-container {
  display: flex;
  flex-direction: column;
}

/* Default-theme card shell */
.ll-london-listings .rps-property-result {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  width: 100%;
}

/* Keep photo block at its natural height / aspect ratio */
.ll-london-listings .rps-property-result > .image-holder,
.ll-london-listings .rps-grid-card__image-wrap {
  flex: 0 0 auto;
}

/* Body grows; push features (beds/baths/etc.) to a shared baseline */
.ll-london-listings .rps-property-info {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.ll-london-listings .rps-property-info > .rps-result-features {
  margin-top: auto;
}

/* Modern-theme card shell (if/when active theme switches) */
.ll-london-listings .rps-card.rps-grid-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  width: 100%;
}

.ll-london-listings .rps-grid-card__body,
.ll-london-listings .rps-grid-card__content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* Sidebar-right layout (Listings /properties page) */
.ll-london-listings--sidebar-right .ll-london-listings__shell {
  width: 100%;
}

.ll-london-listings--sidebar-right .ll-london-listings__grid {
  min-height: 2rem;
}

.ll-london-listings__empty {
  margin: 1rem 0;
  opacity: 0.85;
}
