{"id":4862,"date":"2026-07-10T15:03:09","date_gmt":"2026-07-10T13:03:09","guid":{"rendered":"https:\/\/www.norki.com\/sur-mesure\/?page_id=4862"},"modified":"2026-07-16T13:03:02","modified_gmt":"2026-07-16T11:03:02","slug":"tala-fustok-paris","status":"publish","type":"page","link":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/","title":{"rendered":"Tala-Fustok"},"content":{"rendered":"\n<section class=\"nk-hero\">\n  <div class=\"nk-hero__bg\">\n    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg\" alt=\"Appartement Haussmannien avec tapis monumental sur-mesure par Tala Fustok\" loading=\"eager\">\n    <div class=\"nk-hero__overlay\"><\/div>\n  <\/div>\n\n  <div class=\"nk-hero__content\">\n    <div class=\"nk-hero__header\">\n      <div class=\"nk-hero__title-wrapper\">\n        <h1 class=\"nk-hero__title avenirmedium-font\">Appartement Haussmannien Tala Fustok<\/h1>\n      <\/div>\n      <div class=\"nk-hero__subtitle-wrapper\">\n        <span class=\"nk-hero__subtitle baskerville-italic-font\">\n          Paris 16<span class=\"nk-hero__superscript baskerville-italic-font\">e<\/span> &#8211; France\n        <\/span>\n      <\/div>\n    <\/div>\n\n    <hr class=\"nk-hero__divider\">\n\n    <div class=\"nk-hero__meta\">\n      <span class=\"nk-hero__meta-item avenirmedium-font\">Paris 16<span class=\"nk-hero__superscript\">e<\/span>, France<\/span>\n      <span class=\"nk-hero__meta-item avenirmedium-font\">2021<\/span>\n      <span class=\"nk-hero__meta-item\">Tapis Monumentale Sur-Mesure<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n.nk-hero {\n  position: relative;\n  width: 100%;\n  \/* Height set above 100vh to naturally nudge users to scroll down *\/\n  height: 120vh;\n  min-height: 700px;\n  overflow: hidden;\n  background-color: #000000;\n}\n\n.nk-hero__bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 1;\n}\n\n.nk-hero__bg img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: center center;\n  display: block;\n}\n\n\/* Linear gradient overlay for solid text legibility *\/\n.nk-hero__overlay {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 40%;\n  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\n  z-index: 2;\n  pointer-events: none;\n}\n\n.nk-hero__content {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  z-index: 3;\n  padding: 0 40px 40px 40px;\n  color: #ffffff;\n  box-sizing: border-box;\n}\n\n\/* Header Text (Titres - Larger typography and higher positioning) *\/\n.nk-hero__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  margin-bottom: 35px; \/* Spacing increased to detach the title row from the line below *\/\n  gap: 20px;\n  width: 100%;\n}\n\n.nk-hero__title-wrapper {\n  flex: 1 1 65%;\n  max-width: calc(100% - 250px);\n}\n\n.nk-hero__subtitle-wrapper {\n  flex: 0 0 auto;\n  text-align: right;\n  min-width: max-content;\n}\n\n.nk-hero__title {\n  color: white;\n  font-size: clamp(2.2rem, 3.2vw, 3.2rem); \/* Larger fluid font size *\/\n  letter-spacing: 0.02em;\n  line-height: 1.1;\n  font-weight: normal;\n  margin: 0;\n}\n\n.nk-hero__subtitle {\n  font-size: clamp(2.2rem, 3.2vw, 3.2rem); \/* Larger fluid font size to match title *\/\n  line-height: 1.1;\n  font-weight: normal;\n  display: block;\n}\n\n\/* Superscript \"e\" customis\u00e9 \n  Utilisation de position relative pour un contr\u00f4le parfait (\"pixel-perfect\") \n  plut\u00f4t que vertical-align qui peut alt\u00e9rer le line-height.\n*\/\n.nk-hero__superscript {\n  font-size: 0.55em;\n  position: relative;\n  top: -0.45em;\n  vertical-align: baseline;\n}\n\n\/* White Divider *\/\n.nk-hero__divider {\n  width: 100%;\n  height: 1px;\n  background-color: rgba(255, 255, 255, 0.6);\n  border: none;\n  margin-bottom: 16px;\n}\n\n\/* Meta Informations (Equal spacing layout) *\/\n.nk-hero__meta {\n  display: flex;\n  justify-content: flex-start;\n  gap: 40px; \/* Equal spacing between each item *\/\n}\n\n.nk-hero__meta-item {\n  font-size: 0.75rem;\n  letter-spacing: 0.05em;\n  text-transform: capitalize;\n}\n\n\/* ============================================\n    RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n  .nk-hero__content {\n    padding: 0 30px 30px 30px;\n  }\n  .nk-hero__title,\n  .nk-hero__subtitle {\n    font-size: clamp(1.8rem, 2.8vw, 2.4rem);\n  }\n  .nk-hero__meta {\n    gap: 30px;\n  }\n}\n\n\/* ============================================\n    RESPONSIVE MOBILE (\u2264 640px)\n============================================ *\/\n@media (max-width: 640px) {\n  .nk-hero {\n    height: 110vh;\n  }\n\n  .nk-hero__bg img {\n    object-position: 40% center;\n  }\n\n  .nk-hero__content {\n    padding: 0 20px 24px 20px;\n  }\n\n  .nk-hero__header {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 8px;\n    margin-bottom: 20px;\n  }\n\n  .nk-hero__title-wrapper,\n  .nk-hero__subtitle-wrapper {\n    flex: none;\n    max-width: 100%;\n    min-width: 0;\n  }\n\n  .nk-hero__subtitle-wrapper {\n    text-align: left;\n  }\n\n  .nk-hero__title {\n    font-size: 1.8rem;\n  }\n\n  .nk-hero__subtitle {\n    font-size: 1.7rem;\n  }\n\n  \/* Configuration du scroll horizontal fluide sur mobile *\/\n  .nk-hero__meta {\n    flex-wrap: nowrap; \/* Maintient les \u00e9l\u00e9ments sur 1 ligne *\/\n    gap: 25px; \/* Espacement raisonnable *\/\n    overflow-x: auto; \/* Autorise le scroll *\/\n    -webkit-overflow-scrolling: touch; \/* Inertie iOS *\/\n    scrollbar-width: none; \/* Cache la barre Firefox *\/\n    -ms-overflow-style: none; \/* Cache la barre IE\/Edge *\/\n    padding-bottom: 2px;\n    padding-left: 8px; \/* Ajout d'une marge de s\u00e9curit\u00e9 pour \u00e9viter que la premi\u00e8re lettre soit rogn\u00e9e *\/\n    padding-right: 8px;\n  }\n\n  \/* Cache la scrollbar sur Chrome\/Safari *\/\n  .nk-hero__meta::-webkit-scrollbar {\n    display: none;\n  }\n\n  .nk-hero__meta-item {\n    white-space: nowrap; \/* Emp\u00eache de passer \u00e0 la ligne \u00e0 l'int\u00e9rieur d'un item *\/\n    flex-shrink: 0; \/* Emp\u00eache le texte d'\u00eatre \u00e9cras\u00e9 *\/\n  }\n\n  .nk-hero__meta-item:nth-child(3) {\n    margin-left: 0;\n    flex-basis: auto;\n    margin-top: 0;\n  }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n  const metaContainer = document.querySelector('.nk-hero__meta');\n  if (!metaContainer) return;\n\n  let isAnimating = false;\n  let animationFrameId;\n  let direction = 1; \/\/ 1 = droite, -1 = gauche\n  let speed = 0.5; \/\/ Vitesse divis\u00e9e par 3 (0.5 pixel par frame pour une douceur maximale)\n  let resumeTimeout;\n  let extremityTimeout; \/\/ Identifiant pour la pause aux extr\u00e9mit\u00e9s et au chargement\n  let isInteracting = false;\n  let isPausedAtExtremity = false; \/\/ Verrou de temporisation\n  let currentScroll = metaContainer.scrollLeft;\n\n  \/\/ Fonction d'animation \"va-et-vient\"\n  function autoScroll() {\n    if (isInteracting) return;\n    if (isPausedAtExtremity) {\n       animationFrameId = requestAnimationFrame(autoScroll);\n       return;\n    }\n\n    \/\/ Si le conteneur ne d\u00e9borde pas (ex: sur PC), on ne fait rien\n    if (metaContainer.scrollWidth <= metaContainer.clientWidth) {\n       animationFrameId = requestAnimationFrame(autoScroll);\n       return;\n    }\n\n    currentScroll += speed * direction;\n    metaContainer.scrollLeft = Math.round(currentScroll);\n\n    const maxScroll = metaContainer.scrollWidth - metaContainer.clientWidth;\n\n    \/\/ PROTECTION ANTI-WORDPRESS : Remplacement des esperluettes \"&#038;&#038;\" par des IF imbriqu\u00e9s\n    if (direction === 1) {\n      if (metaContainer.scrollLeft >= maxScroll - 1) {\n        isPausedAtExtremity = true;\n        extremityTimeout = setTimeout(() => {\n          direction = -1;\n          currentScroll = metaContainer.scrollLeft;\n          isPausedAtExtremity = false;\n        }, 2000); \/\/ Attente de 2 secondes \u00e0 l'extr\u00e9mit\u00e9 droite\n      }\n    } else if (direction === -1) {\n      if (metaContainer.scrollLeft <= 1) {\n        isPausedAtExtremity = true;\n        extremityTimeout = setTimeout(() => {\n          direction = 1;\n          currentScroll = metaContainer.scrollLeft;\n          isPausedAtExtremity = false;\n        }, 2000); \/\/ Attente de 2 secondes \u00e0 l'extr\u00e9mit\u00e9 gauche\n      }\n    }\n\n    animationFrameId = requestAnimationFrame(autoScroll);\n  }\n\n  \/\/ D\u00e9marrer l'animation\n  function startAnimation() {\n    if (!isAnimating) {\n      isAnimating = true;\n      currentScroll = metaContainer.scrollLeft; \/\/ Synchronisation initiale\n\n      \/\/ PAUSE INITIALE DE 2 SECONDES AU CHARGEMENT \/ APPARITION \u00c0 L'\u00c9CRAN\n      isPausedAtExtremity = true;\n      clearTimeout(extremityTimeout);\n      extremityTimeout = setTimeout(() => {\n        isPausedAtExtremity = false;\n      }, 2000);\n\n      autoScroll();\n    }\n  }\n\n  \/\/ Arr\u00eater l'animation\n  function stopAnimation() {\n    isAnimating = false;\n    cancelAnimationFrame(animationFrameId);\n  }\n\n  \/\/ Gestion des interactions (pause l'animation, puis la reprend)\n  function handleInteraction() {\n    isInteracting = true;\n    isPausedAtExtremity = false; \/\/ Reset de la pause en cas de geste\n    clearTimeout(extremityTimeout); \/\/ Annulation du d\u00e9lai d'attente initial ou d'extr\u00e9mit\u00e9\n    stopAnimation();\n    clearTimeout(resumeTimeout);\n\n    \/\/ Reprise de l'animation apr\u00e8s 3 secondes d'inactivit\u00e9\n    resumeTimeout = setTimeout(() => {\n      isInteracting = false;\n      \/\/ Ne relance que si on est sur mobile\n      if (window.innerWidth <= 640) {\n        currentScroll = metaContainer.scrollLeft; \/\/ Resync\n        startAnimation();\n      }\n    }, 3000);\n  }\n\n  \/\/ Intersection Observer pour lancer l'animation uniquement si visible \u00e0 l'\u00e9cran\n  const observer = new IntersectionObserver((entries) => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        \/\/ Uniquement sur mobile\n        if (window.innerWidth <= 640) {\n            startAnimation();\n        }\n      } else {\n        stopAnimation();\n      }\n    });\n  }, { threshold: 0 });\n\n  observer.observe(metaContainer);\n\n  \/* \u00c9couteurs d'\u00e9v\u00e9nements corrig\u00e9s (touch uniquement pour \u00e9viter les conflits) *\/\n  metaContainer.addEventListener('touchstart', () => {\n    currentScroll = metaContainer.scrollLeft;\n    handleInteraction();\n  }, { passive: true });\n\n  metaContainer.addEventListener('touchmove', () => {\n    currentScroll = metaContainer.scrollLeft;\n    handleInteraction();\n  }, { passive: true });\n\n  metaContainer.addEventListener('wheel', handleInteraction, { passive: true });\n\n  \/\/ Reset ou d\u00e9marrage en cas de redimensionnement de la fen\u00eatre\n  window.addEventListener('resize', () => {\n    if (window.innerWidth > 640) {\n       stopAnimation();\n       metaContainer.scrollLeft = 0; \/\/ Remise \u00e0 z\u00e9ro si repasse sur Desktop\n       currentScroll = 0;\n    } else {\n       if (!isInteracting) {\n         startAnimation();\n       }\n    }\n  });\n});\n<\/script>\n\n\n\n<section class=\"nk-intro\">\n  <div class=\"nk-intro__inner\">\n    <div class=\"nk-intro__header\">\n      <h2 class=\"nk-intro__title avenirmedium-font\">\n        Un \u00c9crin historique\n        <span class=\"nk-intro__title-accent baskerville-italic-font\">\n          au c\u0153ur des \u00e9tages nobles<br>\n          de la capitale\n        <\/span>\n      <\/h2>\n    <\/div>\n    \n    <div class=\"nk-intro__content\">\n      <p class=\"nk-intro__paragraph\">\n        C\u2019est dans l\u2019un des quartiers les plus prestigieux de <a href=\"https:\/\/www.paris.fr\/\" class=\"nk-intro__inline-link\" title=\"D\u00e9couvrir Paris\">Paris<\/a>, au sein du 16<span class=\"nk-intro__superscript\">\u00e8me<\/span> arrondissement, que les <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/\" class=\"nk-intro__inline-link\" title=\"D\u00e9couvrir les Ateliers Norki\">Ateliers Norki<\/a> ont eu le privil\u00e8ge de participer \u00e0 une r\u00e9novation d\u2019exception. Situ\u00e9 dans les \u00e9tages nobles d\u2019un immeuble de grand standing, cet appartement de 250 m\u00b2 incarne l\u2019essence m\u00eame de l\u2019architecture Haussmannienne. Avec ses volumes impressionnants, ses moulures finement cisel\u00e9es, ses chemin\u00e9es en marbre et son parquet Versailles d\u2019origine, le lieu impose une certaine solennit\u00e9.\n      <\/p>\n      <p class=\"nk-intro__paragraph\">\n        Toutefois, l\u2019ambition de ce projet n\u2019\u00e9tait pas de se fondre dans le classicisme traditionnel. Il s\u2019agissait de bousculer les codes, d\u2019apporter une modernit\u00e9 organique et une douceur \u00e0 cet environnement de pierre et de bois. Pour orchestrer cette m\u00e9tamorphose, la propri\u00e9taire a fait appel au talent singulier de <a href=\"https:\/\/talafustok.studio\/\" class=\"nk-intro__inline-link\" title=\"Visiter le site de Tala Fustok\">Tala Fustok<\/a>.\n      <\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n\/* D\u00e9finition des variables locales pour la pr\u00e9visualisation isol\u00e9e. \n  Dans un environnement de production avec Importation DA, ces variables seront g\u00e9r\u00e9es globalement. \n*\/\n:root {\n  --color-norki-beige: #f4eee9; \/* Couleur de fond extraite du visuel *\/\n  --section-pad-v-dt: 100px;\n  --section-pad-h-dt: 40px;\n  --section-pad-v-tab: 60px;\n  --section-pad-h-tab: 30px;\n  --section-pad-v-mob: 50px;\n  --section-pad-h-mob: 20px;\n}\n\n.nk-intro {\n  background-color: var(--color-norki-beige);\n  padding: var(--section-pad-v-dt) var(--section-pad-h-dt);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  box-sizing: border-box;\n}\n\n.nk-intro__inner {\n  width: 100%;\n  display: grid;\n  grid-template-columns: 1fr 1.6fr; \/* Ratio asym\u00e9trique \u00e9l\u00e9gant *\/\n  gap: clamp(40px, 6vw, 100px); \/* Espacement horizontal fluide *\/\n  align-items: start; \/* \"start\" plut\u00f4t que \"stroke\" pour un alignement par le haut *\/\n}\n\n\/* Liens inline (soulignement \u00e9l\u00e9gant) *\/\n.nk-intro__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.nk-intro__inline-link:hover {\n  text-decoration-color: transparent;\n  opacity: 0.7;\n}\n\n\/* Gestion du \"\u00e8me\" exposant *\/\n.nk-intro__superscript {\n  font-size: 0.55em;\n  position: relative;\n  top: -0.45em;\n  vertical-align: baseline;\n}\n\n\/* Colonne de gauche : Titre *\/\n.nk-intro__header {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n\n.nk-intro__title {\n  font-size: clamp(1.4rem, 2.2vw, 25px);\n  line-height: 1.3;\n  color: #000000;\n  font-weight: normal;\n  letter-spacing: -0.01em;\n  margin: 0 !important; \/* Neutralise les surcharges th\u00e8mes *\/\n}\n\n.nk-intro__title-accent {\n  display: block;\n  font-size: 1.05em; \/* Ajustement pour correspondre visuellement \u00e0 la maquette *\/\n  color: #000000;\n  margin-top: 4px;\n}\n\n\/* Colonne de droite : Paragraphes *\/\n.nk-intro__content {\n  display: flex;\n  flex-direction: column;\n  gap: 24px; \/* Espace \u00e9quilibr\u00e9 entre les blocs de texte *\/\n  justify-content: flex-start;\n}\n\n.nk-intro__paragraph {\n  font-size: clamp(0.92rem, 1.1vw, 1.05rem);\n  line-height: 1.7;\n  color: #000000;\n  letter-spacing: 0.01em;\n  max-width: 90%; \/* Ajust\u00e9 \u00e0 90% pour un meilleur remplissage de l'espace comme sur le visuel *\/\n  margin: 0 !important;\n}\n\n\/* ============================================\n  RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n  .nk-intro {\n    padding: var(--section-pad-v-tab) var(--section-pad-h-tab);\n  }\n  \n  .nk-intro__inner {\n    grid-template-columns: 1fr; \/* Passage sur une colonne *\/\n    gap: 32px;\n  }\n  \n  .nk-intro__title {\n    max-width: 90%;\n  }\n\n  .nk-intro__paragraph {\n    text-align: left; \/* Plus naturel sur \u00e9crans moyens et tactiles *\/\n    max-width: 100%;\n  }\n}\n\n\/* ============================================\n  RESPONSIVE MOBILE (\u2264 640px)\n============================================ *\/\n@media (max-width: 640px) {\n  .nk-intro {\n    padding: var(--section-pad-v-mob) var(--section-pad-h-mob);\n  }\n  \n  .nk-intro__inner {\n    gap: 24px;\n  }\n  \n  .nk-intro__title {\n    max-width: 100%;\n  }\n  \n  .nk-intro__title-accent {\n    margin-top: 4px;\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-simple-image\">\n  <!-- Image cliquable -->\n  <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapis-sur-mesure-peau-fourrure\/\" class=\"nk-simple-image__wrapper\" title=\"D\u00e9couvrir les tapis sur mesure Ateliers Norki\">\n    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/1727862214509.jpeg\" alt=\"Tapis monumental mur \u00e0 mur sur-mesure dans l'appartement Haussmannien Tala Fustok\" class=\"nk-simple-image__img\" loading=\"lazy\">\n  <\/a>\n  \n  <!-- L\u00e9gende cliquable avec le style \u00e9ditorial demand\u00e9 -->\n  <div class=\"nk-simple-image__caption\">\n    <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapis-sur-mesure-peau-fourrure\/\" class=\"nk-editorial-inline-link\" title=\"D\u00e9couvrir les tapis sur mesure Ateliers Norki\">\n      Tapis mur \u00e0 mur sur-mesure\n    <\/a>\n  <\/div>\n<\/section>\n\n<style>\n\/* Variables de mise en page coh\u00e9rentes avec la charte graphique *\/\n:root {\n  --color-norki-beige: #f4eee9; \/* Couleur beige clair fid\u00e8le au reste de la page *\/\n  --section-pad-h-dt: 40px;\n  --section-pad-h-tab: 30px;\n  --section-pad-h-mob: 20px;\n}\n\n\/* ============================================\n  COMPOSANT : SECTION IMAGE UNIQUE IMMERSIVE\n============================================ *\/\n.nk-simple-image {\n  width: 100%;\n  background-color: var(--color-norki-beige, #f4eee9);\n  line-height: 0; \/* \u00c9vite un d\u00e9calage de pixel parasite sous l'image *\/\n  overflow: hidden;\n  padding-bottom: 25px; \/* Espace de respiration sous la l\u00e9gende *\/\n}\n\n.nk-simple-image__wrapper {\n  display: block; \/* N\u00e9cessaire pour la balise <a> cliquable *\/\n  width: 100%;\n  height: 85vh; \/* Hauteur immersive et \u00e9l\u00e9gante sur PC *\/\n  min-height: 500px;\n  overflow: hidden;\n}\n\n.nk-simple-image__img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: center center; \/* Centrage \u00e9quilibr\u00e9 par d\u00e9faut sur PC *\/\n  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);\n}\n\n\/* L\u00e9ger effet de zoom luxueux et fluide au survol *\/\n.nk-simple-image__wrapper:hover .nk-simple-image__img {\n  transform: scale(1.02);\n}\n\n\/* Styles des l\u00e9gendes sous les images *\/\n.nk-simple-image__caption {\n  display: block;\n  font-size: 0.8rem; \n  font-style: italic;\n  margin-top: 15px;\n  text-align: right;\n  color: #000000;\n  line-height: normal; \/* Annule le line-height 0 du parent pour l'affichage de texte *\/\n  padding-right: var(--section-pad-h-dt, 40px); \/* Alignement sur la grille \u00e0 droite *\/\n}\n\n\/* Style de lien \u00e9ditorial *\/\n.nk-editorial-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.nk-editorial-inline-link:hover {\n  text-decoration-color: transparent;\n  opacity: 0.7;\n}\n\n\/* ============================================\n  RESPONSIVE MOBILE ET TABLETTE\n============================================ *\/\n@media (max-width: 1024px) {\n  .nk-simple-image__caption {\n    padding-right: var(--section-pad-h-tab, 30px);\n  }\n}\n\n@media (max-width: 640px) {\n  .nk-simple-image__wrapper {\n    height: 70vh; \/* Hauteur ajust\u00e9e pour un cadrage vertical sur mobile *\/\n    min-height: 400px;\n  }\n\n  .nk-simple-image__img {\n    object-position: center center; \/* Reste centr\u00e9 pour valoriser au mieux la texture du tapis *\/\n  }\n\n  .nk-simple-image__caption {\n    padding-right: var(--section-pad-h-mob, 20px);\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-resonance\">\n    <div class=\"nk-resonance__inner\">\n        \n        <!-- Colonne Gauche : Texte + Image Portrait Assise -->\n        <div class=\"nk-resonance__col-left\">\n            <div class=\"nk-resonance__text-block\">\n                <h2 class=\"nk-resonance__title avenirmedium-font\">\n                    La vision de Tala Fustok :<br>Un dialogue entre Londres et Paris\n                <\/h2>\n                <p class=\"nk-resonance__paragraph\">\n                    Bas\u00e9e \u00e0 Londres, Tala Fustok est une architecte d&rsquo;int\u00e9rieur dont la renomm\u00e9e repose sur sa capacit\u00e9 \u00e0 cr\u00e9er des sanctuaires urbains empreints de s\u00e9r\u00e9nit\u00e9 et d&rsquo;audace. Comme le souligne son studio, Tala puise son inspiration dans une approche holistique, privil\u00e9giant les textures naturelles et les formes courbes pour apaiser l&rsquo;esprit. Son travail se distingue par une s\u00e9lection m\u00e9ticuleuse d&rsquo;artisans capables de traduire ses concepts abstraits en r\u00e9alit\u00e9s tangibles.\n                <\/p>\n            <\/div>\n            \n            <div class=\"nk-resonance__img-wrapper-left\">\n                <!-- \u00c0 remplacer par l'URL de la femme assise sur le canap\u00e9 textur\u00e9 -->\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Tala-Fustok-Portrait.jpg\" alt=\"Portrait de Tala Fustok assise sur un canap\u00e9 aux textures naturelles\" class=\"nk-resonance__img\" loading=\"lazy\">\n            <\/div>\n        <\/div>\n\n        <!-- Colonne Droite : Image Duo + Signature -->\n        <div class=\"nk-resonance__col-right\">\n            <div class=\"nk-resonance__img-wrapper-right\">\n                <!-- \u00c0 remplacer par l'URL des deux femmes sous l'arche -->\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Galette-agneau-rase.jpg\" alt=\"Tala Fustok et une collaboratrice sous une arche architecturale\" class=\"nk-resonance__img\" loading=\"lazy\">\n            <\/div>\n            <div class=\"nk-resonance__signature-wrapper\">\n                <span class=\"nk-resonance__signature bestermind-font\">Tala Fustok<\/span>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SECTION R\u00c9SONANCE (Asym\u00e9trique)\n       ========================================================================== *\/\n    .nk-resonance {\n        width: 100%;\n        background-color: var(--color-norki-beige, #f4eee9); \/* Alignement sur le beige du projet *\/\n        \/* Application des variables de DA globales *\/\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 40px);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: center;\n    }\n\n    .nk-resonance__inner {\n        width: 100%;\n        display: grid;\n        grid-template-columns: 4.5fr 5.5fr; \/* Colonne droite l\u00e9g\u00e8rement plus large *\/\n        gap: clamp(40px, 8vw, 120px);\n        align-items: start; \/* Aligne le haut du texte avec le haut de l'image de droite *\/\n    }\n\n    \/* ==========================================================================\n       COLONNE GAUCHE (Texte + Image)\n       ========================================================================== *\/\n    .nk-resonance__col-left {\n        display: flex;\n        flex-direction: column;\n    }\n\n    .nk-resonance__text-block {\n        margin-bottom: clamp(40px, 6vw, 80px); \/* Espace important entre le texte et l'image *\/\n    }\n\n    .nk-resonance__title {\n        font-size: clamp(1.4rem, 2.5vw, 35px);\n        line-height: 1.2;\n        color: #000000;\n        font-weight: 500;\n        margin: 0 0 20px 0 !important;\n        letter-spacing: -0.01em;\n    }\n\n    .nk-resonance__paragraph {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        color: #000000;\n        margin: 0 !important;\n        max-width: 95%; \/* Laisse un l\u00e9ger souffle \u00e0 droite du texte *\/\n    }\n\n    .nk-resonance__link {\n        color: inherit;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 3px;\n        text-decoration-thickness: 1px;\n        font-weight: 500;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n    }\n\n    .nk-resonance__link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    .nk-resonance__img-wrapper-left {\n        width: 70%;\n        margin-right: auto; \/* Aligne l'image \u00e0 gauche dans sa colonne sur PC *\/\n        overflow: hidden; \/* Masque le d\u00e9bordement lors du scale *\/\n    }\n\n    \/* ==========================================================================\n       COLONNE DROITE (Portrait + Signature)\n       ========================================================================== *\/\n    .nk-resonance__col-right {\n        display: flex;\n        flex-direction: column;\n        align-items: flex-end; \n    }\n\n    .nk-resonance__img-wrapper-right {\n        width: 70%; \n        overflow: hidden;\n    }\n\n    .nk-resonance__signature-wrapper {\n        margin-top: 25px;\n        width: 70%;\n        text-align: center;\n    }\n\n    .nk-resonance__signature {\n        font-size: clamp(2rem, 3.5vw, 42px);\n        color: #000000;\n        line-height: 1;\n    }\n\n    \/* ==========================================================================\n       STYLES COMMUNS IMAGES AVEC ZOOM (DA)\n       ========================================================================== *\/\n    .nk-resonance__img {\n        width: 100%;\n        height: auto;\n        display: block;\n        object-fit: cover;\n        transform: scale(1); \/* Initialise la taille *\/\n        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n    }\n\n    \/* Zoom interactif progressif de la DA sur les deux images *\/\n    .nk-resonance__img-wrapper-left:hover .nk-resonance__img,\n    .nk-resonance__img-wrapper-right:hover .nk-resonance__img {\n        transform: scale(1.03);\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE TABLETTE (\u2264 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .nk-resonance {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 30px);\n        }\n        \n        .nk-resonance__inner {\n            grid-template-columns: 1fr 1fr; \/* On passe sur un ratio 50\/50 pour \u00e9quilibrer sur tablette *\/\n            gap: 40px;\n        }\n\n        .nk-resonance__img-wrapper-left {\n            width: 90%; \/* On agrandit l'image de gauche sur tablette *\/\n        }\n        \n        .nk-resonance__paragraph {\n            max-width: 100%;\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE MOBILE (\u2264 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .nk-resonance {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .nk-resonance__inner {\n            grid-template-columns: 1fr; \/* Passage sur 1 seule colonne *\/\n            gap: 40px; \n        }\n\n        \/* Image de gauche *\/\n        .nk-resonance__img-wrapper-left {\n            width: 85%; \/* L'image s'arr\u00eate avant le bord droit selon ta maquette *\/\n            margin-left: 0; \n            order: 2; \/* L'image se place sous le texte *\/\n        }\n        \n        \/* Colonne de droite *\/\n        .nk-resonance__col-right {\n            order: 3; \/* Se place en dernier *\/\n            align-items: center; \/* Sur mobile, on centre le portrait et la signature *\/\n            margin-top: 20px; \n        }\n\n        .nk-resonance__img-wrapper-right {\n            width: 100%; \/* Le portrait reprend toute la largeur sur mobile *\/\n        }\n\n        .nk-resonance__signature-wrapper {\n             width: 100%; \n        }\n    }\n<\/style>\n\n\n\n<section class=\"nk-split-text\">\n    <div class=\"nk-split-text__inner\">\n        \n        <!-- IMAGE (Envelopp\u00e9e pour pr\u00e9server l'effet Zoom 1.03) -->\n        <div class=\"nk-split-text__image-wrapper\">\n            <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/950c3-61882.jpg\" alt=\"D\u00e9tail du salon de l'appartement Haussmannien avec canap\u00e9 organique et table basse en bois pos\u00e9s sur le tapis mur-\u00e0-mur sur-mesure\" class=\"nk-split-text__image\" loading=\"lazy\">\n        <\/div>\n\n        <!-- BLOC TEXTE HAUT (Enfant direct pour Grid) -->\n        <div class=\"nk-split-text__block-top\">\n            <p class=\"nk-split-text__paragraph\">\n                Pour cet appartement parisien, Tala Fustok a imagin\u00e9 un sol qui ne serait pas un simple rev\u00eatement, mais une v\u00e9ritable \u0153uvre d&rsquo;art artisanale. Un \u00e9l\u00e9ment capable de relier les pi\u00e8ces tout en adoucissant la rigueur des lignes haussmanniennes.\n            <\/p>\n        <\/div>\n\n        <!-- BLOC TEXTE BAS (Enfant direct pour Grid) -->\n        <div class=\"nk-split-text__block-bottom\">\n            <h2 class=\"nk-split-text__title avenirmedium-font\">L\u2019expertise Norki :<br>La cr\u00e9ation d\u2019un tapis mur-\u00e0-mur en mouton cisel\u00e9<\/h2>\n            <p class=\"nk-split-text__paragraph\">\n                La pi\u00e8ce ma\u00eetresse de cette collaboration r\u00e9side dans la conception d&rsquo;un <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapis-sur-mesure-peau-fourrure\/\" class=\"nk-split-text__link\" title=\"D\u00e9couvrir nos tapis sur mesure en peau et fourrure\">tapis mur-\u00e0-mur<\/a> en mouton ras\u00e9, d&rsquo;une dimension monumentale de 12 m\u00e8tres sur 10 m\u00e8tres. Ce projet a n\u00e9cessit\u00e9 toute l&rsquo;ing\u00e9niosit\u00e9 de nos ateliers. Le mouton a \u00e9t\u00e9 travaill\u00e9 avec diff\u00e9rentes hauteurs de tonte afin de cr\u00e9er un motif exclusif, <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/\" class=\"nk-split-text__link\" title=\"D\u00e9couvrir le sur-mesure Norki\">dessin\u00e9 sur mesure<\/a> par l&rsquo;architecte. Ce jeu de relief offre une profondeur visuelle unique, o\u00f9 l&rsquo;ombre et la lumi\u00e8re dansent au gr\u00e9 de la texture de la laine.\n            <\/p>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SECTION SPLIT TEXT (Image + 2 Blocs texte)\n       ========================================================================== *\/\n    .nk-split-text {\n        width: 100%;\n        background-color: var(--color-norki-beige, #f4eee9); \/* Alignement sur le beige du projet Haussmannien *\/\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 40px);\n        box-sizing: border-box;\n    }\n\n    \/* Grille PC par d\u00e9faut (> 1100px) *\/\n    .nk-split-text__inner {\n        width: 100%;\n        margin: 0 auto;\n        display: grid;\n        grid-template-columns: 6fr 4fr; \/* Colonne image plus large *\/\n        column-gap: clamp(40px, 6vw, 80px);\n        row-gap: 20px;\n    }\n\n    \/* --- Style Commun DA : Liens In-text --- *\/\n    .nk-split-text__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    .nk-split-text__link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* ============================================\n       PLACEMENT DES \u00c9L\u00c9MENTS SUR PC\n       ============================================ *\/\n    \n    \/* Modifi\u00e9 : Gestion de la bo\u00eete pour masquer le zoom de l'image (DA) *\/\n    .nk-split-text__image-wrapper {\n        grid-column: 1;\n        grid-row: 1 \/ 3; \/* L'image s'\u00e9tend sur les deux lignes de texte *\/\n        overflow: hidden; \/* Masque le d\u00e9bordement lors du scale *\/\n        width: 100%;\n        height: 100%;\n        display: block;\n    }\n\n    .nk-split-text__image {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n        transform: scale(1); \/* Initialise la taille *\/\n        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n    }\n\n    \/* Zoom interactif progressif de la DA *\/\n    .nk-split-text__image-wrapper:hover .nk-split-text__image {\n        transform: scale(1.03);\n    }\n\n    .nk-split-text__block-top {\n        grid-column: 2;\n        grid-row: 1;\n        align-self: start;\n        padding-top: 10px;\n        max-width: 450px; \/* Contrainte de largeur pour la lisibilit\u00e9 PC *\/\n    }\n\n    .nk-split-text__block-bottom {\n        grid-column: 2;\n        grid-row: 2;\n        align-self: end;\n        padding-bottom: 20px;\n        max-width: 450px; \/* Contrainte de largeur pour la lisibilit\u00e9 PC *\/\n    }\n\n    \/* ============================================\n       STYLES TYPOGRAPHIQUES COMMUNS\n       ============================================ *\/\n    .nk-split-text__title {\n        font-size: clamp(1.4rem, 2.5vw, 35px);\n        line-height: 1.2;\n        color: #000000;\n        margin: 0 0 20px 0 !important;\n        font-weight: 500;\n        letter-spacing: -0.01em;\n    }\n\n    .nk-split-text__paragraph {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        color: #000000;\n        margin: 0 0 15px 0 !important;\n    }\n\n    .nk-split-text__paragraph:last-child {\n        margin-bottom: 0 !important;\n    }\n\n    \/* ============================================\n       RESPONSIVE : TABLETTE & \u00c9CRANS MOYENS (\u2264 1100px)\n       D\u00e9placement du bloc bas SOUS l'image\n       ============================================ *\/\n    @media (max-width: 1100px) {\n        .nk-split-text {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 30px);\n        }\n        \n        .nk-split-text__inner {\n            grid-template-columns: 1fr 1fr; \/* Ratio 50\/50 pour Image \/ Texte Haut *\/\n            row-gap: 50px; \/* Espace vertical avant le bloc du bas *\/\n        }\n\n        .nk-split-text__image-wrapper {\n            grid-column: 1;\n            grid-row: 1;\n            height: auto; \/* L'image s'adapte \u00e0 son conteneur naturel *\/\n        }\n\n        .nk-split-text__block-top {\n            grid-column: 2;\n            grid-row: 1;\n            align-self: center; \/* Centrage vertical face \u00e0 l'image *\/\n            max-width: 100%;\n            padding-top: 0;\n        }\n\n        .nk-split-text__block-bottom {\n            grid-column: 1 \/ 3; \/* Le texte bas prend toute la largeur (les 2 colonnes) *\/\n            grid-row: 2;\n            max-width: 800px; \/* Emp\u00eache les lignes immenses sur les r\u00e9solutions interm\u00e9diaires *\/\n            padding-bottom: 0;\n        }\n    }\n\n    \/* ============================================\n       RESPONSIVE : MOBILE (\u2264 768px)\n       ============================================ *\/\n    @media (max-width: 768px) {\n        .nk-split-text {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .nk-split-text__inner {\n            display: flex; \/* Flexbox est plus simple pour cette cascade mobile *\/\n            flex-direction: column;\n            gap: 0;\n        }\n\n        .nk-split-text__image-wrapper {\n            width: 100%;\n        }\n\n        .nk-split-text__block-top {\n            margin-top: 25px; \/* Espace sous l'image *\/\n            width: 60%; \/* Bloc \u00e9troit align\u00e9 \u00e0 gauche *\/\n            margin-right: auto;\n        }\n        \n        .nk-split-text__block-bottom {\n            margin-top: 50px; \/* Grand espace s\u00e9parateur entre les deux textes *\/\n            width: 80%; \/* Bloc l\u00e9g\u00e8rement plus large mais... *\/\n            margin-left: auto; \/* ...pouss\u00e9 sur la droite comme sur la maquette *\/\n            max-width: none;\n        }\n    }\n\n    \/* ============================================\n       RESPONSIVE : PETIT MOBILE (\u2264 480px)\n       For\u00e7age \u00e0 100% de largeur pour les petits \u00e9crans\n       ============================================ *\/\n    @media (max-width: 480px) {\n        .nk-split-text__block-top,\n        .nk-split-text__block-bottom {\n            width: 100%;\n            margin-left: 0;\n            margin-right: 0;\n        }\n        \n        .nk-split-text__block-bottom {\n            margin-top: 35px; \/* L\u00e9ger r\u00e9ajustement de l'espacement sur petit \u00e9cran *\/\n        }\n        .nk-split-text__paragraph {\n            width: 90%;\n        }\n    }\n<\/style>\n\n\n\n<section class=\"nk-vision\">\n    <div class=\"nk-vision__inner\">\n        \n        <!-- BLOC TEXTE (Gauche sur PC, Bas sur Mobile) -->\n        <div class=\"nk-vision__content\">\n            <h2 class=\"nk-vision__title avenirmedium-font\">Un travail d&rsquo;ajustement millim\u00e9tr\u00e9<br>par nos artisans-selliers<\/h2>\n            \n            <p class=\"nk-vision__paragraph\">\n                La fabrication dans nos ateliers n&rsquo;\u00e9tait que la premi\u00e8re \u00e9tape de ce d\u00e9fi technique. Le luxe r\u00e9side dans le d\u00e9tail, et pour un appartement de ce standing, l&rsquo;approximation n&rsquo;a pas sa place. Nos <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/pose-installation-tapisserie-ameublement-luxe\/\" class=\"nk-vision__link\" title=\"D\u00e9couvrir la pose et installation\">artisans-villiers<\/a> se sont d\u00e9plac\u00e9s sur place, au c\u0153ur de cet appartement du 16\u00e8me arrondissement, pour assurer la pose et les finitions.\n            <\/p>\n            \n            <p class=\"nk-vision__paragraph\">\n                Le tapis a \u00e9t\u00e9 termin\u00e9 in situ afin d&rsquo;\u00e9pouser les murs arrondis et les d\u00e9coupes complexes de l&rsquo;immeuble haussmannien au millim\u00e8tre pr\u00e8s. Ce niveau de pr\u00e9cision a ainsi garanti une pose parfaite. Ce <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/\" class=\"nk-vision__link\" title=\"D\u00e9couvrir notre savoir-faire exclusif\">savoir-faire exclusif<\/a>, m\u00ealant technique ancestrale et vision contemporaine, est la signature des <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/\" class=\"nk-vision__link\" title=\"D\u00e9couvrir les Ateliers Norki\">Ateliers Norki<\/a> : un luxe qui se voit, mais qui se ressent surtout sous chaque pas.\n            <\/p>\n            \n            <div class=\"nk-vision__action\">\n                <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/contactez-nous\/\" class=\"nk-vision__btn\">R\u00e9aliser un projet sur-mesure<\/a>\n            <\/div>\n        <\/div>\n\n        <!-- BLOC IMAGE (Droite sur PC, Haut sur Mobile sans marges) -->\n        <div class=\"nk-vision__image-wrapper\">\n            <!-- \u00c0 remplacer par l'URL de l'image des canap\u00e9s courbes -->\n            <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/tala-fustok-roomv2-1065x1536.png\" alt=\"D\u00e9tail des finitions du tapis Norki \u00e9pousant les courbes des canap\u00e9s dans le salon de l'appartement haussmannien\" class=\"nk-vision__img\" loading=\"lazy\">\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SECTION VISION (Texte + Image)\n       ========================================================================== *\/\n    .nk-vision {\n        width: 100%;\n        background-color: var(--color-norki-beige, #f4eee9); \/* Beige adapt\u00e9 au projet Haussmannien *\/\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 40px);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: center;\n    }\n\n    .nk-vision__inner {\n        width: 100%;\n        display: grid;\n        \/* La grille 4fr \/ 6fr garantit que l'image droite fait la m\u00eame largeur \n           que l'image gauche (6fr) de la section split-text pr\u00e9c\u00e9dente *\/\n        grid-template-columns: 4fr 6fr; \n        gap: clamp(40px, 6vw, 80px);\n        align-items: start;\n    }\n\n    \/* --- Style Commun DA : Liens In-text --- *\/\n    .nk-vision__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    .nk-vision__link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* ============================================\n       COLONNE GAUCHE : TEXTE\n       ============================================ *\/\n    .nk-vision__content {\n        display: flex;\n        flex-direction: column;\n        max-width: 600px; \/* Conserve la lisibilit\u00e9 sur grand \u00e9cran *\/\n        justify-content: flex-start;\n    }\n\n    .nk-vision__title {\n        font-size: clamp(1.4rem, 2.5vw, 35px);\n        line-height: 1.2;\n        color: #000000;\n        margin: 0 0 24px 0 !important;\n        font-weight: 500;\n        letter-spacing: -0.01em;\n    }\n\n    .nk-vision__paragraph {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        color: #000000;\n        margin: 0 0 16px 0 !important;\n        width: 85%; \/* Ajustement pour reproduire la justification de la maquette *\/\n    }\n\n    \/* ============================================\n       BOUTON\n       ============================================ *\/\n    .nk-vision__action {\n        margin-top: 16px;\n    }\n\n    .nk-vision__btn {\n        display: inline-block;\n        background-color: #000000;\n        color: #ffffff;\n        padding: 4px 27px; \/* Bouton l\u00e9g\u00e8rement plus grand pour la zone de clic *\/\n        font-size: 0.9rem;\n        font-weight: 500;\n        text-decoration: none;\n        border: 1px solid #000000;\n        transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;\n        cursor: pointer;\n        text-align: center;\n    }\n\n    .nk-vision__btn:hover {\n        background-color: transparent;\n        color: #000000;\n    }\n\n    \/* ============================================\n       COLONNE DROITE : IMAGE AVEC HOVER ZOOM (DA)\n       ============================================ *\/\n    .nk-vision__image-wrapper {\n        width: 100%;\n        height: 100%;\n        overflow: hidden; \/* Indispensable pour masquer le d\u00e9bordement lors du zoom *\/\n        display: block;\n    }\n\n    .nk-vision__img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n        transform: scale(1); \/* Initialise la taille *\/\n        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n        object-position: bottom;\n    }\n\n    \/* Zoom interactif progressif au survol de la zone image *\/\n    .nk-vision__image-wrapper:hover .nk-vision__img {\n        transform: scale(1.03);\n    }\n\n    \/* ============================================\n       RESPONSIVE : TABLETTE (\u2264 1024px)\n       ============================================ *\/\n    @media (max-width: 1024px) {\n        .nk-vision {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 30px);\n        }\n        \n        .nk-vision__inner {\n            grid-template-columns: 1fr 1fr; \/* Ratio 50\/50 pour \u00e9quilibrer *\/\n            gap: 40px;\n        }\n\n        .nk-vision__content {\n            max-width: 100%;\n        }\n        \n        .nk-vision__paragraph {\n            width: 100%;\n        }\n    }\n\n    \/* ============================================\n       RESPONSIVE : MOBILE (\u2264 768px)\n       Image Full Bleed (sans marges) + Inversion d'ordre\n       ============================================ *\/\n    @media (max-width: 768px) {\n        .nk-vision {\n            \/* On retire le padding horizontal de la section pour que l'image touche les bords *\/\n            padding: var(--section-pad-v-mob, 50px) 0; \n        }\n\n        .nk-vision__inner {\n            display: flex;\n            flex-direction: column;\n            gap: 32px;\n        }\n\n        .nk-vision__image-wrapper {\n            order: 1; \/* L'image passe en premier *\/\n            width: 100%;\n        }\n\n        .nk-vision__img {\n            height: auto; \/* Permet \u00e0 l'image de s'adapter naturellement *\/\n            max-height: 60vh; \/* \u00c9vite qu'une image verticale ne prenne tout l'\u00e9cran mobile *\/\n        }\n\n        .nk-vision__content {\n            order: 2; \/* Le texte passe en second *\/\n            \/* On r\u00e9applique le padding horizontal uniquement sur le texte *\/\n            padding: 0 var(--section-pad-h-mob, 20px); \n        }\n    }\n<\/style>\n\n\n\n<section class=\"nk-map\">\n    <div class=\"nk-map__inner\">\n        \n        <!-- Carte du monde (Masqu\u00e9e sur mobile) -->\n        <div class=\"nk-map__world\">\n            <a href=\"https:\/\/www.paris.fr\/\" class=\"nk-map__world-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"Voir la localisation de Paris sur la carte du monde\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-du-monde-Paris.png\" alt=\"Carte du monde localisant Paris, France\" class=\"nk-map__world-img\" loading=\"lazy\">\n            <\/a>\n        <\/div>\n\n        <!-- Zoom d\u00e9taill\u00e9 (Cercle) -->\n        <div class=\"nk-map__detail\">\n            <span class=\"nk-map__title avenirmedium-font\">\n                Projet d\u2019appartement \u00e0 <span class=\"baskerville-italic-font\">Paris<\/span>\n            <\/span>\n            <div class=\"nk-map__circle\">\n                <a href=\"https:\/\/www.paris.fr\/\" class=\"nk-map__circle-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"Zoom sur le projet d'appartement d'exception \u00e0 Paris\">\n                    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-europe-Paris-v2.png\" alt=\"Zoom sur la carte de France centr\u00e9 sur Paris\" class=\"nk-map__circle-img\" loading=\"lazy\">\n                <\/a>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : CARTE DE LOCALISATION\n============================================ *\/\n.nk-map {\n    padding-top: 0;\n    padding-bottom: var(--section-pad-v-dt, 80px);\n    padding-left: var(--section-pad-h-dt, 5vw);\n    padding-right: var(--section-pad-h-dt, 5vw);\n    background-color: var(--color-norki-beige, #f4eee9); \/* Alignement sur le beige du projet Haussmannien *\/\n    color: #000000;\n    box-sizing: border-box;\n    width: 100%;\n}\n\n.nk-map * {\n    box-sizing: border-box;\n}\n\n.nk-map__inner {\n    margin: 0 auto;\n    display: grid;\n    grid-template-columns: 2fr 1fr; \/* Ratio PC : la carte du monde prend plus de place *\/\n    gap: clamp(20px, 4vw, 60px);\n    align-items: center;\n}\n\n\/* --- CARTE DU MONDE (Gauche) --- *\/\n.nk-map__world {\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n\n\/* Lien enveloppant la carte mondiale *\/\n.nk-map__world-link {\n    display: block;\n    width: 100%;\n    cursor: pointer;\n    overflow: hidden;\n}\n\n.nk-map__world-img {\n    width: 100%;\n    height: auto;\n    display: block;\n    object-fit: contain;\n    \/* Transition de micro-interaction douce et continue *\/\n    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease;\n}\n\n\/* Animation subtile au survol de la carte mondiale *\/\n.nk-map__world-link:hover .nk-map__world-img {\n    transform: scale(1.015);\n    opacity: 0.95;\n}\n\n\/* --- ZOOM D\u00c9TAILL\u00c9 (Droite) --- *\/\n.nk-map__detail {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    width: 100%;\n}\n\n.nk-map__title {\n    font-size: clamp(1.3rem, 2.2vw, 25px);\n    font-weight: normal;\n    margin-top: 0;\n    margin-bottom: 25px;\n    letter-spacing: 0.02em;\n    text-align: center;\n    color: #000000;\n}\n\n.nk-map__circle {\n    width: 100%;\n    max-width: 420px; \/* Limite la taille du cercle sur grand \u00e9cran *\/\n    aspect-ratio: 1 \/ 1;\n    border-radius: 50%;\n    overflow: hidden; \/* D\u00e9coupe parfaite demand\u00e9e *\/\n    border: 1px solid rgba(0, 0, 0, 0.15); \/* Fine bordure subtile pour un rendu luxueux *\/\n    background-color: var(--color-norki-beige, #f4eee9);\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n\n\/* Lien enveloppant le cercle *\/\n.nk-map__circle-link {\n    display: block;\n    width: 100%;\n    height: 100%;\n    cursor: pointer;\n    overflow: hidden;\n    border-radius: 50%; \/* Force la rondeur du focus et de la zone cliquable *\/\n}\n\n.nk-map__circle-img {\n    width: 102%; \/* L\u00e9g\u00e8rement > 100% pour \u00e9viter les liser\u00e9s de pixel blanc aux bords *\/\n    height: 102%;\n    object-fit: cover;\n    object-position: center center; \/* Centr\u00e9 pour Paris\/France *\/\n    \/* Transition d'animation HoverZoom issue de la DA *\/\n    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n\/* Animation d'impact au survol sur le zoom circulaire *\/\n.nk-map__circle-link:hover .nk-map__circle-img {\n    transform: scale(1.04); \/* HoverZoom standard *\/\n}\n\n\/* ============================================\n    RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-map {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-tab, 60px);\n        padding-left: var(--section-pad-h-tab, 30px);\n        padding-right: var(--section-pad-h-tab, 30px);\n    }\n    \n    .nk-map__inner {\n        gap: 20px; \/* \u00c9cart ajust\u00e9 \u00e9galement sur tablette *\/\n    }\n}\n\n\/* ============================================\n    RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-map {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-mob, 50px);\n        padding-left: var(--section-pad-h-mob, 20px);\n        padding-right: var(--section-pad-h-mob, 20px);\n    }\n\n    .nk-map__inner {\n        grid-template-columns: 1fr; \/* Passage sur une seule colonne *\/\n    }\n\n    \/* Masquage de la carte du monde globale sur mobile *\/\n    .nk-map__world {\n        display: none;\n    }\n\n    .nk-map__detail {\n        margin: 0 auto;\n    }\n\n    .nk-map__title {\n        font-size: 1.35rem;\n        margin-bottom: 20px;\n    }\n    \n    .nk-map__circle {\n        max-width: 320px; \/* Taille l\u00e9g\u00e8rement ajust\u00e9e pour les petits \u00e9crans *\/\n    }\n}\n<\/style>\n\n\n\n<section class=\"nk-sfa\">\n    <div class=\"nk-sfa__container\">\n        \n        <div class=\"nk-sfa__header\">\n            <h2 class=\"nk-sfa__title avenirmedium-font\">\n                Nos <span class=\"baskerville-italic-font\">savoir-faire associ\u00e9s<\/span>\n            <\/h2>\n            \n            <div class=\"nk-sfa__nav-bar\">\n                <div class=\"nk-sfa__arrows\">\n                    <button class=\"nk-sfa__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sfa__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"nk-sfa__slider-area\" id=\"sfa-slider\">\n            <div class=\"nk-sfa__carousel-viewport\">\n                <div class=\"nk-sfa__carousel-track\">\n                    \n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/couture-fourrure-epv\/\" class=\"nk-sfa__image-link\" aria-label=\"D\u00e9couvrir notre savoir-faire en Couture fourrure\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/savoir-faire-couture-fourrure-norki-2-e1779974256415.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"D\u00e9tail Couture fourrure\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Couture fourrure<\/p>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/couture-fourrure-epv\/\" class=\"nk-sfa__link\">D\u00e9couvrir<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/\" class=\"nk-sfa__image-link\" aria-label=\"D\u00e9couvrir notre savoir-faire en Tapisserie d'ameublement\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/atelier-tapisserie-ameublement-sur-mesure-norki.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"D\u00e9tail Tapisserie d'ameublement\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Tapisserie d&rsquo;ameublement<\/p>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/\" class=\"nk-sfa__link\">D\u00e9couvrir<\/a>\n                        <\/div>\n                    <\/article>\n                    \n                    <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : SAVOIR-FAIRE ASSOCI\u00c9S\n============================================ *\/\n.nk-sfa {\n    padding-top: 0;\n    padding-bottom: var(--section-pad-v-dt, 80px);\n    padding-left: var(--section-pad-h-dt, 5vw);\n    padding-right: var(--section-pad-h-dt, 5vw);\n    background-color: var(--color-norki-beige, #f8f0ea);\n    color: #000000;\n    box-sizing: border-box;\n    overflow: hidden;\n}\n\n.nk-sfa * {\n    box-sizing: border-box;\n}\n\n.nk-sfa__container {\n    margin: 0 auto;\n    width: 100%;\n}\n\n\/* --- EN-T\u00caTE --- *\/\n.nk-sfa__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    margin-bottom: 50px;\n    gap: 15px;\n}\n\n.nk-sfa__title {\n    font-size: clamp(1.4rem, 2.5vw, 35px);\n    font-weight: normal;\n    margin: 0;\n    letter-spacing: -0.01em;\n    line-height: 1.25;\n}\n\n\/* --- NAVIGATION --- *\/\n.nk-sfa__nav-bar {\n    display: flex;\n    align-items: center;\n}\n\n.nk-sfa__arrows {\n    display: flex;\n    gap: 15px;\n    margin-right: -12px;\n}\n\n.nk-sfa__arrows button {\n    background: none;\n    border: none;\n    color: #000000;\n    cursor: pointer;\n    padding: 5px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: opacity 0.3s ease;\n}\n\n.nk-sfa__arrows button:hover { opacity: 0.6; }\n\n.nk-sfa__arrows svg {\n    width: 26px;\n    height: 26px;\n    fill: none;\n    stroke: currentColor;\n    stroke-width: 1.2;\n}\n\n\/* --- CARROUSEL --- *\/\n.nk-sfa__slider-area {\n    position: relative;\n    width: 100%;\n}\n\n.nk-sfa__carousel-viewport {\n    overflow: hidden;\n    touch-action: pan-y;\n    margin: 0 -15px;\n}\n\n.nk-sfa__carousel-track {\n    display: flex;\n    will-change: transform;\n}\n\n.nk-sfa__slide {\n    padding: 0 15px;\n    display: flex;\n    flex-direction: column;\n}\n\n\/* --- ENCAPSULATION DESIGN SYSTEM DES IMAGES --- *\/\n.nk-sfa__image-link {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    overflow: hidden;\n    border-radius: 4px;\n    background-color: rgba(0, 0, 0, 0.05);\n    position: relative;\n}\n\n\/* FORMAT CARR\u00c9 ET ANIMATIONS *\/\n.nk-sfa__slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center;\n    display: block;\n    opacity: 0;\n    transition: opacity 0.5s ease-in-out, transform 0.6s ease;\n    will-change: opacity, transform;\n}\n\n.nk-sfa__slide img.norki-loaded {\n    opacity: 1;\n}\n\n.nk-sfa__image-link:hover img {\n    transform: scale(1.03);\n}\n\n\/* --- CAPTIONS SOUS LES IMAGES --- *\/\n.nk-sfa__caption {\n    text-align: center;\n    padding-top: 25px;\n}\n\n.nk-sfa__caption-title {\n    font-size: clamp(1.2rem, 1.5vw, 22px);\n    font-weight: normal;\n    margin: 0 0 6px 0 !important;\n    color: #000000;\n}\n\n.nk-sfa__link {\n    font-size: 0.95rem;\n    color: #000000;\n    text-decoration: underline;\n    text-underline-offset: 3px;\n    text-decoration-thickness: 1.5px;\n    text-decoration-color: #000000;\n    transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n    display: inline-block;\n}\n\n.nk-sfa__link:hover {\n    opacity: 0.7;\n    text-decoration-color: transparent;\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-sfa {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-tab, 60px);\n        padding-left: var(--section-pad-h-tab, 4vw);\n        padding-right: var(--section-pad-h-tab, 4vw);\n    }\n    \n    .nk-sfa__header {\n        margin-bottom: 30px;\n    }\n\n    .nk-sfa__arrows button:hover,\n    .nk-sfa__arrows button:active,\n    .nk-sfa__arrows button:focus {\n        opacity: 1 !important;\n    }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-sfa {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-mob, 50px);\n        padding-left: var(--section-pad-h-mob, 20px);\n        padding-right: var(--section-pad-h-mob, 20px);\n    }\n\n    .nk-sfa__header {\n        align-items: center;\n        margin-bottom: 25px;\n    }\n\n    .nk-sfa__title {\n        font-size: clamp(1.1rem, 4.5vw, 1.4rem);\n    }\n\n    .nk-sfa__arrows {\n        margin-right: -5px;\n        gap: 10px;\n    }\n\n    .nk-sfa__arrows svg {\n        width: 22px;\n        height: 22px;\n    }\n\n    .nk-sfa__carousel-viewport {\n        margin: 0 -5px;\n    }\n\n    .nk-sfa__slide {\n        padding: 0 5px;\n    }\n\n    .nk-sfa__caption {\n        padding-top: 15px;\n    }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n\n    \/* =========================================================\n       GESTION DU CARROUSEL (Adaptatif 3 \/ 2 \/ 1)\n       ========================================================= *\/\n    const container = document.getElementById('sfa-slider');\n    if (!container) return;\n\n    const section = container.closest('.nk-sfa');\n    const track = container.querySelector('.nk-sfa__carousel-track');\n    const originalSlides = Array.from(container.querySelectorAll('.nk-sfa__slide'));\n    const totalOriginal = originalSlides.length;\n    const navBar = section.querySelector('.nk-sfa__nav-bar');\n\n    \/\/ Clonage pour l'effet de boucle infinie\n    originalSlides.forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\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.classList.add('norki-clone');\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    const allSlides = Array.from(container.querySelectorAll('.nk-sfa__slide'));\n\n    const getSlidesPerView = () => {\n        if (window.innerWidth > 1024) return 3; \/\/ PC\n        if (window.innerWidth > 768) return 2;  \/\/ Tablette\n        return 1;                               \/\/ Mobile\n    };\n\n    let itemsPerView = getSlidesPerView();\n    let itemWidthPct = 100 \/ itemsPerView;\n    allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n    \n    let currentIndex = totalOriginal; \n    let isAnimating = false;\n\n    \/\/ Mise \u00e0 jour de l'affichage global (G\u00e8re intelligemment le cas o\u00f9 il y a un espace vide)\n    const updateCarousel = (instant = false) => {\n        const clones = track.querySelectorAll('.norki-clone');\n\n        \/\/ Si tout rentre dans l'\u00e9cran (ex: 2 slides sur PC qui en demande 3)\n        if (itemsPerView >= totalOriginal) {\n            navBar.style.display = 'none'; \/\/ Cache les fl\u00e8ches\n            clones.forEach(c => c.style.display = 'none'); \/\/ Cache les clones pour laisser l'espace vide\n            track.style.transition = 'none';\n            track.style.transform = `translateX(0)`; \/\/ Aligne les slides \u00e0 gauche\n            return;\n        }\n\n        \/\/ Sinon, le carrousel est actif (ex: Mobile)\n        navBar.style.display = 'flex';\n        clones.forEach(c => c.style.display = ''); \/\/ R\u00e9affiche les clones\n        \n        track.style.transition = instant ? 'none' : 'transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)';\n        track.style.transform = `translateX(-${currentIndex * itemWidthPct}%)`;\n    };\n\n    updateCarousel(true);\n\n    const moveNext = () => {\n        if (isAnimating || itemsPerView >= totalOriginal) return;\n        isAnimating = true;\n        currentIndex++;\n        updateCarousel();\n    };\n\n    const movePrev = () => {\n        if (isAnimating || itemsPerView >= totalOriginal) return;\n        isAnimating = true;\n        currentIndex--;\n        updateCarousel();\n    };\n\n    section.querySelector('.nk-sfa__next').addEventListener('click', moveNext);\n    section.querySelector('.nk-sfa__prev').addEventListener('click', movePrev);\n\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    \/\/ Gestion Resize\n    window.addEventListener('resize', () => {\n        const newItemsPerView = getSlidesPerView();\n        if (newItemsPerView !== itemsPerView) {\n            itemsPerView = newItemsPerView;\n            itemWidthPct = 100 \/ itemsPerView;\n            allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n            \n            \/\/ S\u00e9curit\u00e9 : on r\u00e9initialise l'index au changement de format pour \u00e9viter les d\u00e9calages\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Gestion Swipe Tactile\n    let startX = 0, endX = 0;\n    const swipeThreshold = 40;\n\n    track.addEventListener('touchstart', (e) => {\n        if (itemsPerView >= totalOriginal) return; \n        startX = e.touches[0].clientX;\n    }, { passive: true });\n    \n    track.addEventListener('touchend', (e) => {\n        if (itemsPerView >= totalOriginal) return;\n        endX = e.changedTouches[0].clientX;\n        const diff = startX - endX;\n        if (Math.abs(diff) > swipeThreshold) {\n            if (diff > 0) moveNext();\n            else movePrev();\n        }\n    });\n\n    \/* =========================================================\n       LAZY LOADING DES IMAGES\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    }, { root: null, rootMargin: '0px 100% 0px 100%', threshold: 0 });\n    \n    document.querySelectorAll('.norki-lazy').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<section class=\"nk-sel\">\n    <div class=\"nk-sel__container\">\n        \n        <!-- En-t\u00eate : Titre (Gauche) + Fl\u00e8ches (Droite) -->\n        <div class=\"nk-sel__header\">\n            <h2 class=\"nk-sel__title avenirmedium-font\">\n                Notre S\u00e9lection d&rsquo;<span class=\"baskerville-italic-font\">objets<\/span>\n            <\/h2>\n            \n            <!-- Navigation remont\u00e9e sur la m\u00eame ligne que le titre -->\n            <div class=\"nk-sel__nav-bar\">\n                <div class=\"nk-sel__arrows\">\n                    <button class=\"nk-sel__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sel__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section Carrousel -->\n        <div class=\"nk-sel__slider-area\" id=\"sel-slider\">\n            <div class=\"nk-sel__carousel-viewport\">\n                <div class=\"nk-sel__carousel-track\">\n                    \n                    <!-- Slide 1 : Fauteuils Atya -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/collection-fauteuil-norki\/486-fauteuil-luxe-contemporain-blanc-norki.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Fauteuil Atya\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/fauteuil-luxe-blanc-confortable-norki.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Fauteuils Atya par la Maison Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Fauteuils Atya<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/collection-fauteuil-norki\/486-fauteuil-luxe-contemporain-blanc-norki.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 : Pouf Allegro -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/collection-pouf-norki\/595-pouf-rond-design-blanc-mouton-cuir-chene-clair.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Pouf Allegro\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Assis_Photo_III_POUF-ALLEGRO__detail1-ok-png.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Pouf Allegro par la Maison Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Pouf Allegro<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/collection-pouf-norki\/595-pouf-rond-design-blanc-mouton-cuir-chene-clair.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 3 : Coussin In The Fields -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/collections-coussins-iconiques-norki\/90-coussin-in-the-fields-grand-modele-agneau-curly-fourrure.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Coussin In The Fields\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Coussin_Photo-Principale-InTheField-GM_NORKI-Copie.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Coussin In The Fields par la Maison Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Coussin In The Fields<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/collections-coussins-iconiques-norki\/90-coussin-in-the-fields-grand-modele-agneau-curly-fourrure.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : S\u00c9LECTION D'OBJETS\n============================================ *\/\n.nk-sel {\n    padding-top: 0;\n    padding-bottom: var(--section-pad-v-dt, 80px);\n    padding-left: var(--section-pad-h-dt, 5vw);\n    padding-right: var(--section-pad-h-dt, 5vw);\n    background-color: var(--color-norki-beige, #f4eee9); \/* Alignement colorim\u00e9trique sur le projet Haussmannien *\/\n    color: #000000;\n    box-sizing: border-box;\n    overflow: hidden;\n}\n\n.nk-sel * {\n    box-sizing: border-box;\n}\n\n.nk-sel__container {\n    margin: 0 auto;\n    width: 100%;\n}\n\n\/* --- EN-T\u00caTE --- *\/\n.nk-sel__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    margin-bottom: 50px;\n    gap: 15px; \/* \u00c9vite que les fl\u00e8ches ne collent au titre sur petits \u00e9crans *\/\n}\n\n.nk-sel__title {\n    font-size: clamp(1.4rem, 2.5vw, 35px); \/* Calibr\u00e9 sur la taille H2 globale *\/\n    font-weight: normal;\n    margin: 0;\n    letter-spacing: -0.01em;\n    line-height: 1.25;\n}\n\n\/* --- NAVIGATION --- *\/\n.nk-sel__nav-bar {\n    display: flex;\n    align-items: center;\n}\n\n.nk-sel__arrows {\n    display: flex;\n    gap: 15px;\n    margin-right: -12px; \/* Calibr\u00e9 \u00e0 -12px pour un alignement pixel-perfect *\/\n}\n\n.nk-sel__arrows button {\n    background: none;\n    border: none;\n    color: #000000;\n    cursor: pointer;\n    padding: 5px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: opacity 0.3s ease;\n}\n\n.nk-sel__arrows button:hover { opacity: 0.6; }\n\n.nk-sel__arrows svg {\n    width: 26px;\n    height: 26px;\n    fill: none;\n    stroke: currentColor;\n    stroke-width: 1.2;\n}\n\n\/* --- CARROUSEL --- *\/\n.nk-sel__slider-area {\n    position: relative;\n    width: 100%;\n}\n\n.nk-sel__carousel-viewport {\n    overflow: hidden;\n    touch-action: pan-y;\n    margin: 0 -15px; \/* Compense le padding des slides *\/\n}\n\n.nk-sel__carousel-track {\n    display: flex;\n    will-change: transform;\n}\n\n.nk-sel__slide {\n    padding: 0 15px; \/* Espace entre les images *\/\n    display: flex;\n    flex-direction: column;\n}\n\n\/* --- ENCAPSULATION DESIGN SYSTEM DES IMAGES --- *\/\n.nk-sel__image-link {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1 \/ 1; \/* FORMAT CARR\u00c9 IMP\u00c9RATIF *\/\n    overflow: hidden; \/* N\u00e9cessaire pour contenir le zoom *\/\n    border-radius: 4px; \/* Coins arrondis \u00e9l\u00e9gants et l\u00e9gers *\/\n    background-color: #E8E4DF; \/* Fond d'attente coh\u00e9rent avec la DA d'image de la page *\/\n    position: relative;\n}\n\n\/* FORMAT CARR\u00c9 IMP\u00c9RATIF ET ANIMATIONS *\/\n.nk-sel__slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center;\n    display: block;\n    opacity: 0;\n    \/* Design System: LoadFade & HoverZoom *\/\n    transition: opacity 0.5s ease-in-out, transform 0.6s ease;\n    will-change: opacity, transform;\n}\n\n\/* LoadFade TriggerClass *\/\n.nk-sel__slide img.norki-loaded {\n    opacity: 1;\n}\n\n\/* HoverZoom sur l'image au survol de la bo\u00eete d'image *\/\n.nk-sel__image-link:hover img {\n    transform: scale(1.03);\n}\n\n\/* --- CAPTIONS SOUS LES IMAGES (PC) --- *\/\n.nk-sel__caption {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-top: 20px;\n    padding-left: 23px; \/* Marge gauche ajout\u00e9e au pixel pr\u00e8s *\/\n    padding-right: 23px; \/* Marge droite ajout\u00e9e au pixel pr\u00e8s *\/\n    font-size: 0.95rem;\n    color: #000000;\n}\n\n.nk-sel__product-name {\n    font-weight: 500;\n    letter-spacing: 0.02em;\n}\n\n.nk-sel__link {\n    color: #000000;\n    text-decoration: underline;\n    text-underline-offset: 3px;\n    text-decoration-thickness: 1.5px;\n    text-decoration-color: #000000;\n    transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n    font-weight: 500;\n}\n\n\/* Effet de disparition du soulignement fluide *\/\n.nk-sel__link:hover {\n    opacity: 0.7;\n    text-decoration-color: transparent;\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-sel {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-tab, 60px);\n        padding-left: var(--section-pad-h-tab, 4vw);\n        padding-right: var(--section-pad-h-tab, 4vw);\n    }\n\n    .nk-sel__header {\n        margin-bottom: 30px;\n    }\n\n    .nk-sel__caption {\n        padding-left: 20px; \/* Marges de s\u00e9curit\u00e9 pour tablettes *\/\n        padding-right: 20px;\n    }\n\n    \/* Annulation de l'effet hover d'opacit\u00e9 sur \u00e9crans tactiles *\/\n    .nk-sel__arrows button:hover,\n    .nk-sel__arrows button:active,\n    .nk-sel__arrows button:focus {\n        opacity: 1 !important;\n    }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-sel {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-mob, 50px);\n        padding-left: var(--section-pad-h-mob, 20px);\n        padding-right: var(--section-pad-h-mob, 20px);\n    }\n    \n    .nk-sel__header {\n        align-items: center; \/* Centre les fl\u00e8ches verticalement avec le texte *\/\n        margin-bottom: 25px;\n    }\n\n    .nk-sel__title {\n        \/* Taille dynamique calcul\u00e9e pour partager la ligne (max 1.4rem) *\/\n        font-size: clamp(1.1rem, 4.5vw, 1.4rem);\n    }\n\n    .nk-sel__arrows {\n        margin-right: -5px;\n        gap: 10px;\n    }\n\n    .nk-sel__arrows svg {\n        width: 22px; \/* Fl\u00e8ches tr\u00e8s l\u00e9g\u00e8rement r\u00e9duites sur mobile *\/\n        height: 22px;\n    }\n\n    .nk-sel__carousel-viewport {\n        margin: 0 -5px; \/* \u00c9cart r\u00e9duit sur mobile *\/\n    }\n\n    .nk-sel__slide {\n        padding: 0 5px;\n    }\n\n    .nk-sel__caption {\n        padding-top: 15px;\n        padding-left: 20px; \/* Alignement parfait et uniforme sur mobile *\/\n        padding-right: 20px;\n    }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n\n    \/* =========================================================\n       GESTION DU CARROUSEL (Adaptatif 3 \/ 2 \/ 1)\n       ========================================================= *\/\n    const container = document.getElementById('sel-slider');\n    if (!container) return;\n\n    const section = container.closest('.nk-sel'); \/\/ S\u00e9lection globale de la section\n    const track = container.querySelector('.nk-sel__carousel-track');\n    const originalSlides = Array.from(container.querySelectorAll('.nk-sel__slide'));\n    const totalOriginal = originalSlides.length;\n    const navBar = section.querySelector('.nk-sel__nav-bar'); \/\/ Barre de navigation remont\u00e9e\n\n    \/\/ Clonage pour l'effet de boucle infinie UNIQUEMENT si on a plus d'items que ce qu'on peut afficher\n    const initializeClones = () => {\n         \/\/ Nettoyage pr\u00e9alable d'\u00e9ventuels clones existants en cas de redimensionnement\n         track.querySelectorAll('.norki-clone').forEach(el => el.remove());\n\n         if(getSlidesPerView() < totalOriginal) {\n            originalSlides.forEach(slide => {\n                const clone = slide.cloneNode(true);\n                clone.classList.add('norki-clone');\n                clone.setAttribute('aria-hidden', 'true');\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.classList.add('norki-clone');\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    };\n\n    const getSlidesPerView = () => {\n        if (window.innerWidth > 1024) return 3; \/\/ PC\n        if (window.innerWidth > 768) return 2;  \/\/ Tablette\n        return 1;                               \/\/ Mobile\n    };\n\n    let itemsPerView = getSlidesPerView();\n    let itemWidthPct = 100 \/ itemsPerView;\n    \n    \/\/ Initialisation\n    initializeClones();\n    let allSlides = Array.from(container.querySelectorAll('.nk-sel__slide'));\n    allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n    \n    let currentIndex = (itemsPerView < totalOriginal) ? totalOriginal : 0; \n    let isAnimating = false;\n\n    \/\/ Masque\/Affiche la navigation si toutes les slides sont visibles (s\u00e9curit\u00e9)\n    const updateNavVisibility = () => {\n        if (itemsPerView >= totalOriginal && navBar) {\n            navBar.style.display = 'none';\n        } else if (navBar) {\n            navBar.style.display = 'flex';\n        }\n    };\n\n    const updateCarousel = (instant = false) => {\n        updateNavVisibility();\n        \n        if (itemsPerView >= totalOriginal) {\n            currentIndex = 0; \/\/ Fixe l'index \u00e0 z\u00e9ro si pas besoin de scroll\n            track.style.transition = 'none';\n            track.style.transform = `translateX(0%)`;\n            return;\n        }\n\n        track.style.transition = instant ? 'none' : 'transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)';\n        track.style.transform = `translateX(-${currentIndex * itemWidthPct}%)`;\n    };\n\n    updateCarousel(true);\n\n    const moveNext = () => {\n        if (isAnimating || itemsPerView >= totalOriginal) return;\n        isAnimating = true;\n        currentIndex++;\n        updateCarousel();\n    };\n\n    const movePrev = () => {\n        if (isAnimating || itemsPerView >= totalOriginal) return;\n        isAnimating = true;\n        currentIndex--;\n        updateCarousel();\n    };\n\n    \/\/ Liaison aux fl\u00e8ches d'en-t\u00eate\n    section.querySelector('.nk-sel__next').addEventListener('click', moveNext);\n    section.querySelector('.nk-sel__prev').addEventListener('click', movePrev);\n\n    track.addEventListener('transitionend', (e) => {\n        if (e.propertyName !== 'transform') return;\n        isAnimating = false;\n        \n        if (itemsPerView < totalOriginal) {\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\n    \/\/ Gestion Resize\n    window.addEventListener('resize', () => {\n        const newItemsPerView = getSlidesPerView();\n        if (newItemsPerView !== itemsPerView) {\n            itemsPerView = newItemsPerView;\n            itemWidthPct = 100 \/ itemsPerView;\n            \n            \/\/ Re-g\u00e9n\u00e8re ou d\u00e9truit les clones selon le besoin\n            initializeClones();\n            allSlides = Array.from(container.querySelectorAll('.nk-sel__slide'));\n            allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n            \n            currentIndex = (itemsPerView < totalOriginal) ? totalOriginal : 0; \n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Gestion Swipe Tactile\n    let startX = 0, endX = 0;\n    const swipeThreshold = 40;\n\n    track.addEventListener('touchstart', (e) => {\n        if (itemsPerView >= totalOriginal) return; \n        startX = e.touches[0].clientX;\n    }, { passive: true });\n    \n    track.addEventListener('touchend', (e) => {\n        if (itemsPerView >= totalOriginal) return;\n        endX = e.changedTouches[0].clientX;\n        const diff = startX - endX;\n        if (Math.abs(diff) > swipeThreshold) {\n            if (diff > 0) moveNext();\n            else movePrev();\n        }\n    });\n\n    \/* =========================================================\n       LAZY LOADING DES IMAGES (IntersectionObserver)\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    }, { root: null, rootMargin: '0px 100% 0px 100%', threshold: 0 });\n    \n    document.querySelectorAll('.norki-lazy').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<div class=\"nk-hotels-showcase\">\n    \n    <!-- Image Sup\u00e9rieure avec D\u00e9grad\u00e9 -->\n    <section class=\"nk-hs-hero\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/4a3a1-61882.jpg\" alt=\"D\u00e9tail organique et mobilier sur-mesure\" class=\"nk-hs-hero__img\">\n        <div class=\"nk-hs-hero__fade\"><\/div>\n    <\/section>\n\n    <!-- ==========================================\n         BLOC HTML - S\u00c9MANTIQUE & INDEXABILIT\u00c9\n         ========================================== -->\n    <section id=\"wp-custom-projects-slider\" class=\"wp-custom-projects-slider-container\" aria-label=\"Nos r\u00e9alisations Urbaines\">\n        \n        <!-- Bloc Information -->\n        <div class=\"projects-info\">\n            <h2 class=\"avenirmedium-font\">Explorez toutes nos <br><span class=\"baskerville-italic-font\">R\u00e9alisations Urbaines<\/span><\/h2>\n            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/\" class=\"link-voir-tout\">Voir tout<\/a>\n        <\/div>\n\n        <!-- Zone Slider -->\n        <div class=\"projects-slider\">\n            <button class=\"nav-arrow left-arrow\" aria-label=\"Projet pr\u00e9c\u00e9dent\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n            <button class=\"nav-arrow right-arrow\" aria-label=\"Projet suivant\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n\n            <!-- Slide 1 -->\n            <article class=\"slide active is-coming-soon\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tapis-roots-claude-cartier-appartement-parisien.jpg\" alt=\"Appartement parisien, tapis sur-mesure en peau lain\u00e9e\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Appartement parisien<\/h3>\n                        <p>Tapis sur-mesure en peau lain\u00e9e<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 2 -->\n            <article class=\"slide is-coming-soon\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/Marble-and-shearling-armchairs_Norki_v2.png\" alt=\"H\u00f4tel particulier parisien, r\u00e9sidence historique\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>H\u00f4tel particulier parisien<\/h3>\n                        <p>R\u00e9sidence historique haussmannienne<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 3 -->\n            <article class=\"slide is-coming-soon\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-coyote-rug-paris-appartment.jpg\" alt=\"Appartement Priv\u00e9 Paris, Tapis en renard gris\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Appartement Priv\u00e9<\/h3>\n                        <p>Tapis en renard gris sur mesure<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 4 -->\n            <article class=\"slide is-coming-soon\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Milan-sur-meusre-Projet-prive-Brussels.jpg\" alt=\"Appartement Priv\u00e9 Bruxelles, Grand tapis en peau de vache\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Bruxelles, Belgique<\/span>\n                        <h3>Appartement Priv\u00e9<\/h3>\n                        <p>Grand tapis en peau de vache sur mesure<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 5 -->\n            <article class=\"slide is-coming-soon\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/plaid-en-renard-vert-sur-mesure.jpg\" alt=\"Appartement Priv\u00e9 Paris, Plaid Verbier sur mesure\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Appartement Priv\u00e9<\/h3>\n                        <p>Plaid Verbier sur mesure<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n            \n            <!-- Slide 6 -->\n            <article class=\"slide is-coming-soon\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/banc-pierre-jeanneret-sur-mesure-v2.png\" alt=\"H\u00f4tel Particulier Paris, Coussin en Poulain sur-mesure\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>H\u00f4tel Particulier<\/h3>\n                        <p>Coussin en Poulain sur-mesure<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n        <\/div>\n    <\/section>\n\n<\/div>\n\n<!-- ==========================================\n     BLOC CSS - STYLES INITIAUX & MODIFI\u00c9S\n     ========================================== -->\n<style>\n    \/* ==========================================\n       HERO TOP IMAGE\n       ========================================== *\/\n    .nk-hotels-showcase {\n        width: 100%;\n        background-color: var(--color-norki-brown, #50423d); \/* Uniformisation sur le marron *\/\n    }\n\n    .nk-hs-hero {\n        position: relative;\n        width: 100%;\n        height: 75vh;\n        background-color: #000;\n    }\n\n    .nk-hs-hero__img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        object-position: center 90%;\n        display: block;\n    }\n\n    .nk-hs-hero__fade {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 45%;\n        \/* D\u00e9grad\u00e9 fluide vers le fond marron officiel *\/\n        background: linear-gradient(to bottom, rgba(80, 66, 61, 0) 0%, var(--color-norki-brown, #50423d) 100%);\n        z-index: 2;\n        pointer-events: none;\n    }\n\n    \/* ==========================================\n       VARIABLES CSS\n       ========================================== *\/\n    .wp-custom-projects-slider-container {\n        --bg-section: var(--color-norki-brown, #50423d); \/* Marron pour l'ambiance sombre et \u00e9l\u00e9gante *\/\n        --text-light: #ffffff;\n        --text-muted: #d3ccc7;\n        --text-dark: var(--color-norki-beige, #f4eee9); \/* Le titre passe en beige *\/\n        --font-primary: Arial, sans-serif;\n        --font-secondary: serif;\n        --radius-img: 4px;\n        \n        box-sizing: border-box;\n        position: relative;\n        background-color: var(--bg-section);\n        width: 100%;\n        height: 100vh;\n        min-height: 850px;\n        color: var(--text-light);\n        font-family: var(--font-primary);\n        overflow: hidden;\n    }\n\n    \/* Isolation de la bordure-box pour \u00e9viter les conflits WP *\/\n    .wp-custom-projects-slider-container *, \n    .wp-custom-projects-slider-container *::before, \n    .wp-custom-projects-slider-container *::after {\n        box-sizing: inherit;\n        margin: 0;\n        padding: 0;\n    }\n\n    \/* Bloc texte en haut \u00e0 gauche *\/\n    .wp-custom-projects-slider-container .projects-info {\n        position: absolute;\n        top: 130px; \n        left: 50px;\n        width: 360px;\n        z-index: 10;\n    }\n\n    .wp-custom-projects-slider-container .projects-info h2 {\n        font-size: 35px;\n        font-weight: normal;\n        margin-bottom: 20px;\n        color: var(--text-dark);\n        line-height: 1.15;\n    }\n\n    .wp-custom-projects-slider-container .projects-info h2 span {\n        font-family: \"LibreBaskervilleItalic\", sans-serif;\n    }\n\n    .wp-custom-projects-slider-container .link-voir-tout {\n        font-size: 0.95rem;\n        color: var(--text-light);\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    .wp-custom-projects-slider-container .link-voir-tout:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* --- FL\u00c8CHES DE NAVIGATION --- *\/\n    .wp-custom-projects-slider-container .nav-arrow {\n        position: absolute;\n        top: 33%;\n        transform: translateY(-50%);\n        background: transparent;\n        border: none;\n        cursor: pointer;\n        z-index: 15;\n        transition: opacity 0.2s ease, transform 0.2s ease;\n        padding: 10px;\n        opacity: 0.7;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .wp-custom-projects-slider-container .nav-arrow img {\n        width: 20px; \n        height: 20px;\n        display: block;\n        filter: brightness(0) invert(1); \/* Force les fl\u00e8ches en blanc sur fond marron *\/\n    }\n\n    .wp-custom-projects-slider-container .left-arrow img {\n        transform: scaleX(-1);\n    }\n\n    \/* HOVER : Uniquement pour les appareils avec souris *\/\n    @media (hover: hover) {\n        .wp-custom-projects-slider-container .nav-arrow:hover {\n            opacity: 1;\n            transform: translateY(-50%) scale(1.1);\n        }\n    }\n\n    \/* CLIC R\u00c9ACTIF (PC et mobile) *\/\n    .wp-custom-projects-slider-container .nav-arrow:active {\n        opacity: 0.4 !important;\n        transform: translateY(-50%) scale(0.9) !important;\n        transition: none !important;\n    }\n\n    .wp-custom-projects-slider-container .left-arrow { left: 30px; }\n    .wp-custom-projects-slider-container .right-arrow { right: 30px; }\n\n    \/* Zone du Slider *\/\n    .wp-custom-projects-slider-container .projects-slider {\n        position: absolute;\n        bottom: 40px; \n        width: 100vw;\n        height: 80vh; \n        display: flex;\n        align-items: flex-end;\n        justify-content: center;\n    }\n\n    \/* Configuration des images (Slides) - Version PC de base *\/\n    .wp-custom-projects-slider-container .slide {\n        position: absolute;\n        bottom: 0;\n        height: 50vh;\n        width: auto;\n        aspect-ratio: 1272 \/ 1140;\n        transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);\n        opacity: 0;\n        visibility: hidden;\n        z-index: 0;\n    }\n\n    .wp-custom-projects-slider-container .slide img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n        border-radius: var(--radius-img);\n        transition: transform 0.5s ease;\n    }\n\n    \/* --- HOVER & COMING SOON --- *\/\n    .wp-custom-projects-slider-container .slide.active:not(.is-coming-soon):hover img {\n        transform: scale(1.03);\n    }\n\n    .wp-custom-projects-slider-container .slide.is-coming-soon,\n    .wp-custom-projects-slider-container .slide.active.is-coming-soon {\n        cursor: not-allowed !important;\n    }\n\n    .wp-custom-projects-slider-container .slide.is-coming-soon img {\n        opacity: 0.7;\n    }\n\n    \/* Tooltip ::before *\/\n    .wp-custom-projects-slider-container .slide.active.is-coming-soon:hover::before {\n        content: \"Page en cours de cr\u00e9ation\";\n        position: absolute;\n        bottom: -40px;\n        left: 50%;\n        transform: translateX(-50%);\n        background: #1f2937;\n        color: #fff;\n        padding: 6px 12px;\n        font-size: 0.75rem;\n        border-radius: 6px;\n        white-space: nowrap;\n        pointer-events: none;\n        z-index: 50;\n        box-shadow: 0 4px 6px -1px rgb(0 0 0 \/ 0.1);\n    }\n\n    \/* Masquer le lien sur les \u00e9l\u00e9ments indisponibles *\/\n    .wp-custom-projects-slider-container .slide.is-coming-soon .link-voir {\n        display: none;\n    }\n\n    \/* D\u00e9grad\u00e9 sombre *\/\n    .wp-custom-projects-slider-container .slide::after {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 40%; \n        background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.15) 65%, transparent 100%);\n        border-radius: var(--radius-img) var(--radius-img) 0 0;\n        opacity: 0;\n        transition: opacity 0.4s ease;\n        pointer-events: none;\n        z-index: 1;\n    }\n\n    .wp-custom-projects-slider-container .slide.active::after { opacity: 1; }\n\n    \/* Contenu textuel sur l'image *\/\n    .wp-custom-projects-slider-container .slide-content {\n        text-align: left;\n        position: absolute;\n        top: 30px;\n        left: 30px;\n        right: 30px;\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-start;\n        opacity: 0;\n        transition: opacity 0.4s ease;\n        pointer-events: none;\n        z-index: 2;\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text .slide-city {\n        display: block;\n        color: var(--text-muted);\n        font-size: 0.75rem;\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n        margin-bottom: 6px;\n        font-weight: 600;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text h3 {\n        color: var(--text-light);\n        font-size: 1.15rem;\n        font-weight: normal;\n        margin-bottom: 5px;\n        line-height: 1.3;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text p {\n        font-family: var(--font-secondary);\n        font-style: italic;\n        font-size: 1rem;\n        color: white;\n        line-height: 1.4;\n    }\n\n    \/* Bouton Voir *\/\n    .wp-custom-projects-slider-container .link-voir {\n        position: relative;\n        color: var(--text-light);\n        text-decoration: none;\n        border-bottom: 1px solid var(--text-light);\n        font-size: 0.8rem;\n        opacity: 0;\n        transform: translateY(10px);\n        transition: all 0.4s ease;\n        pointer-events: auto;\n        transform-origin: right center;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide.active .link-voir {\n        opacity: 1;\n        transform: translateY(0) scale(1);\n    }\n\n    @media (hover: hover) {\n        .wp-custom-projects-slider-container .slide.active:hover .link-voir {\n            transform: translateY(0) scale(1.15);\n        }\n    }\n\n    \/* \u00c9tats du slider (PC > 1700px) - Marges strictes \u00e0 40px *\/\n    .wp-custom-projects-slider-container .slide.prev {\n        opacity: 1;\n        visibility: visible;\n        transform: translateX(calc(50px - 50vw + 50%));\n        z-index: 1;\n        cursor: pointer;\n    }\n\n    .wp-custom-projects-slider-container .slide.active {\n        opacity: 1;\n        visibility: visible;\n        transform: translateX(calc(90px + (50vh * 1272 \/ 1140) - 50vw + 50%));\n        z-index: 2;\n        height: 76vh;\n        cursor: pointer;\n    }\n\n    .wp-custom-projects-slider-container .slide.next {\n        opacity: 1;\n        visibility: visible;\n        transform: translateX(calc(130px + (126vh * 1272 \/ 1140) - 50vw + 50%));\n        z-index: 1;\n        cursor: pointer;\n    }\n\n    .wp-custom-projects-slider-container .slide.active .slide-content {\n        opacity: 1;\n        transition-delay: 0.4s;\n    }\n\n    \/* ==========================================\n       RESPONSIVE DESIGN\n       ========================================== *\/\n    @media (max-width: 1700px) {\n        .wp-custom-projects-slider-container .slide.prev, \n        .wp-custom-projects-slider-container .slide.next { filter: brightness(0.9); }\n        \n        .wp-custom-projects-slider-container {\n            height: auto;\n            min-height: 65vh;\n            display: flex;\n            flex-direction: column;\n            justify-content: flex-start;\n            padding-bottom: 40px; \n            text-align: center;\n        }\n        \n        .wp-custom-projects-slider-container .projects-info {\n            position: relative;\n            top: 0; left: 0; width: 100%;\n            padding: 60px 20px 20px;\n        }\n        \n        .wp-custom-projects-slider-container .projects-slider {\n            position: relative; top: auto; bottom: auto; left: 50%;\n            transform: translateX(-50%); height: 55cqi; max-height: 75vh;\n        }\n        \n        .wp-custom-projects-slider-container .slide { \n            width: 45vw; \n            height: auto; \n            max-height: 60vh; \n        }\n        \n        .wp-custom-projects-slider-container .slide.active { \n            width: 60vw; \n            height: auto; \n            max-height: 75vh; \n            transform: translateX(0); \n        }\n        \n        .wp-custom-projects-slider-container .slide.prev { transform: translateX(-50vw); } \n        .wp-custom-projects-slider-container .slide.next { transform: translateX(50vw); } \n        \n        .wp-custom-projects-slider-container .nav-arrow {\n            top: auto;\n            bottom: calc(min(45vw * (1140 \/ 1272), 60vh) + 15px);\n            transform: none;\n            transition: opacity 0.2s ease, transform 0.2s ease;\n        }\n\n        @media (hover: hover) {\n            .wp-custom-projects-slider-container .nav-arrow:hover { \n                transform: scale(1.1); \n                opacity: 1;\n            }\n        }\n\n        .wp-custom-projects-slider-container .nav-arrow:active {\n            opacity: 0.4 !important;\n            transform: scale(0.9) !important;\n            transition: none !important;\n        }\n\n        .wp-custom-projects-slider-container .left-arrow { left: 2vw; }\n        .wp-custom-projects-slider-container .right-arrow { right: 2vw; }\n    }\n\n    @media (max-width: 720px) {\n        .wp-custom-projects-slider-container .projects-info h2 { font-size: 1.4rem; }\n        .wp-custom-projects-slider-container .projects-slider { height: 75vw; }\n        .wp-custom-projects-slider-container .slide { \n            width: 65vw; \n            height: auto; \n        }\n        .wp-custom-projects-slider-container .slide.active { \n            width: 85vw; \n            height: auto; \n        }\n        .wp-custom-projects-slider-container .slide::after {\n            height: 60%;\n            background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.35) 65%, transparent 100%);\n        }\n        .wp-custom-projects-slider-container .slide.prev { transform: translateX(-75vw); }\n        .wp-custom-projects-slider-container .slide.next { transform: translateX(75vw); }\n        .wp-custom-projects-slider-container .nav-arrow { bottom: calc(min(65vw * (1140 \/ 1272), 60vh) + 15px); }\n        .wp-custom-projects-slider-container .left-arrow { left: 0; }\n        .wp-custom-projects-slider-container .right-arrow { right: 0; }\n\n        .wp-custom-projects-slider-container .slide-content {\n            top: 20px; bottom: 30px; text-align: center;\n            flex-direction: column; align-items: center; justify-content: space-between;\n        }\n        .wp-custom-projects-slider-container .slide-content-text h3 { margin-bottom: 5px; }\n        .wp-custom-projects-slider-container .link-voir {\n            transform-origin: center center;\n        }\n    }\n\n    @media (max-width: 420px) {\n        .wp-custom-projects-slider-container .projects-slider { height: 95vw; max-height: none; }\n        .wp-custom-projects-slider-container .nav-arrow { bottom: calc(85vw * (1140 \/ 1272) + 10px); }\n        .wp-custom-projects-slider-container .left-arrow { left: 5vw; }\n        .wp-custom-projects-slider-container .right-arrow { right: 5vw; }\n    }\n<\/style>\n\n<!-- ==========================================\n     BLOC JAVASCRIPT - COMPORTEMENT\n     ========================================== -->\n<script>\n(function() {\n    const CONFIG_COMPOSANT = {\n        delaiAutoPlay: 8000,\n        delaiPauseApresClic: 15000\n    };\n\n    const container = document.getElementById('wp-custom-projects-slider');\n    if (!container) return; \n\n    const slidesElements = Array.from(container.querySelectorAll('.slide'));\n    let currentIndex = slidesElements.findIndex(slide => slide.classList.contains('active'));\n    if (currentIndex === -1) currentIndex = 0;\n\n    let autoplayInterval;\n    let pauseTimeout;\n\n    function renderSlider() {\n        slidesElements.forEach(slide => slide.classList.remove('active', 'prev', 'next'));\n        \n        slidesElements[currentIndex].classList.add('active');\n        \n        let prevIndex = currentIndex - 1 < 0 ? slidesElements.length - 1 : currentIndex - 1;\n        let nextIndex = currentIndex + 1 >= slidesElements.length ? 0 : currentIndex + 1;\n        \n        slidesElements[prevIndex].classList.add('prev');\n        slidesElements[nextIndex].classList.add('next');\n    }\n\n    function goToNextSlide() {\n        currentIndex = currentIndex + 1 >= slidesElements.length ? 0 : currentIndex + 1;\n        renderSlider();\n    }\n\n    function goToPrevSlide() {\n        currentIndex = currentIndex - 1 < 0 ? slidesElements.length - 1 : currentIndex - 1;\n        renderSlider();\n    }\n\n    function startAutoplay() {\n        clearInterval(autoplayInterval);\n        autoplayInterval = setInterval(goToNextSlide, CONFIG_COMPOSANT.delaiAutoPlay); \n    }\n\n    function pauseAutoplayTemporarily() {\n        clearInterval(autoplayInterval); \n        clearTimeout(pauseTimeout); \n        pauseTimeout = setTimeout(startAutoplay, CONFIG_COMPOSANT.delaiPauseApresClic);\n    }\n\n    container.querySelector('.left-arrow').addEventListener('click', () => {\n        goToPrevSlide();\n        pauseAutoplayTemporarily();\n    });\n\n    container.querySelector('.right-arrow').addEventListener('click', () => {\n        goToNextSlide();\n        pauseAutoplayTemporarily();\n    });\n\n    slidesElements.forEach(slide => {\n        slide.addEventListener('click', (e) => {\n            if (slide.classList.contains('active')) {\n                if (!e.target.classList.contains('link-voir')) {\n                    const linkElement = slide.querySelector('.link-voir');\n                    if (linkElement) {\n                        const linkHref = linkElement.getAttribute('href');\n                        \/\/ Redirection si l'attribut href existe et est diff\u00e9rent de '#'\n                        if (linkHref && linkHref !== '#') window.location.href = linkHref;\n                    }\n                }\n            } else if (slide.classList.contains('prev')) {\n                goToPrevSlide();\n                pauseAutoplayTemporarily();\n            } else if (slide.classList.contains('next')) {\n                goToNextSlide();\n                pauseAutoplayTemporarily();\n            }\n        });\n    });\n\n    let touchStartX = 0;\n    let touchEndX = 0;\n    const sliderContainer = container.querySelector('.projects-slider');\n\n    function handleSwipeGesture() {\n        const swipeThreshold = 50; \n        if (touchEndX < touchStartX - swipeThreshold) {\n            goToNextSlide();\n            pauseAutoplayTemporarily();\n        }\n        if (touchEndX > touchStartX + swipeThreshold) {\n            goToPrevSlide();\n            pauseAutoplayTemporarily();\n        }\n    }\n\n    sliderContainer.addEventListener('touchstart', (e) => {\n        touchStartX = e.changedTouches[0].screenX;\n    }, { passive: true });\n\n    sliderContainer.addEventListener('touchend', (e) => {\n        touchEndX = e.changedTouches[0].screenX;\n        handleSwipeGesture();\n    });\n\n    renderSlider();\n    startAutoplay();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Appartement Haussmannien Tala Fustok Paris 16e &#8211; France Paris 16e, France 2021 Tapis Monumentale Sur-Mesure Un \u00c9crin historique au c\u0153ur des \u00e9tages nobles de la capitale C\u2019est dans l\u2019un des quartiers les plus prestigieux de Paris, au sein du 16\u00e8me arrondissement, que les Ateliers Norki ont eu le privil\u00e8ge de participer \u00e0 une r\u00e9novation d\u2019exception. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2449,"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-4862","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>Tapis Mouton sur Mesure | Appartement Paris | Norki<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez le tapis mur-\u00e0-mur en mouton sculpt\u00e9 par Norki pour un appartement d&#039;exception \u00e0 Paris, con\u00e7u par l&#039;architecte Tala Fustok.\" \/>\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\/tala-fustok-paris\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tapis Mouton sur Mesure | Appartement Paris | Norki\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez le tapis mur-\u00e0-mur en mouton sculpt\u00e9 par Norki pour un appartement d&#039;exception \u00e0 Paris, con\u00e7u par l&#039;architecte Tala Fustok.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/\" \/>\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-16T11:03:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/\",\"name\":\"Tapis Mouton sur Mesure | Appartement Paris | 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\\\/tala-fustok-paris\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/ec1f0-61882.jpg\",\"datePublished\":\"2026-07-10T13:03:09+00:00\",\"dateModified\":\"2026-07-16T11:03:02+00:00\",\"description\":\"D\u00e9couvrez le tapis mur-\u00e0-mur en mouton sculpt\u00e9 par Norki pour un appartement d'exception \u00e0 Paris, con\u00e7u par l'architecte Tala Fustok.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/ec1f0-61882.jpg\",\"contentUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/ec1f0-61882.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/tala-fustok-paris\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/\"},{\"@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\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/ville\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Tala-Fustok\"}]},{\"@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":"Tapis Mouton sur Mesure | Appartement Paris | Norki","description":"D\u00e9couvrez le tapis mur-\u00e0-mur en mouton sculpt\u00e9 par Norki pour un appartement d'exception \u00e0 Paris, con\u00e7u par l'architecte Tala Fustok.","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\/tala-fustok-paris\/","og_locale":"fr_FR","og_type":"article","og_title":"Tapis Mouton sur Mesure | Appartement Paris | Norki","og_description":"D\u00e9couvrez le tapis mur-\u00e0-mur en mouton sculpt\u00e9 par Norki pour un appartement d'exception \u00e0 Paris, con\u00e7u par l'architecte Tala Fustok.","og_url":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-16T11:03:02+00:00","og_image":[{"url":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/","url":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/","name":"Tapis Mouton sur Mesure | Appartement Paris | 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\/tala-fustok-paris\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/#primaryimage"},"thumbnailUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg","datePublished":"2026-07-10T13:03:09+00:00","dateModified":"2026-07-16T11:03:02+00:00","description":"D\u00e9couvrez le tapis mur-\u00e0-mur en mouton sculpt\u00e9 par Norki pour un appartement d'exception \u00e0 Paris, con\u00e7u par l'architecte Tala Fustok.","breadcrumb":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/#primaryimage","url":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg","contentUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/tala-fustok-paris\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/"},{"@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","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/ville\/"},{"@type":"ListItem","position":4,"name":"Tala-Fustok"}]},{"@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":"Appartement Haussmannien Tala Fustok Paris 16e &#8211; France Paris 16e, France 2021 Tapis Monumentale Sur-Mesure Un \u00c9crin historique au c\u0153ur des \u00e9tages nobles de la capitale C\u2019est dans l\u2019un des quartiers les plus prestigieux de Paris, au sein du 16\u00e8me arrondissement, que les Ateliers Norki ont eu le privil\u00e8ge de participer \u00e0 une r\u00e9novation d\u2019exception.\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4862","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=4862"}],"version-history":[{"count":21,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4862\/revisions"}],"predecessor-version":[{"id":4919,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4862\/revisions\/4919"}],"up":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/2449"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=4862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=4862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=4862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}