/* Performance release 2026-10-30. Original cascade order is preserved. */

/* SOURCE: assets/public/css/interface-refinement.css */
/* Shared interface, release 2026-09-10. Loaded after the compiled theme. */
:root {
    --inv-bottom-dock: 0px;
    --inv-cookie-offset: 0px;
    --inv-header-height: 76px;
}
html { scroll-padding-top: calc(var(--inv-header-height) + 20px); }
body { min-width: 0; }
.site-header a:focus-visible, .site-footer a:focus-visible,
.mobile-site-dock a:focus-visible, #cookie-bar a:focus-visible,
#cookie-bar button:focus-visible, .cbm button:focus-visible {
    outline: 3px solid #397fb8;
    outline-offset: 3px;
}
/* The phone replacement script wraps digits in fading small elements. */
.site-header__phone small, .site-header__phone span,
.site-contact-strip a[href^="tel:"] small,
.site-footer a[href^="tel:"] small {
    opacity: 1 !important;
}
.site-header__phone > svg { flex: 0 0 auto; }
.site-footer, .site-footer * { box-sizing: border-box; }
.site-footer a, .site-footer p { overflow-wrap: anywhere; }

#cookie-bar, #cookie-bar * { box-sizing: border-box; }
#cookie-bar {
    position: fixed;
    z-index: 1005;
    left: 20px;
    bottom: 20px;
    width: calc(100% - 40px);
    max-width: 480px;
    max-height: calc(100vh - 120px);
    overflow: auto;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 18px;
    border: 1px solid #dbe4ee;
    border-radius: 18px;
    background: #fff;
    color: #53657b;
    box-shadow: 0 12px 44px rgba(20, 46, 79, .17);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
}
#cookie-bar[hidden] { display: none !important; }
#cookie-bar .cookie-bar__copy { flex: 1 1 auto; min-width: 0; }
#cookie-bar .cookie-bar__title {
    display: block;
    margin-bottom: 4px;
    color: #1d3d6e;
    font-size: 14px;
    font-weight: 700;
}
#cookie-bar p { margin: 0; }
#cookie-bar a { color: #265f94; text-decoration: underline; text-underline-offset: 3px; }
#cookie-bar button {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 10px 20px;
    border: 1px solid #1d3d6e;
    border-radius: 11px;
    background: #1d3d6e;
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
}
#cookie-bar button:hover { background: #2b5e92; border-color: #2b5e92; }
html.uk-modal-page #cookie-bar,
html.uk-offcanvas-page #cookie-bar,
html.oleg-ai-chat-open #cookie-bar { display: none; }

#modal-callback .uk-modal-dialog.cbm,
#modal-apartment-viewing-legacy .uk-modal-dialog.cbm {
    box-sizing: border-box;
    width: calc(100% - 32px) !important;
    max-width: 460px !important;
    margin: 24px auto !important;
}
#modal-callback .cbm__close {
    top: 10px !important;
    right: 10px !important;
    width: 44px;
    height: 44px;
    padding: 12px;
    opacity: 1;
}
.cbm .cbm__field-label {
    display: block;
    margin: 0 0 5px;
    font-size: 13px;
    color: #4f6178;
    font-weight: 600;
}
.cbm .cbm__input { min-height: 48px; font-size: 16px; }
.cbm .cbm__subtitle { color: #64748b; }

@media (max-width: 1179px) {
    :root { --inv-header-height: 64px; }
    .site-header .site-header__mobile-action {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
    }
    .site-header .site-header__mobile-catalog { min-height: 44px; }
}
@media (max-width: 767px) {
    :root { --inv-bottom-dock: calc(72px + env(safe-area-inset-bottom, 0px)); }
    #cookie-bar {
        left: 12px;
        bottom: calc(var(--inv-bottom-dock) + 12px);
        width: calc(100% - 24px);
        max-width: none;
        max-height: calc(100vh - var(--inv-bottom-dock) - var(--inv-header-height) - 32px);
        max-height: calc(100dvh - var(--inv-bottom-dock) - var(--inv-header-height) - 32px);
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 16px;
        border-radius: 16px;
        font-size: 13px;
    }
    #cookie-bar button { width: 100%; min-height: 44px; }
    html.inv-cookie-visible .ly-fab-wrap,
    html.oleg-ai-chat-open .ly-fab-wrap { visibility: hidden; pointer-events: none; }
    .mobile-site-dock .mobile-site-dock__item { font-size: 10px; line-height: 1.15; }
    #modal-callback.uk-modal { padding: 8px 0 calc(var(--inv-bottom-dock) + 8px); }
    #modal-callback .uk-modal-dialog.cbm { margin: 8px auto !important; padding: 28px 20px 22px; }
    .cbm .cbm__header { gap: 10px; }
    .cbm .cbm__title { font-size: 21px; }
}
@media (max-width: 360px) {
    .site-header .site-header__mobile { gap: 5px; }
    .site-header .site-header__inner { padding: 0 10px; }
    .site-header .site-header__mobile-catalog { padding: 0 9px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    .site-header *, .ly-fab-wrap, .mobile-site-dock * { transition: none !important; }
}
@media print { #cookie-bar { display: none !important; } }


/* SOURCE: assets/public/css/landing-refinement.css */
/* Landing refinements. Loaded after the base theme; explicit scopes also
   override the legacy inline partial styles without affecting the catalogue. */
body .managed-offer {
    min-width: 0;
    padding: 28px;
    border: 1px solid #dfe8f1;
    border-radius: 18px;
    background: #f7f9fc;
    box-sizing: border-box;
}
body .managed-offer__eyebrow {
    margin-bottom: 12px;
    color: #3d7bb4;
    font-size: 13px;
    font-weight: 700;
}
body .managed-offer__title {
    margin: 0 0 16px;
    color: #1d3d6e;
    font-size: clamp(21px, 2.5vw, 27px);
    line-height: 1.3;
    overflow-wrap: break-word;
}
body .managed-offer__terms {
    margin: 0;
    white-space: pre-line;
    color: #42536b;
    font-size: 15px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}
body .managed-offer__source {
    display: inline-block;
    margin-top: 14px;
    font-size: 14px;
    text-decoration: underline;
}
body .managed-offer__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
}
body .managed-offer__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 48px;
    padding: 12px 20px;
    border-radius: 10px;
    background: #1d3d6e;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    line-height: 1.5;
    text-decoration: none;
}
body .managed-offer__button:hover { background: #2c568a; color: #fff; }
body .managed-offer__catalog { font-size: 14px; font-weight: 600; }
body .managed-offer-general { margin-bottom: 24px; }
body .managed-offer-accordions { display: grid; gap: 16px; }
body .managed-offer-accordion {
    overflow: hidden;
    border: 1px solid #dfe8f1;
    border-radius: 16px;
}
body .managed-offer-accordion > summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 56px;
    padding: 16px 24px;
    box-sizing: border-box;
    color: #1d3d6e;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}
body .managed-offer-accordion > summary::-webkit-details-marker { display: none; }
body .managed-offer-accordion[open] > summary > span { transform: rotate(45deg); }
body .managed-offer-accordion .managed-offer { border: 0; border-radius: 0; }
body .managed-offer a:focus-visible,
body .managed-offer-accordion > summary:focus-visible {
    outline: 3px solid #70b9e9;
    outline-offset: -3px;
}
@media (max-width: 767px) {
    body .managed-offer { padding: 22px 18px; }
    body .managed-offer__button { width: 100%; }
    body .managed-offer-accordion > summary { padding: 16px 18px; }
}

/* A stable background while the hero photograph is still downloading. */
body .hero-section[data-landing-hero],
body .reviews-hero[data-landing-hero],
body .commercial-hero[data-landing-hero] {
    background-color: #1d3d6e;
}

/* Keep the original full-width desktop heroes from each page/partial.
   Content-sized geometry is only needed on phones and tablets. */
@media (max-width: 959px) {
    body .hero-section[data-landing-hero],
    body .reviews-hero[data-landing-hero],
    body .commercial-hero[data-landing-hero] {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100%;
        margin-left: 0 !important;
        transform: none;
        height: auto;
        min-height: 560px;
        max-height: none;
        background-color: #1d3d6e;
    }
    body [data-landing-hero] .hero-content,
    body [data-landing-hero] .reviews-hero-content,
    body [data-landing-hero] .commercial-hero__content {
        position: relative;
        inset: auto;
        min-height: inherit;
        padding: 64px 0 80px;
        box-sizing: border-box;
    }
    body [data-landing-hero] .hero-content__inner,
    body [data-landing-hero] .reviews-hero-inner,
    body [data-landing-hero] .commercial-hero__inner {
        box-sizing: border-box;
        width: 100%;
        max-width: 1264px;
        margin: 0 auto;
        padding: 0 32px;
        overflow-wrap: break-word;
    }
    body [data-landing-hero] .hero-content__inner > *,
    body [data-landing-hero] .reviews-hero-inner > *,
    body [data-landing-hero] .commercial-hero__inner > * { max-width: 760px; }
}
body [data-landing-hero] .hero-stats,
body [data-landing-hero] .reviews-hero-stats,
body [data-landing-hero] .commercial-hero__stats {
    box-sizing: border-box;
    max-width: 100%;
}
body [data-landing-hero] .hero-btn,
body [data-landing-hero] .reviews-hero-btn,
body [data-landing-hero] .commercial-hero__btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    min-height: 48px;
    line-height: 1.4;
}
/* Keep the 44px hit area separate from the visible dot. Legacy min-size
   and active scale rules must never enlarge the painted button background. */
body [data-landing-hero] .hero-dots,
body [data-landing-hero] .commercial-hero__dots {
    gap: 0;
    max-width: calc(100% - 32px);
    flex-wrap: wrap;
    justify-content: flex-end;
}
body [data-landing-hero] .hero-dot,
body [data-landing-hero] .commercial-hero__dot {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    transform: none;
    transition: none;
    cursor: pointer;
    touch-action: manipulation;
}
body [data-landing-hero] .hero-dot::before,
body [data-landing-hero] .commercial-hero__dot::before {
    content: '';
    display: block;
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .4);
    pointer-events: none;
    transition: background-color .2s ease, transform .2s ease;
}
body [data-landing-hero] .hero-dot.active::before,
body [data-landing-hero] .commercial-hero__dot.active::before {
    background-color: #fff;
    transform: scale(1.25);
}
@media (prefers-reduced-motion: reduce) {
    body [data-landing-hero] .hero-dot::before,
    body [data-landing-hero] .commercial-hero__dot::before { transition: none; }
}
body [data-landing-hero] a:focus-visible,
body [data-landing-hero] button:focus-visible,
body .scroll-arrow:focus-visible,
body .hm-corps-tab:focus-visible,
body .mo-corps-tab:focus-visible,
body .mo-sub-tab:focus-visible,
body .mo-type-tab:focus-visible {
    outline: 3px solid #70b9e9;
    outline-offset: 4px;
}
body .projects-header,
body .housing-header,
body .construction-header,
body .furnish-gallery-header,
body .constructions-latest__header,
body .mortgage-banks__header {
    gap: 16px;
    flex-wrap: wrap;
}
body .housing-card__info,
body .parking-card__info,
body .docs-item__text,
body .housings-section__grid > *,
body .mortgage-calc__grid > *,
body .contacts-section__grid > * {
    min-width: 0;
}
body .projects-scroll-wrap,
body .housing-scroll-wrap,
body .furnish-scroll-wrap,
body .construction-scroll-wrap,
body .infrastructure-scroll-wrap,
body .parking-scroll-wrap,
body .mortgage-banks__scroll-wrap {
    scroll-snap-type: x proximity;
    scroll-padding-inline: 16px;
    overscroll-behavior-x: contain;
    padding-bottom: 18px;
}
body .project-card,
body .housing-card,
body .furnish-card,
body .construction-card,
body .infrastructure-card,
body .parking-card {
    scroll-snap-align: start;
}
body .housings-section__grid {
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
}
body .housings-section__cards {
    grid-template-columns: minmax(0, 1fr);
    padding: 2px 4px 12px;
}
body .housings-section__cards .housing-card__img-wrap {
    height: 220px;
}
body .mortgage-faq__item--open .mortgage-faq__a,
body .furnish-faq__item--open .furnish-faq__a,
body .docs-item--open .docs-item__body {
    max-height: none;
}
body .docs-item__link {
    overflow-wrap: anywhere;
}
body .soc-intro p {
    text-align: left;
}
body .soc-card:focus-within .soc-card__text {
    opacity: 1;
    max-height: none;
}
body .editorial-content {
    overflow-wrap: anywhere;
}
body .keys-landing .uk-button {
    white-space: normal;
    line-height: 1.4;
    min-height: 48px;
    padding: 14px 22px;
}

