/* INVEST-STROY catalog refinement, 2026-09-10.
   The extra .catalog-refined scope intentionally wins over historic page styles. */
.catalog-refined { --catalog-line:#dfe7ef; --catalog-muted:#61758b; }
.catalog-refined *, .catalog-refined *::before, .catalog-refined *::after { box-sizing:border-box; }
.catalog-refined .apartment-catalog__head h1 { letter-spacing:-.035em; }
.catalog-refined .apartment-catalog__head p { max-width:640px; color:#61758b; }
.catalog-refined .apartment-filter { box-shadow:0 5px 22px rgba(29,61,110,.045); border-radius:20px; }
.catalog-refined .apartment-filter__grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.catalog-refined .apartment-filter__field--wide { grid-column:auto; }
.catalog-refined .apartment-filter__quick-toggle { min-height:52px; }
.catalog-refined .apartment-filter__quick-toggle:focus-within { outline:3px solid rgba(61,123,180,.25); outline-offset:2px; }
.catalog-refined .apartment-display-bar { flex-wrap:wrap; gap:12px 20px; margin:24px 0 18px; }
.catalog-refined .apartment-display-bar__hint { margin-right:auto; color:#61758b; font-size:14px; font-weight:400; }
.catalog-refined .apartment-display-bar__hint strong { color:#1d3d6e; font-size:18px; font-weight:800; }
.catalog-refined .apartment-results-sort { display:flex; align-items:center; gap:10px; min-width:0; }
.catalog-refined .apartment-results-sort > span { font-size:12px; color:#61758b; }
.catalog-refined .apartment-results-sort select { width:225px; max-width:100%; min-height:46px; padding:0 32px 0 12px; border:1px solid #dce5ee; border-radius:12px; background:#fff; color:#1d3d6e; font:inherit; font-size:14px; cursor:pointer; }
.catalog-refined .apartment-view-switch { box-shadow:none; }
.catalog-refined .apartment-view-switch a { min-height:44px; font-size:13px; }
.catalog-refined .apartment-card { box-shadow:0 5px 24px rgba(29,61,110,.045); border-radius:20px; }
.catalog-refined .apartment-card:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(29,61,110,.09); }
.catalog-refined .apartment-card__media { height:280px; padding:48px 24px 20px!important; background:#fcfdff; border-bottom:1px solid #edf1f5; }
.catalog-refined .apartment-card__status { top:14px; left:18px; background:#edf6e9; color:#417d28; }
.catalog-refined .apartment-card__body { padding:22px; }
.catalog-refined .apartment-card__location { margin:0 0 12px; color:#61758b; font-size:12px; line-height:1.5; }
.catalog-refined .apartment-card__promo-mobile { position:static; display:inline-flex; align-self:flex-start; width:auto; max-width:100%; margin:0 0 12px; padding:7px 10px; border-radius:7px; background:#fff2d8; color:#98610a; box-shadow:none; font-size:11px; line-height:1.4; white-space:normal; }
.catalog-refined .apartment-card__title-row { gap:10px; flex-wrap:wrap; }
.catalog-refined .apartment-card__title-row > div { flex:1 1 175px; }
.catalog-refined .apartment-card__title-link { font-size:19px; line-height:1.3; }
.catalog-refined .apartment-card__title-row > strong { color:#1d3d6e; font-size:18px; white-space:nowrap; }
.catalog-refined .apartment-card__number { color:#61758b; font-size:12px; }
.catalog-refined .apartment-card__meta { margin:14px 0 18px; gap:6px; }
.catalog-refined .apartment-card__meta span { font-size:12px; color:#536b84; background:#f2f5f8; }
.catalog-refined .apartment-card__buyer-tools { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:auto 0 16px; }
.catalog-refined .apartment-card__buyer-tools button { min-width:0; min-height:44px; padding:0 8px; gap:7px; border-radius:10px; font-size:12px; font-weight:600; box-shadow:none; white-space:nowrap; }
.catalog-refined .apartment-card__buyer-tools button svg { flex:0 0 18px; width:18px; height:18px; }
.catalog-refined .apartment-card__footer { display:flex; flex-direction:column; align-items:stretch; gap:16px; margin-top:0; padding-top:18px; }
.catalog-refined .apartment-card__price { font-size:25px; white-space:normal; overflow-wrap:normal; }
.catalog-refined .apartment-card__price-meta { gap:8px 12px; }
.catalog-refined .apartment-card__price-meta small { font-size:12px; color:#61758b; }
.catalog-refined .apartment-card__actions { display:flex; flex-direction:row; width:100%; gap:8px; align-items:stretch; }
.catalog-refined .apartment-card__actions a { display:inline-flex; flex:1 1 0; width:auto; min-height:46px; padding:0 10px; border-radius:11px; font-size:13px; line-height:1.3; }
.catalog-refined .apartment-card__floor-link { color:#315f8d; background:#edf3f8; }
.catalog-refined .apartment-list { border-radius:18px; box-shadow:0 5px 24px rgba(29,61,110,.045); }
.catalog-refined .apartment-list__head, .catalog-refined .apartment-list-row { grid-template-columns:108px minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) 182px; gap:20px; }
.catalog-refined .apartment-list__head { padding:0 20px; min-height:48px; box-shadow:0 3px 10px rgba(29,61,110,.06); color:#61758b; font-size:10px; z-index:20; }
.catalog-refined .apartment-list-row { min-height:156px; padding:22px 20px; }
.catalog-refined .apartment-list-row > * { min-width:0; }
.catalog-refined .apartment-list-row__plan { width:108px; height:112px; border-color:#e8edf2; background:#fff; padding:7px; }
.catalog-refined .apartment-list-row__main > a { font-size:17px; line-height:1.35; }
.catalog-refined .apartment-list-row__main > a b { display:block; margin-top:3px; font-size:17px; font-weight:700; }
.catalog-refined .apartment-list-row__main > span, .catalog-refined .apartment-list-row__main small { color:#61758b; font-size:12px; line-height:1.5; }
.catalog-refined .apartment-list-row__main .apartment-list-row__promo { position:static; display:inline-flex; width:auto; max-width:100%; margin:0 0 9px; padding:5px 8px; border-radius:6px; background:#fff2d8; box-shadow:none; color:#98610a; font-size:10px; font-weight:700; line-height:1.35; white-space:normal; overflow-wrap:break-word; }
.catalog-refined .apartment-list-row__location > strong { display:block; color:#294a70; font-size:14px; line-height:1.5; }
.catalog-refined .apartment-list-row__location > span { display:block; margin:6px 0 0; color:#61758b; font-size:12px; }
.catalog-refined .apartment-list-row__floor { display:inline-flex; justify-content:flex-start; gap:4px; min-height:44px; height:auto; width:auto; margin:4px 0 -7px; padding:5px 0; background:transparent; border-radius:0; color:#326b9f; font-size:12px; font-weight:600; line-height:1.4; text-decoration:underline; text-decoration-color:#b3c9dd; text-underline-offset:3px; }
.catalog-refined .apartment-list-row__floor span { flex-shrink:0; }
.catalog-refined .apartment-list-row__price { display:block; padding:0; border:0; }
.catalog-refined .apartment-list-row__price::before { display:none; }
.catalog-refined .apartment-list-row__price strong { color:#1d3d6e; font-size:19px; font-weight:800; white-space:nowrap; }
.catalog-refined .apartment-list-row__price small { margin-top:5px; color:#76869a; font-size:12px; }
.catalog-refined .apartment-list-row__price > span { display:block; margin-top:6px; color:#61758b; font-size:12px; white-space:nowrap; }
.catalog-refined .apartment-list-row__actions { display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:8px; padding:0; }
.catalog-refined .apartment-list-row__open { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:46px; height:auto; padding:0 15px; margin:0; border-radius:11px; background:#1d3d6e; color:#fff; font-size:13px; font-weight:700; line-height:1.4; text-decoration:none; }
.catalog-refined .apartment-list-row__open:hover { background:#315f8d; color:#fff; }
.catalog-refined .apartment-list-row__open > span { font-size:20px; font-weight:400; }
.catalog-refined .apartment-list-row__secondary { display:flex; align-items:stretch; gap:7px; }
.catalog-refined .apartment-list-row__secondary .apartment-list-row__icon { box-sizing:border-box; width:44px!important; height:44px!important; min-width:44px!important; min-height:44px!important; padding:0!important; flex:0 0 44px; border-radius:10px; }
.catalog-refined .apartment-list-row__compare { flex:1 1 0; min-width:0; min-height:44px; padding:0 7px; gap:5px; font-size:11px; font-weight:600; box-shadow:none; border-radius:10px; white-space:nowrap; }
.catalog-refined .apartment-list-row__secondary svg { width:18px; height:18px; flex:0 0 18px; }
.catalog-refined .apartment-pagination { flex-wrap:wrap; gap:7px; }
.catalog-refined .apartment-pagination a, .catalog-refined .apartment-pagination > span { min-width:44px; height:44px; }
.catalog-refined .apartment-active-filters a { min-height:36px; font-size:12px; }
.catalog-refined a:focus-visible, .catalog-refined button:focus-visible, .catalog-refined select:focus-visible { outline:3px solid #82afd5; outline-offset:3px; }
/* Shared catalog navigation keeps its own horizontal scroll, never the page. */
.catalog-buyer-nav .catalog-buyer-nav__views { min-width:0; max-width:100%; }
.catalog-buyer-nav .catalog-buyer-nav__views a { min-height:44px; }
.catalog-buyer-nav .catalog-buyer-nav__tool { min-width:0; box-shadow:none; }
.lovency-compare-toast { pointer-events:none; }
@media(min-width:901px) and (max-width:1180px) {
 .catalog-refined .apartment-list__head, .catalog-refined .apartment-list-row { grid-template-columns:90px minmax(0,1.05fr) minmax(0,.9fr) minmax(0,1fr) 164px; gap:12px; padding-left:16px; padding-right:16px; }
 .catalog-refined .apartment-list-row__plan { width:90px; height:104px; }
 .catalog-refined .apartment-list-row__price strong { font-size:16px; }
 .catalog-refined .apartment-list-row__main > a, .catalog-refined .apartment-list-row__main > a b { font-size:15px; }
 .catalog-refined .apartment-list-row__location > strong { font-size:13px; }
}
@media(max-width:1180px) {
 .catalog-refined .apartment-filter__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .catalog-refined .apartment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px) {
 .catalog-refined .apartment-list { border:0; border-radius:0; background:transparent; box-shadow:none; }
 .catalog-refined .apartment-list__head { display:none; }
 .catalog-refined .apartment-list__body { display:flex; flex-direction:column; gap:14px; }
 .catalog-refined .apartment-list-row { display:grid; grid-template-columns:104px minmax(0,1fr) 186px; grid-template-areas:"plan main price" "plan location actions"; gap:12px 18px; min-height:0; padding:20px; border:1px solid #dfe7ef; border-radius:18px; background:#fff; box-shadow:0 5px 20px rgba(29,61,110,.04); }
 .catalog-refined .apartment-list-row__plan { grid-area:plan; width:104px; height:142px; align-self:start; }
 .catalog-refined .apartment-list-row__main { grid-area:main; }
 .catalog-refined .apartment-list-row__location { grid-area:location; }
 .catalog-refined .apartment-list-row__price { grid-area:price; align-self:start; }
 .catalog-refined .apartment-list-row__actions { grid-area:actions; align-self:end; }
 .catalog-refined .apartment-list-row__main > a b { display:inline; margin-left:8px; }
 .catalog-refined .apartment-display-bar { align-items:center; }
 .catalog-refined .apartment-results-sort > span { display:none; }
}
@media(max-width:767px) {
 .catalog-refined .apartment-catalog__head h1 { font-size:36px; line-height:1.08; }
 .catalog-refined .apartment-catalog__container { padding-left:16px!important; padding-right:16px!important; }
 .catalog-refined .apartment-filter__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 .catalog-refined .apartment-filter__field--wide { grid-column:1/-1; }
 .catalog-refined .apartment-filter__range > div { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .catalog-refined .apartment-filter__range { grid-column:1/-1; }
 .catalog-refined .apartment-filter { padding:16px; }
 .catalog-refined .apartment-filter input, .catalog-refined .apartment-filter select, .catalog-refined .apartment-results-sort select { font-size:16px; }
 .catalog-refined .apartment-filter__actions { flex-direction:row; align-items:center; flex-wrap:wrap; }
 .catalog-refined .apartment-filter__actions button { width:100%; }
 .catalog-refined .apartment-filter__actions a { margin:0 auto; }
 .catalog-refined .apartment-display-bar { display:grid; grid-template-columns:1fr; gap:12px; margin:20px 0 16px; }
 .catalog-refined .apartment-results-sort { width:100%; }
 .catalog-refined .apartment-results-sort > span { display:block; white-space:nowrap; }
 .catalog-refined .apartment-results-sort select { flex:1; min-width:0; width:auto; }
 .catalog-refined .apartment-view-switch { display:flex; width:100%; }
 .catalog-refined .apartment-view-switch a { flex:1; }
 .catalog-refined .apartment-smart-search__hint button { min-height:36px; }
 .catalog-refined .apartment-pagination { justify-content:center; overflow:visible; }
 .lovency-compare-toast { bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
}
@media(max-width:700px) {
 .catalog-refined .apartment-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
 .catalog-refined .apartment-card__media { height:268px; }
 .catalog-refined .apartment-card__body { padding:18px; }
 .catalog-refined .apartment-card__buyer-tools button { font-size:13px; }
 .catalog-refined .apartment-filter:not(.is-open) { display:none; }
 .catalog-refined .apartment-list-row { grid-template-columns:92px minmax(0,1fr); grid-template-areas:"plan main" "location location" "price price" "actions actions"; gap:14px 16px; padding:18px; }
 .catalog-refined .apartment-list-row__plan { width:92px; height:114px; }
 .catalog-refined .apartment-list-row__main > a { font-size:17px; }
 .catalog-refined .apartment-list-row__main > a b { display:block; margin:4px 0 0; }
 .catalog-refined .apartment-list-row__location { padding-top:12px; border-top:1px solid #edf1f5; }
 .catalog-refined .apartment-list-row__location > strong { font-size:14px; }
 .catalog-refined .apartment-list-row__location > span { display:inline-block; margin-right:10px; }
 .catalog-refined .apartment-list-row__floor { margin-top:0; min-height:38px; }
 .catalog-refined .apartment-list-row__price { padding-top:12px; border-top:1px solid #edf1f5; }
 .catalog-refined .apartment-list-row__price strong { font-size:23px; }
 .catalog-refined .apartment-list-row__price small, .catalog-refined .apartment-list-row__price > span { display:inline-block; margin:6px 12px 0 0; }
 .catalog-refined .apartment-list-row__actions { gap:10px; }
 .catalog-refined .apartment-list-row__open { min-height:48px; }
 .catalog-refined .apartment-list-row__compare { font-size:13px; }
 .catalog-refined .apartment-list-row__secondary .apartment-list-row__icon { width:48px!important; height:46px!important; flex-basis:48px; }
}
@media(max-width:380px) {
 .catalog-refined .apartment-catalog__container { padding-left:12px!important; padding-right:12px!important; }
 .catalog-refined .apartment-card__body, .catalog-refined .apartment-list-row { padding:15px; }
 .catalog-refined .apartment-list-row { grid-template-columns:78px minmax(0,1fr); gap:12px; }
 .catalog-refined .apartment-list-row__plan { width:78px; height:105px; }
 .catalog-refined .apartment-list-row__main > a { font-size:16px; }
 .catalog-refined .apartment-card__buyer-tools button { font-size:12px; }
 .catalog-refined .apartment-filter__quick-copy strong { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .catalog-refined .apartment-card, .catalog-refined .apartment-card__media img, .catalog-refined button, .catalog-refined a { transition:none!important; transform:none!important; }
}
/* Short apartment facts remain scannable on a phone; long finishing text spans both cells. */
@media(max-width:767px) {
 .catalog-unit-v2 .catalog-unit-v2__specs, .parking-unit-page .parking-unit-page__specs { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalog-unit-v2 .catalog-unit-v2__spec { grid-column:auto; min-width:0; min-height:76px; padding:12px; }
 .catalog-unit-v2 .catalog-unit-v2__spec--wide, .parking-unit-page .parking-unit-page__specs .is-wide { grid-column:1/-1; }
 .catalog-unit-v2 .catalog-unit-v2__spec:last-child:nth-child(odd) { grid-column:1/-1; }
 .catalog-unit-v2 .catalog-unit-v2__spec span { font-size:11px; line-height:1.4; }
 .catalog-unit-v2 .catalog-unit-v2__spec strong { font-size:16px; line-height:1.4; }
 .client-selection .client-selection__hero-copy { min-width:0; }
 .client-selection .client-selection__hero-copy h1 { overflow-wrap:anywhere; }
 .client-selection .client-selection__copy-toast { bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
}
@media(max-width:560px) {
 .client-selection .client-selection__company-brand { flex-wrap:wrap; }
 .client-selection .selection-card__title { flex-wrap:wrap; gap:8px; }
}
