{"id":3645,"date":"2026-05-28T09:46:21","date_gmt":"2026-05-28T07:46:21","guid":{"rendered":"https:\/\/norki.com\/sur-mesure\/?page_id=3645"},"modified":"2026-06-08T10:15:39","modified_gmt":"2026-06-08T08:15:39","slug":"grau-roig-andorre","status":"publish","type":"page","link":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/","title":{"rendered":"Grau Roig"},"content":{"rendered":"\n<section class=\"nk-hero\">\n  <div class=\"nk-hero__bg\">\n    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Decoration-Hotel-Montagne-Andorre.jpg\" alt=\"Palace au sommet des Pyr\u00e9n\u00e9es, Andorre\" 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\">Palace au sommet des Pyr\u00e9n\u00e9es<\/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\">Palace \u00e0 Andorre<\/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\">Andorre<\/span>\n      <span class=\"nk-hero__meta-item avenirmedium-font\">2026<\/span>\n      <span class=\"nk-hero__meta-item\">Mobilier, Panneaux muraux &amp; Coussins sur mesure<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n.nk-hero {\n  position: relative;\n  width: 100%;\n  \/* Height set above 100vh to naturally nudge users to scroll down *\/\n  height: 120vh; \n  min-height: 700px;\n  overflow: hidden;\n  background-color: #000000;\n}\n\n.nk-hero__bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 1;\n}\n\n.nk-hero__bg img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: center center;\n  display: block;\n}\n\n\/* Linear gradient overlay for solid text legibility *\/\n.nk-hero__overlay {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 40%;\n  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\n  z-index: 2;\n  pointer-events: none;\n}\n\n.nk-hero__content {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  z-index: 3;\n  padding: 0 40px 40px 40px;\n  color: #ffffff;\n  box-sizing: border-box;\n}\n\n\/* Header Text (Titres - Larger typography and higher positioning) *\/\n.nk-hero__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  margin-bottom: 35px; \/* Spacing increased to detach the title row from the line below *\/\n  gap: 20px;\n  width: 100%;\n}\n\n.nk-hero__title-wrapper {\n  flex: 1 1 65%;\n  max-width: calc(100% - 250px);\n}\n\n.nk-hero__subtitle-wrapper {\n  flex: 0 0 auto;\n  text-align: right;\n  min-width: max-content;\n}\n\n.nk-hero__title {\n  color: white;\n  font-size: clamp(2.2rem, 3.2vw, 3.2rem); \/* Larger fluid font size *\/\n  letter-spacing: 0.02em;\n  line-height: 1.1;\n  font-weight: normal;\n  margin: 0;\n}\n\n.nk-hero__subtitle {\n  font-size: clamp(2.2rem, 3.2vw, 3.2rem); \/* Larger fluid font size to match title *\/\n  line-height: 1.1;\n  font-weight: normal;\n  display: block;\n}\n\n\/* 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\n<section class=\"nk-intro\">\n\n  <div class=\"nk-intro__inner\">\n\n    <div class=\"nk-intro__header\">\n\n      <h2 class=\"nk-intro__title avenirmedium-font\">\n\n        Un refuge exclusif entre cimes enneig\u00e9es\n\n        <span class=\"nk-intro__title-accent baskerville-italic-font\">et excellence architecturale<\/span>\n\n      <\/h2>\n\n    <\/div>\n\n    \n\n    <div class=\"nk-intro__content\">\n\n      <p class=\"nk-intro__paragraph\">\n\n        Au c\u0153ur de la Principaut\u00e9 d\u2019Andorre, l\u00e0 o\u00f9 les sommets imposent une architecture de pierre forte et intemporelle, se dresse le <a href=\"https:\/\/www.hotelgrauroig.com\" class=\"nk-intro__inline-link\" target=\"_blank\" rel=\"noopener\" title=\"Visiter le site officiel du Boutique-H\u00f4tel Grau Roig\">Boutique-H\u00f4tel Grau Roig<\/a>. V\u00e9ritable joyau de haute altitude, ce palace de montagne b\u00e9n\u00e9ficie d\u2019un emplacement rare, offrant une exp\u00e9rience \u00ab ski-in ski-out \u00bb imm\u00e9diate au pied des remont\u00e9es m\u00e9caniques de Grandvalira. C\u2019est dans ce cadre spectaculaire, dot\u00e9 d\u2019un spa luxueux et d\u2019un panorama \u00e0 couper le souffle, que Norki a orchestr\u00e9 une r\u00e9interpr\u00e9tation magistrale du luxe montagnard.\n\n      <\/p>\n\n      <p class=\"nk-intro__paragraph\">\n\n        En collaboration \u00e9troite avec la propri\u00e9taire, nous avons sublim\u00e9 l\u2019\u00e2me des chambres, du lobby d\u2019accueil et des restaurants gastronomiques pour cr\u00e9er un \u00e9crin d\u2019\u00e9lite.\n\n      <\/p>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<style>\n\n.nk-intro {\n\n  background-color: var(--color-norki-beige);\n\n  padding: var(--section-pad-v-dt) var(--section-pad-h-dt);\n\n  width: 100%;\n\n  display: flex;\n\n  justify-content: center;\n\n  box-sizing: border-box;\n\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.nk-intro__inner {\n\n  width: 100%;\n\n  display: grid;\n\n  grid-template-columns: 1fr 1.6fr; \/* Ratio asym\u00e9trique \u00e9l\u00e9gant *\/\n\n  gap: clamp(40px, 6vw, 100px); \/* Espacement horizontal fluide *\/\n\n  align-items: stroke;\n\n}\n\n\n\/* Colonne de gauche : Titre *\/\n\n.nk-intro__header {\n\n  display: flex;\n\n  flex-direction: column;\n\n  justify-content: flex-start;\n\n}\n\n\n.nk-intro__title {\n\n  font-size: clamp(1.4rem, 2.2vw, 25px);\n\n  line-height: 1.25;\n\n  color: #000000;\n\n  font-weight: normal;\n\n  letter-spacing: -0.01em;\n\n  margin: 0 !important; \/* Neutralise les surcharges th\u00e8mes *\/\n\n}\n\n\n.nk-intro__title-accent {\n\n  display: block;\n\n  font-size: 0.95em; \/* L\u00e9g\u00e8rement plus petit et subtil *\/\n\n  color: #000000;\n\n}\n\n\n\/* Colonne de droite : Paragraphes *\/\n\n.nk-intro__content {\n\n  display: flex;\n\n  flex-direction: column;\n\n  gap: 24px; \/* Espace \u00e9quilibr\u00e9 entre les blocs de texte *\/\n\n  justify-content: flex-start;\n\n}\n\n\n.nk-intro__paragraph {\n\n  font-size: clamp(0.92rem, 1.1vw, 1.05rem);\n\n  line-height: 1.7;\n\n  color: #000000;\n\n  letter-spacing: 0.01em;\n\n  max-width: 80%;\n\n  margin: 0 !important;\n\n}\n\n\n\/* ============================================\n\n  RESPONSIVE TABLETTE (\u2264 1024px)\n\n============================================ *\/\n\n@media (max-width: 1024px) {\n\n  .nk-intro {\n\n    padding: var(--section-pad-v-tab) var(--section-pad-h-tab);\n\n  }\n\n  \n\n  .nk-intro__inner {\n\n    grid-template-columns: 1fr; \/* Passage sur une colonne *\/\n\n    gap: 32px;\n\n  }\n\n  \n\n  .nk-intro__title {\n\n    max-width: 90%;\n\n  }\n\n\n  .nk-intro__paragraph {\n\n    text-align: left; \/* Plus naturel sur \u00e9crans moyens et tactiles *\/\n\n  }\n\n}\n\n\n\/* ============================================\n\n  RESPONSIVE MOBILE (\u2264 640px)\n\n============================================ *\/\n\n@media (max-width: 640px) {\n\n  .nk-intro {\n\n    padding: var(--section-pad-v-mob) var(--section-pad-h-mob);\n\n  }\n\n  \n\n  .nk-intro__inner {\n\n    gap: 24px;\n\n  }\n\n  \n\n  .nk-intro__title {\n\n    max-width: 100%;\n\n  }\n\n  \n\n  .nk-intro__title-accent {\n\n    margin-top: 4px;\n\n  }\n\n}\n\n<\/style> \n\n\n\n<section class=\"nk-simple-image\">\n  <div class=\"nk-simple-image__wrapper\">\n    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-round-sofas_GrauRoig-1.jpg\" alt=\"Am\u00e9nagement sur-mesure d'un coin repas en fourrure et bois par la Maison Norki au Boutique-H\u00f4tel Grau Roig\" class=\"nk-simple-image__img\" loading=\"lazy\">\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}\n\n.nk-simple-image__wrapper {\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\/* ============================================\n  RESPONSIVE MOBILE (\u2264 640px)\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    \/* Alignement \u00e0 gauche forc\u00e9 pour conserver le mobilier et la table dans le cadre *\/\n    object-position: left center;\n  }\n}\n<\/style>\n\n\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : SAVOIR FAIRE ATELIERS (Texte + Slider)\n       ========================================================================== *\/\n    .nk-sf {\n        padding: var(--section-pad-v-dt, 80px) var(--section-pad-h-dt, 5vw);\n        background-color: var(--color-norki-beige, #f8f0ea);\n        color: black;\n        position: relative;\n        box-sizing: border-box;\n        overflow: hidden;\n    }\n\n    .nk-sf * {\n        box-sizing: border-box;\n    }\n\n    .nk-sf__container {\n        width: 100%;\n    }\n\n    \/* --- TITRE (Limitation de largeur pour un retour \u00e0 la ligne \u00e9l\u00e9gant) --- *\/\n    .nk-sf__header {\n        max-width: 800px;\n        width: 100%;\n    }\n\n    .nk-sf__title {\n        font-size: clamp(1.4rem, 2.5vw, 35px);\n        font-weight: normal;\n        margin-top: 0;\n        margin-bottom: 35px;\n        letter-spacing: -0.01em;\n        line-height: 1.25;\n    }\n\n    \/* --- GRILLE TEXTE (Rapproch\u00e9e au pixel pr\u00e8s sur PC) --- *\/\n    .nk-sf__content {\n        display: grid;\n        grid-template-columns: repeat(2, minmax(0, 460px)); \/* Largeur maximale de chaque colonne limit\u00e9e *\/\n        gap: 40px 50px; \/* \u00c9cart horizontal resserr\u00e9 pour rapprocher les textes *\/\n        margin-bottom: 50px;\n        max-width: 980px; \/* Conteneur global resserr\u00e9 pour une harmonie parfaite *\/\n    }\n\n    .nk-sf__col {\n        width: 100%;\n    }\n\n    .nk-sf__text {\n        font-size: 0.95rem; \/* Taille classique exig\u00e9e *\/\n        line-height: 1.6; \/* Interlignage \u00e9l\u00e9gant *\/\n        margin-top: 0;\n        margin-bottom: 20px;\n    }\n\n    \/* ANIMATION DE VOTRE DIRECTION ARTISTIQUE POUR LES LIENS DU TEXTE *\/\n    .nk-sf__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-sf__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    .nk-sf__expand-wrapper {\n        \/* Sur PC, la deuxi\u00e8me colonne est toujours affich\u00e9e *\/\n        display: block; \n    }\n\n    \/* --- BOUTON VOIR PLUS (Masqu\u00e9 sur PC) --- *\/\n    .nk-sf__btn {\n        display: none;\n        background: transparent;\n        border: none;\n        padding: 0;\n        cursor: pointer;\n        font-family: inherit;\n        font-size: 0.95rem;\n        color: black;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1.5px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n        font-style: italic;\n        margin-bottom: 30px;\n    }\n\n    .nk-sf__btn:hover {\n        text-decoration-color: transparent;\n        opacity: 0.6;\n    }\n\n    \/* --- SLIDER --- *\/\n    .nk-sf__slider-area {\n        position: relative;\n        width: 100%;\n    }\n\n    .nk-sf__nav-bar {\n        display: flex;\n        justify-content: flex-end;\n        align-items: center;\n        margin-bottom: 15px;\n    }\n\n    .nk-sf__arrows {\n        display: flex;\n        gap: 15px;\n    }\n\n    .nk-sf__arrows button {\n        background: none;\n        border: none;\n        color: black;\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-sf__arrows button:hover { opacity: 0.6; }\n\n    .nk-sf__arrows svg {\n        width: 26px;\n        height: 26px;\n        fill: none;\n        stroke: currentColor;\n        stroke-width: 1.2;\n    }\n\n    .nk-sf__carousel-viewport {\n        overflow: hidden;\n        touch-action: pan-y;\n    }\n\n    .nk-sf__carousel-track {\n        display: flex;\n        will-change: transform;\n    }\n\n    .nk-sf__slide {\n        flex: 0 0 65%; \n        padding-right: 20px;\n    }\n\n    .nk-sf__slide img {\n        width: 100%;\n        aspect-ratio: 16 \/ 10;\n        object-fit: cover;\n        display: block;\n        background-color: rgba(0, 0, 0, 0.05);\n        opacity: 0;\n        transition: opacity 0.5s ease-in-out;\n    }\n\n    .nk-sf__slide img.norki-loaded {\n        opacity: 1;\n    }\n\n    \/* --- RESPONSIVE TABLETTE (< 1024px) --- *\/\n    @media (max-width: 1024px) {\n        .nk-sf {\n            padding: var(--section-pad-v-tab, 60px) var(--section-pad-h-tab, 4vw);\n        }\n        \n        .nk-sf__content {\n            grid-template-columns: 1fr 1fr;\n            gap: 30px 4vw;\n            max-width: 100%;\n        }\n        \n        .nk-sf__col {\n            max-width: 100%; \/* S'adapte sur tablette *\/\n        }\n        \n        .nk-sf__slide {\n            flex: 0 0 85%;\n            padding-right: 15px;\n        }\n        .nk-sf__arrows button:hover { opacity: 1; }\n    }\n\n    \/* --- RESPONSIVE MOBILE (< 768px) --- *\/\n    @media (max-width: 768px) {\n        .nk-sf {\n            padding: var(--section-pad-v-mob, 50px) var(--section-pad-h-mob, 20px);\n        }\n\n        .nk-sf__content {\n            grid-template-columns: 1fr;\n            gap: 0;\n            margin-bottom: 20px;\n        }\n\n        \/* Activation de l'accord\u00e9on \"Voir plus\" *\/\n        .nk-sf__expand-wrapper {\n            display: grid;\n            grid-template-rows: 0fr;\n            transition: grid-template-rows 0.4s ease-out;\n        }\n\n        .nk-sf__expand-wrapper.is-open {\n            grid-template-rows: 1fr;\n        }\n\n        .nk-sf__expand-content {\n            overflow: hidden;\n        }\n\n        .nk-sf__btn {\n            display: inline-block;\n        }\n\n        .nk-sf__slide {\n            flex: 0 0 100%;\n            padding-right: 10px;\n        }\n\n        .nk-sf__slide img {\n            aspect-ratio: 4 \/ 5;\n        }\n    }\n<\/style>\n\n<section class=\"nk-sf\">\n    <div class=\"nk-sf__container\">\n        \n        <!-- En-t\u00eate \/ Titre -->\n        <div class=\"nk-sf__header\">\n            <h2 class=\"nk-sf__title avenirmedium-font\">\n                Le savoir-faire des Ateliers :<br>\n                De la fabrication <span class=\"baskerville-italic-font\">artisanale<\/span> \u00e0 la pose sur site\n            <\/h2>\n        <\/div>\n\n        <!-- Contenu Texte & Voir Plus -->\n        <div class=\"nk-sf__content\">\n            <!-- Colonne 1 (Toujours visible) -->\n            <div class=\"nk-sf__col\">\n                <p class=\"nk-sf__text\">\n                    L'expertise de notre Maison s'y est exprim\u00e9e \u00e0 travers une ma\u00eetrise compl\u00e8te de la cha\u00eene de cr\u00e9ation. Chaque pi\u00e8ce de <a href=\"https:\/\/www.norki.com\/fr\/25-mobilier-design-et-audacieux-made-in-france-norki\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir notre collection de mobilier design et audacieux\">mobilier<\/a>, chaque rev\u00eatement et chaque \u00e9l\u00e9ment de d\u00e9cor a \u00e9t\u00e9 rigoureusement con\u00e7u et r\u00e9alis\u00e9 au sein des <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/decoration-interieur-haut-de-gamme\/\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir l'excellence de nos prestations haut de gamme\">Ateliers Norki<\/a>.\n                <\/p>\n                <p class=\"nk-sf__text\">\n                    Cette fabrication artisanale de <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/#tete-de-lit\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir nos t\u00eates de lit sur-mesure d'exception\">t\u00eates-de-lit<\/a>, <a href=\"#banquettes\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir nos banquettes sur-mesure\">banquettes<\/a>, <a href=\"#revetements-muraux\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir nos rev\u00eatements muraux sur-mesure\">rev\u00eatements muraux<\/a> ou <a href=\"#gainage-de-portes\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir notre gainage de portes sur-mesure\">gainage de portes<\/a> <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/decoration-interieur-haut-de-gamme\/\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir nos prestations de d\u00e9coration d'int\u00e9rieur haut de gamme sur-mesure\">sur-mesure<\/a> a n\u00e9cessit\u00e9 des mat\u00e9riaux d'exception : la douceur textur\u00e9e du mouton, le raffinement a\u00e9rien de l'agneau du Tibet et la noblesse graphique de la peau de vache.\n                <\/p>\n            <\/div>\n            \n            <!-- Colonne 2 (Extensible sur Mobile, visible sur PC) -->\n            <div class=\"nk-sf__col nk-sf__expand-wrapper\" id=\"sf-expand-wrapper\">\n                <div class=\"nk-sf__expand-content\">\n                    <p class=\"nk-sf__text\">\n                        Afin de garantir une finition parfaite et le respect des standards de ce palace, les <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/pose-installation-tapisserie-ameublement-luxe\/\" class=\"nk-sf__inline-link\" title=\"D\u00e9couvrir notre service de pose et d'installation\">tapissiers-villiers<\/a> des Ateliers Norki ont assur\u00e9 eux-m\u00eames la pose sur place, <a href=\"https:\/\/visitandorra.com\" class=\"nk-sf__inline-link\" target=\"_blank\" rel=\"noopener\" title=\"Visiter le site officiel de l'Andorre (Nouvel onglet)\">en Andorre<\/a>. Cette ma\u00eetrise globale a permis de transformer chaque espace retravaill\u00e9 en un cocon contemporain d\u00e9clinant les codes de l'univers de montagne avec modernit\u00e9.\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Bouton d'action (Uniquement mobile) -->\n        <button type=\"button\" class=\"nk-sf__btn\" id=\"sf-voir-plus-btn\" aria-expanded=\"false\" aria-controls=\"sf-expand-wrapper\">Voir plus<\/button>\n\n        <!-- Slider Section -->\n        <div class=\"nk-sf__slider-area\">\n            <div class=\"nk-sf__nav-bar\">\n                <div class=\"nk-sf__arrows\">\n                    <button class=\"nk-sf__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sf__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n\n            <div class=\"nk-sf__carousel\">\n                <div class=\"nk-sf__carousel-viewport\">\n                    <div class=\"nk-sf__carousel-track\">\n                        <!-- Slide 1 -->\n                        <article class=\"nk-sf__slide\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cushions-and-armchairs_GrauRoig.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Coussins et fauteuils sur-mesure Hotel Grau Roig\">\n                        <\/article>\n                        <!-- Slide 2 -->\n                        <article class=\"nk-sf__slide\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Beige-cowhide-wall-covering-Hotel-Grau-Roig.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Rev\u00eatement mural en peau de vache beige\">\n                        <\/article>\n                        <!-- Slide 3 -->\n                        <article class=\"nk-sf__slide\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-master-bedroom-desk-cowhide-wall.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Bureau de chambre de ma\u00eetre sur-mesure et rev\u00eatement en peau de vache\">\n                        <\/article>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n    \n    \/* =========================================================\n       1. GESTION DU BOUTON \"VOIR PLUS\" (MOBILE)\n       ========================================================= *\/\n    const btn = document.getElementById('sf-voir-plus-btn'); \n    const wrapper = document.getElementById('sf-expand-wrapper'); \n\n    if (btn && wrapper) {\n        btn.addEventListener('click', () => {\n            const isOpen = wrapper.classList.toggle('is-open');\n            btn.setAttribute('aria-expanded', isOpen);\n            btn.textContent = isOpen ? 'Voir moins' : 'Voir plus';\n        });\n    }\n\n    \/* =========================================================\n       2. GESTION DU CARROUSEUR INFINI & LAZY LOADING\n       ========================================================= *\/\n    const track = document.querySelector('.nk-sf__carousel-track');\n    const originalSlides = Array.from(document.querySelectorAll('.nk-sf__slide'));\n    const totalOriginal = originalSlides.length;\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        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        track.insertBefore(clone, track.firstChild);\n    });\n\n    const getSlideWidth = () => {\n        if (window.innerWidth > 1024) return 65;\n        if (window.innerWidth > 768) return 85;\n        return 100;\n    };\n\n    let itemWidth = getSlideWidth();\n    let currentIndex = totalOriginal; \n    let isAnimating = false;\n\n    const updateCarousel = (instant = false) => {\n        track.style.transition = instant ? 'none' : 'transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)';\n        track.style.transform = `translateX(-${currentIndex * itemWidth}%)`;\n    };\n\n    updateCarousel(true);\n\n    const moveNext = () => {\n        if (isAnimating) return;\n        isAnimating = true;\n        currentIndex++;\n        updateCarousel();\n    };\n\n    const movePrev = () => {\n        if (isAnimating) return;\n        isAnimating = true;\n        currentIndex--;\n        updateCarousel();\n    };\n\n    document.querySelector('.nk-sf__next').addEventListener('click', moveNext);\n    document.querySelector('.nk-sf__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    window.addEventListener('resize', () => {\n        const newWidth = getSlideWidth();\n        if (newWidth !== itemWidth) {\n            itemWidth = newWidth;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ --- DETECTION TOUCH\/SWIPE ---\n    let startX = 0;\n    let 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    \/\/ --- LAZY LOADING DES IMAGES ---\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('.nk-sf__slide img').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : T\u00caTES DE LIT SUR-MESURE (nk-hb)\n       ========================================================================== *\/\n    .nk-hb {\n        padding-top: 0; \/* Alignement strict sans padding sup\u00e9rieur *\/\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: black;\n        box-sizing: border-box;\n        overflow: hidden;\n    }\n\n    .nk-hb * {\n        box-sizing: border-box;\n    }\n\n    \/* --- CONTENEUR GLOBAL --- *\/\n    .nk-hb__inner {\n        margin: 0 auto;\n    }\n\n    \/* --- LIGNE SUP\u00c9RIEURE PC --- *\/\n    .nk-hb__top-row {\n        display: grid;\n        grid-template-columns: 4.5fr 6fr; \/* Ratio asym\u00e9trique de la maquette *\/\n        gap: 6vw;\n        margin-bottom: 20px;\n    }\n\n    \/* --- IMAGE STATIQUE GAUCHE --- *\/\n    .nk-hb__left {\n        width: 100%;\n    }\n\n    .nk-hb__static-img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        aspect-ratio: 4 \/ 5;\n        background-color: rgba(0, 0, 0, 0.05);\n        opacity: 0;\n        transition: opacity 0.6s ease;\n        display: block;\n    }\n\n    .nk-hb__static-img.norki-loaded {\n        opacity: 1;\n    }\n\n    \/* --- BLOC TEXTE DROITE --- *\/\n    .nk-hb__right-text {\n        display: flex;\n        flex-direction: column;\n        justify-content: center; \/* Alignement vertical centr\u00e9 *\/\n    }\n\n    .nk-hb__content {\n        max-width: 520px;\n    }\n\n    .nk-hb__title {\n        font-size: clamp(1.4rem, 2.5vw, 35px);\n        font-weight: normal;\n        margin-top: 0;\n        margin-bottom: 25px;\n        letter-spacing: -0.01em;\n        line-height: 1.25;\n    }\n\n    .nk-hb__text {\n        font-size: 0.95rem; \/* Typographie du Design System *\/\n        line-height: 1.6;\n        margin-top: 0;\n        margin-bottom: 20px;\n    }\n\n    \/* ANIMATION DE VOTRE DIRECTION ARTISTIQUE POUR LES LIENS DU TEXTE *\/\n    .nk-hb__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-hb__inline-link:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    .nk-hb__expand-wrapper {\n        display: block; \/* Visible par d\u00e9faut sur \u00e9cran d'ordinateur *\/\n    }\n\n    \/* --- BOUTON VOIR PLUS (Masqu\u00e9 sur PC) --- *\/\n    .nk-hb__btn {\n        display: none;\n        background: transparent;\n        border: none;\n        padding: 0;\n        cursor: pointer;\n        font-family: inherit;\n        font-size: 0.95rem;\n        color: black;\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 4px;\n        text-decoration-thickness: 1.5px;\n        transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n        font-style: italic;\n    }\n\n    .nk-hb__btn:hover {\n        text-decoration-color: transparent;\n        opacity: 0.6;\n    }\n\n    \/* --- CARROUSELS --- *\/\n    .nk-hb__slider-wrapper {\n        position: relative;\n        width: 100%;\n    }\n\n    .nk-carousel-mobile {\n        display: none; \/* Masqu\u00e9 sur PC *\/\n    }\n\n    .nk-hb__nav-bar {\n        display: flex;\n        justify-content: flex-end;\n        align-items: center;\n        margin-bottom: 20px;\n    }\n\n    .nk-hb__arrows {\n        display: flex;\n        gap: 15px;\n        padding-right: 15px;\n    }\n\n    .nk-hb__arrows button {\n        background: none;\n        border: none;\n        color: black;\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-hb__arrows button:hover { opacity: 0.6; }\n\n    .nk-hb__arrows svg {\n        width: 26px;\n        height: 26px;\n        fill: none;\n        stroke: currentColor;\n        stroke-width: 1.2;\n    }\n\n    .nk-hb__carousel-viewport {\n        overflow: hidden;\n        touch-action: pan-y;\n    }\n\n    .nk-hb__carousel-track {\n        display: flex;\n        will-change: transform;\n    }\n\n    .nk-hb__slide {\n        padding-right: 30px; \/* \u00c9cartement \u00e9l\u00e9gant des slides *\/\n    }\n\n    .nk-hb__slide img {\n        width: 100%;\n        aspect-ratio: 4 \/ 3;\n        object-fit: cover;\n        display: block;\n        background-color: rgba(0, 0, 0, 0.05);\n        opacity: 0;\n        transition: opacity 0.5s ease-in-out;\n    }\n\n    .nk-hb__slide img.norki-loaded {\n        opacity: 1;\n    }\n\n    \/* ============================================\n       RESPONSIVE TABLETTE (\u2264 1024px)\n       ============================================ *\/\n    @media (max-width: 1024px) {\n        .nk-hb__arrows {\n            padding-right: 0;\n        }\n        .nk-hb__arrows button:hover { opacity: 1; }\n        \n        .nk-hb {\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-hb__top-row {\n            grid-template-columns: 1fr; \/* Passage sur une seule colonne *\/\n            gap: 30px;\n            margin-bottom: 10px;\n        }\n        \n        .nk-hb__left {\n            display: none; \/* Cache l'image statique gauche *\/\n        }\n\n        .nk-carousel-pc {\n            display: none; \/* Cache le carrousel PC *\/\n        }\n\n        .nk-carousel-mobile {\n            display: block; \/* Affiche le carrousel tactile mobile *\/\n        }\n\n        .nk-hb__content {\n            max-width: 100%;\n        }\n    }\n\n    \/* ============================================\n       RESPONSIVE MOBILE (\u2264 768px)\n       ============================================ *\/\n    @media (max-width: 768px) {\n        .nk-hb {\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-hb__text {\n            text-align: left;\n        }\n\n        \/* Activation de l'accord\u00e9on *\/\n        .nk-hb__expand-wrapper {\n            display: grid;\n            grid-template-rows: 0fr;\n            transition: grid-template-rows 0.4s ease-out;\n        }\n\n        .nk-hb__expand-wrapper.is-open {\n            grid-template-rows: 1fr;\n        }\n\n        .nk-hb__expand-content {\n            overflow: hidden;\n        }\n\n        .nk-hb__btn {\n            display: inline-block;\n            margin-top: 10px;\n            margin-bottom: 10px;\n        }\n\n        .nk-hb__slide {\n            padding-right: 15px;\n        }\n    }\n<\/style>\n\n<section class=\"nk-hb\">\n    <div class=\"nk-hb__inner\">\n        \n        <!-- LIGNE SUP\u00c9RIEURE (Image Gauche + Texte Droite sur PC) -->\n        <div class=\"nk-hb__top-row\">\n            \n            <!-- Image statique gauche -->\n            <div class=\"nk-hb__left\">\n                <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/banquette-daybed-coussins-texte-de-lit-sur-mesure.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Lit d'appoint et banquette daybed en bois et coussins moelleux\" class=\"nk-hb__static-img norki-lazy\">\n            <\/div>\n\n            <!-- Bloc texte de droite -->\n            <div class=\"nk-hb__right-text\">\n                <div class=\"nk-hb__content\">\n                    <h2 class=\"nk-hb__title avenirmedium-font\">\n                        T\u00eates de lit sur\u2011mesure :<br>\n                        <span class=\"baskerville-italic-font\">l'\u00e9l\u00e9gance couture sign\u00e9e Norki<\/span>\n                    <\/h2>\n                    \n                    <p class=\"nk-hb__text\">\n                        Dans le cadre du projet de d\u00e9coration des chambres du Hotel Grau Roig, Norki a imagin\u00e9 et <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/#tete-de-lit\" class=\"nk-hb__inline-link\" title=\"Consulter nos t\u00eates de lit sur-mesure d'exception\">r\u00e9alis\u00e9 des t\u00eates de lit sur\u2011mesure<\/a> o\u00f9 l'excellence artisanale dialogue avec une vision r\u00e9solument contemporaine du luxe alpin. Chaque cr\u00e9ation a \u00e9t\u00e9 pens\u00e9e comme une pi\u00e8ce unique, con\u00e7ue pour structurer l'espace avec sophistication et profondeur, tout en apportant une signature decorative propre aux plus belles <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/montagne\/\" class=\"nk-hb__inline-link\" title=\"D\u00e9couvrir nos r\u00e9alisations haut de gamme de montagne\">r\u00e9sidences de montagne<\/a>.\n                    <\/p>\n                    \n                    <!-- Accord\u00e9on mobile -->\n                    <div class=\"nk-hb__expand-wrapper\" id=\"hb-expand-wrapper\">\n                        <div class=\"nk-hb__expand-content\">\n                            <p class=\"nk-hb__text\">\n                                <a href=\"https:\/\/www.norki.com\/fr\/content\/44-demander-un-echantillon-tapis-plaid-coussin-assises-norki\" class=\"nk-hb__inline-link\" title=\"Commander nos \u00e9chantillons de mati\u00e8res nobles\">Habill\u00e9es de mati\u00e8res nobles<\/a> minutieusement s\u00e9lectionn\u00e9es, les t\u00eates de lit traduisent l'exigence esth\u00e9tique de la Maison et la <a href=\"https:\/\/norki.com\/fr\/sur-mesure\/\" class=\"nk-hb__inline-link\" title=\"D\u00e9couvrir le savoir-faire unique de nos Ateliers\">ma\u00eetrise de ses ateliers<\/a>. Jeux de volumes, finitions sellier, lignes architecturales et proportions parfaitement \u00e9quilibr\u00e9es composent un d\u00e9cor raffin\u00e9, \u00e0 la fois chaleureux et spectaculaire.\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                    \n                    <button type=\"button\" class=\"nk-hb__btn\" id=\"hb-voir-plus-btn\" aria-expanded=\"false\" aria-controls=\"hb-expand-wrapper\">Voir plus<\/button>\n                <\/div>\n            <\/div>\n            \n        <\/div>\n\n        <!-- LIGNE INF\u00c9RIEURE : SLIDERS -->\n\n        <!-- Slider PC (2 Images en pleine largeur) -->\n        <div class=\"nk-hb__slider-wrapper nk-carousel-pc\" id=\"hb-slider-pc\">\n            <div class=\"nk-hb__nav-bar\">\n                <div class=\"nk-hb__arrows\">\n                    <button class=\"nk-hb__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-hb__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n            <div class=\"nk-hb__carousel-viewport\">\n                <div class=\"nk-hb__carousel-track\">\n                    <!-- Image 2 de la collection -->\n                    <article class=\"nk-hb__slide\">\n                        <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/hide-sheepskin-headboard-for-decoration-hotels.jpg\" alt=\"T\u00eate de lit en peau de mouton et lattes de bois r\u00e9tro\u00e9clair\u00e9es\" class=\"norki-lazy\">\n                    <\/article>\n                    <!-- Image 3 de la collection -->\n                    <article class=\"nk-hb__slide\">\n                        <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tete-de-lit-mouton-gris-naturel-coussins-assortis.jpg\" alt=\"T\u00eate de lit mouton gris naturel et coussins assortis\" class=\"norki-lazy\">\n                    <\/article>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Slider Mobile\/Tablette (3 Images) -->\n        <div class=\"nk-hb__slider-wrapper nk-carousel-mobile\" id=\"hb-slider-mobile\">\n            <div class=\"nk-hb__nav-bar\">\n                <div class=\"nk-hb__arrows\">\n                    <button class=\"nk-hb__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-hb__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n            <div class=\"nk-hb__carousel-viewport\">\n                <div class=\"nk-hb__carousel-track\">\n                    <!-- Image 1 de la collection (Daybed) -->\n                    <article class=\"nk-hb__slide\">\n                        <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/banquette-daybed-coussins-texte-de-lit-sur-mesure.jpg\" alt=\"Lit d'appoint et banquette daybed en bois et coussins moelleux\" class=\"norki-lazy\">\n                    <\/article>\n                    <!-- Image 2 de la collection (R\u00e9tro\u00e9clair\u00e9e) -->\n                    <article class=\"nk-hb__slide\">\n                        <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/hide-sheepskin-headboard-for-decoration-hotels.jpg\" alt=\"T\u00eate de lit en peau de mouton et lattes de bois r\u00e9tro\u00e9clair\u00e9es\" class=\"norki-lazy\">\n                    <\/article>\n                    <!-- Image 3 de la collection (Mouton gris naturel) -->\n                    <article class=\"nk-hb__slide\">\n                        <img data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tete-de-lit-mouton-gris-naturel-coussins-assortis.jpg\" alt=\"T\u00eate de lit mouton gris naturel et coussins assortis\" class=\"norki-lazy\">\n                    <\/article>\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n    \n    \/* =========================================================\n       1. GESTION DU BOUTON \"VOIR PLUS\" (MOBILE)\n       ========================================================= *\/\n    const btn = document.getElementById('hb-voir-plus-btn'); \n    const wrapper = document.getElementById('hb-expand-wrapper'); \n\n    if (btn && wrapper) {\n        btn.addEventListener('click', () => {\n            const isOpen = wrapper.classList.toggle('is-open');\n            btn.setAttribute('aria-expanded', isOpen);\n            btn.textContent = isOpen ? 'Voir moins' : 'Voir plus';\n        });\n    }\n\n    \/* =========================================================\n       2. LOGIQUE DU CARROUSEL INFINI\n       ========================================================= *\/\n    const initSlider = (containerId, getSlidesPerViewFn) => {\n        const container = document.getElementById(containerId);\n        if (!container) return;\n\n        const track = container.querySelector('.nk-hb__carousel-track');\n        const originalSlides = Array.from(container.querySelectorAll('.nk-hb__slide'));\n        const totalOriginal = originalSlides.length;\n\n        \/\/ Clonage\n        originalSlides.forEach(slide => {\n            const clone = slide.cloneNode(true);\n            clone.classList.add('norki-clone');\n            clone.setAttribute('aria-hidden', 'true');\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            track.insertBefore(clone, track.firstChild);\n        });\n\n        const allSlides = Array.from(container.querySelectorAll('.nk-hb__slide'));\n\n        let itemsPerView = getSlidesPerViewFn();\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        const updateCarousel = (instant = false) => {\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;\n            isAnimating = true;\n            currentIndex++;\n            updateCarousel();\n        };\n\n        const movePrev = () => {\n            if (isAnimating) return;\n            isAnimating = true;\n            currentIndex--;\n            updateCarousel();\n        };\n\n        container.querySelector('.nk-hb__next').addEventListener('click', moveNext);\n        container.querySelector('.nk-hb__prev').addEventListener('click', movePrev);\n\n        track.addEventListener('transitionend', (e) => {\n            if (e.propertyName !== 'transform') return;\n            isAnimating = false;\n            \n            if (currentIndex <= 0) {\n                currentIndex = totalOriginal;\n                updateCarousel(true);\n            } \n            else if (currentIndex >= totalOriginal * 2) {\n                currentIndex = totalOriginal;\n                updateCarousel(true);\n            }\n        });\n\n        \/\/ Resize\n        window.addEventListener('resize', () => {\n            const newItemsPerView = getSlidesPerViewFn();\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        \/\/ Swipe Tactile\n        let startX = 0, endX = 0;\n        const swipeThreshold = 40;\n\n        track.addEventListener('touchstart', (e) => startX = e.touches[0].clientX, { passive: true });\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    \/\/ Initialisation\n    initSlider('hb-slider-pc', () => 2);\n    initSlider('hb-slider-mobile', () => window.innerWidth > 768 ? 2 : 1);\n\n    \/* =========================================================\n       3. LAZY LOADING UNIVERSEL 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-sig\">\n    <div class=\"nk-sig__container\">\n        \n        <!-- En-t\u00eate \/ Texte -->\n        <div class=\"nk-sig__header\">\n            <h2 class=\"nk-sig__title avenirmedium-font\">\n                Norki, une signature globale<br>\n                pour la <span class=\"baskerville-italic-font\">d\u00e9coration Alpine<\/span>\n            <\/h2>\n            <p class=\"nk-sig__text\">\n                Ce projet d'envergure au c\u0153ur des montagnes Andorranes illustre la capacit\u00e9 de Norki \u00e0 orchestrer <a href=\"https:\/\/norki.com\/fr\/studio-chalet\/\" class=\"nk-sig__inline-link\">des univers complets<\/a>. <a href=\"https:\/\/www.norki.com\/fr\/16-collection-assises-et-fauteuils-de-createurs-maison-norki\" class=\"nk-sig__inline-link\">Poufs<\/a> en peau de vache r\u00e9alis\u00e9s pour le ski-room, banquettes sur\u2011mesure pour les restaurants, rev\u00eatements muraux en cuir su\u00e9d\u00e9 ou en fourrure pour le lobby, <a href=\"https:\/\/www.norki.com\/fr\/30-coussin-design-orginal-luxe-sur-mesure-createurs\" class=\"nk-sig__inline-link\">coussins<\/a> en peau lain\u00e9e ou en mouton : chaque r\u00e9alisation participe \u00e0 une m\u00eame signature esth\u00e9tique, m\u00ealant cr\u00e9ativit\u00e9, pr\u00e9cision et esprit haute couture, prolongeant ainsi l'\u00e9criture d\u00e9corative de l'\u00e9tablissement jusque dans les moindres d\u00e9tails.\n            <\/p>\n        <\/div>\n\n        <!-- Section Carrousel -->\n        <div class=\"nk-sig__slider-area\" id=\"sig-slider\">\n            \n            <!-- Navigation (Masqu\u00e9e sur PC car 3\/3 slides visibles) -->\n            <div class=\"nk-sig__nav-bar\">\n                <div class=\"nk-sig__arrows\">\n                    <button class=\"nk-sig__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sig__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n\n            <div class=\"nk-sig__carousel-viewport\">\n                <div class=\"nk-sig__carousel-track\">\n                    \n                    <!-- Slide 1 (Gauche) -->\n                    <article class=\"nk-sig__slide nk-sig__slide--1\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/30-coussin-design-orginal-luxe-sur-mesure-createurs\" class=\"nk-sig__image-link\" aria-label=\"Voir les coussins en fourrure\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/decoration-suite-hotel-montagne-esprit-chalet.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Coussins en fourrure\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sig__caption avenirmedium-font\">\n                            <span>Coussins en fourrure<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/30-coussin-design-orginal-luxe-sur-mesure-createurs\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 (Centre) -->\n                    <article class=\"nk-sig__slide nk-sig__slide--2\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/contactez-nous\/\" class=\"nk-sig__image-link\" aria-label=\"Contacter pour des poufs sur mesure\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/petits-poufs-peau-de-vache-tricolore-bois-hotel.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Poufs sur mesure\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sig__caption avenirmedium-font\">\n                            <span>Poufs sur mesure<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/contactez-nous\/\">Contacter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 3 (Droite) -->\n                    <article class=\"nk-sig__slide nk-sig__slide--3\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/contactez-nous\/\" class=\"nk-sig__image-link\" aria-label=\"Contacter pour des coussins sur mesure\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/bespoke-fur-hide-cushions-for-hotels.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3 4'%3E%3C\/svg%3E\" alt=\"Coussins sur mesure\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sig__caption avenirmedium-font\">\n                            <span>Coussins sur mesure<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/contactez-nous\/\">Contacter<\/a>\n                        <\/div>\n                    <\/article>\n\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : SIGNATURE GLOBALE (Styles Principaux)\n============================================ *\/\n.nk-sig {\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-sig * {\n    box-sizing: border-box;\n}\n\n.nk-sig__container {\n    margin: 0 auto;\n    width: 100%;\n}\n\n\/* --- EN-T\u00caTE \/ TEXTE --- *\/\n.nk-sig__header {\n    max-width: 580px;\n    margin-bottom: 60px;\n}\n\n.nk-sig__title {\n    font-size: clamp(1.4rem, 2.5vw, 35px);\n    font-weight: normal;\n    margin-top: 0;\n    margin-bottom: 25px;\n    letter-spacing: -0.01em;\n    line-height: 1.25;\n}\n\n.nk-sig__text {\n    font-size: 0.95rem;\n    line-height: 1.6;\n    margin: 0;\n    text-align: justify;\n}\n\n\/* --- DESIGN SYSTEM : LIENS INLINE --- *\/\n.nk-sig__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-sig__inline-link:hover {\n    text-decoration-color: transparent;\n    opacity: 0.7;\n}\n\n\/* --- CARROUSEL --- *\/\n.nk-sig__slider-area {\n    position: relative;\n    width: 100%;\n}\n\n.nk-sig__nav-bar {\n    display: flex;\n    justify-content: flex-end;\n    align-items: center;\n    margin-bottom: 15px;\n}\n\n.nk-sig__arrows {\n    display: flex;\n    gap: 15px;\n    margin-right: -12px;\n}\n\n.nk-sig__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-sig__arrows button:hover { opacity: 0.6; }\n\n.nk-sig__arrows svg {\n    width: 26px;\n    height: 26px;\n    fill: none;\n    stroke: currentColor;\n    stroke-width: 1.2;\n}\n\n.nk-sig__carousel-viewport {\n    overflow: hidden;\n    touch-action: pan-y;\n    margin: 0 -15px;\n}\n\n.nk-sig__carousel-track {\n    display: flex;\n    will-change: transform;\n}\n\n.nk-sig__slide {\n    padding: 0 15px;\n    display: flex;\n    flex-direction: column;\n}\n\n\/* --- DESIGN SYSTEM : CONTENEUR D'IMAGE AVEC RECOUVREMENT --- *\/\n.nk-sig__image-link {\n    display: block;\n    width: 100%;\n    aspect-ratio: 3 \/ 4;\n    overflow: hidden;\n    position: relative;\n    border-radius: 4px; \/* Coins \u00e9l\u00e9gamment arrondis *\/\n    background-color: rgba(0, 0, 0, 0.05);\n}\n\n\/* --- DESIGN SYSTEM : ANIMATION D'IMAGE --- *\/\n.nk-sig__slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    opacity: 0;\n    \/* Int\u00e9gration 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-sig__slide img.norki-loaded {\n    opacity: 1;\n}\n\n\/* HoverZoom *\/\n.nk-sig__image-link:hover img {\n    transform: scale(1.03);\n}\n\n\/* --- CADRAGES ET ALIGNEMENTS INDIVIDUELS --- *\/\n.nk-sig__slide--1 img { object-position: 60% center; }\n.nk-sig__slide--2 img { object-position: 30% center; }\n.nk-sig__slide--3 img { object-position: 5% center; }\n\n\/* --- CAPTIONS SOUS LES IMAGES --- *\/\n.nk-sig__caption {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-top: 15px;\n    padding-left: 23px;\n    padding-right: 23px;\n    font-size: 0.85rem;\n    color: #000000;\n}\n\n.nk-sig__caption span {\n    font-weight: 500;\n    letter-spacing: 0.02em;\n}\n\n.nk-sig__caption a {\n    color: #000000;\n    text-decoration: underline;\n    text-underline-offset: 4px;\n    text-decoration-thickness: 1.5px;\n    transition: opacity 0.3s ease;\n}\n\n.nk-sig__caption a:hover {\n    opacity: 0.6;\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-sig__arrows button:hover { opacity: 1; }\n    .nk-sig {\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-sig__header {\n        margin-bottom: 40px;\n    }\n\n    .nk-sig__caption {\n        padding-left: 20px;\n        padding-right: 20px;\n    }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-sig {\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-sig__text {\n        text-align: left;\n    }\n    \n    .nk-sig__carousel-viewport {\n        margin: 0 -5px;\n    }\n\n    .nk-sig__slide {\n        padding: 0 5px;\n    }\n\n    .nk-sig__image-link {\n        aspect-ratio: 4 \/ 5;\n    }\n\n    .nk-sig__caption {\n        padding: 15px 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('sig-slider');\n    if (!container) return;\n\n    const track = container.querySelector('.nk-sig__carousel-track');\n    const originalSlides = Array.from(container.querySelectorAll('.nk-sig__slide'));\n    const totalOriginal = originalSlides.length;\n    const navBar = container.querySelector('.nk-sig__nav-bar');\n\n    \/\/ Clonage pour l'effet de boucle infinie\n    originalSlides.forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        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        track.insertBefore(clone, track.firstChild);\n    });\n\n    const allSlides = Array.from(container.querySelectorAll('.nk-sig__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 (itemsPerView >= totalOriginal) {\n            navBar.style.display = 'none'; \n        } else {\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    container.querySelector('.nk-sig__next').addEventListener('click', moveNext);\n    container.querySelector('.nk-sig__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\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-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.hotelgrauroig.com\" class=\"nk-map__world-link\" aria-label=\"Voir le projet de chalet d'Andorre sur la carte du monde\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Carte-du-monde-Andorre.png\" alt=\"Carte du monde localisant Andorre\" class=\"nk-map__world-img\" loading=\"lazy\">\n            <\/a>\n        <\/div>\n\n        <!-- Zoom d\u00e9taill\u00e9 (Cercle) -->\n        <div class=\"nk-map__detail\">\n            <span class=\"nk-map__title avenirmedium-font\">\n                Projet de Palace \u00e0 <span class=\"baskerville-italic-font\">Andorre<\/span>\n            <\/span>\n            <div class=\"nk-map__circle\">\n                <a href=\" https:\/\/www.hotelgrauroig.com\" class=\"nk-map__circle-link\" aria-label=\"Zoom sur le projet de chalet d'exception \u00e0 Andorre\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Projet-Chalet-Principaute-Andorre-Point-v2.png\" alt=\"Zoom sur la carte d'Andorre\" 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}\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 \u00e0 20% pour centrer la principaut\u00e9 d'Andorre *\/\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                Nos <span class=\"baskerville-italic-font\">savoir-faire associ\u00e9s<\/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=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sfa__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- 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 -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/couture-fourrure-epv\/\" class=\"nk-sfa__image-link\" aria-label=\"D\u00e9couvrir notre savoir-faire en Couture fourrure\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/savoir-faire-couture-fourrure-norki-2-e1779974256415.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"D\u00e9tail Couture fourrure\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Couture fourrure<\/p>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/couture-fourrure-epv\/\" class=\"nk-sfa__link\">D\u00e9couvrir<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/\" class=\"nk-sfa__image-link\" aria-label=\"D\u00e9couvrir notre savoir-faire en Tapisserie d'ameublement\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/atelier-tapisserie-ameublement-sur-mesure-norki.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"D\u00e9tail Tapisserie d'ameublement\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Tapisserie d'ameublement<\/p>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/tapisserie-ameublement-sur-mesure\/\" class=\"nk-sfa__link\">D\u00e9couvrir<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 3 -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/couture-ameublement-rideaux\/\" class=\"nk-sfa__image-link\" aria-label=\"D\u00e9couvrir notre savoir-faire en Couture d'ameublement\">\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=\"D\u00e9tail Couture d'ameublement\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Couture d'ameublement<\/p>\n                            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/couture-ameublement-rideaux\/\" class=\"nk-sfa__link\">D\u00e9couvrir<\/a>\n                        <\/div>\n                    <\/article>\n\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : SAVOIR-FAIRE ASSOCI\u00c9S\n============================================ *\/\n.nk-sfa {\n    padding-top: 0;\n    padding-bottom: var(--section-pad-v-dt, 80px);\n    padding-left: var(--section-pad-h-dt, 5vw);\n    padding-right: var(--section-pad-h-dt, 5vw);\n    background-color: var(--color-norki-beige, #f8f0ea);\n    color: #000000;\n    box-sizing: border-box;\n    overflow: hidden;\n}\n\n.nk-sfa * {\n    box-sizing: border-box;\n}\n\n.nk-sfa__container {\n    margin: 0 auto;\n    width: 100%;\n}\n\n\/* --- EN-T\u00caTE --- *\/\n.nk-sfa__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    margin-bottom: 50px;\n    gap: 15px; \/* \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 (itemsPerView >= totalOriginal) {\n            navBar.style.display = 'none';\n        } else {\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    \/\/ 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        if (itemsPerView >= totalOriginal) return; \n        startX = e.touches[0].clientX;\n    }, { passive: true });\n    \n    track.addEventListener('touchend', (e) => {\n        if (itemsPerView >= totalOriginal) return;\n        endX = e.changedTouches[0].clientX;\n        const diff = startX - endX;\n        if (Math.abs(diff) > swipeThreshold) {\n            if (diff > 0) moveNext();\n            else movePrev();\n        }\n    });\n\n    \/* =========================================================\n       LAZY LOADING DES IMAGES\n       ========================================================= *\/\n    const imageObserver = new IntersectionObserver((entries, observer) => {\n        entries.forEach(entry => {\n            if (entry.isIntersecting) {\n                const img = entry.target;\n                if (img.dataset.src) {\n                    img.onload = () => img.classList.add('norki-loaded');\n                    img.src = img.dataset.src;\n                    img.removeAttribute('data-src');\n                    observer.unobserve(img);\n                }\n            }\n        });\n    }, { root: null, rootMargin: '0px 100% 0px 100%', threshold: 0 });\n    \n    document.querySelectorAll('.norki-lazy').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<section class=\"nk-sel\">\n    <div class=\"nk-sel__container\">\n        \n        <!-- En-t\u00eate : Titre (Gauche) + Fl\u00e8ches (Droite) -->\n        <div class=\"nk-sel__header\">\n            <h2 class=\"nk-sel__title avenirmedium-font\">\n                Notre S\u00e9lection d'<span class=\"baskerville-italic-font\">objets<\/span>\n            <\/h2>\n            \n            <!-- Navigation remont\u00e9e sur la m\u00eame ligne que le titre -->\n            <div class=\"nk-sel__nav-bar\">\n                <div class=\"nk-sel__arrows\">\n                    <button class=\"nk-sel__prev\" aria-label=\"Slide pr\u00e9c\u00e9dente\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sel__next\" aria-label=\"Slide suivante\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section Carrousel -->\n        <div class=\"nk-sel__slider-area\" id=\"sel-slider\">\n            <div class=\"nk-sel__carousel-viewport\">\n                <div class=\"nk-sel__carousel-track\">\n                    \n                    <!-- Slide 1 : Coussin Hommage -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/coussins-oreillers-createurs-fourrure-luxe-decoration-chalet-norki\/643-coussin-hommage-rectanglecoussin-rectangle-fourrure-leopard-veritable-luxe.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Coussin Hommage\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Coussin-Photo-II-Hommage_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=\"Coussin Hommage\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Coussin Hommage<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/coussins-oreillers-createurs-fourrure-luxe-decoration-chalet-norki\/643-coussin-hommage-rectanglecoussin-rectangle-fourrure-leopard-veritable-luxe.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 : Fauteuil Montaigne -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/collection-fauteuil-norki\/149-fauteuil-montaigne-norki-cheval-pommele.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Fauteuil Montaigne\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/fauteuil-intemporel-chine-club-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=\"Fauteuil Montaigne\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Fauteuil Montaigne<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/collection-fauteuil-norki\/149-fauteuil-montaigne-norki-cheval-pommele.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 3 : Coussin Courchevel -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/coussins-oreillers-createurs-fourrure-luxe-decoration-chalet-norki\/570-coussin-luxe-fourrure-renard-roux-norki.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Coussin Courchevel\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Coussin-luxe-fourrure-renard-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=\"Coussin Courchevel\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Coussin Courchevel<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/coussins-oreillers-createurs-fourrure-luxe-decoration-chalet-norki\/570-coussin-luxe-fourrure-renard-roux-norki.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 4 : Coussin Forest -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/collections-coussins-iconiques-norki\/478-coussin-forest-carre-norki.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Coussin Forest\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Coussin-Photo-Principale-Forest-Carre_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=\"Coussin Forest\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Coussin Forest<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/collections-coussins-iconiques-norki\/478-coussin-forest-carre-norki.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 5 : Coussin Zibeline -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/coussins-oreillers-createurs-fourrure-luxe-decoration-chalet-norki\/552-269-coussin-carre-fourrure-zibeline-luxe-alpin-norki.html#\/81-dimension-40_40_cm\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Coussin Zibeline\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Coussin-Alexandra-carre-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=\"Coussin Zibeline\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Coussin Zibeline<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/coussins-oreillers-createurs-fourrure-luxe-decoration-chalet-norki\/552-269-coussin-carre-fourrure-zibeline-luxe-alpin-norki.html#\/81-dimension-40_40_cm\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 6 : Fauteuil Moderne -->\n                    <article class=\"nk-sel__slide\">\n                        <a href=\"https:\/\/www.norki.com\/fr\/collection-fauteuil-norki\/590-fauteuil-velours-blanc-pivotant-design-contemporain.html\" class=\"nk-sel__image-link\" aria-label=\"D\u00e9couvrir le Fauteuil Moderne\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/white-velvet-shearling-modern-armchair.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Fauteuil Moderne\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sel__caption avenirmedium-font\">\n                            <span class=\"nk-sel__product-name\">Fauteuil Moderne<\/span>\n                            <a href=\"https:\/\/www.norki.com\/fr\/collection-fauteuil-norki\/590-fauteuil-velours-blanc-pivotant-design-contemporain.html\" class=\"nk-sel__link\">Acheter<\/a>\n                        <\/div>\n                    <\/article>\n\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : S\u00c9LECTION D'OBJETS\n============================================ *\/\n.nk-sel {\n    padding-top: 0;\n    padding-bottom: var(--section-pad-v-dt, 80px);\n    padding-left: var(--section-pad-h-dt, 5vw);\n    padding-right: var(--section-pad-h-dt, 5vw);\n    background-color: var(--color-norki-beige, #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:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/grey-white-mottled-shearling-headboard-grau-roig.jpg\" alt=\"Chambre Grau Roig - T\u00eate de lit\" class=\"nk-hs-hero__img\">\n        <div class=\"nk-hs-hero__fade\"><\/div>\n    <\/section>\n\n    <!-- ==========================================\n         BLOC HTML - S\u00c9MANTIQUE & INDEXABILIT\u00c9\n         ========================================== -->\n    <section id=\"wp-custom-projects-slider\" class=\"wp-custom-projects-slider-container\" aria-label=\"Nos r\u00e9alisations\">\n        \n        <!-- Bloc Information (Sans description, descendu pour l'alignement) -->\n        <div class=\"projects-info\">\n            <h2 class=\"avenirmedium-font\">Explorez toutes nos <br><span class=\"baskerville-italic-font\">R\u00e9alisations d\u2019H\u00f4tels<\/span><\/h2>\n            <a href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/\" class=\"link-voir-tout\">Voir tout<\/a>\n        <\/div>\n\n        <!-- Zone Slider -->\n        <div class=\"projects-slider\">\n            <button class=\"nav-arrow left-arrow\" aria-label=\"Projet pr\u00e9c\u00e9dent\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n            <button class=\"nav-arrow right-arrow\" aria-label=\"Projet suivant\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n\n            <!-- Slide 1 : Palace Les Neiges (Courchevel) -->\n            <article class=\"slide\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/interior-design-hotel-room-palace-les-neiges-courchevel-2.jpg\" alt=\"Palace Les Neiges, Courchevel\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Courchevel, France<\/span>\n                        <h3>Palace Les Neiges<\/h3>\n                        <p>T\u00eates de lit, mobilier et coussins en fourrure sur-mesure<\/p>\n                    <\/div>\n                    <a href=\"#courchevel-les-neiges\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 2 : Le Cheval Blanc (Courchevel - Active par d\u00e9faut) -->\n            <article class=\"slide active\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Cowhide-wall-covering_Cheval-Blanc-Courchevel_Norki-2-scaled.jpg\" alt=\"Le Cheval Blanc, Courchevel\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Courchevel, France<\/span>\n                        <h3>Le Cheval Blanc<\/h3>\n                        <p>Rev\u00eatement mural graphique en peau de vache<\/p>\n                    <\/div>\n                    <a href=\"#courchevel-cheval-blanc\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 3 : Grand H\u00f4tel Rougemont (Rougemont) -->\n            <article class=\"slide\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/tapis-peau-de-vache-chambre-hotel-rougemont-v2-1536x1272.png\" alt=\"Grand H\u00f4tel Rougemont\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Rougemont, Suisse<\/span>\n                        <h3>Grand H\u00f4tel Rougemont<\/h3>\n                        <p>Tapis en peau de vache et d\u00e9coration sur-mesure<\/p>\n                    <\/div>\n                    <a href=\"#rougemont-grand-hotel\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 4 : H\u00f4tel Le C\u0153ur de Meg\u00e8ve (Meg\u00e8ve) -->\n            <article class=\"slide\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Coeur-de-Megeve-II.jpg\" alt=\"H\u00f4tel Le C\u0153ur de Meg\u00e8ve\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Meg\u00e8ve, France<\/span>\n                        <h3>H\u00f4tel Le C\u0153ur de Meg\u00e8ve<\/h3>\n                        <p>Mobilier, plaids et d\u00e9coration de caract\u00e8re<\/p>\n                    <\/div>\n                    <a href=\"#megeve-coeur-de-megeve\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 5 : H\u00f4tel Les Barmes de l'Ours (Val d'Is\u00e8re) -->\n            <article class=\"slide\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/restaurant-salle-a-manger_Hotel-les-barmes-de-l-ours-2-scaled.jpg\" alt=\"H\u00f4tel Les Barmes de l'Ours, Val d'Is\u00e8re\">\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Val d'Is\u00e8re, France<\/span>\n                        <h3>H\u00f4tel Les Barmes de l'Ours<\/h3>\n                        <p>Fauteuils, banquettes et habillages de restaurant<\/p>\n                    <\/div>\n                    <a href=\"#val-disere-barmes-ours\" class=\"link-voir\">Voir<\/a>\n                <\/div>\n            <\/article>\n        <\/div>\n    <\/section>\n\n<\/div>\n\n<!-- ==========================================\n     BLOC CSS - STYLES INITIAUX & MODIFI\u00c9S\n     ========================================== -->\n<style>\n    \/* ==========================================\n       HERO TOP IMAGE\n       ========================================== *\/\n    .nk-hotels-showcase {\n        width: 100%;\n        background-color: var(--color-norki-brown, #50423d); \/* Uniformisation sur le marron *\/\n    }\n\n    .nk-hs-hero {\n        position: relative;\n        width: 100%;\n        height: 75vh;\n        background-color: #000;\n    }\n\n    .nk-hs-hero__img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        object-position: center 90%;\n        display: block;\n    }\n\n    .nk-hs-hero__fade {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 45%;\n        \/* D\u00e9grad\u00e9 fluide vers le fond marron officiel *\/\n        background: linear-gradient(to bottom, rgba(80, 66, 61, 0) 0%, var(--color-norki-brown, #50423d) 100%);\n        z-index: 2;\n        pointer-events: none;\n    }\n\n    \/* ==========================================\n       VARIABLES CSS\n       ========================================== *\/\n    .wp-custom-projects-slider-container {\n        --bg-section: var(--color-norki-brown, #50423d); \/* Marron pour l'ambiance chalet sombre *\/\n        --text-light: #ffffff;\n        --text-muted: #d3ccc7;\n        --text-dark: var(--color-norki-beige, #f8f0ea); \/* Le titre passe en beige *\/\n        --font-primary: Arial, sans-serif;\n        --font-secondary: serif;\n        --radius-img: 4px;\n        \n        box-sizing: border-box;\n        position: relative;\n        background-color: var(--bg-section);\n        width: 100%;\n        height: 100vh;\n        min-height: 850px;\n        color: var(--text-light);\n        font-family: var(--font-primary);\n        overflow: hidden;\n    }\n\n    \/* Isolation de la bordure-box pour \u00e9viter les conflits WP *\/\n    .wp-custom-projects-slider-container *, \n    .wp-custom-projects-slider-container *::before, \n    .wp-custom-projects-slider-container *::after {\n        box-sizing: inherit;\n        margin: 0;\n        padding: 0;\n    }\n\n    \/* Bloc texte en haut \u00e0 gauche (Descendu car pas de description) *\/\n    .wp-custom-projects-slider-container .projects-info {\n        position: absolute;\n        top: 130px; \/* Descendu de 60px \u00e0 130px pour un \u00e9quilibre parfait *\/\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    \/* --- FL\u00c8CHES DE NAVIGATION (Structure g\u00e9n\u00e9rale de base) --- *\/\n    .wp-custom-projects-slider-container .nav-arrow {\n        position: absolute;\n        top: 33%;\n        transform: translateY(-50%);\n        background: transparent;\n        border: none;\n        cursor: pointer;\n        z-index: 15;\n        transition: opacity 0.2s ease, transform 0.2s ease;\n        padding: 10px;\n        opacity: 0.7;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .wp-custom-projects-slider-container .nav-arrow img {\n        width: 20px; \n        height: 20px;\n        display: block;\n        filter: brightness(0) invert(1); \/* Force les fl\u00e8ches en blanc sur fond marron *\/\n    }\n\n    .wp-custom-projects-slider-container .left-arrow img {\n        transform: scaleX(-1);\n    }\n\n    \/* HOVER : Uniquement pour les appareils avec souris (Pas de collage sur mobile) *\/\n    @media (hover: hover) {\n        .wp-custom-projects-slider-container .nav-arrow:hover {\n            opacity: 1;\n            transform: translateY(-50%) scale(1.1);\n        }\n    }\n\n    \/* CLIC R\u00c9ACTIF (PC et mobile) : dip d'opacit\u00e9 et de scale instantan\u00e9 *\/\n    .wp-custom-projects-slider-container .nav-arrow:active {\n        opacity: 0.4 !important;\n        transform: translateY(-50%) scale(0.9) !important;\n        transition: none !important;\n    }\n\n    .wp-custom-projects-slider-container .left-arrow { left: 30px; }\n    .wp-custom-projects-slider-container .right-arrow { right: 30px; }\n\n    \/* Zone du Slider *\/\n    .wp-custom-projects-slider-container .projects-slider {\n        position: absolute;\n        bottom: 40px; \n        width: 100vw;\n        height: 80vh; \n        display: flex;\n        align-items: flex-end;\n        justify-content: center;\n    }\n\n    \/* Configuration des images (Slides) - Version PC de base *\/\n    .wp-custom-projects-slider-container .slide {\n        position: absolute;\n        bottom: 0;\n        height: 50vh;\n        width: auto;\n        aspect-ratio: 1272 \/ 1140;\n        transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);\n        opacity: 0;\n        visibility: hidden;\n        z-index: 0;\n    }\n\n    .wp-custom-projects-slider-container .slide img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n        border-radius: var(--radius-img);\n    }\n\n    \/* D\u00e9grad\u00e9 sombre *\/\n    .wp-custom-projects-slider-container .slide::after {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 40%; \n        background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.15) 65%, transparent 100%);\n        border-radius: var(--radius-img) var(--radius-img) 0 0;\n        opacity: 0;\n        transition: opacity 0.4s ease;\n        pointer-events: none;\n        z-index: 1;\n    }\n\n    .wp-custom-projects-slider-container .slide.active::after { opacity: 1; }\n\n    \/* Contenu textuel sur l'image *\/\n    .wp-custom-projects-slider-container .slide-content {\n        text-align: left;\n        position: absolute;\n        top: 30px;\n        left: 30px;\n        right: 30px;\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-start;\n        opacity: 0;\n        transition: opacity 0.4s ease;\n        pointer-events: none;\n        z-index: 2;\n    }\n\n    \/* NOUVEAU STYLE : Affichage de la ville *\/\n    .wp-custom-projects-slider-container .slide-content-text .slide-city {\n        display: block;\n        color: var(--text-muted);\n        font-size: 0.75rem;\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n        margin-bottom: 6px;\n        font-weight: 600;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text h3 {\n        color: var(--text-light);\n        font-size: 1.15rem;\n        font-weight: normal;\n        margin-bottom: 5px;\n        line-height: 1.3;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text p {\n        font-family: var(--font-secondary);\n        font-style: italic;\n        font-size: 1rem;\n        color: white;\n        line-height: 1.4;\n    }\n\n    \/* Bouton Voir *\/\n    .wp-custom-projects-slider-container .link-voir {\n        position: relative;\n        color: var(--text-light);\n        text-decoration: none;\n        border-bottom: 1px solid var(--text-light);\n        font-size: 0.8rem;\n        opacity: 0;\n        transform: translateY(10px);\n        transition: all 0.4s ease;\n        pointer-events: auto;\n        transform-origin: right center;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide.active .link-voir {\n        opacity: 1;\n        transform: translateY(0) scale(1);\n    }\n\n    @media (hover: hover) {\n        .wp-custom-projects-slider-container .slide.active:hover .link-voir {\n            transform: translateY(0) scale(1.15);\n        }\n    }\n\n    \/* \u00c9tats du slider (PC > 1700px) - Marges strictes \u00e0 40px *\/\n    .wp-custom-projects-slider-container .slide.prev {\n        opacity: 1;\n        visibility: visible;\n        \/* Aligne pr\u00e9cis\u00e9ment le bord gauche de l'image \u00e0 50px de l'\u00e9cran *\/\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        \/* Position = 50px (bord \u00e9cran) + 40px (marge fixe) + Largeur Slide Prev (50vh * 1272\/1140) *\/\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        \/* Position = 50px + 80px (2 marges) + Largeur Prev (50vh*ratio) + Largeur Active (76vh*ratio) *\/\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        \/* Hover uniquement sur PC dans ce breakpoint *\/\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        \/* Action active sur mobile\/tablette (Pas de translateY) *\/\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 {\nheight: 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        \/* D\u00e9grad\u00e9 sombre *\/\n        .wp-custom-projects-slider-container .slide::after {\n            height: 60%;\n            background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.35) 65%, transparent 100%);\n        }\n        .wp-custom-projects-slider-container .slide.prev { transform: translateX(-75vw); }\n        .wp-custom-projects-slider-container .slide.next { transform: translateX(75vw); }\n        .wp-custom-projects-slider-container .nav-arrow { bottom: calc(min(65vw * (1140 \/ 1272), 60vh) + 15px); }\n        .wp-custom-projects-slider-container .left-arrow { left: 0; }\n        .wp-custom-projects-slider-container .right-arrow { right: 0; }\n\n        .wp-custom-projects-slider-container .slide-content {\n            top: 20px; bottom: 30px; text-align: center;\n            flex-direction: column; align-items: center; justify-content: space-between;\n        }\n        .wp-custom-projects-slider-container .slide-content-text h3 { margin-bottom: 5px; }\n        .wp-custom-projects-slider-container .link-voir {\n            transform-origin: center center;\n        }\n    }\n\n    @media (max-width: 420px) {\n        .wp-custom-projects-slider-container .projects-slider { height: 95vw; max-height: none; }\n        .wp-custom-projects-slider-container .nav-arrow { bottom: calc(85vw * (1140 \/ 1272) + 10px); }\n        .wp-custom-projects-slider-container .left-arrow { left: 5vw; }\n        .wp-custom-projects-slider-container .right-arrow { right: 5vw; }\n    }\n<\/style>\n\n<!-- ==========================================\n     BLOC JAVASCRIPT - COMPORTEMENT\n     ========================================== -->\n<script>\n(function() {\n    const CONFIG_COMPOSANT = {\n        delaiAutoPlay: 8000,\n        delaiPauseApresClic: 15000\n    };\n\n    const container = document.getElementById('wp-custom-projects-slider');\n    if (!container) return; \n\n    const slidesElements = Array.from(container.querySelectorAll('.slide'));\n    let currentIndex = slidesElements.findIndex(slide => slide.classList.contains('active'));\n    if (currentIndex === -1) currentIndex = 0;\n\n    let autoplayInterval;\n    let pauseTimeout;\n\n    function renderSlider() {\n        slidesElements.forEach(slide => slide.classList.remove('active', 'prev', 'next'));\n        \n        slidesElements[currentIndex].classList.add('active');\n        \n        let prevIndex = currentIndex - 1 < 0 ? slidesElements.length - 1 : currentIndex - 1;\n        let nextIndex = currentIndex + 1 >= slidesElements.length ? 0 : currentIndex + 1;\n        \n        slidesElements[prevIndex].classList.add('prev');\n        slidesElements[nextIndex].classList.add('next');\n    }\n\n    function goToNextSlide() {\n        currentIndex = currentIndex + 1 >= slidesElements.length ? 0 : currentIndex + 1;\n        renderSlider();\n    }\n\n    function goToPrevSlide() {\n        currentIndex = currentIndex - 1 < 0 ? slidesElements.length - 1 : currentIndex - 1;\n        renderSlider();\n    }\n\n    function startAutoplay() {\n        clearInterval(autoplayInterval);\n        autoplayInterval = setInterval(goToNextSlide, CONFIG_COMPOSANT.delaiAutoPlay); \n    }\n\n    function pauseAutoplayTemporarily() {\n        clearInterval(autoplayInterval); \n        clearTimeout(pauseTimeout); \n        pauseTimeout = setTimeout(startAutoplay, CONFIG_COMPOSANT.delaiPauseApresClic);\n    }\n\n    container.querySelector('.left-arrow').addEventListener('click', () => {\n        goToPrevSlide();\n        pauseAutoplayTemporarily();\n    });\n\n    container.querySelector('.right-arrow').addEventListener('click', () => {\n        goToNextSlide();\n        pauseAutoplayTemporarily();\n    });\n\n    slidesElements.forEach(slide => {\n        slide.addEventListener('click', (e) => {\n            if (slide.classList.contains('active')) {\n                if (!e.target.classList.contains('link-voir')) {\n                    const linkElement = slide.querySelector('.link-voir');\n                    if (linkElement) {\n                        const linkHref = linkElement.getAttribute('href');\n                        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>Palace au sommet des Pyr\u00e9n\u00e9es Palace \u00e0 Andorre Andorre 2026 Mobilier, Panneaux muraux &amp; Coussins sur mesure Un refuge exclusif entre cimes enneig\u00e9es et excellence architecturale Au c\u0153ur de la Principaut\u00e9 d\u2019Andorre, l\u00e0 o\u00f9 les sommets imposent une architecture de pierre forte et intemporelle, se dresse le Boutique-H\u00f4tel Grau Roig. V\u00e9ritable joyau de haute altitude, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2443,"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-3645","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Haute D\u00e9coration \u00e0 l&#039;H\u00f4tel 5* Grau Roig, Andorre | Ateliers Norki<\/title>\n<meta name=\"description\" content=\"De l\u2019atelier \u00e0 la pose, Norki sublime l\u2019H\u00f4tel Grau Roig, refuge 5 \u00e9toiles au luxe authentique au pied des pistes d&#039;Andorre.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Haute D\u00e9coration \u00e0 l&#039;H\u00f4tel 5* Grau Roig, Andorre | Ateliers Norki\" \/>\n<meta property=\"og:description\" content=\"De l\u2019atelier \u00e0 la pose, Norki sublime l\u2019H\u00f4tel Grau Roig, refuge 5 \u00e9toiles au luxe authentique au pied des pistes d&#039;Andorre.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/\" \/>\n<meta property=\"og:site_name\" content=\"Norki\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/NorkiDecoration\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-08T08:15:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Decoration-Hotel-Montagne-Andorre.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/\",\"name\":\"Haute D\u00e9coration \u00e0 l'H\u00f4tel 5* Grau Roig, Andorre | Ateliers Norki\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Decoration-Hotel-Montagne-Andorre.jpg\",\"datePublished\":\"2026-05-28T07:46:21+00:00\",\"dateModified\":\"2026-06-08T08:15:39+00:00\",\"description\":\"De l\u2019atelier \u00e0 la pose, Norki sublime l\u2019H\u00f4tel Grau Roig, refuge 5 \u00e9toiles au luxe authentique au pied des pistes d'Andorre.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/#primaryimage\",\"url\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Decoration-Hotel-Montagne-Andorre.jpg\",\"contentUrl\":\"https:\\\/\\\/norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Decoration-Hotel-Montagne-Andorre.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/grau-roig-andorre\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nos r\u00e9alisations\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"H\u00f4tel\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/realisations-projets-decoration-interieur-luxe\\\/hotel\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Grau Roig\"}]},{\"@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":"Haute D\u00e9coration \u00e0 l'H\u00f4tel 5* Grau Roig, Andorre | Ateliers Norki","description":"De l\u2019atelier \u00e0 la pose, Norki sublime l\u2019H\u00f4tel Grau Roig, refuge 5 \u00e9toiles au luxe authentique au pied des pistes d'Andorre.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/","og_locale":"fr_FR","og_type":"article","og_title":"Haute D\u00e9coration \u00e0 l'H\u00f4tel 5* Grau Roig, Andorre | Ateliers Norki","og_description":"De l\u2019atelier \u00e0 la pose, Norki sublime l\u2019H\u00f4tel Grau Roig, refuge 5 \u00e9toiles au luxe authentique au pied des pistes d'Andorre.","og_url":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-06-08T08:15:39+00:00","og_image":[{"url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Decoration-Hotel-Montagne-Andorre.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/","url":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/","name":"Haute D\u00e9coration \u00e0 l'H\u00f4tel 5* Grau Roig, Andorre | Ateliers Norki","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/#primaryimage"},"thumbnailUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Decoration-Hotel-Montagne-Andorre.jpg","datePublished":"2026-05-28T07:46:21+00:00","dateModified":"2026-06-08T08:15:39+00:00","description":"De l\u2019atelier \u00e0 la pose, Norki sublime l\u2019H\u00f4tel Grau Roig, refuge 5 \u00e9toiles au luxe authentique au pied des pistes d'Andorre.","breadcrumb":{"@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/#primaryimage","url":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Decoration-Hotel-Montagne-Andorre.jpg","contentUrl":"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Decoration-Hotel-Montagne-Andorre.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/grau-roig-andorre\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/sur-mesure\/fr\/"},{"@type":"ListItem","position":2,"name":"Nos r\u00e9alisations","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/"},{"@type":"ListItem","position":3,"name":"H\u00f4tel","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/realisations-projets-decoration-interieur-luxe\/hotel\/"},{"@type":"ListItem","position":4,"name":"Grau Roig"}]},{"@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":"Palace au sommet des Pyr\u00e9n\u00e9es Palace \u00e0 Andorre Andorre 2026 Mobilier, Panneaux muraux &amp; Coussins sur mesure Un refuge exclusif entre cimes enneig\u00e9es et excellence architecturale Au c\u0153ur de la Principaut\u00e9 d\u2019Andorre, l\u00e0 o\u00f9 les sommets imposent une architecture de pierre forte et intemporelle, se dresse le Boutique-H\u00f4tel Grau Roig. V\u00e9ritable joyau de haute altitude,\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/3645","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=3645"}],"version-history":[{"count":91,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/3645\/revisions"}],"predecessor-version":[{"id":4106,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/3645\/revisions\/4106"}],"up":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/2443"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=3645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=3645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=3645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}