@media (max-width: 959px) {
    body .housings-section__grid {
        grid-template-columns: minmax(0, 1fr);
    }
    body .housings-section__map-wrap {
        position: relative;
        top: auto;
        min-height: 320px;
    }
    body .housings-section__map-wrap #map { height: 320px; }
    body .housings-section__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-height: none;
        overflow: visible;
    }
}

@media (max-width: 767px) {
    body .hero-section[data-landing-hero],
    body .reviews-hero[data-landing-hero],
    body .commercial-hero[data-landing-hero] {
        height: auto;
        min-height: 0;
        max-height: none;
    }
    body [data-landing-hero] .hero-content,
    body [data-landing-hero] .reviews-hero-content,
    body [data-landing-hero] .commercial-hero__content {
        padding: 38px 0 52px;
        min-height: 0;
    }
    body [data-landing-hero] .hero-content__inner,
    body [data-landing-hero] .reviews-hero-inner,
    body [data-landing-hero] .commercial-hero__inner {
        width: 100%;
        max-width: 100%;
        padding: 0 20px;
    }
    body [data-landing-hero] .hero-title,
    body [data-landing-hero] .reviews-hero-title,
    body [data-landing-hero] .commercial-hero__title {
        font-size: clamp(30px, 8vw, 42px);
        line-height: 1.13;
        margin-bottom: 16px;
        overflow-wrap: break-word;
    }
    body [data-landing-hero] .hero-title--sub { font-size: 24px; }
    body [data-landing-hero] .hero-badge,
    body [data-landing-hero] .reviews-hero-badge,
    body [data-landing-hero] .commercial-hero__badge {
        max-width: 100%;
        box-sizing: border-box;
        font-size: 12px;
        line-height: 1.5;
        letter-spacing: .01em;
        margin-bottom: 18px;
    }
    body [data-landing-hero] .hero-subtitle,
    body [data-landing-hero] .reviews-hero-subtitle,
    body [data-landing-hero] .commercial-hero__subtitle {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 24px;
        color: rgba(255,255,255,.94);
    }
    body [data-landing-hero] .hero-stats,
    body [data-landing-hero] .reviews-hero-stats,
    body [data-landing-hero] .commercial-hero__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 16px;
        padding: 16px;
        margin-bottom: 24px;
    }
    body [data-landing-hero] .hero-stat,
    body [data-landing-hero] .reviews-hero-stat,
    body [data-landing-hero] .commercial-hero__stat {
        min-width: 0;
        padding: 0;
    }
    body [data-landing-hero] .hero-stat__divider,
    body [data-landing-hero] .reviews-hero-divider,
    body [data-landing-hero] .commercial-hero__divider { display: none; }
    body [data-landing-hero] .hero-stat__value,
    body [data-landing-hero] .reviews-hero-stat__value,
    body [data-landing-hero] .commercial-hero__stat-value {
        font-size: 17px;
        line-height: 1.3;
        overflow-wrap: break-word;
    }
    body [data-landing-hero] .hero-stat__label,
    body [data-landing-hero] .reviews-hero-stat__label,
    body [data-landing-hero] .commercial-hero__stat-label {
        font-size: 12px;
        line-height: 1.45;
        color: rgba(255,255,255,.84);
    }
    body [data-landing-hero] .hero-actions,
    body [data-landing-hero] .reviews-hero-actions,
    body [data-landing-hero] .commercial-hero__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
    body [data-landing-hero] .hero-btn,
    body [data-landing-hero] .reviews-hero-btn,
    body [data-landing-hero] .commercial-hero__btn { width: 100%; }
    body [data-landing-hero] .hero-scroll,
    body [data-landing-hero] .reviews-scroll { display: none; }
    body [data-landing-hero] .hero-dots,
    body [data-landing-hero] .commercial-hero__dots { bottom: 8px; right: 16px; }
    body .housing-title,
    body .projects-title { font-size: 28px; line-height: 1.2; }
    body .housing-map-btn { min-height: 44px; display: inline-flex; align-items: center; }
    body .project-card { width: min(320px, calc(100vw - 56px)); }
    body .housing-scroll-wrap .housing-card,
    body .parking-scroll-wrap .parking-card {
        width: min(340px, calc(100vw - 56px));
    }
    body .housing-card__img-wrap { height: 260px; }
    body .housing-card__labels { right: 12px; }
    body .housing-card__title { font-size: 17px; line-height: 1.35; }
    body .hm-card__list li { font-size: 14px; line-height: 1.55; }
    body .hm-card__label { color: #5d6d82; }
    body .hm-card--accent .hm-card__label { color: #fff; }
    body .mo-corps-tabs,
    body .mo-sub-tabs {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        box-sizing: border-box;
        border-radius: 12px;
        gap: 4px;
    }
    body .mo-corps-tab,
    body .mo-sub-tab,
    body .mo-type-tab,
    body .hm-corps-tab {
        min-height: 46px;
        flex: 1 1 120px;
        padding: 12px;
        line-height: 1.4;
        border-radius: 8px;
    }
    body .mortgage-calc__input { font-size: 16px; min-height: 48px; }
    body .mortgage-calc__fields { grid-template-columns: minmax(0, 1fr); }
    body .mo-rate-card { padding: 22px 18px; }
    body .mo-rate-card__list li { font-size: 14px; line-height: 1.55; }
    body .mortgage-faq__q,
    body .furnish-faq__q { padding: 18px; line-height: 1.5; }
    body .docs-item__header { flex-wrap: wrap; }
    body .docs-item__name { flex: 1 1 65%; }
    body .docs-item__count { order: 3; flex: 1 1 100%; }
    body .docs-item__arrow { margin-left: auto; }
    body .soc-page .soc-hero__plate { padding: 16px 20px; font-size: 26px; }
    body .keys-landing .uk-button { width: 100%; }
}

@media (max-width: 539px) {
    body .housings-section__cards { grid-template-columns: minmax(0, 1fr); }
    body .housings-section__cards .housing-card__img-wrap { height: 240px; }
}

@media (prefers-reduced-motion: reduce) {
    body [data-landing-hero] *,
    body .soc-reveal { animation: none !important; transition: none !important; }
    body .soc-reveal { opacity: 1; transform: none; }
}

/* Preserve fullscreen hero geometry while serving actual responsive images. */
[data-landing-hero] .hero-slide > picture { display: block; width: 100%; height: 100%; }
[data-landing-hero] .hero-slide > picture > img { display: block; width: 100%; height: 100%; object-fit: cover; }


/* SOURCE: assets/css/catalog-refinement.css */
/* 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%; box-sizing:border-box; }
.catalog-buyer-nav .catalog-buyer-nav__views a { min-height:44px; box-sizing:border-box; }
.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; }
}

/* 2026-10-19: shared filter sizing. Scope stays inside the apartment catalogue. */
.catalog-refined .apartment-filter,
.plan-catalog .plan-filter,
.compact-chessboard-page .chess-filter-panel,
.floor-view-page .floor-view-filter,
.facade-view-page .facade-v4-filter {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.catalog-refined .apartment-filter .apartment-filter__grid,
.floor-view-page .floor-view-filter {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: end;
    gap: 16px;
}

.catalog-refined .apartment-filter .apartment-filter__field--wide,
.catalog-refined .apartment-filter .apartment-filter__range,
.catalog-refined .apartment-filter .apartment-filter__quick-toggle,
.catalog-refined .apartment-filter .apartment-filter__promotion {
    grid-column: auto;
}

.plan-catalog .plan-filter .plan-filter__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    gap: 16px;
}

.catalog-refined .apartment-filter__grid > *,
.plan-catalog .plan-filter__grid > *,
.floor-view-page .floor-view-filter > *,
.facade-view-page .facade-v4-filter > *,
.compact-chessboard-page .chess-filter-panel__grid > * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.catalog-refined .apartment-filter select,
.catalog-refined .apartment-filter input:not([type="checkbox"]):not([type="hidden"]),
.plan-catalog .plan-filter select,
.floor-view-page .floor-view-filter select,
.facade-view-page .facade-v4-filter select,
.compact-chessboard-page .chess-filter-field select,
.compact-chessboard-page .chess-filter-field input {
    min-width: 0;
    max-width: 100%;
    height: 52px;
    box-sizing: border-box;
}

.catalog-refined .apartment-filter .apartment-filter__quick-toggle,
.catalog-refined .apartment-filter .apartment-filter__promotion,
.plan-catalog .plan-filter .plan-filter__toggle,
.floor-view-page .floor-view-filter .floor-view-filter__toggle,
.facade-view-page .facade-v4-filter > label:not(.facade-v4-filter__rooms),
.compact-chessboard-page .chess-filter-switch {
    align-self: end;
    min-width: 0;
    min-height: 52px;
    height: auto;
    box-sizing: border-box;
    padding: 8px 12px;
    gap: 10px;
    border-radius: 12px;
}

.catalog-refined .apartment-filter__promotion-copy strong,
.catalog-refined .apartment-filter__promotion-copy small,
.catalog-refined .apartment-filter__quick-copy strong,
.plan-catalog .plan-filter__toggle strong,
.plan-catalog .plan-filter__toggle small,
.floor-view-page .floor-view-filter__toggle strong,
.facade-view-page .facade-v4-filter strong,
.compact-chessboard-page .chess-filter-switch__text {
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
    line-height: 1.25;
}

.catalog-refined .apartment-filter__promotion-toggle {
    flex-basis: 40px;
    width: 40px;
    height: 23px;
}
.catalog-refined .apartment-filter__promotion-toggle i { width: 17px; height: 17px; }
.catalog-refined .apartment-filter__promotion input:checked + .apartment-filter__promotion-toggle i { transform: translateX(17px); }

.compact-chessboard-page .chess-filter-panel__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas: 'housing section rooms rooms' 'price price floor floor' 'quick quick quick quick';
}
.compact-chessboard-page .chess-filter-roomset { grid-template-columns: repeat(6, minmax(0, 1fr)); max-width: none; }
.compact-chessboard-page .chess-filter-room { height: 52px; }
.compact-chessboard-page .chess-filter-quickset { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.compact-chessboard-page .chess-filter-panel__heading { flex-wrap: wrap; }
.compact-chessboard-page .chess-filter-summary { white-space: normal; flex-wrap: wrap; }

.facade-view-page .facade-v4-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    align-items: end;
    gap: 12px;
}
.facade-view-page .facade-v4-filter .facade-v4-filter__rooms {
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 7px;
}
.facade-view-page .facade-v4-filter .facade-v4-filter__rooms > span {
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 0;
    color: #657994;
    font-size: 12px;
    font-weight: 800;
}
.facade-view-page .facade-v4-filter select {
    width: 100%;
    padding: 0 36px 0 14px;
    border: 1px solid #D9E3EE;
    border-radius: 12px;
    background: #F9FBFD;
    color: #1D3D6E;
    font: inherit;
}

