{"id":2449,"date":"2026-05-13T13:04:42","date_gmt":"2026-05-13T11:04:42","guid":{"rendered":"https:\/\/norki.com\/sur-mesure\/?page_id=2449"},"modified":"2026-06-10T16:00:33","modified_gmt":"2026-06-10T14:00:33","slug":"ville","status":"publish","type":"page","link":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/","title":{"rendered":"Ville"},"content":{"rendered":"\n<style>\n    \/* ==========================================================================\n       HERO SLIDER 16\/9 (Auto-slide vers la droite)\n       ========================================================================== *\/\n\n    .norki-hero-slider {\n        position: relative;\n        width: 100%;\n        aspect-ratio: 16 \/ 9; \/* Force le ratio 16:9 sur tous les \u00e9crans *\/\n        overflow: hidden;\n        background-color: black;\n        max-height: 100dvh;\n    }\n\n    \/* --- 1. Conteneur des Slides --- *\/\n    .norki-hs__track {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n\n    .norki-hs__slide {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        opacity: 0;\n        transform: translateX(100%); \/* D\u00e9part \u00e0 l'ext\u00e9rieur droit *\/\n        transition: transform 1s cubic-bezier(0.65, 0, 0.35, 1), opacity 1s ease;\n        z-index: 1;\n    }\n\n    \/* Slide Actuelle *\/\n    .norki-hs__slide.is-active {\n        opacity: 1;\n        transform: translateX(0);\n        z-index: 2;\n    }\n\n    \/* Slide Sortante (part vers la gauche) *\/\n    .norki-hs__slide.is-leaving {\n        opacity: 1;\n        transform: translateX(-100%);\n        z-index: 2;\n    }\n\n    .norki-hs__image {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        object-position: center;\n        display: block;\n    }\n\n    \/* Gradient assombrissant en bas pour la lisibilit\u00e9 *\/\n    .norki-hs__overlay {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 60%;\n        background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 100%);\n        z-index: 3;\n        pointer-events: none;\n    }\n\n    \/* --- 2. Textes (Dans chaque slide) --- *\/\n    .norki-hs__text-container {\n        position: absolute;\n        bottom: var(--section-pad-h-dt, 5vw); \/* Align\u00e9 avec le padding lat\u00e9ral global *\/\n        left: var(--section-pad-h-dt, 5vw);\n        z-index: 4;\n        color: #ffffff;\n    }\n\n    .norki-hs__title {\n        display: block; \/* Maintient le comportement block pour le span (remplacement du h2) *\/\n        font-family: var(--font-montserrat, \"AvenirMedium\", sans-serif);\n        font-size: clamp(2rem, 3.5vw, 45px);\n        font-weight: 500;\n        margin: 0 0 5px 0;\n        line-height: 1.1;\n        letter-spacing: -0.01em;\n        text-shadow: 0 2px 4px rgba(0,0,0,0.3);\n        color: white;\n    }\n\n    .norki-hs__subtitle {\n        font-size: clamp(1.2rem, 2vw, 24px);\n        margin: 0;\n        line-height: 1.3;\n        text-shadow: 0 2px 4px rgba(0,0,0,0.3);\n        display: block;\n    }\n\n    \/* --- 3. Interface Globale (Au-dessus des slides) --- *\/\n    .norki-hs__ui {\n        position: absolute;\n        bottom: var(--section-pad-h-dt, 5vw);\n        left: 0;\n        width: 100%;\n        padding: 0 var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: flex-end; \/* Aligne le contenu du flux (le bouton) \u00e0 droite *\/\n        align-items: flex-end;\n        z-index: 10;\n        pointer-events: none; \/* Laisse passer les clics vers le slider si besoin *\/\n    }\n\n    \/* Bouton D\u00e9couvrir (En bas \u00e0 droite) *\/\n    .norki-hs__discover-btn {\n        pointer-events: auto; \/* R\u00e9active le clic *\/\n        color: #ffffff;\n        text-decoration: none;\n        font-size: 1.1rem;\n        font-weight: 500;\n        font-family: var(--font-montserrat, \"AvenirMedium\", sans-serif);\n        position: relative;\n        padding-bottom: 3px;\n        transition: opacity 0.4s ease;\n        text-shadow: 0 2px 4px rgba(0,0,0,0.3);\n    }\n\n    \/* Ligne de soulignement \u00e9l\u00e9gante *\/\n    .norki-hs__discover-btn::after {\n        content: '';\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 1px;\n        background-color: #ffffff;\n        transform: scaleX(1);\n        transform-origin: right;\n        transition: transform 0.4s ease;\n    }\n\n    .norki-hs__discover-btn:hover::after {\n        transform: scaleX(0);\n        transform-origin: left;\n    }\n\n    \/* Classe utilitaire pour cacher le bouton pendant la transition *\/\n    .norki-hs__discover-btn.is-hidden {\n        opacity: 0;\n        pointer-events: none;\n    }\n\n    \/* Pagination Dots (Au centre) *\/\n    .norki-hs__pagination {\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        display: flex;\n        gap: 12px;\n        align-items: center;\n        pointer-events: auto;\n    }\n\n    .norki-hs__dot {\n        width: 8px;\n        height: 8px;\n        border-radius: 50%;\n        border: 1px solid #ffffff;\n        background-color: transparent;\n        cursor: pointer;\n        transition: all 0.3s ease;\n        padding: 0;\n        box-shadow: 0 1px 3px rgba(0,0,0,0.2);\n    }\n\n    .norki-hs__dot.is-active {\n        background-color: #ffffff;\n        transform: scale(1.2);\n    }\n\n    \/* --- 4. Responsive (Adaptation pour le 16\/9 sur petits \u00e9crans) --- *\/\n    @media (max-width: 768px) {\n        \/* On utilise des pourcentages pour s'adapter \u00e0 la faible hauteur du 16\/9 sur mobile *\/\n        .norki-hs__text-container {\n            bottom: 22%; \n            left: 5vw;\n        }\n\n        .norki-hs__ui {\n            bottom: 8%;\n            padding: 0 5vw;\n        }\n\n        .norki-hs__title { font-size: clamp(1.2rem, 4vw, 1.8rem); margin-bottom: 2px; }\n        .norki-hs__subtitle { font-size: clamp(0.9rem, 3vw, 1.1rem); }\n        .norki-hs__discover-btn { font-size: clamp(0.8rem, 3vw, 0.95rem); padding-bottom: 1px; }\n        \n        .norki-hs__pagination {\n            gap: 8px;\n        }\n        .norki-hs__dot {\n            width: 5px;\n            height: 5px;\n        }\n    }\n<\/style>\n\n<section class=\"norki-hero-slider\" aria-label=\"Slider d'accueil Norki\">\n    \n    <div class=\"norki-hs__track\">\n        \n        <!-- SLIDE 1: Appartement Priv\u00e9 Paris (Coyote) -->\n        <div class=\"norki-hs__slide is-active\" data-link=\"#decouvrir-appartement-coyote-paris\">\n            <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg\" alt=\"Appartement Priv\u00e9 Paris\" class=\"norki-hs__image\" fetchpriority=\"high\" loading=\"eager\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title\">Titre R\u00e9alisation<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Appartement Priv\u00e9 Paris<\/span>\n            <\/div>\n        <\/div>\n\n        <!-- SLIDE 2: Appartement Priv\u00e9 Paris (Shearling) -->\n        <div class=\"norki-hs__slide\" data-link=\"#decouvrir-appartement-prive-paris\">\n            <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tailor-made-wall-to-wall-shearling-carpet-2.jpeg\" alt=\"Appartement Priv\u00e9 Paris\" class=\"norki-hs__image\" loading=\"lazy\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title\">Titre R\u00e9alisation<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">Appartement Priv\u00e9 Paris<\/span>\n            <\/div>\n        <\/div>\n\n        <!-- SLIDE 3: R\u00e9sidence historique haussmannienne -->\n        <div class=\"norki-hs__slide\" data-link=\"#decouvrir-residence-haussmannienne\">\n            <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/Marble-and-shearling-armchairs_Norki_v2.png\" alt=\"H\u00f4tel particulier parisien\" class=\"norki-hs__image\" loading=\"lazy\">\n            <div class=\"norki-hs__overlay\"><\/div>\n            <div class=\"norki-hs__text-container\">\n                <span class=\"norki-hs__title\">R\u00e9sidence historique haussmannienne<\/span>\n                <span class=\"norki-hs__subtitle baskerville-italic-font\">H\u00f4tel particulier parisien<\/span>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n    <!-- UI Globale (Pagination & Bouton) -->\n    <div class=\"norki-hs__ui\">\n        \n        <!-- Pagination -->\n        <div class=\"norki-hs__pagination\" aria-label=\"Navigation des slides\">\n            <button class=\"norki-hs__dot is-active\" aria-label=\"Aller \u00e0 la slide 1\"><\/button>\n            <button class=\"norki-hs__dot\" aria-label=\"Aller \u00e0 la slide 2\"><\/button>\n            <button class=\"norki-hs__dot\" aria-label=\"Aller \u00e0 la slide 3\"><\/button>\n        <\/div>\n\n        <!-- Bouton D\u00e9couvrir -->\n        <a href=\"#decouvrir-appartement-coyote-paris\" class=\"norki-hs__discover-btn avenirmedium-font\">D\u00e9couvrir<\/a>\n        \n    <\/div>\n\n<\/section>\n\n<script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n        const slides = document.querySelectorAll('.norki-hs__slide');\n        const dots = document.querySelectorAll('.norki-hs__dot');\n        const discoverBtn = document.querySelector('.norki-hs__discover-btn');\n        const totalSlides = slides.length;\n        \n        let currentIndex = 0;\n        let slideInterval;\n        const intervalTime = 6000; \/\/ 6 secondes par slide\n\n        \/\/ 1. Logique de transition\n        const goToSlide = (nextIndex) => {\n            if (nextIndex === currentIndex) return;\n\n            const currentSlide = slides[currentIndex];\n            const nextSlide = slides[nextIndex];\n\n            \/\/ A. Disparition du bouton D\u00e9couvrir\n            discoverBtn.classList.add('is-hidden');\n\n            \/\/ B. Mouvement des slides\n            currentSlide.classList.remove('is-active');\n            currentSlide.classList.add('is-leaving');\n            \n            \/\/ On s'assure que la slide suivante a bien sa classe pour entrer\n            nextSlide.classList.add('is-active');\n\n            \/\/ C. Mise \u00e0 jour des points de pagination\n            dots[currentIndex].classList.remove('is-active');\n            dots[nextIndex].classList.add('is-active');\n\n            \/\/ D. Nettoyage silencieux de l'ancienne slide & R\u00e9apparition du bouton\n            setTimeout(() => {\n                \/\/ Retire l'ancienne slide de l'\u00e9cran visible\n                currentSlide.classList.remove('is-leaving');\n                \n                \/\/ D\u00e9sactive temporairement les animations pour la replacer silencieusement \u00e0 droite (100%)\n                currentSlide.style.transition = 'none';\n                void currentSlide.offsetWidth; \/\/ Force le reflow du navigateur\n                currentSlide.style.transition = ''; \/\/ R\u00e9tablit l'animation pour le prochain tour\n                \n                \/\/ Mise \u00e0 jour du lien et r\u00e9apparition du bouton\n                discoverBtn.href = nextSlide.dataset.link;\n                discoverBtn.classList.remove('is-hidden');\n            }, 1000); \/\/ 1s = dur\u00e9e exacte de la transition CSS\n\n            currentIndex = nextIndex;\n        };\n\n        const nextSlide = () => {\n            goToSlide((currentIndex + 1) % totalSlides);\n        };\n\n        \/\/ 2. Initialisation de l'Auto-Slide\n        const startSlider = () => {\n            slideInterval = setInterval(nextSlide, intervalTime);\n        };\n\n        const resetSlider = () => {\n            clearInterval(slideInterval);\n            startSlider();\n        };\n\n        \/\/ Rendre les points cliquables\n        dots.forEach((dot, index) => {\n            dot.addEventListener('click', () => {\n                goToSlide(index);\n                resetSlider(); \/\/ Relance le chrono\n            });\n        });\n\n        startSlider();\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION \"URBAIN\" (Texte align\u00e9 \u00e0 gauche + Expand - Sans Citation)\n       ========================================================================== *\/\n\n    .norki-urban {\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        position: relative;\n        z-index: 10;\n        box-sizing: border-box;\n    }\n\n    .norki-urban * {\n        box-sizing: border-box;\n    }\n\n    .norki-urban__content {\n        max-width: 680px;\n    }\n\n    \/* --- Accroche Italic (H1) --- *\/\n    .norki-urban__intro {\n        font-size: clamp(1.4rem, 2vw, 28px);\n        line-height: 1.35;\n        margin-top: 0;\n        margin-bottom: 70px;\n        color: black;\n        font-weight: normal;\n    }\n\n    \/* --- Titre Principal (H2) --- *\/\n    .norki-urban__title {\n        font-size: clamp(1.6rem, 2.5vw, 32px);\n        font-weight: 500;\n        margin-top: 0;\n        margin-bottom: 25px;\n        letter-spacing: -0.01em;\n        line-height: 1.2;\n    }\n\n    \/* --- Paragraphes --- *\/\n    .norki-urban__text {\n        font-size: 0.95rem;\n        line-height: 1.5;\n        margin-top: 0;\n        margin-bottom: 25px;\n        max-width: 81%;\n    }\n\n    .norki-urban__text strong {\n        font-weight: 600;\n    }\n\n    \/* --- ANIMATION DE VOTRE DIRECTION ARTISTIQUE POUR LES LIENS DU TEXTE --- *\/\n    .norki-urban__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-urban__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* --- Syst\u00e8me d'expansion (Grid Transition) --- *\/\n    .norki-urban__expand-wrapper {\n        display: grid;\n        grid-template-rows: 0fr;\n        transition: grid-template-rows 0.4s ease-out;\n    }\n\n    .norki-urban__expand-wrapper.is-open {\n        grid-template-rows: 1fr;\n    }\n\n    .norki-urban__expand-content {\n        overflow: hidden;\n    }\n\n    \/* Marges annul\u00e9es sur le dernier \u00e9l\u00e9ment pour \u00e9viter les sauts lors de l'animation *\/\n    .norki-urban__expand-content > *:last-child {\n        margin-bottom: 25px; \n    }\n\n    \/* --- Bouton Voir Plus --- *\/\n    .norki-urban__btn {\n        display: inline-block;\n        background: transparent;\n        border: none;\n        padding: 0;\n        cursor: pointer;\n        font-family: inherit;\n        font-size: 0.9rem;\n        color: black;\n        text-decoration: underline;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1px;\n        transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n        font-style: italic;\n    }\n\n    .norki-urban__btn:hover {\n        text-decoration-color: transparent;\n        opacity: 0.6;\n    }\n\n    \/* --- Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-urban {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .norki-urban__intro {\n            margin-bottom: 50px;\n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-urban {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-urban__content {\n            max-width: 100%;\n        }\n\n        .norki-urban__text {\n            max-width: 100%; \/* Le texte prend toute la largeur sur mobile *\/\n        }\n\n        .norki-urban__intro {\n            font-size: 1.3rem;\n            margin-bottom: 40px;\n        }\n\n        .norki-urban__title {\n            font-size: 1.5rem;\n            margin-bottom: 20px;\n        }\n    }\n<\/style>\n\n<section class=\"norki-urban\">\n    <div class=\"norki-urban__content\">\n        \n        <!-- Accroche en italique (H1) -->\n        <h1 class=\"norki-urban__intro baskerville-italic-font\">\n            Le savoir-faire Norki au c\u0153ur des capitales mondiales\n        <\/h1>\n\n        <!-- Titre de section (H2) -->\n        <h2 class=\"norki-urban__title avenirmedium-font\">\n            L\u2019\u00c9l\u00e9gance Urbaine\n        <\/h2>\n\n        <!-- Paragraphe principal visible avec int\u00e9gration des liens s\u00e9mantiques -->\n        <p class=\"norki-urban__text\">\n            De la cr\u00e9ation de vastes \n            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapis-sur-mesure-peau-fourrure\/\" class=\"norki-urban__inline-link\">tapis monochromes noirs<\/a> \n            \u00e0 la \n            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/\" class=\"norki-urban__inline-link\">restauration m\u00e9ticuleuse de mobilier vintage<\/a> \n            du milieu du XX\u00e8me si\u00e8cle, nos Ateliers d\u00e9ploient une expertise rare pour sublimer les int\u00e9rieurs citadins les plus prestigieux.\n        <\/p>\n\n        <!-- Contenu masqu\u00e9 \/ d\u00e9pliable (sans citation) -->\n        <div class=\"norki-urban__expand-wrapper\" id=\"extra-wrapper-urban\">\n            <div class=\"norki-urban__expand-content\">\n                <p class=\"norki-urban__text\">\n                    Qu&rsquo;il s&rsquo;agisse de restaurer ou de r\u00e9interpr\u00e9ter des pi\u00e8ces iconiques de Pierre Jeanneret ou de Jean Roy\u00e8re, notre Maison et nos artisans s&rsquo;attachent \u00e0 une ex\u00e9cution d&rsquo;une rigueur absolue. Cette proximit\u00e9 avec les architectes de renown et les galeristes internationaux permet \u00e0 nos Ateliers de transcender leurs savoir-faire pour r\u00e9pondre \u00e0 des exigences esth\u00e9tiques et techniques sans concession.\n                <\/p>\n                <p class=\"norki-urban__text\">\n                    De New York \u00e0 Londres, de Duba\u00ef \u00e0 Paris, en passant par Bruxelles ou Milan, nos cr\u00e9ations int\u00e8grent les plus grandes capitales, portant haut l&rsquo;\u00e9tendard de l&rsquo;Art de Vivre et de la manufacture fran\u00e7aise d&rsquo;exception.\n                <\/p>\n            <\/div>\n        <\/div>\n\n        <!-- Bouton d'action -->\n        <button type=\"button\" class=\"norki-urban__btn\" id=\"voir-plus-btn-urban\" aria-expanded=\"false\" aria-controls=\"extra-wrapper-urban\">Voir plus<\/button>\n        \n    <\/div>\n<\/section>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        const btn = document.getElementById('voir-plus-btn-urban'); \n        const wrapper = document.getElementById('extra-wrapper-urban'); \n\n        if (btn && wrapper) {\n            btn.addEventListener('click', () => {\n                const isOpen = wrapper.classList.toggle('is-open');\n                \n                \/\/ Mise \u00e0 jour de l'accessibilit\u00e9\n                btn.setAttribute('aria-expanded', isOpen);\n\n                \/\/ Mise \u00e0 jour du texte\n                if (isOpen) {\n                    btn.textContent = 'Voir moins';\n                } else {\n                    btn.textContent = 'Voir plus';\n                }\n            });\n        }\n    });\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION GALERIE R\u00c9ALISATIONS VILLE (Filtres + JS Dynamic Masonry)\n       ========================================================================== *\/\n\n    .norki-portfolio {\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        position: relative;\n        z-index: 10;\n        box-sizing: border-box;\n        padding-top: 0;\n    }\n\n    \/* --- 1. Menu de Filtres (Conteneur & Scroll) --- *\/\n    .norki-portfolio__filters-container {\n        position: relative;\n        \/* Casse le padding de la section pour permettre un scroll jusqu'au bord de l'\u00e9cran (Bleed effect) *\/\n        width: calc(100% + var(--section-pad-h-dt, 5vw) * 2);\n        margin-left: calc(-1 * var(--section-pad-h-dt, 5vw));\n        margin-bottom: 60px;\n    }\n\n    .norki-portfolio__filters-wrapper {\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        scrollbar-width: none; \/* Cache la scrollbar sur Firefox *\/\n        scroll-behavior: smooth;\n        \/* Restaure le padding visuel \u00e0 l'int\u00e9rieur de la zone de scroll *\/\n        padding: 5px var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n    }\n\n    .norki-portfolio__filters-wrapper::-webkit-scrollbar {\n        display: none; \/* Cache la scrollbar sur Chrome\/Safari *\/\n    }\n\n    .norki-portfolio__filters {\n        display: flex;\n        gap: 40px;\n        align-items: center;\n        min-width: max-content;\n    }\n\n    \/* Pseudo-\u00e9l\u00e9ment pour assurer que le dernier \u00e9l\u00e9ment a bien de l'espace \u00e0 droite lors du scroll final *\/\n    .norki-portfolio__filters::after {\n        content: '';\n        padding-right: var(--section-pad-h-dt, 5vw);\n    }\n\n    \/* --- Styles des boutons de filtre (Effet Hover \/ Active) --- *\/\n    .norki-portfolio__filter-btn {\n        background: none;\n        border: none;\n        padding: 0;\n        font-family: var(--font-montserrat, sans-serif);\n        font-size: 1rem;\n        font-weight: 500;\n        color: black;\n        cursor: pointer;\n        text-decoration: underline;\n        text-decoration-color: transparent;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease, color 0.3s ease;\n    }\n\n    \/* Souligne et change la couleur au survol pour les INACTIFS *\/\n    .norki-portfolio__filter-btn:not(.is-active):hover {\n        text-decoration-color: rgba(0,0,0,0.7);\n        color: rgba(0,0,0,0.7);\n    }\n\n    \/* ACTIF : soulign\u00e9 par d\u00e9faut *\/\n    .norki-portfolio__filter-btn.is-active {\n        text-decoration-color: black;\n        opacity: 1;\n        color: black;\n    }\n\n    \/* D\u00c9-SOULIGNE l'actif d\u00e8s qu'on survole le MENU complet *\/\n    .norki-portfolio__filters:hover .norki-portfolio__filter-btn.is-active {\n        text-decoration-color: transparent;\n    }\n\n    \/* D\u00c9-SOULIGNE FORC\u00c9 si on survole pr\u00e9cis\u00e9ment l'actif (avec l\u00e9g\u00e8re transparence du texte pour l'effet interactif) *\/\n    .norki-portfolio__filter-btn.is-active:hover {\n        text-decoration-color: transparent !important;\n        color: rgba(0,0,0,0.7);\n    }\n\n    \/* --- Fl\u00e8ches de navigation des filtres --- *\/\n    .norki-filter-arrow {\n        position: absolute;\n        top: 0;\n        bottom: 0;\n        width: calc(var(--section-pad-h-dt, 5vw) + 50px);\n        background: none;\n        border: none;\n        color: black;\n        z-index: 5;\n        cursor: pointer;\n        opacity: 0;\n        pointer-events: none;\n        transition: opacity 0.3s ease;\n        display: flex;\n        align-items: center;\n    }\n\n    .norki-filter-arrow.is-visible {\n        opacity: 1;\n        pointer-events: auto;\n    }\n\n    .norki-filter-arrow--left {\n        left: 0;\n        justify-content: flex-start;\n        padding-left: var(--section-pad-h-dt, 5vw);\n        background: linear-gradient(to right, var(--color-norki-beige, #f8f0ea) 60%, rgba(248, 240, 234, 0) 100%);\n    }\n\n    .norki-filter-arrow--right {\n        right: 0;\n        justify-content: flex-end;\n        padding-right: var(--section-pad-h-dt, 5vw);\n        background: linear-gradient(to left, var(--color-norki-beige, #f8f0ea) 60%, rgba(248, 240, 234, 0) 100%);\n    }\n\n    .norki-filter-arrow svg {\n        width: 24px;\n        height: 24px;\n        fill: none;\n        stroke: currentColor;\n        stroke-width: 1.5;\n        transition: transform 0.2s ease;\n    }\n\n    .norki-filter-arrow--left:hover svg { transform: translateX(-3px); }\n    .norki-filter-arrow--right:hover svg { transform: translateX(3px); }\n\n    \/* --- 2. Grille Flex Masonry (G\u00e9r\u00e9e par JS) --- *\/\n    .norki-portfolio__masonry {\n        display: flex;\n        gap: 80px; \n        align-items: flex-start;\n    }\n\n    .norki-portfolio__column {\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n    }\n\n    \/* D\u00e9calage asym\u00e9trique de la colonne de droite (Style Norki) *\/\n    .norki-portfolio__column--right {\n        padding-top: 140px; \n    }\n\n    \/* \u00c9l\u00e9ment Individuel *\/\n    .norki-portfolio__item {\n        display: block;\n        text-decoration: none;\n        color: inherit;\n        position: relative;\n        opacity: 0;\n        transform: translateY(30px);\n        transition: opacity 0.8s ease, transform 0.8s ease;\n    }\n\n    .norki-portfolio__item.is-visible {\n        opacity: 1;\n        transform: translateY(0);\n    }\n\n    .norki-portfolio__img-wrapper {\n        width: 100%;\n        overflow: hidden;\n        background-color: #e5dfd9;\n    }\n\n    .norki-portfolio__img {\n        width: 100%;\n        height: auto;\n        display: block;\n        transition: transform 0.6s ease;\n    }\n\n    .norki-portfolio__item:hover .norki-portfolio__img {\n        transform: scale(1.03); \/* Effet zoom premium *\/\n    }\n\n    .norki-portfolio__caption {\n        margin: 12px 0 0 0;\n        font-family: inherit;\n        font-size: 0.85rem;\n        line-height: 1.3;\n        letter-spacing: 0.02em;\n    }\n\n    .norki-portfolio__caption span {\n        font-family: \"LibreBaskervilleItalic\", sans-serif;\n    }\n\n    \/* --- 3. Actions (Bouton Charger Plus Minimaliste) --- *\/\n    .norki-portfolio__actions {\n        text-align: center;\n        margin-top: 50px;\n    }\n\n    .norki-portfolio__load-btn {\n        display: inline-flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 8px;\n        background: none;\n        border: none;\n        padding: 0;\n        color: black;\n        font-family: inherit;\n        cursor: pointer;\n        transition: opacity 0.3s ease;\n    }\n\n    .norki-portfolio__load-dots {\n        font-size: 1.8rem;\n        line-height: 0.5;\n        letter-spacing: 2px;\n        margin-bottom: 5px;\n    }\n\n    .norki-portfolio__load-text {\n        font-size: 0.85rem;\n        font-weight: 500;\n        text-decoration: underline;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1px;\n    }\n\n    .norki-portfolio__load-btn:hover {\n        opacity: 0.6;\n    }\n\n    .norki-portfolio__load-btn.is-loading {\n        opacity: 0.5;\n        pointer-events: none;\n        cursor: wait;\n    }\n\n    \/* Cache le conteneur source des images (utilis\u00e9 par le JS) *\/\n    .norki-portfolio__source {\n        display: none;\n    }\n\n    \/* --- 4. Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-portfolio {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n            padding-top: 0;\n        }\n        .norki-portfolio__masonry {\n            gap: 40px; \n        }\n        .norki-portfolio__column--right {\n            padding-top: 80px; \n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-portfolio {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n            padding-top: 0;\n        }\n\n        .norki-portfolio__filter-btn {\n            font-size: 0.95rem;\n        }\n\n        .norki-portfolio__filter-btn.is-active {\n            font-weight: 600;\n        }\n\n        \/* Ajustement du conteneur de filtres pour les marges mobiles *\/\n        .norki-portfolio__filters-container {\n            width: calc(100% + var(--section-pad-h-mob, 20px) * 2);\n            margin-left: calc(-1 * var(--section-pad-h-mob, 20px));\n            margin-bottom: 40px;\n        }\n\n        .norki-portfolio__filters-wrapper {\n            padding: 5px var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-portfolio__filters::after {\n            padding-right: var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-filter-arrow {\n            width: calc(var(--section-pad-h-mob, 20px) + 35px);\n        }\n\n        .norki-filter-arrow--left {\n            padding-left: calc(var(--section-pad-h-mob, 20px) - 5px);\n        }\n\n        .norki-filter-arrow--right {\n            padding-right: calc(var(--section-pad-h-mob, 20px) - 5px);\n        }\n\n        \/* Passage \u00e0 1 seule colonne virtuelle sur mobile *\/\n        .norki-portfolio__masonry {\n            display: block; \n        }\n\n        .norki-portfolio__column--right {\n            display: none; \n        }\n\n        \/* On force une marge fixe sur mobile pour \u00e9viter les trous trop grands *\/\n        .norki-portfolio__item {\n            margin-bottom: 60px !important; \n        }\n    }\n<\/style>\n\n<section class=\"norki-portfolio\">\n    \n    <!-- Menu de filtres avec fl\u00e8ches de navigation -->\n    <div class=\"norki-portfolio__filters-container\">\n        <!-- Fl\u00e8che Gauche -->\n        <button class=\"norki-filter-arrow norki-filter-arrow--left\" aria-label=\"D\u00e9filer \u00e0 gauche\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n        <\/button>\n\n        <!-- Conteneur d\u00e9filant -->\n        <div class=\"norki-portfolio__filters-wrapper\" id=\"norki-filters-wrapper\">\n            <div class=\"norki-portfolio__filters\">\n                <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/\" class=\"norki-portfolio__filter-btn\" title=\"Consulter toutes nos r\u00e9alisations\">Toutes nos r\u00e9alisations<\/a>\n                <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/montagne\/\" class=\"norki-portfolio__filter-btn\" title=\"Voir nos r\u00e9alisations en montagne\">Montagne<\/a>\n                <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/bord-de-mer\/\" class=\"norki-portfolio__filter-btn\" title=\"Voir nos r\u00e9alisations en bord de mer\">Bord de Mer<\/a>\n                <button class=\"norki-portfolio__filter-btn is-active\" aria-current=\"page\" title=\"Vous consultez nos r\u00e9alisations en ville\">Ville<\/button>\n                <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/\" class=\"norki-portfolio__filter-btn\" title=\"Voir nos r\u00e9alisations h\u00f4teli\u00e8res\">H\u00f4tel<\/a>\n            <\/div>\n        <\/div>\n\n        <!-- Fl\u00e8che Droite -->\n        <button class=\"norki-filter-arrow norki-filter-arrow--right\" aria-label=\"D\u00e9filer \u00e0 droite\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n        <\/button>\n    <\/div>\n\n    <!-- Conteneur cible pour le JS -->\n    <div class=\"norki-portfolio__masonry\" id=\"norki-masonry-grid\">\n        <div class=\"norki-portfolio__column norki-portfolio__column--left\" id=\"norki-col-left\"><\/div>\n        <div class=\"norki-portfolio__column norki-portfolio__column--right\" id=\"norki-col-right\"><\/div>\n    <\/div>\n\n    <!-- Bouton Charger plus Minimaliste -->\n    <div class=\"norki-portfolio__actions\">\n        <button id=\"norki-load-more\" class=\"norki-portfolio__load-btn\">\n            <span class=\"norki-portfolio__load-dots\">&#8230;<\/span>\n            <span class=\"norki-portfolio__load-text\">Charger plus de r\u00e9alisations<\/span>\n        <\/button>\n    <\/div>\n\n    <!-- DONN\u00c9ES SOURCES (Cach\u00e9es - Le JS va piocher dedans) -->\n    <div class=\"norki-portfolio__source\" id=\"norki-items-source\">\n        \n        <!-- 1 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tapis-roots-claude-cartier-appartement-parisien.jpg\" alt=\"Appartement parisien\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Titre R\u00e9alisation \u2013 <span>Appartement parisien<\/span><\/p>\n        <\/a>\n\n        <!-- 2 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tailor-made-wall-to-wall-shearling-carpet-2.jpeg\" alt=\"Appartement Priv\u00e9 Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Titre R\u00e9alisation \u2013 <span>Appartement Priv\u00e9 Paris<\/span><\/p>\n        <\/a>\n\n        <!-- 3 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Milan-sur-meusre-Projet-prive-Brussels.jpg\" alt=\"Appartement Priv\u00e9 Bruxelles\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Titre R\u00e9alisation \u2013 <span>Appartement Priv\u00e9 Bruxelles<\/span><\/p>\n        <\/a>\n\n        <!-- 4 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/Marble-and-shearling-armchairs_Norki_v2.png\" alt=\"H\u00f4tel particulier parisien\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">R\u00e9sidence historique haussmannienne \u2013 <span>H\u00f4tel particulier parisien<\/span><\/p>\n        <\/a>\n\n        <!-- 5 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/plaid-en-renard-vert-sur-mesure.jpg\" alt=\"Appartement Priv\u00e9 Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Titre R\u00e9alisation \u2013 <span>Appartement Priv\u00e9 Paris<\/span><\/p>\n        <\/a>\n\n        <!-- 6 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg\" alt=\"Appartement Priv\u00e9 Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Titre R\u00e9alisation \u2013 <span>Appartement Priv\u00e9 Paris<\/span><\/p>\n        <\/a>\n\n        <!-- 7 -->\n        <a href=\"#\" class=\"norki-portfolio__item\">\n            <div class=\"norki-portfolio__img-wrapper\">\n                <img data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/banc-pierre-jeanneret-sur-mesure-v2.png\" alt=\"H\u00f4tel Particulier Paris\" class=\"norki-portfolio__img\">\n            <\/div>\n            <p class=\"norki-portfolio__caption avenirmedium-font\">Titre R\u00e9alisation \u2013 <span>H\u00f4tel Particulier Paris<\/span><\/p>\n        <\/a>\n\n    <\/div>\n\n<\/section>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n    \n    \/\/ --- 1. GESTION DES FL\u00c8CHES DU MENU FILTRES ---\n    const filtersWrapper = document.getElementById('norki-filters-wrapper');\n    const arrowLeft = document.querySelector('.norki-filter-arrow--left');\n    const arrowRight = document.querySelector('.norki-filter-arrow--right');\n\n    const updateFilterArrows = () => {\n        if (!filtersWrapper) return;\n        \n        \/\/ Tol\u00e9rance pour g\u00e9rer les arrondis de pixels selon les navigateurs\n        const scrollLeft = Math.ceil(filtersWrapper.scrollLeft);\n        const scrollWidth = filtersWrapper.scrollWidth;\n        const clientWidth = filtersWrapper.clientWidth;\n\n        \/\/ Afficher\/Cacher la fl\u00e8che gauche\n        if (scrollLeft > 5) {\n            arrowLeft.classList.add('is-visible');\n        } else {\n            arrowLeft.classList.remove('is-visible');\n        }\n\n        \/\/ Afficher\/Cacher la fl\u00e8che droite\n        if (scrollLeft + clientWidth < scrollWidth - 5) {\n            arrowRight.classList.add('is-visible');\n        } else {\n            arrowRight.classList.remove('is-visible');\n        }\n    };\n\n    if (filtersWrapper) {\n        filtersWrapper.addEventListener('scroll', updateFilterArrows);\n        window.addEventListener('resize', updateFilterArrows);\n        \n        \/\/ Initialisation apr\u00e8s un court d\u00e9lai pour s'assurer que les polices\/tailles sont charg\u00e9es\n        setTimeout(updateFilterArrows, 100);\n\n        if (arrowLeft) {\n            arrowLeft.addEventListener('click', () => {\n                filtersWrapper.scrollBy({ left: -250, behavior: 'smooth' });\n            });\n        }\n        if (arrowRight) {\n            arrowRight.addEventListener('click', () => {\n                filtersWrapper.scrollBy({ left: 250, behavior: 'smooth' });\n            });\n        }\n    }\n\n    \/\/ --- 2. GESTION DE LA GRILLE MASONRY ET CHARGEMENT ---\n    const sourceItems = Array.from(document.querySelectorAll('#norki-items-source .norki-portfolio__item'));\n    const colLeft = document.getElementById('norki-col-left');\n    const colRight = document.getElementById('norki-col-right');\n    const loadMoreBtn = document.getElementById('norki-load-more');\n    const loadMoreText = loadMoreBtn ? loadMoreBtn.querySelector('.norki-portfolio__load-text') : null;\n    \n    let currentIndex = 0;\n    const itemsPerLoad = 4; \/\/ Nombre d'images \u00e0 charger par clic\n\n    \/\/ Marges dynamiques augment\u00e9es pour donner plus d'air\n    function getDynamicMargin(ratio) {\n        if (window.innerWidth <= 768) return 60; \/\/ Marge fixe sur mobile pour la lisibilit\u00e9\n        \n        if (ratio <= 0.8) {\n            return 180; \/\/ Portrait (Haute) \n        } else if (ratio >= 1.2) {\n            return 110;  \/\/ Paysage (Large)\n        } else {\n            return 140;  \/\/ Format carr\u00e9 ou interm\u00e9diaire \n        }\n    }\n\n    \/\/ Traitement asynchrone : Attend que l'image soit pr\u00e9-charg\u00e9e pour mesurer son ratio\n    const processNextItem = (item) => {\n        return new Promise((resolve) => {\n            const img = item.querySelector('.norki-portfolio__img');\n            const src = img.getAttribute('data-src');\n            \n            const placeItemInDOM = () => {\n                \/\/ Calcul du ratio et de la marge dynamique\n                const ratio = img.naturalWidth \/ img.naturalHeight;\n                const margin = getDynamicMargin(ratio);\n                item.style.marginBottom = margin + 'px';\n\n                \/\/ Logique d'ajout : Forc\u00e9 \u00e0 gauche sur Mobile pour \u00e9viter les sauts d'\u00e9cran\n                if (window.innerWidth <= 768) {\n                    colLeft.appendChild(item);\n                } else {\n                    \/\/ Sur PC : Ajout dans la colonne la plus courte (pour \u00e9quilibrer)\n                    if (colLeft.offsetHeight <= colRight.offsetHeight) {\n                        colLeft.appendChild(item);\n                    } else {\n                        colRight.appendChild(item);\n                    }\n                }\n\n                \/\/ Animation d'apparition\n                requestAnimationFrame(() => {\n                    setTimeout(() => item.classList.add('is-visible'), 50);\n                });\n                \n                resolve();\n            };\n\n            \/\/ Pr\u00e9chargement fant\u00f4me pour r\u00e9cup\u00e9rer la taille exacte\n            const preloadImg = new Image();\n            preloadImg.onload = () => {\n                img.src = src;\n                img.removeAttribute('data-src');\n                placeItemInDOM();\n            };\n            preloadImg.onerror = () => {\n                img.src = src;\n                placeItemInDOM();\n            };\n            preloadImg.src = src;\n        });\n    };\n\n    \/\/ Fonction de chargement group\u00e9\n    const loadItems = async () => {\n        if (!loadMoreBtn || !loadMoreText) return;\n        \n        loadMoreBtn.classList.add('is-loading');\n        loadMoreText.textContent = \"Chargement en cours...\";\n\n        const endIndex = Math.min(currentIndex + itemsPerLoad, sourceItems.length);\n        \n        \/\/ Charge et place les images l'une apr\u00e8s l'autre pour garantir l'ordre chronologique\n        for (let i = currentIndex; i < endIndex; i++) {\n            await processNextItem(sourceItems[i]);\n        }\n\n        currentIndex = endIndex;\n        loadMoreBtn.classList.remove('is-loading');\n        loadMoreText.textContent = \"Charger plus de r\u00e9alisations\";\n\n        \/\/ Masque le bouton s'il n'y a plus d'images dans la div source\n        if (currentIndex >= sourceItems.length) {\n            loadMoreBtn.style.display = 'none';\n        }\n    };\n\n    \/\/ 1er Chargement (Initialisation)\n    loadItems();\n\n    \/\/ \u00c9couteur sur le bouton avec pr\u00e9vention du saut par d\u00e9faut\n    loadMoreBtn.addEventListener('click', (e) => {\n        e.preventDefault();\n        loadItems();\n    });\n});\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       SECTION CTA ARCHITECTE (Centr\u00e9e)\n       ========================================================================== *\/\n\n    .norki-cta-archi {\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        position: relative;\n        z-index: 10;\n        box-sizing: border-box;\n        text-align: center;\n        display: flex;\n        justify-content: center;\n    }\n\n    .norki-cta-archi__wrapper {\n        max-width: 650px; \/* Force les retours \u00e0 la ligne du paragraphe comme sur la maquette *\/\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 30px; \/* Espace r\u00e9gulier entre le titre, le texte et le bouton *\/\n    }\n\n    \/* --- Titres --- *\/\n    .norki-cta-archi__title {\n        margin: 0;\n        line-height: 1.25;\n        letter-spacing: -0.01em;\n    }\n\n    .norki-cta-archi__title-sans {\n        display: block;\n        font-size: clamp(1.4rem, 2.2vw, 30px);\n        font-weight: 500;\n        margin-bottom: 5px;\n    }\n\n    .norki-cta-archi__title-serif {\n        display: block;\n        font-size: clamp(1.6rem, 2.5vw, 34px);\n        font-weight: 400;\n    }\n\n    \/* --- Paragraphe --- *\/\n    .norki-cta-archi__text {\n        font-size: 0.95rem;\n        line-height: 1.5;\n        margin: 0;\n    }\n\n    \/* --- Liens int\u00e9gr\u00e9s (Design System) --- *\/\n    .norki-cta-archi__inline-link {\n        color: inherit;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 3px;\n        text-decoration-thickness: 1px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n    }\n\n    .norki-cta-archi__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* --- Bouton Secondaire --- *\/\n    .norki-cta-archi__btn {\n        display: inline-flex;\n        justify-content: center;\n        align-items: center;\n        padding: 4px 35px;\n        text-decoration: none;\n        font-size: 0.9rem;\n        font-weight: 500;\n        color: black;\n        background-color: transparent;\n        border: 1px solid black;\n        transition: all 0.3s ease;\n        margin-top: 10px; \/* L\u00e9ger espacement suppl\u00e9mentaire avec le texte *\/\n    }\n\n    .norki-cta-archi__btn:hover {\n        background-color: black;\n        color: white;\n    }\n\n    \/* --- Responsive --- *\/\n    @media (max-width: 1024px) {\n        .norki-cta-archi {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .norki-cta-archi__wrapper {\n            gap: 25px;\n        }\n    }\n\n    @media (max-width: 768px) {\n        .norki-cta-archi {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .norki-cta-archi__wrapper {\n            gap: 20px;\n        }\n\n        .norki-cta-archi__title-sans {\n            font-size: 1.3rem;\n        }\n\n        .norki-cta-archi__title-serif {\n            font-size: 1.45rem;\n        }\n    }\n<\/style>\n\n<section class=\"norki-cta-archi\">\n    <div class=\"norki-cta-archi__wrapper\">\n        \n        <!-- Titres -->\n        <h2 class=\"norki-cta-archi__title\">\n            <span class=\"norki-cta-archi__title-sans avenirmedium-font\">Vous \u00eates architecte et vous avez un projet<\/span>\n            <!-- Ajout du white-space: nowrap pour bloquer la c\u00e9sure -->\n            <span class=\"norki-cta-archi__title-serif baskerville-italic-font\">de tapis, plaids, coussins, ou mobilier <span style=\"white-space: nowrap;\" class=\"baskerville-italic-font\">sur-mesure ?<\/span><\/span>\n        <\/h2>\n\n        <!-- Texte d'accompagnement -->\n        <p class=\"norki-cta-archi__text\">\n            Pour <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/contactez-nous\/\" class=\"norki-cta-archi__inline-link\" title=\"Nous contacter pour recevoir un devis personnalis\u00e9\">recevoir un devis personnalis\u00e9<\/a> sur la confection de <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/decoration-interieur-haut-de-gamme\/\" class=\"norki-cta-archi__inline-link\" title=\"D\u00e9couvrir nos cr\u00e9ations sur-mesure d'ameublement\">pi\u00e8ces sur\u2011mesure<\/a> ou obtenir plus d&rsquo;informations sur nos services de <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/pose-installation-tapisserie-ameublement-luxe\/\" class=\"norki-cta-archi__inline-link\" title=\"En savoir plus sur nos services de pose et d'installation\">pose et installation<\/a>, nos <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/bureau-etudes-conception-mobilier-tapis\/\" class=\"norki-cta-archi__inline-link\" title=\"D\u00e9couvrir notre bureau d'\u00e9tudes int\u00e9gr\u00e9\">\u00e9quipes sp\u00e9cialis\u00e9es<\/a> se feront un plaisir de vous aider.\n        <\/p>\n\n        <!-- Bouton d'action -->\n        <a href=\"https:\/\/api.whatsapp.com\/send?phone=33647923857\" class=\"norki-cta-archi__btn\" target=\"_blank\" rel=\"noopener\" title=\"Contactez notre service commercial sur WhatsApp\">Whatsapp us<\/a>\n        \n    <\/div>\n<\/section>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Titre R\u00e9alisation Appartement Priv\u00e9 Paris Titre R\u00e9alisation Appartement Priv\u00e9 Paris R\u00e9sidence historique haussmannienne H\u00f4tel particulier parisien D\u00e9couvrir Le savoir-faire Norki au c\u0153ur des capitales mondiales L\u2019\u00c9l\u00e9gance Urbaine De la cr\u00e9ation de vastes tapis monochromes noirs \u00e0 la restauration m\u00e9ticuleuse de mobilier vintage du milieu du XX\u00e8me si\u00e8cle, nos Ateliers d\u00e9ploient une expertise rare pour sublimer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2251,"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-2449","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Projets Urbains | R\u00e9alisations Int\u00e9rieures | Maison NORKI<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez les r\u00e9alisations Norki en milieu urbain : tapis, mobilier et tapisserie sur-mesure pour appartements et r\u00e9sidences de ville d\u2019exception.\" \/>\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\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Projets Urbains | R\u00e9alisations Int\u00e9rieures | Maison NORKI\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez les r\u00e9alisations Norki en milieu urbain : tapis, mobilier et tapisserie sur-mesure pour appartements et r\u00e9sidences de ville d\u2019exception.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/\" \/>\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-06-10T14:00:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/\",\"name\":\"Projets Urbains | R\u00e9alisations Int\u00e9rieures | Maison NORKI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bespoke-coyote-rug-paris-appartment.jpg\",\"datePublished\":\"2026-05-13T11:04:42+00:00\",\"dateModified\":\"2026-06-10T14:00:33+00:00\",\"description\":\"D\u00e9couvrez les r\u00e9alisations Norki en milieu urbain : tapis, mobilier et tapisserie sur-mesure pour appartements et r\u00e9sidences de ville d\u2019exception.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/#primaryimage\",\"url\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bespoke-coyote-rug-paris-appartment.jpg\",\"contentUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bespoke-coyote-rug-paris-appartment.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nos r\u00e9alisations\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ville\"}]},{\"@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":"Projets Urbains | R\u00e9alisations Int\u00e9rieures | Maison NORKI","description":"D\u00e9couvrez les r\u00e9alisations Norki en milieu urbain : tapis, mobilier et tapisserie sur-mesure pour appartements et r\u00e9sidences de ville d\u2019exception.","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\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/","og_locale":"fr_FR","og_type":"article","og_title":"Projets Urbains | R\u00e9alisations Int\u00e9rieures | Maison NORKI","og_description":"D\u00e9couvrez les r\u00e9alisations Norki en milieu urbain : tapis, mobilier et tapisserie sur-mesure pour appartements et r\u00e9sidences de ville d\u2019exception.","og_url":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-06-10T14:00:33+00:00","og_image":[{"url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/","url":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/","name":"Projets Urbains | R\u00e9alisations Int\u00e9rieures | Maison NORKI","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/#primaryimage"},"thumbnailUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg","datePublished":"2026-05-13T11:04:42+00:00","dateModified":"2026-06-10T14:00:33+00:00","description":"D\u00e9couvrez les r\u00e9alisations Norki en milieu urbain : tapis, mobilier et tapisserie sur-mesure pour appartements et r\u00e9sidences de ville d\u2019exception.","breadcrumb":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/#primaryimage","url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg","contentUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/sur-mesure\/fr\/"},{"@type":"ListItem","position":2,"name":"Nos r\u00e9alisations","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/"},{"@type":"ListItem","position":3,"name":"Ville"}]},{"@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":"Titre R\u00e9alisation Appartement Priv\u00e9 Paris Titre R\u00e9alisation Appartement Priv\u00e9 Paris R\u00e9sidence historique haussmannienne H\u00f4tel particulier parisien D\u00e9couvrir Le savoir-faire Norki au c\u0153ur des capitales mondiales L\u2019\u00c9l\u00e9gance Urbaine De la cr\u00e9ation de vastes tapis monochromes noirs \u00e0 la restauration m\u00e9ticuleuse de mobilier vintage du milieu du XX\u00e8me si\u00e8cle, nos Ateliers d\u00e9ploient une expertise rare pour sublimer\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/2449","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=2449"}],"version-history":[{"count":28,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/2449\/revisions"}],"predecessor-version":[{"id":4550,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/2449\/revisions\/4550"}],"up":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/2251"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=2449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=2449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=2449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}