/* Public catalogue/detail additions. Existing cards and brand styles stay in styles.css. */
.image-placeholder { display:grid; place-items:center; width:100%; height:100%; min-height:120px; color:var(--muted); background:#e9ebe3; font-size:12px; text-align:center; padding:25px; }
.listing-state { padding:45px 20px; color:var(--muted); text-align:center; font-size:14px; }
.listing-state .text-link { margin-top:18px; }
.icon-button { display:inline-grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); background:transparent; color:var(--ink); font-size:19px; transition:background .2s; }
.icon-button:hover { background:#e9ece2; }
.all-properties-link { margin-top:38px; }
.carousel-controls { display:flex; justify-content:flex-end; gap:10px; align-items:center; margin-top:24px; }
.carousel-controls .text-link { margin-right:12px; font-size:11px; }
.grid-properties.is-carousel { --visible-cards:3; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - (var(--visible-cards) - 1) * 30px) / var(--visible-cards)); gap:30px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:6px 0; }
.grid-properties.is-carousel::-webkit-scrollbar { display:none; }
.is-carousel .property-card { scroll-snap-align:start; }
.property-card h3,.property-meta,.property-location { overflow-wrap:anywhere; }
/* Catalogue: same three-column cards, with a quiet filter rail. */
.property-page { padding-top:48px; padding-bottom:80px; }
.page-heading { margin-bottom:45px; }
.page-heading h1 { font-size:clamp(36px,4.3vw,58px); }
.page-heading>p:last-child { font-size:13px; color:var(--muted); margin-top:20px; }
.catalog-layout { display:grid; grid-template-columns:215px minmax(0,1fr); gap:42px; align-items:start; }
.catalog-sidebar { border-right:1px solid var(--line); padding-right:24px; }
.catalog-filters { display:grid; gap:20px; }
.filter-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; }
.filter-heading h2 { font-size:20px; letter-spacing:-.4px; }
.clear-filters { background:none; border:0; border-bottom:1px solid var(--line); padding:5px 0; color:var(--muted); font-size:10px; }
.catalog-field { min-width:0; }
.catalog-field label { display:block; margin-bottom:8px; font-size:11px; }
.catalog-field input,.catalog-field select,.sort-field select { width:100%; min-width:0; border:1px solid var(--line); padding:10px; font:inherit; font-size:12px; color:var(--ink); background:transparent; border-radius:3px; }
.filter-pair { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.filter-hint { font-size:10px; color:var(--muted); margin-top:-12px; }
.catalog-results { min-width:0; }
.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:30px; border-bottom:1px solid var(--line); padding-bottom:18px; }
.sort-field { display:flex; align-items:center; gap:12px; font-size:11px; }
.sort-field select { width:auto; }
#open-filters { display:none; }
#filter-drawer { margin:0 0 0 auto; width:min(420px,100%); max-width:100%; height:100dvh; max-height:100dvh; border:0; padding:24px; background:var(--paper); color:var(--ink); }
#filter-drawer .filter-heading { justify-content:flex-end; }
#filter-drawer .filter-heading h2 { display:none; }
#filter-drawer::backdrop,#image-viewer::backdrop { background:rgba(20,26,21,.7); }
.drawer-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:25px; }
.drawer-heading h2 { font-size:25px; }
#apply-filters { width:100%; margin-top:25px; }
/* Complete property sheet. */
.breadcrumb { margin-bottom:36px; font-size:12px; }
.detail-heading { display:flex; justify-content:space-between; gap:40px; align-items:flex-end; margin-bottom:35px; }
.detail-heading>div { min-width:0; }
.detail-heading h1 { font-size:clamp(34px,4vw,56px); overflow-wrap:anywhere; }
.detail-heading .eyebrow { display:flex; gap:16px; }
.detail-location { color:var(--muted); margin-top:16px; font-size:13px; }
.detail-price-block { flex-shrink:0; text-align:right; }
#detail-price { font-size:25px; letter-spacing:-.5px; }
.detail-featured { display:inline-block; margin-bottom:12px; color:var(--accent); font-size:11px; }
.gallery-image { height:clamp(350px,44vw,620px); background:#e9ebe3; position:relative; touch-action:pan-y pinch-zoom; }
.gallery-image img { width:100%; height:100%; object-fit:cover; }
.gallery-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:18px; }
.gallery-navigation { display:flex; align-items:center; justify-content:center; gap:16px; }
.gallery-counter { font-size:12px; color:var(--muted); min-width:45px; text-align:center; }
.gallery-toolbar .text-link { font-size:12px; }
.gallery-thumbs { display:flex; gap:12px; overflow-x:auto; padding:4px; margin-bottom:18px; }
.gallery-thumb { position:relative; width:110px; height:76px; flex-shrink:0; padding:0; border:2px solid transparent; background:#e9ebe3; }
.gallery-thumb img { width:100%; height:100%; object-fit:cover; }
.gallery-thumb .image-placeholder { min-height:0; padding:5px; font-size:9px; }
.gallery-thumb[aria-pressed="true"] { border-color:var(--accent); }
.detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:85px; margin-top:40px; align-items:start; }
.detail-section { padding:32px 0; border-top:1px solid var(--line); }
.detail-section h2 { font-size:27px; letter-spacing:-.7px; margin-bottom:25px; }
.detail-copy { white-space:pre-line; font-size:14px; color:var(--muted); line-height:1.9; overflow-wrap:anywhere; }
.detail-section .text-link { margin-top:20px; font-size:12px; }
.detail-facts { margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 30px; }
.detail-facts dt { color:var(--muted); font-size:11px; }
.detail-facts dd { margin:5px 0 0; font-size:14px; white-space:pre-line; overflow-wrap:anywhere; }
.detail-labels { display:flex; flex-wrap:wrap; gap:12px 26px; margin:0; padding:0; list-style:none; font-size:13px; color:var(--muted); }
.detail-labels li { border-bottom:1px solid var(--line); padding-bottom:8px; }
.detail-unit+.detail-unit { border-top:1px solid var(--line); margin-top:25px; padding-top:25px; }
.detail-unit h3 { font-size:19px; margin-bottom:20px; }
.detail-unit .detail-copy { margin-top:20px; }
.property-video { display:block; width:100%; aspect-ratio:16/9; border:0; margin-top:16px; }
.detail-contact { position:sticky; top:120px; border-top:1px solid var(--line); padding-top:32px; }
.detail-contact h2 { font-size:28px; letter-spacing:-.8px; }
.detail-contact>p:not(.eyebrow) { font-size:12px; line-height:1.9; color:var(--muted); margin:18px 0 24px; }
.detail-contact>.button { display:flex; margin-top:12px; }
.detail-advisor { display:flex; align-items:center; gap:12px; margin-top:26px; font-size:13px; }
.detail-advisor img { border-radius:50%; object-fit:cover; }
.detail-advisor small { display:block; color:var(--muted); font-size:10px; }
#image-viewer { width:min(1400px,calc(100% - 40px)); max-height:calc(100dvh - 40px); border:0; padding:25px; background:var(--paper); color:var(--ink); }
.viewer-close { display:block; margin:0 0 12px auto; }
.viewer-image { height:calc(100dvh - 210px); touch-action:pan-y pinch-zoom; }
.viewer-image img { width:100%; height:100%; object-fit:contain; }
#image-viewer .gallery-navigation { margin-top:20px; }
@media (max-width:1100px) {
    .grid-properties.is-carousel { grid-auto-columns:calc((100% - (var(--visible-cards) - 1) * 22px) / var(--visible-cards)); gap:22px; }
    .catalog-layout { grid-template-columns:190px minmax(0,1fr); gap:25px; }
    .catalog-results .grid-properties { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .detail-layout { gap:40px; grid-template-columns:minmax(0,1fr) 270px; }
    .detail-price-block { flex-shrink:1; }
}
@media (max-width:850px) {
    .grid-properties.is-carousel { --visible-cards:2; }
    .catalog-layout { grid-template-columns:1fr; }
    .catalog-sidebar { display:none; }
    #open-filters { display:inline-flex; min-height:42px; padding:10px 16px; }
    .catalog-toolbar { flex-wrap:wrap; }
    .detail-heading { align-items:flex-start; flex-direction:column; gap:25px; }
    .detail-price-block { text-align:left; }
    .detail-layout { grid-template-columns:1fr; gap:20px; }
    .detail-contact { position:static; }
    .sort-field { gap:8px; }
}
@media (max-width:600px) {
    .grid-properties.is-carousel { --visible-cards:1; }
    .property-page { padding-top:30px; padding-bottom:55px; }
    .page-heading { margin-bottom:30px; }
    .catalog-results .grid-properties { grid-template-columns:1fr; }
    .catalog-toolbar { gap:16px; }
    .sort-field { width:100%; justify-content:space-between; }
    .catalog-field input,.catalog-field select { font-size:16px; }
    .gallery-image { height:360px; }
    .gallery-toolbar { align-items:flex-start; flex-wrap:wrap; }
    .gallery-thumb { width:84px; height:62px; }
    .detail-facts { gap:18px; }
    .detail-heading h1 { font-size:36px; letter-spacing:-1.4px; }
    .detail-copy { font-size:13px; }
    .detail-section h2 { font-size:25px; }
    #image-viewer { width:calc(100% - 20px); padding:15px; }
}
@media (prefers-reduced-motion:reduce) { .is-carousel { scroll-behavior:auto; } }
