/* Стили для страниц проектов */

.project-page {
    background-color: var(--color-bg-main);
    color: var(--color-text-main);
}

.project-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    overflow: hidden;
}

.project-hero-bg,
.project-hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    filter: brightness(0.6);
}

.project-hero::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 20%;
    /* Градиент будет занимать нижнюю половину экрана */
    background: linear-gradient(to bottom, transparent, var(--color-bg-main));
    z-index: 1;
    pointer-events: none;
}

.project-hero-content {
    position: relative;
    z-index: 2;
}

.project-hero-title {
    font-family: "Montserrat-Bold", Helvetica, sans-serif;
    font-weight: 700;
    font-size: clamp(32px, 8vw, 64px);
    letter-spacing: 0.1em;
    margin-bottom: 10px;
    text-transform: uppercase;
}

.project-hero-subtitle {
    font-family: "Montserrat-Medium", Helvetica, sans-serif;
    font-weight: 500;
    font-size: clamp(10px, 2vw, 14px);
    letter-spacing: 0.3em;
    opacity: 0.7;
    text-transform: uppercase;
}

/* Анимация появления текста по буквам */
.hero-char {
    display: inline-block;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

body.loaded .hero-char {
    opacity: 1;
    transform: translateY(0);
}

.project-section {
    padding: 100px var(--variable-collection-global-side-padding);
}

.section-about {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.about-title {
    font-family: "Montserrat-SemiBold", Helvetica, sans-serif;
    font-weight: 600;
    font-size: 40px;
    margin-bottom: 40px;
    text-transform: uppercase;
}

.about-description {
    font-family: "Montserrat-Regular", Helvetica, sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.8;
    max-width: 800px;
    margin: 0 auto 40px;
    opacity: 0.8;
}

.about-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 100px;
    font-family: "Montserrat-Medium", Helvetica, sans-serif;
    font-weight: 500;
    font-size: 12px;
    opacity: 0.6;
}

.meta-item {
    display: flex;
    gap: 10px;
}

.meta-item-label {
    display: block;
    margin-bottom: 8px;
}

/* Сетка контента */
.content-grid {
    display: flex;
    flex-direction: column;
    gap: 150px;
}

.room-block {
    display: flex;
    flex-direction: column;
    gap: 40px;

    padding: 0;
}

.kitchen-col .text-container {
    padding: 100px;
}

.kitchen-col img {
    width: 55%;
}

.kitchen-auto-slider {
    display: grid;
    width: 55%;
}

.kitchen-auto-slider img {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
}

.kitchen-auto-slider img.active {
    opacity: 1;
}

.room-header {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding-left: var(--variable-collection-global-side-padding);
    padding-right: var(--variable-collection-global-side-padding);
}

.room-title {
    font-family: "Montserrat-SemiBold", Helvetica, sans-serif;
    font-weight: 600;
    font-size: 40px;
    text-transform: uppercase;
}

.room-area {
    font-family: "Montserrat-Regular", Helvetica, sans-serif;
    font-weight: 400;
    font-size: 10px;
    opacity: 0.5;
    color: gray;
}

.kitchen-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.kitchen-col {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: space-between;
}

/* Специфичные раскладки */
.content-flex-row {
    display: flex;
    align-items: center;
    gap: 40px;
}

.content-flex-row.reverse {
    flex-direction: row-reverse;
}

.content-flex-image {
    width: 65%;
    object-fit: cover;
}

.content-flex-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.room-text {
    font-family: "Montserrat-Regular", Helvetica, sans-serif;
    font-weight: 400;
    font-size: 13px;
    line-height: 1.6;
    opacity: 0.7;
}

.bedroom-grid,
.bathroom-grid {
    display: flex;
    justify-content: center;
    width: 100%;
    align-items: center;
    gap: 15px;
}

.bedroom__text-container,
.bathroom__text-container {
    width: 100%;
    max-width: 1200px;
    padding-left: var(--variable-collection-global-side-padding);
    padding-right: var(--variable-collection-global-side-padding);
}

.bedroom-grid img {
    width: 400px;
    transition: width 0.4s ease;
    cursor: pointer;
}

/* Картинка, выбранная по клику или по умолчанию */
.bedroom-grid img.selected {
    width: 450px;
}

/* При наведении на ЛЮБУЮ картинку уменьшаем остальные неактивные картинки */
.bedroom-grid:has(img:hover) img:not(:hover) {
    width: 400px;
}

/* Наведенная картинка всегда становится большой */
.bedroom-grid img:hover {
    width: 450px;
}

/* Стили для галереи санузла (зум при наведении) */
.bathroom-grid .zoom-container {
    width: 400px;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    position: relative;
    cursor: zoom-in;
}

.bathroom-grid .zoom-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
    transform-origin: center center;
}

.bathroom-grid .zoom-container:hover img {
    transform: scale(1.4);
}

/* Слайдер */
.slider-section {
    text-align: center;
    overflow: hidden;
}

