/* Public page introductions: a single reading axis, measured type and clear space. */
body.reference-design .page-intro{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;min-width:0;margin:0 0 32px;padding:0;text-align:left}
body.reference-design .page-intro :is(.eyebrow,.text-subtitle){display:flex;align-items:center;gap:12px;max-width:100%;margin:0 0 14px;padding:0;color:#886526;font-size:11px;line-height:1.6;letter-spacing:.14em;text-transform:uppercase}
body.reference-design .page-intro :is(.eyebrow,.text-subtitle)::before{content:'';display:block;flex:0 0 28px;width:28px;height:1px;background:#c5a46b}
body.reference-design .page-intro h1{max-width:28ch;margin:0;padding:0;color:#102c46;font-size:clamp(30px,3.4vw,48px)!important;font-weight:500!important;line-height:1.2!important;letter-spacing:-.025em!important;text-wrap:balance;overflow-wrap:break-word}
body.reference-design .page-intro .page-intro-lead{max-width:760px;margin:16px 0 0;padding:0;color:#526779;font-size:16px;font-weight:400;line-height:1.8;text-wrap:pretty}
body.reference-design :is(.archive-page,.search-page){padding-top:52px;padding-bottom:64px}
body.reference-design .archive-page{padding-top:44px}
body.reference-design .archive-page .page-intro .page-intro-lead{max-width:980px}
body.reference-design .archive-page .page-intro{padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid #e6e1d7}
body.reference-design :is(.archive-page,.map-search-heading)>.estate-search .transaction-tabs{justify-content:flex-start;margin-bottom:16px}
body.reference-design .archive-page .archive-toolbar{padding:0;margin-top:24px;margin-bottom:26px}
/* Informational pages share a quiet title band, without splitting text across the viewport. */
body.reference-design .page-banner:not(.photo-banner){display:block;padding:52px 0 46px;background:linear-gradient(110deg,#f0eee7,#faf8f3 80%);border-bottom:1px solid #e6e1d7;text-align:left}
body.reference-design .page-banner>.container{padding-top:0;padding-bottom:0}
body.reference-design .page-banner .page-intro{margin:0}
body.reference-design .page-banner+section.container{padding-top:44px}
body.reference-design .photo-banner{display:block;min-height:300px;padding:56px 0;text-align:left}
body.reference-design .photo-banner>div.container{max-width:1290px;width:calc(100% - 64px);margin:auto;padding:0}
body.reference-design .photo-banner .page-intro h1{color:#fff}
body.reference-design .photo-banner .page-intro .page-intro-lead{color:#e8eef2!important}
body.reference-design .photo-banner .page-intro{max-width:850px}
body.reference-design .about-intro{max-width:1290px;padding-top:52px;text-align:left}
body.reference-design .about-intro .page-intro{max-width:900px;margin-bottom:22px}
body.reference-design .about-intro>p{max-width:760px;margin:0 0 24px;color:#526779;line-height:1.8}
body.reference-design .about-intro>img{max-width:100%;height:420px;margin:32px 0 0;border-radius:12px}
body.reference-design .policy-page{padding-top:52px}
body.reference-design .policy-page .page-intro{padding-bottom:26px;border-bottom:1px solid #e6e1d7}
body.reference-design .policy-page>p{margin:0 0 20px}
body.reference-design .page-error{padding-top:64px;padding-bottom:80px}
body.reference-design .legal-page-banner{padding:30px 0 48px}
body.reference-design .legal-page-banner .legal-breadcrumb{margin:0 0 28px}
body.reference-design .legal-page-banner .page-intro{margin-bottom:28px}
body.reference-design .legal-page-banner .page-intro h1{color:#fff}
body.reference-design .legal-page-banner .page-intro .page-intro-lead{color:#c3d0d9}
/* Search results use a compact toolbar instead of a second oversized title. */
body.reference-design .map-search-heading{padding-top:42px;padding-bottom:28px}
body.reference-design .map-search-heading .page-intro{margin-bottom:26px}
body.reference-design .map-search-heading .page-intro h1{font-size:clamp(30px,3vw,42px)!important}
body.reference-design .sidebar-search-layout{gap:28px}
body.reference-design .sidebar-search-layout .search-results{min-width:0}
body.reference-design .search-results-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;padding:0 0 16px;border-bottom:1px solid #e6e1d7;min-height:44px}
body.reference-design .search-results-heading h2{margin:0;font-size:20px!important;font-weight:500!important;line-height:1.4!important}
body.reference-design .search-results-heading p{flex-shrink:0;margin:0;padding:7px 12px;border:1px solid #e1e2de;border-radius:6px;background:#fff;color:#526779;font-size:12px;line-height:1.5}
body.reference-design .map-results .section-heading{align-items:center;gap:16px;margin-bottom:20px}
body.reference-design .map-results .section-heading h2{margin:0;font-size:22px!important;line-height:1.4!important}
body.reference-design .map-results .section-heading p{margin:0;font-size:12px;color:#526779}
/* Property titles keep price and actions together while following the same type hierarchy. */
body.reference-design .property-title{padding-top:32px;padding-bottom:28px}
body.reference-design .property-title .breadcrumb{margin:0 0 24px;font-size:12px;line-height:1.7}
body.reference-design .property-title .detail-heading{gap:28px;margin:0;align-items:center}
body.reference-design .property-title .detail-heading h1{margin:12px 0 10px;font-size:clamp(28px,3vw,42px)!important;font-weight:500!important;line-height:1.25!important;max-width:28ch}
body.reference-design .property-title .property-tags{gap:8px}
body.reference-design .property-title .property-location{margin:0;font-size:14px;font-weight:400;line-height:1.7}
body.reference-design .property-title .detail-price{margin:0 0 14px;font-size:24px;font-weight:500;line-height:1.4}
body.reference-design .property-title .property-actions{gap:8px}
body.reference-design .property-title [data-action-message]:empty{display:none}
body.reference-design :is(.center-heading,.box-title){display:block;max-width:880px;margin:0 auto 32px}
body.reference-design .center-heading>.eyebrow{margin:0 0 12px}
body.reference-design .center-heading>h2{margin:0;line-height:1.3!important}
body.reference-design .flat-slider .heading h1{max-width:900px;margin:0 auto 20px;text-wrap:balance}
@media(max-width:900px){
 body.reference-design :is(.archive-page,.search-page,.about-intro,.policy-page){padding-top:36px}
 body.reference-design .sidebar-search-layout{gap:28px}
 body.reference-design .property-title .detail-heading{align-items:flex-start}
}
@media(max-width:600px){
 body.reference-design .page-intro{margin-bottom:26px}
 body.reference-design .page-intro :is(.eyebrow,.text-subtitle){font-size:10px;letter-spacing:.11em;margin-bottom:12px;gap:10px}
 body.reference-design .page-intro :is(.eyebrow,.text-subtitle)::before{flex-basis:22px;width:22px}
 body.reference-design .page-intro h1{font-size:30px!important;line-height:1.25!important;letter-spacing:-.02em!important}
 body.reference-design .page-intro .page-intro-lead{margin-top:14px;font-size:14px;line-height:1.8}
 body.reference-design .page-banner:not(.photo-banner){padding:34px 0 32px}
 body.reference-design .page-banner+section.container{padding-top:32px}
 body.reference-design .photo-banner{padding:38px 0;min-height:260px}
 body.reference-design .photo-banner>div.container{width:calc(100% - 32px)}
 body.reference-design .archive-page .page-intro{margin-bottom:22px;padding-bottom:22px}
 body.reference-design .map-search-heading{padding-top:32px;padding-bottom:24px}
 body.reference-design .map-search-heading .page-intro h1{font-size:30px!important}
 body.reference-design .about-intro>img{height:240px;margin-top:26px}
 body.reference-design .legal-page-banner{padding-top:24px;padding-bottom:34px}
 body.reference-design .legal-page-banner .legal-breadcrumb{margin-bottom:22px}
 body.reference-design .search-results-heading{gap:10px}
 body.reference-design .search-results-heading h2{font-size:18px!important}
 body.reference-design .search-results-heading p{font-size:11px;padding:6px 9px}
 body.reference-design .property-title .detail-heading{gap:20px}
 body.reference-design .property-title .breadcrumb{margin-bottom:20px}
 body.reference-design .property-title .detail-heading h1{font-size:30px!important}
 body.reference-design .property-title .detail-price{font-size:22px}
}

/* Map pages stay inside the same content block as their title and search form. */
body.reference-design .container.map-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-bottom:64px}
body.reference-design .container.map-layout .map-results{min-width:0;width:100%;max-width:none;margin:0;padding:0}
body.reference-design .container.map-layout .map-panel{min-width:0;position:sticky;top:98px}
body.reference-design .container.map-layout .map-panel #estate-map{height:clamp(460px,calc(100dvh - 180px),680px);min-height:0;border:1px solid #e2e1da;border-radius:12px 12px 0 0;overflow:hidden}
body.reference-design .container.map-layout .map-help{margin:0;padding:12px 14px;background:#fff;border:1px solid #e2e1da;border-top:0;border-radius:0 0 12px 12px;color:#617080;font-size:12px;line-height:1.7}
body.reference-design .container.map-top{gap:32px}
body.reference-design .container.map-top .map-panel{position:relative;top:0;width:100%}
body.reference-design .container.map-top .map-panel #estate-map{height:480px}
body.reference-design .container.map-top .map-results .property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){
 body.reference-design .container.map-layout:not(.map-top) .map-results .property-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
 body.reference-design .container.map-layout{grid-template-columns:1fr;gap:28px;margin-bottom:48px}
 body.reference-design .container.map-layout .map-panel{position:relative;top:0;grid-row:1}
 body.reference-design .container.map-layout .map-panel #estate-map{height:400px}
 body.reference-design .container.map-layout .map-results .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 body.reference-design .container.map-layout{gap:24px;margin-bottom:36px}
 body.reference-design .container.map-layout .map-panel #estate-map{height:340px}
 body.reference-design .container.map-layout .map-results .property-grid{grid-template-columns:1fr}
 body.reference-design .container.map-layout .listing-controls{gap:8px}
}

/* List cards have two independent columns; image ratios cannot widen the photo column. */
body.reference-design .property-grid.list-layout .homelengo-box.property-card{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:stretch}
body.reference-design .list-layout .homelengo-box.property-card .archive-top{position:relative;width:100%;min-width:0;min-height:240px;height:auto;overflow:hidden}
body.reference-design .list-layout .homelengo-box.property-card .images-group{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0}
body.reference-design .list-layout .homelengo-box.property-card .images-style{position:absolute;inset:0;width:100%;max-width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:auto}
body.reference-design .list-layout .homelengo-box.property-card .images-style img{display:block;width:100%;height:100%;object-fit:cover}
body.reference-design .list-layout .homelengo-box.property-card .archive-bottom{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-width:0;padding:24px}
body.reference-design .list-layout .homelengo-box.property-card .content-top{min-width:0;margin:0;padding:0;border:0}
body.reference-design .list-layout .homelengo-box.property-card .card-title{display:block;min-height:0;max-width:100%;margin:0;overflow:visible;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;-webkit-line-clamp:unset}
body.reference-design .list-layout .homelengo-box.property-card .meta-list{margin-top:16px;gap:14px;white-space:normal;flex-wrap:wrap}
body.reference-design .list-layout .homelengo-box.property-card .content-bottom{margin:0;padding-top:18px;border-top:1px solid #e6e1d7;gap:14px;min-width:0}
body.reference-design .list-layout .homelengo-box.property-card .price{max-width:100%;white-space:normal;overflow-wrap:anywhere;margin-bottom:0}
@media(max-width:900px) and (min-width:701px){
 body.reference-design .property-grid.list-layout .homelengo-box.property-card{grid-template-columns:minmax(0,260px) minmax(0,1fr)}
 body.reference-design .list-layout .homelengo-box.property-card .archive-bottom{padding:22px}
}
@media(max-width:700px){
 body.reference-design .property-grid.list-layout .homelengo-box.property-card{grid-template-columns:minmax(0,1fr)}
 body.reference-design .list-layout .homelengo-box.property-card .archive-top{height:auto;min-height:0;aspect-ratio:1.52}
 body.reference-design .list-layout .homelengo-box.property-card .archive-bottom{padding:20px;gap:20px}
}

/* Keep each regular page full: 12 in three columns, or 8 in two/one. */
body.reference-design :is(.archive-page,.container.map-top) .property-grid:not(.list-layout){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1024px){
 body.reference-design :is(.archive-page,.container.map-top) .property-grid:not(.list-layout){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 body.reference-design :is(.archive-page,.container.map-top) .property-grid:not(.list-layout){grid-template-columns:minmax(0,1fr)}
 body.reference-design .map-results>.section-heading{flex-wrap:wrap;gap:8px;margin-bottom:24px}
}
