{"id":4277,"date":"2026-06-08T12:19:41","date_gmt":"2026-06-08T10:19:41","guid":{"rendered":"https:\/\/www.norki.com\/sur-mesure\/?page_id=4277"},"modified":"2026-07-22T10:10:59","modified_gmt":"2026-07-22T08:10:59","slug":"interior-design-projects-bespoke-craftsmanship","status":"publish","type":"page","link":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/","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 across all screen sizes *\/\n        overflow: hidden;\n        background-color: black;\n        max-height: 100dvh;\n    }\n\n    \/* --- 1. Slide 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%); \/* Starts from the far 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    \/* Outgoing Slide (exits 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 text 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 (removes standard h2) *\/\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 UI Interface (Positioned over the 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 (button) to the right *\/\n        align-items: flex-end;\n        z-index: 10;\n        pointer-events: none; \/* Allows clicks to pass through to the slider if needed *\/\n    }\n\n    \/* Discover Button (Bottom right) *\/\n    .norki-hs__discover-btn {\n        pointer-events: auto; \/* Re-enables clicking *\/\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 animation *\/\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 State (Coming soon) *\/\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 animation on hover *\/\n    }\n\n    \/* Pagination Dots (Centered) *\/\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 (16\/9 ratio adaptation on smaller screens) --- *\/\n    @media (max-width: 768px) {\n        \/* Percentages are used to adapt to the lower height of the 16\/9 layout on mobile *\/\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 homepage hero slider\">\n    \n    <div class=\"norki-hs__track\">\n        \n        <!-- SLIDE 1 : GRAU ROIG -->\n        <div class=\"norki-hs__slide is-active\" data-link=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/hotel-projects\/grau-roig-andorre\/\">\n            <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg\" alt=\"Interior design Palace Grau Roig\" class=\"norki-hs__image skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title\">Palace Grau Roig<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Principality of Andorra<\/span>\n            <\/div>\n        <\/div>\n\n        <!-- SLIDE 2 : HAMPTONS -->\n        <div class=\"norki-hs__slide\" data-link=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/athena-calderone-hamptons\/\">\n            <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/athena-calderone-interior-design-house-1-1-2048x1106.jpg\" alt=\"Contemporary House Hamptons\" class=\"norki-hs__image skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title\">Contemporary House<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Hamptons, Amagansett<\/span>\n            <\/div>\n        <\/div>\n\n        <!-- SLIDE 3 : APPARTEMENT HAUSSMANNIEN -->\n        <div class=\"norki-hs__slide\" data-link=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/\" data-status=\"active\">\n            <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tailor-made-wall-to-wall-shearling-carpet-2.jpeg\" alt=\"Private apartment in Paris featuring bespoke wall-to-wall shearling carpet by Norki\" class=\"norki-hs__image skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title\">Bespoke Wall-to-Wall Carpets<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Private Apartment, Paris<\/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        <!-- Discover Button -->\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/hotel-projects\/grau-roig-andorre\/\" 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') || discoverBtn.getAttribute('href') === '#') {\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 the Discover button\n            discoverBtn.classList.add('is-hidden');\n\n            \/\/ B. Animate slide transitions\n            currentSlide.classList.remove('is-active');\n            currentSlide.classList.add('is-leaving');\n            \n            \/\/ Ensure next slide has the 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. Clean up old slide and show button\n            setTimeout(() => {\n                \/\/ Remove outgoing slide from viewport\n                currentSlide.classList.remove('is-leaving');\n                \n                \/\/ Disable transitions temporarily to reset slide positions silently on the right\n                currentSlide.style.transition = 'none';\n                void currentSlide.offsetWidth; \/\/ Force browser reflow\n                currentSlide.style.transition = ''; \/\/ Restore transitions for the next turn\n                \n                \/\/ Handle button state (Active vs Coming soon)\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                \/\/ Reveal the button\n                discoverBtn.classList.remove('is-hidden');\n            }, 1000); \/\/ 1s = duration of the CSS transition\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. Initialize Autoplay\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       SECTION : \"FA\u00c7ONNER L'EXCEPTION\" (Texte align\u00e9 \u00e0 gauche + Expand)\n       ========================================================================== *\/\n\n    .norki-exception {\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    .norki-exception__content {\n        max-width: 680px;\n    }\n\n    \/* --- Accroche Italic --- *\/\n    .norki-exception__intro {\n        font-size: clamp(1.4rem, 2vw, 28px);\n        line-height: 1.35;\n        margin-top: 0;\n        margin-bottom: 70px;\n        color: black;\n    }\n\n    \/* --- Titre Principal --- *\/\n    .norki-exception__title {\n        font-size: clamp(1.6rem, 2.5vw, 32px);\n        font-weight: 500;\n        margin-top: 0;\n        margin-bottom: 25px;\n        letter-spacing: -0.01em;\n        line-height: 1.2;\n    }\n\n    \/* --- Paragraphes --- *\/\n    .norki-exception__text {\n        font-size: 0.95rem;\n        line-height: 1.5;\n        margin-top: 0;\n        margin-bottom: 25px;\n        max-width: 81%;\n    }\n\n    .norki-exception__text strong {\n        font-weight: 400;\n    }\n\n    \/* --- Liens int\u00e9gr\u00e9s (Design System) --- *\/\n    .norki-exception__inline-link {\n        color: inherit;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 3px;\n        text-decoration-thickness: 1px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n        font-weight: inherit;\n    }\n\n    .norki-exception__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* --- Syst\u00e8me d'expansion (Grid Transition) --- *\/\n    .norki-exception__expand-wrapper {\n        display: grid;\n        grid-template-rows: 0fr;\n        transition: grid-template-rows 0.4s ease-out;\n    }\n\n    .norki-exception__expand-wrapper.is-open {\n        grid-template-rows: 1fr;\n    }\n\n    .norki-exception__expand-content {\n        overflow: hidden;\n    }\n\n    \/* Marges annul\u00e9es sur le dernier \u00e9l\u00e9ment pour \u00e9viter les sauts lors de l'animation *\/\n    .norki-exception__expand-content > *:last-child {\n        margin-bottom: 25px; \n    }\n\n    \/* --- Citation --- *\/\n    .norki-exception__quote {\n        margin-top: 15px;\n        position: relative;\n        padding-left: 20px;\n        border-left: 1px solid rgba(26, 26, 26, 0.3);\n    }\n\n    .norki-exception__quote-author {\n        display: block;\n        margin-top: 10px;\n        font-weight: 600;\n        font-style: normal;\n        font-size: 0.85rem;\n        letter-spacing: 0.5px;\n        text-transform: uppercase;\n    }\n\n    \/* --- Bouton Voir Plus --- *\/\n    .norki-exception__btn {\n        display: inline-block;\n        background: transparent;\n        border: none;\n        padding: 0;\n        cursor: pointer;\n        font-family: inherit;\n        font-size: 0.9rem;\n        color: black;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1px;\n        transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n        font-style: italic;\n    }\n\n    .norki-exception__btn:hover {\n        text-decoration-color: transparent;\n        opacity: 0.6;\n    }\n\n    \/* --- Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-exception {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .norki-exception__intro {\n            margin-bottom: 50px;\n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-exception {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-exception__content {\n            max-width: 100%;\n        }\n\n        .norki-exception__text {\n            max-width: 100%; \/* Le texte prend toute la largeur sur mobile *\/\n        }\n\n        .norki-exception__intro {\n            margin-bottom: 40px;\n        }\n\n        .norki-exception__title {\n            font-size: 1.5rem;\n            margin-bottom: 20px;\n        }\n    }\n<\/style>\n\n<section class=\"norki-exception\">\n    <div class=\"norki-exception__content\">\n        \n        <!-- Accroche en italique -->\n        <h1 class=\"norki-exception__intro baskerville-italic-font\">\n            Norki, the Art of Craftsmanship<br>\n            for Your Finest Interior Design Projects\n        <\/h1>\n\n        <!-- Titre de section -->\n        <h2 class=\"norki-exception__title avenirmedium-font\">\n            Shaping the Exceptional\n        <\/h2>\n\n        <!-- Paragraphe principal visible -->\n        <p class=\"norki-exception__text\">\n            From the majesty of Alpine summits to the sleek lines of urban residences, our French Maison brings exceptional spaces to life. Working in close collaboration with leading <strong>interior architects, <a href=\"https:\/\/www.norki.com\/en\/designers\" class=\"norki-exception__inline-link\" title=\"Discover our collaborations with designers\">designers<\/a>, specifiers, and gallery owners,<\/strong> we realize ambitious projects across the globe.\n        <\/p>\n\n        <!-- Contenu masqu\u00e9 \/ d\u00e9pliable -->\n        <div class=\"norki-exception__expand-wrapper\" id=\"extra-wrapper-exception\">\n            <div class=\"norki-exception__expand-content\">\n                <p class=\"norki-exception__text\">\n                    While the <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/\" class=\"norki-exception__inline-link\" title=\"Discover our mountain projects\">mountains<\/a> remain our cherished domain\u2014where our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/living-heritage-company-label-epv\/\" class=\"norki-exception__inline-link\" title=\"Discover our Living Heritage Company label\">EPV label<\/a> and mastery of <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/sewing-fur-epv\/\" class=\"norki-exception__inline-link\" title=\"Discover our bespoke fur tailoring craftsmanship\">haute couture fur<\/a> set the standard for bespoke <a href=\"https:\/\/www.norki.com\/en\/19-customize-designer-high-end-luxury-hide-rug-norki\" class=\"norki-exception__inline-link\" title=\"Shop our exceptional rugs\">rugs<\/a>, <a href=\"https:\/\/www.norki.com\/en\/designer-haute-couture-bespoke-throws-collection-norki\" class=\"norki-exception__inline-link\" title=\"Shop our high-end throws\">throws<\/a>, <a href=\"https:\/\/www.norki.com\/en\/30-designer-cushions-collection-luxury-norki\" class=\"norki-exception__inline-link\" title=\"Shop our exceptional cushions\">cushions<\/a>, and <a href=\"https:\/\/www.norki.com\/en\/25-designer-haute-couture-furniture-collection-norki\" class=\"norki-exception__inline-link\" title=\"Shop our furniture pieces\">hide furniture<\/a>\u2014our expertise knows no borders.\n                <\/p>\n                <p class=\"norki-exception__text\">\n                    Whether for <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/beachfront-projects\/\" class=\"norki-exception__inline-link\" title=\"Discover our exceptional beachfront projects\">confidential seaside retreats<\/a> or <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/\" class=\"norki-exception__inline-link\" title=\"Discover our urban residency projects\">prestigious city dwellings<\/a>, our craftsmanship in <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"norki-exception__inline-link\" title=\"Discover our bespoke upholstery\">fine upholstery<\/a> and <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/luxury-upholstery-installation-services\/\" class=\"norki-exception__inline-link\" title=\"Discover our decor installation services\">master decor installation<\/a> (tapissier-villier) adapts to every environment, elevating fabrics and the most noble materials with the same unwavering commitment to excellence.\n                <\/p>\n                <p class=\"norki-exception__text norki-exception__quote baskerville-italic-font\">\n                    \u201cBeyond the aesthetics of the object, our quest lies in the perfect balance between absolute comfort and durability. Every detail is a promise of accuracy and precision made to our clients.\u201d\n                    <span class=\"norki-exception__quote-author avenirmedium-font\">Sonia Linard<\/span>\n                <\/p>\n            <\/div>\n        <\/div>\n        <!-- Bouton d'action -->\n        <button type=\"button\" class=\"norki-exception__btn\" id=\"voir-plus-btn-exception\" aria-expanded=\"false\" aria-controls=\"extra-wrapper-exception\">Learn more<\/button>\n        \n    <\/div>\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        const btn = document.getElementById('voir-plus-btn-exception'); \n        const wrapper = document.getElementById('extra-wrapper-exception'); \n\n        if (btn && wrapper) {\n            btn.addEventListener('click', () => {\n                const isOpen = wrapper.classList.toggle('is-open');\n                \n                \/\/ Mise \u00e0 jour de l'accessibilit\u00e9\n                btn.setAttribute('aria-expanded', isOpen);\n\n                \/\/ Mise \u00e0 jour du texte\n                if (isOpen) {\n                    btn.textContent = 'Learn less';\n                } else {\n                    btn.textContent = 'Learn more';\n                }\n            });\n        }\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION GALERIE R\u00c9ALISATIONS (Filtres liens + JS Dynamic 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, #f4eee9); \/* Beige color matching the Haussmannian project *\/\n        color: black;\n        position: relative;\n        z-index: 10;\n        box-sizing: border-box;\n        padding-top: 0;\n    }\n\n    \/* --- 1. Menu de Filtres (Conteneur & Scroll) --- *\/\n    .norki-portfolio__filters-container {\n        position: relative;\n        \/* Breaks section padding to allow scroll to the edge of the viewport (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 guarantee the last item has right padding during the final scroll *\/\n    .norki-portfolio__filters::after {\n        content: '';\n        padding-right: var(--section-pad-h-dt, 5vw);\n    }\n\n    \/* --- Styles des boutons de filtre --- *\/\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 state: 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 of the active button when hovering the whole menu *\/\n    .norki-portfolio__filters:hover .norki-portfolio__filter-btn.is-active {\n        text-decoration-color: transparent;\n    }\n\n    \/* Forces hover state for the active button specifically *\/\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    \/* --- Fl\u00e8ches de navigation des filtres --- *\/\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, #f4eee9) 60%, rgba(244, 238, 232, 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, #f4eee9) 60%, rgba(244, 238, 232, 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. Grille Flex Masonry (G\u00e9r\u00e9e par 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    .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    \/* --- Coming Soon State Management --- *\/\n    .norki-portfolio__item:not(.is-coming-soon):hover .norki-portfolio__img {\n        transform: scale(1.03); \n    }\n\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    \/* --- 3. Actions (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    \/* --- 4. Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-portfolio {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n            padding-top: 0;\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            padding-top: 0;\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<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            <nav class=\"norki-portfolio__filters\">\n                <a href=\"#\" class=\"norki-portfolio__filter-btn is-active\" aria-current=\"page\" title=\"Viewing all our projects\">All Realizations<\/a>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/\" class=\"norki-portfolio__filter-btn\" title=\"View our mountain projects\">Mountain<\/a>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/\" class=\"norki-portfolio__filter-btn\" title=\"View our beachfront projects\">Beachfront<\/a>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/\" class=\"norki-portfolio__filter-btn\" title=\"View our urban projects\">Urban<\/a>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/hotel-projects\/\" class=\"norki-portfolio__filter-btn\" title=\"View our hotel projects\">Hotel<\/a>\n            <\/nav>\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    <!-- Target container for JS -->\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    <!-- 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        <!-- ======================= ACTIVE PROJECTS AT THE TOP ======================= -->\n\n        <!-- NOUVEAU : Gabriel Bernardi Brighton -->\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/blue-cowhide-tailor-made-sofa-2-1514x2048.jpg\" alt=\"Seaside Villa\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">English cottage spirit \u2013 <span>Seaside Villa<\/span><\/p>\n        <\/a>\n\n        <!-- NOUVEAU : Jacques Garcia Saint-Moritz -->\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Mink-Salon-Royere-Projet-Jacques-Garcia.jpg\" alt=\"Private Chalet Saint-Moritz\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Fur Rugs, Furniture and Curtains \u2013 <span>Private Chalet Saint-Moritz<\/span><\/p>\n        <\/a>\n\n        <!-- Humbert & Poyet Gstaad - Moved to top with active EN link -->\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/humbert-and-poyet-gstaad\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Chalet-terrace-decoration-Gstaad.jpg\" alt=\"Chalet in Gstaad\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Family Chalet \u2013 <span>Chalet in Gstaad<\/span><\/p>\n        <\/a>\n\n        <!-- Les Barmes de l'Ours - Moved to top with active EN link -->\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/hotel-projects\/les-barmes-de-l-ours-val-d-isere\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/restaurant-salle-a-manger_Hotel-les-barmes-de-l-ours-2-2048x1185.jpg\" alt=\"Hotel les Barmes de l'Ours Val d'Is\u00e8re\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Hotel les Barmes de l&rsquo;Ours \u2013 <span>Val d&rsquo;Is\u00e8re<\/span><\/p>\n        <\/a>\n\n        <!-- Bespoke Tala Fustok Wall-to-wall Project - French-to-English localized active link -->\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tailor-made-wall-to-wall-shearling-carpet-2.jpeg\" alt=\"Private Apartment in Paris - Bespoke Wall-to-Wall shearling carpet by Norki\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke Wall-to-Wall Carpet \u2013 <span>Private Apartment in Paris<\/span><\/p>\n        <\/a>\n\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/athena-calderone-hamptons\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/athena-calderone-interior-design-house-1-1-2048x1106.jpg\" alt=\"Hamptons, Amagansett\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary House \u2013 <span>Hamptons, Amagansett<\/span><\/p>\n        <\/a>\n\n        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/hotel-projects\/grau-roig-andorre\/\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas-Grau-Roig-palace.jpg\" alt=\"Palace Grau Roig Principality of Andorra\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Palace Grau Roig \u2013 <span>Principality of Andorra<\/span><\/p>\n        <\/a>\n\n        <!-- ======================= ALL OTHER PROJECTS (MIXED) ======================= -->\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tapis-roots-claude-cartier-appartement-parisien.jpg\" alt=\"Parisian apartment\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke shearling rug \u2013 <span>Parisian apartment<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Custom-daybed-in-contemporary-aspen-chalet.jpg\" alt=\"Chalet in Aspen\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary chalet \u2013 <span>Aspen, Colorado<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Khan-Blanc-dans-Maison-cubique-belgique.jpg\" alt=\"House in Knokke\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Cubic Spirit \u2013 <span>House in Knokke<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/interior-design-hotel-room-palace-les-neiges-courchevel-2-2048x1536.jpg\" alt=\"Palace Les Neiges Courchevel\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Palace Les Neiges \u2013 <span>Courchevel<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Norki-Megeve-Interieur-Chalet.jpg\" alt=\"French Alps apartment interior design\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Between tradition and modernity \u2013 <span>French Alps apartment<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Milan-sur-meusre-Projet-prive-Brussels.jpg\" alt=\"Private Apartment in Brussels\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Large Bespoke Cowhide Rug \u2013 <span>Private Apartment in Brussels<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/canape-coussins-sur-mesure-lobby-hotel.jpg\" alt=\"Hotel Le C\u0153ur de Meg\u00e8ve\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Hotel Le C\u0153ur de Meg\u00e8ve \u2013 <span>Meg\u00e8ve<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/vintage-shearling-bespoke-sofa-2-2048x1559.jpg\" alt=\"Villa on Zakynthos Island\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Contemporary decoration \u2013 <span>Villa on Zakynthos Island<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/interior-design-the-lonsdaleite-premiere-chalet.jpg\" alt=\"Chalet in Saint-Moritz\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">James Bond-Style Contemporary Chalet \u2013 <span>Chalet in Saint-Moritz<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/Marble-and-shearling-armchairs_Norki_v2.png\" alt=\"Parisian private mansion\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Historic Haussmann residence \u2013 <span>Parisian private mansion<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tapis-peau-de-vache-chambre-hotel-rougemont.jpg\" alt=\"Grand Hotel Rougemont\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Grand Hotel Rougemont \u2013 <span>Rougemont<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/plaid-en-renard-vert-sur-mesure.jpg\" alt=\"Private Apartment in Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke Verbier Throw \u2013 <span>Private Apartment in Paris<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Bespoke-Objects-in-Megeve-Chalet.jpg\" alt=\"Private Chalet in Meg\u00e8ve\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke Round Sheepskin Rugs \u2013 <span>Private Chalet in Meg\u00e8ve<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg\" alt=\"Private Apartment in Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke Grey Fox Rug \u2013 <span>Private Apartment in Paris<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-wall-covering_Cheval-Blanc-Courchevel_Norki-2-2048x1158.jpg\" alt=\"Private Mansion Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Cowhide Wall Covering \u2013 <span>Le Cheval Blanc Courchevel Hotel<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/banc-pierre-jeanneret-sur-mesure-v2.png\" alt=\"Parisian Private Mansion\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke Cowhide Cushion \u2013 <span>Private H\u00f4tel in Paris<\/span><\/p>\n        <\/a>\n\n        <a href=\"#\" class=\"norki-portfolio__item is-coming-soon\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/Finn-Julh-Pelican-Agneau-chalet-v2.png\" alt=\"Bespoke Sheepskin Rugs and Vintage Furniture Curation by Norki, Private Chalet in Meg\u00e8ve\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Bespoke Sheepskin Rugs and Vintage Furniture Curation by Norki \u2013 <span>Private Chalet in Meg\u00e8ve<\/span><\/p>\n        <\/a>\n\n    <\/div>\n\n<\/section>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n    \n    \/\/ --- 1. FILTER MENU NAVIGATION ARROWS ---\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        const scrollLeft = Math.ceil(filtersWrapper.scrollLeft);\n        const scrollWidth = filtersWrapper.scrollWidth;\n        const clientWidth = filtersWrapper.clientWidth;\n\n        if (scrollLeft > 5) {\n            arrowLeft.classList.add('is-visible');\n        } else {\n            arrowLeft.classList.remove('is-visible');\n        }\n\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        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 LOADING ---\n    const sourceItems = Array.from(document.querySelectorAll('#norki-items-source .norki-portfolio__item'));\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    \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    \/\/ Dynamic vertical spacing\/margins\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 the image to preload to measure its 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 aspect 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                \/\/ Insertion logic: Forced to the left column on Mobile to avoid screen jumps\n                if (window.innerWidth <= 768) {\n                    colLeft.appendChild(item);\n                } else {\n                    \/\/ On Desktop: Insert in the shorter column (to keep balances equal)\n                    if (colLeft.offsetHeight <= colRight.offsetHeight) {\n                        colLeft.appendChild(item);\n                    } else {\n                        colRight.appendChild(item);\n                    }\n                }\n\n                \/\/ Smooth entry animation\n                requestAnimationFrame(() => {\n                    setTimeout(() => item.classList.add('is-visible'), 50);\n                });\n                \n                resolve();\n            };\n\n            \/\/ Shadow preloading to retrieve exact natural dimensions on first run\n            const preloadImg = new Image();\n            preloadImg.onload = () => {\n                img.src = src;\n                placeItemInDOM();\n            };\n            preloadImg.onerror = () => {\n                img.src = src; \/\/ Fallback\n                placeItemInDOM();\n            };\n            preloadImg.src = src;\n        });\n    };\n\n    \/\/ Load items in groups\n    const loadItems = async () => {\n        if (!loadMoreBtn || !loadMoreText) return;\n\n        loadMoreBtn.classList.add('is-loading');\n        loadMoreText.textContent = \"Loading...\";\n\n        const endIndex = Math.min(currentIndex + itemsPerLoad, sourceItems.length);\n        \n        \/\/ Sequentially loads and inserts each image one by one\n        for (let i = currentIndex; i < endIndex; i++) {\n            await processNextItem(sourceItems[i]);\n        }\n\n        currentIndex = endIndex;\n        loadMoreBtn.classList.remove('is-loading');\n        loadMoreText.textContent = \"Load more projects\";\n\n        \/\/ Hides button if no more items are available\n        if (currentIndex >= sourceItems.length) {\n            loadMoreBtn.style.display = 'none';\n        }\n    };\n\n    \/\/ First load (Initialization)\n    loadItems();\n\n    \/\/ Event listener on load more button\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       SECTION CTA ARCHITECTE (Centr\u00e9e)\n       ========================================================================== *\/\n\n    .norki-cta-archi {\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    }\n\n    .norki-cta-archi__wrapper {\n        max-width: 650px; \/* Force les retours \u00e0 la ligne du paragraphe comme sur la maquette *\/\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 30px; \/* Espace r\u00e9gulier entre le titre, le texte et le bouton *\/\n    }\n\n    \/* --- Titres --- *\/\n    .norki-cta-archi__title {\n        margin: 0;\n        line-height: 1.25;\n        letter-spacing: -0.01em;\n    }\n\n    .norki-cta-archi__title-sans {\n        display: block;\n        font-size: clamp(1.4rem, 2.2vw, 30px);\n        font-weight: 500;\n        margin-bottom: 5px;\n    }\n\n    .norki-cta-archi__title-serif {\n        display: block;\n        font-size: clamp(1.6rem, 2.5vw, 34px);\n        font-weight: 400;\n    }\n\n    \/* --- Paragraphe --- *\/\n    .norki-cta-archi__text {\n        font-size: 0.95rem;\n        line-height: 1.5;\n        margin: 0;\n    }\n\n    \/* --- Liens int\u00e9gr\u00e9s (Design System) --- *\/\n    .norki-cta-archi__inline-link {\n        color: inherit;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 3px;\n        text-decoration-thickness: 1px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n    }\n\n    .norki-cta-archi__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* --- Bouton Secondaire --- *\/\n    .norki-cta-archi__btn {\n        display: inline-flex;\n        justify-content: center;\n        align-items: center;\n        padding: 4px 35px;\n        text-decoration: none;\n        font-size: 0.9rem;\n        font-weight: 500;\n        color: black;\n        background-color: transparent;\n        border: 1px solid black;\n        transition: all 0.3s ease;\n        margin-top: 10px; \/* L\u00e9ger espacement suppl\u00e9mentaire avec le texte *\/\n    }\n\n    .norki-cta-archi__btn:hover {\n        background-color: black;\n        color: white;\n    }\n\n    \/* --- Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-cta-archi {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .norki-cta-archi__wrapper {\n            gap: 25px;\n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-cta-archi {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-cta-archi__wrapper {\n            gap: 20px;\n        }\n\n        .norki-cta-archi__title-sans {\n            font-size: 1.3rem;\n        }\n\n        .norki-cta-archi__title-serif {\n            font-size: 1.45rem;\n        }\n    }\n<\/style>\n\n<section class=\"norki-cta-archi\">\n    <div class=\"norki-cta-archi__wrapper\">\n        \n        <!-- Titles -->\n        <h2 class=\"norki-cta-archi__title\">\n            <span class=\"norki-cta-archi__title-sans avenirmedium-font\">Are you an architect with a bespoke project<\/span>\n            <span class=\"norki-cta-archi__title-serif baskerville-italic-font\">for rugs, throws, cushions, or custom <span style=\"white-space: nowrap;\" class=\"baskerville-italic-font\">furniture?<\/span><\/span>\n        <\/h2>\n\n        <!-- Descriptive Text -->\n        <p class=\"norki-cta-archi__text\">\n            To <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/contact-us\/\" class=\"norki-cta-archi__inline-link\" title=\"Contact us to receive a personalized quote\">receive a personalized quote<\/a> for the creation of <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/\" class=\"norki-cta-archi__inline-link\" title=\"Discover our bespoke furniture and soft furnishings\">bespoke pieces<\/a> or to obtain more information about our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/luxury-upholstery-installation-services\/\" class=\"norki-cta-archi__inline-link\" title=\"Learn more about our fitting and installation services\">fitting and installation services<\/a>, our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-interior-design-studio-furniture-rugs\/\" class=\"norki-cta-archi__inline-link\" title=\"Discover our integrated Design Studio\">specialized teams<\/a> will be delighted to assist you.\n        <\/p>\n\n        <!-- Action Button -->\n        <a href=\"https:\/\/api.whatsapp.com\/send?phone=33647923857\" class=\"norki-cta-archi__btn\" target=\"_blank\" rel=\"noopener\" title=\"Contact our sales team on WhatsApp\">Whatsapp us<\/a>\n        \n    <\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Palace Grau Roig Principality of Andorra Contemporary House Hamptons, Amagansett Bespoke Wall-to-Wall Carpets Private Apartment, Paris Discover Norki, the Art of Craftsmanship for Your Finest Interior Design Projects Shaping the Exceptional From the majesty of Alpine summits to the sleek lines of urban residences, our French Maison brings exceptional spaces to life. Working in close [&hellip;]<\/p>\n","protected":false},"author":1,"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('\/sur-mesure\/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('\/sur-mesure\/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('\/sur-mesure\/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('\/sur-mesure\/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('\/sur-mesure\/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('\/sur-mesure\/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":""},"categories":[],"tags":[],"class_list":["post-4277","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Interior Design Projects &amp; Creations | Maison NORKI<\/title>\n<meta name=\"description\" content=\"Our exceptional projects around the world. A partner to architects, Norki crafts rugs, furniture, and upholstery for chalets, villas, and palaces.\" \/>\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\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Interior Design Projects &amp; Creations | Maison NORKI\" \/>\n<meta property=\"og:description\" content=\"Our exceptional projects around the world. A partner to architects, Norki crafts rugs, furniture, and upholstery for chalets, villas, and palaces.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/\" \/>\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-22T08:10:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg\" \/>\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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/\",\"name\":\"Interior Design Projects & Creations | Maison NORKI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Cowhide-round-sofas_GrauRoig-1.jpg\",\"datePublished\":\"2026-06-08T10:19:41+00:00\",\"dateModified\":\"2026-07-22T08:10:59+00:00\",\"description\":\"Our exceptional projects around the world. A partner to architects, Norki crafts rugs, furniture, and upholstery for chalets, villas, and palaces.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/#primaryimage\",\"url\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Cowhide-round-sofas_GrauRoig-1.jpg\",\"contentUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Cowhide-round-sofas_GrauRoig-1.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our Projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\",\"url\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/\",\"name\":\"Norki\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Interior Design Projects & Creations | Maison NORKI","description":"Our exceptional projects around the world. A partner to architects, Norki crafts rugs, furniture, and upholstery for chalets, villas, and palaces.","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\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/","og_locale":"fr_FR","og_type":"article","og_title":"Interior Design Projects & Creations | Maison NORKI","og_description":"Our exceptional projects around the world. A partner to architects, Norki crafts rugs, furniture, and upholstery for chalets, villas, and palaces.","og_url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-22T08:10:59+00:00","og_image":[{"url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/","url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/","name":"Interior Design Projects & Creations | Maison NORKI","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/#primaryimage"},"thumbnailUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg","datePublished":"2026-06-08T10:19:41+00:00","dateModified":"2026-07-22T08:10:59+00:00","description":"Our exceptional projects around the world. A partner to architects, Norki crafts rugs, furniture, and upholstery for chalets, villas, and palaces.","breadcrumb":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/#primaryimage","url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg","contentUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/"},{"@type":"ListItem","position":2,"name":"Our Projects"}]},{"@type":"WebSite","@id":"https:\/\/www.norki.com\/sur-mesure\/#website","url":"https:\/\/www.norki.com\/sur-mesure\/","name":"Norki","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.norki.com\/sur-mesure\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"webmaster","author_link":"https:\/\/www.norki.com\/sur-mesure\/author\/webmaster\/"},"uagb_comment_info":0,"uagb_excerpt":"Palace Grau Roig Principality of Andorra Contemporary House Hamptons, Amagansett Bespoke Wall-to-Wall Carpets Private Apartment, Paris Discover Norki, the Art of Craftsmanship for Your Finest Interior Design Projects Shaping the Exceptional From the majesty of Alpine summits to the sleek lines of urban residences, our French Maison brings exceptional spaces to life. Working in close\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/comments?post=4277"}],"version-history":[{"count":17,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4277\/revisions"}],"predecessor-version":[{"id":5184,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4277\/revisions\/5184"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=4277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=4277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=4277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}