{"id":1883,"date":"2026-06-17T09:33:35","date_gmt":"2026-06-17T07:33:35","guid":{"rendered":"https:\/\/www.norki.com\/studio-chalet\/?page_id=1883"},"modified":"2026-07-16T12:52:05","modified_gmt":"2026-07-16T10:52:05","slug":"luxury-interior-design","status":"publish","type":"page","link":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/","title":{"rendered":"Our projects"},"content":{"rendered":"\n<style>\n    \/* ==========================================================================\n       HERO SLIDER 16\/9 (Auto-slide to the right + Touch Swipe)\n       ========================================================================== *\/\n\n    .norki-hero-slider {\n        position: relative;\n        width: 100%;\n        aspect-ratio: 16 \/ 9; \/* Forces 16:9 ratio on all screens *\/\n        overflow: hidden;\n        background-color: black;\n        max-height: 100dvh;\n    }\n\n    \/* --- 1. Slides Container --- *\/\n    .norki-hs__track {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n\n    .norki-hs__slide {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        opacity: 0;\n        transform: translateX(100%); \/* Start on the outside right *\/\n        transition: transform 1s cubic-bezier(0.65, 0, 0.35, 1), opacity 1s ease;\n        z-index: 1;\n    }\n\n    \/* Active Slide *\/\n    .norki-hs__slide.is-active {\n        opacity: 1;\n        transform: translateX(0);\n        z-index: 2;\n    }\n\n    \/* Leaving Slide (goes to the left) *\/\n    .norki-hs__slide.is-leaving {\n        opacity: 1;\n        transform: translateX(-100%);\n        z-index: 2;\n    }\n\n    .norki-hs__image {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        object-position: center;\n        display: block;\n    }\n\n    \/* Bottom darkening gradient for legibility *\/\n    .norki-hs__overlay {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 60%;\n        background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 100%);\n        z-index: 3;\n        pointer-events: none;\n    }\n\n    \/* --- 2. Texts (Within each slide) --- *\/\n    .norki-hs__text-container {\n        position: absolute;\n        bottom: var(--section-pad-h-dt, 5vw); \/* Aligned with lateral global padding *\/\n        left: var(--section-pad-h-dt, 5vw);\n        z-index: 4;\n        color: #ffffff;\n    }\n\n    .norki-hs__title {\n        display: block; \/* Maintains block behavior for the span (h2 replacement) *\/\n        font-family: var(--font-montserrat, \"AvenirMedium\", sans-serif);\n        font-size: clamp(2rem, 3.5vw, 45px);\n        font-weight: 500;\n        margin: 0 0 5px 0;\n        line-height: 1.1;\n        letter-spacing: -0.01em;\n        text-shadow: 0 2px 4px rgba(0,0,0,0.3);\n        color: white;\n    }\n\n    .norki-hs__subtitle {\n        font-size: clamp(1.2rem, 2vw, 24px);\n        margin: 0;\n        line-height: 1.3;\n        text-shadow: 0 2px 4px rgba(0,0,0,0.3);\n        display: block;\n    }\n\n    \/* --- 3. Global Interface (Above slides) --- *\/\n    .norki-hs__ui {\n        position: absolute;\n        bottom: var(--section-pad-h-dt, 5vw);\n        left: 0;\n        width: 100%;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: flex-end; \/* Aligns flow content (the button) to the right *\/\n        align-items: flex-end;\n        z-index: 10;\n        pointer-events: none; \/* Let clicks pass through to the slider if needed *\/\n    }\n\n    \/* Discover Button (Bottom Right) *\/\n    .norki-hs__discover-btn {\n        pointer-events: auto; \/* Re-enable clicks *\/\n        color: #ffffff;\n        text-decoration: none;\n        font-size: 1.1rem;\n        font-weight: 500;\n        font-family: var(--font-montserrat, \"AvenirMedium\", sans-serif);\n        position: relative;\n        padding-bottom: 3px;\n        transition: opacity 0.4s ease, color 0.3s ease;\n        text-shadow: 0 2px 4px rgba(0,0,0,0.3);\n    }\n\n    \/* Elegant underline line *\/\n    .norki-hs__discover-btn::after {\n        content: '';\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 1px;\n        background-color: #ffffff;\n        transform: scaleX(1);\n        transform-origin: right;\n        transition: transform 0.4s ease, background-color 0.3s ease;\n    }\n\n    .norki-hs__discover-btn:hover::after {\n        transform: scaleX(0);\n        transform-origin: left;\n    }\n\n    \/* Utility class to hide the button during transitions *\/\n    .norki-hs__discover-btn.is-hidden {\n        opacity: 0;\n        pointer-events: none;\n    }\n\n    \/* Disabled\/Coming soon state *\/\n    .norki-hs__discover-btn.is-disabled {\n        opacity: 0.6;\n        cursor: not-allowed;\n        color: rgba(255, 255, 255, 0.7);\n    }\n\n    .norki-hs__discover-btn.is-disabled::after {\n        background-color: rgba(255, 255, 255, 0.4);\n    }\n\n    .norki-hs__discover-btn.is-disabled:hover::after {\n        transform: scaleX(1); \/* Disables hover animation *\/\n    }\n\n    \/* Pagination Dots (Center) *\/\n    .norki-hs__pagination {\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        display: flex;\n        gap: 12px;\n        align-items: center;\n        pointer-events: auto;\n    }\n\n    .norki-hs__dot {\n        width: 8px;\n        height: 8px;\n        border-radius: 50%;\n        border: 1px solid #ffffff;\n        background-color: transparent;\n        cursor: pointer;\n        transition: all 0.3s ease;\n        padding: 0;\n        box-shadow: 0 1px 3px rgba(0,0,0,0.2);\n    }\n\n    .norki-hs__dot.is-active {\n        background-color: #ffffff;\n        transform: scale(1.2);\n    }\n\n    \/* --- 4. Responsive (Adaptation for 16\/9 on small screens) --- *\/\n    @media (max-width: 768px) {\n        .norki-hs__text-container {\n            bottom: 22%; \n            left: 5vw;\n        }\n\n        .norki-hs__ui {\n            bottom: 8%;\n            padding: 0 5vw;\n        }\n\n        .norki-hs__title { font-size: clamp(1.2rem, 4vw, 1.8rem); margin-bottom: 2px; }\n        .norki-hs__subtitle { font-size: clamp(0.9rem, 3vw, 1.1rem); }\n        .norki-hs__discover-btn { font-size: clamp(0.8rem, 3vw, 0.95rem); padding-bottom: 1px; }\n        \n        .norki-hs__pagination {\n            gap: 8px;\n        }\n        .norki-hs__dot {\n            width: 5px;\n            height: 5px;\n        }\n    }\n<\/style>\n\n<section class=\"norki-hero-slider\" aria-label=\"Norki home slider\">\n    \n    <div class=\"norki-hs__track\">\n        \n        <!-- SLIDE 1 : Courchevel (Active) -->\n        <div class=\"norki-hs__slide is-active\" data-link=\"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/courchevel-french-alps\/\" data-status=\"active\">\n            <img src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/E02_2910_\u252c\u00ae_Studio_Erick_Saillet.jpg\" alt=\"Contemporary and refined chalet in Courchevel\" class=\"norki-hs__image skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" fetchpriority=\"high\" loading=\"eager\" decoding=\"sync\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title avenirmedium-font\">Contemporary and Refined Chalet<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Chalet in Courchevel<\/span>\n            <\/div>\n        <\/div>\n\n        <!-- SLIDE 2 : Aspen (Coming Soon) -->\n        <div class=\"norki-hs__slide\" data-link=\"#\" data-status=\"coming-soon\">\n            <img src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png\" alt=\"Contemporary luxury decor in Aspen chalet\" class=\"norki-hs__image skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" fetchpriority=\"high\" loading=\"eager\" decoding=\"sync\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title avenirmedium-font\">Contemporary Luxury<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Chalet in Aspen<\/span>\n            <\/div>\n        <\/div>\n\n        <!-- SLIDE 3 : Meg\u00e8ve \/ Jackson Hole (Coming Soon) -->\n        <div class=\"norki-hs__slide\" data-link=\"#\" data-status=\"coming-soon\">\n            <img src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/2025_10_21_Living.jpg\" alt=\"Contemporary luxury living room in Jackson Hole chalet\" class=\"norki-hs__image skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" fetchpriority=\"high\" loading=\"eager\" decoding=\"sync\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title avenirmedium-font\">Contemporary Luxury<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Chalet in Jackson Hole<\/span>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n    <!-- Global UI (Pagination & Button) -->\n    <div class=\"norki-hs__ui\">\n        \n        <!-- Pagination -->\n        <div class=\"norki-hs__pagination\" aria-label=\"Slide navigation\">\n            <button class=\"norki-hs__dot is-active\" aria-label=\"Go to slide 1\"><\/button>\n            <button class=\"norki-hs__dot\" aria-label=\"Go to slide 2\"><\/button>\n            <button class=\"norki-hs__dot\" aria-label=\"Go to slide 3\"><\/button>\n        <\/div>\n\n        <!-- Dynamic Discover Button -->\n        <a href=\"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/courchevel-french-alps\/\" class=\"norki-hs__discover-btn avenirmedium-font\">Discover<\/a>\n        \n    <\/div>\n\n<\/section>\n\n<script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n        const slides = document.querySelectorAll('.norki-hs__slide');\n        const dots = document.querySelectorAll('.norki-hs__dot');\n        const discoverBtn = document.querySelector('.norki-hs__discover-btn');\n        const totalSlides = slides.length;\n        \n        let currentIndex = 0;\n        let slideInterval;\n        const intervalTime = 6000; \/\/ 6 seconds per slide\n\n        \/\/ Prevent click if button is disabled\n        discoverBtn.addEventListener('click', (e) => {\n            if (discoverBtn.classList.contains('is-disabled')) {\n                e.preventDefault();\n            }\n        });\n\n        \/\/ 1. Transition Logic\n        const goToSlide = (nextIndex) => {\n            if (nextIndex === currentIndex) return;\n\n            const currentSlide = slides[currentIndex];\n            const nextSlide = slides[nextIndex];\n\n            \/\/ A. Hide button\n            discoverBtn.classList.add('is-hidden');\n\n            \/\/ B. Move slides\n            currentSlide.classList.remove('is-active');\n            currentSlide.classList.add('is-leaving');\n            \n            \/\/ Ensure next slide has active class to enter\n            nextSlide.classList.add('is-active');\n\n            \/\/ C. Update pagination dots\n            dots[currentIndex].classList.remove('is-active');\n            dots[nextIndex].classList.add('is-active');\n\n            \/\/ D. Silent cleanup and button adjustment\n            setTimeout(() => {\n                \/\/ Remove old slide from visible screen\n                currentSlide.classList.remove('is-leaving');\n                \n                \/\/ Temporarily disable transitions to move it back to the right silently\n                currentSlide.style.transition = 'none';\n                void currentSlide.offsetWidth; \/\/ Force reflow\n                currentSlide.style.transition = ''; \/\/ Restore transition\n                \n                \/\/ Button state handling (Active vs Unavailable)\n                const status = nextSlide.dataset.status;\n                if (status === 'coming-soon') {\n                    discoverBtn.classList.add('is-disabled');\n                    discoverBtn.textContent = 'Coming soon';\n                    discoverBtn.href = '#';\n                } else {\n                    discoverBtn.classList.remove('is-disabled');\n                    discoverBtn.textContent = 'Discover';\n                    discoverBtn.href = nextSlide.dataset.link;\n                }\n\n                \/\/ Show button again\n                discoverBtn.classList.remove('is-hidden');\n            }, 1000); \/\/ 1s = exact CSS transition duration\n\n            currentIndex = nextIndex;\n        };\n\n        const nextSlide = () => {\n            goToSlide((currentIndex + 1) % totalSlides);\n        };\n\n        const prevSlide = () => {\n            goToSlide((currentIndex - 1 + totalSlides) % totalSlides);\n        };\n\n        \/\/ 2. Auto-Slide Initialization\n        const startSlider = () => {\n            slideInterval = setInterval(nextSlide, intervalTime);\n        };\n\n        const resetSlider = () => {\n            clearInterval(slideInterval);\n            startSlider();\n        };\n\n        \/\/ Make dots clickable\n        dots.forEach((dot, index) => {\n            dot.addEventListener('click', () => {\n                goToSlide(index);\n                resetSlider(); \/\/ Reset timer\n            });\n        });\n\n        \/\/ 3. Touch Swipe Handling for Mobile & Tablet\n        let touchStartX = 0;\n        let touchEndX = 0;\n        const sliderContainer = document.querySelector('.norki-hero-slider');\n\n        sliderContainer.addEventListener('touchstart', (e) => {\n            touchStartX = e.changedTouches[0].screenX;\n        }, { passive: true });\n\n        sliderContainer.addEventListener('touchend', (e) => {\n            touchEndX = e.changedTouches[0].screenX;\n            handleSwipeGesture();\n        });\n\n        function handleSwipeGesture() {\n            const swipeThreshold = 50; \n            if (touchEndX < touchStartX - swipeThreshold) {\n                \/\/ Swipe Left -> Next Slide\n                nextSlide();\n                resetSlider();\n            }\n            if (touchEndX > touchStartX + swipeThreshold) {\n                \/\/ Swipe Right -> Previous Slide\n                prevSlide();\n                resetSlider();\n            }\n        }\n\n        startSlider();\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       PORTFOLIO GALLERY SECTION (Filters + Dynamic JS Masonry)\n       ========================================================================== *\/\n\n    .norki-portfolio {\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        position: relative;\n        z-index: 10;\n        box-sizing: border-box;\n    }\n\n    \/* --- 1. Filter Menu (Container & Scroll) --- *\/\n    .norki-portfolio__filters-container {\n        position: relative;\n        \/* Breaks the section padding to allow scrolling to the edge of the screen (Bleed effect) *\/\n        width: calc(100% + var(--section-pad-h-dt, 5vw) * 2);\n        margin-left: calc(-1 * var(--section-pad-h-dt, 5vw));\n        margin-bottom: 60px;\n    }\n\n    .norki-portfolio__filters-wrapper {\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        scrollbar-width: none; \/* Hides scrollbar on Firefox *\/\n        scroll-behavior: smooth;\n        \/* Restores the visual padding inside the scroll area *\/\n        padding: 5px var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n    }\n\n    .norki-portfolio__filters-wrapper::-webkit-scrollbar {\n        display: none; \/* Hides scrollbar on Chrome\/Safari *\/\n    }\n\n    .norki-portfolio__filters {\n        display: flex;\n        gap: 40px;\n        align-items: center;\n        min-width: max-content;\n    }\n\n    \/* Pseudo-element to ensure the last item has space on the right during final scroll *\/\n    .norki-portfolio__filters::after {\n        content: '';\n        padding-right: var(--section-pad-h-dt, 5vw);\n    }\n\n    \/* --- Filter button styles --- *\/\n    .norki-portfolio__filter-btn {\n        background: none;\n        border: none;\n        padding: 0;\n        font-family: var(--font-montserrat, sans-serif);\n        font-size: 1rem;\n        font-weight: 500;\n        color: black;\n        cursor: pointer;\n        text-decoration: underline;\n        text-decoration-color: transparent;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease, color 0.3s ease;\n    }\n\n    \/* Underlines and changes color on hover for INACTIVE buttons *\/\n    .norki-portfolio__filter-btn:not(.is-active):hover {\n        text-decoration-color: rgba(0,0,0,0.7);\n        color: rgba(0,0,0,0.7);\n    }\n\n    \/* ACTIVE: Underlined by default *\/\n    .norki-portfolio__filter-btn.is-active {\n        text-decoration-color: black;\n        opacity: 1;\n        color: black;\n    }\n\n    \/* Removes underline from active button as soon as the entire MENU is hovered *\/\n    .norki-portfolio__filters:hover .norki-portfolio__filter-btn.is-active {\n        text-decoration-color: transparent;\n    }\n\n    \/* FORCED REMOVAL of underline when hovering specifically over the active button *\/\n    .norki-portfolio__filter-btn.is-active:hover {\n        text-decoration-color: transparent !important;\n        color: rgba(0,0,0,0.7);\n    }\n\n    \/* --- Filter navigation arrows --- *\/\n    .norki-filter-arrow {\n        position: absolute;\n        top: 0;\n        bottom: 0;\n        width: calc(var(--section-pad-h-dt, 5vw) + 50px);\n        background: none;\n        border: none;\n        color: black;\n        z-index: 5;\n        cursor: pointer;\n        opacity: 0;\n        pointer-events: none;\n        transition: opacity 0.3s ease;\n        display: flex;\n        align-items: center;\n    }\n\n    .norki-filter-arrow.is-visible {\n        opacity: 1;\n        pointer-events: auto;\n    }\n\n    .norki-filter-arrow--left {\n        left: 0;\n        justify-content: flex-start;\n        padding-left: var(--section-pad-h-dt, 5vw);\n        background: linear-gradient(to right, var(--color-norki-beige, #f8f0ea) 60%, rgba(248, 240, 234, 0) 100%);\n    }\n\n    .norki-filter-arrow--right {\n        right: 0;\n        justify-content: flex-end;\n        padding-right: var(--section-pad-h-dt, 5vw);\n        background: linear-gradient(to left, var(--color-norki-beige, #f8f0ea) 60%, rgba(248, 240, 234, 0) 100%);\n    }\n\n    .norki-filter-arrow svg {\n        width: 24px;\n        height: 24px;\n        fill: none;\n        stroke: currentColor;\n        stroke-width: 1.5;\n        transition: transform 0.2s ease;\n    }\n\n    .norki-filter-arrow--left:hover svg { transform: translateX(-3px); }\n    .norki-filter-arrow--right:hover svg { transform: translateX(3px); }\n\n    \/* --- 2. Flex Masonry Grid (Managed by JS) --- *\/\n    .norki-portfolio__masonry {\n        display: flex;\n        gap: 80px; \n        align-items: flex-start;\n    }\n\n    .norki-portfolio__column {\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n    }\n\n    .norki-portfolio__column--right {\n        padding-top: 140px; \n    }\n\n    .norki-portfolio__item {\n        display: block;\n        text-decoration: none;\n        color: inherit;\n        position: relative;\n        opacity: 0;\n        transform: translateY(30px);\n        transition: opacity 0.8s ease, transform 0.8s ease;\n    }\n\n    .norki-portfolio__item.is-visible {\n        opacity: 1;\n        transform: translateY(0);\n    }\n\n    .norki-portfolio__img-wrapper {\n        width: 100%;\n        overflow: hidden;\n        background-color: #e5dfd9;\n    }\n\n    .norki-portfolio__img {\n        width: 100%;\n        height: auto;\n        display: block;\n        transition: transform 0.6s ease;\n    }\n\n    \/* Zoom effect is disabled if item is coming-soon *\/\n    .norki-portfolio__item:not(.is-coming-soon):hover .norki-portfolio__img {\n        transform: scale(1.03); \n    }\n\n    .norki-portfolio__caption {\n        margin: 12px 0 0 0;\n        font-family: var(--font-montserrat, sans-serif);\n        font-size: 1rem;\n        line-height: 1.3;\n        letter-spacing: 0.02em;\n    }\n\n    .norki-portfolio__caption span {\n        font-family: \"LibreBaskervilleItalic\", sans-serif;\n    }\n\n    \/* --- 3. \"Coming Soon\" State --- *\/\n    .is-coming-soon {\n        position: relative;\n        cursor: not-allowed;\n        opacity: 0.7;\n    }\n\n    .is-coming-soon:hover::after {\n        content: \"Page under construction\";\n        position: absolute;\n        bottom: -40px;\n        left: 50%;\n        transform: translateX(-50%);\n        background: #1f2937; \/* Dark gray *\/\n        color: white;\n        padding: 6px 12px;\n        font-size: 0.75rem;\n        border-radius: 6px;\n        white-space: nowrap;\n        pointer-events: none;\n        z-index: 50;\n        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n    }\n\n    \/* Empty list message *\/\n    .norki-portfolio__empty-message {\n        display: none;\n        text-align: center;\n        padding: 60px 20px;\n        font-family: var(--font-montserrat, sans-serif);\n        font-size: 1.1rem;\n        color: rgba(0,0,0,0.5);\n        font-style: italic;\n    }\n\n    .norki-portfolio__empty-message.is-visible {\n        display: block;\n    }\n\n    \/* --- 4. Actions (Minimalist Load More Button) --- *\/\n    .norki-portfolio__actions {\n        text-align: center;\n        margin-top: 50px;\n    }\n\n    .norki-portfolio__load-btn {\n        display: inline-flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 8px;\n        background: none;\n        border: none;\n        padding: 0;\n        color: black;\n        font-family: var(--font-montserrat, sans-serif);\n        cursor: pointer;\n        transition: opacity 0.3s ease;\n    }\n\n    .norki-portfolio__load-dots {\n        font-size: 1.8rem;\n        line-height: 0.5;\n        letter-spacing: 2px;\n        margin-bottom: 5px;\n    }\n\n    .norki-portfolio__load-text {\n        font-size: 0.95rem;\n        text-decoration: underline;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1px;\n    }\n\n    .norki-portfolio__load-btn:hover {\n        opacity: 0.6;\n    }\n\n    .norki-portfolio__load-btn.is-loading {\n        opacity: 0.5;\n        pointer-events: none;\n        cursor: wait;\n    }\n\n    .norki-portfolio__source {\n        display: none;\n    }\n\n    \/* --- 5. Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-portfolio {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        .norki-portfolio__masonry {\n            gap: 40px; \n        }\n        .norki-portfolio__column--right {\n            padding-top: 80px; \n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-portfolio {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-portfolio__filter-btn {\n            font-size: 0.95rem;\n        }\n\n        .norki-portfolio__filter-btn.is-active {\n            font-weight: 600;\n        }\n\n        .norki-portfolio__filters-container {\n            width: calc(100% + var(--section-pad-h-mob, 20px) * 2);\n            margin-left: calc(-1 * var(--section-pad-h-mob, 20px));\n            margin-bottom: 40px;\n        }\n\n        .norki-portfolio__filters-wrapper {\n            padding: 5px var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-portfolio__filters::after {\n            padding-right: var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-filter-arrow {\n            width: calc(var(--section-pad-h-mob, 20px) + 35px);\n        }\n\n        .norki-filter-arrow--left {\n            padding-left: calc(var(--section-pad-h-mob, 20px) - 5px);\n        }\n\n        .norki-filter-arrow--right {\n            padding-right: calc(var(--section-pad-h-mob, 20px) - 5px);\n        }\n\n        .norki-portfolio__masonry {\n            display: block; \n        }\n\n        .norki-portfolio__column--right {\n            display: none; \n        }\n\n        .norki-portfolio__item {\n            margin-bottom: 60px !important; \n        }\n    }\n<\/style>\n\n<section class=\"norki-portfolio\">\n    \n    <!-- Filter menu with navigation arrows -->\n    <div class=\"norki-portfolio__filters-container\">\n        <!-- Left Arrow -->\n        <button class=\"norki-filter-arrow norki-filter-arrow--left\" aria-label=\"Scroll left\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n        <\/button>\n\n        <!-- Scrolling Container -->\n        <div class=\"norki-portfolio__filters-wrapper\" id=\"norki-filters-wrapper\">\n            <div class=\"norki-portfolio__filters\">\n                <button class=\"norki-portfolio__filter-btn is-active\" data-filter=\"all\">All our projects<\/button>\n                <button class=\"norki-portfolio__filter-btn\" data-filter=\"europe\">Europe<\/button>\n                <button class=\"norki-portfolio__filter-btn\" data-filter=\"usa\">USA<\/button>\n                <button class=\"norki-portfolio__filter-btn\" data-filter=\"japon\" style=\"display: none\">Japan<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- Right Arrow -->\n        <button class=\"norki-filter-arrow norki-filter-arrow--right\" aria-label=\"Scroll right\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n        <\/button>\n    <\/div>\n\n    <!-- Empty state message (e.g. Japan) -->\n    <div class=\"norki-portfolio__empty-message\" id=\"norki-empty-message\">\n        The list is currently empty.\n    <\/div>\n\n    <!-- Target container for JS insertion -->\n    <div class=\"norki-portfolio__masonry\" id=\"norki-masonry-grid\">\n        <div class=\"norki-portfolio__column norki-portfolio__column--left\" id=\"norki-col-left\"><\/div>\n        <div class=\"norki-portfolio__column norki-portfolio__column--right\" id=\"norki-col-right\"><\/div>\n    <\/div>\n\n    <!-- Minimalist Load More Button -->\n    <div class=\"norki-portfolio__actions\">\n        <button id=\"norki-load-more\" class=\"norki-portfolio__load-btn\">\n            <span class=\"norki-portfolio__load-dots\">&#8230;<\/span>\n            <span class=\"norki-portfolio__load-text\">Load more projects<\/span>\n        <\/button>\n    <\/div>\n\n    <!-- SOURCE DATA (Hidden - JS will extract from here) -->\n    <div class=\"norki-portfolio__source\" id=\"norki-items-source\">\n        \n        <!-- 1. Active Project (Courchevel) -->\n        <a href=\"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/courchevel-french-alps\/\" class=\"norki-portfolio__item\" data-category=\"europe\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Untitled-1.jpg\" alt=\"Contemporary and Refined Chalet in Courchevel\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary and Refined Chalet \u2013 <span>Chalet in Courchevel<\/span><\/p>\n        <\/a>\n\n        <!-- 2. Coming Soon Project (Aspen) -->\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\" data-category=\"usa\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png\" alt=\"Contemporary Luxury - Chalet in Aspen\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary Luxury \u2013 <span>Chalet in Aspen<\/span><\/p>\n        <\/a>\n\n        <!-- 3. Coming Soon Project (Meg\u00e8ve) - Changed to Europe -->\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\" data-category=\"europe\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/2026_01_22_Sicoria_Living.jpg\" alt=\"Contemporary Luxury - Chalet in Meg\u00e8ve\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary Luxury \u2013 <span>Chalet in Meg\u00e8ve<\/span><\/p>\n        <\/a>\n\n        <!-- 4. Coming Soon Project (Jackson Hole) -->\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\" data-category=\"usa\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/2025_10_21_Living.jpg\" alt=\"Contemporary Luxury - Chalet in Jackson Hole\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary Luxury \u2013 <span>Chalet in Jackson Hole<\/span><\/p>\n        <\/a>\n\n    <\/div>\n\n<\/section>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n    \n    \/\/ --- 1. FILTER MENU ARROWS NAVIGATION ---\n    const filtersWrapper = document.getElementById('norki-filters-wrapper');\n    const arrowLeft = document.querySelector('.norki-filter-arrow--left');\n    const arrowRight = document.querySelector('.norki-filter-arrow--right');\n\n    const updateFilterArrows = () => {\n        if (!filtersWrapper) return;\n        \n        \/\/ Tolerance margin to handle pixel rounding differences across browsers\n        const scrollLeft = Math.ceil(filtersWrapper.scrollLeft);\n        const scrollWidth = filtersWrapper.scrollWidth;\n        const clientWidth = filtersWrapper.clientWidth;\n\n        \/\/ Show\/Hide left arrow\n        if (scrollLeft > 5) {\n            arrowLeft.classList.add('is-visible');\n        } else {\n            arrowLeft.classList.remove('is-visible');\n        }\n\n        \/\/ Show\/Hide right arrow\n        if (scrollLeft + clientWidth < scrollWidth - 5) {\n            arrowRight.classList.add('is-visible');\n        } else {\n            arrowRight.classList.remove('is-visible');\n        }\n    };\n\n    if (filtersWrapper) {\n        filtersWrapper.addEventListener('scroll', updateFilterArrows);\n        window.addEventListener('resize', updateFilterArrows);\n        \n        \/\/ Initialize after a short delay to ensure fonts\/sizes are loaded\n        setTimeout(updateFilterArrows, 100);\n\n        if (arrowLeft) {\n            arrowLeft.addEventListener('click', () => {\n                filtersWrapper.scrollBy({ left: -250, behavior: 'smooth' });\n            });\n        }\n        if (arrowRight) {\n            arrowRight.addEventListener('click', () => {\n                filtersWrapper.scrollBy({ left: 250, behavior: 'smooth' });\n            });\n        }\n    }\n\n    \/\/ --- 2. MASONRY GRID AND LOAD MORE MANAGEMENT ---\n    const sourceItemsContainer = document.getElementById('norki-items-source');\n    const allSourceItems = Array.from(document.querySelectorAll('#norki-items-source .norki-portfolio__item'));\n    let filteredItems = [...allSourceItems]; \/\/ Copy for active sorting\n\n    const colLeft = document.getElementById('norki-col-left');\n    const colRight = document.getElementById('norki-col-right');\n    const loadMoreBtn = document.getElementById('norki-load-more');\n    const loadMoreText = loadMoreBtn ? loadMoreBtn.querySelector('.norki-portfolio__load-text') : null;\n    const emptyMessage = document.getElementById('norki-empty-message');\n    \n    let currentIndex = 0;\n    const itemsPerLoad = 4; \/\/ Number of images loaded per click\n\n    \/\/ Prevent default on coming soon items to avoid jumping to top of page\n    document.addEventListener('click', (e) => {\n        const comingSoonLink = e.target.closest('.is-coming-soon');\n        if (comingSoonLink) {\n            e.preventDefault();\n        }\n    });\n\n    \/\/ --- 3. FILTER CLICKS ---\n    const filterBtns = document.querySelectorAll('.norki-portfolio__filter-btn');\n    \n    filterBtns.forEach(btn => {\n        btn.addEventListener('click', (e) => {\n            e.preventDefault();\n            if (loadMoreBtn && loadMoreBtn.classList.contains('is-loading')) return; \/\/ Blocks sorting during loading\n\n            \/\/ Update active state in menu\n            filterBtns.forEach(b => b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n\n            const filterValue = btn.getAttribute('data-filter');\n\n            \/\/ 1. Reset grid by pushing all items back to the hidden source div\n            allSourceItems.forEach(item => {\n                item.classList.remove('is-visible');\n                sourceItemsContainer.appendChild(item);\n            });\n\n            \/\/ 2. Apply filter to construct the new waiting list\n            if (filterValue === 'all') {\n                filteredItems = [...allSourceItems];\n            } else {\n                filteredItems = allSourceItems.filter(item => item.getAttribute('data-category') === filterValue);\n            }\n\n            \/\/ 3. Reset index\n            currentIndex = 0;\n            \n            \/\/ Safety: empty the visible columns\n            colLeft.innerHTML = '';\n            colRight.innerHTML = '';\n            \n            \/\/ 4. Display handling (Empty vs Content)\n            if (filteredItems.length === 0) {\n                emptyMessage.classList.add('is-visible');\n                if (loadMoreBtn) loadMoreBtn.style.display = 'none';\n            } else {\n                emptyMessage.classList.remove('is-visible');\n                if (loadMoreBtn) loadMoreBtn.style.display = 'inline-flex';\n                loadItems();\n            }\n        });\n    });\n\n    \/\/ Dynamic margins based on image aspect ratio\n    function getDynamicMargin(ratio) {\n        if (window.innerWidth <= 768) return 60; \n        \n        if (ratio <= 0.8) {\n            return 180; \n        } else if (ratio >= 1.2) {\n            return 110;  \n        } else {\n            return 140;  \n        }\n    }\n\n    \/\/ Asynchronous processing: Waits for image preloading to measure aspect ratio\n    const processNextItem = (item) => {\n        return new Promise((resolve) => {\n            const img = item.querySelector('.norki-portfolio__img');\n            const src = img.getAttribute('data-src');\n            \n            const placeItemInDOM = () => {\n                \/\/ Calculate ratio and dynamic margin\n                const ratio = img.naturalWidth \/ img.naturalHeight || 1;\n                const margin = getDynamicMargin(ratio);\n                item.style.marginBottom = margin + 'px';\n\n                \/\/ Positioning logic: Forced left on Mobile to avoid sudden jumps\n                if (window.innerWidth <= 768) {\n                    colLeft.appendChild(item);\n                } else {\n                    \/\/ On Desktop: Append into the shortest column (to balance masonry height)\n                    if (colLeft.offsetHeight <= colRight.offsetHeight) {\n                        colLeft.appendChild(item);\n                    } else {\n                        colRight.appendChild(item);\n                    }\n                }\n\n                \/\/ Appearance animation\n                requestAnimationFrame(() => {\n                    setTimeout(() => item.classList.add('is-visible'), 50);\n                });\n                \n                resolve();\n            };\n\n            \/\/ If the image was already loaded before (via filters), display it instantly\n            if (item.dataset.loaded === 'true') {\n                placeItemInDOM();\n            } else {\n                \/\/ Ghost preloading to retrieve exact natural sizes the first time\n                const preloadImg = new Image();\n                preloadImg.onload = () => {\n                    img.src = src;\n                    item.dataset.loaded = 'true';\n                    placeItemInDOM();\n                };\n                preloadImg.onerror = () => {\n                    img.src = src; \/\/ Fallback\n                    item.dataset.loaded = 'true';\n                    placeItemInDOM();\n                };\n                preloadImg.src = src;\n            }\n        });\n    };\n\n    \/\/ Bulk loading function\n    const loadItems = async () => {\n        if (!loadMoreBtn || !loadMoreText) return;\n        \n        \/\/ Safety check\n        if (filteredItems.length === 0) return;\n\n        loadMoreBtn.classList.add('is-loading');\n        loadMoreText.textContent = \"Loading...\";\n\n        const endIndex = Math.min(currentIndex + itemsPerLoad, filteredItems.length);\n        \n        \/\/ Sequentially loads and inserts images one by one\n        for (let i = currentIndex; i < endIndex; i++) {\n            await processNextItem(filteredItems[i]);\n        }\n\n        currentIndex = endIndex;\n        loadMoreBtn.classList.remove('is-loading');\n        loadMoreText.textContent = \"Load more projects\";\n\n        \/\/ Hide button if there are no more items left for the active filter\n        if (currentIndex >= filteredItems.length) {\n            loadMoreBtn.style.display = 'none';\n        }\n    };\n\n    \/\/ Initial Loading\n    if (filteredItems.length > 0) {\n        loadItems();\n    } else {\n        emptyMessage.classList.add('is-visible');\n        if (loadMoreBtn) loadMoreBtn.style.display = 'none';\n    }\n\n    \/\/ Event listener with jump-prevention on button click\n    if (loadMoreBtn) {\n        loadMoreBtn.addEventListener('click', (e) => {\n            e.preventDefault();\n            loadItems();\n        });\n    }\n});\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       COMPONENT: DECORATION PROJECT CTA (Centered)\n       ========================================================================== *\/\n\n    .norki-cta-projet {\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        position: relative;\n        z-index: 10;\n        box-sizing: border-box;\n        text-align: center;\n        display: flex;\n        justify-content: center;\n        padding-top: 0;\n    }\n\n    .norki-cta-projet__wrapper {\n        max-width: 650px; \/* Forces line breaks in the paragraph to match the layout mockup *\/\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 30px; \/* Regular spacing between the title, text, and button *\/\n    }\n\n    \/* --- Titles --- *\/\n    .norki-cta-projet__title {\n        margin: 0;\n        line-height: 1.25;\n        letter-spacing: -0.01em;\n    }\n\n    .norki-cta-projet__title-sans {\n        display: block;\n        font-size: clamp(1.6rem, 2.5vw, 34px);\n        font-weight: 500;\n        margin-bottom: 5px;\n    }\n\n    .norki-cta-projet__title-serif {\n        display: block;\n        font-size: clamp(1.8rem, 2.8vw, 38px);\n        font-weight: 400;\n    }\n\n    \/* --- Paragraph --- *\/\n    .norki-cta-projet__text {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        margin: 0;\n        max-width: 600px;\n    }\n\n    \/* --- Main Button (Filled) --- *\/\n    .norki-cta-projet__btn {\n        display: inline-flex;\n        justify-content: center;\n        align-items: center;\n        padding: 4px 35px; \/* Adjusted padding for a filled button style *\/\n        text-decoration: none;\n        font-size: 1rem;\n        font-weight: 500;\n        color: #ffffff;\n        background-color: var(--color-norki-brown, #50423d); \/* Dark brown button *\/\n        border: 1px solid var(--color-norki-brown, #50423d);\n        transition: all 0.3s ease;\n        margin-top: 10px; \/* Additional spacing below the text block *\/\n    }\n\n    .norki-cta-projet__btn:hover {\n        background-color: transparent;\n        color: var(--color-norki-brown, #50423d);\n    }\n\n    \/* --- Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-cta-projet {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .norki-cta-projet__wrapper {\n            gap: 25px;\n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-cta-projet {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-cta-projet__wrapper {\n            gap: 20px;\n        }\n\n        .norki-cta-projet__title-sans {\n            font-size: 1.4rem;\n        }\n\n        .norki-cta-projet__title-serif {\n            font-size: 1.6rem;\n        }\n        \n        .norki-cta-projet__btn {\n            padding: 10px 30px;\n        }\n    }\n<\/style>\n\n<section class=\"norki-cta-projet\">\n    <div class=\"norki-cta-projet__wrapper\">\n        \n        <!-- Titles -->\n        <h2 class=\"norki-cta-projet__title\">\n            <span class=\"norki-cta-projet__title-sans avenirmedium-font\">Do you have an<\/span>\n            <span class=\"norki-cta-projet__title-serif baskerville-italic-font\">interior design project?<\/span>\n        <\/h2>\n\n        <!-- Accompanying description -->\n        <p class=\"norki-cta-projet__text\">\n            To receive personalized advice on a furnishing project, bespoke pieces, or to obtain more information about our services, our specialist teams will be delighted to help you.\n        <\/p>\n\n        <!-- Action Button -->\n        <a href=\"https:\/\/api.whatsapp.com\/send?phone=33647923857\" class=\"norki-cta-projet__btn avenirmedium-font\" target=\"_blank\" rel=\"noopener\" title=\"Contact us on WhatsApp\">WhatsApp us<\/a>\n        \n    <\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Contemporary and Refined Chalet Chalet in Courchevel Contemporary Luxury Chalet in Aspen Contemporary Luxury Chalet in Jackson Hole Discover All our projects Europe USA Japan The list is currently empty. &#8230; Load more projects Contemporary and Refined Chalet \u2013 Chalet in Courchevel Contemporary Luxury \u2013 Chalet in Aspen Contemporary Luxury \u2013 Chalet in Meg\u00e8ve Contemporary [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-page-builder-no-header-footer.php","meta":{"_uag_custom_page_level_css":"\/* A COPIER COLLER *\/\n\n:root {\n\t--wp--preset--color--contrast: black;\n    \/* Paddings de section standards *\/\n    --section-pad-v-dt: 80px;\n    --section-pad-h-dt: 5vw;\n    \n    --section-pad-v-tab: 50px;\n    --section-pad-h-tab: 4vw;\n    \n    --section-pad-v-mob: 40px;\n    --section-pad-h-mob: 20px;\n\n    \/* Couleurs  Polices *\/\n    --color-norki-brown: #50423d;\n    --color-norki-beige: #f8f0ea;\n    --font-baskerville: 'Baskerville', serif;\n    --font-montserrat: 'Montserrat', sans-serif;\n}\n\n@font-face {\n  font-family: 'LibreBaskervilleItalic';\n  src: url('\/studio-chalet\/wp-content\/themes\/twentytwentyfour\/assets\/fonts\/Libre-Baskerville\/LibreBaskerville-Italic.ttf') format('truetype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: 'Bestermind';\n  src: url('\/studio-chalet\/wp-content\/themes\/twentytwentyfour\/assets\/fonts\/Bestermind\/BestermindRegular.ttf') format('truetype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: 'AvenirBook';\n  src: url('\/studio-chalet\/wp-content\/themes\/twentytwentyfour\/assets\/fonts\/Avenir\/Avenir-Book-01.otf') format('opentype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n\n@font-face {\n  font-family: 'AvenirMedium';\n  src: url('\/studio-chalet\/wp-content\/themes\/twentytwentyfour\/assets\/fonts\/Avenir\/Avenir-Medium-09.otf') format('opentype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: 'AvenirBookOblique';\n  src: url('\/studio-chalet\/wp-content\/themes\/twentytwentyfour\/assets\/fonts\/Avenir\/Avenir-BookOblique-02.otf') format('opentype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: 'Pertili';\n  src: url('\/studio-chalet\/wp-content\/themes\/twentytwentyfour\/assets\/fonts\/PERTILI.TTF') format('truetype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n.pertili-font {\n\tfont-family: \"Pertili\", sans-serif !important;\n}\n\n.bestermind-font {\n\tfont-family: \"Bestermind\", sans-serif !important;\n}\n\n.avenirbookoblique-font {\n\tfont-family: \"AvenirBookOblique\", sans-serif !important;\n}\n\n.baskerville-italic-font {\n\tfont-family: \"LibreBaskervilleItalic\", sans-serif !important;\n}\n\n.avenirmedium-font {\n\tfont-family: \"AvenirMedium\", sans-serif !important;\n}\n\nbody:not(.wp-admin) * {\n  font-family: \"AvenirBook\", sans-serif;\n}\n\nbody {\n\tbackground-color: #f8f0ea !important;\n\tcolor: black;\n}\n\nh2 {\n\tfont-family: \"AvenirMedium\", sans-serif !important;\n}\n\n.components-sandbox {\n\tmax-height: 500px;\n}\n\n\/* A COPIER COLLER END *\/","_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"class_list":["post-1883","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>International Alpine Projects | Studio Chalet by Norki<\/title>\n<meta name=\"description\" content=\"Explore our interior design projects. Studio Chalet by Norki enhances Alpine residences around the world with unparalleled elegance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"International Alpine Projects | Studio Chalet by Norki\" \/>\n<meta property=\"og:description\" content=\"Explore our interior design projects. Studio Chalet by Norki enhances Alpine residences around the world with unparalleled elegance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/\" \/>\n<meta property=\"og:site_name\" content=\"Norki\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/NorkiDecoration\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-16T10:52:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/\",\"name\":\"International Alpine Projects | Studio Chalet by Norki\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Aspen_temp.png\",\"datePublished\":\"2026-06-17T07:33:35+00:00\",\"dateModified\":\"2026-07-16T10:52:05+00:00\",\"description\":\"Explore our interior design projects. Studio Chalet by Norki enhances Alpine residences around the world with unparalleled elegance.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Aspen_temp.png\",\"contentUrl\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Aspen_temp.png\",\"width\":1449,\"height\":1086},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/studio-chalet\\\/luxury-interior-design\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/studio-chalet\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/#website\",\"url\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/\",\"name\":\"Norki\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/#organization\",\"name\":\"Norki | Studio Chalet\",\"url\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-simple-noir_NORKI-e1777530636585.png\",\"contentUrl\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-simple-noir_NORKI-e1777530636585.png\",\"width\":300,\"height\":74,\"caption\":\"Norki | Studio Chalet\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/studio-chalet\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/NorkiDecoration\",\"https:\\\/\\\/instagram.com\\\/norkiofficial\\\/\",\"https:\\\/\\\/fr.linkedin.com\\\/company\\\/norki-decoration\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCLwZSkdXDYvZx68leltWTMw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"International Alpine Projects | Studio Chalet by Norki","description":"Explore our interior design projects. Studio Chalet by Norki enhances Alpine residences around the world with unparalleled elegance.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/","og_locale":"fr_FR","og_type":"article","og_title":"International Alpine Projects | Studio Chalet by Norki","og_description":"Explore our interior design projects. Studio Chalet by Norki enhances Alpine residences around the world with unparalleled elegance.","og_url":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-16T10:52:05+00:00","og_image":[{"url":"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/","url":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/","name":"International Alpine Projects | Studio Chalet by Norki","isPartOf":{"@id":"https:\/\/www.norki.com\/studio-chalet\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/#primaryimage"},"thumbnailUrl":"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png","datePublished":"2026-06-17T07:33:35+00:00","dateModified":"2026-07-16T10:52:05+00:00","description":"Explore our interior design projects. Studio Chalet by Norki enhances Alpine residences around the world with unparalleled elegance.","breadcrumb":{"@id":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/#primaryimage","url":"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png","contentUrl":"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/06\/Aspen_temp.png","width":1449,"height":1086},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/en\/studio-chalet\/luxury-interior-design\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/fr\/studio-chalet\/"},{"@type":"ListItem","position":2,"name":"Our projects"}]},{"@type":"WebSite","@id":"https:\/\/www.norki.com\/studio-chalet\/#website","url":"https:\/\/www.norki.com\/studio-chalet\/","name":"Norki","description":"","publisher":{"@id":"https:\/\/www.norki.com\/studio-chalet\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.norki.com\/studio-chalet\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.norki.com\/studio-chalet\/#organization","name":"Norki | Studio Chalet","url":"https:\/\/www.norki.com\/studio-chalet\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/studio-chalet\/#\/schema\/logo\/image\/","url":"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/04\/logo-simple-noir_NORKI-e1777530636585.png","contentUrl":"https:\/\/www.norki.com\/studio-chalet\/wp-content\/uploads\/2026\/04\/logo-simple-noir_NORKI-e1777530636585.png","width":300,"height":74,"caption":"Norki | Studio Chalet"},"image":{"@id":"https:\/\/www.norki.com\/studio-chalet\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/NorkiDecoration","https:\/\/instagram.com\/norkiofficial\/","https:\/\/fr.linkedin.com\/company\/norki-decoration\/","https:\/\/www.youtube.com\/channel\/UCLwZSkdXDYvZx68leltWTMw"]}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Super Viewer","author_link":"https:\/\/www.norki.com\/studio-chalet\/inspiration-decoration-montagne\/author\/super-viewer\/"},"uagb_comment_info":0,"uagb_excerpt":"Contemporary and Refined Chalet Chalet in Courchevel Contemporary Luxury Chalet in Aspen Contemporary Luxury Chalet in Jackson Hole Discover All our projects Europe USA Japan The list is currently empty. &#8230; Load more projects Contemporary and Refined Chalet \u2013 Chalet in Courchevel Contemporary Luxury \u2013 Chalet in Aspen Contemporary Luxury \u2013 Chalet in Meg\u00e8ve Contemporary\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/pages\/1883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/comments?post=1883"}],"version-history":[{"count":4,"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/pages\/1883\/revisions"}],"predecessor-version":[{"id":2425,"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/pages\/1883\/revisions\/2425"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/studio-chalet\/wp-json\/wp\/v2\/media?parent=1883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}