/* Единая ширина для фильтров и сетки */
.brs-container{
  max-width: 100%; /* подгони при желании */
  margin: 0 auto;
/*  padding: 0 10px;*/
  box-sizing: border-box;
}

/* Фильтры — карточка по центру */
.brs-filters-card{
  background:#fff;border:1px solid #e5e7eb;
  /*border-radius:16px;*/
  box-shadow:0 4px 18px rgba(0,0,0,.06);padding:14px 16px;margin:0 auto 18px;
  box-sizing: border-box;
}

/* Контролы: центр */
.brs-filter-controls{
  display:flex;gap:24px;align-items:flex-start;justify-content:center;flex-wrap:wrap;margin-bottom:0;
}
.brs-group{display:flex;flex-direction:column;gap:8px;align-items:center}
.brs-group-title{font-weight:700;font-size:.95rem}
.brs-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.brs-chip{
  appearance:none;
  border:1px solid #e5e7eb;
  background:#fff;
  color:#111827;
  /*padding:8px 12px;*/
  border-radius:5px;
  cursor:pointer;
  font-size:.93rem;
  transition:all .15s ease;
  box-shadow:0 1px 0 rgba(0,0,0,.03)
}
.brs-chip:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.06)}
.brs-chip.active{background:#111827;color:#fff;border-color:#111827}

/* Обёртка сетки той же ширины */
.brs-grid-wrap{margin:0 auto}

/* Сетка карточек */
.brs-hotels-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items: stretch; /* чтобы все карточки тянулись одинаково */
}
@media (max-width:1200px){.brs-hotels-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.brs-hotels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.brs-hotels-grid{grid-template-columns:1fr}}

/* Лоадер по центру */
.brs-loading{padding:.75rem 0;opacity:.85;text-align:center}

/* Карточка отеля */
.brs-card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;

  border:1px solid #e5e7eb;
  border-radius:16px;
  overflow:hidden;
  background:#fff;

  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:transform .15s ease,box-shadow .15s ease;

  /* Ключевой фикс против "распирания" карточки контентом */
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.brs-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(0,0,0,.08)}

/* Фиксированная высота картинки и единые пропорции */
.brs-thumb{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#f3f4f6;
  overflow:hidden;
}

/* ВАЖНО: img строго заполняет контейнер */
.brs-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Если нет картинки (заглушка должна держать высоту) */
.brs-thumb:empty{
  min-height: 0; /* просто на всякий */
}

/* Контент */
.brs-body{
  padding:12px;
  min-width: 0; /* ещё один фикс: текст не распирает родителя */
  box-sizing: border-box;
}

.brs-title{
  font-weight:700;
  line-height:1.3;
  margin-bottom:6px;
  min-height:2.6em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;

  /* критично: длинные строки не должны растягивать карточку */
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Мета */
.brs-meta{
  display:flex;
  gap:8px;
  align-items:center;
  font-size:.9rem;
  color:#374151;
  margin-bottom:8px;

  min-width: 0;
  flex-wrap: wrap; /* если места мало — перенос, а не растяжение */
}

.brs-dot{width:4px;height:4px;border-radius:50%;background:#9ca3af;display:inline-block}

/* Иконки звёзд */
.brs-stars-wrap{display:inline-flex;gap:4px;min-width:0}
.brs-star{
  width:16px;height:16px;display:inline-block;opacity:.35;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="%23000"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.803 2.036a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.803-2.036a1 1 0 00-1.175 0l-2.803 2.036c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.88 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>') center/contain no-repeat;
  background:#111827;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="%23000"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.803 2.036a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.803-2.036a1 1 0 00-1.175 0l-2.803 2.036c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.88 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg>') center/contain no-repeat
}
.brs-star.filled{opacity:1}

/* Цена */
.brs-price{
  font-weight:800;
  font-size:1.05rem;
  margin-top:auto;

  /* чтобы цена не распирала карточку (редко, но бывает если вставят длинную валюту) */
  min-width: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.brs-price.brs-muted{
    opacity:.5;
    font-size: 15px;
    /*padding-top: 5px;*/
    }

.brs-empty{padding:.75rem 0;opacity:.8;text-align:center}
