{"id":4900,"date":"2026-07-16T10:43:49","date_gmt":"2026-07-16T08:43:49","guid":{"rendered":"https:\/\/www.norki.com\/sur-mesure\/?page_id=4900"},"modified":"2026-07-16T13:05:12","modified_gmt":"2026-07-16T11:05:12","slug":"tala-fustok-paris","status":"publish","type":"page","link":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/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=\"Haussmann Apartment with custom monumental rug by 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\">Haussmann Apartment 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\">th<\/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\">th<\/span>, France<\/span>\n      <span class=\"nk-hero__meta-item avenirmedium-font\">2021<\/span>\n      <span class=\"nk-hero__meta-item\">Custom Monumental Rug<\/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        A Historical Sanctuary\n        <span class=\"nk-intro__title-accent baskerville-italic-font\">\n          on the noble floors<br>\n          of the capital\n        <\/span>\n      <\/h2>\n    <\/div>\n    \n    <div class=\"nk-intro__content\">\n      <p class=\"nk-intro__paragraph\">\n        Located in one of <a href=\"https:\/\/www.paris.fr\/\" class=\"nk-intro__inline-link\" title=\"Discover Paris\">Paris<\/a>\u2019s most coveted neighborhoods, within the 16<span class=\"nk-intro__superscript\">th<\/span> arrondissement, <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-intro__inline-link\" title=\"Discover Norki Workshops\">Norki Workshops<\/a> had the privilege of contributing to an exceptional renovation. Situated on the noble floors of a grand building, this 250 sqm apartment embodies the very essence of Haussmann architecture. With soaring ceilings, intricate moldings, marble fireplaces, and original Versailles parquet flooring, the space commands respect and elegance.\n      <\/p>\n      <p class=\"nk-intro__paragraph\">\n        However, the ambition for this project was not to remain tethered to traditional classicism. The goal was to challenge conventions, introducing organic modernity and tactile softness to an environment of stone and wood. To orchestrate this transformation, the owner commissioned the singular talent of interior designer <a href=\"https:\/\/talafustok.studio\/\" class=\"nk-intro__inline-link\" title=\"Visit Tala Fustok's website\">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\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"nk-simple-image__wrapper\" title=\"Discover bespoke carpets by Norki Workshops\">\n    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/1727862214509.jpeg\" alt=\"Bespoke monumental wall-to-wall sheepskin carpet in the Haussmann apartment by 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\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"nk-editorial-inline-link\" title=\"Discover bespoke carpets by Norki Workshops\">\n      Custom-made wall-to-wall sheepskin carpet\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                    The Vision of Tala Fustok:<br>A Dialogue Between London and Paris\n                <\/h2>\n                <p class=\"nk-resonance__paragraph\">\n                    Based in London, Tala Fustok is an interior architect renowned for creating urban sanctuaries that blend serenity with boldness. As highlighted by her studio, Tala draws inspiration from a holistic approach, prioritizing natural textures and curved forms to soothe the spirit. Her work is characterized by a meticulous selection of artisans capable of translating her abstract concepts into tangible masterpieces.\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 of Tala Fustok sitting on a sofa with natural textures\" 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 and a colleague under an architectural arch\" 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=\"Detail of the Haussmann apartment living room with an organic sofa and a wooden coffee table set on the bespoke wall-to-wall carpet\" 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                For this Parisian apartment, Tala Fustok envisioned a floor that would be more than just a covering\u2014it was to be a textile work of art. An element capable of unifying the rooms while softening the architectural rigour of the Haussmann style.\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\">Norki\u2019s Expertise:<br>The Creation of a Sculpted Wall-to-Wall Sheepskin Carpet<\/h2>\n            <p class=\"nk-split-text__paragraph\">\n                The centerpiece of this collaboration lies in the design of a <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"nk-split-text__link\" title=\"Discover our bespoke fur and leather rugs\">wall-to-wall carpet<\/a> made of sheared sheepskin, measuring a monumental 12 by 10 meters. This project demanded the full ingenuity of our workshops. The sheepskin was sheared at varying heights to create an exclusive motif, <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-split-text__link\" title=\"Discover Norki bespoke services\">custom-designed<\/a> by the architect. This interplay of relief offers a unique visual depth, where light and shadow dance across the wool&rsquo;s texture.\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\">Precision Installation<br>by Our Master Craftsmen<\/h2>\n            \n            <p class=\"nk-vision__paragraph\">\n                Manufacturing in our workshops was only the first step of this technical challenge. True luxury lies in the details, and for an apartment of this caliber, there is no room for approximation. Our <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/luxury-upholstery-installation-services\/\" class=\"nk-vision__link\" title=\"Discover professional installation and finishing\">master craftsmen<\/a> traveled to the heart of this 16th-district apartment to ensure professional installation and finishing.\n            <\/p>\n            \n            <p class=\"nk-vision__paragraph\">\n                The carpet was finished on-site to perfectly follow the rounded walls and complex alcoves of the Haussmann building, down to the last millimeter. This level of precision guarantees perfect continuity, transforming the floor into an uninterrupted cloud of softness. This <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-vision__link\" title=\"Discover our exclusive savoir-faire\">exclusive savoir-faire<\/a>, blending ancestral techniques with contemporary vision, is the hallmark of <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-vision__link\" title=\"Discover Norki Workshops\">Norki Workshops<\/a>: a luxury that is seen, but above all, felt with every step.\n            <\/p>\n            \n            <div class=\"nk-vision__action\">\n                <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/contact-us\/\" class=\"nk-vision__btn\">Start a bespoke project<\/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=\"Detail of the Norki carpet's finishing following the curves of the sofas in the Haussmann apartment living room\" 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=\"See Paris location on the world map\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-du-monde-Paris.png\" alt=\"World map locating 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                Apartment project in <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 on the exceptional apartment project in Paris\">\n                    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-europe-Paris-v2.png\" alt=\"Zoom on the map of France centered on 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        <!-- Header: Title & Navigation -->\n        <div class=\"nk-sfa__header\">\n            <h2 class=\"nk-sfa__title avenirmedium-font\">\n                Our <span class=\"baskerville-italic-font\">Associated Expertise<\/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=\"Previous slide\">\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=\"Next slide\">\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        <!-- Slider Area -->\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                    <!-- Slide 1: Fur Couture -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/sewing-fur-epv\/\" class=\"nk-sfa__image-link\" aria-label=\"Discover our expertise in Fur Couture\">\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=\"Fur Couture detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Fur Couture<\/p>\n                            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/sewing-fur-epv\/\" class=\"nk-sfa__link\">Discover<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2: Bespoke Upholstery -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-sfa__image-link\" aria-label=\"Discover our expertise in Bespoke Upholstery\">\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=\"Bespoke Upholstery detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Bespoke Upholstery<\/p>\n                            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-sfa__link\">Discover<\/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\/* --- HEADER --- *\/\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\/* --- CAROUSEL --- *\/\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\/* --- DESIGN SYSTEM IMAGE ENCAPSULATION --- *\/\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\/* SQUARE ASPECT RATIO & HOVER EFFECTS *\/\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 --- *\/\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 TABLET (<= 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 (<= 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       CAROUSEL MANAGEMENT (Adaptive 3 \/ 2 \/ 1 layout)\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    \/\/ Clones generation for infinite loop behavior\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; \/\/ Desktop\n        if (window.innerWidth > 768) return 2;  \/\/ Tablet\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    \/\/ Layout view update (handles empty spaces gracefully)\n    const updateCarousel = (instant = false) => {\n        const clones = track.querySelectorAll('.norki-clone');\n\n        \/\/ Static mode if everything fits on the current viewport\n        if (itemsPerView >= totalOriginal) {\n            navBar.style.display = 'none'; \/\/ Hide arrows\n            clones.forEach(c => c.style.display = 'none'); \/\/ Hide clones\n            track.style.transition = 'none';\n            track.style.transform = `translateX(0)`; \/\/ Align slides left\n            return;\n        }\n\n        \/\/ Active carrousel state\n        navBar.style.display = 'flex';\n        clones.forEach(c => c.style.display = ''); \/\/ Restore 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    \/\/ Resize Handler\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            currentIndex = totalOriginal;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Swipe gestures\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 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                Our Selection of <span class=\"baskerville-italic-font\">Objects<\/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=\"Previous slide\">\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=\"Next slide\">\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\/en\/luxury-modern-armchairs-collection-norki\/486-luxury-contemporary-white-armchair-norki.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the Atya Armchair\">\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=\"Atya Armchairs by Maison Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Atya Armchairs<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/luxury-modern-armchairs-collection-norki\/486-luxury-contemporary-white-armchair-norki.html\" class=\"nk-sel__link\">Shop<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 : Pouf Allegro -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/designer-ottomans-stools-collection-norki\/595-white-round-stool-design-sheep-leather-light-oak.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the Allegro Stool\">\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=\"Allegro Stool by Maison Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Allegro Stool<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/designer-ottomans-stools-collection-norki\/595-white-round-stool-design-sheep-leather-light-oak.html\" class=\"nk-sel__link\">Shop<\/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\/en\/high-end-designer-cushion\/90-in-the-fields-cushion-large-model-curly-lamb-fur.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the In The Fields Cushion\">\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=\"In The Fields Cushion by Maison Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">In The Fields Cushion<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/high-end-designer-cushion\/90-in-the-fields-cushion-large-model-curly-lamb-fur.html\" class=\"nk-sel__link\">Shop<\/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=\"Organically shaped detail and bespoke furniture\" 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=\"Our Urban Projects\">\n        \n        <!-- Bloc Information -->\n        <div class=\"projects-info\">\n            <h2 class=\"avenirmedium-font\">Explore all our <br><span class=\"baskerville-italic-font\">Urban Projects<\/span><\/h2>\n            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/\" class=\"link-voir-tout\">View all<\/a>\n        <\/div>\n\n        <!-- Zone Slider -->\n        <div class=\"projects-slider\">\n            <button class=\"nav-arrow left-arrow\" aria-label=\"Previous project\">\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=\"Next project\">\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=\"Parisian apartment, bespoke shearling rug\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Parisian apartment<\/h3>\n                        <p>Bespoke shearling rug<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/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=\"Parisian private mansion, historical residence\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Parisian private mansion<\/h3>\n                        <p>Haussmann historical residence<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/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=\"Private Apartment Paris, bespoke grey fox rug\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Private Apartment<\/h3>\n                        <p>Bespoke grey fox rug<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/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=\"Private Apartment Brussels, large custom cowhide rug\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Brussels, Belgium<\/span>\n                        <h3>Private Apartment<\/h3>\n                        <p>Large bespoke cowhide rug<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/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=\"Private Apartment Paris, custom Verbier throw\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Private Apartment<\/h3>\n                        <p>Bespoke Verbier throw<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/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=\"Mansion House Paris, bespoke foal skin cushion\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Paris, France<\/span>\n                        <h3>Mansion House<\/h3>\n                        <p>Bespoke foal skin cushion<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/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>Haussmann Apartment Tala Fustok Paris 16th &#8211; France Paris 16th, France 2021 Custom Monumental Rug A Historical Sanctuary on the noble floors of the capital Located in one of Paris\u2019s most coveted neighborhoods, within the 16th arrondissement, Norki Workshops had the privilege of contributing to an exceptional renovation. Situated on the noble floors of a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4285,"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-4900","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>Custom-Made Sheepskin Rug | Paris Apartment | Norki<\/title>\n<meta name=\"description\" content=\"Discover the wall-to-wall carved sheepskin rug by Norki for an exceptional Paris apartment, designed by architect 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\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom-Made Sheepskin Rug | Paris Apartment | Norki\" \/>\n<meta property=\"og:description\" content=\"Discover the wall-to-wall carved sheepskin rug by Norki for an exceptional Paris apartment, designed by architect Tala Fustok.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/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:05:12+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\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/\",\"name\":\"Custom-Made Sheepskin Rug | Paris Apartment | Norki\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/ec1f0-61882.jpg\",\"datePublished\":\"2026-07-16T08:43:49+00:00\",\"dateModified\":\"2026-07-16T11:05:12+00:00\",\"description\":\"Discover the wall-to-wall carved sheepskin rug by Norki for an exceptional Paris apartment, designed by architect Tala Fustok.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/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\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/tala-fustok-paris\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our Projects\",\"item\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Urban\",\"item\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/urban-projects\\\/\"},{\"@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":"Custom-Made Sheepskin Rug | Paris Apartment | Norki","description":"Discover the wall-to-wall carved sheepskin rug by Norki for an exceptional Paris apartment, designed by architect 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\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/","og_locale":"fr_FR","og_type":"article","og_title":"Custom-Made Sheepskin Rug | Paris Apartment | Norki","og_description":"Discover the wall-to-wall carved sheepskin rug by Norki for an exceptional Paris apartment, designed by architect Tala Fustok.","og_url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-16T11:05:12+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\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/","url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/","name":"Custom-Made Sheepskin Rug | Paris Apartment | Norki","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/#primaryimage"},"thumbnailUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/ec1f0-61882.jpg","datePublished":"2026-07-16T08:43:49+00:00","dateModified":"2026-07-16T11:05:12+00:00","description":"Discover the wall-to-wall carved sheepskin rug by Norki for an exceptional Paris apartment, designed by architect Tala Fustok.","breadcrumb":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/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\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/tala-fustok-paris\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/"},{"@type":"ListItem","position":2,"name":"Our Projects","item":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/"},{"@type":"ListItem","position":3,"name":"Urban","item":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/urban-projects\/"},{"@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":"Haussmann Apartment Tala Fustok Paris 16th &#8211; France Paris 16th, France 2021 Custom Monumental Rug A Historical Sanctuary on the noble floors of the capital Located in one of Paris\u2019s most coveted neighborhoods, within the 16th arrondissement, Norki Workshops had the privilege of contributing to an exceptional renovation. Situated on the noble floors of a\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4900","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=4900"}],"version-history":[{"count":5,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4900\/revisions"}],"predecessor-version":[{"id":4920,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4900\/revisions\/4920"}],"up":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4285"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=4900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=4900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=4900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}