{"id":5170,"date":"2026-07-22T08:16:43","date_gmt":"2026-07-22T06:16:43","guid":{"rendered":"https:\/\/www.norki.com\/sur-mesure\/?page_id=5170"},"modified":"2026-07-22T09:58:31","modified_gmt":"2026-07-22T07:58:31","slug":"jacques-garcia-saint-moritz","status":"publish","type":"page","link":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/","title":{"rendered":"Jacques Garcia"},"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\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png\" alt=\"Exterior of the Chalet in St. Moritz, Switzerland - The Pinnacle of Alpine Luxury by Norki and Jacques Garcia\" 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      <!-- Wrapper pour le titre -->\n      <div class=\"nk-hero__title-wrapper\">\n        <h1 class=\"nk-hero__title avenirmedium-font\">The Pinnacle of Alpine Luxury: Norki \u00d7 Jacques Garcia<\/h1>\n      <\/div>\n      <!-- Wrapper pour le sous-titre -->\n      <div class=\"nk-hero__subtitle-wrapper\">\n        <span class=\"nk-hero__subtitle baskerville-italic-font\">St. Moritz<\/span>\n      <\/div>\n    <\/div>\n    \n    <hr class=\"nk-hero__divider\">\n    \n    <!-- Meta informations d\u00e9filantes -->\n    <div class=\"nk-hero__meta\">\n      <span class=\"nk-hero__meta-item avenirmedium-font\">St. Moritz, Switzerland<\/span>\n      <span class=\"nk-hero__meta-item avenirmedium-font\">2012<\/span>\n      <span class=\"nk-hero__meta-item\">Fur rugs and furniture<\/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\/* 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        St. Moritz: The Engadin Jewel\n        <span class=\"nk-intro__title-accent baskerville-italic-font\">for an Extraordinary Project<\/span>\n      <\/h2>\n    <\/div>\n    \n    <div class=\"nk-intro__content\">\n      <p class=\"nk-intro__paragraph\">\n        <a href=\"https:\/\/www.stmoritz.com\/en\/\" class=\"nk-intro__inline-link\" target=\"_blank\" rel=\"noopener\" title=\"Discover St. Moritz\"><strong>St. Moritz<\/strong><\/a> is more than just a ski resort; it is a legend nestled in the heart of the Swiss Alps. A favored destination for the international jet set and the business elite, the resort is world-renowned for its high-end boutiques, legendary palaces, and exclusive after-dinner networking. Yet, beyond the glamour, St. Moritz is the true birthplace of winter sports. Nature here wears its finest winter coat: a series of frozen lakes surrounded by larch forests and pristine peaks. With 300 days of sunshine a year and generous snowfall, the <a href=\"https:\/\/www.engadin.ch\/en\/\" class=\"nk-intro__inline-link\" target=\"_blank\" rel=\"noopener\" title=\"Discover Engadin\"><strong>Engadin<\/strong><\/a> valley offers a living environment beyond compare.\n      <\/p>\n      <p class=\"nk-intro__paragraph\">\n        In this sanctuary of elegance, a titanic architectural project took place: the interior design of a private chalet exceeding 5,000 square meters. To furnish this palace-sized mountain home, the undisputed master of interior design, <a href=\"https:\/\/www.studiojacquesgarcia.com\/\" class=\"nk-intro__inline-link\" target=\"_blank\" rel=\"noopener\" title=\"Studio Jacques Garcia\"><strong>Jacques Garcia<\/strong><\/a>, turned to the unique expertise of <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-intro__inline-link\" title=\"Discover Norki bespoke craftsmanship\"><strong>Norki Workshops<\/strong><\/a>.\n      <\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\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__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.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; \/* Correction de \"stroke\" (invalide) vers \"start\" *\/\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.25;\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: 0.95em; \/* L\u00e9g\u00e8rement plus petit et subtil *\/\n  color: #000000;\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: 80%;\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  }\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 pointant vers l'expertise tapisserie d'ameublement de Norki -->\n  <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-simple-image__wrapper\" title=\"Discover bespoke upholstery and custom seat padding\">\n    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Baccarat-chairs_Projet-Jacques-Garcia-v2-2048x1165.png\" alt=\"Exceptional dining room of a chalet in St. Moritz with chairs and seats clad in precious pelts by Norki bespoke upholstery workshops\" class=\"nk-simple-image__img\" loading=\"lazy\">\n  <\/a>\n  \n  <!-- L\u00e9gende \u00e9ditoriale align\u00e9e \u00e0 droite -->\n  <div class=\"nk-simple-image__caption\">\n    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-editorial-inline-link\" title=\"Discover bespoke upholstery services\">\n      Chairs clad in precious pelts by our workshops\n    <\/a>\n  <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n COMPOSANT : SECTION IMAGE UNIQUE IMMERSIVE\n============================================ *\/\n.nk-simple-image {\n  width: 100%;\n  background-color: var(--color-norki-beige, #f8f0ea);\n  line-height: 0; \/* \u00c9vite un d\u00e9calage de pixel parasite sous l'image *\/\n  overflow: hidden;\n  padding-bottom: 15px; \/* 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: 10px;\n  text-align: right;\n  color: #000;\n  line-height: normal; \/* Annule le line-height 0 du parent pour l'affichage de texte *\/\n  padding-right: var(--section-pad-h-dt, 5vw); \/* 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, 4vw);\n  }\n}\n\n@media (max-width: 767px) {\n  .nk-simple-image__caption {\n    padding-right: var(--section-pad-h-mob, 20px);\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    \/* Centrage conserv\u00e9 sur mobile pour \u00e9quilibrer la chemin\u00e9e et les canap\u00e9s de chaque c\u00f4t\u00e9 *\/\n    object-position: center center;\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-resonance\">\n  <div class=\"nk-resonance__inner\">\n    \n    <!-- Colonne Gauche : Textes + Escalier monumental -->\n    <div class=\"nk-resonance__col-left\">\n      <div class=\"nk-resonance__text-block\">\n        <h2 class=\"nk-resonance__title avenirmedium-font\">\n          Jacques Garcia: An Imperial Signature for an Exceptional Residence\n        <\/h2>\n        <p class=\"nk-resonance__paragraph\">\n          <a href=\"https:\/\/www.studiojacquesgarcia.com\/\" class=\"nk-resonance__link\" target=\"_blank\" rel=\"noopener\" title=\"Studio Jacques Garcia\">Jacques Garcia<\/a> does not merely decorate spaces; he creates living works of art. From the Ch\u00e2teau du Champ de Bataille to the H\u00f4tel Costes in Paris and La Mamounia in Marrakech, his touch is synonymous with opulence and extreme refinement. For this exceptional chalet in <a href=\"https:\/\/www.stmoritz.com\/en\/\" class=\"nk-resonance__link\" target=\"_blank\" rel=\"noopener\" title=\"Discover St. Moritz\">St. Moritz<\/a>, Jacques Garcia envisioned an atmosphere where the warmth of noble materials responds to the rigor of the Alpine climate.\n        <\/p>\n        <p class=\"nk-resonance__paragraph\" style=\"margin-top: 18px !important;\">\n          The trust he has placed in <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-resonance__link\" title=\"Discover Norki bespoke craftsmanship\">Norki Workshops<\/a> for many years has enabled us to bring to life pieces of rare technical complexity. Working with Jacques Garcia means pushing the boundaries of artistic craftsmanship to achieve absolute perfection.\n        <\/p>\n      <\/div>\n      \n      <div class=\"nk-resonance__img-wrapper-left\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Monumental-wooden-staircase-Norki.jpg\" alt=\"Monumental stone staircase and carved railing for the exceptional chalet in St. Moritz\" class=\"nk-resonance__img\" loading=\"lazy\">\n      <\/div>\n    <\/div>\n\n    <!-- Colonne Droite : Portrait de Jacques Garcia + Signature -->\n    <div class=\"nk-resonance__col-right\">\n      <div class=\"nk-resonance__img-wrapper-right\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Portrait-Jacques-Garcia-Credit-Bruno-Ehrs-mod.jpg\" alt=\"Official portrait of interior architect Jacques Garcia in his decor - Credit Bruno Ehrs\" class=\"nk-resonance__img\" loading=\"lazy\">\n      <\/div>\n      <div class=\"nk-resonance__signature-wrapper\">\n        <span class=\"nk-resonance__signature bestermind-font\">Jacques Garcia<\/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, #f8f0ea);\n    \/* Application des variables de DA globales *\/\n    padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\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 + Escalier)\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  \/* Style de vos liens in-text *\/\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; \/* Alignement du contenu \u00e0 droite sur PC *\/\n  }\n\n  .nk-resonance__img-wrapper-right {\n    width: 70%; \/* L'image prend 70% de la largeur de la colonne *\/\n    overflow: hidden; \/* Masque le d\u00e9bordement lors du scale *\/\n  }\n\n  .nk-resonance__signature-wrapper {\n    margin-top: 25px;\n    width: 70%; \/* Alignement parfait avec la largeur de l'image *\/\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);\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, 4vw);\n    }\n    \n    .nk-resonance__inner {\n      grid-template-columns: 1fr 1fr; \/* Ratio 50\/50 pour \u00e9quilibrer sur tablette *\/\n      gap: 40px;\n    }\n\n    .nk-resonance__img-wrapper-left {\n      width: 90%;\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 (Escalier) *\/\n    .nk-resonance__img-wrapper-left {\n      width: 85%;\n      margin-left: 0;\n      order: 2;\n    }\n    \n    \/* Colonne de droite (Portrait) *\/\n    .nk-resonance__col-right {\n      order: 3;\n      align-items: center; \/* Centrage sur mobile *\/\n      margin-top: 20px;\n    }\n\n    .nk-resonance__img-wrapper-right {\n      width: 100%;\n    }\n\n    .nk-resonance__signature-wrapper {\n      width: 100%;\n    }\n  }\n<\/style>\n\n\n\n<section class=\"nk-savoir-faire\">\n    <div class=\"nk-savoir-faire__inner\">\n        \n        <!-- Colonne Gauche (PC) \/ Milieu et Bas (Mobile) -->\n        <div class=\"nk-savoir-faire__col-left\">\n            <div class=\"nk-savoir-faire__text-block\">\n                <h2 class=\"nk-savoir-faire__title avenirmedium-font\">\n                    Norki\u2019s Craftsmanship: Haute Fur <br class=\"nk-savoir-faire__br-pc\">and Bespoke Creations\n                <\/h2>\n                <p class=\"nk-savoir-faire__paragraph\">\n                    The requirements for this project remains one of the most iconic in our history. To adorn all the windows of this 5,000 sqm chalet, we produced and installed approximately <strong>16,000 meters of golden mink trim<\/strong>. These precious finishes highlight the drape of heavy cashmere curtains, adding incomparable density and luster to the views of the Swiss peaks.\n                <\/p>\n            <\/div>\n            \n            <div class=\"nk-savoir-faire__img-wrapper-small\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Bordure-rideau-fourrure-breitschwantz-768x1060.jpeg\" alt=\"Detail of bespoke craftsmanship: fur curtain trim\" class=\"nk-savoir-faire__img\" loading=\"lazy\">\n            <\/div>\n        <\/div>\n\n        <!-- Colonne Droite (PC) \/ Haut (Mobile) -->\n        <div class=\"nk-savoir-faire__col-right\">\n            <div class=\"nk-savoir-faire__img-wrapper-large\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Rideaux-sur-mesure-bordure-vison.png\" alt=\"Majestic custom-made curtains with golden mink trim opening onto the Alps\" class=\"nk-savoir-faire__img\" loading=\"lazy\">\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SECTION SAVOIR-FAIRE\n       ========================================================================== *\/\n    .nk-savoir-faire {\n        width: 100%;\n        background-color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: center;\n        padding-top: 0 !important;\n    }\n\n    .nk-savoir-faire__inner {\n        width: 100%;\n        display: grid;\n        grid-template-columns: 3.5fr 6.5fr; \/* Proportion asym\u00e9trique : 35% \/ 65% *\/\n        gap: clamp(40px, 6vw, 100px);\n        align-items: start;\n    }\n\n    \/* ==========================================================================\n       COLONNE GAUCHE (Texte + Petite Image)\n       ========================================================================== *\/\n    .nk-savoir-faire__col-left {\n        display: flex;\n        flex-direction: column;\n    }\n\n    .nk-savoir-faire__title {\n        font-size: clamp(1.4rem, 2.3vw, 32px); \/* Taille fluide coh\u00e9rente avec la DA *\/\n        line-height: 1.25;\n        color: #000000;\n        font-weight: 500;\n        margin: 0 0 25px 0 !important;\n        letter-spacing: -0.01em;\n    }\n\n    .nk-savoir-faire__br-pc {\n        display: block; \/* Force le retour \u00e0 la ligne sur PC comme sur la maquette *\/\n    }\n\n    .nk-savoir-faire__paragraph {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        color: #000000;\n        margin: 0 !important;\n        max-width: 90%; \/* Souffle \u00e0 droite du texte sur PC *\/\n    }\n\n    .nk-savoir-faire__img-wrapper-small {\n        width: 60%; \/* Image plus \u00e9troite que le texte sur PC *\/\n        margin-top: clamp(40px, 8vw, 100px); \/* Espacement dynamique sous le texte *\/\n        overflow: hidden;\n    }\n\n    \/* ==========================================================================\n       COLONNE DROITE (Grande Image)\n       ========================================================================== *\/\n    .nk-savoir-faire__col-right {\n        width: 100%;\n        height: 100%;\n    }\n\n    .nk-savoir-faire__img-wrapper-large {\n        width: 100%;\n        overflow: hidden;\n    }\n\n    \/* ==========================================================================\n       STYLES COMMUNS IMAGES\n       ========================================================================== *\/\n    .nk-savoir-faire__img {\n        width: 100%;\n        height: auto;\n        display: block;\n        object-fit: cover;\n        transform: scale(1);\n        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n    }\n\n    \/* Effet de zoom \u00e9l\u00e9gant de la DA *\/\n    .nk-savoir-faire__img-wrapper-small:hover .nk-savoir-faire__img,\n    .nk-savoir-faire__img-wrapper-large:hover .nk-savoir-faire__img {\n        transform: scale(1.03);\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE TABLETTE (\u2264 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .nk-savoir-faire {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .nk-savoir-faire__inner {\n            grid-template-columns: 4fr 6fr; \/* R\u00e9\u00e9quilibrage l\u00e9ger *\/\n            gap: 40px;\n        }\n\n        .nk-savoir-faire__paragraph {\n            max-width: 100%;\n        }\n\n        .nk-savoir-faire__img-wrapper-small {\n            width: 80%;\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE MOBILE (\u2264 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .nk-savoir-faire {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        \/* Bascule en Flexbox pour g\u00e9rer l'ordre d'affichage (order) *\/\n        .nk-savoir-faire__inner {\n            display: flex;\n            flex-direction: column;\n            gap: 0; \/* G\u00e9r\u00e9 par les margins internes *\/\n        }\n\n        \/* La grande image passe tout en haut *\/\n        .nk-savoir-faire__col-right {\n            order: 1;\n            margin-bottom: 40px;\n        }\n\n        \/* Le texte et la petite image passent en dessous *\/\n        .nk-savoir-faire__col-left {\n            order: 2;\n        }\n\n        .nk-savoir-faire__br-pc {\n            display: none; \/* Laisse le texte fluer naturellement sur mobile *\/\n        }\n\n        .nk-savoir-faire__title {\n            font-size: 1.6rem;\n            margin-bottom: 20px !important;\n        }\n\n        .nk-savoir-faire__paragraph {\n            width: 100%;\n            max-width: 100%; \/* 100% largeur paragraphe sur \u00e9cran *\/\n        }\n\n        .nk-savoir-faire__img-wrapper-small {\n            width: 100%; \/* 100% largeur pour l'image 2 *\/\n            margin-top: 40px;\n        }\n    }\n<\/style>\n\n\n\n<section class=\"nk-salon-principal\">\n    <div class=\"nk-salon-principal__inner\">\n        \n        <!-- Colonne Gauche (PC) \/ Haut (Mobile) : Grande Image -->\n        <div class=\"nk-salon-principal__col-left\">\n            <div class=\"nk-salon-principal__img-wrapper-large\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/chalet-project-saint-moritz-jacques-garcia.jpg\" alt=\"Main living room of the St. Moritz chalet with monumental white fox rug and Jean Roy\u00e8re furniture\" class=\"nk-salon-principal__img\" loading=\"lazy\">\n            <\/div>\n        <\/div>\n\n        <!-- Colonne Droite (PC) \/ Milieu et Bas (Mobile) : Texte + Petite Image -->\n        <div class=\"nk-salon-principal__col-right\">\n            <div class=\"nk-salon-principal__text-block\">\n                <!-- Pas de titre H2 ici selon la maquette fournie -->\n                <p class=\"nk-salon-principal__paragraph\">\n                    In the main living room, the eye is immediately drawn to a masterwork: a 12-meter by 10-meter rug crafted from white fox. This expanse of softness hosts an Ambassador collection furniture set by Jean Roy\u00e8re. The sofas and armchairs of this iconic collection were entirely upholstered in golden mink by our craftsmen, creating a striking chromatic and tactile contrast.\n                <\/p>\n            <\/div>\n            \n            <div class=\"nk-salon-principal__img-wrapper-small\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Photo-Fauteuil-Royere-fourrure-vison.jpg\" alt=\"Detail of an Ambassador armchair by Jean Roy\u00e8re upholstered in golden mink by Norki Workshops\" class=\"nk-salon-principal__img\" loading=\"lazy\">\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SECTION SALON PRINCIPAL (Invers\u00e9e)\n       ========================================================================== *\/\n    .nk-salon-principal {\n        padding-top: 0 !important;\n        width: 100%;\n        background-color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: center;\n    }\n\n    .nk-salon-principal__inner {\n        width: 100%;\n        display: grid;\n        \/* Proportion asym\u00e9trique invers\u00e9e : 65% \/ 35% *\/\n        grid-template-columns: 6.5fr 3.5fr; \n        gap: clamp(40px, 6vw, 100px);\n        align-items: start;\n    }\n\n    \/* ==========================================================================\n       COLONNE GAUCHE (Grande Image)\n       ========================================================================== *\/\n    .nk-salon-principal__col-left {\n        width: 100%;\n        height: 100%;\n    }\n\n    .nk-salon-principal__img-wrapper-large {\n        width: 100%;\n        overflow: hidden;\n    }\n\n    \/* ==========================================================================\n       COLONNE DROITE (Texte + Petite Image)\n       ========================================================================== *\/\n    .nk-salon-principal__col-right {\n        display: flex;\n        flex-direction: column;\n    }\n\n    .nk-salon-principal__paragraph {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        color: #000000;\n        margin: 0 !important;\n        font-weight: 500; \/* L\u00e9g\u00e8rement en gras selon le rendu du PDF *\/\n    }\n\n    .nk-salon-principal__img-wrapper-small {\n        width: 85%; \/* Image l\u00e9g\u00e8rement plus \u00e9troite que la colonne sur PC *\/\n        margin-left: auto; \/* Aligne l'image sur la droite de sa colonne (effet maquette) *\/\n        margin-top: clamp(40px, 8vw, 100px); \/* Espacement dynamique sous le texte *\/\n        overflow: hidden;\n    }\n\n    \/* ==========================================================================\n       STYLES COMMUNS IMAGES\n       ========================================================================== *\/\n    .nk-salon-principal__img {\n        width: 100%;\n        height: auto;\n        display: block;\n        object-fit: cover;\n        transform: scale(1);\n        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n    }\n\n    \/* Effet de zoom \u00e9l\u00e9gant de la DA *\/\n    .nk-salon-principal__img-wrapper-small:hover .nk-salon-principal__img,\n    .nk-salon-principal__img-wrapper-large:hover .nk-salon-principal__img {\n        transform: scale(1.03);\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE TABLETTE (\u2264 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .nk-salon-principal {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .nk-salon-principal__inner {\n            \/* R\u00e9\u00e9quilibrage l\u00e9ger pour tablette *\/\n            grid-template-columns: 6fr 4fr; \n            gap: 40px;\n        }\n\n        .nk-salon-principal__img-wrapper-small {\n            width: 100%;\n            margin-left: 0;\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE MOBILE (\u2264 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .nk-salon-principal {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        \/* Bascule en Flexbox colonne. \n           L'ordre DOM naturel (Gauche puis Droite) est d\u00e9j\u00e0 parfait ici : \n           Grande image -> Texte -> Petite image *\/\n        .nk-salon-principal__inner {\n            display: flex;\n            flex-direction: column;\n            gap: 40px; \n        }\n\n        .nk-salon-principal__col-left,\n        .nk-salon-principal__col-right {\n            width: 100%;\n        }\n\n        .nk-salon-principal__paragraph {\n            width: 100%;\n            max-width: 100%;\n            font-weight: normal; \/* Retour \u00e0 une graisse normale sur mobile pour la lisibilit\u00e9 *\/\n        }\n\n        .nk-salon-principal__img-wrapper-small {\n            width: 100%; \/* 100% largeur pour l'image 2 selon tes instructions *\/\n            margin-top: 40px;\n        }\n    }\n<\/style>\n\n\n\n<section class=\"nk-maitrise-globale\">\n    <div class=\"nk-maitrise-globale__inner\">\n        \n        <!-- Colonne Gauche (PC) \/ Haut (Mobile) : Texte -->\n        <div class=\"nk-maitrise-globale__col-text\">\n            <h2 class=\"nk-maitrise-globale__title avenirmedium-font\">\n                Global Mastery:<br class=\"nk-maitrise-globale__br-pc\"> From the Workshop to Installation\n            <\/h2>\n            <p class=\"nk-maitrise-globale__paragraph\">\n                Every ottoman, sofa, and fur rug placed throughout the house was designed to fit perfectly into the architect&rsquo;s global vision. The success of such a project relies on impeccable logistics and installation performed by our own master craftsmen, who are well-versed in the constraints of prestigious mountain sites.\n            <\/p>\n            <p class=\"nk-maitrise-globale__paragraph\">\n                This project, created hand-in-hand with <a href=\"https:\/\/www.studiojacquesgarcia.com\/\" class=\"nk-maitrise-globale__link\" target=\"_blank\" rel=\"noopener\" title=\"Studio Jacques Garcia\">Jacques Garcia<\/a>, remains a historic milestone for <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-maitrise-globale__link\" title=\"Discover Norki Workshops bespoke creations\">Norki Workshops<\/a>. We express our deepest gratitude to this visionary designer for his loyalty and for allowing us to participate in writing this chapter of the history of exceptional interior design.\n            <\/p>\n        <\/div>\n\n        <!-- Colonne Droite (PC) \/ Bas (Mobile) : Image Unique -->\n        <div class=\"nk-maitrise-globale__col-img\">\n            <div class=\"nk-maitrise-globale__img-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Orylag-sofas_sheepskin-rug_Saint-Moritz_Switzerland_Norki_projet-Jacques-Garcia-v2-1536x870.png\" alt=\"Vaulted lounge space in the St. Moritz chalet with bespoke sofas, ottomans, and rugs by Norki\" class=\"nk-maitrise-globale__img\" loading=\"lazy\">\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SECTION MAITRISE GLOBALE\n       ========================================================================== *\/\n    .nk-maitrise-globale {\n        width: 100%;\n        background-color: var(--color-norki-beige, #f8f0ea);\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        box-sizing: border-box;\n        display: flex;\n        justify-content: center;\n    }\n\n    .nk-maitrise-globale__inner {\n        width: 100%;\n        display: grid;\n        grid-template-columns: 3.5fr 6.5fr; \/* Proportion asym\u00e9trique : 35% Texte \/ 65% Image *\/\n        gap: clamp(40px, 6vw, 100px);\n        align-items: center; \/* Centrage vertical du texte par rapport \u00e0 l'image selon maquette *\/\n    }\n\n    \/* ==========================================================================\n       COLONNE GAUCHE (Texte)\n       ========================================================================== *\/\n    .nk-maitrise-globale__col-text {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n    }\n\n    .nk-maitrise-globale__title {\n        font-size: clamp(1.4rem, 2.3vw, 32px);\n        line-height: 1.25;\n        color: #000000;\n        font-weight: 500;\n        margin: 0 0 25px 0 !important;\n        letter-spacing: -0.01em;\n    }\n\n    .nk-maitrise-globale__br-pc {\n        display: block;\n    }\n\n    .nk-maitrise-globale__paragraph {\n        font-size: 0.95rem;\n        line-height: 1.6;\n        color: #000000;\n        margin: 0 0 18px 0 !important; \/* Espacement entre les paragraphes *\/\n        max-width: 95%; \/* Souffle \u00e0 droite du texte sur PC *\/\n    }\n\n    .nk-maitrise-globale__paragraph:last-child {\n        margin-bottom: 0 !important;\n    }\n\n    \/* Style des liens in-text coh\u00e9rent avec la DA *\/\n    .nk-maitrise-globale__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-maitrise-globale__link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    \/* ==========================================================================\n       COLONNE DROITE (Image)\n       ========================================================================== *\/\n    .nk-maitrise-globale__col-img {\n        width: 100%;\n        height: 100%;\n        display: flex;\n        align-items: center; \/* S'assure que l'image est bien plac\u00e9e dans sa cellule grid *\/\n    }\n\n    .nk-maitrise-globale__img-wrapper {\n        width: 100%;\n        overflow: hidden;\n    }\n\n    .nk-maitrise-globale__img {\n        width: 100%;\n        height: auto;\n        display: block;\n        object-fit: cover;\n        transform: scale(1);\n        transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n    }\n\n    \/* Effet de zoom \u00e9l\u00e9gant de la DA *\/\n    .nk-maitrise-globale__img-wrapper:hover .nk-maitrise-globale__img {\n        transform: scale(1.03);\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE TABLETTE (\u2264 1024px)\n       ========================================================================== *\/\n    @media (max-width: 1024px) {\n        .nk-maitrise-globale {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .nk-maitrise-globale__inner {\n            grid-template-columns: 4.5fr 5.5fr; \/* R\u00e9\u00e9quilibrage du ratio *\/\n            gap: 40px;\n        }\n\n        .nk-maitrise-globale__paragraph {\n            max-width: 100%;\n        }\n    }\n\n    \/* ==========================================================================\n       RESPONSIVE MOBILE (\u2264 768px)\n       ========================================================================== *\/\n    @media (max-width: 768px) {\n        .nk-maitrise-globale {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .nk-maitrise-globale__inner {\n            display: flex;\n            flex-direction: column;\n            gap: 30px; \n        }\n\n        \/* L'ordre naturel place la colonne texte en haut et l'image en bas,\n           aucune propri\u00e9t\u00e9 order n'est n\u00e9cessaire *\/\n\n        .nk-maitrise-globale__br-pc {\n            display: none; \/* Laisse le texte fluer naturellement sur mobile *\/\n        }\n\n        .nk-maitrise-globale__title {\n            font-size: 1.6rem;\n            margin-bottom: 20px !important;\n        }\n\n        .nk-maitrise-globale__paragraph {\n            width: 100%;\n            max-width: 100%; \n        }\n\n        .nk-maitrise-globale__col-img {\n            width: 100%; \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.stmoritz.com\/en\/\" class=\"nk-map__world-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"View the St. Moritz chalet project on the world map\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-du-monde-St-Moritz.png\" alt=\"World map locating St. Moritz\" 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                Chalet Project in <span class=\"baskerville-italic-font\">St. Moritz<\/span>\n            <\/span>\n            <div class=\"nk-map__circle\">\n                <a href=\"https:\/\/www.stmoritz.com\/en\/\" class=\"nk-map__circle-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"Zoom on the exceptional chalet project in St. Moritz\">\n                    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-europe-St-Moritz.png\" alt=\"Zoom on the map of Europe locating St. Moritz\" 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, #f8f0ea);\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: 20px;\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 ease, 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.01);\n    opacity: 0.92;\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.5rem, 2.2vw, 28px);\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.8); \/* Fine bordure sombre fa\u00e7on maquette *\/\n    background-color: var(--color-norki-beige, #f8f0ea);\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: 20% center; \/* Cadrage optimal *\/\n    \/* Transition d'animation HoverZoom issue de la DA *\/\n    transition: transform 0.6s ease;\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.03); \/* 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, 4vw);\n        padding-right: var(--section-pad-h-tab, 4vw);\n    }\n    \n    .nk-map__inner {\n        gap: 15px; \/* \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.4rem;\n        margin-bottom: 30px;\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        <!-- En-t\u00eate : Titre (Gauche) + Fl\u00e8ches (Droite) -->\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            <!-- Navigation remont\u00e9e sur la m\u00eame ligne que le titre -->\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        <!-- Section Carrousel -->\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 : Couture Fourrure -->\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 sewing\">\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 sewing detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Fur sewing<\/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 : Tapisserie d'ameublement -->\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                    <!-- Slide 3 : Couture d'ameublement -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"nk-sfa__image-link\" aria-label=\"Discover our expertise in Soft furnishings\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/atelier-couture-ameublement-decoration-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=\"Soft furnishings detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Soft furnishings<\/p>\n                            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"nk-sfa__link\">Discover<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 4 : Tapis sur-mesure -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" class=\"nk-sfa__image-link\" aria-label=\"Discover our expertise in Bespoke rugs\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/savoir-faire-tapis-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 rug detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Bespoke rugs<\/p>\n                            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-fur-leather-rugs\/\" 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\/* --- EN-T\u00caTE --- *\/\n.nk-sfa__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    margin-bottom: 50px;\n    gap: 15px; \/* \u00c9vite que les fl\u00e8ches ne collent au titre sur petits \u00e9crans *\/\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; \/* Compense le padding des boutons *\/\n}\n\n.nk-sfa__arrows button {\n    background: none;\n    border: none;\n    color: #000000;\n    cursor: pointer;\n    padding: 5px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: opacity 0.3s ease;\n}\n\n.nk-sfa__arrows button:hover { opacity: 0.6; }\n\n.nk-sfa__arrows svg {\n    width: 26px;\n    height: 26px;\n    fill: none;\n    stroke: currentColor;\n    stroke-width: 1.2;\n}\n\n\/* --- CARROUSEL --- *\/\n.nk-sfa__slider-area {\n    position: relative;\n    width: 100%;\n}\n\n.nk-sfa__carousel-viewport {\n    overflow: hidden;\n    touch-action: pan-y;\n    margin: 0 -15px; \/* Compense le padding des slides *\/\n}\n\n.nk-sfa__carousel-track {\n    display: flex;\n    will-change: transform;\n}\n\n.nk-sfa__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-sfa__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: rgba(0, 0, 0, 0.05);\n    position: relative;\n}\n\n\/* FORMAT CARR\u00c9 IMP\u00c9RATIF ET ANIMATIONS *\/\n.nk-sfa__slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center;\n    display: block;\n    opacity: 0;\n    \/* 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-sfa__slide img.norki-loaded {\n    opacity: 1;\n}\n\n\/* HoverZoom sur l'image au survol de la bo\u00eete *\/\n.nk-sfa__image-link:hover img {\n    transform: scale(1.03);\n}\n\n\/* --- CAPTIONS SOUS LES IMAGES --- *\/\n.nk-sfa__caption {\n    text-align: center;\n    padding-top: 25px;\n}\n\n.nk-sfa__caption-title {\n    font-size: clamp(1.2rem, 1.5vw, 22px);\n    font-weight: normal;\n    margin: 0 0 6px 0 !important;\n    color: #000000;\n}\n\n.nk-sfa__link {\n    font-size: 0.95rem;\n    color: #000000;\n    text-decoration: underline;\n    text-underline-offset: 3px;\n    text-decoration-thickness: 1.5px;\n    text-decoration-color: #000000;\n    transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n    display: inline-block;\n}\n\n.nk-sfa__link:hover {\n    opacity: 0.7;\n    text-decoration-color: transparent; \/* D\u00e9soulignement fluide *\/\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-sfa {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-tab, 60px);\n        padding-left: var(--section-pad-h-tab, 4vw);\n        padding-right: var(--section-pad-h-tab, 4vw);\n    }\n    \n    .nk-sfa__header {\n        margin-bottom: 30px;\n    }\n\n    \/* Annulation de l'effet hover d'opacit\u00e9 sur \u00e9crans tactiles *\/\n    .nk-sfa__arrows button:hover,\n    .nk-sfa__arrows button:active,\n    .nk-sfa__arrows button:focus {\n        opacity: 1 !important;\n    }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-sfa {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-mob, 50px);\n        padding-left: var(--section-pad-h-mob, 20px);\n        padding-right: var(--section-pad-h-mob, 20px);\n    }\n\n    .nk-sfa__header {\n        align-items: center; \/* Centre les fl\u00e8ches verticalement avec le texte *\/\n        margin-bottom: 25px;\n    }\n\n    .nk-sfa__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-sfa__arrows {\n        margin-right: -5px;\n        gap: 10px;\n    }\n\n    .nk-sfa__arrows svg {\n        width: 22px; \/* Fl\u00e8ches tr\u00e8s l\u00e9g\u00e8rement r\u00e9duites sur mobile *\/\n        height: 22px;\n    }\n\n    .nk-sfa__carousel-viewport {\n        margin: 0 -5px; \/* \u00c9cart r\u00e9duit sur mobile *\/\n    }\n\n    .nk-sfa__slide {\n        padding: 0 5px;\n    }\n\n    .nk-sfa__caption {\n        padding-top: 15px;\n    }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n\n    \/* =========================================================\n       GESTION DU CARROUSEL (Adaptatif 3 \/ 2 \/ 1)\n       ========================================================= *\/\n    const container = document.getElementById('sfa-slider');\n    if (!container) return;\n\n    const section = container.closest('.nk-sfa'); \/\/ S\u00e9lection globale de la section\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'); \/\/ Barre de navigation remont\u00e9e\n\n    \/\/ Clonage pour l'effet de boucle infinie\n    originalSlides.forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        \/\/ On s'assure que les liens des clones ne soient pas focusables au clavier\n        clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n        track.appendChild(clone);\n    });\n    originalSlides.slice().reverse().forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n        track.insertBefore(clone, track.firstChild);\n    });\n\n    const allSlides = Array.from(container.querySelectorAll('.nk-sfa__slide'));\n\n    const getSlidesPerView = () => {\n        if (window.innerWidth > 1024) return 3; \/\/ PC\n        if (window.innerWidth > 768) return 2;  \/\/ Tablette\n        return 1;                               \/\/ Mobile\n    };\n\n    let itemsPerView = getSlidesPerView();\n    let itemWidthPct = 100 \/ itemsPerView;\n    allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n    \n    let currentIndex = totalOriginal; \n    let isAnimating = false;\n\n    \/\/ Masque\/Affiche la navigation si toutes les slides sont visibles\n    const updateNavVisibility = () => {\n        if (navBar) {\n            \/\/ Affichage forc\u00e9 des fl\u00e8ches sur PC pour permettre la boucle continue\n            navBar.style.display = 'flex';\n        }\n    };\n\n    const updateCarousel = (instant = false) => {\n        updateNavVisibility();\n        \n        \/\/ Retrait de la condition bloquante pour autoriser le slide en boucle constante\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) return; \/\/ Retrait du blocage itemsPerView >= totalOriginal\n        isAnimating = true;\n        currentIndex++;\n        updateCarousel();\n    };\n\n    const movePrev = () => {\n        if (isAnimating) return; \/\/ Retrait du blocage itemsPerView >= totalOriginal\n        isAnimating = true;\n        currentIndex--;\n        updateCarousel();\n    };\n\n    \/\/ Les boutons se trouvent d\u00e9sormais au niveau de la section enti\u00e8re\n    section.querySelector('.nk-sfa__next').addEventListener('click', moveNext);\n    section.querySelector('.nk-sfa__prev').addEventListener('click', movePrev);\n\n    track.addEventListener('transitionend', (e) => {\n        if (e.propertyName !== 'transform') return;\n        isAnimating = false;\n        \n        if (currentIndex <= 0) {\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        } \n        else if (currentIndex >= totalOriginal * 2) {\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Gestion Resize\n    window.addEventListener('resize', () => {\n        const newItemsPerView = getSlidesPerView();\n        if (newItemsPerView !== itemsPerView) {\n            itemsPerView = newItemsPerView;\n            itemWidthPct = 100 \/ itemsPerView;\n            allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n            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        startX = e.touches[0].clientX;\n    }, { passive: true });\n    \n    track.addEventListener('touchend', (e) => {\n        endX = e.changedTouches[0].clientX;\n        const diff = startX - endX;\n        if (Math.abs(diff) > swipeThreshold) {\n            if (diff > 0) moveNext();\n            else movePrev();\n        }\n    });\n\n    \/* =========================================================\n       LAZY LOADING DES IMAGES\n       ========================================================= *\/\n    const imageObserver = new IntersectionObserver((entries, observer) => {\n        entries.forEach(entry => {\n            if (entry.isIntersecting) {\n                const img = entry.target;\n                if (img.dataset.src) {\n                    img.onload = () => img.classList.add('norki-loaded');\n                    img.src = img.dataset.src;\n                    img.removeAttribute('data-src');\n                    observer.unobserve(img);\n                }\n            }\n        });\n    }, { root: null, rootMargin: '0px 100% 0px 100%', threshold: 0 });\n    \n    document.querySelectorAll('.norki-lazy').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<section class=\"nk-sel\">\n    <div class=\"nk-sel__container\">\n        \n        <!-- En-t\u00eate : Titre (Gauche) + Fl\u00e8ches (Droite) -->\n        <div class=\"nk-sel__header\">\n            <h2 class=\"nk-sel__title avenirmedium-font\">\n                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 : Tapis Aspen -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/timless-rugs-hides-norki\/310-aspen-rug-norki-fur-coyote.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the Aspen Rug\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Tapis-Photo-principale-Aspen_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=\"Aspen Rug\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Aspen Rug<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/timless-rugs-hides-norki\/310-aspen-rug-norki-fur-coyote.html\" class=\"nk-sel__link\">Shop<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 : Plaid Tsarine -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/timeless-throws-collection-norki\/257-tsarine-blanket-white-fox-norki.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the Tsarine Throw\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Plaid_Photo-V-Tsarine_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=\"Tsarine Throw\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Tsarine Throw<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/timeless-throws-collection-norki\/257-tsarine-blanket-white-fox-norki.html\" class=\"nk-sel__link\">Shop<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 3 : Coussin Alexandra -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/collections-de-coussins-intemporels-norki-decoration\/551-sable-fur-rectangle-cushion-alpine-luxury-norki.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the Alexandra Cushion\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Coussin-Zibeline-Rectangle-Fourrure-chalet_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=\"Alexandra Cushion\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Alexandra Cushion<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/collections-de-coussins-intemporels-norki-decoration\/551-sable-fur-rectangle-cushion-alpine-luxury-norki.html\" class=\"nk-sel__link\">Shop<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 4 : Fauteuil Saint-Moritz -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/luxury-modern-armchairs-collection-norki\/172-saint-moritz-armchair-norki-white-mink.html\" class=\"nk-sel__image-link\" aria-label=\"Discover the Saint-Moritz Armchair\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Assise_Photo-Principale-Fauteuil-Saint-Moritz_NORKI-2.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Saint-Moritz Armchair\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Saint-Moritz Armchair<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/luxury-modern-armchairs-collection-norki\/172-saint-moritz-armchair-norki-white-mink.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, #f8f0ea);\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: rgba(0, 0, 0, 0.04);\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\n    originalSlides.forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        \/\/ D\u00e9sactivation du focus clavier pour les \u00e9l\u00e9ments clon\u00e9s (s\u00e9curit\u00e9 accessibilit\u00e9)\n        clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n        track.appendChild(clone);\n    });\n    originalSlides.slice().reverse().forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.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-sel__slide'));\n\n    const getSlidesPerView = () => {\n        if (window.innerWidth > 1024) return 3; \/\/ PC\n        if (window.innerWidth > 768) return 2;  \/\/ Tablette\n        return 1;                               \/\/ Mobile\n    };\n\n    let itemsPerView = getSlidesPerView();\n    let itemWidthPct = 100 \/ itemsPerView;\n    allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n    \n    let currentIndex = totalOriginal; \n    let isAnimating = false;\n\n    \/\/ 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 = totalOriginal; \n            track.style.transition = 'none';\n            track.style.transform = `translateX(-${currentIndex * itemWidthPct}%)`;\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 (currentIndex <= 0) {\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        } \n        else if (currentIndex >= totalOriginal * 2) {\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Gestion Resize\n    window.addEventListener('resize', () => {\n        const newItemsPerView = getSlidesPerView();\n        if (newItemsPerView !== itemsPerView) {\n            itemsPerView = newItemsPerView;\n            itemWidthPct = 100 \/ itemsPerView;\n            allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n            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\/Plaid-en-coyote-Gstaad-v2-2048x1364.png\" alt=\"Bespoke Chalet Decor\" 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 projects\">\n        \n        <!-- Bloc Information -->\n        <div class=\"projects-info\">\n            <h2 class=\"avenirmedium-font\">Explore all our <br><span class=\"baskerville-italic-font\">Mountain projects<\/span><\/h2>\n            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-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:\/\/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:\/\/norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n\n            <!-- Slide 3 : Meg\u00e8ve (Pelican\/Agneau) -->\n            <article class=\"slide active is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/06\/Finn-Julh-Pelican-Agneau-chalet-v2.png\" alt=\"Meg\u00e8ve Private Chalet\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Meg\u00e8ve, France<\/span>\n                        <h3>Private Chalet<\/h3>\n                        <p>Bespoke sheepskin rug and vintage furniture curation Norki<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 4 : Appartement Alpes Fran\u00e7aises -->\n            <article class=\"slide is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Norki-Megeve-Interieur-Chalet.jpg\" alt=\"French Alps Apartment\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">French Alps<\/span>\n                        <h3>Private Apartment<\/h3>\n                        <p>Between tradition and modernity<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 5 : Saint-Moritz (The Lonsdaleite) -->\n            <article class=\"slide is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/interior-design-the-lonsdaleite-premiere-chalet.jpg\" alt=\"Chalet in St. Moritz\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">St. Moritz, Switzerland<\/span>\n                        <h3>Chalet in St. Moritz<\/h3>\n                        <p>James Bond-style contemporary chalet<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/a>\n                <\/div>\n            <\/article>\n            \n            <!-- Slide 1 : Aspen -->\n            <article class=\"slide is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Custom-daybed-in-contemporary-aspen-chalet.jpg\" alt=\"Chalet in Aspen\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Aspen, Colorado<\/span>\n                        <h3>Contemporary chalet<\/h3>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/a>\n                <\/div>\n            <\/article>\n            \n            <!-- Slide 6 : Meg\u00e8ve (Objets) -->\n            <article class=\"slide is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Bespoke-Objects-in-Megeve-Chalet.jpg\" alt=\"Meg\u00e8ve Private Chalet\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Meg\u00e8ve, France<\/span>\n                        <h3>Private Chalet<\/h3>\n                        <p>Bespoke round sheepskin rugs<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">View<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 7 : Chalet de Famille (Gstaad) -->\n            <article class=\"slide\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Chalet-terrace-decoration-Gstaad.jpg\" alt=\"Chalet in Gstaad\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Gstaad, Switzerland<\/span>\n                        <h3>Family Chalet<\/h3>\n                        <p>Chalet in Gstaad<\/p>\n                    <\/div>\n                    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/humbert-and-poyet-gstaad\/\" class=\"link-voir\">View<\/a>\n                <\/div>\n            <\/article>\n        <\/div>\n    <\/section>\n\n<\/div>\n\n<style>\n    \/* ==========================================\n       HERO TOP IMAGE\n       ========================================== *\/\n    .nk-hotels-showcase {\n        width: 100%;\n        background-color: var(--color-norki-brown, #50423d); \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        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 & STRUCTURE SLIDER\n       ========================================== *\/\n    .wp-custom-projects-slider-container {\n        --bg-section: var(--color-norki-brown, #50423d);\n        --text-light: #ffffff;\n        --text-muted: #d3ccc7;\n        --text-dark: var(--color-norki-beige, #f8f0ea);\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    .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    \/* ==========================================\n       TYPOGRAPHIE & HEADER\n       ========================================== *\/\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    \/* ==========================================\n       FL\u00c8CHES DE NAVIGATION\n       ========================================== *\/\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);\n    }\n\n    .wp-custom-projects-slider-container .left-arrow img {\n        transform: scaleX(-1);\n    }\n\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    .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    \/* ==========================================\n       SLIDES & IMAGES\n       ========================================== *\/\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    .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-wrapper {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        overflow: hidden;\n        border-radius: var(--radius-img);\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    .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    .wp-custom-projects-slider-container .slide.is-coming-soon .link-voir {\n        display: none;\n    }\n\n    \/* OVERLAY GRADIENT *\/\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 SLIDE *\/\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    \/* ==========================================\n       \u00c9TATS DU SLIDER & POSITIONS (PC)\n       ========================================== *\/\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    .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        \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<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                        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>The Pinnacle of Alpine Luxury: Norki \u00d7 Jacques Garcia St. Moritz St. Moritz, Switzerland 2012 Fur rugs and furniture St. Moritz: The Engadin Jewel for an Extraordinary Project St. Moritz is more than just a ski resort; it is a legend nestled in the heart of the Swiss Alps. A favored destination for the international [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4283,"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-5170","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>Norki &amp; Jacques Garcia : Chalet d&#039;Exception \u00e0 Saint-Moritz<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez la collaboration entre Ateliers Norki et Jacques Garcia pour un chalet d\u2019exception \u00e0 Saint-Moritz. Haute fourrure et pi\u00e8ces sur mesure.\" \/>\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\/mountain-projects\/jacques-garcia-saint-moritz\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Norki &amp; Jacques Garcia : Chalet d&#039;Exception \u00e0 Saint-Moritz\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez la collaboration entre Ateliers Norki et Jacques Garcia pour un chalet d\u2019exception \u00e0 Saint-Moritz. Haute fourrure et pi\u00e8ces sur mesure.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/\" \/>\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-22T07:58:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/\",\"name\":\"Norki & Jacques Garcia : Chalet d'Exception \u00e0 Saint-Moritz\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png\",\"datePublished\":\"2026-07-22T06:16:43+00:00\",\"dateModified\":\"2026-07-22T07:58:31+00:00\",\"description\":\"D\u00e9couvrez la collaboration entre Ateliers Norki et Jacques Garcia pour un chalet d\u2019exception \u00e0 Saint-Moritz. Haute fourrure et pi\u00e8ces sur mesure.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png\",\"contentUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png\",\"width\":1684,\"height\":2528},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/jacques-garcia-saint-moritz\\\/#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\":\"Mountain\",\"item\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/mountain-projects\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Jacques Garcia\"}]},{\"@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":"Norki & Jacques Garcia : Chalet d'Exception \u00e0 Saint-Moritz","description":"D\u00e9couvrez la collaboration entre Ateliers Norki et Jacques Garcia pour un chalet d\u2019exception \u00e0 Saint-Moritz. Haute fourrure et pi\u00e8ces sur mesure.","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\/mountain-projects\/jacques-garcia-saint-moritz\/","og_locale":"fr_FR","og_type":"article","og_title":"Norki & Jacques Garcia : Chalet d'Exception \u00e0 Saint-Moritz","og_description":"D\u00e9couvrez la collaboration entre Ateliers Norki et Jacques Garcia pour un chalet d\u2019exception \u00e0 Saint-Moritz. Haute fourrure et pi\u00e8ces sur mesure.","og_url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-22T07:58:31+00:00","og_image":[{"url":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/","url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/","name":"Norki & Jacques Garcia : Chalet d'Exception \u00e0 Saint-Moritz","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/#primaryimage"},"thumbnailUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png","datePublished":"2026-07-22T06:16:43+00:00","dateModified":"2026-07-22T07:58:31+00:00","description":"D\u00e9couvrez la collaboration entre Ateliers Norki et Jacques Garcia pour un chalet d\u2019exception \u00e0 Saint-Moritz. Haute fourrure et pi\u00e8ces sur mesure.","breadcrumb":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/#primaryimage","url":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png","contentUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Exterieur-Chalet-Saint-Moritz-Suisse-v2.png","width":1684,"height":2528},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/jacques-garcia-saint-moritz\/#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":"Mountain","item":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/mountain-projects\/"},{"@type":"ListItem","position":4,"name":"Jacques Garcia"}]},{"@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":"The Pinnacle of Alpine Luxury: Norki \u00d7 Jacques Garcia St. Moritz St. Moritz, Switzerland 2012 Fur rugs and furniture St. Moritz: The Engadin Jewel for an Extraordinary Project St. Moritz is more than just a ski resort; it is a legend nestled in the heart of the Swiss Alps. A favored destination for the international\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/5170","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=5170"}],"version-history":[{"count":3,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/5170\/revisions"}],"predecessor-version":[{"id":5179,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/5170\/revisions\/5179"}],"up":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4283"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=5170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=5170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=5170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}