/**
 * Listing cards — pro CTA row + save heart (all surfaces)
 * v20260704
 */

.premium-card,
.zillow-card.listing-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.premium-card-body,
.zillow-card.listing-card > .zillow-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.premium-card-body .zillow-card-info,
.zillow-card-body > .zillow-card-info {
  flex: 1 1 auto;
  min-height: 0;
}

/* Save heart — top right */
.listing-card-save,
.zillow-card-save {
  position: absolute !important;
  top: 0.5rem !important;
  right: 0.5rem !important;
  z-index: 4 !important;
  width: 2rem !important;
  height: 2rem !important;
  min-width: 2rem !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  color: #6b7280 !important;
  font-size: 0.95rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: 0 2px 10px rgba(7, 21, 38, 0.12) !important;
  transition: transform 0.15s ease, color 0.15s ease, background 0.15s ease !important;
}

.listing-card-save:hover,
.zillow-card-save:hover {
  transform: scale(1.08) !important;
  color: #c9a227 !important;
  background: #fff !important;
}

.listing-card-save.is-saved,
.zillow-card-save.is-saved {
  color: #dc2626 !important;
}

/* CTA row */
.listing-card-actions,
.zillow-card-actions {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  gap: 0.5rem !important;
  margin-top: auto !important;
  padding-top: 0.75rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.listing-card-btn {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 0.65rem 0.75rem !important;
  border-radius: 8px !important;
  font-family: inherit !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.01em !important;
  text-align: center !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease !important;
  white-space: nowrap !important;
}

.listing-card-btn--outline,
.listing-card-actions .btn-view-details {
  border: 2px solid #071526 !important;
  background: #fff !important;
  color: #071526 !important;
}

.listing-card-btn--outline:hover,
.listing-card-actions .btn-view-details:hover {
  background: #f8fafc !important;
  border-color: #0f2744 !important;
  box-shadow: 0 4px 14px rgba(7, 21, 38, 0.1) !important;
  transform: translateY(-1px) !important;
  color: #071526 !important;
}

.listing-card-btn--primary,
.listing-card-actions .btn-schedule-tour,
.listing-card-actions .btn-gold-outline[data-schedule-showing] {
  border: 2px solid #c9a227 !important;
  background: linear-gradient(180deg, #d4af37 0%, #c9a227 100%) !important;
  color: #071526 !important;
  box-shadow: 0 4px 14px rgba(201, 162, 39, 0.35) !important;
}

.listing-card-btn--primary:hover,
.listing-card-actions .btn-schedule-tour:hover,
.listing-card-actions .btn-gold-outline[data-schedule-showing]:hover {
  background: linear-gradient(180deg, #e0bc42 0%, #d4af37 100%) !important;
  box-shadow: 0 6px 20px rgba(201, 162, 39, 0.45) !important;
  transform: translateY(-1px) !important;
  color: #071526 !important;
}

/* Ensure CTAs stay clickable above card overlays */
.listing-card-actions {
  position: relative !important;
  z-index: 5 !important;
  pointer-events: auto !important;
}

.listing-card-actions a,
.listing-card-actions button,
.listing-card-actions .listing-card-btn,
.listing-card-actions .btn-sm {
  position: relative !important;
  z-index: 6 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

a.listing-card-btn--outline,
a.btn-view-details {
  text-decoration: none !important;
}

/* Similar / carousel cards */
.featured-carousel .listing-card-actions,
.lp-similar-track .listing-card-actions,
.homes-list--zillow .listing-card-actions {
  gap: 10px !important;
}

.lp-similar-track > .premium-card .premium-card-meta,
.lp-similar-track > .premium-card .zillow-card-meta {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Mobile: stack View details + Schedule tour; desktop stays side-by-side */
@media (max-width: 768px) {
  .site-zillow .listing-card-actions,
  .site-zillow .zillow-card-actions,
  .site-premium .listing-card-actions,
  .site-premium .zillow-card-actions {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0.4rem !important;
    padding-top: 0.5rem !important;
  }

  .site-zillow .listing-card-btn,
  .site-zillow .listing-card-actions .btn-view-details,
  .site-zillow .listing-card-actions .btn-schedule-tour,
  .site-premium .listing-card-btn,
  .site-premium .listing-card-actions .btn-view-details,
  .site-premium .listing-card-actions .btn-schedule-tour {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    min-height: 42px !important;
    padding: 0.55rem 0.65rem !important;
    font-size: 0.78rem !important;
    white-space: nowrap !important;
  }

  .site-zillow .featured-carousel--luxury .zillow-card-actions,
  .site-zillow .featured-carousel .listing-card-actions {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: unset !important;
    gap: 0.4rem !important;
  }
}

@media (min-width: 769px) {
  body:not(.homes-search-page) .site-zillow .listing-card-actions,
  body:not(.homes-search-page) .site-zillow .zillow-card-actions {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }
}
