/* Virtual Room Styles */ body.virtual-room-page { .hero-message { justify-content: flex-end; } header { background-color: $black; @media (min-width: $breakpoint-width-md) { background-color: $white; } } @media (max-width: $breakpoint-width-md) { header .switcher { border-bottom: 1px solid $light-gray; } } } .virtual-room-main { background-color: $black; color: $white; // Intro Section .virtual-room-intro { background-color: $black; color: $white; border-top: 1px solid $light-gray; .intro-text { @include font-size(25); font-family: $font-three; font-weight: 400; line-height: 1.44; letter-spacing: 5%; text-align: left; } } // Navigation Section .virtual-room-nav { padding-top: $grid-gutter-double; padding-bottom: $grid-gutter-double; border-top: 1px solid $light-gray; background-color: $black; overflow-x: scroll; overflow-y: hidden; &::-webkit-scrollbar { -webkit-appearance: none; height: 12px; } &::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.85); border-radius: 25px; } &::-webkit-scrollbar-track { background-color: rgba(255, 255, 255, 0.2); } .nav-list { display: flex; gap: $grid-gutter; min-width: max-content; width: fit-content; // Force scrollbar by adding invisible content &::after { content: ''; min-width: 1px; height: 1px; flex-shrink: 0; } } .nav-item { display: flex; flex-direction: column; align-items: center; gap: $grid-gutter; cursor: pointer; transition: all 0.3s ease; min-width: 250px; @media (max-width: $breakpoint-width-md) { min-width: 160px; } &:hover { .nav-icon img { filter: brightness(1.2); } .nav-label { background-color:$white; color: $black; } } &.active { .nav-label { background-color: $red; color: $white; border-color: $red; } } } .nav-icon { display: flex; align-items: center; justify-content: center; height: 100%; width: auto; img { width: 100%; object-fit: contain; filter: brightness(1); transition: filter 0.3s ease; } } .nav-label { padding: $grid-gutter-quarter $grid-gutter-half; border: 1px solid $light-gray; border-radius: 50px; background-color: transparent; color: $white; @include font-size(16); font-weight: 400; text-align: center; transition: all 0.3s ease; white-space: nowrap; span { display: block; } } } // Content Area .virtual-room-content { position: relative; .content-loader { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10; } .content-section { opacity: 1; transition: opacity 0.3s ease; &:not(.active) { display: none; } } } // Product Feature Section .product-feature { background: center center cover no-repeat; color: $white; height: 90vh; border-top: 1px solid $light-gray; &::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image:linear-gradient(to right, black 0%, rgba(0, 0, 0, 0.5) 40%, rgba(0, 0, 0, 0) 55%); z-index: 0; } .container-fluid { height: 100%; } .flex-grid { display: flex; flex-direction: row; gap: $grid-gutter; height: 100%; .flex-item { flex: 1 0 0; height: 100%; } } .feature-content { height: 100%; max-width: 70%; position: relative; z-index: 1; display: flex; flex-direction: column; gap: $grid-gutter-half; justify-content: space-between; align-items: flex-start; .section__heading { @include font-size(25); font-family: $font-three; font-weight: 400; line-height: 1.2; letter-spacing: 5%; color: $white; } .section__subhead { @include font-size(20); font-family: $font-three; font-weight: 400; line-height: 1.2; letter-spacing: 5%; color: $white; } .section__text { @include font-size(17); font-weight: 400; line-height: 1.41; letter-spacing: 5%; color: $white; } } @media (max-width: $breakpoint-width-lg) { height: 60vh; .flex-grid { flex-direction: column; .flex-item.empty { display: none; } } .feature-content { max-width: 100%; } &::before { background-image: linear-gradient(to right, rgba($black, 0.85) 0%, rgba($black, 0.2) 100%); } } } // Video Section .video-section { padding-top: $grid-gutter-double; padding-bottom: $grid-gutter-double; border-top: 1px solid $light-gray; .video-grid { display: flex; flex-direction: column; gap: $grid-gutter-double; } .additional-videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: $grid-gutter-double; @media (max-width: $breakpoint-width-lg) { grid-template-columns: repeat(2, 1fr); } @media (max-width: $breakpoint-width-md) { grid-template-columns: 1fr; } .video-item { border: 1px solid $light-gray; .video-wrapper { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; iframe, video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } } } } } // 3D Models Section .models-3d { border-top: 1px solid $light-gray; padding-top: $grid-gutter-double; padding-bottom: $grid-gutter-double; .models-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: $grid-gutter; @media (max-width: $breakpoint-width-lg) { grid-template-columns: repeat(2, 1fr); } @media (max-width: $breakpoint-width-md) { grid-template-columns: 1fr; } .model-item { .model-meta { margin-bottom: $grid-gutter-half; .section__heading { @include font-size(20); font-family: $font-three; font-weight: 400; line-height: 1.3; color: $white; margin-bottom: 0; } .section__text { @include font-size(17); font-family: $font-three; font-weight: 400; line-height: 1.41; color: $mid-gray; } } .model-viewer { img { width: 100%; height: auto; object-fit: cover; border-radius: 8px; margin-bottom: 15px; } .model-specs { @include font-size(17); font-weight: 400; line-height: 1.41; color: $mid-gray; .Magic360-container{ margin-bottom: $grid-gutter-half; aspect-ratio: 1/1; } strong { font-weight: 700; color: $white; } } } } } } // Dashboard Section .dashboard { padding-top: $grid-gutter-double; padding-bottom: $grid-gutter-double; border-bottom: 1px solid $light-gray; border-top: 1px solid $light-gray; .dashboard-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: $grid-gutter; justify-content: space-between; @media (max-width: $breakpoint-width-lg) { grid-template-columns: repeat(2, 1fr); } } .dashboard-item { flex: 1; padding: $grid-gutter; background-image: url('../img/dashboard-bg.png'); background-size: cover; background-position: center; background-repeat: no-repeat; border-radius: 12px; text-align: left; position: relative; &::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); z-index: 0; border-radius: 12px; border: 1px solid $light-gray; } .item-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; height: 100%; gap: $grid-gutter; .section__heading { color: #fff; @include font-size(16); font-family: $font-three; font-weight: 700; letter-spacing: 10%; text-transform: uppercase; margin-bottom: 15px; } .btn { display: inline-block; padding: $grid-gutter-quarter $grid-gutter-half; background-color: $red; color: $white; text-decoration: none; border: 1px solid $red; @include font-size(17); font-weight: 400; line-height: 1.2; text-align: center; transition: all 0.3s ease; &:hover { background-color: transparent; color: $red !important; } } } } } // Half Carousel Section .half-carousel { border-bottom: 1px solid $light-gray; padding-top: $grid-gutter-double; .half-carousel-content-wrapper { background-color: $black; display: flex; flex-direction: row; border: 1px solid $light-gray; .order-md-1 { order: 1; flex-basis: 50%; border-right: 1px solid $light-gray; } .order-md-2 { order: 2; flex-basis: 50%; } .half-carousel-content { padding: $grid-gutter-double; display: flex; flex-direction: column; justify-content: space-between; gap: $grid-gutter-half; } .half-carousel-subhead { @include font-size(12); font-family: 'Space Mono', monospace; font-weight: 700; letter-spacing: 0.25em; color: $red; text-transform: uppercase; } .half-carousel-heading { font-size: 1.75rem; line-height: 1.125; font-family: $font-three; font-weight: 700; color: $white; margin-bottom: $grid-gutter-half; } .half-carousel-text { color: $mid-gray; strong { color: $white; font-weight: 700; } } .half-carousel-images { position: relative; .carousel-wrapper { position: relative; width: 100%; height: 100%; } .carousel-inner { position: relative; width: 100%; height: 100%; overflow: hidden; min-height: 300px; aspect-ratio: 38/30; // Slick slider overrides for fade mode &.slick-initialized { .slick-list { height: 100%; width: 100%; position: relative; .slick-track { height: 100%; width: 100% !important; position: relative; transform: none !important; } } } } .carousel-item { position: relative; width: 100%; height: 100%; // Override Slick's inline styles for fade mode &.slick-slide { float: none; height: 100%; width: 100% !important; min-height: 1px; display: block !important; position: absolute !important; top: 0 !important; left: 0 !important; z-index: 1; &.slick-active { z-index: 2; } img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; } } img { width: 100%; height: 100%; object-fit: cover; object-position: center; } } } .half-carousel-nav { display: flex; justify-content: flex-start; align-items: center; color: $white; button { background-color: transparent; border: 1px solid $white; color: $white; @include font-size(14); padding: 10px 15px; margin-right: 10px; cursor: pointer; transition: all 0.3s ease; &:hover { background-color: $white; color: $black !important; } &:last-child { margin-right: 0; } } } } @media (max-width: $breakpoint-width-md) { .half-carousel-content-wrapper { flex-direction: column; } .order-md-1 { flex-basis: 100% !important; order: auto !important; border-right: none !important; border-bottom: 1px solid $light-gray !important; } .order-md-2 { flex-basis: 100% !important; order: auto !important; } .half-carousel-content { padding: $grid-gutter !important; } .half-carousel-heading { font-size: 1.5rem !important; } .half-carousel-images { order: 1 !important; .carousel-item { img { aspect-ratio: 38/30; } } } .half-carousel-content { order: 2 !important; } } } // Brochure Section .virtual-room-brochures { padding-top: $grid-gutter-double; padding-bottom: $grid-gutter-double; border-top: 1px solid $light-gray; .container-fluid { display: grid; grid-template-columns: 1fr 3fr; gap: $grid-gutter; @media (max-width: $breakpoint-width-md) { grid-template-columns: 1fr; } } .brochure-header { text-align: left; .section__heading { @include font-size(25); font-family: $font-three; font-weight: 400; line-height: 1.44; letter-spacing: 5%; color: $white; } .section__subhead { @include font-size(20); font-family: $font-three; font-weight: 400; line-height: 1.3; letter-spacing: 5%; color: $mid-gray; } } .brochure-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: $grid-gutter; @media (max-width: $breakpoint-width-lg) { grid-template-columns: repeat(2, 1fr); } @media (max-width: $breakpoint-width-md) { grid-template-columns: 1fr; } } .brochure-category { flex: 1; min-width: 250px; .category-title { @include font-size(16); font-family: $font-three; font-weight: 700; letter-spacing: 10%; text-transform: uppercase; color: $red; margin-bottom: $grid-gutter-half; } .brochure-list { list-style: none; padding: 0; margin: 0; li { margin-bottom: 8px; &::before { display: none; } a { color: $white; text-decoration: none; @include font-size(16); font-weight: 700; line-height: 1.25; transition: color 0.3s ease; &:hover { color: $red; } } } } } } } // Spinner animation @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }