/* pages/listings.css — сетки каталогов, карточки в листингах (этап 5.1 / 9.1) */

/* Секции каталогов (компактные отступы; главная «Гостиницы» — padding-top в hotel-card.css) */
.rooms-section,
.hotels-listing,
.rooms-listing {
    padding-top: var(--section-padding-y);
    padding-bottom: var(--section-padding-y);
}

.hotels-listing {
    padding: var(--section-padding-y) 0;
}

.section-header {
    margin-bottom: var(--section-header-mb);
}

/* Ряды Bootstrap: равная высота карточек в листинге */
.hotels-section .row.g-4,
.rooms-section .row.g-4,
.hotels-listing .row.g-4,
.rooms-listing .row.g-4,
.similar-rooms .row.g-4,
.available-rooms .row.g-4 {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    --bs-gutter-x: var(--listing-gap);
    --bs-gutter-y: var(--listing-gap);
}

.hotels-section .row.g-4 > [class*="col-"],
.rooms-section .row.g-4 > [class*="col-"],
.rooms-listing .row.g-4 > [class*="col-"],
.similar-rooms .row.g-4 > [class*="col-"],
.available-rooms .row.g-4 > [class*="col-"],
.row.room-cards-catalog-row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

/* Ссылка/карточка растягивается на всю высоту колонки (самая высокая в ряду) */
.hotels-section .row.g-4 > [class*="col-"] > .card-link,
.hotels-section .row.g-4 > [class*="col-"] > .hotel-card {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 100%;
}

.hotels-section .row.g-4 > [class*="col-"] > .hotel-card > .hotel-card-body-link {
    flex: 1 1 auto;
    min-height: 0;
}

.rooms-section .row.g-4 > [class*="col-"] > .room-card,
.rooms-listing .row.g-4 > [class*="col-"] > .room-card,
.similar-rooms .row.g-4 > [class*="col-"] > .room-card,
.available-rooms .row.g-4 > [class*="col-"] > .room-card,
.row.room-cards-catalog-row > [class*="col-"] > .room-card {
    flex: 1 1 auto;
    width: 100%;
    min-height: 100%;
}

.hotels-section .row.g-4 > [class*="col-"] > .card-link > .hotel-card {
    flex: 1 1 auto;
    width: 100%;
}

.hotels-section .row.g-4 .hotel-card,
.rooms-section .row.g-4 .room-card,
.rooms-listing .row.g-4 .room-card,
.similar-rooms .row.g-4 .room-card,
.available-rooms .row.g-4 .room-card {
    flex: 1 1 auto;
    min-height: 0;
}

.row.room-cards-catalog-row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

/* Ссылки-обёртки карточек (ранее в reset.css) */
.card-link {
    display: block;
    height: 100%;
}

a.card-link:hover {
    color: inherit;
}

a.card-link .btn:not(.btn-favorite) {
    pointer-events: none;
}

.card-link-wrap {
    display: flex;
    flex-direction: column;
    height: 100%;
}

a.card-link-main.card-link {
    flex: 1 1 auto;
    min-height: 0;
}

.card-link-wrap > a.btn {
    flex-shrink: 0;
}

/* Каталог номеров: две кнопки без вложенных <a> */
.room-card-catalog-col {
    display: flex;
    height: 100%;
}

.room-card.room-card-catalog {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
}

.room-card-catalog .room-card-content {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    text-align: left;
}

.room-card-catalog .room-card-footer {
    margin-top: auto;
    flex-shrink: 0;
}

/* .room-card-image-link — card-catalog-shared.css */

.room-card-heading-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

.room-card-heading-link .room-card-title {
    margin-top: 0;
    transition: color 0.2s ease;
}

.room-card-heading-link:hover .room-card-title {
    color: var(--primary-on-light);
}

/* Hover кнопок в карточках — единый стиль в components/buttons.css */

a.card-link .room-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

a.card-link .hotel-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

a.room-card-hotel {
    text-decoration: none;
    color: var(--secondary-color);
    transition: opacity 0.2s, color 0.2s;
}

a.room-card-hotel:hover {
    color: var(--secondary-dark);
    opacity: 0.9;
}

span.room-card-hotel {
    color: var(--secondary-color);
}

/* Рейтинг на карточках в листингах (этап 3.5) */
.badge.bg-warning.text-dark.hotel-card-badge,
.badge.bg-warning.text-dark.page-header-rating,
.hotel-info-card-rating .badge.bg-warning.text-dark {
    background-color: var(--badge-rating-bg) !important;
    color: var(--badge-rating-fg) !important;
}