.catalog-refined .apartment-filter__actions,
.plan-catalog .plan-filter__actions { flex-wrap: wrap; }
.catalog-refined .apartment-filter__actions button,
.plan-catalog .plan-filter__actions button { max-width: 100%; white-space: normal; }

@media (max-width: 1100px) {
    .catalog-refined .apartment-filter .apartment-filter__grid,
    .plan-catalog .plan-filter .plan-filter__grid,
    .floor-view-page .floor-view-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .compact-chessboard-page .chess-filter-panel__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas: 'housing section' 'rooms rooms' 'price price' 'floor floor' 'quick quick';
    }
}

@media (max-width: 760px) {
    .catalog-refined .apartment-filter select,
    .catalog-refined .apartment-filter input:not([type="checkbox"]):not([type="hidden"]),
    .plan-catalog .plan-filter select,
    .floor-view-page .floor-view-filter select,
    .facade-view-page .facade-v4-filter select { font-size: 16px; }
}

@media (max-width: 600px) {
    .catalog-refined .apartment-filter .apartment-filter__grid,
    .plan-catalog .plan-filter .plan-filter__grid,
    .floor-view-page .floor-view-filter,
    .facade-view-page .facade-v4-filter,
    .compact-chessboard-page .chess-filter-quickset { grid-template-columns: minmax(0, 1fr); }
    .compact-chessboard-page .chess-filter-panel__grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: 'housing' 'section' 'rooms' 'price' 'floor' 'quick';
    }
    .compact-chessboard-page .chess-filter-roomset { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .catalog-refined .apartment-filter__range > div { min-width: 0; }
    .catalog-refined .apartment-filter__actions button,
    .plan-catalog .plan-filter__actions button { width: 100%; }
}


/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../../fonts/Inter/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
