/* TPMF native listings — uses the build's design tokens (--c-*, --f-*, --t-*). Radius 0, no shadows. */
.tpmf-listings{color:var(--c-body)}
.tpmf-listings__grid{list-style:none;margin:0;padding:0;display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:768px){.tpmf-listings__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.tpmf-listings__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tpmf-listing{display:flex;flex-direction:column;background:var(--c-card);border:1px solid var(--c-line);border-radius:0;min-width:0;transition:border-color .15s ease}
.tpmf-listing:hover,.tpmf-listing:focus-within{border-color:var(--c-line-strong)}
.tpmf-listing__media{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--c-deep);border-bottom:1px solid var(--c-line)}
.tpmf-listing__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.tpmf-listing:hover .tpmf-listing__media img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.tpmf-listing__media img,.tpmf-listing{transition:none}.tpmf-listing:hover .tpmf-listing__media img{transform:none}}
.tpmf-listing__noimg{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-family:var(--f-serif);font-size:var(--t-title);color:var(--c-gold)}
.tpmf-listing__badge{position:absolute;left:0;top:16px;background:var(--c-deep);color:var(--c-gold);border:1px solid var(--c-line-strong);border-left:0;padding:6px 12px;font-family:var(--f-sans);font-size:var(--t-small);line-height:1.2;font-weight:600}
.tpmf-listing__body{display:flex;flex:1;flex-direction:column;padding:24px}
@media (min-width:768px){.tpmf-listing__body{padding:24px 24px 28px}}
.tpmf-listing__area{margin:0}
.tpmf-listing__street{margin:4px 0 0;overflow-wrap:anywhere}
.tpmf-listing__street a{color:inherit;text-decoration:none}
@media (max-width:767px){.tpmf-listing__street{margin-top:0}.tpmf-listing__street a{display:inline-flex;align-items:center;min-height:44px}}
.tpmf-listing__street a:hover{color:var(--c-gold)}
.tpmf-listing__rent{margin:16px 0 0;font-family:var(--f-serif);font-size:var(--t-title);line-height:1.3;color:var(--c-gold)}
.tpmf-listing__rent span{font-family:var(--f-sans);font-size:var(--t-small);color:var(--c-muted)}
.tpmf-listing__facts{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:12px 0 0;padding:16px 0 0;border-top:1px solid var(--c-line)}
.tpmf-listing__facts li{font-family:var(--f-sans);font-size:var(--t-small);line-height:1.5;color:var(--c-body)}
.tpmf-listing__facts li+li:before{content:"·";color:var(--c-gold);padding:0 10px}
.tpmf-listing__actions{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;margin-top:auto;padding-top:24px}
.tpmf-listing__actions .btn{flex:1 1 auto}
.tpmf-listing__details{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-sans);font-size:var(--t-small)}
@media (max-width:767px){.tpmf-listing__actions .btn{flex-basis:100%}.tpmf-listing__details{flex-basis:100%;justify-content:center}}
.tpmf-listings__more{margin:24px 0 0}
.tpmf-listings__more a{display:inline-flex;align-items:center;min-height:44px}
/* loading skeleton */
.tpmf-skel{pointer-events:none}
.tpmf-skel .tpmf-listing__media{animation:tpmf-pulse 1.4s ease-in-out infinite}
.tpmf-skel__line{display:block;height:16px;background:var(--c-line);margin-top:12px;animation:tpmf-pulse 1.4s ease-in-out infinite}
@keyframes tpmf-pulse{0%,100%{opacity:.55}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.tpmf-skel .tpmf-listing__media,.tpmf-skel__line{animation:none}}
/* fallback / empty state */
.tpmf-listings__fallback{background:var(--c-card);border:1px solid var(--c-line);padding:32px 24px;text-align:center}
@media (min-width:768px){.tpmf-listings__fallback{padding:48px}}
.tpmf-listings__fallback .t-title{margin:0;color:var(--c-cream)}
.tpmf-listings__fallback .t-body{margin:12px auto 0;max-width:var(--measure)}
.tpmf-listings__fallback .btn{margin-top:24px}
@media (max-width:767px){.tpmf-listings__fallback .btn{width:100%}}
.tpmf-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* v2: listings sit directly under the hero as the page's own section; smooth anchor scroll from "Apply for a Home" */
html:has(#available-homes){scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html:has(#available-homes){scroll-behavior:auto}}
#available-homes{scroll-margin-top:64px;padding-top:40px}
@media (min-width:768px){#available-homes{padding-top:56px}}
@media (min-width:1024px){#available-homes{scroll-margin-top:96px}}
/* v3: home hero city eyebrow. City names never split (NBSP), a wrap can only happen after a "·",
   and the gold rule is drawn after the last city inside a no-wrap span, so it always travels with
   "Henderson" and is never orphaned on its own line. Size stays at the 13px eyebrow token. */
.tpmf-eyebrow-cities:after{content:none;display:none}
.tpmf-eyebrow-last{white-space:nowrap}
.tpmf-eyebrow-last:after{content:"";vertical-align:middle;background:var(--c-gold);width:32px;height:1px;margin-left:12px;display:inline-block}
@media (max-width:1023px){.tpmf-eyebrow-cities{line-height:1.7}}
.tpmf-hours{line-height:1.3}
@media (min-width:1280px){.tpmf-hours-lunch{white-space:nowrap}}
/* 1.6.3 Owner Resources */
.tpmf-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:768px){.tpmf-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.tpmf-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tpmf-card{display:flex;flex-direction:column}
.tpmf-card .t-body{max-width:none}
.tpmf-card__cta{margin-top:auto;padding-top:20px}
.tpmf-list{list-style:disc;padding-left:1.25rem}
.tpmf-list li{margin-top:8px}
.tpmf-list li::marker{color:var(--c-gold)}
.tpmf-list li>p{margin:0;max-width:none}
.tpmf-article .t-body a,.tpmf-article .t-small a,.tpmf-article .t-lead a{text-underline-offset:3px}
