/* Berg Estate DDF Listings – inherits the theme's design tokens (theme.json presets via the --be-* variables
   defined in the theme's site.css, with wp preset fallbacks), so a palette/font change in theme.json applies here too. */
.beddf {
	--beddf-accent: var(--be-accent, var(--wp--preset--color--accent, currentColor));
	--beddf-accent-dark: var(--be-accent-dark, var(--wp--preset--color--accent-dark, currentColor));
	--beddf-text: var(--be-text, var(--wp--preset--color--text, inherit));
	--beddf-muted: var(--be-muted, var(--wp--preset--color--muted, #6b6f78));
	--beddf-light: var(--be-light, var(--wp--preset--color--light, #f4f5f8));
	--beddf-border: var(--be-border, var(--wp--preset--color--border, #e2e4ea));
	--beddf-bg: var(--wp--preset--color--white, #fff);
	--beddf-radius: var(--wp--custom--radius, 0px);
	--beddf-gap: var(--wp--preset--spacing--40, 1.5rem);
	color: var(--beddf-text);
}
.beddf *, .beddf *::before, .beddf *::after { box-sizing: border-box; }
.beddf-small, .beddf .beddf-small { font-size: var(--wp--preset--font-size--small, .875rem); color: var(--beddf-muted); }

/* Search form */
.beddf .beddf-search { max-width: none; width: 100%; box-sizing: border-box; }
.beddf-search { background: var(--beddf-light); border: 1px solid var(--beddf-border); border-radius: var(--beddf-radius); padding: var(--beddf-gap); margin: 0 0 var(--beddf-gap); }
.beddf-search-fields { display: grid; gap: .75rem 1rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.beddf-search-fields .beddf-field { margin: 0; }
.beddf-search-fields .beddf-field:first-child { grid-column: span 2; }
@media (max-width: 600px) { .beddf-search-fields .beddf-field:first-child { grid-column: auto; } }
.beddf-search label { display: block; font-size: var(--wp--preset--font-size--small, .875rem); font-weight: 600; margin-bottom: .25rem; }
.beddf-search select { width: 100%; min-height: 2.75rem; padding: .5rem; border: 1px solid var(--beddf-border); border-radius: var(--beddf-radius); background: var(--beddf-bg); color: var(--beddf-text); font: inherit; }
.beddf-search-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; }
.beddf-reset { color: var(--beddf-muted); }
.beddf-results-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.beddf-count { font-weight: 600; margin: 0; }
.beddf-sort { font-size: var(--wp--preset--font-size--small, .875rem); color: var(--beddf-muted); }
.beddf-sort a { margin-left: .35rem; }
.beddf-sort strong { margin-left: .35rem; color: var(--beddf-text); }
.beddf-comm-title { margin-top: 0; }
.beddf-comm-intro { max-width: 70ch; margin: 0 0 1.25rem; line-height: 1.6; }
.beddf-comm-intro p { margin: 0; }

/* Cards */
.beddf-grid { display: grid; gap: var(--beddf-gap); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.beddf-card { display: flex; flex-direction: column; background: var(--beddf-bg); border: 1px solid var(--beddf-border); border-radius: var(--beddf-radius); overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.beddf-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); transform: translateY(-2px); }
.beddf-card-media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--beddf-light); overflow: hidden; }
.beddf-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.beddf-nophoto { position: absolute; inset: 0; display: grid; place-items: center; color: var(--beddf-muted); font-size: .875rem; }
.beddf-tag { position: absolute; left: .75rem; top: .75rem; background: var(--beddf-bg); color: var(--beddf-text); font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; padding: .25rem .5rem; border-radius: var(--beddf-radius); }
.beddf-tag-own { left: auto; right: .75rem; background: var(--beddf-accent); color: var(--beddf-bg); }
.beddf-card-body { display: flex; flex-direction: column; gap: .35rem; padding: 1rem; flex: 1; }
.beddf-price { font-family: var(--wp--preset--font-family--rozha-one, inherit); font-size: var(--wp--preset--font-size--large, 1.5rem); line-height: 1.1; color: var(--beddf-accent-dark); margin: 0; }
.beddf-card-title { font-size: var(--wp--preset--font-size--medium, 1.05rem); line-height: 1.3; margin: 0; font-family: var(--wp--preset--font-family--work-sans, inherit); }
.beddf-card-title a { color: inherit; text-decoration: none; }
.beddf-card-title a:hover, .beddf-card-title a:focus { color: var(--beddf-accent); text-decoration: underline; }
.beddf-card-loc { margin: 0; color: var(--beddf-muted); font-size: .9rem; }
.beddf-facts { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem .9rem; padding: 0; margin: .25rem 0 0; font-size: .9rem; }
.beddf-facts li + li::before { content: ""; }
.beddf-broker { margin: .25rem 0 0; font-size: .85rem; }
.beddf-card-foot { margin-top: auto; padding-top: .75rem; border-top: 1px solid var(--beddf-border); display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; }
.beddf-mls { font-size: .8rem; color: var(--beddf-muted); margin: 0; }
/* CREA: "Powered by REALTOR.ca" at least 90 px wide, 1:1 aspect ratio (never stretched). */
.beddf-powered { display: inline-block; line-height: 0; flex: 0 0 auto; }
.beddf-powered img { width: 110px; min-width: 90px; height: auto; max-width: none; }

/* Pagination */
.beddf-pagination { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: center; margin: calc(var(--beddf-gap) * 1.5) 0; }
.beddf-page { min-width: 2.5rem; padding: .5rem .75rem; text-align: center; border: 1px solid var(--beddf-border); border-radius: var(--beddf-radius); text-decoration: none; color: var(--beddf-text); }
.beddf-page:hover, .beddf-page:focus { border-color: var(--beddf-accent); color: var(--beddf-accent); }
.beddf-page.current { background: var(--beddf-accent); border-color: var(--beddf-accent); color: var(--beddf-bg); }
.beddf-page.gap { border: 0; }
.beddf-empty { padding: var(--beddf-gap); background: var(--beddf-light); }
.beddf-more { text-align: center; margin-top: var(--beddf-gap); }

/* Terms / disclaimers */
.beddf-disclaimer { margin-top: calc(var(--beddf-gap) * 1.5); }
.beddf-terms { font-size: .8rem; color: var(--beddf-muted); border-top: 1px solid var(--beddf-border); padding-top: .75rem; margin-top: .75rem; }
.beddf-terms summary { cursor: pointer; font-weight: 600; color: var(--beddf-text); }
.beddf-terms p { margin: .5rem 0; }
.beddf-updated { margin: 0; }

/* Single listing */
.beddf-detail { margin-top: 0; }
.beddf-crumbs { margin-bottom: .75rem; }
.beddf-crumbs a { color: inherit; }
.beddf-head { display: flex; justify-content: space-between; gap: var(--beddf-gap); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--beddf-gap); }
.beddf-title { margin: 0; font-size: var(--wp--preset--font-size--xx-large, clamp(1.75rem, 3vw, 2.5rem)); }
.beddf-loc { margin: .25rem 0 0; color: var(--beddf-muted); }
.beddf-head-side { text-align: right; }
@media (max-width: 700px) { .beddf-head-side { text-align: left; } }
.beddf-price-lg { font-size: var(--wp--preset--font-size--x-large, 2rem); }
.beddf-broker-lg { font-size: 1rem; margin: .35rem 0; }
.beddf-gallery { margin-bottom: var(--beddf-gap); }
.beddf-gallery-main { position: relative; margin: 0; background: var(--beddf-light); aspect-ratio: 3 / 2; overflow: hidden; }
.beddf-gallery-main img { width: 100%; height: 100%; object-fit: contain; display: block; }
.beddf-gal-prev, .beddf-gal-next { position: absolute; top: 50%; transform: translateY(-50%); width: 3rem; height: 3rem; border: 0; border-radius: var(--beddf-radius); background: rgba(255,255,255,.9); color: var(--beddf-text); font-size: 2rem; line-height: 1; cursor: pointer; }
.beddf-gal-prev { left: .75rem; } .beddf-gal-next { right: .75rem; }
.beddf-gal-prev:focus-visible, .beddf-gal-next:focus-visible { outline: 2px solid var(--beddf-accent); }
.beddf-gal-count { position: absolute; right: .75rem; bottom: .75rem; background: rgba(0,0,0,.6); color: #fff; font-size: .8rem; padding: .2rem .5rem; }
.beddf-thumbs { list-style: none; display: flex; gap: .5rem; overflow-x: auto; padding: .5rem 0 0; margin: 0; scrollbar-width: thin; }
.beddf-thumbs li { flex: 0 0 auto; }
.beddf-thumbs a { display: block; width: 96px; aspect-ratio: 4 / 3; border: 2px solid transparent; opacity: .75; }
.beddf-thumbs a[aria-current="true"], .beddf-thumbs a:hover { border-color: var(--beddf-accent); opacity: 1; }
.beddf-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.beddf-cols { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: calc(var(--beddf-gap) * 1.5); align-items: start; }
@media (max-width: 900px) { .beddf-cols { grid-template-columns: 1fr; } }
.beddf-side { position: sticky; top: 1.5rem; }
.beddf-keyfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 1px; background: var(--beddf-border); border: 1px solid var(--beddf-border); margin: 0 0 var(--beddf-gap); }
.beddf-keyfacts div { background: var(--beddf-bg); padding: .75rem 1rem; }
.beddf-keyfacts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--beddf-muted); }
.beddf-keyfacts dd { margin: .2rem 0 0; font-weight: 600; font-size: 1.1rem; }
.beddf-section { margin: 0 0 calc(var(--beddf-gap) * 1.5); }
.beddf-section h2 { font-size: var(--wp--preset--font-size--large, 1.5rem); margin: 0 0 .75rem; }
.beddf-detail-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--beddf-gap); }
.beddf-detail-group h3 { font-size: 1rem; margin: 0 0 .5rem; }
.beddf-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.beddf-table th, .beddf-table td { text-align: left; vertical-align: top; padding: .4rem .5rem .4rem 0; border-bottom: 1px solid var(--beddf-border); }
.beddf-table th { font-weight: 600; width: 45%; color: var(--beddf-muted); }
.beddf-rooms th { width: auto; }
.beddf-map { height: 360px; background: var(--beddf-light); border: 1px solid var(--beddf-border); z-index: 0; }
.beddf-attribution { border-top: 1px solid var(--beddf-border); padding-top: 1rem; }
.beddf-powered-row { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .75rem 0; }
.beddf-inquiry { margin: 0; }
.beddf-inquiry-title { margin-top: 0; font-size: var(--wp--preset--font-size--large, 1.5rem); }
.beddf-inquiry .be-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .75rem; }
@media (max-width: 420px) { .beddf-inquiry .be-row { grid-template-columns: 1fr; } }
.beddf-inquiry input[type="text"], .beddf-inquiry input[type="email"], .beddf-inquiry input[type="tel"], .beddf-inquiry textarea { width: 100%; }
.beddf-request { border: 0; padding: 0; margin: 0 0 .75rem; display: flex; gap: .25rem 1rem; flex-wrap: wrap; }
.beddf-request legend { font-weight: 600; margin-bottom: .25rem; padding: 0; }
.beddf-notice { margin-bottom: var(--beddf-gap); }
.beddf-detail-placeholder { text-align: center; }

