/* 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; } }
