body {
    margin: 0;
    background: #ffffff;
    color: #333333;
    font-family: "Montserrat", sans-serif;
}

.store-hero { padding: 58px 0 48px; background: linear-gradient(135deg, #f4f8fb 0%, #ffffff 72%); }
.store-breadcrumb { margin-bottom: 32px; font-size: .85rem; }
.store-breadcrumb a { color: #66727a; text-decoration: none; }
.store-breadcrumb .active { color: #003c67; }
.store-hero h1 { max-width: 850px; margin: 0; color: #003c67; font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; letter-spacing: -.035em; }
.store-hero p { max-width: 720px; margin: 18px 0 0; color: #5f6a72; font-size: clamp(1rem, 2vw, 1.2rem); }
.store-result-summary { display: inline-block; color: #003c67; font-size: .9rem; font-weight: 600; }

.store-catalog { padding: 48px 0 80px; }
.store-filter { margin-bottom: 42px; padding: 28px; background: #ffffff; border: 1px solid #e1e9ee; border-radius: 24px; box-shadow: 0 14px 38px rgba(0, 60, 103, .07); }
.store-filter .form-label { margin-bottom: 8px; color: #465158; font-size: .78rem; font-weight: 600; }
.store-filter .form-control,
.store-filter .form-select { min-height: 50px; border-color: #dce5eb; border-radius: 12px; color: #333333; }
.store-filter .form-control:focus,
.store-filter .form-select:focus { border-color: #003c67; box-shadow: 0 0 0 .2rem rgba(0, 60, 103, .1); }
.store-suggestions { position: absolute; top: calc(100% + 6px); left: calc(var(--bs-gutter-x) * .5); right: calc(var(--bs-gutter-x) * .5); z-index: 1060; max-height: 280px; overflow-y: auto; padding: 7px; border: 1px solid #dce5eb; border-radius: 14px; background: #fff; box-shadow: 0 16px 38px rgba(0, 60, 103, .14); }
.store-suggestion { display: block; width: 100%; padding: 11px 12px; border: 0; border-radius: 9px; background: transparent; color: #333; text-align: left; font-size: .88rem; }
.store-suggestion:hover,
.store-suggestion.is-active { background: #edf4f7; color: #003c67; }
.store-suggestion-empty { padding: 12px; color: #68747c; font-size: .84rem; }
.store-room-options { display: flex; flex-wrap: wrap; gap: 8px; }
.store-room-options label { cursor: pointer; }
.store-room-options input { position: absolute; opacity: 0; pointer-events: none; }
.store-room-options span { display: inline-flex; align-items: center; justify-content: center; min-width: 50px; min-height: 50px; padding: 9px 14px; border: 1px solid #dce5eb; border-radius: 12px; background: #fff; color: #465158; font-size: .86rem; font-weight: 600; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.store-room-options input:checked + span { border-color: #003c67; background: #003c67; color: #fefefe; }
.store-room-options input:focus-visible + span { outline: 3px solid rgba(0, 60, 103, .18); outline-offset: 2px; }
.store-reset-btn,
.store-page-btn { min-height: 48px; border: 1px solid #cddbe4; border-radius: 999px; color: #003c67; font-weight: 600; }
.store-reset-btn:hover,
.store-page-btn:hover { border-color: #003c67; color: #003c67; background: #eef5f8; }

.store-loader { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 260px; color: #003c67; font-weight: 500; }
.store-loader .spinner-border { width: 1.6rem; height: 1.6rem; }
.store-api-message { margin-bottom: 28px; padding: 15px 18px; border-radius: 14px; background: #fff1f1; color: #8a2424; }

.store-flat-card { height: 100%; overflow: hidden; background: #ffffff; border: 1px solid #e2e9ee; border-radius: 22px; box-shadow: 0 10px 30px rgba(0, 60, 103, .06); transition: transform .2s ease, box-shadow .2s ease; }
.store-flat-card:hover { transform: translateY(-4px); box-shadow: 0 16px 38px rgba(0, 60, 103, .1); }
.store-flat-image-wrap { position: relative; display: block; height: 230px; overflow: hidden; padding: 18px; background: #f5f7f8; }
.store-flat-image { width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity .28s ease; }
.store-flat-image.is-loaded { opacity: 1; }
.store-flat-image-skeleton { position: absolute; inset: 18px; overflow: hidden; border-radius: 14px; background: #e7edf1; }
.store-flat-image-skeleton::after { position: absolute; inset: 0; content: ""; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .72), transparent); animation: store-skeleton-shimmer 1.35s infinite; }
.store-flat-image-unavailable { position: absolute; inset: 18px; display: flex; align-items: center; justify-content: center; border: 1px dashed #cad7df; border-radius: 14px; color: #74818a; font-size: .82rem; font-weight: 500; text-align: center; }
@keyframes store-skeleton-shimmer { 100% { transform: translateX(100%); } }
.store-flat-content { display: flex; flex-direction: column; min-height: 265px; padding: 20px; }
.store-flat-complex { margin-bottom: 12px; color: #67727a; font-size: .82rem; }
.store-flat-title { margin: 0 0 12px; color: #333333; font-size: 1.05rem; font-weight: 600; }
.store-flat-price { margin-bottom: 18px; color: #003c67; font-size: 1.45rem; font-weight: 700; }
.store-flat-price-unavailable { margin-bottom: 6px; font-size: 1.05rem; line-height: 1.35; }
.store-flat-price-note { margin-bottom: 18px; color: #68747c; font-size: .78rem; line-height: 1.45; }
.store-flat-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.store-flat-meta span { padding: 6px 10px; background: #f0f5f8; border-radius: 999px; color: #53616a; font-size: .75rem; }
.store-flat-actions { display: flex; gap: 10px; margin-top: auto; }
.store-flat-link { display: inline-flex; align-items: center; justify-content: center; flex: 1; min-height: 46px; border: 1px solid #003c67; border-radius: 999px; color: #003c67; font-weight: 600; text-decoration: none; }
.store-flat-link:hover { background: #003c67; color: #fefefe; }
.store-flat-request { flex: 1; min-height: 46px; padding: 8px 12px; }

.store-empty { padding: 70px 24px; text-align: center; background: #f5f8fa; border-radius: 24px; }
.store-empty h3 { color: #003c67; font-size: 1.4rem; font-weight: 700; }
.store-empty p { max-width: 620px; margin: 12px auto 24px; color: #657079; }
.store-pagination { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 48px; }
.store-page-btn { min-width: 110px; padding: 10px 20px; }
.store-page-btn:disabled { opacity: .45; }
#currentPageLabel { color: #526069; font-size: .88rem; font-weight: 600; }

@media (max-width: 767.98px) {
    .store-hero { padding: 38px 0 34px; }
    .store-catalog { padding: 30px 0 60px; }
    .store-filter { margin-bottom: 30px; padding: 20px; border-radius: 18px; }
    .store-flat-image-wrap { height: 205px; }
    .store-flat-actions { flex-direction: column; }
    .store-pagination { gap: 10px; }
    .store-page-btn { min-width: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .store-flat-image-skeleton::after { animation: none; }
    .store-flat-image { transition: none; }
}
