/* Two independent native scrollers: apartments and the photos in each card. */
.sr-home-carousel { position: relative; }
.sr-home-track, .sr-photo-track, .sr-city-track { display: flex; overflow-x: auto; scroll-snap-type: none; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sr-home-track::-webkit-scrollbar, .sr-photo-track::-webkit-scrollbar, .sr-city-track::-webkit-scrollbar { display: none; }
.sr-home-track { --sr-loop-inset: clamp(46px, 5vw, 110px); --sr-loop-slots: 2; gap: 24px; align-items: stretch; padding: 2px 0 12px; }
.sr-home-track > .sr-card { flex: 0 0 calc((100% - 2 * var(--sr-loop-inset) - 24px) / 2); scroll-snap-align: start; display: flex; flex-direction: column; }
.sr-home-track .sr-card-body { flex: 1; display: flex; flex-direction: column; }
.sr-home-track .sr-card-cta { align-self: flex-start; margin-top: auto; padding-top: 16px; }
.sr-photo-track { width: 100%; aspect-ratio: 1.6; }
.sr-photo-slide { flex: 0 0 100%; min-width: 0; height: 100%; scroll-snap-align: start; }
.sr-photo-slide img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; }
.sr-card-gallery .sr-card-tag, .sr-photo-count { pointer-events: none; }
.sr-carousel-arrow { display: grid; place-items: center; padding: 0; width: 46px; height: 46px; min-height: 0; border-radius: 50%; border: 1px solid rgba(9,43,61,.15); background: transparent; color: #092b3d; cursor: pointer; font: inherit; line-height: 1; transition: background .2s, box-shadow .2s, opacity .2s; }
.sr-carousel-arrow[hidden] { display: none; }
.sr-carousel-arrow span { font-size: 26px; line-height: 1; }
.sr-carousel-arrow:disabled { opacity: .25; cursor: default; }
.sr-home-prev, .sr-home-next { position: static; transform: none; }
.sr-home-controls { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 28px; margin-top: 10px; }
.sr-home-count { font-size: 12px; color: #5a6d76; letter-spacing: .08em; }
.sr-city-track { gap: 18px; padding: 2px 0 14px; }
.sr-city-track > .sr-city-panel { flex: 0 0 94%; min-width: 0; scroll-snap-align: start; }
.sr-city-controls { display: flex; align-items: center; justify-content: flex-end; gap: 16px; min-height: 46px; margin-top: 12px; }
.sr-city-count { min-width: 74px; text-align: center; font-size: 12px; color: #5a6d76; letter-spacing: .08em; }
.sr-photo-prev, .sr-photo-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 42px; height: 42px; color: #fff; border-color: rgba(255,255,255,.09); background: rgba(255,255,255,.025); text-shadow: 0 1px 4px rgba(0,0,0,.8), 0 0 2px rgba(0,0,0,.6); }
.sr-photo-prev { left: 12px; }
.sr-photo-next { right: 12px; }
.sr-photo-prev span, .sr-photo-next span { font-size: 34px; margin-top: -3px; }
.sr-photo-count { position: absolute; bottom: 20px; right: 20px; color: #fff; font-size: 11px; letter-spacing: .08em; padding: 5px 9px; border-radius: 20px; background: rgba(9,43,61,.32); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
@media (hover: hover) {
 .sr-carousel-arrow:hover:not(:disabled) { background: rgba(255,255,255,.6); box-shadow: 0 3px 15px rgba(9,43,61,.09); }
 .sr-photo-prev:hover:not(:disabled), .sr-photo-next:hover:not(:disabled) { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 16px rgba(0,0,0,.1); }
}
.sr-home-carousel button:focus-visible, .sr-card-gallery button:focus-visible, .sr-city-carousel button:focus-visible, .sr-home-track:focus-visible, .sr-photo-track:focus-visible, .sr-city-track:focus-visible { outline: 3px solid #b99058; outline-offset: -3px; }
@media (max-width: 767px) {
 .sr-home-track { --sr-loop-inset: 28px; --sr-loop-slots: 1; gap: 12px; }
 .sr-home-track > .sr-card { flex-basis: calc(100% - 2 * var(--sr-loop-inset)); }
 .sr-photo-track { aspect-ratio: 1.35; }
 .sr-home-controls { margin-top: 14px; }
 .sr-photo-prev, .sr-photo-next { width: 44px; height: 44px; background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.16); }
 .sr-photo-prev { left: 8px; }
 .sr-photo-next { right: 8px; }
 .sr-photo-count { bottom: 15px; right: 15px; }
 .sr-home-carousel + .sr-catalog-link { margin-top: 24px; }
 .sr-city-track { gap: 12px; }
 .sr-city-track > .sr-city-panel { flex-basis: 100%; }
 .sr-city-controls { justify-content: center; margin-top: 10px; }
}
@media (prefers-reduced-motion: reduce) { .sr-carousel-arrow { transition: none; } }
/* Contain absolutely positioned accessibility labels inside the scrolling strip. */
.sr-home-track, .sr-photo-track, .sr-city-track { position: relative; overflow-anchor: none; }

/* The full offer is an explicit action before visitors start browsing cards. */
.sr-apartments-heading { align-items: center; }
.sr-apartments-intro { min-width: 0; }
.sr-apartments-intro .sr-apartments-description { color: var(--sr-muted); font-size: 14px; max-width: 560px; margin-top: 16px; }
.sr-all-apartments { flex-shrink: 0; white-space: nowrap; }
@media (max-width: 1000px) {
 .sr-apartments-heading { align-items: flex-start; flex-direction: column; gap: 22px; }
}
@media (max-width: 767px) {
 .sr-apartments-intro .sr-apartments-description { font-size: 13px; margin-top: 17px; }
 .sr-all-apartments { width: 100%; margin-top: 22px; white-space: normal; }
}

/* A clear offer action above the wide apartment strip. */
.sr-site .sr-all-apartments {
 background: var(--sr-navy); color: #fff; border-color: var(--sr-navy);
 border-radius: 12px; min-height: 56px; padding: 17px 26px;
 box-shadow: 0 6px 18px rgba(9,43,61,.12);
}
@media (hover: hover) {
 .sr-site .sr-all-apartments:hover { background: #18465b; border-color: #18465b; color: #fff; }
}
/* Keep copy aligned with the page while the cards reach both screen edges. */
.sr-site #apartamenty.sr-apartments { width: 100%; }
.sr-apartments-heading, .sr-apartments .sr-pricing-invite { width: min(var(--sr-width), calc(100% - 80px)); margin-inline: auto; }
.sr-site .sr-apartments .sr-pricing-invite { margin-top: -8px; margin-bottom: 30px; gap: 20px; }
.sr-site .sr-pricing-invite .sr-pricing-trigger {
 display: inline-flex; align-items: center; justify-content: center; gap: 20px;
 min-height: 52px; padding: 13px 22px; border: 1px solid #c4aa86; border-radius: 12px;
 background: #eae0d1; color: var(--sr-navy); font-size: 14px; font-weight: 700;
 box-shadow: 0 4px 12px rgba(121,91,63,.07); transition: background .2s, border-color .2s;
}
.sr-site .sr-pricing-invite .sr-pricing-trigger:hover { background: #dfd0bc; border-color: #a38151; }
.sr-all-apartments:focus-visible, .sr-pricing-trigger:focus-visible { outline: 3px solid #b99058; outline-offset: 3px; }
@media (max-width: 1000px) {
 .sr-apartments-heading, .sr-apartments .sr-pricing-invite { width: calc(100% - 48px); }
}
@media (max-width: 767px) {
 .sr-apartments-heading, .sr-apartments .sr-pricing-invite { width: calc(100% - 40px); }
 .sr-site .sr-apartments .sr-pricing-invite { margin-top: 0; gap: 10px; margin-bottom: 24px; }
 .sr-pricing-invite > span { width: 100%; }
 .sr-site .sr-pricing-invite .sr-pricing-trigger { width: 100%; }
}

.sr-photo-slide:focus-visible { outline: 3px solid #b99058; outline-offset: -3px; }