/* Footer trademark statement (Rule 6(c)) */
.beddf-trademark { display: flex; gap: 1rem; align-items: center; font-size: .75rem; line-height: 1.5; opacity: .85; margin-top: 1rem; }
.beddf-trademark p { margin: 0; }
.beddf-brokerage-logo { max-height: 40px; width: auto; flex: 0 0 auto; }
.beddf-footer-fallback { max-width: var(--wp--style--global--wide-size, 1200px); margin: 0 auto; padding: 1rem; }
@media (max-width: 600px) { .beddf-trademark { flex-direction: column; align-items: flex-start; } }
.beddf-terms-note { flex-basis: 100%; color: var(--beddf-muted); }

/* 1.0.6 – tap targets of at least 24 px (sort links, breadcrumbs) */
.beddf-sort a, .beddf-sort strong { display: inline-block; min-height: 24px; line-height: 24px; padding: 0 .3rem; margin-left: .15rem; }
.beddf-crumbs a { display: inline-block; min-height: 24px; line-height: 24px; padding: 0 .15rem; }
.beddf-crumbs a:first-child { padding-left: 0; }

/* 1.0.6 – map placeholder until Leaflet is loaded (on scroll or tap) */
.beddf-map[data-lazy] { cursor: pointer; display: flex; align-items: center; justify-content: center; }
.beddf-map-load { font: inherit; border: 1px solid var(--beddf-border); background: var(--beddf-bg); color: var(--beddf-text); border-radius: var(--beddf-radius); min-height: 44px; padding: .5rem 1.1rem; cursor: pointer; }

/* 1.0.6 – "Filters" button: narrow phones (<= 380 px, e.g. a Galaxy Z Fold cover screen) see the listings first */
.beddf-filters-toggle { display: none; }
@media (max-width: 380px) {
	.beddf-filters-toggle:not([hidden]) { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem 1.1rem; margin: 0 0 1rem; font: inherit; font-weight: 600; color: var(--beddf-text); background: var(--beddf-light); border: 1px solid var(--beddf-border); border-radius: var(--beddf-radius); cursor: pointer; }
	.beddf-filters-icon { width: 16px; height: 12px; background: linear-gradient(currentColor 0 0) 0 0 / 100% 2px no-repeat, linear-gradient(currentColor 0 0) 50% 50% / 70% 2px no-repeat, linear-gradient(currentColor 0 0) 50% 100% / 40% 2px no-repeat; }
	.beddf-filters-toggle[aria-expanded="true"] { background: var(--beddf-bg); }
	.beddf-search.beddf-collapsible:not(.is-open) { display: none; }
}
