﻿/* pages/room-details.css — детальная страница номера (этап 9.1) */

.room-details {
    padding-top: var(--section-padding-y);
    padding-bottom: var(--section-padding-y);
}

/* ========================================
   Спеки, политики
======================================== */

.room-specs {
    background: var(--light);
    border-radius: var(--card-radius);
    padding: var(--card-widget-padding);
    box-shadow: var(--shadow-sm);
}

.spec-item {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-4) var(--space-5);
    background: var(--white);
    border-radius: var(--radius-md);
    transition: var(--transition-slow);
    height: 100%;
    border: var(--border-subtle);
    box-shadow: var(--shadow-sm);
    min-height: 76px;
}

@media (hover: hover) {
    .spec-item:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
        border-color: var(--primary-alpha-20);
    }
}

.spec-icon {
    flex-shrink: 0;
    width: 48px; /* Чуть меньше для экономии места */
    height: 48px;
    background: var(--icon-circle-bg);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-dark);
    font-size: var(--card-title-size);
}

.spec-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0; /* Важно для работы text-overflow */
    flex: 1; /* Занимает всё доступное пространство */
}

.spec-content strong {
    font-size: var(--text-base); /* Немного меньше для длинных значений */
    font-weight: var(--font-weight-section);
    color: var(--dark);
    line-height: 1.3; /* Компактнее для многострочного текста */
    display: block;
    word-wrap: break-word; /* Перенос длинных слов */
    overflow-wrap: break-word;
    hyphens: auto; /* Автоматические переносы */
}

.spec-content span {
    font-size: var(--text-xs); /* Немного меньше для экономии места */
    color: var(--gray);
    margin-top: 0.25rem;
    display: block;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

/* Адаптация для мобильных устройств */
@media (max-width: 575.98px) {
    .spec-item {
        padding: 0.75rem 0.875rem;
        gap: 0.75rem;
        min-height: 68px;
    }
    
    .spec-icon {
        width: 42px;
        height: 42px;
        font-size: var(--card-title-size-sm);
    }
    
    .spec-content strong {
        font-size: var(--text-sm);
    }
    
    .spec-content span {
        font-size: calc(var(--text-xs) * 0.95);
    }
}

/* Единый стиль для всех info-элементов */
.amenity-item,
.feature-item {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--light);
    border-radius: var(--radius-md);
    border: var(--border-subtle);
    font-size: var(--text-sm);
}

.amenity-item i,
.feature-item i {
    color: var(--primary-on-light);
    font-size: var(--text-base);
}

/* Адаптивный grid для amenities и features */
.amenities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.75rem;
}

/* Адаптивный grid для характеристик номера */
.specs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

/* Правила размещения — единый стиль на странице отеля и номера (карточка + мини-карточки) */
.room-policies,
.hotel-policies {
    background: var(--white);
    border-radius: var(--card-radius);
    padding: var(--card-widget-padding);
    border: var(--border-subtle);
    box-shadow: var(--shadow-sm);
}

.policies-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 1.25rem;
}

.policy-item {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-4) var(--space-5);
    background: var(--light);
    border-radius: var(--radius-md);
    border: var(--border-subtle);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-slow);
}

@media (hover: hover) {
    .policy-item:hover {
        box-shadow: var(--shadow-md);
        border-color: var(--primary-alpha-15);
    }
}

/* Только ведущая иконка слева; вложенные <i> (например Font Awesome в отзывах) не трогаем */
.policy-item > i {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--icon-circle-bg);
    border-radius: var(--radius-md);
    color: var(--primary-dark);
    font-size: var(--text-base);
}

.policy-item > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.policy-item strong {
    display: block;
    font-size: var(--text-base);
    font-weight: var(--font-weight-section);
    color: var(--dark);
    margin-bottom: 0.35rem;
    line-height: var(--line-height-heading);
}

.policy-item span {
    color: var(--gray);
    font-size: var(--text-sm);
    line-height: var(--line-height-body);
}

