
  /* ============================================================
     STAMPEDE REALTY 2.0 — Phase 1 design system (cards + grid + mobile)
     A clean, intentional layer applied OVER the existing engine. Scoped
     with .sr- classes so it can't fight the legacy styles. Apple-tier:
     one spacing scale, the site's Inter/Cormorant, restrained gold, soft
     depth, 16px radii, motion that respects reduced-motion.
     ============================================================ */
  :root{
    --sr-gap: 18px;
    --sr-radius: 16px;
    --sr-card-bg: var(--surface-2, #15161c);
    --sr-card-border: var(--border, rgba(255,255,255,0.09));
    --sr-shadow: 0 1px 3px rgba(0,0,0,0.18);
    --sr-shadow-hover: 0 14px 38px rgba(0,0,0,0.30);
    --sr-ink: var(--text-bright, #f5f0e6);
    --sr-ink-mid: var(--text-mid, #a7a290);
    --sr-ink-dim: var(--text-dim, #7d7868);
    --sr-good: #16a34a;
    --sr-good-soft: rgba(22,163,74,0.12);
    --sr-gold: var(--gold, #d4af37);
  }
  /* ── Results grid ── */
  #mlsGrid.sr-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:var(--sr-gap);
    align-items:start;
  }
  @media(max-width:640px){
    #mlsGrid.sr-grid{ grid-template-columns:1fr; gap:14px; }
  }

  /* ── Card ── */
  .sr-card{
    position:relative;
    background:var(--sr-card-bg);
    border:1px solid var(--sr-card-border);
    border-radius:var(--sr-radius);
    overflow:hidden;
    box-shadow:var(--sr-shadow);
    transition:transform .18s cubic-bezier(.2,.7,.2,1), box-shadow .18s ease, border-color .18s ease;
    display:flex; flex-direction:column;
  }
  @media(hover:hover){ .sr-card:hover{ transform:translateY(-3px); box-shadow:var(--sr-shadow-hover); border-color:rgba(212,175,55,0.4); } }
  .sr-card a.sr-card-link{ text-decoration:none; color:inherit; display:flex; flex-direction:column; flex:1; }

  .sr-photo{ position:relative; aspect-ratio:16/10; background:#0e0f13; overflow:hidden; }
  .sr-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s cubic-bezier(.2,.7,.2,1); }
  @media(hover:hover){ .sr-card:hover .sr-photo img{ transform:scale(1.045); } }
  .sr-photo-none{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#5a5a5a; font-size:.82rem; }
  .sr-photo::after{ content:""; position:absolute; inset:auto 0 0 0; height:38%; background:linear-gradient(to top,rgba(0,0,0,0.45),transparent); pointer-events:none; }

  /* status badges (top-left stack) */
  .sr-badges{ position:absolute; top:12px; left:12px; z-index:3; display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
  .sr-badge{ font-size:.66rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:4px 9px; border-radius:999px; color:#fff; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
  .sr-badge.new{ background:rgba(22,163,74,0.92); }
  .sr-badge.drop{ background:rgba(220,38,38,0.92); }
  .sr-badge.oh{ background:rgba(37,99,235,0.92); }
  .sr-badge.hot{ background:rgba(234,88,12,0.92); }

  /* action buttons (top-right) */
  .sr-actions{ position:absolute; top:10px; right:10px; z-index:4; display:flex; flex-direction:column; gap:8px; }
  .sr-iconbtn{
    width:40px; height:40px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(12,14,20,0.55); color:#fff; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    display:flex; align-items:center; justify-content:center; font-size:1.05rem;
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:background .15s, transform .12s;
  }
  .sr-iconbtn:active{ transform:scale(.9); }
  .sr-iconbtn.on-fav{ color:#ff5b6b; background:rgba(12,14,20,0.72); }
  .sr-iconbtn.on-cmp{ color:var(--sr-gold); background:rgba(12,14,20,0.72); }

  /* body */
  .sr-body{ padding:15px 16px 16px; display:flex; flex-direction:column; gap:0; flex:1; }
  .sr-priceline{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
  .sr-price{ font-family:Inter,system-ui,sans-serif; font-weight:800; font-size:1.42rem; letter-spacing:-0.02em; color:var(--sr-ink); line-height:1; font-variant-numeric:tabular-nums; }
  .sr-was{ font-size:.86rem; color:var(--sr-ink-dim); text-decoration:line-through; }
  .sr-ppsf{ margin-left:auto; font-size:.74rem; font-weight:600; color:var(--sr-ink-mid); background:rgba(255,255,255,0.05); border:1px solid var(--sr-card-border); padding:3px 8px; border-radius:7px; white-space:nowrap; }
  .sr-addr{ font-size:.96rem; font-weight:600; color:var(--sr-ink); margin-top:9px; line-height:1.35; }
  .sr-sub{ font-size:.82rem; color:var(--sr-ink-mid); margin-top:2px; }
  .sr-specs{ font-size:.84rem; color:var(--sr-ink-mid); margin-top:8px; display:flex; gap:8px; flex-wrap:wrap; }
  .sr-specs b{ color:var(--sr-ink); font-weight:600; }
  .sr-dot{ opacity:.4; }

  /* analytics strip */
  .sr-signals{ margin-top:11px; padding-top:11px; border-top:1px solid var(--sr-card-border); display:flex; flex-direction:column; gap:5px; }
  .sr-signal{ font-size:.76rem; color:var(--sr-ink-mid); display:flex; align-items:center; gap:6px; line-height:1.4; }
  .sr-signal.good{ color:var(--sr-good); font-weight:600; }
  .sr-signal .ic{ width:15px; text-align:center; flex-shrink:0; }

  .sr-foot{ margin-top:11px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.74rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; }
  /* Brokerage credit (CREA DDF r.6(a)(ii)) — one step brighter than the rest of
     the foot row, because a required attribution should not be the dimmest
     thing on the card. */
  .sr-foot .courtesy{ text-transform:none; letter-spacing:0; font-style:italic; color:var(--sr-ink-mid); }

  /* ── Cohesion polish: loading skeletons match the new card ── */
  #mlsGrid .mls-skel-card{ border-radius:var(--sr-radius); overflow:hidden; background:var(--sr-card-bg); border:1px solid var(--sr-card-border); }

  /* ── Unified form controls (search panel + filter bar) → one language ── */
  .search-pane .fbar input,
  .search-pane .fbar select,
  .ai-search-row input{
    border-radius:11px;
    border:1px solid var(--sr-card-border);
    background:var(--surface-1);
    color:var(--sr-ink);
    font-family:inherit;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  .search-pane .fbar input:focus,
  .search-pane .fbar select:focus,
  .ai-search-row input:focus{
    border-color:var(--sr-gold);
    box-shadow:0 0 0 3px rgba(212,175,55,0.16);
  }
  .search-pane .fbar input:focus:not(:focus-visible), .search-pane .fbar select:focus:not(:focus-visible), .ai-search-row input:focus:not(:focus-visible) { outline: none; }
  /* Thumb-friendly controls on phones (44px min) + tidy spacing */
  @media(max-width:640px){
    .search-pane .fbar input,
    .search-pane .fbar select,
    .ai-search-row input,
    #mlsFilterSort,
    #mlsToggleMap{ min-height:44px; }
  }

  /* ── Search tabs: cleaner active state ── */
  .search-tab.active{ position:relative; }
  .search-tab.active::after{
    content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
    width:34px; height:3px; border-radius:3px 3px 0 0; background:var(--sr-gold);
  }

  /* ── Result toolbar: consistent vertical rhythm with the new grid ── */
  .result-toolbar{ margin-bottom:14px; }

  /* ── On-demand AI "take" per card ── */
  .sr-aitake-zone{ border-top:1px solid var(--sr-card-border); }
  .sr-aitake{ width:100%; background:none; border:none; cursor:pointer; padding:11px 16px; text-align:left; font-family:inherit; font-size:.82rem; font-weight:700; color:var(--sr-gold); display:flex; align-items:center; gap:7px; -webkit-tap-highlight-color:transparent; touch-action:manipulation; min-height:44px; }
  .sr-aitake:hover{ background:rgba(212,175,55,0.06); }
  .sr-aitake:disabled{ opacity:.7; cursor:progress; }
  .sr-aitake-out{ padding:0 16px 15px; }
  .sr-aitake-out ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
  .sr-aitake-out li{ font-size:.81rem; line-height:1.5; color:var(--sr-ink-mid); padding-left:17px; position:relative; }
  .sr-aitake-out li::before{ content:"›"; position:absolute; left:3px; top:-1px; color:var(--sr-gold); font-weight:800; }
  .sr-aitake-note{ font-size:.67rem; color:var(--sr-ink-dim); margin-top:10px; line-height:1.45; }

  /* ── Light / minimal search hero (Zillow-clean, single search) ── */
  .listings-hero{
    position:relative;
    background:var(--surface-1) !important;
    background-image:none !important;
    padding:clamp(120px,13vw,164px) 0 clamp(40px,6vw,68px);
    text-align:center;
    border-bottom:1px solid var(--sr-card-border);
  }
  .listings-hero .container{ position:relative; z-index:1; max-width:840px; }
  .listings-hero h1{
    color:var(--sr-ink) !important;
    font-family:var(--font-serif,Georgia,serif);
    font-size:clamp(2rem,5vw,3.4rem) !important;
    letter-spacing:-0.02em; line-height:1.08; margin:0 0 14px;
  }
  .listings-hero .hero-sub{
    color:var(--sr-ink-mid) !important;
    font-size:clamp(1rem,2.2vw,1.16rem) !important;
    max-width:600px; margin:0 auto 28px; line-height:1.5;
  }
  .listings-hero .hero-sub strong{ color:var(--sr-ink); font-weight:700; }
  /* One dominant pill search */
  .sr-herosearch{
    display:flex; align-items:center; gap:6px; max-width:640px; margin:0 auto 16px;
    background:#fff; border:1px solid var(--sr-card-border); border-radius:980px;
    padding:7px 7px 7px 20px; box-shadow:0 14px 44px rgba(40,30,10,0.10);
  }
  [data-theme="dark"] .sr-herosearch{ background:#1d1d20; }
  .sr-herosearch-ico{ font-size:1.02rem; opacity:0.55; flex-shrink:0; }
  .sr-herosearch input{
    flex:1; min-width:0; padding:13px 6px; border:none; background:transparent;
    color:var(--sr-ink); font-size:1.04rem; font-family:inherit; box-shadow:none;
  }
  .sr-herosearch input::placeholder{ color:var(--sr-ink-dim); }
  .sr-herosearch button{
    flex-shrink:0; padding:13px 28px; border-radius:980px; border:none; cursor:pointer;
    font-weight:700; font-size:0.98rem; background:var(--sr-gold); color:#1a1408; font-family:inherit;
    transition:filter .15s, transform .15s;
  }
  .sr-herosearch button:hover{ filter:brightness(1.06); transform:translateY(-1px); }
  /* Live-count line */
  .hero-live{ font-size:0.85rem; color:var(--sr-ink-mid); display:inline-flex; align-items:center; gap:7px; margin-bottom:18px; }
  .hero-live-dot{ width:7px; height:7px; border-radius:50%; background:var(--sr-good); animation:mlsFreshPulse 2.4s infinite; }
  .hero-live b{ color:var(--sr-ink); font-weight:700; }
  /* Quiet secondary links (replaces loud chips; data-srgo actions preserved) */
  .hero-quietlinks{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 12px; font-size:0.92rem; }
  .hero-quietlinks a{ color:var(--sr-ink-mid); text-decoration:none; font-weight:600; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .hero-quietlinks a:hover{ color:var(--sr-gold); }
  .hero-quietsep{ color:var(--sr-ink-dim); }
  .listings-hero .hero-trust{ color:var(--sr-ink-dim) !important; margin-top:24px; font-size:0.74rem; }
  @media(max-width:640px){
    .sr-herosearch{ padding:6px 6px 6px 16px; }
    .sr-herosearch button{ padding:12px 18px; }
  }

  /* ── Just Listed carousel (Zillow "Trending Homes" parallel) ── */
  .sr-justlisted{ padding:clamp(28px,4vw,44px) 0 6px; }
  .sr-jl-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
  .sr-jl-title{ font-family:var(--font-serif,Georgia,serif); font-size:clamp(1.4rem,3vw,1.9rem); color:var(--sr-ink); margin:0; letter-spacing:-0.01em; }
  .sr-jl-all{ color:var(--sr-gold); font-weight:700; font-size:0.9rem; text-decoration:none; white-space:nowrap; }
  .sr-jl-sub{ color:var(--sr-ink-mid); font-size:0.92rem; margin:4px 0 16px; }
  .sr-jl-track{
    display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; padding:2px 2px 14px; scrollbar-width:none;
  }
  .sr-jl-track::-webkit-scrollbar{ display:none; }
  .sr-jl-card{
    flex:0 0 270px; scroll-snap-align:start; text-decoration:none; color:inherit;
    background:var(--sr-card-bg); border:1px solid var(--sr-card-border); border-radius:16px;
    overflow:hidden; box-shadow:var(--sr-shadow); transition:transform .18s cubic-bezier(0.22,1,0.36,1), box-shadow .18s;
  }
  @media(hover:hover){ .sr-jl-card:hover{ transform:translateY(-3px); box-shadow:var(--sr-shadow-hover); } }
  .sr-jl-photo{ position:relative; aspect-ratio:16/11; background:#e8e2d6; overflow:hidden; }
  [data-theme="dark"] .sr-jl-photo{ background:#15161c; }
  .sr-jl-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .sr-jl-badge{ position:absolute; top:10px; left:10px; z-index:2; }
  .sr-jl-body{ padding:13px 14px 15px; }
  .sr-jl-price{ font-weight:800; font-size:1.18rem; color:var(--sr-ink); letter-spacing:-0.02em; font-variant-numeric:tabular-nums; }
  .sr-jl-specs{ font-size:0.82rem; color:var(--sr-ink-mid); margin-top:4px; }
  .sr-jl-addr{ font-size:0.86rem; color:var(--sr-ink); font-weight:600; margin-top:7px; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .sr-jl-sub2{ font-size:0.78rem; color:var(--sr-ink-mid); margin-top:2px; }
  @media(max-width:560px){ .sr-jl-card{ flex-basis:78%; } }

  /* ── Alerts band (lead capture) ── */
  .sr-alertband{ padding:clamp(20px,3vw,34px) 0; }
  .sr-alertband-inner{
    display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
    background:linear-gradient(135deg, rgba(212,175,55,0.13), rgba(212,175,55,0.04));
    border:1px solid rgba(212,175,55,0.30); border-radius:20px; padding:clamp(20px,3vw,30px);
  }
  .sr-alertband-eyebrow{ font-size:0.72rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--sr-gold); margin-bottom:6px; }
  .sr-alertband-title{ font-family:var(--font-serif,Georgia,serif); font-size:clamp(1.3rem,2.6vw,1.7rem); color:var(--sr-ink); margin:0 0 6px; letter-spacing:-0.01em; }
  .sr-alertband-sub{ color:var(--sr-ink-mid); font-size:0.94rem; margin:0; max-width:560px; line-height:1.5; }
  .sr-alertband-btn{
    flex-shrink:0; background:var(--sr-gold); color:#1a1408; border:none; border-radius:980px;
    padding:14px 28px; font-weight:700; font-size:0.98rem; font-family:inherit; cursor:pointer;
    white-space:nowrap; transition:filter .15s, transform .15s;
  }
  .sr-alertband-btn:hover{ filter:brightness(1.06); transform:translateY(-1px); }
  @media(max-width:640px){ .sr-alertband-inner{ flex-direction:column; align-items:flex-start; } .sr-alertband-btn{ width:100%; } }

  /* ── Sticky "save this search" pill ── */
  .sr-sticky-alert{
    position:fixed; left:50%; bottom:18px; z-index:450;
    display:flex; align-items:center; background:#1a2030; color:#fff;
    border-radius:980px; box-shadow:0 14px 40px rgba(0,0,0,0.30); overflow:hidden;
    animation:srStickyIn .34s cubic-bezier(0.16,1,0.3,1) both;
  }
  .sr-sticky-alert-main{ background:transparent; border:none; color:#fff; font-family:inherit; font-weight:700; font-size:0.92rem; padding:13px 6px 13px 22px; cursor:pointer; white-space:nowrap; }
  .sr-sticky-alert-x{ background:transparent; border:none; color:rgba(255,255,255,0.55); font-size:1.4rem; line-height:1; padding:8px 16px 8px 6px; cursor:pointer; }
  .sr-sticky-alert-x:hover{ color:#fff; }
  @keyframes srStickyIn{ from{ opacity:0; transform:translate(-50%,16px); } to{ opacity:1; transform:translate(-50%,0); } }
  .sr-sticky-alert{ transform:translateX(-50%); }
  /* Float above the mobile bottom nav (moyyc-tabbar) */
  @media(max-width:900px){ .sr-sticky-alert{ bottom:80px; } }
  @media(prefers-reduced-motion:reduce){ .sr-sticky-alert{ animation:none; } }

  /* ── "Browse Calgary by area" zone grid ── */
  .sr-areas{ padding:30px 0 6px; }
  .sr-areas-title{ font-family:var(--font-serif,Georgia,serif); font-size:clamp(1.3rem,3vw,1.7rem); color:var(--sr-ink); margin:0 0 4px; }
  .sr-areas-sub{ color:var(--sr-ink-mid); font-size:0.92rem; margin:0 0 16px; }
  .sr-areas-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
  @media(max-width:780px) and (min-width:641px){ .sr-areas-grid{ grid-template-columns:repeat(2,1fr); } }
  /* Phone: swipeable single-row carousel — modern + far less vertical scroll */
  @media(max-width:640px){
    .sr-areas-grid{ display:flex; grid-template-columns:none; overflow-x:auto; gap:10px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:2px 2px 8px; scrollbar-width:none; }
    .sr-areas-grid::-webkit-scrollbar{ display:none; }
    .sr-areas-grid > .sr-area{ flex:0 0 76%; scroll-snap-align:start; }
  }
  /* Minimal, uniform cards (theme-aware) — wayfinding comes from a thin
     colour tab, not heavy fills. Cleaner, calmer, matches the listing cards. */
  .sr-area{
    position:relative; overflow:hidden; border-radius:14px; padding:20px 16px 16px; min-height:96px;
    display:flex; flex-direction:column; justify-content:flex-end; text-decoration:none;
    background:var(--sr-card-bg); border:1px solid var(--sr-card-border);
    transition:transform .18s cubic-bezier(0.22,1,0.36,1), box-shadow .18s ease, border-color .18s ease;
    box-shadow:var(--sr-shadow);
  }
  .sr-area::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--sr-accent,#5a6275); }
  .sr-area:nth-child(1){ --sr-accent:#2b3a63; }  /* NW */
  .sr-area:nth-child(2){ --sr-accent:#2f5740; }  /* NE */
  .sr-area:nth-child(3){ --sr-accent:#56406b; }  /* SW */
  .sr-area:nth-child(4){ --sr-accent:#6b4a2a; }  /* SE */
  .sr-area:nth-child(5),.sr-area:nth-child(6),.sr-area:nth-child(7),.sr-area:nth-child(8){ --sr-accent:var(--sr-gold); }  /* satellite towns */
  @media(hover:hover){ .sr-area:hover{ transform:translateY(-3px); box-shadow:var(--sr-shadow-hover); border-color:rgba(212,175,55,0.45); } }
  .sr-area-name{ color:var(--sr-ink); font-weight:700; font-size:1.02rem; letter-spacing:-0.01em; }
  .sr-area-sub{ color:var(--sr-ink-mid); font-size:0.76rem; margin-top:3px; line-height:1.35; }
  .sr-area-count{ color:var(--sr-gold); font-weight:700; font-size:0.8rem; margin-top:9px; }
  /* Goal tiles — same calm card, gold tab + gold name */
  .sr-area.sr-goal{ background:var(--sr-card-bg) !important; border:1px solid rgba(212,175,55,0.28); }
  .sr-area.sr-goal::before{ background:var(--sr-gold); }
  .sr-area.sr-goal .sr-area-name{ color:var(--sr-gold); }

  /* ── Map price-label pins (Zillow/calgaryhomes-style) ── */
  .sr-pinwrap{ background:none !important; border:none !important; }
  .sr-pin{
    display:inline-flex; align-items:center; justify-content:center; height:24px; padding:0 9px;
    border-radius:13px; background:#1a2645; color:#fff; font:700 12px/1 Inter,system-ui,sans-serif;
    white-space:nowrap; box-shadow:0 2px 7px rgba(0,0,0,0.45); border:1.5px solid rgba(255,255,255,0.85);
    cursor:pointer; transition:background .12s, transform .12s;
  }
  .sr-pin.fav{ background:var(--sr-gold); color:#1a2645; }
  .sr-pin:hover{ background:var(--sr-gold); color:#1a2645; transform:scale(1.08); }
  .leaflet-popup-content .sr-pop-view{ color:#9a7a3a; font-weight:700; }
  /* On mobile/tablet the bottom nav already has Saved + Compare, so drop the
     duplicate toolbar buttons — leaves a clean Sort + Map toolbar. Desktop
     (no bottom nav) keeps them. */
  @media (max-width: 900px){
    #mlsViewFavorites, #mlsViewCompare { display: none; }
  }

  /* Map "Search this area" controls */
  .sr-map-btn{
    position:absolute; top:14px; left:50%; transform:translateX(-50%); z-index:500;
    background:var(--sr-gold); color:#1a2645; border:none; border-radius:999px;
    padding:10px 20px; font-weight:800; font-size:0.9rem; cursor:pointer; font-family:inherit;
    box-shadow:0 4px 16px rgba(0,0,0,0.4); -webkit-tap-highlight-color:transparent;
  }
  .sr-map-btn:hover{ filter:brightness(1.05); }
  .sr-map-btn-clear{ top:auto; bottom:14px; background:rgba(12,14,20,0.86); color:#fff; font-weight:700; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }

  /* ── Live market-pulse strip ── */
  .sr-pulse{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:4px 0 18px; }
  @media(max-width:560px){ .sr-pulse{ grid-template-columns:repeat(2,1fr); gap:8px; } }
  .sr-pulse-item{ text-decoration:none; background:var(--sr-card-bg); border:1px solid var(--sr-card-border); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:3px; transition:border-color .15s, transform .15s; }
  @media(hover:hover){ .sr-pulse-item:hover{ border-color:var(--sr-gold); transform:translateY(-2px); } }
  .sr-pulse-n{ font:800 1.35rem/1 Inter,system-ui,sans-serif; color:var(--sr-ink); font-variant-numeric:tabular-nums; }
  .sr-pulse-l{ font-size:0.72rem; color:var(--sr-ink-mid); text-transform:uppercase; letter-spacing:0.05em; }

  /* ── Match score badge on cards ── */
  .sr-match{ position:absolute; top:12px; left:12px; z-index:3; display:inline-flex; align-items:center; gap:4px;
    background:rgba(22,163,74,0.95); color:#fff; font:700 0.72rem/1 Inter,system-ui,sans-serif; padding:5px 9px; border-radius:999px;
    box-shadow:0 2px 8px rgba(0,0,0,0.3); }
  .sr-match.mid{ background:rgba(234,179,8,0.96); color:#3a2f06; }
  .sr-match.low{ background:rgba(120,120,130,0.92); }
  /* When a match badge is present, nudge the status badges down so they don't overlap */
  .sr-card.has-match .sr-badges{ top:46px; }

  /* ── Apple-style motion ── */
  /* Scroll-reveal: elements ease in as they enter the viewport */
  .sr-reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.16,.84,.44,1), transform .7s cubic-bezier(.16,.84,.44,1); will-change:opacity,transform; }
  .sr-reveal.sr-in{ opacity:1; transform:none; }
  /* Gentle staggered entrance for result cards */
  @keyframes srFadeUp{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
  #mlsGrid .sr-card{ animation:srFadeUp .55s cubic-bezier(.16,.84,.44,1) both; }
  /* Smooth in-page scrolling */
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    .sr-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
    #mlsGrid .sr-card{ animation:none !important; }
    html{ scroll-behavior:auto; }
  }

  /* Respect reduced-motion across the new layer */
  @media (prefers-reduced-motion: reduce){
    .sr-card, .sr-photo img, .sr-iconbtn, .sr-area{ transition:none !important; }
  }
