/**
 * Mobile property cards — Zillow-style compact layout, carousel peek, CTA clearance.
 * Load after layout-fixes / swmo-refine. v20260518
 */
@media (max-width: 768px) {
  :root {
    --swmo-mobile-card-w: min(78vw, 288px);
    --swmo-mobile-card-gap: 0.85rem;
    --swmo-mobile-cta-clear: calc(5rem + env(safe-area-inset-bottom, 0px));
  }

  /* Sticky expert bar — room for last card + safe area */
  body.has-expert-cta {
    padding-bottom: var(--swmo-mobile-cta-clear);
  }

  body.has-expert-cta main {
    padding-bottom: 0.35rem;
  }

  /* —— Horizontal carousels (featured, luxury, map rail) —— */
  .featured-band--carousel .section-inner,
  .featured-band--carousel > .container {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
    overflow: visible;
  }

  .featured-carousel,
  .map-listing-rail,
  .listing-discovery-track {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: var(--swmo-mobile-card-gap);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0.65rem;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding: 0.25rem 0.65rem 0.55rem;
    margin-inline: -0.65rem;
    scrollbar-width: none;
  }

  .featured-carousel::-webkit-scrollbar,
  .map-listing-rail::-webkit-scrollbar {
    display: none;
    height: 0;
  }

  .featured-carousel > *,
  .featured-carousel .premium-card,
  .map-listing-rail .premium-card,
  .listing-discovery-track .premium-card {
    flex: 0 0 var(--swmo-mobile-card-w);
    width: var(--swmo-mobile-card-w);
    max-width: var(--swmo-mobile-card-w);
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
  }

  .featured-carousel .premium-card-photo,
  .map-listing-rail .premium-card-photo {
    aspect-ratio: 4 / 3;
    max-height: 168px;
  }

  .featured-carousel .premium-card-body,
  .map-listing-rail .premium-card-body {
    padding: 0.48rem 0.58rem 0.52rem;
  }

  .featured-carousel .premium-card-price,
  .map-listing-rail .premium-card-price {
    font-size: 0.96rem;
    line-height: 1.25;
    margin: 0;
  }

  .featured-carousel .premium-card-address,
  .map-listing-rail .premium-card-address {
    font-size: 0.76rem;
    line-height: 1.35;
    margin: 0.12rem 0 0;
  }

  .featured-carousel .premium-card-meta,
  .map-listing-rail .premium-card-meta {
    font-size: 0.7rem;
    margin: 0.1rem 0 0;
  }

  /* —— Search results: vertical list, inset narrower cards —— */
  .search-results > .container,
  .zillow-list-col.list-view {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .site-premium .homes-list--zillow:not(.homes-list--grid),
  .homes-list--zillow:not(.homes-list--grid) {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--swmo-mobile-card-gap);
    width: 100%;
    max-width: 100%;
    padding: 0.35rem 0 var(--swmo-mobile-cta-clear);
    overflow-x: hidden;
    overflow-y: visible;
    box-sizing: border-box;
  }

  body.homes-search-page #homes-list.homes-list--zillow.homes-list--grid {
    display: grid !important;
    align-items: stretch !important;
    padding: 0 0.35rem var(--swmo-mobile-cta-clear) !important;
  }

  #homepage-preview-grid.homepage-preview-grid.homes-list--zillow,
  .homepage-preview-grid.homes-list--grid,
  body.homes-search-page #homes-list.homes-list--zillow.homes-list--grid {
    display: grid !important;
    flex-direction: unset !important;
    align-items: stretch !important;
    max-height: none !important;
    overflow-y: visible !important;
  }

  body.homes-search-page #homes-list.homes-list--zillow.homes-list--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.65rem !important;
    padding: 0 0.35rem !important;
  }

  body.homes-search-page .homes-list--zillow .zillow-card:not(.zillow-card--skeleton) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .homes-list--zillow .zillow-card:not(.zillow-card--skeleton) {
    width: 100%;
    max-width: min(100%, 336px);
    margin-inline: auto;
    box-sizing: border-box;
    border-radius: 11px;
    box-shadow: 0 1px 5px rgba(7, 21, 38, 0.07);
  }

  body.homes-search-page .homes-list--zillow .zillow-card-photo-wrap,
  body.homes-search-page .homes-list--zillow .zillow-card-photo-btn {
    aspect-ratio: 4 / 3;
    max-height: 118px;
    min-height: 0;
  }

  body.homes-search-page .homes-list--zillow .zillow-card-photo-btn img {
    aspect-ratio: 4 / 3;
    max-height: 118px;
    object-fit: cover;
  }

  .homes-list--zillow .zillow-card-photo-wrap,
  .homes-list--zillow .zillow-card-photo-btn {
    aspect-ratio: 16 / 9;
    max-height: 188px;
    min-height: 0;
  }

  .homes-list--zillow .zillow-card-photo-btn img {
    aspect-ratio: 16 / 9;
    max-height: 188px;
    object-fit: cover;
  }

  .homes-list--zillow .zillow-card-body {
    padding: 0.48rem 0.62rem 0.58rem;
  }

  .homes-list--zillow .zillow-card-price {
    font-size: 1rem;
    line-height: 1.25;
    margin: 0;
  }

  .homes-list--zillow .zillow-card-address {
    font-size: 0.8rem;
    line-height: 1.35;
    margin: 0.1rem 0 0;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }

  .homes-list--zillow .zillow-card-meta {
    font-size: 0.74rem;
    margin: 0.08rem 0 0;
  }

  .homes-list--zillow .zillow-card-idx,
  .homes-list--zillow .zillow-card-courtesy {
    font-size: 0.66rem;
    margin-top: 0.15rem;
  }

  .homes-list--zillow .zillow-card-actions {
    margin-top: 0.38rem;
    gap: 0.32rem;
  }

  .homes-list--zillow .zillow-card-actions .btn-sm {
    font-size: 0.68rem;
    padding: 0.3rem 0.48rem;
  }

  .homes-list--zillow .zillow-card--skeleton {
    max-width: min(100%, 336px);
    margin-inline: auto;
    width: 100%;
  }

  .homes-list--zillow .zillow-card--skeleton .card-skel-thumb {
    aspect-ratio: 16 / 9;
    max-height: 188px;
  }

  .site-premium .homes-list-more,
  .homes-list-more,
  .homes-pagination {
    max-width: min(100%, 336px);
    width: calc(100% - 0.5rem);
    margin-inline: auto;
  }

  /* Results panel — extra clearance above sticky CTA */
  #search-results.search-results,
  .search-results.results-wrapper {
    padding-bottom: 0.35rem;
  }

  .search-results .zillow-explorer {
    margin-bottom: 0.15rem;
  }

  .zillow-list-col {
    padding-bottom: 0.25rem;
  }

  .list-scroll-sentinel {
    min-height: calc(var(--swmo-mobile-cta-clear) * 0.35);
  }
}

@media (max-width: 400px) {
  :root {
    --swmo-mobile-card-w: min(82vw, 268px);
  }

  .homes-list--zillow .zillow-card:not(.zillow-card--skeleton) {
    max-width: min(100%, 320px);
  }
}
