*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:#fff;color:#1d2a24;font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden}
a{color:#512888}
button,input,select{font:inherit;color:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid #1d2a24;outline-offset:2px;box-shadow:0 0 0 2px #fff}   

.sample{margin:0;padding:.35rem 1rem;background:#7a1f1f;color:#fff;font-weight:800;text-align:center;letter-spacing:.03em}
.sample[hidden]{display:none}
.topbar{position:relative;z-index:1100;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.6rem 1rem;border-bottom:1px solid #ddd3ec;background:#fff}
.brand{font-weight:800;letter-spacing:.08em;text-decoration:none;color:#512888;white-space:nowrap}
.search{display:flex;flex:1 1 22rem;max-width:30rem;border:1px solid #512888;border-radius:8px}
.search input{flex:1;min-width:0;border:0;border-radius:8px 0 0 8px;padding:.55rem .75rem;background:#fff}
.search input:focus{outline:none}
.search:focus-within{outline:3px solid #1d2a24;outline-offset:2px;box-shadow:0 0 0 2px #fff}
.search{position:relative}
.search .clear{border:0;background:none;color:#43544b;font-size:1.3rem;line-height:1;padding:0 .55rem;cursor:pointer}
.search .clear[hidden]{display:none}
.search-hint{position:absolute;left:0;top:calc(100% + 4px);margin:0;z-index:5;background:#512888;color:#fff;font-size:.82rem;padding:.3rem .6rem;border-radius:6px;white-space:nowrap}
.search-hint[hidden]{display:none}
.search button{border:0;border-radius:0 7px 7px 0;background:#512888;color:#fff;padding:0 1rem;font-weight:700;cursor:pointer}
.filters{display:flex;gap:.5rem;flex-wrap:wrap}
.filter{position:relative}
.chip{border:1px solid #512888;background:#fff;border-radius:8px;padding:.5rem .8rem;font-weight:600;cursor:pointer;white-space:nowrap}
.chip[aria-expanded="true"],.chip.on{border-color:#512888;background:#efe8f7}
.pop{position:absolute;top:calc(100% + 6px);left:0;min-width:15rem;background:#fff;border:1px solid #cbbbe3;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:.9rem;display:grid;gap:.6rem}
.pop[hidden]{display:none}
.pop fieldset{border:0;margin:0;padding:0;display:grid;gap:.45rem}
.pop legend{font-weight:700;margin-bottom:.3rem}
.pop label{display:flex;gap:.5rem;align-items:center;justify-content:space-between}
.pop fieldset label{justify-content:flex-start}
.pop select{padding:.35rem;border:1px solid #512888;border-radius:6px;background:#fff}
.note{margin:0;font-size:.85rem;color:#5a6b62}
.mls{margin-left:auto;border:1px solid #512888;background:#fff;color:#512888;border-radius:8px;padding:.5rem .8rem;font-weight:700;cursor:pointer;white-space:nowrap}
.mls[aria-pressed="true"]{background:#512888;color:#fff}
.layout[hidden],.mlsview[hidden],.search[hidden],.filters[hidden]{display:none}
.mlsview{height:calc(100vh - var(--top,58px));height:calc(100dvh - var(--top,58px));display:flex;flex-direction:column;padding:.5rem 1rem 0}
.mlsbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.25rem 0 .5rem}
.mlsbar h1{font-size:1.2rem;margin:0}
.mlsview iframe{flex:1;width:100%;border:1px solid #cbbbe3;border-radius:8px;background:#fff}
.mlsview .foot{margin:.4rem 0}

.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);height:calc(100vh - var(--top,58px));height:calc(100dvh - var(--top,58px))}
.mapwrap{position:relative;min-height:0}
.map{position:absolute;inset:0;background:#e5ebe4}
.results{overflow-y:auto;border-left:1px solid #ddd3ec;padding:.75rem;background:#fafbfa}
.handle{display:none}
.count{margin:.25rem 0 .75rem;font-weight:600}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.foot{font-size:.75rem;color:#5a6b62;margin:1rem 0 .5rem}

.area{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start;background:#fff;border:1px solid #ddd3ec;border-radius:10px;padding:.7rem .8rem;margin-bottom:.5rem}
.area[hidden]{display:none}
.area h2{margin:0;font-size:1.15rem}
.area p{margin:.15rem 0 0;color:#43544b}
.x{border:0;background:#efe9f6;border-radius:50%;width:2rem;height:2rem;flex:none;font-size:1.1rem;line-height:1;cursor:pointer}

.card{background:#fff;border:1px solid #ddd3ec;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.card.hl{border-color:#512888;box-shadow:0 0 0 2px #512888}
.card-open{display:block;width:100%;text-align:left;border:0;background:none;padding:0;cursor:pointer}
.card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:#e5ebe4}
.nophoto{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:3/2;background:#e9eeea;color:#5a6b62;font-weight:600;font-size:.9rem;flex:0 0 100%}
.gallery .nophoto{height:min(52vh,420px);aspect-ratio:auto;max-width:100%}
.card .body{padding:.55rem .65rem .4rem}
.own{display:inline-block;background:#512888;color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.03em;border-radius:4px;padding:.12rem .4rem;margin-bottom:.25rem}
.price{font-size:1.15rem;font-weight:800}
.facts{margin:.1rem 0;color:#26352d}
.addr{margin:0;color:#3d4c44;font-size:.9rem}
.meta{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-top:.3rem;font-size:.8rem;color:#43544b}
.status{display:inline-flex;align-items:center;gap:.3rem}
.status::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:#2c8a5a}
.status.rent::before{background:#c0c4c8;box-shadow:inset 0 0 0 2px #37474f}
.hood{border:0;background:none;padding:.15rem .65rem .55rem;text-align:left;color:#512888;text-decoration:underline;font-size:.85rem;cursor:pointer}
.attr{font-size:.7rem;color:#55655d;margin:.25rem 0 0}

.pin{background:none;border:0}
.home-dot-marker{display:grid;place-items:center;background:transparent;border:0;cursor:pointer}
.home-dot-marker .home-dot{display:block;width:9px;height:9px;box-sizing:border-box;border:0;border-radius:50%;background:#512888;box-shadow:none}
.home-dot-marker:hover .home-dot,.home-dot-marker:focus .home-dot,.home-dot-marker .home-dot.hl,.home-dot-marker .home-dot.sel{background:#512888;box-shadow:0 0 0 3px rgba(81,40,136,.3),0 1px 4px rgba(0,0,0,.45)}
.home-dot-marker:focus-visible{outline:2px solid #512888;outline-offset:2px;border-radius:50%}
.neighborhood-dot-marker{display:grid;place-items:center;background:transparent;border:0;cursor:pointer}
.neighborhood-dot{display:block;width:7px;height:7px;box-sizing:border-box;border:1px solid #fff;border-radius:50%;background:#512888}
.neighborhood-dot-marker:hover .neighborhood-dot,.neighborhood-dot-marker:focus .neighborhood-dot{box-shadow:0 0 0 2px rgba(81,40,136,.3)}
.neighborhood-dot-marker:focus-visible{outline:2px solid #512888;outline-offset:2px;border-radius:50%}
.same-location{padding:.65rem 1rem;border-bottom:3px solid #512888}.same-location summary{cursor:pointer;font-weight:700}.same-location-choices{display:grid;gap:.4rem;margin-top:.5rem}.same-location-choices button{min-height:44px;padding:.5rem;border:2px solid #512888;background:#fff;color:#512888;text-align:left}.same-location-choices button[aria-pressed=true]{font-weight:700}
.tag{display:inline-block;transform:translate(-50%,-100%);background:#512888;color:#fff;font-weight:700;font-size:12px;line-height:1;padding:4px 6px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.35);cursor:pointer;position:relative}
.tag::after{content:"";position:absolute;left:50%;bottom:-4px;margin-left:-4px;border:4px solid transparent;border-bottom:0;border-top-color:#512888}
.tag.rent{background:#c0c4c8;color:#1d2a24;box-shadow:inset 0 0 0 2px #37474f}.tag.rent::after{border-top-color:#37474f}
.tag.dot{width:12px;height:12px;padding:0;border-radius:50%;border:2px solid #fff;transform:translate(-50%,-50%);font-size:0}
.tag.dot::after{display:none}
.tag.hl,.tag.sel{background:#b0541a;z-index:5}.tag.hl::after,.tag.sel::after{border-top-color:#b0541a}
.leaflet-marker-icon.lift{z-index:100000!important}
.bubble{display:inline-flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);border-radius:50%;background:rgba(81,40,136,.9);color:#fff;font-weight:800;font-size:12px;border:3px solid rgba(255,255,255,.85);box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:pointer}
.bubble{border-radius:999px;padding:0 9px;white-space:nowrap}.bubble.s{height:28px}.bubble.m{height:32px}.bubble.l{height:38px;font-size:13px}
.bubble.rent{background:rgba(192,196,200,.95);color:#1d2a24;border-color:#37474f}
.bubble.hl{background:#b0541a}
.cards .note{grid-column:1/-1;font-size:.85rem;color:#43544b;margin-top:.5rem}
.pager{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem}
.pager[hidden]{display:none}
.pager button{border:1px solid #512888;background:#fff;border-radius:8px;padding:.45rem .8rem;font-weight:600;cursor:pointer}
.pager button:disabled{opacity:.4;cursor:default}

.mapnote{position:absolute;z-index:900;left:3.4rem;top:.6rem;margin:0;background:rgba(255,255,255,.92);border-radius:6px;padding:.2rem .5rem;font-size:.75rem;color:#33443b;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.mapnote[hidden]{display:none}
.peek{position:absolute;z-index:1000;left:50%;bottom:1rem;transform:translateX(-50%);width:min(22rem,calc(100% - 2rem));background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.3);overflow:hidden}
.peek[hidden]{display:none}
.peek .x{position:absolute;top:.4rem;right:.4rem;z-index:2;background:rgba(255,255,255,.92)}
.strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip img{flex:0 0 100%;width:100%;aspect-ratio:3/2;object-fit:cover;scroll-snap-align:start;background:#e5ebe4}
.peek .card-open .body{padding:.6rem .75rem .7rem}

.detail{position:absolute;z-index:1050;inset:0;background:#fff;overflow-y:auto;animation:slide .22s ease-out}
.detail[hidden]{display:none}
@keyframes slide{from{transform:translateX(-4%);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.detail{animation:none}}
.detail-bar{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid #ddd3ec}
.detail-bar .x{background:#efe9f6}
.back{border:1px solid #512888;background:#fff;border-radius:8px;padding:.4rem .8rem;font-weight:600;cursor:pointer}
.gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:4px;background:#111}
.gallery img{flex:0 0 auto;height:min(52vh,420px);max-width:92%;object-fit:cover;scroll-snap-align:start}
.gallery.one{justify-content:center;background:#efe9f6}
.gallery.one img{max-width:100%;width:auto}
.detail:focus{outline:none}
.detail-body{padding:1rem 1.25rem 2rem;max-width:52rem}
.detail-body h1{font-size:1.9rem;margin:.2rem 0}
.detail-body h2{font-size:1.15rem;margin:1.4rem 0 .4rem}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.4rem 1rem;margin:0}
.facts-grid div{border-bottom:1px solid #efe9f6;padding:.3rem 0}
.facts-grid dt{font-size:.875rem;color:#5a6b62}
.facts-grid dd{margin:0;font-weight:600}
.desc{white-space:pre-line}
.spot{height:220px;border:1px solid #ddd3ec;border-radius:10px;margin-top:.5rem}

@media (min-width:761px) and (max-width:1100px){.layout{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr)}}
@media (max-width:760px){
  .topbar{gap:.5rem;padding:.5rem .75rem}
  .brand{font-size:.85rem}
  .search{order:3;flex:1 1 100%;max-width:none}
  .filters{order:4;flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:2px}
  .filter{position:static}
  .pop{left:.75rem;right:.75rem;min-width:0}
  .mls{font-size:.85rem;padding:.4rem .6rem}
  .mlsview{padding:.4rem .5rem 0}
  .layout{display:block;position:relative}
  .mapwrap{position:absolute;inset:0}
  .results{position:absolute;z-index:1020;left:0;right:0;bottom:0;height:8.5rem;border:0;border-radius:16px 16px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.18);padding:0 .75rem .75rem;transition:height .25s ease;overflow:hidden}
  .results.open{height:calc(100% - 3rem);overflow-y:auto}
  .handle{display:flex;flex-direction:column;align-items:center;gap:.3rem;width:100%;border:0;background:#fafbfa;padding:.5rem 0 .3rem;font-weight:700;cursor:pointer;position:sticky;top:0;z-index:2}
  .grip{width:2.5rem;height:.3rem;border-radius:.2rem;background:#b9a5d8}
  .count{display:none}
  .cards{grid-template-columns:1fr}
  .peek{bottom:9.5rem;width:calc(100% - 1.5rem)}
  .peek .card-open{display:grid;grid-template-columns:40% 1fr;align-items:stretch}
  .peek .strip img{aspect-ratio:auto;height:100%;min-height:7.5rem}
  .peek .card-open .body{padding:.5rem 2.4rem .5rem .65rem}
  .peek .price{font-size:1.05rem}
  .peek .addr,.peek .facts{font-size:.85rem}
  .peek>.body{padding:0 .65rem .45rem}
  .detail{position:fixed;top:0;z-index:1200}
  .gallery img{height:15rem;max-width:100%;flex-basis:100%}
}
.search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.tag.stack{background:#7a4a12}.tag.stack::after{border-top-color:#7a4a12}
.stacklist{list-style:none;margin:.4rem 0;padding:0;max-height:16rem;overflow-y:auto;display:grid;gap:.35rem}
.stackrow{display:grid;width:100%;text-align:left;border:1px solid #ddd3ec;border-radius:8px;background:#fff;padding:.45rem .6rem;cursor:pointer}
.stackrow .price{font-size:1rem}.stackrow .facts,.stackrow .addr{font-size:.82rem;color:#3d4c44}
.seg{display:inline-flex;flex:none;background:#fff;border:1px solid #512888;border-radius:8px;overflow:hidden}
.seg[hidden]{display:none}
.seg button{border:0;background:#fff;padding:.5rem .7rem;font-weight:600;white-space:nowrap;cursor:pointer}
.seg button[aria-pressed="true"]{background:#512888;color:#fff}
.hoodtag{display:inline-flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);background:#fff;border:2px solid #512888;border-radius:10px;padding:4px 8px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.25);cursor:pointer;font-size:12px;line-height:1.25;color:#1d2a24}
.hoodtag b{font-size:13px}
@media (max-width:760px){.seg button{padding:.4rem .55rem}}
.clearall{border-color:#b0541a;color:#8a3d12}
.clearall[hidden]{display:none}
.navlink{font-weight:700;text-decoration:none;color:#512888;border:1px solid #512888;border-radius:8px;padding:.45rem .7rem;white-space:nowrap}
.badges{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.25rem}.badges .own{margin:0}
.uc{display:inline-block;background:#8a3d12;color:#fff;font-size:.72rem;font-weight:700;border-radius:4px;padding:.12rem .4rem}
.legend{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin:-.4rem 0 .7rem;font-size:.8rem;color:#33443b}
.lg{display:inline-block;width:.8rem;height:.8rem;border-radius:3px}.lg.sale{background:#512888}.lg.rent{background:#c0c4c8;box-shadow:inset 0 0 0 2px #37474f;margin-left:.4rem}
.lgnote{flex-basis:100%;font-size:.72rem;color:#55655d}
.drop{border:1px solid #ddd3ec;border-radius:10px;margin:.6rem 0;padding:.2rem .8rem}
.drop summary{cursor:pointer;font-weight:700;padding:.5rem 0;font-size:1.05rem}
.drop[open] summary{border-bottom:1px solid #efe9f6;margin-bottom:.4rem}
.gallery img{animation:gal .35s ease-out}@keyframes gal{from{transform:scale(1.04);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.gallery img{animation:none}}

.contact{position:fixed;z-index:3000;right:1rem;bottom:1rem;width:15rem;background:#fff;border:2px solid #512888;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);padding:.7rem .8rem;animation:pop .25s ease-out}
.contact[hidden]{display:none}
@keyframes pop{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.contact{animation:none}}
.contact-x{position:absolute;top:.2rem;right:.3rem;border:0;background:none;font-size:1.2rem;cursor:pointer}
.contact-t{margin:0;font-weight:800}.contact-s{margin:0 0 .4rem;font-size:.85rem;color:#43544b}
.contact-call{display:inline-block;background:#512888;color:#fff;border-radius:8px;padding:.4rem .7rem;text-decoration:none;font-weight:700}
@media (max-width:760px){.contact{bottom:9.5rem;right:.5rem;width:13rem}}
.na dt,.na dd{color:#5a6b62;font-weight:400}

.allf-open{font-weight:800}
.allf{position:absolute;z-index:1200;top:100%;right:1rem;width:min(34rem,calc(100vw - 2rem));max-height:min(78vh,52rem);display:flex;flex-direction:column;background:#fff;border:1px solid #cbbbe3;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.allf[hidden]{display:none}
.afhead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid #e6def1}
.afhead h2{margin:0;font-size:1.15rem}.afcount{margin:0;font-weight:700;color:#512888}
.afbody{overflow-y:auto;overscroll-behavior:contain;padding:.4rem 1rem 1rem}
.afs{border:0;border-top:1px solid #efe9f6;margin:0;padding:.7rem 0}
.afs legend{font-weight:800;padding:0;margin-bottom:.35rem}
.afs.fromdesc{background:#f6f9f7;border-radius:10px;padding:.7rem;margin-top:.5rem;border:1px dashed #b9a5d8}
.afrow{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.afgrid{display:grid;gap:.3rem .8rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.afs label{display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap}
.afs label.off{color:#5a6b62}
.afs .later{flex-basis:100%;font-size:.75rem;color:#5a6b62;margin-left:1.4rem}
.afs select,.afs input[type=search]{padding:.4rem;border:1px solid #512888;border-radius:8px;background:#fff;font:inherit;max-width:100%}
.afs input[type=search]{width:100%}
.afsub{margin:.3rem 0 .5rem}.afsub h3{font-size:.85rem;font-weight:700;margin:.4rem 0 .25rem}
.aflink{border:0;background:none;color:#512888;font-weight:700;text-decoration:underline;cursor:pointer;padding:.3rem 0}
.affoot{display:flex;justify-content:space-between;gap:.6rem;padding:.7rem 1rem;border-top:1px solid #e6def1}
.afreset{border:1px solid #512888;background:#fff;border-radius:10px;padding:.6rem .9rem;font-weight:700;cursor:pointer}
.afapply{flex:1;border:0;background:#512888;color:#fff;border-radius:10px;padding:.65rem 1rem;font-weight:800;font-size:1.05rem;cursor:pointer}
.nearlist{margin:.3rem 0;padding-left:1.1rem}
@media (max-width:760px){.allf{position:fixed;inset:auto .5rem .5rem .5rem;top:4rem;width:auto;max-height:none}}
.contact.auto{pointer-events:none}.contact.auto a,.contact.auto button{pointer-events:auto}
.tag.rent.hl,.tag.rent.sel{color:#fff;box-shadow:none}
.incl{margin:.15rem 0 .45rem;font-size:.95rem;color:#1d2a24}
.hoodli{list-style:none}
.hoodrow{display:flex;flex-direction:column;gap:.15rem;width:100%;height:100%;text-align:left;border:1px solid #ddd3ec;border-left:4px solid #512888;border-radius:10px;background:#fff;padding:.6rem .7rem;font:inherit;color:#1d2a24;cursor:pointer}
.hoodrow:hover{background:#f1ebf8}
.hoodrow span{font-size:.88rem;color:#43544b}
.lgview{flex-basis:100%;font-weight:700;color:#512888}
.hoodpop{display:grid;gap:.2rem;font-size:.9rem;min-width:11rem}.hoodpop p{margin:0}.hoodpop b{color:#512888;font-size:1rem}
.hoodgo{margin-top:.35rem;border:0;border-radius:8px;background:#512888;color:#fff;font:inherit;font-weight:700;padding:.4rem .6rem;cursor:pointer}
.hoodpop a{color:#512888;font-weight:700}
.hoodtag{padding:3px 8px;border-radius:999px}.hoodtag b{font-size:12px}
.contact-book{color:#512888;font-weight:800;text-decoration:none}.contact-book:hover{text-decoration:underline}
.contact-x{width:24px;height:24px;min-width:24px;padding:0;color:#1d2a24;line-height:1}
.dealtag{display:inline-block;margin:.1rem 0 .3rem;padding:.1rem .55rem;border-radius:999px;background:#512888;color:#fff;font-size:.8rem;font-weight:800}
.dealtag.rent{background:#c0c4c8;color:#1d2a24;box-shadow:inset 0 0 0 2px #37474f}
.baseline{margin:.1rem 0;font-size:1rem;font-weight:700;color:#1d2a24}
.c3-line{margin:.15rem 0}
.c3-k{font-weight:600}
.c3-loan{font-size:.78rem;margin:.1rem 0 .3rem}
.c3-note{font-weight:400;font-size:.85em;opacity:.85}
.c3-parts .na dd{font-style:italic}
.cost3 h3{font-size:1rem;margin:.8rem 0 .3rem}
.c3-inc{font-size:.85em;color:#4a4f57}

/* 13.2 F: firm + contact at least as large as the largest listing-data type in the detail view (h1 1.9rem) */
.detail-body .courtesy-full{font-size:1.9rem;line-height:1.2;color:#1d2a24;margin:1rem 0 .4rem;font-weight:700}
.detail-body .src-line{font-size:.9rem}

/* pay note: the loan terms sit beside starred monthly figures, on the map and inside the results sheet (12 CFR 1026.24(d)); not below 14 px */
.paynote{position:absolute;z-index:900;left:3.4rem;right:.6rem;top:2.6rem;margin:0;max-width:40rem;background:rgba(255,255,255,.96);border-radius:6px;padding:.3rem .5rem;font-size:.72rem;line-height:1.3;color:#33443b;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.paynote[hidden]{display:none}
.paynote{font-size:.875rem}.paynote-list{position:static;max-width:none;margin:.4rem .6rem;background:#fff6e0;border:1px solid #e0c36a;z-index:auto}

/* 13.2 F: firm + contact at least as large as the largest listing-data type in the detail view (h1 1.9rem) */
.detail-body .courtesy-full{font-size:1.9rem;line-height:1.2;color:#1d2a24;margin:1rem 0 .4rem;font-weight:700}
.detail-body .src-line{font-size:.9rem}

.card .see-more{display:block;color:#512888;text-decoration:underline;font-weight:700;margin-top:.35rem}.card .price{overflow-wrap:anywhere}

.card>.body>.attr{font-size:1.15rem;line-height:1.25;overflow-wrap:anywhere}

@media(min-width:761px){html body.page.app [data-cards].cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* Compact desktop summaries: every listing datum and required credit uses the same readable size. */
@media(min-width:761px){
html body.page.app .layout[data-view]{grid-template-columns:minmax(12rem,1fr) minmax(0,4fr)!important}
html body.page.app [data-cards] .card .body{padding:.25rem .35rem}
html body.page.app [data-cards] .card img,html body.page.app [data-cards] .card .nophoto{height:48px;aspect-ratio:auto;object-fit:cover}
html body.page.app [data-cards] .card :is(.price,.addr,.dealtag,.c3-line,.see-more,.attr){font-size:.875rem;line-height:1.15;margin:.1rem 0}
html body.page.app [data-cards] .card .c3-loan{font-size:.78rem;line-height:1.15;margin:.1rem 0}
html body.page.app [data-cards] .card>.body>.attr{font-size:.875rem;line-height:1.15}
}

/* Owner photo view: price/address remain visible while the uncropped photo is the focus. */
html body.page.app .detail{position:fixed;inset:0;z-index:3000;max-width:none;width:auto;height:auto}
.detail-caption{flex:1;min-width:0;display:grid;gap:.15rem}.detail-price{font-size:1.15rem}.detail-address{font-size:1rem;overflow-wrap:anywhere}
.detail .fullgallery{display:block;background:#111;overflow:visible;scroll-snap-type:none}
.detail .photo-stage{height:calc(100vh - 10rem);height:calc(100dvh - 10rem);min-height:12rem;touch-action:pan-y}
.detail .photo-slide{height:100%;width:100%}.detail .photo-slide[hidden]{display:none}
.detail .fullgallery .photo-slide img{display:block;width:100%;max-width:100%;height:100%;max-height:none;object-fit:contain;aspect-ratio:auto}
.detail .photo-stage .nophoto{height:100%;width:100%;aspect-ratio:auto;max-width:none;color:#fff;background:#222}
.photo-controls{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#fff;color:#1d2a24}
.photo-controls button{min-height:44px;padding:.4rem .6rem;border:3px solid #512888;border-radius:6px;background:#fff;color:#512888;font-weight:700}
.photo-controls button:disabled{opacity:.45}.photo-count{text-align:center;font-weight:700}
@media(max-width:760px){.detail-bar{padding:.45rem .5rem;gap:.35rem}.detail-bar .back{font-size:.8rem;padding:.4rem}.detail-caption .detail-price{font-size:1rem}.detail-caption .detail-address{font-size:.875rem}.photo-controls{font-size:.8rem}.photo-controls button{font-size:.8rem}}

html body.page.app [data-detail].detail{inset:0!important;width:100vw!important;max-width:100vw!important;height:100vh;height:100dvh;animation:none}

/* Detail source and copyright match the existing largest listing type. */
.detail-body .src-line,.detail-body .detail-copyright{font-size:1.9rem;line-height:1.2;color:#1d2a24}
.detail-body .courtesy-full{overflow-wrap:anywhere}

/* v17 #5 Dallas 18:56Z: NEFMLS 13.2(G)(2) reliability line on search results; 12px+ safety choice */
.results-reliable{font-size:12px!important;line-height:1.35;margin:.15rem 0 .35rem}
/* v17 #9 dj 18:58Z: Save search has no handler or dialog -> hidden everywhere (button rule) */
[data-save-search-open]{display:none!important}
/* v17 #9 dj 18:58Z: PUBLIC build only (Engineer public switch adds data-public-build on <html>): lead forms hidden, the "please call" phone line stays (Dallas #8/#9) */
html[data-public-build] form.leadform[data-lead]>:not(.lf-offline){display:none!important}
/* v17 #9: the Save your search menu item opens a page whose only control is hidden -> hide the item everywhere */
html body.page.app .apprail li[data-save-search-menu],html[data-m] body.page.app .apprail li[data-save-search-menu]{display:none!important}   /* beats theme.css html[data-m=menu] ... li{display:block!important} */
/* v19 Dave 10-31 19:56 ET: overlapping white dot edges made a white blob over Jacksonville; dark purple edge instead (dense areas read as deeper purple) */
html body .neighborhood-dot{border:1px solid #2d1650!important;background:#512888!important;box-shadow:none!important}
/* v19: neighborhood dot size by zoom (class set in drawNeighborhoodPins; inline styles are blocked by the CSP) */
html body .neighborhood-dot.nd4{width:4px!important;height:4px!important}
html body .neighborhood-dot.nd5{width:5px!important;height:5px!important}
html body .neighborhood-dot.nd7{width:7px!important;height:7px!important}
/* v19 Dave 20:3x ET: group marker = PURPLE number with a dot under it (never a bare number) */
html body .hood-cluster{display:flex!important;flex-direction:column;align-items:center;gap:2px;min-width:0;height:auto;padding:0;background:transparent!important;border:0!important;box-shadow:none!important;color:#512888!important}
html body .hood-cluster b{font:900 14px/1 system-ui,sans-serif;color:#512888;background:#fff;border:3px solid #512888;border-radius:999px;padding:3px 7px;box-shadow:0 1px 3px rgba(0,0,0,.3)}
html body .hood-cluster .cl-dot{display:block;width:9px;height:9px;border-radius:50%;background:#512888;border:1px solid #2d1650}
/* v19 Dave 11-01 photo 486: Just Listed search box (replaces the purple banner) + Show 24 more */
.jl-search{display:flex;align-items:stretch;max-width:40rem;margin:.4rem 0 .6rem;border:2px solid #512888;border-radius:10px;background:#fff;overflow:hidden}
.jl-search[hidden]{display:none}
.jl-search input{flex:1;min-width:0;border:0;padding:.65rem .8rem;font-size:1rem;background:#fff;color:#1d2a24}
.jl-search input:focus{outline:none}
.jl-search:focus-within{box-shadow:0 0 0 3px rgba(81,40,136,.25)}
.jl-search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.jl-search button{border:0;background:#512888;color:#fff;padding:0 1.1rem;font-weight:700;font-size:1rem;cursor:pointer}
.jl-search .jl-clear{background:#fff;color:#512888;padding:0 .7rem;font-size:1.3rem;line-height:1}
.jl-search .jl-clear[hidden]{display:none}
.jl-morewrap{text-align:center;margin:1rem 0 .4rem}
.jl-more{border:2px solid #512888;border-radius:10px;background:#512888;color:#fff;font-weight:700;font-size:1rem;padding:.6rem 1.4rem;cursor:pointer}
.jl-more[hidden]{display:none}
/* v20 Dave 11-01 video: when only a few dots are on the map (after tapping a numbered group), show them big so they are easy to see */
html body .neighborhood-dot.nd14{width:14px!important;height:14px!important;border:2px solid #fff!important;box-shadow:0 0 0 2px #512888,0 1px 4px rgba(0,0,0,.4)!important}
