{"id":4294,"date":"2026-06-08T12:54:47","date_gmt":"2026-06-08T10:54:47","guid":{"rendered":"https:\/\/www.norki.com\/sur-mesure\/?page_id=4294"},"modified":"2026-07-07T13:11:24","modified_gmt":"2026-07-07T11:11:24","slug":"high-end-interior-design","status":"publish","type":"page","link":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/","title":{"rendered":"Bespoke"},"content":{"rendered":"\n<!-- ==========================================\n     CSS DU COMPOSANT BANNIERE\n     ========================================== -->\n    <style>\n        :root {\n            --pro-color-text: #ffffff;\n            --pro-shadow-text: 0 2px 10px rgba(0, 0, 0, 0.3);\n        }\n\n        \/* Structure du Hero *\/\n        .pro-hero-wrapper {\n            position: relative;\n            width: 100%;\n            height: 100vh;\n            min-height: 500px;\n            overflow: hidden;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: black;\n        }\n\n        \/* Image de fond *\/\n        .pro-hero-picture {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            z-index: 1;\n        }\n\n        .pro-hero-bg {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n            object-position: center;\n            transform: scale(1.2);\n            will-change: transform;\n        }\n\n        \/* Animation de d\u00e9zoom *\/\n        .pro-hero-wrapper.is-loaded .pro-hero-bg {\n            animation: proDezoomHero 3s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;\n        }\n\n        @keyframes proDezoomHero {\n            0% { transform: scale(1.2); }\n            100% { transform: scale(1); }\n        }\n\n        \/* Overlay pour la lisibilit\u00e9 *\/\n        .pro-hero-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: linear-gradient(\n                to bottom,\n                rgba(0, 0, 0, 0.15) 0%,\n                rgba(0, 0, 0, 0.35) 50%,\n                rgba(0, 0, 0, 0.15) 100%\n            );\n            z-index: 2;\n        }\n\n        \/* Contenu textuel *\/\n        .pro-hero-content {\n            position: relative;\n            z-index: 3;\n            text-align: center;\n            color: var(--pro-color-text);\n            padding: 0 20px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n        }\n\n        .pro-hero-title {\n            line-height: 0;\n            margin: 0;\n            padding: 0;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            max-width: 856px; \n        }\n\n        .pro-title-line {\n            display: block;\n            margin-bottom: 0.2rem;\n        }\n\n        .pro-text-sans {\n            font-size: 2.8rem;\n            font-weight: 400;\n            letter-spacing: 0.02em;\n            line-height: 1.2;\n            text-shadow: var(--pro-shadow-text);\n            color: white;\n        }\n\n        .pro-text-serif {\n            font-size: 2.6rem;\n            font-weight: 400;\n            line-height: 1.2;\n            text-shadow: var(--pro-shadow-text);\n            color: white;\n        }\n\n        \/* Curseur Machine \u00e0 \u00e9crire *\/\n        .pro-typewriter-cursor::after {\n            content: '|';\n            animation: proBlinkCaret 0.8s step-end infinite;\n            font-weight: 300;\n            margin-left: 4px;\n            opacity: 0.8;\n            display: inline-block;\n        }\n\n        @keyframes proBlinkCaret {\n            0%, 100% { opacity: 1; }\n            50% { opacity: 0; }\n        }\n\n        \/* Responsive Typographie *\/\n        @media (max-width: 1024px) {\n            .pro-text-sans { font-size: 2.2rem; }\n            .pro-text-serif { font-size: 2.2rem; }\n        }\n\n        @media (max-width: 768px) {\n            .pro-text-sans { font-size: 1.6rem; }\n            .pro-text-serif { font-size: 1.8rem; }\n            .pro-hero-title { max-width: 75%; }\n        }\n\n        @media (max-width: 480px) {\n            .pro-hero-title { max-width: 85%; }\n            .pro-text-sans { \n                font-size: 1.3rem; \n                letter-spacing: 0.01em;\n            }\n            .pro-text-serif { \n                font-size: 1.4rem; \n            }\n        }\n    <\/style>\n\n    <!-- ==========================================\n         HTML DU COMPOSANT BANNIERE\n         ========================================== -->\n    <div class=\"pro-hero-wrapper\" id=\"pro-hero-banner\">\n        \n        <div class=\"pro-hero-picture\">\n            <!-- Image affich\u00e9e uniquement sur Desktop (> 768px) -->\n            <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Geste-sur-mesure-atelier-Norki.jpg\" alt=\"Bespoke creation gesture at Norki workshop\" class=\"pro-hero-bg is-desktop\" fetchpriority=\"high\" loading=\"eager\">\n        <\/div>\n        \n        <div class=\"pro-hero-overlay\" aria-hidden=\"true\"><\/div>\n\n        <div class=\"pro-hero-content\">\n            <h1 class=\"pro-hero-title\">\n                <span class=\"pro-title-line\">\n                    <span class=\"pro-text-sans pro-type-sequence\">Norki: <\/span><span class=\"pro-text-serif pro-type-sequence baskerville-italic-font\">Bespoke Craftsmanship<\/span><span class=\"pro-text-sans pro-type-sequence\"> as a Signature for Interior Design<\/span>\n                <\/span>\n            <\/h1>\n        <\/div>\n    <\/div>\n\n    <!-- ==========================================\n         JAVASCRIPT DU COMPOSANT BANNIERE\n         ========================================== -->\n    <script>\n        (function() {\n            function initBannerAnimation() {\n                const textSpans = document.querySelectorAll('.pro-type-sequence');\n                \n                \/\/ Si l'animation a d\u00e9j\u00e0 \u00e9t\u00e9 initialis\u00e9e, on emp\u00eache qu'elle se lance en double\n                if (textSpans.length > 0 && textSpans[0].hasAttribute('data-text')) return;\n\n                \/\/ 1. Lire le texte SEO pr\u00e9sent dans le HTML et vider la balise\n                textSpans.forEach(span => {\n                    span.dataset.text = span.textContent; \n                    span.textContent = ''; \n                });\n\n                \/\/ 2. D\u00e9clenchement de l'animation de d\u00e9zoom\n                const heroWrapper = document.getElementById('pro-hero-banner');\n                if (heroWrapper) {\n                    heroWrapper.classList.add('is-loaded');\n                }\n\n                \/\/ 3. Initialisation de la machine \u00e0 \u00e9crire en s\u00e9quence\n                if(textSpans.length > 0) {\n                    const speed = 40; \/\/ Vitesse de frappe (ms)\n                    let spanIndex = 0;\n                    let charIndex = 0;\n\n                    function typeWriterSequence() {\n                        if (spanIndex < textSpans.length) {\n                            const currentSpan = textSpans[spanIndex];\n                            const text = currentSpan.dataset.text || '';\n\n                            \/\/ Ignore les spans vides pour ne pas bloquer l'animation\n                            if (text.length === 0) {\n                                spanIndex++;\n                                typeWriterSequence();\n                                return;\n                            }\n\n                            if (charIndex === 0) {\n                                currentSpan.classList.add('pro-typewriter-cursor');\n                            }\n\n                            if (charIndex < text.length) {\n                                currentSpan.textContent += text.charAt(charIndex);\n                                charIndex++;\n                                setTimeout(typeWriterSequence, speed);\n                            } else {\n                                \/\/ Mot\/segment termin\u00e9, on retire le curseur\n                                currentSpan.classList.remove('pro-typewriter-cursor');\n                                spanIndex++;\n                                charIndex = 0;\n                                setTimeout(typeWriterSequence, speed);\n                            }\n                        }\n                    }\n\n                    \/\/ Lancement avec un l\u00e9ger d\u00e9lai\n                    setTimeout(typeWriterSequence, 600);\n                }\n            }\n\n            \/\/ V\u00e9rification robuste : on lance tout de suite si la page est d\u00e9j\u00e0 pr\u00eate\n            if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', initBannerAnimation);\n            } else {\n                initBannerAnimation();\n            }\n        })();\n    <\/script>\n\n\n\n<!-- ==========================================\n     STYLES DU COMPOSANT APPROCHE GLOBALE\n     ========================================== -->\n<style>\n    .norki-approche {\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        padding: var(--section-pad-v-dt, 80px) 0;\n        font-family: 'Montserrat', sans-serif;\n        font-size: 0.85rem; \/* Taille de texte par d\u00e9faut *\/\n        overflow: hidden; \/* Emp\u00eache le scroll horizontal li\u00e9 au SVG 100vw *\/\n        position: relative;\n    }\n\n    .norki-approche__container {\n        margin: 0 auto;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n    }\n\n    \/* --- Bloc Haut Droite (Texte d'intro) --- *\/\n    .norki-approche__top-text {\n        width: 45%;\n        max-width: 600px;\n        margin-left: auto; \/* Aligne le bloc \u00e0 droite *\/\n        line-height: 1.5;\n        margin-bottom: 60px;\n    }\n\n    .norki-approche__top-text p {\n        font-size: 0.95rem;\n        margin-top: 0;\n        margin-bottom: 20px;\n        font-weight: 500;\n    }\n\n    \/* --- DIRECTION ARTISTIQUE POUR LES HYPERLIENS DU TEXTE --- *\/\n    .norki-approche__link-underline {\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: 500;\n    }\n\n    .norki-approche__link-underline:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* --- Bloc Citation --- *\/\n    .norki-approche__quote-wrapper {\n        position: relative;\n        width: 60%; \/* MODIFI\u00c9 : 70% au lieu de 50% *\/\n        max-width: 690px; \/* MODIFI\u00c9 : 800px au lieu de 550px pour laisser beaucoup de place *\/\n        padding: 0 50px; \/* Espace pour les gros guillemets *\/\n        margin-left: 5%; \/* L\u00e9ger d\u00e9calage par rapport au bord gauche du container *\/\n        box-sizing: border-box;\n        margin-bottom: 20px;\n        z-index: 2;\n    }\n\n    .norki-approche__quote-wrapper::before,\n    .norki-approche__quote-wrapper::after {\n        font-family: \"Pertili\", sans-serif !important;\n        font-size: 100px;\n        line-height: 0;\n        color: black;\n        position: absolute;\n    }\n\n    .norki-approche__quote-wrapper::before {\n        content: '\\201C'; \/* text-decoration-color *\/\n        top: 30px;\n        left: 0;\n    }\n\n    .norki-approche__quote-wrapper::after {\n        content: '\\201D'; \/* text-decoration-color *\/\n        bottom: -25px;\n        right: 0;\n    }\n\n    .norki-approche__quote {\n        font-size: clamp(1rem, 2.5vw, 32px);\n        line-height: 1.3;\n        margin: 0;\n        color: black;\n        font-weight: 500;\n        text-align: center;\n    }\n\n    \/* --- Le Fil (SVG) --- *\/\n    \/* Astuce pour avoir un \u00e9l\u00e9ment 100vw centr\u00e9 qui casse le conteneur *\/\n    .norki-approche__wire {\n        width: 100vw;\n        margin-left: 50%;\n        transform: translateX(-50%);\n        box-sizing: border-box;\n        \n        \/* Contraintes demand\u00e9es : touche \u00e0 gauche, marge \u00e0 droite *\/\n        padding-left: 0; \n        padding-right: 25vw; \/* Cr\u00e9e la marge \u00e0 droite sur PC *\/\n        \n        margin-bottom: 60px;\n        z-index: 1;\n        position: relative;\n    }\n\n    .norki-approche__wire svg {\n        width: 100%;\n        height: auto;\n        display: block;\n        max-width: 60vw;\n    }\n\n    \/* --- Bloc Bas Gauche (Titre + Texte) --- *\/\n    .norki-approche__bottom-content {\n        width: 50%;\n        max-width: 700px; \n    }\n\n    .norki-approche__title {\n        font-size: clamp(1.4rem, 2.5vw, 35px); \/* Mise \u00e0 jour de la taille *\/\n        font-weight: 500;\n        line-height: 1.3;\n        margin: 0 0 30px 0;\n    }\n\n    .norki-approche__bottom-text p {\n        font-size: 0.95rem;\n        line-height: 1.5;\n        margin-top: 0;\n        margin-bottom: 20px;\n        max-width: 70%;\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - TABLETTE (< 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .norki-approche {\n            padding: var(--section-pad-v-tab, 50px) 0;\n        }\n    \n        .norki-approche__container {\n            padding: 0 var(--section-pad-h-tab, 4vw);\n        }\n\n        .norki-approche__top-text {\n            width: 60%;\n        }\n        \n        .norki-approche__top-text p {\n            font-size: 0.95rem;\n        }\n\n        .norki-approche__quote-wrapper {\n            margin-left: 0;\n            padding: 0 40px;\n        }\n\n        .norki-approche__wire {\n            padding-right: 15vw; \/* R\u00e9duit la marge droite sur tablette *\/\n        }\n\n        .norki-approche__bottom-content {\n            width: 70%;\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - MOBILE (< 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .norki-approche__wire svg {\n            max-width: none;\n        }\n        .norki-approche {\n            padding: var(--section-pad-v-mob, 40px) 0;\n        }\n\n        .norki-approche__container {\n            padding: 0 var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-approche__top-text {\n            width: 100%;\n            margin-bottom: 50px;\n        }\n\n        .norki-approche__quote-wrapper {\n            width: 100%;\n            padding: 0 35px;\n            margin-bottom: 0;\n            text-align: center;\n        }\n\n        .norki-approche__quote-wrapper::before,\n        .norki-approche__quote-wrapper::after {\n            font-size: 80px;\n        }\n        .norki-approche__quote-wrapper::before { top: 30px; }\n\n        .norki-approche__wire {\n            \/* Contrainte Mobile : Le fil touche les 2 c\u00f4t\u00e9s de l'\u00e9cran *\/\n            padding-right: 0; \n            margin-top: 10px;\n            margin-bottom: 50px;\n        }\n\n        .norki-approche__bottom-content {\n            width: 100%;\n        }\n\n        .norki-approche__title {\n            margin-bottom: 20px;\n        }\n    }\n<\/style>\n\n<!-- ==========================================\n     HTML DU COMPOSANT APPROCHE GLOBALE\n     ========================================== -->\n<section class=\"norki-approche\">\n    \n    <!-- Bloc Haut (Texte Intro) & Citation -->\n    <div class=\"norki-approche__container\">\n        \n        <div class=\"norki-approche__top-text\">\n            <p>In every interior design project, working hand-in-hand with interior architects and private clients, our Maison envisions and crafts unique creations.<\/p>\n            <p>From <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"norki-approche__link-underline\">exclusive furniture<\/a> and <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"norki-approche__link-underline\">custom window treatments<\/a> to <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"norki-approche__link-underline\">bespoke rugs<\/a>, each piece is part of a global approach. Our signature is defined by uncompromising standards, precision, and a meticulous eye for detail.<\/p>\n        <\/div>\n\n        <div class=\"norki-approche__quote-wrapper\">\n            <p class=\"norki-approche__quote baskerville-italic-font\">\n                Within our Maison,<br>\n                the luxury of bespoke creation is an absolute standard.\n            <\/p>\n        <\/div>\n\n    <\/div>\n\n    <!-- Le Fil SVG (Sorti du conteneur classique pour toucher les bords \u00e9cran) -->\n    <div class=\"norki-approche__wire\">\n        <!-- CORRECTION : viewBox largeur passe de 1234.67 \u00e0 1204.86 pour coller au bout du trac\u00e9 -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1204.86 242.67\" aria-hidden=\"true\" preserveAspectRatio=\"xMinYMid meet\">\n            <path fill=\"none\" stroke=\"#000\" stroke-width=\"0.5\" stroke-miterlimit=\"10\" d=\"M-24.54,126.58S102.23,55.61,222.28,61.54c144,7.11,169.83,48.84,260.39,53.53,120.89,6.26,131.55-43.52,118.15-69.86-11.73-23.06-65.98-27.7-100.73,5.35s-25.94,109.5,39.47,140.09c55.11,25.78,127.97,40.27,248.89,25.26,74.67-9.26,137.09-41.27,202.67-64.38s131.92-13.78,213.74,15.81\"><\/path>\n        <\/svg>\n    <\/div>\n\n    <!-- Bloc Bas (Titre + Texte) -->\n    <div class=\"norki-approche__container\">\n        \n        <div class=\"norki-approche__bottom-content\">\n            <h2 class=\"norki-approche__title\">A Holistic Approach to Bespoke Design: From Furniture to Rugs &amp; Curtains to Cushions<\/h2>\n            <div class=\"norki-approche__bottom-text\">\n                <p>At Norki, bespoke design goes beyond a single object: it is part of a broader vision.<\/p>\n                <p>Exclusive furniture, <a href=\"#selected-textiles\" class=\"norki-approche__link-underline\">selected textiles<\/a> or bespoke fur and leather rugs... every creation is designed to compliment the others, in perfect harmony.<\/p>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n<\/section>\n\n\n\n<style>\n    \/* Ajout du d\u00e9filement fluide pour les ancres sur toute la page *\/\n    html {\n        scroll-behavior: smooth;\n    }\n\n    \/* ==========================================================================\n       SECTION CARROUSEL SERVICES (Tapisserie, Tapis, Couture, Fourrure)\n       ========================================================================== *\/\n\n    .norki-cs {\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        padding: var(--section-pad-v-dt, 80px) 0 40px;\n        font-family: 'Montserrat', sans-serif;\n        overflow: hidden;\n        position: relative;\n        padding-top: 0;\n        z-index: 10;\n        box-sizing: border-box;\n    }\n\n    .norki-cs * {\n        box-sizing: border-box;\n    }\n\n    \/* Le conteneur du carrousel *\/\n    .norki-cs-viewport {\n        width: 100%;\n        overflow: hidden;\n        touch-action: pan-y; \/* Permet le scroll vertical, bloque le natif horizontal *\/\n        cursor: grab;\n        position: relative;\n    }\n\n    .norki-cs-viewport:active {\n        cursor: grabbing;\n    }\n\n    .norki-cs-track {\n        display: flex;\n        align-items: stretch; \/* Permet \u00e0 toutes les slides d'avoir la hauteur de la plus grande *\/\n        will-change: transform;\n    }\n\n    \/* La Slide (En-t\u00eate + Image) *\/\n    .norki-cs-slide {\n        flex: 0 0 25%; \/* 4 \u00e9l\u00e9ments sur Desktop *\/\n        display: flex;\n        flex-direction: column;\n        padding: 0 1px; \/* Cr\u00e9er un gap de 2px entre les images *\/\n    }\n\n    .norki-cs-header {\n        text-align: center;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        flex-grow: 1; \/* Remplit tout l'espace disponible au-dessus de l'image *\/\n        padding: 0 10px 25px; \/* Le padding-bottom cr\u00e9e l'espace r\u00e9gulier avant la photo *\/\n    }\n\n    .norki-cs-title {\n        font-size: clamp(1.4rem, 2vw, 28px);\n        font-weight: 400;\n        margin: 0 0 15px 0; \/* Ajout du margin-bottom sous le titre *\/\n        color: black;\n        line-height: 1.2;\n        display: block; \/* S'assure que le span se comporte comme un bloc *\/\n    }\n\n    \/* Le lien \"D\u00e9couvrir\" *\/\n    .norki-cs-link {\n        font-size: 0.95rem;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 3px;\n        text-decoration-thickness: 1px;\n        color: black;\n        margin-top: auto; \/* Pousse toujours le lien tout en bas de l'en-t\u00eate (aligne avec les autres) *\/\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n        font-weight: 500;\n    }\n\n    .norki-cs-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* Le conteneur d'image *\/\n    .norki-cs-img-wrapper {\n        display: block;\n        width: 100%;\n        position: relative;\n        aspect-ratio: 4 \/ 5; \/* Ratio proportionn\u00e9 pour le rendu portrait *\/\n        overflow: hidden;\n        flex-shrink: 0; \/* Emp\u00eache l'image de s'\u00e9craser si le texte est tr\u00e8s long *\/\n        border-radius: 4px; \/* Finition bords arrondis l\u00e9gers *\/\n    }\n\n    .norki-cs-img-wrapper img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        background-color: #e5dfd9; \/* Fond d'attente harmonieux *\/\n        opacity: 0;\n        transition: opacity 0.6s ease-in-out, transform 0.6s ease;\n        display: block;\n        will-change: opacity, transform;\n    }\n    \n    .norki-cs-img-wrapper img.norki-loaded {\n        opacity: 1;\n    }\n\n    \/* Zoom sur l'image au survol de la bo\u00eete *\/\n    .norki-cs-img-wrapper:hover img.norki-loaded {\n        transform: scale(1.03);\n    }\n\n    \/* Fl\u00e8ches de navigation (Masqu\u00e9es sur PC, visibles Tablettes\/Mobiles) *\/\n    .norki-cs-controls {\n        display: none; \/* Masqu\u00e9 par d\u00e9faut (Desktop) *\/\n        position: absolute;\n        top: 0; \/* Align\u00e9 sur le haut de la section \/ du titre *\/\n        left: 0;\n        width: 100%;\n        z-index: 20;\n        pointer-events: none; \/* Laisse passer les clics (swipe ou clics sur le texte) au milieu *\/\n    }\n\n    .norki-cs-arrows {\n        display: flex;\n        justify-content: space-between; \/* Place une fl\u00e8che \u00e0 gauche, l'autre \u00e0 droite *\/\n        width: 100%;\n    }\n\n    .norki-cs-arrows button {\n        pointer-events: auto; \/* R\u00e9active le clic sur les boutons sp\u00e9cifiquement *\/\n        background: none;\n        border: none;\n        color: black;\n        cursor: pointer;\n        padding: 10px; \/* Zone de clic \u00e9largie sans modifier la taille visuelle de la fl\u00e8che *\/\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: opacity 0.3s ease;\n    }\n\n    @media (hover: hover) {\n        .norki-cs-arrows button:hover { opacity: 0.6; }\n    }\n    .norki-cs-arrows button:active { opacity: 0.6; }\n\n    .norki-cs-arrows svg {\n        width: 28px;\n        height: 28px;\n        fill: none;\n        stroke: currentColor;\n        stroke-width: 1.2;\n    }\n\n    \/* Ligne de texte inf\u00e9rieure (Footer) *\/\n    .norki-cs-footer {\n        display: flex;\n        justify-content: flex-end;\n        align-items: center;\n        flex-wrap: wrap;\n        gap: 3vw;\n        padding: 40px var(--section-pad-h-dt, 5vw) 0;\n        font-size: 0.95rem;\n    }\n\n    \/* Effet Hover invers\u00e9 pour les liens du footer *\/\n    .norki-cs-footer a {\n        color: black;\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: 500;\n    }\n\n    .norki-cs-footer a:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - TABLETTE (< 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .norki-cs-slide {\n            flex: 0 0 50%; \/* 2 \u00e9l\u00e9ments sur tablette *\/\n        }\n        \n        .norki-cs-controls {\n            display: block; \/* Affichage des contr\u00f4les en absolu *\/\n            padding-left: 10px; \/* Marges pour ne pas toucher physiquement le bord de l'\u00e9cran *\/\n            padding-right: 10px;\n            top: 5px; \/* Centrage vertical avec la 1\u00e8re ligne du texte *\/\n        }\n\n        .norki-cs-footer {\n            justify-content: center;\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - MOBILE (< 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .norki-cs {\n            padding: var(--section-pad-v-mob, 50px) 0 20px;\n            padding-top: 0;\n        }\n        \n        .norki-cs-slide {\n            flex: 0 0 100%; \/* 1 \u00e9l\u00e9ment sur mobile *\/\n            padding: 0; \/* Pas de gap n\u00e9cessaire, prend toute la largeur *\/\n        }\n\n        .norki-cs-header {\n            padding: 0 45px 20px; \/* Padding lat\u00e9ral augment\u00e9 pour ne pas que le titre passe sous les fl\u00e8ches *\/\n        }\n\n        .norki-cs-title {\n            margin-bottom: 15px; \/* Ajustement de l'espace entre titre et lien sur mobile *\/\n        }\n\n        .norki-cs-img-wrapper {\n            aspect-ratio: 1 \/ 1.1; \/* Un peu plus carr\u00e9 sur mobile pour ne pas \u00eatre trop haut *\/\n        }\n\n        .norki-cs-controls {\n            padding-left: 0px; \/* Plus proche des bords sur mobile *\/\n            padding-right: 0px;\n            top: -2px; \/* Ajustement vertical pour le titre mobile *\/\n        }\n\n        .norki-cs-footer {\n            gap: 15px;\n            font-size: 0.8rem;\n            padding: 30px var(--section-pad-h-mob, 20px) 0;\n        }\n    }\n<\/style>\n\n<section class=\"norki-cs\">\n    \n    <!-- Contr\u00f4les du Carrousel (Fl\u00e8ches - Positionn\u00e9es en absolute par dessus) -->\n    <div class=\"norki-cs-controls\">\n        <div class=\"norki-cs-arrows\">\n            <button class=\"norki-cs-prev\" aria-label=\"Previous\">\n                <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n            <\/button>\n            <button class=\"norki-cs-next\" aria-label=\"Next\">\n                <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n            <\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Le Carrousel -->\n    <div class=\"norki-cs-viewport\">\n        <div class=\"norki-cs-track\">\n            \n            <!-- SLIDE 1 -->\n            <div class=\"norki-cs-slide\">\n                <div class=\"norki-cs-header\">\n                    <span class=\"norki-cs-title baskerville-italic-font\">Bespoke Upholstery<\/span>\n                    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"norki-cs-link\">Discover<\/a>\n                <\/div>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"norki-cs-img-wrapper\" tabindex=\"-1\">\n                    <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Upholstery-bespoke-norki-sofa.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Norki Bespoke Upholstery\">\n                <\/a>\n            <\/div>\n\n            <!-- SLIDE 2 -->\n            <div class=\"norki-cs-slide\">\n                <div class=\"norki-cs-header\">\n                    <span class=\"norki-cs-title baskerville-italic-font\">Bespoke Rugs<\/span>\n                    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"norki-cs-link\">Discover<\/a>\n                <\/div>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"norki-cs-img-wrapper\" tabindex=\"-1\">\n                    <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Bespoke-Rug-know-how.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Norki Custom Rugs\">\n                <\/a>\n            <\/div>\n\n            <!-- SLIDE 3 -->\n            <div class=\"norki-cs-slide\">\n                <div class=\"norki-cs-header\">\n                    <span class=\"norki-cs-title baskerville-italic-font\">Soft Furnishings<\/span>\n                    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"norki-cs-link\">Discover<\/a>\n                <\/div>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"norki-cs-img-wrapper\" tabindex=\"-1\">\n                    <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Atelier-Couture-Ameublement-Sur-Mesure.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Norki Soft Furnishing &#038; Curtains\">\n                <\/a>\n            <\/div>\n\n            <!-- SLIDE 4 -->\n            <div class=\"norki-cs-slide\">\n                <div class=\"norki-cs-header\">\n                    <span class=\"norki-cs-title baskerville-italic-font\">Fur Couture<\/span>\n                    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/sewing-fur-epv\/\" class=\"norki-cs-link\">Discover<\/a>\n                <\/div>\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/sewing-fur-epv\/\" class=\"norki-cs-img-wrapper\" tabindex=\"-1\">\n                    <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Savoir-faire-couture-fourrure-sur-assise.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Norki Fur Couture\">\n                <\/a>\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n    <!-- Ticker texte inf\u00e9rieur cliquable avec liens d'ancrage du sitemap -->\n    <div class=\"norki-cs-footer\">\n        <a href=\"#bespoke-embroidery\">Bespoke Embroidery<\/a>\n        <a href=\"#artisans-network\">Artisans Network<\/a>\n        <a href=\"#design-studio\">Design Studio<\/a>\n        <a href=\"#interior-design\">Interior Design<\/a>\n    <\/div>\n\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        const track = document.querySelector('.norki-cs-track');\n        const originalSlides = Array.from(document.querySelectorAll('.norki-cs-slide'));\n        const totalOriginal = originalSlides.length;\n\n        \/\/ 1. Clonage pour l'effet de boucle infinie (Swipe Mobile\/Tablette)\n        originalSlides.forEach(slide => {\n            const clone = slide.cloneNode(true);\n            clone.setAttribute('aria-hidden', 'true');\n            \/\/ D\u00e9sactivation du focus clavier pour les \u00e9l\u00e9ments clon\u00e9s (s\u00e9curit\u00e9 accessibilit\u00e9)\n            clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n            track.appendChild(clone);\n        });\n        originalSlides.slice().reverse().forEach(slide => {\n            const clone = slide.cloneNode(true);\n            clone.setAttribute('aria-hidden', 'true');\n            clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n            track.insertBefore(clone, track.firstChild);\n        });\n\n        \/\/ 2. D\u00e9tection du nombre de slides par vue\n        const getSlidesPerView = () => {\n            if (window.innerWidth > 1024) return 4; \/\/ PC\n            if (window.innerWidth > 768) return 2;  \/\/ Tablette\n            return 1;                               \/\/ Mobile\n        };\n\n        let slidesPerView = getSlidesPerView();\n        let currentIndex = totalOriginal; \/\/ D\u00e9marre sur la premi\u00e8re vraie slide (index 4)\n        let isAnimating = false;\n\n        const updateCarousel = (instant = false) => {\n            const itemWidth = 100 \/ slidesPerView;\n            track.style.transition = instant ? 'none' : 'transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)';\n            track.style.transform = `translateX(-${currentIndex * itemWidth}%)`;\n        };\n\n        \/\/ Positionnement initial\n        updateCarousel(true);\n\n        const moveNext = () => {\n            if (isAnimating) return;\n            isAnimating = true;\n            currentIndex++;\n            updateCarousel();\n        };\n\n        const movePrev = () => {\n            if (isAnimating) return;\n            isAnimating = true;\n            currentIndex--;\n            updateCarousel();\n        };\n\n        \/\/ Boutons fl\u00e8ches\n        const nextBtn = document.querySelector('.norki-cs-next');\n        const prevBtn = document.querySelector('.norki-cs-prev');\n        if (nextBtn) nextBtn.addEventListener('click', moveNext);\n        if (prevBtn) prevBtn.addEventListener('click', movePrev);\n\n        \/\/ R\u00e9initialisation discr\u00e8te pour cr\u00e9er la boucle infinie\n        track.addEventListener('transitionend', (e) => {\n            if (e.propertyName !== 'transform') return;\n            isAnimating = false;\n            \n            if (currentIndex <= 0) {\n                currentIndex = totalOriginal;\n                updateCarousel(true);\n            } \n            else if (currentIndex >= totalOriginal * 2) {\n                currentIndex = totalOriginal;\n                updateCarousel(true);\n            }\n        });\n\n        \/\/ Ajustement au redimensionnement\n        window.addEventListener('resize', () => {\n            const newSlidesPerView = getSlidesPerView();\n            if (newSlidesPerView !== slidesPerView) {\n                slidesPerView = newSlidesPerView;\n                updateCarousel(true);\n            }\n        });\n\n        \/\/ 3. Gestion du glissement (Swipe Touch + Drag Souris)\n        let isDragging = false;\n        let startX = 0;\n        let endX = 0;\n        const swipeThreshold = 40; \n\n        const handleDragStart = (e) => {\n            if (e.type === 'mousedown') e.preventDefault(); \/\/ Pr\u00e9vient la s\u00e9lection de texte\n            startX = e.type.includes('touch') ? e.touches[0].clientX : e.clientX;\n            isDragging = true;\n        };\n\n        const handleDragEnd = (e) => {\n            if (!isDragging) return;\n            isDragging = false;\n            endX = e.type.includes('touch') ? e.changedTouches[0].clientX : e.clientX;\n            handleSwipe();\n        };\n\n        const handleSwipe = () => {\n            const diff = startX - endX;\n            if (Math.abs(diff) > swipeThreshold) {\n                if (diff > 0) moveNext(); \/\/ Vers la gauche\n                else movePrev();          \/\/ Vers la droite\n            }\n        };\n\n        \/\/ \u00c9v\u00e9nements Tactiles\n        track.addEventListener('touchstart', handleDragStart, { passive: true });\n        track.addEventListener('touchend', handleDragEnd);\n        \n        \/\/ \u00c9v\u00e9nements Souris (Pour desktop)\n        track.addEventListener('mousedown', handleDragStart);\n        track.addEventListener('mouseup', handleDragEnd);\n        track.addEventListener('mouseleave', handleDragEnd);\n\n        \/\/ 4. Lazy Loading des images (Intersection Observer)\n        const observerOptions = {\n            root: null,\n            rootMargin: '0px 100% 0px 100%', \n            threshold: 0\n        };\n\n        const imageObserver = new IntersectionObserver((entries, observer) => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    const img = entry.target;\n                    if (img.dataset.src) {\n                        img.onload = () => img.classList.add('norki-loaded');\n                        img.src = img.dataset.src;\n                        img.removeAttribute('data-src');\n                        observer.unobserve(img);\n                    }\n                }\n            });\n        }, observerOptions);\n        \n        document.querySelectorAll('.norki-cs-slide img').forEach(img => {\n            imageObserver.observe(img);\n        });\n    });\n<\/script>\n\n\n\n<!-- ==========================================\n     STYLES DU COMPOSANT APPROCHE GLOBALE\n     ========================================== -->\n<style>\n    \/* ==========================================================================\n       SECTION BRODERIE (Texte statique + Slider Automatique)\n       ========================================================================== *\/\n\n    .norki-brod {\n        background-color: var(--color-norki-brown, #50423d);\n        color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) 0;\n        font-family: 'Montserrat', 'AvenirBook', sans-serif;\n        font-size: 0.95rem; \/* Taille par d\u00e9faut \u00e0 0.95rem *\/\n        z-index: 15;\n        box-sizing: border-box;\n        position: sticky;   \n        top: -40vh;              \n    }\n\n    .norki-brod * {\n        box-sizing: border-box;\n    }\n\n    .norki-brod__container {\n        display: flex;\n        align-items: stretch;\n        margin: 0 auto;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        gap: 60px;\n    }\n\n    \/* --- GAUCHE : Contenu Texte --- *\/\n    .norki-brod__content {\n        width: 58%;\n        display: flex;\n        flex-direction: column;\n        padding-bottom: 20px;\n    }\n\n    \/* Top : Titre Principal + Ligne + Intro *\/\n    .norki-brod__top {\n        margin-bottom: 40px;\n    }\n\n    .norki-brod__main-title {\n        font-size: clamp(1.4rem, 2.5vw, 35px); \/* Taille demand\u00e9e *\/\n        font-weight: 500;\n        line-height: 1.2;\n        margin: 0 0 20px 0;\n        color: inherit;\n    }\n\n    .norki-brod__main-title span {\n        display: block;\n    }\n    \n    .norki-brod__separator {\n        border: none;\n        border-top: 1px solid rgba(248, 240, 234, 0.4);\n        margin: 0;\n        width: 100%;\n    }\n\n    .norki-brod__intro {\n        line-height: 1.5;\n        margin-top: 25px;\n        margin-bottom: 0;\n        font-size: 0.95rem;\n    }\n\n    \/* DIRECTION ARTISTIQUE DES INLINE LINKS *\/\n    .norki-brod__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: 500;\n    }\n\n    .norki-brod__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* Bottom : Deux colonnes de texte pour les 2 types de broderie *\/\n    .norki-brod__bottom {\n        display: flex;\n        gap: 40px;\n        align-items: flex-start;\n    }\n\n    .norki-brod__text-col {\n        width: 50%;\n    }\n\n    .norki-brod__dyn-title {\n        font-size: clamp(1.3rem, 1.8vw, 24px);\n        font-weight: 400;\n        margin: 0 0 15px 0;\n        line-height: 1.2;\n        color: inherit;\n    }\n\n    .norki-brod__text-col p {\n        line-height: 1.5;\n        margin: 0;\n        font-size: 0.95rem;\n    }\n\n    \/* --- DROITE : Image Slider Automatique --- *\/\n    .norki-brod__image-wrapper {\n        width: 42%;\n        aspect-ratio: 4 \/ 4.5;\n        background-color: #3d322e; \/* Fond placeholder sombre *\/\n        overflow: hidden;\n        position: relative;\n    }\n\n    .norki-brod-slide {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        opacity: 0;\n        transition: opacity 1.2s ease-in-out; \/* Fondu fluide \u00e9l\u00e9gant *\/\n        display: block;\n        z-index: 1;\n    }\n\n    .norki-brod-slide.is-active {\n        opacity: 1;\n        z-index: 2;\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - TABLETTE (< 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .norki-brod__container {\n            flex-direction: column;\n            gap: 40px;\n        }\n\n        .norki-brod__content {\n            width: 100%;\n        }\n\n        .norki-brod__bottom {\n            gap: 30px;\n            align-items: flex-start;\n        }\n\n        .norki-brod__image-wrapper {\n            width: 100%;\n            aspect-ratio: 16 \/ 9; \/* Image plus large sur tablette *\/\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - MOBILE (< 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .norki-brod {\n            padding: var(--section-pad-v-mob, 50px) 0;\n        }\n\n        .norki-brod__container {\n            padding: 0 var(--section-pad-h-mob, 20px);\n            gap: 30px;\n        }\n\n        .norki-brod__top {\n            margin-bottom: 30px;\n        }\n\n        .norki-brod__bottom {\n            flex-direction: column;\n            gap: 30px;\n            align-items: stretch;\n        }\n\n        .norki-brod__text-col {\n            width: 100%;\n        }\n            \n        .norki-brod__image-wrapper {\n            aspect-ratio: 4 \/ 5;\n        }\n    }\n<\/style>\n\n<section class=\"norki-brod\" id=\"bespoke-embroidery\">\n    <div class=\"norki-brod__container\">\n        \n        <!-- Colonne Gauche : Textes -->\n        <div class=\"norki-brod__content\">\n            \n            <div class=\"norki-brod__top\">\n                <h2 class=\"norki-brod__main-title\">\n                    <span>Bespoke Embroidery:<\/span>\n                    <span class=\"baskerville-italic-font\">From Haute Couture Craftsmanship to Signature Design<\/span>\n                <\/h2>\n                <hr class=\"norki-brod__separator\">\n                <p class=\"norki-brod__intro\">Within our Maison, <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-haute-couture-embroidery\/\" class=\"norki-brod__inline-link\">bespoke embroidery<\/a> is expressed through two complementary artistic styles:<\/p>\n            <\/div>\n\n            <div class=\"norki-brod__bottom\">\n                \n                <!-- Bloc 1 : Lun\u00e9ville -->\n                <div class=\"norki-brod__text-col\">\n                    <h3 class=\"norki-brod__dyn-title baskerville-italic-font\">Lun\u00e9ville Embroidery<\/h3>\n                    <p>Lun\u00e9ville embroidery, entirely handcrafted, embodies the exacting standards of Haute Couture to create exceptional pieces with a unique signature.<\/p>\n                <\/div>\n\n                <!-- Bloc 2 : Machine -->\n                <div class=\"norki-brod__text-col\">\n                    <h3 class=\"norki-brod__dyn-title baskerville-italic-font\">Machine Embroidery<\/h3>\n                    <p>Precision machine embroidery allows for the flawless personalization of every creation\u2014initials, names, or logos\u2014executed with perfect accuracy and elegance.<\/p>\n                <\/div>\n\n                <!-- Note: The French version of machine embroidery description had been completely matched to translate as validated in the brand guidelines document -->\n\n            <\/div>\n        <\/div>\n\n        <!-- Colonne Droite : Slider Image Automatique -->\n        <div class=\"norki-brod__image-wrapper\" id=\"norki-brod-slider\">\n            <!-- Image 1 -->\n            <img decoding=\"async\" class=\"norki-brod-slide is-active\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Custom-luneville-embroidery.jpg\" alt=\"Bespoke Lun\u00e9ville embroidery detail\" loading=\"lazy\">\n            <!-- Image 2 -->\n            <img decoding=\"async\" class=\"norki-brod-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Broderie-machine-personnalisee.jpg\" alt=\"Machine embroidery detail\" loading=\"lazy\">\n            <!-- Image 3 -->\n            <img decoding=\"async\" class=\"norki-brod-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/initiales-brodees-sur-mesure.jpg\" alt=\"Bespoke embroidered initials\" loading=\"lazy\">\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        \/\/ --- 1. Gestion du Sticky ---\n        function adjustStickyTop() {\n            const brod = document.querySelector('.norki-brod');\n            if (!brod) return;\n            const windowHeight = window.innerHeight;\n            const sectionHeight = brod.offsetHeight;\n            \n            \/\/ Le top n\u00e9gatif = diff\u00e9rence entre la hauteur de la section et la hauteur de l'\u00e9cran\n            const topValue = Math.min(0, windowHeight - sectionHeight);\n            brod.style.top = topValue + 'px';\n        }\n\n        \/\/ Au chargement et au resize\n        adjustStickyTop();\n        window.addEventListener('resize', adjustStickyTop);\n\n        \/\/ --- 2. Gestion du Slider Automatique ---\n        const slides = document.querySelectorAll('.norki-brod-slide');\n        \n        if (slides.length > 1) {\n            let currentIndex = 0;\n            const intervalTime = 4000; \/\/ Changement d'image toutes les 4 secondes\n\n            const nextSlide = () => {\n                slides[currentIndex].classList.remove('is-active');\n                currentIndex = (currentIndex + 1) % slides.length;\n                slides[currentIndex].classList.add('is-active');\n            };\n\n            setInterval(nextSlide, intervalTime);\n        }\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION R\u00c9SEAU ARTISANS & \u00c9DITEURS (Slider Automatique)\n       ========================================================================== *\/\n\n    .norki-ra {\n        background-color: var(--color-norki-brown, #50423d);\n        color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) 0;\n        font-family: 'Montserrat', 'AvenirBook', sans-serif;\n        font-size: 0.85rem;\n        position: sticky;\n        top: 0;\n        z-index: 20;\n        box-sizing: border-box;\n        box-shadow: 0 -17px 24px 0px rgba(0, 0, 0, 0.35);\n    }\n\n    .norki-ra * {\n        box-sizing: border-box;\n    }\n\n    .norki-ra__container {\n        display: flex;\n        align-items: stretch;\n        margin: 0 auto;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        gap: 60px;\n    }\n\n    \/* --- GAUCHE : Contenu Texte --- *\/\n    .norki-ra__content {\n        width: 58%;\n        display: flex;\n        flex-direction: column;\n        padding-bottom: 20px;\n    }\n\n    \/* Top : Titre Principal + Ligne *\/\n    .norki-ra__top {\n        margin-bottom: 60px;\n    }\n\n    .norki-ra__main-title {\n        font-size: clamp(1.4rem, 2.2vw, 30px);\n        font-weight: 500;\n        line-height: 1.2;\n        margin: 0 0 20px 0;\n        color: inherit;\n    }\n    .norki-ra__line-1 { display: block; }\n    .norki-ra__line-2 { display: block; }\n\n    .norki-ra__separator {\n        border: none;\n        border-top: 1px solid rgba(248, 240, 234, 0.4); \/* Ligne fine et discr\u00e8te *\/\n        margin: 0;\n        width: 100%;\n    }\n\n    \/* DIRECTION ARTISTIQUE DES INLINE LINKS *\/\n    .norki-ra__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: 500;\n    }\n\n    .norki-ra__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* Bottom : Deux colonnes de texte *\/\n    .norki-ra__bottom {\n        display: flex;\n        gap: 40px;\n    }\n\n    .norki-ra__text-col {\n        width: 50%;\n    }\n\n    .norki-ra__text-col p {\n        line-height: 1.5;\n        margin-top: 0;\n        margin-bottom: 20px;\n    }\n\n    .norki-ra__text-col p:last-child {\n        margin-bottom: 0;\n    }\n\n    \/* --- DROITE : Image Slider Automatique --- *\/\n    .norki-ra__image-wrapper {\n        width: 42%;\n        aspect-ratio: 4 \/ 4.5;\n        background-color: #3d322e; \/* Fond placeholder sombre *\/\n        overflow: hidden;\n        position: relative;\n    }\n\n    .norki-ra-slide {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        opacity: 0;\n        transition: opacity 1.2s ease-in-out; \/* Fondu fluide tr\u00e8s \u00e9l\u00e9gant *\/\n        display: block;\n        z-index: 1;\n    }\n\n    .norki-ra-slide.is-active {\n        opacity: 1;\n        z-index: 2;\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - TABLETTE (< 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .norki-ra__container {\n            flex-direction: column;\n            gap: 40px;\n        }\n\n        .norki-ra__content {\n            width: 100%;\n        }\n\n        .norki-ra__bottom {\n            gap: 30px;\n            align-items: flex-start; \/* Sur tablette on n'a plus l'image \u00e0 c\u00f4t\u00e9 pour s'aligner en bas *\/\n        }\n\n        .norki-ra__image-wrapper {\n            width: 100%;\n            aspect-ratio: 16 \/ 9; \/* Image plus large sur tablette *\/\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - MOBILE (< 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .norki-ra {\n            padding: var(--section-pad-v-mob, 50px) 0;\n            padding-top: 55px;\n        }\n\n        .norki-ra__container {\n            padding: 0 var(--section-pad-h-mob, 20px);\n            gap: 30px;\n        }\n\n        .norki-ra__top {\n            margin-bottom: 30px;\n        }\n\n        .norki-ra__bottom {\n            flex-direction: column;\n            gap: 20px;\n            align-items: stretch;\n        }\n\n        .norki-ra__text-col {\n            width: 100%;\n        }\n            \n        .norki-ra__image-wrapper {\n            aspect-ratio: 4 \/ 5;\n        }\n    }\n<\/style>\n\n<section class=\"norki-ra\" id=\"artisans-network\">\n    <div class=\"norki-ra__container\">\n        \n        <!-- Colonne Gauche : Textes -->\n        <div class=\"norki-ra__content\">\n            \n            <div class=\"norki-ra__top\">\n                <h2 class=\"norki-ra__main-title\">\n                    <span class=\"norki-ra__line-1\">A Network of Exceptional Artisans<\/span>\n                    <span class=\"norki-ra__line-2\">and Fabric Editors <span class=\"baskerville-italic-font\">of Eminence<\/span><\/span>\n                <\/h2>\n                <hr class=\"norki-ra__separator\">\n            <\/div>\n\n            <div class=\"norki-ra__bottom\">\n                \n                <div class=\"norki-ra__text-col\">\n                    <p>While our Maison is internationally renowned for its mastery of <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/sewing-fur-epv\/\" class=\"norki-ra__inline-link\">hides and furs<\/a>, we have also developed specialized expertise in fine fabrics, affirming a complete mastery of materials.<\/p>\n                    <p>Our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"norki-ra__inline-link\">Couture<\/a> and <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"norki-ra__inline-link\">Upholstery Ateliers<\/a> collaborate with the world's most prestigious fabric houses. From Loro Piana to Pierre Frey and Leli\u00e8vre to Samuel &amp; Sons or JAB, these legendary names grant us full access to their complete collections.<\/p>\n                <\/div>\n\n                <div class=\"norki-ra__text-col\">\n                    <p>Over the years, Norki has also built an exclusive network of partner artisans, each a master of their craft. From bronze, glass, and metalwork to specialized custom finishes: every skill is rigorously selected to meet our exacting standards.<\/p>\n                    <p>This synergy breathes life into unique projects, where every element is designed with perfect aesthetic and technical coherence by our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-interior-design-studio-furniture-rugs\/\" class=\"norki-ra__inline-link\">in-house Design Studio<\/a>.<\/p>\n                <\/div>\n\n            <\/div>\n        <\/div>\n\n        <!-- Colonne Droite : Slider Image Automatique -->\n        <div class=\"norki-ra__image-wrapper\" id=\"norki-ra-slider\">\n            <img decoding=\"async\" class=\"norki-ra-slide is-active\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-fabric-manufacturers-rolls.jpg\" alt=\"Norki exceptional fabric editors\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-ra-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tailor-made-bronze-seat.jpg\" alt=\"Bespoke bronze work\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-ra-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Plaque-verre-decorative-sur-mesure.jpg\" alt=\"Bespoke decorative glass panel\" loading=\"lazy\">\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        \/\/ --- 1. Gestion du Sticky Blocs ---\n        function adjustStickyTopRa() {\n            const raSection = document.querySelector('.norki-ra');\n            if (!raSection) return;\n            const windowHeight = window.innerHeight;\n            const sectionHeight = raSection.offsetHeight;\n            \n            const topValue = Math.min(0, windowHeight - sectionHeight);\n            raSection.style.top = topValue + 'px';\n        }\n\n        adjustStickyTopRa();\n        window.addEventListener('resize', adjustStickyTopRa);\n\n        \/\/ --- 2. Gestion du Slider Automatique ---\n        const slides = document.querySelectorAll('.norki-ra-slide');\n        \n        if (slides.length > 1) {\n            let currentIndex = 0;\n            const intervalTime = 4000; \/\/ Changement d'image toutes les 4 secondes (4000ms)\n\n            const nextSlide = () => {\n                slides[currentIndex].classList.remove('is-active');\n                currentIndex = (currentIndex + 1) % slides.length;\n                slides[currentIndex].classList.add('is-active');\n            };\n\n            setInterval(nextSlide, intervalTime);\n        }\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION BUREAU D'\u00c9TUDES (Slider Automatique)\n       ========================================================================== *\/\n\n    .norki-be {\n        background-color: var(--color-norki-brown, #50423d);\n        color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) 0;\n        font-family: 'Montserrat', 'AvenirBook', sans-serif;\n        font-size: 0.85rem;\n        position: relative;\n        z-index: 25;\n        box-sizing: border-box;\n        box-shadow: 0 -17px 24px 0px rgba(0, 0, 0, 0.35);\n    }\n\n    .norki-be * {\n        box-sizing: border-box;\n    }\n\n    .norki-be__container {\n        display: flex;\n        align-items: stretch;\n        margin: 0 auto;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        gap: 60px;\n    }\n\n    \/* --- GAUCHE : Contenu Texte --- *\/\n    .norki-be__content {\n        width: 58%;\n        display: flex;\n        flex-direction: column;\n        padding-bottom: 5px; \/* Aligne visuellement le bas du texte avec le bas de l'image *\/\n    }\n\n    \/* Titre Principal + Ligne *\/\n    .norki-be__title-block {\n        margin-bottom: 50px;\n    }\n\n    .norki-be__main-title {\n        font-size: clamp(1.4rem, 2.2vw, 32px);\n        font-weight: 400;\n        line-height: 1.1;\n        margin: 0 0 25px 0;\n        color: inherit;\n    }\n\n    .norki-be__line-1 { display: block; margin-bottom: 8px; font-family: 'AvenirMedium', sans-serif; }\n    .norki-be__line-2 { display: block; font-weight: normal; }\n    \n    .norki-be__separator {\n        border: none;\n        border-top: 1px solid rgba(248, 240, 234, 0.4);\n        margin: 0;\n        width: 100%;\n    }\n\n    \/* Paragraphes *\/\n    .norki-be__paragraphs {\n        max-width: 57%; \/* \u00c9vite que le texte ne s'\u00e9tire trop en largeur *\/\n    }\n\n    .norki-be__paragraphs p {\n        line-height: 1.6;\n        margin-top: 0;\n        margin-bottom: 20px;\n        font-size: 0.95rem;\n    }\n\n    \/* Style du lien cliquable premium *\/\n    .norki-be__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: 500;\n    }\n\n    .norki-be__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* Citation de fin (pouss\u00e9e vers le bas) *\/\n    .norki-be__quote {\n        margin-top: auto; \/* Pousse la citation tout en bas du conteneur flex *\/\n        font-size: clamp(1.3rem, 1.8vw, 24px);\n        line-height: 1.3;\n        margin-bottom: 0;\n        padding-top: 40px;\n    }\n\n    \/* --- DROITE : Image Slider Automatique --- *\/\n    .norki-be__image-wrapper {\n        width: 42%;\n        aspect-ratio: 4 \/ 4.5;\n        background-color: #3d322e; \/* Fond placeholder sombre *\/\n        overflow: hidden;\n        position: relative;\n    }\n\n    .norki-be-slide {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        opacity: 0;\n        transition: opacity 1.2s ease-in-out; \/* Fondu fluide tr\u00e8s \u00e9l\u00e9gant *\/\n        display: block;\n        z-index: 1;\n    }\n\n    .norki-be-slide.is-active {\n        opacity: 1;\n        z-index: 2;\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - TABLETTE (< 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .norki-be__container {\n            flex-direction: column;\n            gap: 40px;\n        }\n\n        .norki-be__content {\n            width: 100%;\n        }\n\n        .norki-be__paragraphs {\n            max-width: 100%;\n        }\n\n        .norki-be__image-wrapper {\n            width: 100%;\n            aspect-ratio: 16 \/ 9; \/* Image plus large sur tablette *\/\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - MOBILE (< 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .norki-be {\n            padding: var(--section-pad-v-mob, 50px) 0;\n            padding-top: 55px;\n        }\n\n        .norki-be__container {\n            padding: 0 var(--section-pad-h-mob, 20px);\n            gap: 30px;\n        }\n\n        .norki-be__title-block {\n            margin-bottom: 30px;\n        }\n\n        .norki-be__quote {\n            padding-top: 20px;\n            font-size: 1.4rem;\n        }\n\n        .norki-be__image-wrapper {\n            aspect-ratio: 4 \/ 5;\n        }\n    }\n<\/style>\n\n<section class=\"norki-be\" id=\"design-studio\">\n    <div class=\"norki-be__container\">\n        \n        <!-- Colonne Gauche : Textes -->\n        <div class=\"norki-be__content\">\n            \n            <div class=\"norki-be__title-block\">\n                <h2 class=\"norki-be__main-title\">\n                    <span class=\"norki-be__line-1\">The Art of Bespoke Design<\/span>\n                    <span class=\"norki-be__line-2 baskerville-italic-font\">at the heart of our design studio<\/span>\n                <\/h2>\n                <hr class=\"norki-be__separator\">\n            <\/div>\n\n            <div class=\"norki-be__paragraphs\">\n                <p>At the core of Maison Norki, our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-interior-design-studio-furniture-rugs\/\" class=\"norki-be__inline-link\">Design Studio<\/a> brings together graphic designers, interior architects, and technical draftsmen to bring even the most ambitious projects to life.<\/p>\n                <p>Conversations with our clients is central to our approach. It allows us to master volumes, functionality, and materials, ensuring each piece integrates seamlessly into its environment. Within our studio, every detail is planned with absolute precision, creating the perfect blueprint for <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"norki-be__inline-link\">our Ateliers<\/a> to handcraft your bespoke decorative objects.<\/p>\n                <p>From the initial drawing of a sofa to the sketch of an armchair \u2014 from selecting premium curtain fabrics to choosing the finest wood species \u2014 every element is exclusively designed for you.<\/p>\n            <\/div>\n\n            <div class=\"norki-be__quote baskerville-italic-font\">\n                Nothing is set in stone. Everything is envisioned, adjusted, and crafted.\n            <\/div>\n\n        <\/div>\n\n        <!-- Colonne Droite : Slider Image Automatique -->\n        <div class=\"norki-be__image-wrapper\" id=\"norki-be-slider\">\n            <img decoding=\"async\" class=\"norki-be-slide is-active\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/choix-tissus-bureau-etudes-norki.jpg\" alt=\"Choosing fabrics in the design studio\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-be-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/fabric-selection-bespoke-client-projet.jpg\" alt=\"Fabric selection for a bespoke project\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-be-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tailor-made-chair-plan.jpg\" alt=\"Technical drawing of a bespoke chair\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-be-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/croquis-esquisse-siege-sur-mesure.jpg\" alt=\"Sketch and drawing of a bespoke seat\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-be-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/fabrication-chaise-sur-mesure.jpg\" alt=\"Manufacturing of a bespoke chair\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"norki-be-slide\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/choix-pose-de-rideaux-sur-mesure.jpg\" alt=\"Selection and installation of bespoke curtains\" loading=\"lazy\">\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        \/\/ S\u00e9lectionne toutes les images du slider du bureau d'\u00e9tudes\n        const slides = document.querySelectorAll('.norki-be-slide');\n        \n        if (slides.length > 1) {\n            let currentIndex = 0;\n            const intervalTime = 4000; \/\/ Changement d'image toutes les 4 secondes\n\n            \/\/ Fonction pour passer \u00e0 l'image suivante\n            const nextSlide = () => {\n                \/\/ Retire la classe active de l'image courante\n                slides[currentIndex].classList.remove('is-active');\n                \n                \/\/ Calcule le prochain index en boucle\n                currentIndex = (currentIndex + 1) % slides.length;\n                \n                \/\/ Ajoute la classe active \u00e0 la nouvelle image\n                slides[currentIndex].classList.add('is-active');\n            };\n\n            \/\/ Lance le d\u00e9filement automatique\n            setInterval(nextSlide, intervalTime);\n        }\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION D\u00c9CORATION - SUR-MESURE INTERNATIONAL\n       Int\u00e9gration Design System : Padding 80px 5vw\n       Ajustement : Titre sur 2 colonnes, pas de padding-bottom\n       ========================================================================== *\/\n\n    .norki-decor-sm {\n        z-index: 40;\n        position: relative;\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        padding: var(--section-pad-v-mob, 40px) var(--section-pad-h-mob, 20px);\n        padding-bottom: 0;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n        overflow: hidden; \n    }\n\n    @media (min-width: 768px) {\n        .norki-decor-sm {\n            padding: var(--section-pad-v-tab, 50px) var(--section-pad-h-tab, 4vw);\n            padding-bottom: 0;\n        }\n    }\n\n    .norki-decor-sm__title {\n        font-family: var(--font-montserrat, sans-serif);\n        line-height: 1.1;\n        font-size: clamp(1.4rem, 2.5vw, 35px);\n        font-weight: 500;\n        margin: 0;\n    }\n\n    \/* --- GESTION DE LA CARTE --- *\/\n    .norki-decor-sm__map-container {\n        width: 113%;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        margin: 10px 0;\n    }\n\n    @media (max-width: 1500px) {\n        .norki-decor-sm__map-container {\n            width: 111%;\n        }\n    }\n\n    @media (max-width: 1024px) {\n        .norki-decor-sm__map-container {\n            width: 100%;\n        }\n    }\n\n    \/* WRAPPER COORDONN\u00c9 : Synchronise la position absolue des zones r\u00e9actives *\/\n    .norki-decor-sm__map-wrapper {\n        position: relative;\n        width: 100%;\n        padding-left: 5px;\n        transform: scale(1.05) translateX(-3%);\n    }\n\n    @media (max-width: 1024px) {\n        .norki-decor-sm__map-wrapper {\n            transform: scale(1.05) translateX(0);\n        }\n    }\n\n    .norki-decor-sm__map-img {\n        width: 100%;\n        height: auto;\n        object-fit: contain;\n        display: block;\n    }\n\n    \/* Logique d'affichage des sources (Triple Breakpoint) *\/\n    .norki-decor-sm__img-default, \n    .norki-decor-sm__img-responsive, \n    .norki-decor-sm__img-mobile { \n        display: none; \n    }\n\n    \/* 1. Desktop Large (> 1500px) *\/\n    @media (min-width: 1501px) {\n        .norki-decor-sm__img-default { display: block; }\n    }\n\n    \/* 2. Tablette & Desktop Moyen (601px - 1500px) *\/\n    @media (min-width: 601px) and (max-width: 1500px) {\n        .norki-decor-sm__img-responsive { display: block; }\n    }\n\n    \/* 3. Mobile \u00e9troit (< 600px) *\/\n    @media (max-width: 600px) {\n        .norki-decor-sm__img-mobile { display: block; }\n    }\n\n    \/* ZONES INTERACTIVES OVERLAYS (NEUTRES - SANS HOVER OU EFFETS DE TRANSITIONS MULTIPLES) *\/\n    .norki-decor-sm__map-link-overlay {\n        position: absolute;\n        border-radius: 100px;\n        cursor: pointer;\n        z-index: 10;\n        background-color: rgba(255, 255, 255, 0);\n    }\n\n    \/* --------------------------------------------------------------------------\n       POSITIONNEMENTS DES LIENS (SUR-MESURE SUR LES 3 BREAKPOINTS DE LA CARTE)\n       -------------------------------------------------------------------------- *\/\n\n    \/* Version Mobile \u00c9troite (ViewBox 1779.56 x 855.11) *\/\n    @media (max-width: 600px) {\n        .norki-decor-sm__map-link-overlay--paris {\n            left: 31.5116%; top: 4.7117%; width: 13.4679%; height: 6.4319%;\n        }\n        .norki-decor-sm__map-link-overlay--strasbourg {\n            left: 43.5539%; top: 13.3924%; width: 19.3368%; height: 6.4319%;\n        }\n        .norki-decor-sm__map-link-overlay--gstaad {\n            left: 61.8309%; top: 23.5443%; width: 15.7994%; height: 6.4319%;\n        }\n        .norki-decor-sm__map-link-overlay--megeve {\n            left: 73.2552%; top: 32.8776%; width: 16.9379%; height: 6.6588%;\n        }\n    }\n\n    \/* Version Tablette \/ Laptop (ViewBox 2056.89 x 858.67) *\/\n    @media (min-width: 601px) and (max-width: 1500px) {\n        .norki-decor-sm__map-link-overlay--paris {\n            left: 35.0956%; top: 5.9348%; width: 11.6521%; height: 6.4053%;\n        }\n        .norki-decor-sm__map-link-overlay--strasbourg {\n            left: 45.4392%; top: 14.5784%; width: 16.9027%; height: 6.4053%;\n        }\n        .norki-decor-sm__map-link-overlay--gstaad {\n            left: 61.250%; top: 24.6893%; width: 13.6692%; height: 6.4053%;\n        }\n        .norki-decor-sm__map-link-overlay--megeve {\n            left: 71.3564%; top: 33.9828%; width: 14.6542%; height: 6.6312%;\n        }\n    }\n\n    \/* Version Grand \u00c9cran \/ Bureau (ViewBox 2506.67 x 840.67) *\/\n    @media (min-width: 1501px) {\n        .norki-decor-sm__map-link-overlay--paris {\n            left: 39.6211%; top: 4.7926%; width: 9.5613%; height: 6.5424%;\n        }\n        .norki-decor-sm__map-link-overlay--strasbourg {\n            left: 48.1989%; top: 13.6225%; width: 13.6698%; height: 6.5424%;\n        }\n        .norki-decor-sm__map-link-overlay--gstaad {\n            left: 61.1167%; top: 23.9488%; width: 11.2165%; height: 6.5424%;\n        }\n        .norki-decor-sm__map-link-overlay--megeve {\n            left: 69.4397%; top: 33.4424%; width: 12.0247%; height: 6.7732%;\n        }\n    }\n\n    \/* --- CONTENU TEXTE &#038; ACTIONS --- *\/\n    .norki-decor-sm__content {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .norki-decor-sm__content p {\n        margin: 0;\n        font-size: 0.95rem;\n        line-height: 1.5;\n    }\n\n    \/* Style global des liens in-text (DA) *\/\n    .norki-decor-sm__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-decor-sm__link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    .norki-decor-sm__emphasis {\n        margin-top: 5px;\n        font-weight: 600;\n    }\n\n    .norki-decor-sm__actions {\n        display: flex;\n        flex-direction: column;\n        gap: 12px;\n        margin-top: 20px;\n        width: 100%;\n        max-width: 280px;\n    }\n\n    .norki-decor-sm__btn {\n        display: inline-flex;\n        justify-content: center;\n        align-items: center;\n        padding: 4px 27px;\n        text-decoration: none;\n        font-size: 0.9rem;\n        font-weight: 500;\n        transition: all 0.3s ease;\n        border: 1px solid transparent;\n    }\n\n    .norki-decor-sm__btn--primary {\n        background-color: black;\n        color: #ffffff;\n        border-color: #000000;\n    }\n\n    .norki-decor-sm__btn--primary:hover {\n        background-color: #3f332e;\n        border-color: #3f332e;\n    }\n\n    .norki-decor-sm__btn--secondary {\n        color: black;\n        border-color: black;\n        background-color: transparent;\n    }\n\n    .norki-decor-sm__btn--secondary:hover {\n        background-color: black;\n        color: #ffffff;\n    }\n\n    \/* --- RESPONSIVE DESKTOP (GRID LAYOUT) --- *\/\n    @media (min-width: 1024px) {\n        .norki-decor-sm {\n            padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n            padding-bottom: 0;\n            display: grid;\n            \/* Augmentation de la part allou\u00e9e \u00e0 l'image (65%) *\/\n            grid-template-columns: 35% 65%;\n            grid-template-areas:\n                \"title title\"   \/* Le titre s'\u00e9tend sur les 2 colonnes *\/\n                \"content map\";\n            column-gap: 20px;\n            row-gap: 30px;\n            align-items: center;\n        }\n\n        .norki-decor-sm__title {\n            grid-area: title;\n            align-self: end;\n            font-size: clamp(1.4rem, 2.5vw, 35px);\n            z-index: 2;\n            position: relative;\n            max-width: 750px; \n        }\n\n        .norki-decor-sm__content {\n            grid-area: content;\n            align-self: start;\n            max-width: 480px;\n            z-index: 2; \n            position: relative;\n        }\n\n        .norki-decor-sm__map-container {\n            grid-area: map;\n            margin: 0;\n            height: 100%;\n            position: relative;\n            z-index: 1;\n        }\n\n        \/* Utilisation du wrapper synchronis\u00e9 pour \u00e9tendre la carte sur desktop *\/\n        .norki-decor-sm__map-wrapper {\n            width: 125%; \n            max-width: none;\n            transform: translateX(-5%);\n            transform-origin: center left;\n        }\n    }\n<\/style>\n\n<section class=\"norki-decor-sm\" id=\"interior-design\">\n    \n    <h2 class=\"norki-decor-sm__title\">\n        Norki Bespoke Excellence: Enhancing the World's Most Prestigious Interior Design Projects\n    <\/h2>\n\n    <div class=\"norki-decor-sm__map-container\">\n        <!-- WRAPPER : Synchronise l'image et ses calques cliquables sans d\u00e9formation -->\n        <div class=\"norki-decor-sm__map-wrapper\">\n            \n            <!-- 1. Source Bureau Large -->\n            <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/Carte-Monde_Paris-Gstaad-Megeve.svg\" alt=\"Norki showroom locations map\" class=\"norki-decor-sm__map-img norki-decor-sm__img-default\" onerror=\"this.style.display='none';\">\n\n            <!-- 2. Source Tablette \/ Laptop (Carte-Monde-Responsive-2) -->\n            <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/Carte-Monde-Responsive-2_Paris-Gstaad-Megeve.svg\" alt=\"Norki showroom locations map - Tablet\" class=\"norki-decor-sm__map-img norki-decor-sm__img-responsive\" onerror=\"this.style.display='none';\">\n\n            <!-- 3. Source Mobile \u00e9troit (Carte-Monde-Responsive) -->\n            <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/Carte-Monde-Responsive_Paris-Gstaad-Megeve.svg\" alt=\"Norki showroom locations map - Mobile\" class=\"norki-decor-sm__map-img norki-decor-sm__img-mobile\" onerror=\"this.style.display='none';\">\n\n            <!-- OVERLAYS CLIQUEABLES (NEUTRES - SANS HOVER VISUEL CONFORM\u00c9MENT \u00c0 VOTRE DEMANDE) -->\n            <a href=\"https:\/\/www.norki.com\/en\/content\/15-cushion-rug-throw-furniture-luxury-decoration-shop-paris\" class=\"norki-decor-sm__map-link-overlay norki-decor-sm__map-link-overlay--paris\" title=\"Discover our Paris showroom\"><\/a>\n               \n            <!-- LIEN STRASBOURG POINTANT VERS L'ATELIER (EN) -->\n            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"norki-decor-sm__map-link-overlay norki-decor-sm__map-link-overlay--strasbourg\" title=\"Discover our Workshop\"><\/a>\n               \n            <a href=\"https:\/\/www.norki.com\/en\/content\/17-luxury-shopping-gstaad-interior-design-buy-rug-throw-cushion-furniture\" class=\"norki-decor-sm__map-link-overlay norki-decor-sm__map-link-overlay--gstaad\" title=\"Discover our Gstaad showroom\"><\/a>\n               \n            <a href=\"https:\/\/www.norki.com\/en\/content\/16-luxury-interior-design-chalet-megeve-throw-cushion-rug-furniture\" class=\"norki-decor-sm__map-link-overlay norki-decor-sm__map-link-overlay--megeve\" title=\"Discover our Meg\u00e8ve showroom\"><\/a>\n               \n        <\/div>\n    <\/div>\n\n    <div class=\"norki-decor-sm__content\">\n        <p>Working closely with our clients' projects, our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-interior-design-studio-furniture-rugs\/\" class=\"norki-decor-sm__link\" title=\"Discover our Design Studio\">Design Studio<\/a> based in <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/contact-us\/\" class=\"norki-decor-sm__link\" title=\"Contact our workshops in Strasbourg\">Strasbourg<\/a> ensures the seamless connection between creation and execution.<\/p>\n        \n        <p>It collaborates closely with our offices in <a href=\"https:\/\/www.norki.com\/en\/content\/15-cushion-rug-throw-furniture-luxury-decoration-shop-paris\" class=\"norki-decor-sm__link\" title=\"Discover our Paris showroom\">Paris<\/a>, <a href=\"https:\/\/www.norki.com\/en\/content\/17-luxury-shopping-gstaad-interior-design-buy-rug-throw-cushion-furniture\" class=\"norki-decor-sm__link\" title=\"Discover our Gstaad showroom\">Gstaad<\/a>, and <a href=\"https:\/\/www.norki.com\/en\/content\/16-luxury-interior-design-chalet-megeve-throw-cushion-rug-furniture\" class=\"norki-decor-sm__link\" title=\"Discover our Meg\u00e8ve showroom\">Meg\u00e8ve<\/a>, allowing Norki to support interior design projects worldwide.<\/p>\n        \n        <p>From design to manufacturing in our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-interior-design-studio-furniture-rugs\/\" class=\"norki-decor-sm__link\" title=\"Discover our French Workshop\">French Workshop<\/a>, every creation embodies the excellence of artisanal fur couture at the service of contemporary design.<\/p>\n        \n        <p class=\"norki-decor-sm__emphasis\">Envision your unique space with Norki!<\/p>\n\n        <div class=\"norki-decor-sm__actions\">\n            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/contact-us\/\" class=\"norki-decor-sm__btn norki-decor-sm__btn--primary\" title=\"Send an email to our Design Studio\">Contact Our Design Studio<\/a>\n            <a href=\"https:\/\/api.whatsapp.com\/send?phone=33647923857\" class=\"norki-decor-sm__btn norki-decor-sm__btn--secondary\" target=\"_blank\" rel=\"noopener\" title=\"Contact us directly on WhatsApp\">WhatsApp Us<\/a>\n        <\/div>\n    <\/div>\n\n<\/section>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION NOS PARTENAIRES (Ticker \/ Marquee Infini)\n       ========================================================================== *\/\n#selected-textiles {\n    scroll-margin-top: 30vh;\n}\n    .norki-partners {\n        background-color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) 0;\n        font-family: 'Montserrat', sans-serif;\n        overflow: hidden;\n        position: relative;\n        z-index: 50;\n        box-sizing: border-box;\n    }\n\n    .norki-partners * {\n        box-sizing: border-box;\n    }\n\n    \/* Conteneur pour le titre *\/\n    .norki-partners__container {\n        margin: 0 auto;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        margin-bottom: 50px;\n    }\n\n    .norki-partners__title {\n        font-size: clamp(1.4rem, 2.2vw, 30px);\n        font-weight: 500;\n        line-height: 1.2;\n        margin: 0;\n        color: black;\n    }\n\n    \/* Le Ticker (Zone de d\u00e9filement) *\/\n    .norki-partners__ticker {\n        width: 100vw;\n        overflow: hidden;\n        cursor: grab;\n        touch-action: pan-y;\n    }\n\n    .norki-partners__ticker:active {\n        cursor: grabbing;\n    }\n\n    .norki-partners__track {\n        display: flex;\n        align-items: center;\n        width: max-content;\n        will-change: transform;\n        \/* Force l'acc\u00e9l\u00e9ration mat\u00e9rielle globale sur la piste *\/\n        transform: translateZ(0); \n    }\n\n    \/* Le Groupe de logos *\/\n    .norki-partners__group {\n        display: flex;\n        align-items: center;\n        gap: clamp(30px, 6vw, 90px);\n        padding-right: clamp(30px, 6vw, 90px); \/* Doit \u00eatre identique au gap pour une boucle parfaite *\/\n    }\n\n    \/* Les Logos *\/\n    .norki-partners__group img {\n        height: clamp(25px, 2.5vw, 35px);\n        width: auto;\n        object-fit: contain;\n        mix-blend-mode: multiply; \n        pointer-events: none;\n        user-select: none;\n        \/* Propri\u00e9t\u00e9s pour forcer un rendu mat\u00e9riel fluide et \u00e9viter les glitchs *\/\n        -webkit-backface-visibility: hidden;\n        backface-visibility: hidden;\n        -webkit-transform: translateZ(0);\n        transform: translateZ(0);\n    }\n\n    .norki-partners__group img[alt=\"Pierre Frey\"] {\n        height: clamp(45px, 4.5vw, 85px);\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE - TABLETTE & MOBILE\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .norki-partners {\n            padding: var(--section-pad-v-tab, 60px) 0;\n        }\n        .norki-partners__container {\n            padding: 0 var(--section-pad-h-tab, 4vw);\n            margin-bottom: 40px;\n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-partners {\n            padding: var(--section-pad-v-mob, 50px) 0;\n        }\n        .norki-partners__container {\n            padding: 0 var(--section-pad-h-mob, 20px);\n            margin-bottom: 30px;\n        }\n        .norki-partners__title {\n            font-size: 1.4rem;\n        }\n    }\n<\/style>\n\n<section class=\"norki-partners\" id=\"selected-textiles\">\n    \n    <!-- Titre -->\n    <div class=\"norki-partners__container\">\n        <h2 class=\"norki-partners__title\">Our Partners<\/h2>\n    <\/div>\n\n    <!-- Ticker \/ Slider Infini -->\n    <div class=\"norki-partners__ticker\" id=\"norki-ticker\">\n        <div class=\"norki-partners__track\" id=\"norki-track\">\n            \n            <!-- \n                GROUPE 1 DE LOGOS \n                Ajout de data-no-lazy=\"1\", data-skip-lazy=\"1\" et class=\"skip-lazy\" \n                pour contourner les plugins d'optimisation WordPress (WP Rocket, Smush, etc.) \n            -->\n            <div class=\"norki-partners__group\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Carlucci.png\" alt=\"Carlucci\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_JAB.png\" alt=\"JAB Anstoetz\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Lelievre.png\" alt=\"Leli\u00e8vre Paris\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Loro-Piana-scaled.png\" alt=\"Loro Piana\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Metaphores.jpg\" alt=\"M\u00e9taphores\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Pierre-Frey.jpg\" alt=\"Pierre Frey\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Samuel-and-Sons.png\" alt=\"Samuel &amp; Sons\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Schumacher.jpg\" alt=\"Schumacher\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n                <img src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Logo_Holland-Sherry.jpg\" alt=\"Holland &amp; Sherry\" class=\"skip-lazy\" data-no-lazy=\"1\" data-skip-lazy=\"1\" loading=\"eager\" fetchpriority=\"high\" decoding=\"sync\">\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        const ticker = document.getElementById('norki-ticker');\n        const track = document.getElementById('norki-track');\n        const group = track.querySelector('.norki-partners__group');\n        const images = Array.from(group.querySelectorAll('img'));\n\n        \/\/ Pr\u00e9chargeur strict : on s'assure que toutes les images sont t\u00e9l\u00e9charg\u00e9es ET d\u00e9cod\u00e9es\n        \/\/ avant de commencer le clonage pour \u00e9viter les bugs de rendu des navigateurs.\n        Promise.all(images.map(img => {\n            if (img.complete) return Promise.resolve();\n            return new Promise((resolve) => {\n                img.addEventListener('load', resolve, { once: true });\n                img.addEventListener('error', resolve, { once: true }); \/\/ On r\u00e9sout quand m\u00eame en cas d'erreur 404\n            });\n        })).then(() => {\n            \/\/ 1. Clonage une fois les images pr\u00eates\n            track.appendChild(group.cloneNode(true));\n            track.appendChild(group.cloneNode(true));\n\n            \/\/ Force un \"Reflow\/Repaint\" du navigateur pour qu'il prenne en compte les clones imm\u00e9diatement\n            void track.offsetWidth;\n\n            let currentX = 0;\n            let isDragging = false;\n            let startX = 0;\n            let animationId;\n            const speed = 0.6; \n\n            \/\/ 2. Fonction d'animation\n            function animateTicker() {\n                if (!isDragging) {\n                    currentX -= speed;\n                }\n\n                const groupWidth = group.getBoundingClientRect().width;\n                \n                if (currentX <= -groupWidth) {\n                    currentX += groupWidth;\n                } \n                else if (currentX > 0) {\n                    currentX -= groupWidth;\n                }\n\n                track.style.transform = `translate3d(${currentX}px, 0, 0)`;\n                animationId = requestAnimationFrame(animateTicker);\n            }\n\n            animateTicker();\n\n            \/\/ 3. Gestion Drag\n            const handleDragStart = (e) => {\n                isDragging = true;\n                cancelAnimationFrame(animationId);\n                const clientX = e.type.includes('touch') ? e.touches[0].clientX : e.clientX;\n                startX = clientX - currentX;\n            };\n\n            const handleDragMove = (e) => {\n                if (!isDragging) return;\n                const clientX = e.type.includes('touch') ? e.touches[0].clientX : e.clientX;\n                currentX = clientX - startX;\n                track.style.transform = `translate3d(${currentX}px, 0, 0)`;\n            };\n\n            const handleDragEnd = () => {\n                if (!isDragging) return;\n                isDragging = false;\n                animateTicker();\n            };\n\n            ticker.addEventListener('mousedown', handleDragStart);\n            window.addEventListener('mousemove', handleDragMove);\n            window.addEventListener('mouseup', handleDragEnd);\n\n            ticker.addEventListener('touchstart', handleDragStart, { passive: true });\n            window.addEventListener('touchmove', handleDragMove, { passive: true });\n            window.addEventListener('touchend', handleDragEnd);\n        });\n    });\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Norki: Bespoke Craftsmanship as a Signature for Interior Design In every interior design project, working hand-in-hand with interior architects and private clients, our Maison envisions and crafts unique creations. From exclusive furniture and custom window treatments to bespoke rugs, each piece is part of a global approach. Our signature is defined by uncompromising standards, precision, [&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-4294","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>Bespoke furniture &amp; high-end interior design | Norki<\/title>\n<meta name=\"description\" content=\"Norki creates bespoke furniture, curtains, and rugs for interior design, with a dedicated design office and French manufacturing.\" \/>\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\/high-end-interior-design\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bespoke furniture &amp; high-end interior design | Norki\" \/>\n<meta property=\"og:description\" content=\"Norki creates bespoke furniture, curtains, and rugs for interior design, with a dedicated design office and French manufacturing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-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-07T11:11:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Geste-sur-mesure-atelier-Norki.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=\"9 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\\\/high-end-interior-design\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/\",\"name\":\"Bespoke furniture & high-end interior design | Norki\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Geste-sur-mesure-atelier-Norki.jpg\",\"datePublished\":\"2026-06-08T10:54:47+00:00\",\"dateModified\":\"2026-07-07T11:11:24+00:00\",\"description\":\"Norki creates bespoke furniture, curtains, and rugs for interior design, with a dedicated design office and French manufacturing.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/#primaryimage\",\"url\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Geste-sur-mesure-atelier-Norki.jpg\",\"contentUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Geste-sur-mesure-atelier-Norki.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/high-end-interior-design\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bespoke\"}]},{\"@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":"Bespoke furniture & high-end interior design | Norki","description":"Norki creates bespoke furniture, curtains, and rugs for interior design, with a dedicated design office and French manufacturing.","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\/high-end-interior-design\/","og_locale":"fr_FR","og_type":"article","og_title":"Bespoke furniture & high-end interior design | Norki","og_description":"Norki creates bespoke furniture, curtains, and rugs for interior design, with a dedicated design office and French manufacturing.","og_url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-07T11:11:24+00:00","og_image":[{"url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Geste-sur-mesure-atelier-Norki.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/","url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/","name":"Bespoke furniture & high-end interior design | Norki","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/#primaryimage"},"thumbnailUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Geste-sur-mesure-atelier-Norki.jpg","datePublished":"2026-06-08T10:54:47+00:00","dateModified":"2026-07-07T11:11:24+00:00","description":"Norki creates bespoke furniture, curtains, and rugs for interior design, with a dedicated design office and French manufacturing.","breadcrumb":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/#primaryimage","url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Geste-sur-mesure-atelier-Norki.jpg","contentUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Geste-sur-mesure-atelier-Norki.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/high-end-interior-design\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/"},{"@type":"ListItem","position":2,"name":"Bespoke"}]},{"@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":"Norki: Bespoke Craftsmanship as a Signature for Interior Design In every interior design project, working hand-in-hand with interior architects and private clients, our Maison envisions and crafts unique creations. From exclusive furniture and custom window treatments to bespoke rugs, each piece is part of a global approach. Our signature is defined by uncompromising standards, precision,\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4294","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=4294"}],"version-history":[{"count":9,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4294\/revisions"}],"predecessor-version":[{"id":4850,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4294\/revisions\/4850"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=4294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=4294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=4294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}