.slider-subtitle {
    font-family: "Montserrat-Regular", Helvetica, sans-serif;
    font-weight: 400;
    font-size: 14px;
    opacity: 0.7;
    margin-top: -20px;
    margin-bottom: 40px;
}

.slider-container {
    position: relative;
    width: calc(100% + var(--variable-collection-global-side-padding) * 2);
    margin-left: calc(-1 * var(--variable-collection-global-side-padding));
    display: block;
}

.slider-images {
    position: relative;
    width: 100%;
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    align-items: center;
    cursor: grab;
    gap: 20px;
    padding: 0 calc(50vw - 35vw);
    /* Центрирует первую и последнюю картинки */
}

.slider-images.dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    /* Отключаем жесткую привязку во время драгинга */
    scroll-behavior: auto;
    /* Убираем плавность для точного следования за мышью */
}

.slider-images::-webkit-scrollbar {
    display: none;
}

.slider-main-img {
    flex: 0 0 70vw;
    width: 70vw;
    height: 60vh;
    max-height: none;
    object-fit: contain;
    scroll-snap-align: center;
    -webkit-user-drag: none;
    /* Защищает от нативного перетаскивания картинки браузером */
    user-select: none;
    opacity: 0.3;
    transition: opacity 0.4s ease;
}

.slider-main-img.active {
    opacity: 1;
}

.slider-arrow {
    display: flex;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    align-items: center;
    justify-content: center;
    padding: 0;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: pointer;
    border: none;
    transition: opacity 0.3s, background-color 0.3s;
}

.slider-arrow:hover {
    background-color: rgba(0, 0, 0, 0.8);
    opacity: 1;
}

.arrow-left {
    left: 30px;
}

.arrow-right {
    right: 30px;
}

/* Точки (пагинация) слайдера */
.slider-dots {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

.slider-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.2);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background-color var(--transition-base), transform var(--transition-base);
}

.slider-dot.active {
    background-color: var(--color-text-main);
    transform: scale(1.2);
}

.room-title-wrapper {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: opacity var(--transition-base);
}

.room-title-wrapper:hover {
    opacity: 0.8;
}

.dropdown-icon {
    transition: transform var(--transition-base);
    color: #fff
}

.slider-room-info.dropdown-open .dropdown-icon {
    transform: rotate(180deg);
}

.room-dropdown-list {
    position: absolute;
    bottom: 100%;
    left: 0;
    margin-bottom: 15px;
    background-color: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 8px 0;
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
    min-width: 220px;
    z-index: 20;
}

