/* Shared layout rhythm for search, cards, property pages and dialogs. */
:root{--layout-gap:16px;--control-radius:9px}
#browse .searchbar.filter-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:stretch;margin:0;width:100%}
#browse .searchbar.filter-controls>:is(details,select,button){min-width:0;max-width:none;width:100%;margin:0;align-self:stretch}
#browse .searchbar.filter-controls>details>summary,
#browse .searchbar.filter-controls>:is(select,button){box-sizing:border-box;min-height:46px;height:auto;border-radius:var(--control-radius);font-size:14px;font-weight:700;line-height:20px;padding:12px;text-transform:none}
#browse .searchbar.filter-controls>details>summary{display:flex;align-items:center;justify-content:space-between;text-align:left;list-style:none}
#browse .searchbar.filter-controls>details>summary::-webkit-details-marker{display:none}
#browse .searchbar.filter-controls>details>summary{background-image:none;padding-right:12px}
#browse .searchbar.filter-controls>details>summary:after{content:'⌄';display:block;position:static;margin-left:8px;font-size:16px}
#browse .searchbar.filter-controls>select{padding-right:32px;text-align:left;text-align-last:left;background-position:right 10px center}
#browse .searchbar.filter-controls>:is(#tourOnly,#specialOnly){padding:10px 8px;white-space:normal;line-height:1.4}
#browse .searchbar.filter-controls>.toolbar-actions{grid-column:1/-1;width:100%;height:auto;min-width:0;max-width:none;margin:2px 0 0;padding:12px 0 0;display:flex;flex-wrap:wrap;justify-content:flex-end;border-top:1px solid #dee5ea}
#browse .toolbar-actions .toggle{display:flex;max-width:100%;height:auto;padding:4px;gap:4px;background:#e9eff4;border-radius:10px}
#browse .toolbar-actions .toggle button{flex:1;min-height:40px;height:auto;font-size:14px;line-height:20px;padding:10px 16px;border-radius:7px}
#browse .range-panel,#browse .beds-baths-panel,#browse .must-haves-menu{box-sizing:border-box;max-width:calc(100vw - 32px);border-radius:12px;box-shadow:0 8px 28px #103a5c1a;z-index:1003}
#activeFilters{gap:8px;align-items:center}
#activeFilters button{min-height:36px;line-height:1.4;padding:8px 12px}
.workspace .toolbar{margin-bottom:18px;align-items:baseline;gap:12px}
.workspace .toolbar h2{line-height:1.3;margin-bottom:6px}
.workspace .toolbar .sub{font-size:14px;line-height:1.5}
#results .cards{gap:20px;align-items:stretch;grid-template-columns:repeat(2,minmax(0,1fr))}
#results.grid-only .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
#results .card{display:flex;flex-direction:column;min-width:0;border:1px solid #dce4ea;border-radius:14px;background:#fff;box-shadow:0 2px 8px #103a5c06}
#results .card .photo{height:auto;aspect-ratio:3/2;flex:none}
#results .card .card-info{display:flex;flex-direction:column;flex:1;min-width:0;gap:12px;padding:18px}
#results .card .card-info>:is(.bedroom-rents,.property-title-row,.area,.specs,.property-actions,.property-tour-picker){margin:0}
#results .card .property-title-row{gap:6px 12px}
#results .card .property-name{font-size:20px;line-height:1.3;letter-spacing:-.35px;margin:0;overflow-wrap:anywhere}
#results .card .area{font-size:14px;line-height:1.5;overflow-wrap:anywhere;color:#627180}
#results .card .specs{font-size:14px;line-height:1.5;margin-top:-4px}
#results .card .bedroom-rents{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:13px;line-height:1.5}
#results .card .bedroom-rents:empty{display:none}
#results .card .bedroom-rents>span{padding:4px 8px;background:#f4f7fa;border-radius:6px}
#results .card .card-price-contact{gap:10px}
#results .card .property-price-row{gap:6px 12px;align-items:baseline}
#results .card .price{font-size:21px!important;line-height:1.35;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
#results .card .price small{font-size:12px;letter-spacing:0;font-weight:500}
#results .card .property-title-phone{font-size:14px;line-height:1.5}
#results .card .quick-contact{gap:8px}
#results .card .quick-contact>*{min-height:46px;padding:10px 6px;font-size:14px;line-height:1.35;box-sizing:border-box}
#results .card .card-footer{margin-top:auto;padding-top:12px;border-top:1px solid #e5ebef;min-height:0;font-size:13px;line-height:1.5}
#results .card .property-tour-picker{padding:12px;border-radius:10px}
#results .card .tour-picker-heading{font-size:13px;line-height:1.5;margin-bottom:8px}
#results .card .property-tour-picker select{min-height:46px!important;max-width:100%;box-sizing:border-box}
#results .card .property-link-actions{gap:8px!important}
#results .card .property-link-actions>a{min-height:46px!important;font-size:13px!important;line-height:1.4;padding:10px 6px!important;box-sizing:border-box;overflow-wrap:anywhere}
#more{min-height:46px;margin:24px auto 0;padding:12px 20px;font-weight:700}
.property>*,.property>aside,.floorplan-info,.floorplan-unit{min-width:0}
.property>aside{padding:26px}
.property h1{line-height:1.2;overflow-wrap:anywhere}
.property aside>p{line-height:1.65}
.property .property-actions{gap:10px;margin-top:18px}
.property .property-actions>*{box-sizing:border-box;min-width:0;min-height:48px;margin:0;padding:12px 10px;font-size:14px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;text-align:center;display:flex;align-items:center;justify-content:center}
.property .property-price-row{gap:8px 14px;align-items:baseline}
.property .property-title-phone{font-size:16px}
.property .floorplan-section{margin:28px 0}
.floorplan-rows{gap:14px}.floorplan-row{gap:16px;padding:16px}
.floorplan-facts{gap:6px 14px;line-height:1.5}
.floorplan-units{gap:10px}.floorplan-unit{line-height:1.5}
.property .amenity-list{gap:10px 24px;line-height:1.6}
.property .unit-evidence{margin:24px 0;padding:20px;border-radius:12px}
#dialog .dialog-body{line-height:1.6}
#dialog .dialog-body>p{margin:12px 0;line-height:1.65}
#dialog .property-title-row h2{line-height:1.3;overflow-wrap:anywhere}
#dialog .property-link-actions,#dialog .detail-contact-actions{gap:10px!important;margin-top:16px}
#dialog .detail-contact-actions>*{min-height:48px;line-height:1.4}
.contact-viewer{box-sizing:border-box}.contact-viewer iframe{display:block;max-width:100%}
main>.grid{gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}
main>.grid .card{display:flex;flex-direction:column;min-width:0}
main>.grid .card>a{display:flex;flex-direction:column;flex:1;min-width:0}
main>.grid .copy{display:flex;flex-direction:column;flex:1;gap:10px;padding:20px}
main>.grid .copy>:is(h2,p,.bedroom-rents){margin:0;line-height:1.5}
main>.grid .copy .bottom{margin-top:auto;gap:12px;flex-wrap:wrap}
main>.grid .card-tours{padding:0 20px 20px}
main>.grid .card-tours:empty{display:none}
main>.grid .property-tour-picker{margin:0}
@media(min-width:1001px) and (max-width:1250px){#results:not(.grid-only):not(.map-only) .cards{grid-template-columns:minmax(0,1fr)}}
@media(min-width:641px) and (max-width:1000px){#results:not(.grid-only):not(.map-only) .cards{grid-template-columns:minmax(0,1fr)}#results.grid-only .cards,main>.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.property>aside{position:static}.property{gap:24px}}
@media(max-width:640px){
 #browse{padding-top:20px;padding-bottom:20px}
 #browse .searchbar.filter-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #browse .searchbar.filter-controls>details>summary,#browse .searchbar.filter-controls>:is(select,button){font-size:14px;min-height:48px;padding:12px 10px}
 #browse .searchbar.filter-controls>select{padding-right:30px}
 #browse .searchbar.filter-controls>.toolbar-actions{padding-top:12px;margin-top:4px}
 #browse .toolbar-actions .toggle{width:100%}
 #browse .toolbar-actions .toggle button{min-height:44px;font-size:13px;padding:10px 6px}
 .workspace{padding-top:22px}.workspace .toolbar h2{font-size:23px}
 #results .cards,#results.grid-only .cards,main>.grid{grid-template-columns:minmax(0,1fr);gap:18px}
 #results .card .card-info{padding:16px;gap:12px}
 #results .card .property-name{font-size:21px}
 #results .card .property-tour-picker select{font-size:16px!important}
 .property>aside{padding:20px}.property .property-actions{gap:8px}
 .floorplan-row{padding:12px;align-items:flex-start;gap:12px}
 .floorplan-units{display:grid;grid-template-columns:minmax(0,1fr)}.floorplan-unit{padding:12px}
 .floorplan-info h3{font-size:16px}.floorplan-facts{font-size:14px}
 #dialog .dialog-body{padding:18px 8px}
 .area-links{grid-template-columns:minmax(0,1fr);gap:10px}
}
@container(max-width:300px){#results .card .property-price-row{grid-template-columns:minmax(0,1fr)}#results .card .quick-contact{gap:6px}#results .card .quick-contact>*{font-size:13px}}

.initial-property-photo{display:block}.initial-property-photo img{width:100%;height:230px;object-fit:cover}.initial-property-card .card-info>p{font-size:14px}.initial-property-card .property-name a{color:inherit;text-decoration:none}

/* Shared columns keep each contact action directly below its destination link. */
:is(#results .card,#dialog .dialog-body) .card-action-layout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:stretch;min-width:0;width:100%}
:is(#results .card,#dialog .dialog-body) .card-action-layout>.property-link-actions,
:is(#results .card,#dialog .dialog-body) .card-action-layout>.aligned-contact-actions{display:contents!important}
:is(#results .card,#dialog .dialog-body) .card-action-layout>.property-link-actions>a{grid-column:span 2!important}
:is(#results .card,#dialog .dialog-body) .card-action-layout .aligned-contact-actions>a{grid-column:span 1}
:is(#results .card,#dialog .dialog-body) .card-action-layout .aligned-contact-actions>button{grid-column:3/span 2}
:is(#results .card,#dialog .dialog-body) .card-action-layout :is(a,button){display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:0;min-height:46px!important;margin:0!important;padding:10px 6px!important;border:1px solid #103a5c;border-radius:8px;font:700 14px/1.35 'DM Sans',Arial,sans-serif!important;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:normal;background:#103a5c;color:#fff}
:is(#results .card,#dialog .dialog-body) .card-action-layout .aligned-contact-actions>:is(a,button){background:#ffdb77;border-color:#ffdb77;color:#103a5c;cursor:pointer}
:is(#results .card,#dialog .dialog-body) .card-action-layout .aligned-contact-actions>:is(a,button):hover{background:#ffe077;border-color:#ffe077}
:is(#results .card,#dialog .dialog-body) .card-action-layout :is(a,button):focus-visible{outline:3px solid #98272d;outline-offset:3px}

.property .property-actions>.button{font:700 14px/1.35 'DM Sans',Arial,sans-serif!important;min-height:48px!important}

/* Keep rental facts legible across cards, dialogs, and full property pages. */
.rental-facts{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px;line-height:1.5;min-width:0}
.rental-facts>span{display:inline-flex;align-items:baseline;white-space:nowrap}
.rental-facts>span+span::before{content:'·';margin-right:12px;color:#627180}
.rental-facts .spec-label-short{display:none}
@media(max-width:640px){
 .rental-facts .spec-label-full{display:none}
 .rental-facts .spec-label-short{display:inline}
 #results .card .specs.rental-facts,#dialog .rental-facts,.property .rental-facts,main>.grid .rental-facts{font-size:14px;line-height:1.5;gap:6px 10px;margin:0}
 .rental-facts>span+span::before{margin-right:10px}
 .property>aside{padding:20px}
 #dialog .dialog-body .rental-facts{margin:12px 0}
}
