.availability-calendar{width:100%;max-width:100%;min-height:200px}.availability-calendar__legend{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.availability-calendar__legend-item{color:var(--text);white-space:nowrap;align-items:center;gap:.4rem;font-size:13px;font-weight:500;display:flex}.availability-calendar__legend-color{width:12px;height:12px;box-shadow:0 1px 3px var(--overlay-black-015);border:1.5px solid #0000;border-radius:3px;flex-shrink:0}.availability-calendar__legend-color--available{background-color:var(--status-success-green);border-color:var(--status-success-border)}.availability-calendar__legend-color--pending{background-color:var(--status-warning-alt);border-color:var(--status-warning-strong)}.availability-calendar__legend-color--booked{background-color:var(--status-danger);border-color:var(--status-danger-dark)}.availability-calendar__legend-color--blocked{background-color:var(--status-warning-orange);border-color:var(--status-warning-strong)}.availability-calendar__legend-color--maintenance{background-color:var(--accent-blue-alt);border-color:var(--accent-blue-deep-3)}.availability-calendar__legend-color--viewing{background-color:var(--accent-blue-muted,#7c9cbf);border-color:var(--accent-blue-deep-3,#4a6fa5)}.availability-calendar__day--viewing{background-color:color-mix(in srgb,var(--accent-blue-muted,#7c9cbf)25%,var(--bg));border-color:var(--accent-blue-muted,#7c9cbf);cursor:pointer;color:var(--accent-blue-deep-3,#4a6fa5);font-weight:500}.availability-calendar__day--viewing:hover{background-color:var(--accent-blue-muted,#7c9cbf);border-color:var(--accent-blue-deep-3,#4a6fa5);color:var(--absolute-white,#fff);z-index:1;transform:scale(1.08)}.availability-calendar__legend-color--payment,.availability-calendar__day--payment{background-color:color-mix(in srgb,var(--status-success-green)30%,var(--bg));border-color:var(--status-success-green)}.availability-calendar__day--payment{cursor:default}.availability-calendar__legend-color--event,.availability-calendar__day--event{background-color:color-mix(in srgb,var(--muted)25%,var(--bg));border-color:var(--muted)}.availability-calendar__day--event{cursor:default}.availability-calendar__months{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}@media (min-width:768px){.availability-calendar__months{grid-template-columns:repeat(2,1fr);gap:1.25rem}}.availability-calendar__month{width:100%}.availability-calendar__month-header{box-sizing:border-box;width:100%;margin-bottom:.4rem}.availability-calendar__month-header-row{border-bottom:1px dotted var(--border);box-sizing:border-box;justify-content:space-between;align-items:center;gap:8px;width:100%;padding-bottom:.4rem;display:flex}.availability-calendar__month-header-side{flex:none;justify-content:center;align-items:center;display:flex}.availability-calendar__month-header-side:empty{display:none}.availability-calendar__month-header-title{color:var(--text);text-transform:capitalize;text-align:center;border:none;flex:1;margin:0;padding:0;font-size:16px;font-weight:600}.availability-calendar__nav-btn{min-width:36px;height:36px;color:var(--muted);border-radius:10px;padding:0;font-size:18px;line-height:1}.availability-calendar__nav-btn:hover{color:var(--accent);background:color-mix(in srgb,var(--accent)10%,transparent)}.availability-calendar__weekdays{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.4rem;display:grid}.availability-calendar__weekday{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:.3rem 0;font-size:12px;font-weight:600}.availability-calendar__days{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.availability-calendar__day{aspect-ratio:1;border:1.5px solid var(--border);background-color:var(--bg);border-radius:4px;justify-content:center;align-items:center;min-height:44px;font-size:14px;font-weight:500;transition:all .15s;display:flex;position:relative}.availability-calendar__day--empty{background-color:#0000;border:none}.availability-calendar__day--available{background-color:var(--surface-success-bg);border-color:var(--status-success-green);cursor:pointer;color:var(--status-success-border);font-weight:500}.availability-calendar__day--available:hover{background-color:var(--status-success-green);border-color:var(--status-success-border);color:var(--absolute-white);box-shadow:0 2px 6px var(--status-success-shadow);z-index:1;transform:scale(1.08)}.availability-calendar__day--pending{background-color:var(--absolute-white)80;border-color:var(--status-warning-alt);cursor:pointer;color:var(--status-warning-strong);font-weight:500}.availability-calendar__day--pending:hover{background-color:var(--status-warning-alt);border-color:var(--status-warning-strong);color:var(--absolute-white);box-shadow:0 2px 6px var(--status-warning-shadow);z-index:1;transform:scale(1.08)}.availability-calendar__day--booked{background-color:var(--surface-error-bg);border-color:var(--status-danger);cursor:not-allowed;opacity:.75;color:var(--status-danger-dark)}.availability-calendar__day--blocked{background-color:var(--absolute-white)3;border-color:var(--status-warning-orange);cursor:not-allowed;opacity:.75;color:var(--status-warning-orange-dark)}.availability-calendar__day--maintenance{background-color:var(--surface-info-bg);border-color:var(--accent-blue-alt);cursor:not-allowed;opacity:.75;color:var(--accent-blue-deep-3)}.availability-calendar__day--past{background-color:var(--bg-secondary,var(--surface-muted-bg-strong));border-color:var(--border);opacity:.4;cursor:not-allowed;color:var(--muted)}.availability-calendar__day--today{border-width:2px;border-color:var(--accent,var(--accent-blue-muted));font-weight:700}.availability-calendar__day-number{color:inherit;font-size:14px;font-weight:inherit;line-height:1}@media (max-width:768px){.availability-calendar__day{min-height:36px;font-size:13px}}
.modal__box.modal--booking{width:min(1320px,100vw - 2rem);max-width:min(1320px,100vw - 2rem);padding:var(--modal-padding,20px)}.booking-form-modal{min-width:0;max-height:90vh;padding:0;overflow-x:hidden}.booking-form-modal__header{border-bottom:1px dotted var(--border,var(--border-muted));justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:.25rem;padding-bottom:.25rem;display:flex}.booking-form-modal__title{color:var(--text);flex:1;margin:0;font-size:1.25rem;font-weight:600}.booking-form-modal__close{flex-shrink:0}.booking-form-modal__apartment{color:var(--muted);margin:0 0 1rem;font-size:.875rem}.booking-form-modal__error{color:var(--error,var(--status-danger-dark));margin-bottom:1rem;font-size:.875rem}.booking-form-modal__form{flex-direction:column;gap:1.25rem;display:flex}.booking-form-modal__date-fields{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.booking-form-modal__date-display{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:8px;min-height:42px;padding:10px 12px;font-size:.9375rem}.booking-form-modal__long-term{margin:.5rem 0}.booking-form-modal__long-term-btn{background:var(--card);border:2px dashed var(--border);width:100%;color:var(--text);cursor:pointer;text-align:center;border-radius:8px;padding:12px;font-size:.875rem;font-weight:500}.booking-form-modal__long-term-btn:hover{border-color:var(--accent)}.booking-form-modal__long-term-btn--active{background:var(--accent);color:var(--absolute-white);border-style:solid;border-color:var(--accent)}.booking-form-modal__field--arrival{margin-bottom:0}.booking-form-modal__time-select{max-width:160px}.booking-form-modal__section{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem}.booking-form-modal__section-title{color:var(--text);margin:0 0 .75rem;font-size:1rem;font-weight:600}.booking-form-modal__row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.booking-form-modal__field{margin-bottom:.75rem}.booking-form-modal__row .booking-form-modal__field{margin-bottom:0}.booking-form-modal__label{color:var(--text);margin-bottom:.35rem;font-size:.8125rem;font-weight:600;display:block}.booking-form-modal__input,.booking-form-modal__textarea{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:.9375rem}.booking-form-modal__textarea{resize:vertical;min-height:80px}.booking-form-modal__actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;padding-top:1rem;display:flex}.booking-form-modal__limit-info{color:var(--muted);margin:0 auto 0 0;font-size:.875rem}.modal--booking .modal__content{max-width:100%;overflow-x:hidden}@media (max-width:768px){.booking-form-modal__date-fields,.booking-form-modal__row{grid-template-columns:1fr}}
.booking-range-calendar{width:100%}.booking-range-calendar__hint{color:var(--muted);margin:0 0 .75rem;font-size:.875rem;line-height:1.4}.booking-range-calendar__toolbar{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.75rem}.booking-range-calendar__toolbar-inner{flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;width:100%;display:flex}.booking-range-calendar__nav-btn{flex-shrink:0}.booking-range-calendar__field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.booking-range-calendar__field-label{color:var(--muted);white-space:nowrap;font-size:.8125rem}.booking-range-calendar__custom-select{width:100%}.booking-range-calendar__custom-select--month{min-width:11rem;max-width:15rem}.booking-range-calendar__custom-select--year{min-width:5.5rem;max-width:7rem}.booking-range-calendar__today{margin-left:auto}.availability-calendar__legend--compact{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.5rem .75rem;margin-bottom:.75rem;padding-bottom:.75rem}.booking-range-calendar__months{margin-top:0}.booking-range-calendar__month .availability-calendar__month-header-title{font-size:1rem}.booking-range-calendar__day--clickable{cursor:pointer}.booking-range-calendar .availability-calendar__day--available:hover,.booking-range-calendar .availability-calendar__day--pending:hover{box-shadow:0 2px 8px var(--overlay-black-025,#0000001f);transform:none}.booking-range-calendar__day--in-range{background:color-mix(in srgb,var(--accent)22%,var(--bg))!important;border-color:color-mix(in srgb,var(--accent)50%,var(--border))!important}.booking-range-calendar__day--range-start,.booking-range-calendar__day--range-end,.booking-range-calendar__day--range-single{font-weight:600;background:var(--accent)!important;border-color:var(--accent)!important;color:var(--absolute-white,#fff)!important}.booking-range-calendar__day--range-start .availability-calendar__day-number,.booking-range-calendar__day--range-end .availability-calendar__day-number,.booking-range-calendar__day--range-single .availability-calendar__day-number{color:inherit}@media (max-width:640px){.booking-range-calendar__today{width:100%;margin-left:0}}
.booking-calendar-skeleton{border:1px solid var(--border);background:var(--card);border-radius:12px;padding:16px}.booking-calendar-skeleton__head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.booking-calendar-skeleton__week{grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:10px;display:grid}.booking-calendar-skeleton__days{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.booking-calendar-skeleton__day{aspect-ratio:1;min-height:40px}
.viewing-request-modal__title{color:var(--text);margin:0 0 1rem;font-size:1.25rem;font-weight:600}.viewing-request-modal__field{margin-bottom:1rem}.viewing-request-modal__field .viewing-request-modal__label{color:var(--text);margin-bottom:.35rem;font-size:.9375rem;font-weight:500;display:block}.viewing-request-modal__label--sub{color:var(--muted);margin-top:.75rem;font-size:.8125rem;font-weight:500}.viewing-request-modal__label--sub:first-of-type{margin-top:0}.viewing-request-modal__time-select{width:100%;max-width:12rem;margin-top:.35rem}.viewing-request-modal__date{width:100%;max-width:100%}.viewing-request-modal__hint{color:var(--muted);margin:.35rem 0 0;font-size:.9375rem}.viewing-request-modal__slots{flex-wrap:wrap;gap:.5rem;margin-top:.35rem;display:flex}.viewing-request-modal__slot{min-width:4rem}.viewing-request-modal__slot:disabled{opacity:.5;cursor:not-allowed}.viewing-request-modal__actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:flex}
.listing-detail-skeleton__back{margin-bottom:24px}.listing-detail-skeleton__gallery{aspect-ratio:2;width:100%;margin-bottom:24px}.listing-detail-skeleton__header{margin-bottom:24px}.listing-detail-skeleton__title{margin-bottom:12px}.listing-detail-skeleton__meta{gap:16px;margin-bottom:8px;display:flex}.listing-detail-skeleton__address{margin-top:8px}.listing-detail-skeleton__grid{grid-template-columns:1fr 370px;gap:24px;display:grid}.listing-detail-skeleton__main{flex-direction:column;gap:24px;display:flex}.listing-detail-skeleton__card{flex-direction:column;gap:12px;padding:20px;display:flex}.listing-detail-skeleton__section-title{margin-bottom:4px}.listing-detail-skeleton__specs-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.listing-detail-skeleton__spec-item{align-items:center;gap:12px;display:flex}.listing-detail-skeleton__map{width:100%;height:200px}.listing-detail-skeleton__reviews-list{flex-direction:column;gap:16px;display:flex}.listing-detail-skeleton__review{flex-direction:column;gap:8px;display:flex}.listing-detail-skeleton__review-header{align-items:center;gap:12px;display:flex}.listing-detail-skeleton__review-info{flex-direction:column;gap:4px;display:flex}.listing-detail-skeleton__sidebar{flex-direction:column;gap:16px;display:flex}.listing-detail-skeleton__sidebar-card{flex-direction:column;gap:12px;padding:20px;display:flex}.listing-detail-skeleton__price{margin-bottom:4px}.listing-detail-skeleton__badges{flex-wrap:wrap;gap:8px;display:flex}.listing-detail-skeleton__quick-specs{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:16px;margin:4px 0;padding:12px 0;display:flex}.listing-detail-skeleton__btn{width:100%}.listing-detail-skeleton__contact{align-items:center;gap:12px;margin-bottom:8px;display:flex}.listing-detail-skeleton__contact-info{flex-direction:column;gap:4px;display:flex}@media (max-width:1024px){.listing-detail-skeleton__grid{grid-template-columns:1fr}.listing-detail-skeleton__sidebar{order:-1}.listing-detail-skeleton__specs-grid{grid-template-columns:1fr}}
.listing-detail-page{box-sizing:border-box;width:100%;margin:0 auto}.apartment-preview__banner{background:linear-gradient(135deg,var(--surface-warning-bg)0%,var(--surface-warning-bg-strong)100%);border:2px solid var(--status-warning);box-shadow:0 4px 6px var(--overlay-black-010);border-radius:12px;margin-bottom:24px;padding:16px 20px}.apartment-preview__banner-content{align-items:flex-start;gap:12px;display:flex}.apartment-preview__banner-icon{flex-shrink:0;font-size:24px}.apartment-preview__banner-text strong{color:var(--status-warning-text);margin-bottom:4px;font-size:16px;font-weight:600;display:block}.apartment-preview__banner-text p{color:var(--status-warning-text-strong);margin:0;font-size:14px;line-height:1.5}.apartment-detail__back{align-items:center;gap:8px;margin-bottom:24px;display:flex}.apartment-detail__back-link{color:var(--muted);align-items:center;font-size:14px;text-decoration:none;transition:color .2s;display:inline-flex}.apartment-detail__back-link:hover{color:var(--accent)}.apartment-detail__gallery{border:1px solid var(--border);background:var(--card);border-radius:12px;margin-bottom:24px;position:relative;overflow:hidden}.apartment-detail__gallery .image-slider{aspect-ratio:2;border-radius:12px;width:100%;min-height:0;height:auto!important}.apartment-detail__gallery .image-slider__container{width:100%;height:100%;min-height:0}.apartment-detail__gallery-badges{z-index:4;pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:14px;left:14px}.apartment-detail__gallery-badges .listing-card__badge{border-radius:8px;padding:8px 14px;font-size:.75rem;box-shadow:0 2px 12px #00000059}.apartment-detail__title-section{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:24px}.apartment-detail__title-address{color:var(--muted);overflow-wrap:break-word;word-break:break-word;margin:8px 0 0;font-size:15px;font-weight:500;line-height:1.4}.apartment-detail__title-address-line{align-items:flex-start;gap:8px;margin-top:8px;display:flex}.apartment-detail__title-address-line .apartment-detail__title-address{margin:0}.apartment-detail__title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:700;line-height:1.25}.apartment-detail__title-line{align-items:flex-start;gap:8px;display:flex}.apartment-detail__translation-toggle-btn{min-width:220px}.apartment-detail__translation-revert-btn.icon-btn{border-radius:8px;flex-shrink:0;width:28px;height:28px}.apartment-detail__rating{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:8px;display:flex}.apartment-detail__average-rating{color:var(--text);align-items:center;gap:6px;font-size:14px;display:inline-flex}.apartment-detail__rating-one{align-items:center;gap:8px;display:inline-flex}.apartment-detail__rating-one .apartment-detail__rating-value{font-weight:500}.apartment-detail__star-single{color:var(--status-warning-badge,var(--warn,#eab308));font-size:22px;line-height:1}.apartment-detail__rating-value{font-weight:600}.apartment-detail__views{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:inline-flex}.apartment-detail__views-icon{color:var(--muted);display:inline-flex}.apartment-detail__views-icon svg{width:14px;height:14px}.apartment-detail__grid{box-sizing:border-box;grid-template-columns:1fr 370px;gap:24px;width:100%;max-width:1400px;margin:0 auto;display:grid}.apartment-detail__main{flex-direction:column;gap:24px;min-width:0;max-width:100%;display:flex}.apartment-detail__main .card{background:var(--card);border:1px solid var(--border);box-shadow:0 2px 8px var(--overlay-black-006);border-radius:16px;padding:20px}.apartment-detail__main .card h2,.apartment-detail__main .card h3{color:var(--text);border-bottom:1px dashed var(--border-muted-strong);margin:0 0 12px;padding-bottom:12px;font-size:20px;font-weight:600}.apartment-detail__booking.card{min-width:0}.apartment-detail__booking-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.apartment-detail__booking.card .apartment-detail__booking-head h2{border-bottom:none;margin:0;padding-bottom:0}.apartment-detail__booking-legend-btn{width:28px;min-width:28px;height:28px;min-height:28px;color:var(--muted);border-radius:50%;flex-shrink:0;padding:0;font-size:14px;font-style:italic;font-weight:600}.apartment-detail__booking-legend-btn:hover{color:var(--accent);background:color-mix(in srgb,var(--accent)12%,transparent)}.apartment-detail__booking-legend-modal-title{color:var(--text);margin:0 0 16px;font-size:18px;font-weight:600}.availability-calendar__legend--modal{border-bottom:none;margin-bottom:0;padding-bottom:0}.apartment-detail__booking-calendar-wrap{margin-top:4px}.apartment-detail__booking-loading{min-height:120px;color:var(--muted);justify-content:center;align-items:center;padding:24px;font-size:14px;display:flex}.apartment-detail__booking-loading p{margin:0}.apartment-detail__booking-actions{flex-wrap:wrap;gap:.75rem;margin-top:18px;display:flex}.apartment-detail__booking-actions .apartment-detail__booking-btn{flex:1;min-width:140px}.apartment-detail__booking-btn{width:100%;margin-top:18px}.apartment-detail__do-opinion-subtitle{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.5}.apartment-detail__do-opinion-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}.apartment-detail__do-opinion-block{flex-direction:column;gap:6px;display:flex}.apartment-detail__do-opinion-value{color:var(--text);font-size:22px;font-weight:700;line-height:1.2}.apartment-detail__do-opinion-value-wrap{flex-wrap:wrap;align-items:baseline;gap:2px 4px;display:flex}.apartment-detail__do-opinion-unit{color:var(--muted);font-size:14px;font-weight:500}.apartment-detail__do-opinion-label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.apartment-detail__do-opinion-info{background:var(--accent);width:16px;height:16px;color:var(--text-on-accent);cursor:help;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-style:italic;font-weight:700;display:inline-flex}.apartment-detail__do-opinion-badge{background:var(--accent);color:var(--text-on-accent);border-radius:8px;margin-top:8px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.apartment-detail__description.card{overflow-wrap:break-word;min-width:0}.apartment-detail__description.card h2{letter-spacing:-.01em;color:var(--text);border-bottom:none;margin-bottom:16px;padding-bottom:0;font-size:18px;font-weight:700}.apartment-detail__description-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.apartment-detail__description-head h2{margin-bottom:0}.apartment-detail__description-text{color:var(--text);overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;max-width:100%;margin:0;font-size:15px;line-height:1.7}.apartment-detail__description-actions{border-top:none;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding-top:0;display:flex}.apartment-detail__description-actions .icon-btn.apartment-detail__action-btn{border-radius:8px;width:28px;height:28px}.apartment-detail__description-actions .icon-btn.apartment-detail__action-btn .icon-btn__icon{width:12px;height:12px}.apartment-detail__description-actions .icon-btn.apartment-detail__action-btn--in-comparison{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent)25%,var(--overlay-black-045))}.apartment-detail__description-actions .icon-btn.apartment-detail__action-btn--favorite{color:var(--status-danger-strong);border-color:var(--status-danger-strong);background:color-mix(in srgb,var(--status-danger-strong)25%,var(--overlay-black-045))}.apartment-detail__main .placeholder{color:var(--muted);margin:0}.details-groups{flex-direction:column;gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.details-group{align-items:flex-start;gap:12px;display:flex}.details-group__label{min-width:140px;color:var(--muted);flex-shrink:0;font-weight:500}.details-group__value{color:var(--text);flex:1}.amenities-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.amenity-item{color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.amenity-item__name{flex:1}.apartment-detail__sidebar{width:100%}.apartment-detail__sidebar-sticky{flex-direction:column;align-self:flex-start;gap:20px;width:100%;transition:top .3s;display:flex;position:sticky;top:20px}body.site-header-visible .apartment-detail__sidebar-sticky{top:76px}.apartment-detail__sidebar-summary.card,.apartment-detail__contact.card{background:var(--card);border:1px solid var(--border);box-shadow:0 2px 8px var(--overlay-black-006);border-radius:16px;padding:20px}.apartment-detail__sidebar-summary.card{flex-direction:column;gap:0;display:flex}.sidebar-summary__head{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:start;gap:12px 20px;margin-bottom:16px;padding-bottom:16px;display:grid}.sidebar-summary__title{color:var(--text);letter-spacing:-.01em;min-width:0;margin:0;font-size:17px;font-weight:700;line-height:1.3}.sidebar-summary__title-wrap{align-items:flex-start;gap:8px;min-width:0;display:flex}.sidebar-summary__price{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.sidebar-summary__price-amount{color:var(--accent);letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1.2}.sidebar-summary__price-period{color:var(--muted);font-size:12px;font-weight:500}.sidebar-summary__row-availability-location{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;margin-bottom:14px;display:flex}.sidebar-summary__row-availability-location .sidebar-summary__location{min-width:0;margin:0}.sidebar-summary__row-availability-location .sidebar-summary__location-text{overflow-wrap:break-word;word-break:break-word}.sidebar-summary__row-availability-location .sidebar-summary__availability{flex-shrink:0;margin-left:auto}.sidebar-summary__row-sep{color:var(--muted);-webkit-user-select:none;user-select:none;font-size:13px}.sidebar-summary__availability{border-radius:8px;width:fit-content;padding:6px 12px;font-size:12px;font-weight:600;display:inline-block}.sidebar-summary__availability--available{background:var(--status-success-bg-strong);color:var(--success,var(--status-success))}.sidebar-summary__availability--unavailable{background:var(--status-danger-bg-strong);color:var(--status-danger)}.sidebar-summary__location{align-items:center;gap:6px;font-size:13px;line-height:1.4;display:inline-flex}.sidebar-summary__body{flex-direction:column;gap:12px;margin-bottom:4px;display:flex}.sidebar-summary__body .sidebar-summary__specs{border-bottom:1px solid var(--border);margin-bottom:0;padding-bottom:12px}.sidebar-summary__body .sidebar-summary__badges{margin-bottom:0}.sidebar-summary__icon{color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-summary__location-text{color:var(--muted)}.sidebar-summary__specs{color:var(--text);flex-wrap:wrap;gap:12px 20px;font-size:13px;line-height:1.4;display:flex}.sidebar-summary__spec{align-items:center;gap:6px;display:inline-flex}.sidebar-summary__spec .sidebar-summary__icon{opacity:.85}.sidebar-summary__spec--muted{color:var(--muted)}.sidebar-summary__badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.apartment-badge{border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;line-height:1.3;display:inline-flex}.apartment-badge__icon{opacity:.9;flex-shrink:0}.apartment-badge__icon--pets{opacity:1;min-width:18px;min-height:18px}.apartment-badge__text{white-space:nowrap}.apartment-badge--default{background:var(--accent);color:var(--text-on-accent,white)}.apartment-badge--secondary{background:var(--muted-bg,color-mix(in srgb,var(--text)12%,transparent));color:var(--text)}.apartment-badge--allowed{background:color-mix(in srgb,var(--success,var(--status-success))18%,transparent);border:1px solid color-mix(in srgb,var(--success,var(--status-success))45%,transparent);color:var(--success,var(--status-success))}.sidebar-summary__pricing{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.sidebar-summary__pricing-title{color:var(--text);letter-spacing:.02em;margin:0 0 10px;font-size:13px;font-weight:600}.sidebar-summary__pricing-list.details-groups{gap:6px;margin:0}.sidebar-summary__pricing-list .details-group{justify-content:space-between;align-items:baseline;gap:12px;font-size:13px}.sidebar-summary__pricing-list .details-group__label{color:var(--muted);flex-shrink:0}.sidebar-summary__pricing-list .details-group__value{color:var(--text);text-align:right;overflow-wrap:break-word;word-break:break-word;min-width:0;margin-left:auto}.apartment-detail__contact.card{flex-direction:column;gap:0;display:flex}.apartment-detail__contact-title{color:var(--text);margin:0 0 16px;font-size:18px;font-weight:600}.apartment-detail__contact .owner-card{align-items:flex-start;gap:14px;display:flex}.contact-details{flex-direction:column;gap:6px;width:100%;display:flex}.apartment-detail__contact .contact-details .contact-details__row{width:100%;min-width:0;min-height:unset;cursor:pointer;height:auto;font:inherit;text-align:left;color:inherit;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:8px 0;transition:background .15s;display:flex}.apartment-detail__contact .contact-details .contact-details__row:hover{background:var(--muted-bg,var(--overlay-white-005))}.apartment-detail__contact .contact-details .contact-details__row .btn-text{justify-content:space-between;align-items:baseline;gap:12px;width:100%;display:flex}.contact-details__label{color:var(--muted);flex-shrink:0;font-size:13px;font-weight:500}.contact-details__value{color:var(--text);text-align:right;overflow-wrap:break-word;word-break:break-word;flex-shrink:0;min-width:0;font-size:13px}.contact-details__empty{color:var(--muted);margin:0;font-size:14px}.apartment-detail__contact h3{color:var(--text);margin:0 0 12px;font-size:18px;font-weight:600}.apartment-detail__error{text-align:center;padding:48px 24px}.apartment-detail__error h2{color:var(--text);margin:0 0 12px;font-size:22px}.apartment-detail__error p{color:var(--muted);margin:0 0 20px}.apartment-detail__loading{text-align:center;color:var(--muted);padding:48px 24px}.apartment-detail__availability{border-radius:12px;margin-bottom:12px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-block}.apartment-detail__availability--available{background:var(--status-success-bg-soft);color:var(--success,var(--status-success))}.apartment-detail__availability--unavailable{background:var(--status-danger-bg-soft);color:var(--status-danger)}.amenity-item__icon{flex-shrink:0;font-size:1.25em}.amenity-item__icon .amenity-item__img{object-fit:contain;filter:invert();width:20px;height:20px;display:block}[data-theme=light] .amenity-item__icon .amenity-item__img{filter:none}.apartment-detail__similar-listings-wrapper{border-top:1px solid var(--border);flex-direction:column;gap:32px;margin-top:48px;padding-top:32px;display:flex}.apartment-detail__similar-listings-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.apartment-detail__similar-listings-head h3{color:var(--text);margin:0;font-size:20px;font-weight:600}.apartment-detail__similar-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.apartment-detail__map .card h3{margin-top:0}.apartment-detail__map-embed{background:var(--bg);border-radius:8px;width:100%;min-height:400px;margin-bottom:12px;overflow:hidden}.apartment-detail__map-embed .leaflet-bottom.leaflet-right{display:none}.apartment-detail__map-embed iframe{display:block}.apartment-detail__map-poi-panel{flex-wrap:wrap;gap:8px 16px;margin-bottom:8px;padding:12px 0;display:flex}.apartment-detail__map-poi-panel .checkbox-label{color:var(--text);font-size:13px}.apartment-detail__map-embed-wrap{z-index:1;isolation:isolate;position:relative;overflow:hidden}.apartment-detail__map-legend{background:var(--card);border:1px solid var(--border);color:var(--text);z-index:1000;border-radius:8px;flex-wrap:wrap;gap:12px 20px;padding:10px 14px;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px}.apartment-detail__map-legend-item{align-items:center;gap:6px;display:flex}.apartment-detail__map-legend-pin{background:var(--primary);border:2px solid var(--card);border-radius:50% 50% 50% 0;width:14px;height:20px;display:inline-block;transform:rotate(-45deg);box-shadow:0 1px 3px #0000004d}.apartment-detail__map-legend-dot{border:1px solid var(--card);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 1px 2px #0003}.apartment-detail__map-loading{text-align:center;color:var(--text-muted,var(--text-muted-strong));padding:24px}.apartment-detail__map-loading--overlay{background:var(--bg);z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.listing-marker{background:0 0;border:none}.listing-marker .listing-marker__pin{background:var(--accent,var(--accent-sky));border:3px solid var(--absolute-white);width:32px;height:32px;box-shadow:0 2px 8px var(--overlay-black-035);border-radius:50% 50% 50% 0;margin-top:-32px;margin-left:-16px;display:block;transform:rotate(-45deg)}.apartment-detail__map-link{color:var(--accent);font-weight:500;text-decoration:none;display:inline-block}.apartment-detail__map-link:hover{text-decoration:underline}.apartment-detail__reviews-header{border-bottom:1px dashed var(--border-muted-strong);box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:16px;padding-bottom:12px;display:flex}.apartment-detail__main .apartment-detail__reviews .apartment-detail__reviews-header h3{border-bottom:none;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding-bottom:0;display:inline-flex}.apartment-detail__reviews-marker{margin-left:4px}.review-button--write{flex-shrink:0}.review-button__icon{font-size:1em}.apartment-detail__reviews-list{min-height:80px}.reviews-list{flex-direction:column;gap:16px;display:flex}.review-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:16px}.review-card__head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.review-card__avatar{background:color-mix(in srgb,var(--card)88%,var(--absolute-black)12%);width:40px;height:40px;color:var(--text);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.review-card__avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.review-card__avatar-placeholder{border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.review-card__meta{flex:1;min-width:0}.review-card__author-link,.review-card__author-text{color:var(--text);font-size:15px;font-weight:600}.review-card__author-link:hover{color:var(--accent)}.review-card__date{color:var(--muted);margin-top:2px;font-size:13px}.review-card__rating{color:var(--status-warning-badge);flex-shrink:0;font-size:16px}.review-card__title{color:var(--text);margin:0 0 8px;font-size:16px;font-weight:600}.review-card__body{color:var(--text);opacity:.9;margin:0;font-size:15px;line-height:1.6}.reviews-empty{color:var(--muted);margin:0}.review-form--modal{background:0 0;border:none;padding:0}.review-form__title{color:var(--text);margin:0 0 16px;font-size:18px;font-weight:600}.review-form__form{flex-direction:column;gap:16px;display:flex}.review-form__field{flex-direction:column;gap:6px;display:flex}.review-form__label{color:var(--text);font-size:14px;font-weight:500}.review-form__required{color:var(--danger)}.review-form__stars{align-items:center;gap:4px;display:flex}.review-form__star{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:24px;line-height:1;transition:color .2s}.review-form__star--active{color:var(--warn)}.review-form__textarea{border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px}.review-form__textarea:focus{border-color:var(--accent);outline:none}.review-form__textarea{resize:vertical;min-height:100px}.review-form__message--error{color:var(--danger);font-size:13px}.review-form__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;width:100%;margin-top:8px;display:flex}.review-form__delete{margin-right:auto}.apartment-detail__contact--owner .owner-card{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.owner-card__avatar{background:var(--accent);width:48px;height:48px;color:var(--text-on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:flex}.owner-card__avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.owner-card__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.owner-card__name-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;display:flex}.owner-card__name-inline{flex:1;align-items:center;gap:6px;min-width:0;display:inline-flex}.owner-card__presence{flex-shrink:0}.owner-card__name-link,.owner-card__name-text{color:var(--text);font-size:16px;font-weight:600;line-height:1.3}.owner-card__name-link:hover{color:var(--accent)}.owner-card__badge{color:var(--muted);letter-spacing:.04em;font-size:11px;font-weight:600;display:inline-block}.owner-card__member-since{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.3}.contact-login-cta{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:20px 0 4px;display:flex}.contact-login-cta__icon{background:color-mix(in srgb,var(--accent)14%,transparent);width:48px;height:48px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:flex}.contact-login-cta__text{color:var(--text);max-width:280px;margin:0;font-size:15px;line-height:1.45}.contact-login-cta__btn{justify-content:center;width:100%;font-weight:600}.owner-card__login-cta{color:var(--muted);margin:0 0 12px;font-size:14px}.apartment-detail__specs-header{border-bottom:1px dashed var(--border-muted-strong);justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding-bottom:12px;display:flex}.apartment-detail__main .apartment-detail__specs .apartment-detail__specs-header h3{border-bottom:none;margin:0;padding-bottom:0}.apartment-detail__specs .icon-btn.apartment-detail__specs-toggle{border-radius:8px;flex-shrink:0;width:28px;height:28px}.apartment-detail__specs .icon-btn.apartment-detail__specs-toggle .icon-btn__icon{width:12px;height:12px;transition:transform .2s}.apartment-detail__specs .icon-btn.apartment-detail__specs-toggle[aria-expanded=true] .icon-btn__icon{transform:rotate(180deg)}.apartment-detail__specs-amenities-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:768px){.apartment-detail__specs-amenities-row{grid-template-columns:1fr}}.apartment-detail__specs .specs-main{border-bottom:1px dashed var(--border-muted-soft);flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:16px;display:flex}.apartment-detail__specs .specs-rest.spec-details-two-cols{grid-template-columns:1fr 1fr;gap:12px 24px;display:grid}@media (max-width:560px){.apartment-detail__specs .specs-rest.spec-details-two-cols{grid-template-columns:1fr}}.apartment-detail__specs .specs-sections{grid-template-columns:1fr;gap:12px;display:grid}.specs-section{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:14px;display:flex}.specs-section__icon{color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.specs-section__icon svg{width:16px;height:16px;display:block}.specs-section__label{color:var(--muted);flex-shrink:0;font-weight:600}.specs-section__value{color:var(--text)}.floor-plans-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.floor-plans-tab{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;transition:border-color .2s,background .2s}.floor-plans-tab:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent)8%,transparent)}.floor-plans-tab--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent)15%,transparent);color:var(--accent)}.contact-details-divider{background:var(--border);width:100%;height:1px;margin:16px 0}.apartment-detail__amenities-title{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;margin:0 0 12px;display:flex}.apartment-detail__amenities-title .need-to-do-marker__wrap{margin-left:4px}.apartment-detail__amenities-title .apartment-detail__amenities-toggle{border-radius:8px;flex-shrink:0;width:28px;height:28px;margin-left:auto}.apartment-detail__amenities-title .apartment-detail__amenities-toggle .icon-btn__icon{width:12px;height:12px;transition:transform .2s}.apartment-detail__amenities-title .apartment-detail__amenities-toggle[aria-expanded=true] .icon-btn__icon{transform:rotate(180deg)}.apartment-detail__amenities .amenities-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.energy-scale{margin-bottom:16px}.energy-scale__bar{border-radius:6px;align-items:flex-end;gap:1px;width:100%;height:32px;margin-bottom:8px;display:flex;overflow:visible}.energy-scale__segment{border-radius:3px;flex:1;min-width:0;height:8px;transition:height .2s,box-shadow .2s}.energy-scale__segment--active{height:12px;box-shadow:0 0 0 2px var(--text);z-index:1}.energy-scale__labels{width:100%;color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.energy-scale__label{text-align:center;flex:1;min-width:0}.energy-scale__label--active{color:var(--text);font-weight:700}.energy-details{grid-template-columns:repeat(2,1fr);gap:8px 20px;display:grid}.energy-detail{font-size:14px}.energy-detail__label{color:var(--muted);margin-right:6px}.energy-detail__value{color:var(--text)}.floor-plans-list{flex-direction:column;gap:16px;display:flex}.floor-plan-item__label{color:var(--text);margin-bottom:8px;font-weight:600}.floor-plan-item__img{object-fit:contain;border:1px solid var(--border);border-radius:8px;width:100%;max-height:400px}.floor-plan-item__placeholder{background:var(--bg);border:1px solid var(--border);min-height:200px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;display:flex}@media (max-width:1023px){.apartment-detail__grid{grid-template-columns:1fr;gap:24px}.apartment-detail__main{order:2}.apartment-detail__sidebar{order:1}.apartment-detail__sidebar-sticky{position:static}}@media (max-width:767px){.apartment-detail__back{margin-bottom:16px}.apartment-detail__back-link{font-size:13px}.apartment-detail__gallery{border-radius:10px;margin-bottom:16px}.apartment-detail__title{font-size:22px}.apartment-detail__main .card{padding:16px}.details-group{flex-direction:column;gap:4px}.details-group__label{min-width:0}.specs-sections{grid-template-columns:1fr}}