.slider-room-info.dropdown-open .room-dropdown-list {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.room-dropdown-item {
    padding: 12px 20px;
    font-family: "Montserrat-SemiBold", Helvetica, sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    transition: background-color var(--transition-base), color var(--transition-base);
    text-align: left;
    border: none;
    background: none;
    width: 100%;
}

.room-dropdown-item:hover,
.room-dropdown-item.active {
    background-color: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.slider-bottom-panel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 var(--variable-collection-global-side-padding);
    margin-top: 24px;
    width: 100%;
    box-sizing: border-box;
    position: relative;
}

.slider-room-info {
    display: flex;
    align-items: baseline;
    gap: 10px;
    transition: opacity 0.3s ease;
    position: relative;
}

.slider-room-info.hidden,
.slider-bottom-panel .slider-dots.hidden {
    opacity: 0;
}

.slider-room-info .room-title {
    margin: 0;
    color: var(--color-text-main);
}

.slider-bottom-panel .slider-dots {
    margin-top: 0;
    transition: opacity 0.3s ease;
}

/* Галерея на весь экран (Попап Lightbox) */
.popup.popup-gallery {
    background-color: rgba(0, 0, 0, 0.95);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

.popup-gallery .popup-close {
    position: absolute;
    top: 30px;
    right: 30px;
    z-index: 100;
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.popup-gallery-content {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(0.95);
    transition: transform 0.4s ease;
    overflow: hidden;
}

.popup-gallery-content .slider-container {
    width: 100%;
    min-width: 0;
    max-width: 100vw;
    margin-left: 0;
}

.popup.active .popup-gallery-content {
    transform: scale(1);
}

.gallery-slider-images {
    height: 100vh;
    height: 100dvh;
    padding: 0 calc(50vw - 45vw) 100px;
    /* Добавлен отступ снизу 100px под панель */
    box-sizing: border-box;
    gap: 40px;
}

.gallery-main-img {
    flex: 0 0 90vw;
    width: 90vw;
    height: calc(100vh - 100px);
    height: calc(100dvh - 100px);
    object-fit: contain;
    opacity: 0.3;
}

.gallery-main-img.active {
    opacity: 1;
}

.popup-gallery .slider-bottom-panel {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 0;
    z-index: 10;
    width: 100%;
    margin-left: 0;
    padding: 0 var(--variable-collection-global-side-padding);
}

/* Адаптивность */
@media (max-width: 1024px) {

    .content-flex-row,
    .content-flex-row.reverse {
        flex-direction: column;
    }

    .content-flex-image {
        width: 100%;
    }

    .about-meta {
        gap: 50px;
    }

    .kitchen-col {
        flex-direction: column;
        gap: 20px;
    }

    .kitchen-auto-slider {
        width: 100%;
        order: 1;
        /* Изображение всегда будет сверху */
    }

    .kitchen-col .text-container {
        width: 100%;
        padding: 20px var(--variable-collection-global-side-padding);
        /* Добавляем адаптивные отступы по бокам */
        order: 2;
        /* Текст всегда идет под изображением */
    }

    .kitchen-col .room-text {
        text-align: left !important;
        /* Перекрываем инлайн-стиль text-align: right */
    }

    /* Уменьшаем изображения спальни на планшетах */
    .bedroom-grid img {
        width: calc(27.5% - 10px);
    }

    .bedroom-grid img.selected {
        width: calc(45% - 10px);
    }

    .bedroom-grid:has(img:hover) img:not(:hover) {
        width: calc(27.5% - 10px);
    }

    .bedroom-grid img:hover {
        width: calc(45% - 10px);
    }

    .bathroom-grid .zoom-container {
        width: calc(33.333% - 10px);
    }
}

@media (max-width: 768px) {
    .about-description {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    .project-section {
        padding: 60px 0;
    }

    .content-grid {
        gap: 20px;
    }

    .room-block {
        gap: 20px;
    }

    .bedroom-grid,
    .bathroom-grid {
        flex-direction: column;
        gap: 20px;
    }

    .bedroom-grid img,
    .bedroom-grid img.selected,
    .bedroom-grid:has(img:hover) img:not(:hover),
    .bedroom-grid img:hover {
        width: 100% !important;
        object-fit: cover;
        cursor: default;
    }

    .bathroom-grid .zoom-container {
        width: 100% !important;
        cursor: default;
        aspect-ratio: 4 / 5;
    }

    .bathroom-grid .zoom-container:hover img {
        transform: scale(1);
    }

    .kitchen-auto-slider {
        height: 250px;
    }

    .about-meta {
        flex-direction: column;
        gap: 20px;
    }

    .slider-images {
        padding: 0 calc(50vw - 42.5vw);
        gap: 15px;
    }

    .slider-main-img {
        flex: 0 0 85vw;
        width: 85vw;
        height: 50vh;
        object-fit: cover;
    }

    /* Адаптив для попап-галереи */
    .gallery-slider-images {
        padding: 0;
        padding-bottom: 130px;
        /* Отступ под панель на мобильных (она там выше) */
        box-sizing: border-box;
        gap: 10px;
    }

    .gallery-main-img {
        flex: 0 0 100vw;
        width: 100vw;
        height: calc(100vh - 130px);
        height: calc(100dvh - 130px);
        object-fit: contain;
    }

    .popup-gallery .popup-close {
        top: 20px;
        right: 20px;
    }

    .slider-bottom-panel {
        flex-direction: column;
        align-items: start;
        gap: 20px;
        margin-top: 30px;
    }

    .popup-gallery .slider-bottom-panel {
        bottom: calc(20px + env(safe-area-inset-bottom));
        margin-top: 0;
    }

    .slider-bottom-panel .slider-dots {
        align-self: flex-end;
    }

    .slider-arrow {
        display: none;
    }

    .arrow-left {
        left: 10px;
    }

    .arrow-right {
        right: 10px;
    }

    .about-title,
    .room-title {
        font-size: 22px;
        /* Уменьшаем размер заголовков, чтобы они помещались в одну строку */
    }

    .tour-btn-container {
        padding-bottom: calc(10px + env(safe-area-inset-bottom));
        /* Учет безопасной зоны Safari */
        margin-top: 20px;
    }

    .btn-primary.tour-btn {
        padding: 12px 18px;
        font-size: 12px;
        font-family: "Montserrat-Bold", Helvetica, sans-serif;
        font-weight: 700;
    }

    .tour-btn-icon {
        width: 18px;
        height: 18px;
    }
}

/* Кнопка 3D-тура */
.tour-btn-container {
    position: sticky;
    bottom: 0;
    display: flex;
    justify-content: center;
    width: 100%;
    z-index: 4;
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
    /* Отступ с учетом iOS */
    margin-top: 40px;
}

.tour-btn {
    border: 1px solid rgb(255, 255, 255);
    background: rgba(0, 0, 0, 0.062);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    gap: 10px;
    /* Отступ между иконкой и текстом */
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    /* Устраняет баг с черным фоном в Safari */
}

.tour-btn-icon {
    width: 22px;
    height: 22px;
    animation: spin360 4s linear infinite;
}

@keyframes spin360 {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

body.loaded .btn-primary.tour-btn {
    animation: tourBtnAppear 0.8s ease-out 1s forwards;
}

@keyframes tourBtnAppear {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}