{"id":4306,"date":"2026-06-08T14:03:44","date_gmt":"2026-06-08T12:03:44","guid":{"rendered":"https:\/\/www.norki.com\/sur-mesure\/?page_id=4306"},"modified":"2026-07-21T12:34:55","modified_gmt":"2026-07-21T10:34:55","slug":"gabriel-bernardi-brighton","status":"publish","type":"page","link":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/","title":{"rendered":"Villa Angleterre"},"content":{"rendered":"\n<section class=\"nk-hero\">\n  <div class=\"nk-hero__bg\">\n    <!-- Int\u00e9gration de l'image de la villa de Brighton (R\u00e9f: image_54f835.jpg) -->\n    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/villa-angleterre-hero.png\" alt=\"Seaside Villa, Brighton\" 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 principal -->\n      <div class=\"nk-hero__title-wrapper\">\n        <h1 class=\"nk-hero__title avenirmedium-font\">Seaside Villa<\/h1>\n      <\/div>\n      <!-- Wrapper pour le sous-titre de localisation -->\n      <div class=\"nk-hero__subtitle-wrapper\">\n        <span class=\"nk-hero__subtitle baskerville-italic-font\">Brighton<\/span>\n      <\/div>\n    <\/div>\n    \n    <hr class=\"nk-hero__divider\">\n    \n    <!-- M\u00e9ta-informations d\u00e9filantes adapt\u00e9es \u00e0 la r\u00e9alisation de Brighton -->\n    <div class=\"nk-hero__meta\">\n      <span class=\"nk-hero__meta-item avenirmedium-font\">Brighton, England<\/span>\n      <span class=\"nk-hero__meta-item avenirmedium-font\">2019<\/span>\n      <span class=\"nk-hero__meta-item\">Bespoke sofas<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n\/* ==========================================================================\n   DESIGN SYSTEM & VARIABLES LOCALES (Gabarit strict de l'int\u00e9gration)\n   ========================================================================== *\/\n.nk-hero {\n  position: relative;\n  width: 100%;\n  \/* Hauteur fix\u00e9e au-dessus de 100vh pour inciter naturellement l'utilisateur \u00e0 scroller *\/\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\/* D\u00e9grad\u00e9 lin\u00e9aire sombre optimis\u00e9 pour assurer un contraste parfait sur les textes *\/\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\/* En-t\u00eate de contenu (Titres align\u00e9s et espac\u00e9s du filet s\u00e9parateur) *\/\n.nk-hero__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  margin-bottom: 35px; \/* Espacement accru pour d\u00e9tacher visuellement les titres *\/\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);\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);\n  line-height: 1.1;\n  font-weight: normal;\n  display: block;\n}\n\n\/* Filet blanc d\u00e9licat *\/\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\/* Informations de m\u00e9tadonn\u00e9es *\/\n.nk-hero__meta {\n  display: flex;\n  justify-content: flex-start;\n  gap: 40px; \/* Distribution r\u00e9guli\u00e8re des \u00e9l\u00e9ments *\/\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;\n    gap: 25px;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    scrollbar-width: none;\n    -ms-overflow-style: none;\n    padding-bottom: 2px;\n    padding-left: 8px; \/* Marge pour \u00e9viter que les premi\u00e8res lettres soient rogn\u00e9es *\/\n    padding-right: 8px;\n  }\n  \n  .nk-hero__meta::-webkit-scrollbar {\n    display: none;\n  }\n\n  .nk-hero__meta-item {\n    white-space: nowrap;\n    flex-shrink: 0;\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 tr\u00e8s douce (0.5 pixel par frame pour une fluidit\u00e9 maximale)\n  let resumeTimeout;\n  let extremityTimeout; \/\/ Pour g\u00e9rer la pause aux extr\u00e9mit\u00e9s\n  let isInteracting = false;\n  let isPausedAtExtremity = false;\n  let currentScroll = metaContainer.scrollLeft;\n\n  \/\/ Fonction d'animation \"va-et-vient\" fluide\n  function autoScroll() {\n    if (isInteracting) return;\n    if (isPausedAtExtremity) {\n       animationFrameId = requestAnimationFrame(autoScroll);\n       return;\n    }\n    \n    \/\/ Si pas de d\u00e9bordement de contenu, l'animation reste en veille\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); \/\/ Pause 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); \/\/ Pause 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;\n      \n      \/\/ Pause de s\u00e9curit\u00e9 de 2 secondes lors du chargement ou de l'apparition\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  \/\/ Suspension temporaire lors des interactions de l'utilisateur\n  function handleInteraction() {\n    isInteracting = true;\n    isPausedAtExtremity = false;\n    clearTimeout(extremityTimeout);\n    stopAnimation();\n    clearTimeout(resumeTimeout);\n    \n    \/\/ Reprise automatique apr\u00e8s 3 secondes d'inactivit\u00e9 (uniquement sur mobile)\n    resumeTimeout = setTimeout(() => {\n      isInteracting = false;\n      if (window.innerWidth <= 640) {\n        currentScroll = metaContainer.scrollLeft;\n        startAnimation();\n      }\n    }, 3000);\n  }\n\n  \/\/ Activation de l'animation par Intersection Observer uniquement si l'\u00e9l\u00e9ment est visible \u00e0 l'\u00e9cran\n  const observer = new IntersectionObserver((entries) => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\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 tactiles et molette *\/\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  \/\/ R\u00e9initialisation en cas de redimensionnement de l'\u00e9cran\n  window.addEventListener('resize', () => {\n    if (window.innerWidth > 640) {\n       stopAnimation();\n       metaContainer.scrollLeft = 0;\n       currentScroll = 0;\n    } else {\n       if (!isInteracting) {\n         startAnimation();\n       }\n    }\n  });\n});\n<\/script>\n\n\n\n<section class=\"nk-intro\">\n  <div class=\"nk-intro__inner\">\n    <div class=\"nk-intro__header\">\n      <h2 class=\"nk-intro__title avenirmedium-font\">\n        Coastal Exclusivity\n        <span class=\"nk-intro__title-accent baskerville-italic-font\">Gabriel Bernardi Redefines the British Touch<\/span>\n      <\/h2>\n    <\/div>\n    \n    <div class=\"nk-intro__content\">\n      <p class=\"nk-intro__paragraph nk-intro__lead\">\n        While <a href=\"https:\/\/www.norki.com\/en\/\" class=\"nk-intro__inline-link\" target=\"_blank\" rel=\"noopener\" title=\"Visit Maison Norki\">Maison Norki<\/a> is globally renowned for its prestigious alpine chalet interiors, this project demonstrates our ability to adapt with brilliance and exclusivity to seaside environments.\n      <\/p>\n      <p class=\"nk-intro__paragraph\">\n        This exceptional residence, located on the British coastline, perfectly embodies the refined and warm spirit of the <strong>English cottage<\/strong>. The interior architecture prioritizes chromatic sobriety, absolute comfort, and expansive windows that transform the seascape into a living masterpiece.\n      <\/p>\n      \n      <div class=\"nk-intro__action\">\n        <a href=\"https:\/\/www.norki.com\/en\/\" class=\"nk-intro__btn\" target=\"_blank\" rel=\"noopener\">Discover the world of Maison Norki<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n\n\/* ============================================\n   LAYOUT PRINCIPAL\n============================================ *\/\n.nk-intro {\n  background-color: var(--color-norki-beige);\n  padding: var(--section-pad-v-dt) var(--section-pad-h-dt);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  box-sizing: border-box;\n}\n\n.nk-intro__inner {\n  width: 100%;\n  max-width: 1400px;\n  display: grid;\n  grid-template-columns: 1fr 1.6fr; \/* Ratio asym\u00e9trique \u00e9l\u00e9gant *\/\n  gap: clamp(40px, 6vw, 100px); \/* Espacement horizontal fluide *\/\n  align-items: start;\n}\n\n\/* ============================================\n   TYPOGRAPHIE ET LIENS\n============================================ *\/\n.nk-intro__header {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n\n.nk-intro__title {\n  font-size: clamp(1.4rem, 2.2vw, 25px);\n  line-height: 1.25;\n  color: #000000;\n  font-weight: normal;\n  letter-spacing: -0.01em;\n  margin: 0 !important;\n}\n\n.nk-intro__title-accent {\n  display: block;\n  font-size: 0.95em;\n  color: #000000;\n  margin-top: 8px;\n}\n\n.nk-intro__content {\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n  justify-content: flex-start;\n}\n\n.nk-intro__paragraph {\n  font-size: clamp(0.92rem, 1.1vw, 1.05rem);\n  line-height: 1.7;\n  color: #000000;\n  letter-spacing: 0.01em;\n  max-width: 90%;\n  margin: 0 !important;\n}\n\n\/* Accentuation s\u00e9mantique *\/\n.nk-intro__paragraph strong {\n  font-weight: 600;\n}\n\n.nk-intro__inline-link {\n  color: inherit;\n  text-decoration: underline;\n  text-decoration-color: currentColor;\n  text-underline-offset: 3px;\n  text-decoration-thickness: 1px;\n  transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n  font-weight: 500;\n}\n\n.nk-intro__inline-link:hover {\n  text-decoration-color: transparent;\n  opacity: 0.7;\n}\n\n\/* ============================================\n   BOUTON\n============================================ *\/\n.nk-intro__action {\n  margin-top: 8px;\n}\n\n.nk-intro__btn {\n  display: inline-block;\n  background-color: #000000;\n  color: var(--color-norki-beige);\n  padding: 4px 27px;\n  font-size: 0.9rem;\n  text-decoration: none;\n  border: 1px solid #000000;\n  transition: background-color 0.3s ease, color 0.3s ease;\n  cursor: pointer;\n  text-align: center;\n}\n\n.nk-intro__btn:hover {\n  background-color: transparent;\n  color: #000000;\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n  .nk-intro {\n    padding: var(--section-pad-v-tab) var(--section-pad-h-tab);\n  }\n  \n  .nk-intro__inner {\n    grid-template-columns: 1fr;\n    gap: 32px;\n  }\n  \n  .nk-intro__title, .nk-intro__paragraph {\n    max-width: 100%;\n  }\n  \n  .nk-intro__paragraph {\n    text-align: left;\n  }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 640px)\n============================================ *\/\n@media (max-width: 640px) {\n  .nk-intro {\n    padding: var(--section-pad-v-mob) var(--section-pad-h-mob);\n  }\n  \n  .nk-intro__inner {\n    gap: 24px;\n  }\n  \n  .nk-intro__title, .nk-intro__paragraph {\n    max-width: 100%;\n  }\n  \n  .nk-intro__action {\n    margin-top: 4px;\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-simple-image\">\n  <!-- Image cliquable -->\n  <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-simple-image__wrapper\" title=\"Discover Maison Norki's custom creations\" target=\"_blank\" rel=\"noopener\">\n    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Cowhide-custom-sofas_Norki.png\" alt=\"Exceptional living room with custom cowhide sofas, Maison Norki realization - Brighton Villa\" class=\"nk-simple-image__img\" loading=\"lazy\">\n  <\/a>\n  \n  <!-- L\u00e9gende cliquable avec le style \u00e9ditorial haut de gamme -->\n  <div class=\"nk-simple-image__caption\">\n    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-editorial-inline-link\" title=\"Discover Maison Norki's custom creations\" target=\"_blank\" rel=\"noopener\">\n      Custom cowhide sofas\n    <\/a>\n  <\/div>\n<\/section>\n\n<style>\n\/* ==========================================================================\n   DESIGN SYSTEM & VARIABLES LOCALES (Harmonisation Brighton)\n   ========================================================================== *\/\n:root {\n  \/* Teinte beige d'apr\u00e8s la colorim\u00e9trie de la Villa Brighton *\/\n  --color-norki-beige: #f5eee6;\n  --section-pad-h-dt: 100px;\n  --section-pad-h-tab: 40px;\n  --section-pad-h-mob: 24px;\n}\n\n\/* Polices de la charte graphique Norki *\/\n.nk-simple-image {\n  font-family: \"Avenir Next\", Avenir, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n}\n\n.nk-editorial-inline-link {\n  font-family: Baskerville, \"Playfair Display\", Georgia, serif;\n  font-style: italic;\n}\n\n\/* ==========================================================================\n   COMPOSANT : SECTION IMAGE UNIQUE IMMERSIVE\n   ========================================================================== *\/\n.nk-simple-image {\n  width: 100%;\n  background-color: var(--color-norki-beige);\n  line-height: 0; \/* \u00c9vite un d\u00e9calage de pixel parasite sous l'image *\/\n  overflow: hidden;\n  padding-bottom: 25px; \/* Espace de respiration sous la l\u00e9gende *\/\n}\n\n.nk-simple-image__wrapper {\n  display: block; \/* N\u00e9cessaire pour la balise <a> cliquable *\/\n  width: 100%;\n  height: 85vh; \/* Hauteur immersive et \u00e9l\u00e9gante sur PC *\/\n  min-height: 500px;\n  overflow: hidden;\n}\n\n.nk-simple-image__img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: center center; \/* Cadrage panoramique \u00e9quilibr\u00e9 sur le grand salon *\/\n  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);\n}\n\n\/* L\u00e9ger effet de zoom luxueux et fluide au survol *\/\n.nk-simple-image__wrapper:hover .nk-simple-image__img {\n  transform: scale(1.02);\n}\n\n\/* Styles des l\u00e9gendes sous les images *\/\n.nk-simple-image__caption {\n  display: block;\n  font-size: 0.9rem; \n  margin-top: 14px;\n  text-align: right;\n  color: #000000;\n  line-height: normal; \/* Annule le line-height 0 du parent pour l'affichage de texte *\/\n  padding-right: var(--section-pad-h-dt); \/* Alignement parfait sur la grille *\/\n}\n\n\/* Style de lien \u00e9ditorial *\/\n.nk-editorial-inline-link {\n  color: inherit;\n  text-decoration: underline;\n  text-decoration-color: currentColor;\n  text-underline-offset: 4px;\n  text-decoration-thickness: 1px;\n  transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n  font-weight: normal;\n}\n\n.nk-editorial-inline-link:hover {\n  text-decoration-color: transparent;\n  opacity: 0.7;\n}\n\n\/* ==========================================================================\n   RESPONSIVE TABLETTE & MOBILE\n   ========================================================================== *\/\n@media (max-width: 1024px) {\n  .nk-simple-image__caption {\n    padding-right: var(--section-pad-h-tab);\n  }\n}\n\n@media (max-width: 767px) {\n  .nk-simple-image__caption {\n    padding-right: var(--section-pad-h-mob);\n    font-size: 0.85rem;\n  }\n}\n\n@media (max-width: 640px) {\n  .nk-simple-image__wrapper {\n    height: 60vh; \/* Hauteur optimis\u00e9e pour le format mobile *\/\n    min-height: 380px;\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-partner-showcase\">\n  <div class=\"nk-partner-showcase__inner\">\n    \n    <!-- Colonne 1 : Texte descriptif -->\n    <div class=\"nk-partner-showcase__text-col\">\n      <p class=\"nk-partner-showcase__paragraph\">\n        To orchestrate this project, the prestigious London-based firm <a href=\"https:\/\/studio-bernardi.com\/\" class=\"nk-intro__inline-link\" title=\"Discover Studio Bernardi\" target=\"_blank\" rel=\"noopener\">Gabriel Bernardi<\/a> infused a philosophy where the pursuit of beauty is central. For Studio Bernardi, beauty is neither a matter of fashion nor trend; it is about creating lasting harmony. Whether contemporary or classical, every project is guided by universal principles of proportion and balance, ensuring that every space transcends time without losing its grandeur.\n      <\/p>\n    <\/div>\n\n    <!-- Colonne 2 : Logo (Bloc blanc carr\u00e9) -->\n    <div class=\"nk-partner-showcase__logo-col\">\n      <div class=\"nk-partner-showcase__logo-wrapper\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Logo-Gabriel-Bernardi.jpg\" alt=\"Gabriel Bernardi Logo - Interior Architects\" class=\"nk-partner-showcase__logo-img\" loading=\"lazy\">\n      <\/div>\n    <\/div>\n\n    <!-- Colonne 3 : Photographie -->\n    <div class=\"nk-partner-showcase__photo-col\">\n      <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/rue-residentielle-typique-londres-appartement-facades-blanches-1536x1024.jpg\" alt=\"Typical white facades of a residential street in London, with a classic car\" class=\"nk-partner-showcase__photo-img\" loading=\"lazy\">\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<style>\n\/* ==========================================================================\n   DESIGN SYSTEM & VARIABLES LOCALES\n   ========================================================================== *\/\n:root {\n    --wp--preset--color--contrast: black;\n    \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\/* ==========================================================================\n   STYLES DU COMPOSANT\n   ========================================================================== *\/\n.nk-partner-showcase {\n  font-family: var(--font-montserrat);\n  background-color: var(--color-norki-beige);\n  padding: var(--section-pad-v-dt) var(--section-pad-h-dt);\n  width: 100%;\n  box-sizing: border-box;\n}\n\n\/* ==========================================================================\n   LAYOUT GRID PRINCIPAL (3 Colonnes)\n   ========================================================================== *\/\n.nk-partner-showcase__inner {\n  margin: 0 auto;\n  display: grid;\n  grid-template-columns: 22% 22% 47%; \n  justify-content: space-between;\n  align-items: start;\n  gap: clamp(20px, 3vw, 40px);\n}\n\n\/* ==========================================================================\n   COLONNE 1 : TEXTE\n   ========================================================================== *\/\n.nk-partner-showcase__text-col {\n  padding-top: 5px; \/* Micro-ajustement pour l'alignement optique avec le logo\/image *\/\n}\n\n.nk-partner-showcase__paragraph {\n  font-size: 0.95rem;\n  line-height: 1.6;\n  color: var(--wp--preset--color--contrast);\n  margin: 0;\n  text-align-last: left;\n  letter-spacing: -0.01em;\n}\n\n.nk-partner-showcase__paragraph strong {\n  font-weight: 600;\n  \/* Optionnel : tu peux appliquer la couleur brown ici si tu le souhaites *\/\n  \/* color: var(--color-norki-brown); *\/\n}\n\n\/* ==========================================================================\n   COLONNE 2 : LOGO\n   ========================================================================== *\/\n.nk-partner-showcase__logo-col {\n  width: 100%;\n  max-width: 550px;\n}\n\n.nk-partner-showcase__logo-wrapper {\n  background-color: #ffffff;\n  width: 100%;\n  aspect-ratio: 1 \/ 1; \/* Force le format carr\u00e9 vu sur la maquette *\/\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: 15%;\n  box-sizing: border-box;\n}\n\n.nk-partner-showcase__logo-img {\n  width: 100%;\n  height: auto;\n  max-height: 100%;\n  object-fit: contain;\n}\n\n\/* ==========================================================================\n   COLONNE 3 : PHOTOGRAPHIE\n   ========================================================================== *\/\n.nk-partner-showcase__photo-col {\n  width: 100%;\n  height: 100%;\n  max-width: 1000px;\n}\n\n.nk-partner-showcase__photo-img {\n  width: 100%;\n  height: auto; \/* Respecte le ratio naturel de l'image (paysage) *\/\n  display: block;\n  object-fit: cover;\n}\n\n\/* ==========================================================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n   ========================================================================== *\/\n@media (max-width: 1024px) {\n  .nk-partner-showcase {\n    padding: var(--section-pad-v-tab) var(--section-pad-h-tab);\n  }\n\n  .nk-partner-showcase__inner {\n    \/* Passage \u00e0 2 colonnes : Texte + Logo en haut, Image en bas *\/\n    grid-template-columns: 1fr 1fr;\n    gap: 30px;\n  }\n\n  .nk-partner-showcase__photo-col {\n    grid-column: 1 \/ -1; \/* L'image prend toute la largeur *\/\n  }\n}\n\n\/* ==========================================================================\n   RESPONSIVE MOBILE (\u2264 640px)\n   ========================================================================== *\/\n@media (max-width: 640px) {\n  .nk-partner-showcase {\n    padding: var(--section-pad-v-mob) var(--section-pad-h-mob);\n  }\n\n  .nk-partner-showcase__inner {\n    \/* Tout passe en 1 colonne empil\u00e9e *\/\n    grid-template-columns: 1fr;\n    gap: 24px;\n  }\n\n  .nk-partner-showcase__paragraph {\n    text-align: left; \/* On retire le justifi\u00e9 sur mobile pour la lisibilit\u00e9 *\/\n  }\n\n  .nk-partner-showcase__logo-wrapper {\n    padding: 20%;\n    max-width: 300px;\n    margin: 0 auto; \/* Centrage du logo carr\u00e9 sur mobile *\/\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-savoir-faire\">\n  <div class=\"nk-savoir-faire__inner\">\n    \n    <!-- Ligne 1 : En-t\u00eate (Titre + Texte) -->\n    <div class=\"nk-savoir-faire__header\">\n      <h2 class=\"nk-savoir-faire__title avenirmedium-font\">Norki\u2019s Savoir-Faire: Creating Bespoke Cowhide Sofas<\/h2>\n      <p class=\"nk-savoir-faire__paragraph\">\n        In the heart of the living room, the centerpiece of the project is undoubtedly the set of <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-intro__inline-link\" title=\"Discover custom upholstery\" target=\"_blank\" rel=\"noopener\">custom-made sofas<\/a> produced by <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/\" class=\"nk-intro__inline-link\" title=\"Discover Maison Norki bespoke creations\" target=\"_blank\" rel=\"noopener\">Norki Workshops<\/a>. Designing for a seaside project requires a specific approach to materials and palettes. To align with Gabriel Bernardi&rsquo;s vision, we selected a <strong>navy blue cowhide<\/strong> of rare depth to upholster the seats and backrests.\n      <\/p>\n    <\/div>\n\n    <!-- Ligne 2 : Grande image principale (Image 1) -->\n    <div class=\"nk-savoir-faire__main-image-wrapper\">\n      <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/canape-fauteuil-peau-de-vache-sur-mesure-norki.png\" alt=\"Living room with custom-made Norki sofas\" class=\"nk-savoir-faire__image\" loading=\"lazy\">\n    <\/div>\n\n    <!-- Ligne 3 : Deuxi\u00e8me image + Texte descriptif (Image 2) -->\n    <div class=\"nk-savoir-faire__details\">\n      <div class=\"nk-savoir-faire__secondary-image-wrapper\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/canape-fauteuil-peau-de-vache-sur-mesure-norki-crop.png\" alt=\"Detail of the sofas with white pony hair piping\" class=\"nk-savoir-faire__image\" loading=\"lazy\">\n      <\/div>\n      <div class=\"nk-savoir-faire__details-text\">\n        <p class=\"nk-savoir-faire__paragraph\">\n          The detail that highlights the exclusivity of this piece lies in the use of wide <strong>white pony hair<\/strong> piping. This striking contrast sculpts the sofa&rsquo;s silhouette, adding a graphic touch reminiscent of sea foam and nautical aesthetics, all while maintaining the timeless codes of the \u00ab\u00a0British touch.\u00a0\u00bb\n        <\/p>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<style>\n.nk-savoir-faire {\n  background-color: var(--color-norki-beige);\n  padding: var(--section-pad-v-dt) var(--section-pad-h-dt);\n  width: 100%;\n  box-sizing: border-box;\n}\n\n.nk-savoir-faire__inner {\n  margin: 0 auto;\n  display: flex;\n  flex-direction: column;\n  gap: 50px; \/* Espace vertical elegant et aere entre les blocs *\/\n}\n\n\/* ==========================================================================\n   EN-T\u00caTE (Titre + Texte intro)\n   ========================================================================== *\/\n.nk-savoir-faire__header {\n  max-width: 34%;\n}\n\n.nk-savoir-faire__title {\n  \/* Extrait du style de nk-intro__title *\/\n  font-family: var(--font-montserrat); \/* ou classe avenirmedium-font *\/\n  font-size: clamp(1.4rem, 2.2vw, 25px);\n  line-height: 1.25;\n  color: #000000;\n  font-weight: normal;\n  letter-spacing: -0.01em;\n  margin: 0 0 25px 0 !important;\n}\n\n.nk-savoir-faire__paragraph {\n  \/* Extrait du style de nk-intro__paragraph *\/\n  font-family: var(--font-montserrat);\n  font-size: 0.95rem;\n  line-height: 1.7;\n  color: #000000;\n  letter-spacing: 0.01em;\n  margin: 0;\n  text-align: left;\n}\n\n\/* Accentuation s\u00e9mantique harmonis\u00e9e *\/\n.nk-savoir-faire__paragraph strong {\n  font-weight: 600;\n}\n\n\/* ==========================================================================\n   EDITORIAL INLINE LINKS\n   ========================================================================== *\/\n.nk-editorial-inline-link {\n  \/* Harmonis\u00e9 avec le style 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-editorial-inline-link:hover {\n  text-decoration-color: transparent;\n  opacity: 0.7;\n}\n\n\/* ==========================================================================\n   IMAGE PRINCIPALE\n   ========================================================================== *\/\n.nk-savoir-faire__main-image-wrapper {\n  width: 100%;\n  max-width: 1000px;\n}\n\n.nk-savoir-faire__image {\n  width: 100%;\n  height: auto;\n  display: block;\n  object-fit: cover;\n}\n\n\/* ==========================================================================\n   D\u00c9TAILS (Image 2 + Texte)\n   ========================================================================== *\/\n.nk-savoir-faire__details {\n  display: grid;\n  grid-template-columns: 50% 43%;\n  justify-content: space-between;\n  align-items: start;\n  width: 63%;\n  gap: 30px;\n  max-width: 1000px;\n}\n\n.nk-savoir-faire__secondary-image-wrapper {\n  width: 100%;\n  max-width: 500px;\n}\n\n.nk-savoir-faire__details-text {\n  padding-top: 15px; \/* Aligne le haut du texte avec l'image *\/\n}\n\n\/* ==========================================================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n   ========================================================================== *\/\n@media (max-width: 1024px) {\n  .nk-savoir-faire {\n    padding: var(--section-pad-v-tab) var(--section-pad-h-tab);\n  }\n\n  .nk-savoir-faire__header {\n    max-width: 85%;\n  }\n\n  .nk-savoir-faire__details {\n    grid-template-columns: 50% 100%;\n    gap: 25px;\n  }\n}\n\n\/* ==========================================================================\n   RESPONSIVE MOBILE (\u2264 640px)\n   ========================================================================== *\/\n@media (max-width: 640px) {\n  .nk-savoir-faire {\n    padding: var(--section-pad-v-mob) var(--section-pad-h-mob);\n  }\n\n  .nk-savoir-faire__inner {\n    gap: 35px;\n  }\n\n  .nk-savoir-faire__header {\n    max-width: 100%;\n  }\n\n  .nk-savoir-faire__title {\n    margin-bottom: 15px !important;\n  }\n\n  \/* Rangement en 1 colonne pour l'empilement *\/\n  .nk-savoir-faire__details {\n    display: flex;\n    flex-direction: column;\n    gap: 25px;\n    width: 100%;\n  }\n\n  \/* mobile : titre+texte (deja en haut) puis image1 (au milieu) \n     puis texte descriptif puis image2 *\/\n  .nk-savoir-faire__details-text {\n    order: 1; \/* Le texte descriptif passe en premier *\/\n    padding-top: 0;\n  }\n  \n  .nk-savoir-faire__secondary-image-wrapper {\n    order: 2; \/* L'image 2 passe en second *\/\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-ingenierie\">\n  <div class=\"nk-ingenierie__inner\">\n    \n    <!-- Colonne Gauche : Texte align\u00e9 en bas -->\n    <div class=\"nk-ingenierie__col-left\">\n      <div class=\"nk-ingenierie__text-content\">\n        <h2 class=\"nk-ingenierie__title\">Design Engineering Dedicated<br>to Absolute Comfort<\/h2>\n        <p class=\"nk-ingenierie__paragraph\">\n          As Gabriel Bernardi Studio rightly emphasizes, \u00ab <span class=\"baskerville-italic-font\">beauty must also serve function<\/span> \u00bb. Our designs are engineered as much as they are envisioned. Every technical detail of the sofa has been meticulously studied to offer impeccable performance and exceptional longevity.\n        <\/p>\n        <p class=\"nk-ingenierie__paragraph\">\n          The alliance between Gabriel Bernardi\u2019s architectural vision and Norki\u2019s artisanal mastery has resulted in an interior where comfort is sovereign. Cowhide, a noble and durable material, adapts perfectly to the coastal atmosphere, offering an incomparable tactile softness. This project proves that luxury, when treated with simplicity and precision, becomes a timeless living experience, far removed from fleeting trends.\n        <\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Colonne Droite : Citation (en haut) + Image grande hauteur -->\n    <div class=\"nk-ingenierie__col-right\">\n      \n      <!-- Bloc Citation extrait de l'exemple et adapt\u00e9 -->\n      <div class=\"nk-ingenierie__quote-wrapper\">\n        <p class=\"nk-ingenierie__quote baskerville-italic-font\">Beauty must also serve function.<\/p>\n        \n      <\/div>\n      <p class=\"nk-ingenierie__signature bestermind-font \">Gabriel Bernardi<\/p>\n      <div class=\"nk-ingenierie__image-wrapper\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/big-white-kitchen-opened-on-a-garden-v2-1270x1536.png\" alt=\"Bright dining room interior by Gabriel Bernardi\" class=\"nk-ingenierie__image\" loading=\"lazy\" onerror=\"this.src='https:\/\/placehold.co\/800x1100\/f8f0ea\/50423d?text=Image+Salle+%C3%A0+Manger';\">\n      <\/div>\n      \n    <\/div>\n\n  <\/div>\n<\/section>\n\n<style>\n:root {\n    --wp--preset--color--contrast: black;\n    \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: #f5eee6; \/* Ajust\u00e9 \u00e0 la DA actuelle *\/\n    \n    --font-baskerville: 'Playfair Display', 'Baskerville', serif; \/* Playfair remplace Baskerville sur le web fr\u00e9quemment *\/\n    --font-montserrat: 'Montserrat', sans-serif;\n    --font-signature: 'Alex Brush', cursive;\n}\n\n\/* ==========================================================================\n   SECTION PRINCIPALE\n   ========================================================================== *\/\n.nk-ingenierie {\n  background-color: var(--color-norki-beige);\n  padding: var(--section-pad-v-dt) var(--section-pad-h-dt);\n  width: 100%;\n  box-sizing: border-box;\n}\n\n.nk-ingenierie__inner {\n  margin: 0 auto;\n  display: flex;\n  justify-content: flex-end;\n  align-items: flex-end; \n  gap: 5vw;\n}\n\n\/* ==========================================================================\n   COLONNE GAUCHE (Titre + Texte)\n   ========================================================================== *\/\n.nk-ingenierie__col-left {\n  width: 27%;\n  display: flex;\n  flex-direction: column;\n}\n\n\/* Typographie extraite de nk-intro (Savoir-faire) *\/\n.nk-ingenierie__title {\n  font-family: var(--font-montserrat);\n  font-size: clamp(1.4rem, 2.2vw, 28px);\n  line-height: 1.25;\n  color: #000000;\n  letter-spacing: -0.02em;\n  margin: 0 0 30px 0 !important;\n}\n\n.nk-ingenierie__paragraph {\n  font-family: var(--font-montserrat);\n  font-size: 0.95rem; \/* Taille classique requise *\/\n  line-height: 1.7;\n  color: #000000;\n  letter-spacing: 0.01em;\n  margin: 0 0 20px 0;\n  text-align: left;\n}\n\n.nk-ingenierie__paragraph:last-child {\n  margin-bottom: 0;\n}\n\n\/* ==========================================================================\n   COLONNE DROITE (Citation + Image)\n   ========================================================================== *\/\n.nk-ingenierie__col-right {\n  width: 42%;\n  display: flex;\n  flex-direction: column;\n  min-width: 600px;\n}\n\n\/* --- BLOC CITATION (Int\u00e9gration du syst\u00e8me de guillemets) --- *\/\n.nk-ingenierie__quote-wrapper {\n  position: relative;\n  padding: 0 50px; \/* Espace pour les guillemets absolus *\/\n  margin-bottom: 50px; \/* \u00c9cart avec l'image en dessous *\/\n  text-align: center;\n  align-self: center; \/* Centre le bloc de citation par rapport \u00e0 l'image *\/\n  max-width: 80%;\n}\n\n.nk-ingenierie__quote-wrapper::before,\n.nk-ingenierie__quote-wrapper::after {\n  font-family: \"Georgia\", serif !important;\n  font-size: 80px;\n  line-height: 0;\n  color: #000000;\n  position: absolute;\n}\n\n.nk-ingenierie__quote-wrapper::before {\n  content: '\\201C'; \/* Guillemet ouvrant anglais *\/\n  top: 30px;\n  left: 0;\n}\n\n.nk-ingenierie__quote-wrapper::after {\n  content: '\\201D'; \/* Guillemet fermant anglais *\/\n  bottom: -20px;\n  right: 0;\n}\n\n.nk-ingenierie__quote {\n  font-size: clamp(1.4rem, 2vw, 26px);\n  line-height: 1.3;\n  color: #000000;\n  margin: 0;\n}\n\n.nk-ingenierie__signature {\n  font-family: var(--font-signature);\n  font-size: clamp(2.5rem, 3.5vw, 45px);\n  color: #000000;\n  margin: 0;\n  line-height: 1;\n  line-height: 1.4;\n  margin-top: -20px;\n  margin-bottom: 30px;\n  text-align: center;\n}\n\n\/* --- IMAGE --- *\/\n.nk-ingenierie__image-wrapper {\n  width: 100%;\n  display: block;\n}\n\n.nk-ingenierie__image {\n  width: 100%;\n  height: auto;\n  display: block;\n  object-fit: cover;\n}\n\n\/* ==========================================================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n   ========================================================================== *\/\n@media (max-width: 1024px) {\n  .nk-ingenierie {\n    padding: var(--section-pad-v-tab) var(--section-pad-h-tab);\n  }\n\n  .nk-ingenierie__inner {\n    gap: 40px;\n  }\n\n  .nk-ingenierie__col-left {\n    width: 45%;\n  }\n\n  .nk-ingenierie__col-right {\n    width: 42%;\n    min-width: auto;\n  }\n\n  .nk-ingenierie__quote-wrapper {\n    max-width: 100%;\n    padding: 0 40px;\n  }\n}\n\n\/* ==========================================================================\n   RESPONSIVE MOBILE (\u2264 768px)\n   ========================================================================== *\/\n@media (max-width: 768px) {\n  .nk-ingenierie {\n    padding: var(--section-pad-v-mob) var(--section-pad-h-mob);\n  }\n\n  .nk-ingenierie__inner {\n    \/* Sur mobile, on inverse : Citation + Image en premier, puis le texte *\/\n    flex-direction: column-reverse;\n    align-items: flex-start;\n    gap: 40px;\n  }\n\n  .nk-ingenierie__col-left,\n  .nk-ingenierie__col-right {\n    width: 100%;\n  }\n\n  .nk-ingenierie__quote-wrapper {\n    margin-bottom: 35px;\n  }\n\n  .nk-ingenierie__quote-wrapper::before,\n  .nk-ingenierie__quote-wrapper::after {\n    font-size: 60px;\n  }\n\n  .nk-ingenierie__quote-wrapper::before { top: 25px; }\n  .nk-ingenierie__quote-wrapper::after { bottom: -12px; }\n  \n  .nk-ingenierie__title {\n    margin-bottom: 20px !important;\n  }\n}\n<\/style>\n\n\n\n<section class=\"nk-map\">\n    <div class=\"nk-map__inner\">\n        \n        <!-- Carte du monde (Masqu\u00e9e sur mobile) -->\n        <div class=\"nk-map__world\">\n            <a href=\"https:\/\/www.visitbrighton.com\/\" class=\"nk-map__world-link\" aria-label=\"View the villa project in Brighton on the world map\">\n                <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-du-monde-Brighton.png\" alt=\"World map locating Brighton\" 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                Villa Project in <span class=\"baskerville-italic-font\">Brighton<\/span>\n            <\/span>\n            <div class=\"nk-map__circle\">\n                <a href=\"https:\/\/www.visitbrighton.com\/\" class=\"nk-map__circle-link\" aria-label=\"Zoom in on the exceptional villa project in Brighton\">\n                    <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Carte-europe-Brighton.png\" alt=\"Zoom in on the map of Europe locating Brighton\" 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 (Modifi\u00e9)\n   Inspiration et structure de l'image de r\u00e9f\u00e9rence\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, #fcf3ee); \/* Fond beige clair comme image_0.png *\/\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    \/* Ratio PC : carte mondiale plus grande, puis colonne de d\u00e9tail *\/\n    grid-template-columns: 2fr 1fr;\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    \/* Bordure fine, style maquette *\/\n    border: 1px solid rgba(0, 0, 0, 0.6);\n    \/* Fond assorti \u00e0 la section *\/\n    background-color: var(--color-norki-beige, #fcf3ee);\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    \/* Cadrage optimal pour centrer Brighton sur la carte Europe fourni *\/\n    object-position: center center;\n    \/* Transition d'animation HoverZoom issue de la DA *\/\n    transition: transform 0.6s ease;\n}\n\n\/* Animation d'impact au survol sur le zoom circulaire *\/\n.nk-map__circle-link:hover .nk-map__circle-img {\n    transform: scale(1.03); \/* HoverZoom standard *\/\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-map {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-tab, 60px);\n        padding-left: var(--section-pad-h-tab, 4vw);\n        padding-right: var(--section-pad-h-tab, 4vw);\n    }\n    \n    .nk-map__inner {\n        gap: 15px; \/* \u00c9cart ajust\u00e9 \u00e9galement sur tablette *\/\n    }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-map {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-mob, 50px);\n        padding-left: var(--section-pad-h-mob, 20px);\n        padding-right: var(--section-pad-h-mob, 20px);\n    }\n\n    .nk-map__inner {\n        grid-template-columns: 1fr; \/* Passage sur une seule colonne *\/\n    }\n\n    \/* Masquage de la carte du monde globale sur mobile *\/\n    .nk-map__world {\n        display: none;\n    }\n\n    .nk-map__detail {\n        margin: 0 auto;\n    }\n\n    .nk-map__title {\n        font-size: 1.4rem;\n        margin-bottom: 30px;\n    }\n    \n    .nk-map__circle {\n        max-width: 320px; \/* Taille l\u00e9g\u00e8rement ajust\u00e9e pour les petits \u00e9crans *\/\n    }\n}\n<\/style>\n\n\n\n<section class=\"nk-sfa\">\n    <div class=\"nk-sfa__container\">\n        \n        <!-- En-t\u00eate : Titre (Gauche) + Fl\u00e8ches (Droite) -->\n        <div class=\"nk-sfa__header\">\n            <h2 class=\"nk-sfa__title avenirmedium-font\">\n                Our <span class=\"baskerville-italic-font\">associated expertise<\/span>\n            <\/h2>\n            \n            <!-- Navigation sur la m\u00eame ligne que le titre -->\n            <div class=\"nk-sfa__nav-bar\">\n                <div class=\"nk-sfa__arrows\">\n                    <button class=\"nk-sfa__prev\" aria-label=\"Previous slide\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"nk-sfa__next\" aria-label=\"Next slide\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section Carrousel -->\n        <div class=\"nk-sfa__slider-area\" id=\"sfa-slider\">\n            <div class=\"nk-sfa__carousel-viewport\">\n                <div class=\"nk-sfa__carousel-track\">\n                    \n                    <!-- Slide 1 : Couture d'ameublement -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"nk-sfa__image-link\" aria-label=\"Discover our expertise in Furnishing Couture\">\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=\"Furnishing Couture detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Furnishing Couture<\/p>\n                            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-soft-furnishings-curtains\/\" class=\"nk-sfa__link\">Discover<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 : Tapisserie d'ameublement -->\n                    <article class=\"nk-sfa__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-sfa__image-link\" aria-label=\"Discover our expertise in Upholstery\">\n                            <img decoding=\"async\" data-src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/atelier-tapisserie-ameublement-sur-mesure-norki.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Upholstery detail\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"nk-sfa__caption\">\n                            <p class=\"nk-sfa__caption-title baskerville-italic-font\">Upholstery<\/p>\n                            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/bespoke-upholstery-services\/\" class=\"nk-sfa__link\">Discover<\/a>\n                        <\/div>\n                    <\/article>\n                    \n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* ============================================\n   COMPOSANT : SAVOIR-FAIRE ASSOCI\u00c9S\n============================================ *\/\n.nk-sfa {\n    padding-top: 0;\n    padding-bottom: var(--section-pad-v-dt, 80px);\n    padding-left: var(--section-pad-h-dt, 5vw);\n    padding-right: var(--section-pad-h-dt, 5vw);\n    background-color: var(--color-norki-beige, #f8f0ea);\n    color: #000000;\n    box-sizing: border-box;\n    overflow: hidden;\n}\n\n.nk-sfa * {\n    box-sizing: border-box;\n}\n\n.nk-sfa__container {\n    margin: 0 auto;\n    width: 100%;\n}\n\n\/* --- EN-T\u00caTE --- *\/\n.nk-sfa__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    margin-bottom: 50px;\n    gap: 15px;\n}\n\n.nk-sfa__title {\n    font-size: clamp(1.4rem, 2.5vw, 35px);\n    font-weight: normal;\n    margin: 0;\n    letter-spacing: -0.01em;\n    line-height: 1.25;\n}\n\n\/* --- NAVIGATION --- *\/\n.nk-sfa__nav-bar {\n    display: flex;\n    align-items: center;\n}\n\n.nk-sfa__arrows {\n    display: flex;\n    gap: 15px;\n    margin-right: -12px;\n}\n\n.nk-sfa__arrows button {\n    background: none;\n    border: none;\n    color: #000000;\n    cursor: pointer;\n    padding: 5px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: opacity 0.3s ease;\n}\n\n.nk-sfa__arrows button:hover { opacity: 0.6; }\n\n.nk-sfa__arrows svg {\n    width: 26px;\n    height: 26px;\n    fill: none;\n    stroke: currentColor;\n    stroke-width: 1.2;\n}\n\n\/* --- CARROUSEL --- *\/\n.nk-sfa__slider-area {\n    position: relative;\n    width: 100%;\n}\n\n.nk-sfa__carousel-viewport {\n    overflow: hidden;\n    touch-action: pan-y;\n    margin: 0 -15px;\n}\n\n.nk-sfa__carousel-track {\n    display: flex;\n    will-change: transform;\n}\n\n.nk-sfa__slide {\n    padding: 0 15px;\n    display: flex;\n    flex-direction: column;\n}\n\n\/* --- ENCAPSULATION DESIGN SYSTEM DES IMAGES --- *\/\n.nk-sfa__image-link {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    overflow: hidden;\n    border-radius: 4px;\n    background-color: rgba(0, 0, 0, 0.05);\n    position: relative;\n}\n\n\/* FORMAT CARR\u00c9 ET ANIMATIONS *\/\n.nk-sfa__slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center;\n    display: block;\n    opacity: 0;\n    transition: opacity 0.5s ease-in-out, transform 0.6s ease;\n    will-change: opacity, transform;\n}\n\n.nk-sfa__slide img.norki-loaded {\n    opacity: 1;\n}\n\n.nk-sfa__image-link:hover img {\n    transform: scale(1.03);\n}\n\n\/* --- CAPTIONS SOUS LES IMAGES --- *\/\n.nk-sfa__caption {\n    text-align: center;\n    padding-top: 25px;\n}\n\n.nk-sfa__caption-title {\n    font-size: clamp(1.2rem, 1.5vw, 22px);\n    font-weight: normal;\n    margin: 0 0 6px 0 !important;\n    color: #000000;\n}\n\n.nk-sfa__link {\n    font-size: 0.95rem;\n    color: #000000;\n    text-decoration: underline;\n    text-underline-offset: 3px;\n    text-decoration-thickness: 1.5px;\n    text-decoration-color: #000000;\n    transition: opacity 0.3s ease, text-decoration-color 0.3s ease;\n    display: inline-block;\n}\n\n.nk-sfa__link:hover {\n    opacity: 0.7;\n    text-decoration-color: transparent;\n}\n\n\/* ============================================\n   RESPONSIVE TABLETTE (\u2264 1024px)\n============================================ *\/\n@media (max-width: 1024px) {\n    .nk-sfa {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-tab, 60px);\n        padding-left: var(--section-pad-h-tab, 4vw);\n        padding-right: var(--section-pad-h-tab, 4vw);\n    }\n    \n    .nk-sfa__header {\n        margin-bottom: 30px;\n    }\n\n    .nk-sfa__arrows button:hover,\n    .nk-sfa__arrows button:active,\n    .nk-sfa__arrows button:focus {\n        opacity: 1 !important;\n    }\n}\n\n\/* ============================================\n   RESPONSIVE MOBILE (\u2264 768px)\n============================================ *\/\n@media (max-width: 768px) {\n    .nk-sfa {\n        padding-top: 0;\n        padding-bottom: var(--section-pad-v-mob, 50px);\n        padding-left: var(--section-pad-h-mob, 20px);\n        padding-right: var(--section-pad-h-mob, 20px);\n    }\n\n    .nk-sfa__header {\n        align-items: center;\n        margin-bottom: 25px;\n    }\n\n    .nk-sfa__title {\n        font-size: clamp(1.1rem, 4.5vw, 1.4rem);\n    }\n\n    .nk-sfa__arrows {\n        margin-right: -5px;\n        gap: 10px;\n    }\n\n    .nk-sfa__arrows svg {\n        width: 22px;\n        height: 22px;\n    }\n\n    .nk-sfa__carousel-viewport {\n        margin: 0 -5px;\n    }\n\n    .nk-sfa__slide {\n        padding: 0 5px;\n    }\n\n    .nk-sfa__caption {\n        padding-top: 15px;\n    }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n\n    \/* =========================================================\n       GESTION DU CARROUSEL (Adaptatif 3 \/ 2 \/ 1)\n       ========================================================= *\/\n    const container = document.getElementById('sfa-slider');\n    if (!container) return;\n\n    const section = container.closest('.nk-sfa');\n    const track = container.querySelector('.nk-sfa__carousel-track');\n    const originalSlides = Array.from(container.querySelectorAll('.nk-sfa__slide'));\n    const totalOriginal = originalSlides.length;\n    const navBar = section.querySelector('.nk-sfa__nav-bar');\n\n    \/\/ Clonage pour l'effet de boucle infinie\n    originalSlides.forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n        track.appendChild(clone);\n    });\n    originalSlides.slice().reverse().forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n        track.insertBefore(clone, track.firstChild);\n    });\n\n    const allSlides = Array.from(container.querySelectorAll('.nk-sfa__slide'));\n\n    const getSlidesPerView = () => {\n        if (window.innerWidth > 1024) return 3; \/\/ PC\n        if (window.innerWidth > 768) return 2;  \/\/ Tablette\n        return 1;                               \/\/ Mobile\n    };\n\n    let itemsPerView = getSlidesPerView();\n    let itemWidthPct = 100 \/ itemsPerView;\n    allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n    \n    let currentIndex = totalOriginal; \n    let isAnimating = false;\n\n    \/\/ Mise \u00e0 jour de l'affichage global (G\u00e8re intelligemment le cas o\u00f9 il y a un espace vide)\n    const updateCarousel = (instant = false) => {\n        const clones = track.querySelectorAll('.norki-clone');\n\n        \/\/ Si tout rentre dans l'\u00e9cran (ex: 2 slides sur PC qui en demande 3)\n        if (itemsPerView >= totalOriginal) {\n            navBar.style.display = 'none'; \/\/ Cache les fl\u00e8ches\n            clones.forEach(c => c.style.display = 'none'); \/\/ Cache les clones\n            track.style.transition = 'none';\n            track.style.transform = `translateX(0)`; \/\/ Aligne les slides \u00e0 gauche\n            return;\n        }\n\n        \/\/ Sinon, le carrousel est actif (ex: Mobile)\n        navBar.style.display = 'flex';\n        clones.forEach(c => c.style.display = ''); \/\/ R\u00e9affiche les clones\n        \n        track.style.transition = instant ? 'none' : 'transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)';\n        track.style.transform = `translateX(-${currentIndex * itemWidthPct}%)`;\n    };\n\n    updateCarousel(true);\n\n    const moveNext = () => {\n        if (isAnimating || itemsPerView >= totalOriginal) return;\n        isAnimating = true;\n        currentIndex++;\n        updateCarousel();\n    };\n\n    const movePrev = () => {\n        if (isAnimating || itemsPerView >= totalOriginal) return;\n        isAnimating = true;\n        currentIndex--;\n        updateCarousel();\n    };\n\n    section.querySelector('.nk-sfa__next').addEventListener('click', moveNext);\n    section.querySelector('.nk-sfa__prev').addEventListener('click', movePrev);\n\n    track.addEventListener('transitionend', (e) => {\n        if (e.propertyName !== 'transform') return;\n        isAnimating = false;\n        \n        if (currentIndex <= 0) {\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        } \n        else if (currentIndex >= totalOriginal * 2) {\n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Gestion Resize\n    window.addEventListener('resize', () => {\n        const newItemsPerView = getSlidesPerView();\n        if (newItemsPerView !== itemsPerView) {\n            itemsPerView = newItemsPerView;\n            itemWidthPct = 100 \/ itemsPerView;\n            allSlides.forEach(s => s.style.flex = `0 0 ${itemWidthPct}%`);\n            \n            currentIndex = totalOriginal;\n            updateCarousel(true);\n        }\n    });\n\n    \/\/ Gestion Swipe Tactile\n    let startX = 0, endX = 0;\n    const swipeThreshold = 40;\n\n    track.addEventListener('touchstart', (e) => {\n        if (itemsPerView >= totalOriginal) return; \n        startX = e.touches[0].clientX;\n    }, { passive: true });\n    \n    track.addEventListener('touchend', (e) => {\n        if (itemsPerView >= totalOriginal) return;\n        endX = e.changedTouches[0].clientX;\n        const diff = startX - endX;\n        if (Math.abs(diff) > swipeThreshold) {\n            if (diff > 0) moveNext();\n            else movePrev();\n        }\n    });\n\n    \/* =========================================================\n       LAZY LOADING DES IMAGES\n       ========================================================= *\/\n    const imageObserver = new IntersectionObserver((entries, observer) => {\n        entries.forEach(entry => {\n            if (entry.isIntersecting) {\n                const img = entry.target;\n                if (img.dataset.src) {\n                    img.onload = () => img.classList.add('norki-loaded');\n                    img.src = img.dataset.src;\n                    img.removeAttribute('data-src');\n                    observer.unobserve(img);\n                }\n            }\n        });\n    }, { root: null, rootMargin: '0px 100% 0px 100%', threshold: 0 });\n    \n    document.querySelectorAll('.norki-lazy').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<style>\n    \/* ==========================================================================\n       COMPOSANT : S\u00c9LECTION D'OBJETS ISOL\u00c9\n       ========================================================================== *\/\n    .norki-sel-objets {\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    .norki-sel-objets * {\n        box-sizing: border-box;\n    }\n\n    .norki-sel-objets__container {\n        margin: 0 auto;\n        width: 100%;\n    }\n\n    \/* --- EN-T\u00caTE --- *\/\n    .norki-sel-objets__header {\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-end;\n        margin-bottom: 50px;\n        gap: 15px;\n    }\n\n    .norki-sel-objets__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    .norki-sel-objets__nav-bar {\n        display: flex;\n        align-items: center;\n    }\n\n    .norki-sel-objets__arrows {\n        display: flex;\n        gap: 15px;\n        margin-right: -12px;\n    }\n\n    .norki-sel-objets__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    .norki-sel-objets__arrows button:hover { opacity: 0.6; }\n\n    .norki-sel-objets__arrows svg {\n        width: 26px;\n        height: 26px;\n        fill: none;\n        stroke: currentColor;\n        stroke-width: 1.2;\n    }\n\n    \/* --- CARROUSEL --- *\/\n    .norki-sel-objets__slider-area {\n        position: relative;\n        width: 100%;\n    }\n\n    .norki-sel-objets__carousel-viewport {\n        overflow: hidden;\n        touch-action: pan-y;\n        margin: 0 -15px;\n    }\n\n    .norki-sel-objets__carousel-track {\n        display: flex;\n        will-change: transform;\n    }\n\n    .norki-sel-objets__slide {\n        padding: 0 15px;\n        display: flex;\n        flex-direction: column;\n    }\n\n    \/* --- ENCAPSULATION DESIGN SYSTEM DES IMAGES --- *\/\n    .norki-sel-objets__image-link {\n        display: block;\n        width: 100%;\n        aspect-ratio: 1 \/ 1;\n        overflow: hidden;\n        border-radius: 4px;\n        background-color: rgba(0, 0, 0, 0.04);\n        position: relative;\n    }\n\n    .norki-sel-objets__slide img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        object-position: center;\n        display: block;\n        opacity: 0;\n        transition: opacity 0.5s ease-in-out, transform 0.6s ease;\n        will-change: opacity, transform;\n    }\n\n    .norki-sel-objets__slide img.norki-loaded {\n        opacity: 1;\n    }\n\n    .norki-sel-objets__image-link:hover img {\n        transform: scale(1.03);\n    }\n\n    \/* --- CAPTIONS SOUS LES IMAGES --- *\/\n    .norki-sel-objets__caption {\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        padding-top: 20px;\n        padding-left: 23px;\n        padding-right: 23px;\n        font-size: 0.95rem;\n        color: #000000;\n    }\n\n    .norki-sel-objets__product-name {\n        font-weight: 500;\n        letter-spacing: 0.02em;\n    }\n\n    \/* Transition fluide de d\u00e9-soulignement DA *\/\n    .norki-sel-objets__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        white-space: nowrap;\n    }\n\n    .norki-sel-objets__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        .norki-sel-objets {\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        .norki-sel-objets__header {\n            margin-bottom: 30px;\n        }\n\n        .norki-sel-objets__caption {\n            padding-left: 20px;\n            padding-right: 20px;\n        }\n\n        .norki-sel-objets__arrows button:hover,\n        .norki-sel-objets__arrows button:active,\n        .norki-sel-objets__arrows button:focus {\n            opacity: 1 !important;\n        }\n    }\n\n    \/* ============================================\n       RESPONSIVE MOBILE (\u2264 768px)\n       ============================================ *\/\n    @media (max-width: 768px) {\n        .norki-sel-objets {\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        .norki-sel-objets__header {\n            align-items: center;\n            margin-bottom: 25px;\n        }\n\n        .norki-sel-objets__title {\n            font-size: clamp(1.1rem, 4.5vw, 1.4rem);\n        }\n\n        .norki-sel-objets__arrows {\n            margin-right: -5px;\n            gap: 10px;\n        }\n\n        .norki-sel-objets__arrows svg {\n            width: 22px;\n            height: 22px;\n        }\n\n        .norki-sel-objets__carousel-viewport {\n            margin: 0 -5px;\n        }\n\n        .norki-sel-objets__slide {\n            padding: 0 5px;\n        }\n\n        .norki-sel-objets__caption {\n            padding-top: 15px;\n            padding-left: 10px;\n            padding-right: 10px;\n        }\n    }\n<\/style>\n\n<section class=\"norki-sel-objets\">\n    <div class=\"norki-sel-objets__container\">\n        \n        <!-- En-t\u00eate : Titre (Gauche) + Fl\u00e8ches (Droite) -->\n        <div class=\"norki-sel-objets__header\">\n            <h2 class=\"norki-sel-objets__title avenirmedium-font\">\n                Our selection of <span class=\"baskerville-italic-font\">objects<\/span>\n            <\/h2>\n            \n            <!-- Navigation sur la m\u00eame ligne que le titre -->\n            <div class=\"norki-sel-objets__nav-bar\">\n                <div class=\"norki-sel-objets__arrows\">\n                    <button class=\"norki-sel-objets__prev\" aria-label=\"Previous slide\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n                    <\/button>\n                    <button class=\"norki-sel-objets__next\" aria-label=\"Next slide\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section Carrousel -->\n        <div class=\"norki-sel-objets__slider-area\" id=\"norki-sel-objets-slider\">\n            <div class=\"norki-sel-objets__carousel-viewport\">\n                <div class=\"norki-sel-objets__carousel-track\">\n                    \n                    <!-- Slide 1 : Canap\u00e9 Montaigne -->\n                    <article class=\"norki-sel-objets__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/sofas-soft-textures-collection-norki\/96-montaigne-sofa-norki-club-sheepskin.html\" class=\"norki-sel-objets__image-link\" aria-label=\"Discover the Montaigne Sofa\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/canape-blanc-style-club-norki-1.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Exceptional Montaigne Sofa Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"norki-sel-objets__caption avenirmedium-font\">\n                            <span class=\"norki-sel-objets__product-name\">Montaigne Sofa<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/sofas-soft-textures-collection-norki\/96-montaigne-sofa-norki-club-sheepskin.html\" class=\"norki-sel-objets__link\">Buy<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 2 : Tapis Saint-Peter -->\n                    <article class=\"norki-sel-objets__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/iconic-rugs-hides-norki\/156-green-saint-peter-rug-norki-colors-leather.html\" class=\"norki-sel-objets__image-link\" aria-label=\"Discover the Saint-Peter Rug\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/tapis-peau-de-vache-contemporain.jpg\" src=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1 1'%3E%3C\/svg%3E\" alt=\"Exceptional Green Saint-Peter Rug Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"norki-sel-objets__caption avenirmedium-font\">\n                            <span class=\"norki-sel-objets__product-name\">Saint-Peter Rug<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/iconic-rugs-hides-norki\/156-green-saint-peter-rug-norki-colors-leather.html\" class=\"norki-sel-objets__link\">Buy<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 3 : Coussin Saint-Peter -->\n                    <article class=\"norki-sel-objets__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/high-end-designer-cushion\/135-saint-peter-blue-cushion-norki-velvet-lambskin.html\" class=\"norki-sel-objets__image-link\" aria-label=\"Discover the Saint-Peter Cushion\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Coussin_Photo-Principale-SaintPeter-Bleu_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=\"Blue Saint-Peter Cushion Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"norki-sel-objets__caption avenirmedium-font\">\n                            <span class=\"norki-sel-objets__product-name\">Saint-Peter Cushion<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/high-end-designer-cushion\/135-saint-peter-blue-cushion-norki-velvet-lambskin.html\" class=\"norki-sel-objets__link\">Buy<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 4 : Coussin Signature Blanc -->\n                    <article class=\"norki-sel-objets__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/high-end-designer-cushion\/140-nomadic-ball-signature-cushion-white-norki.html\" class=\"norki-sel-objets__image-link\" aria-label=\"Discover the White Signature Cushion\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Coussin_Photo-Principale-Signature-Blanc_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=\"White Signature Nomadic Ball Cushion Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"norki-sel-objets__caption avenirmedium-font\">\n                            <span class=\"norki-sel-objets__product-name\">White Signature Cushion<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/high-end-designer-cushion\/140-nomadic-ball-signature-cushion-white-norki.html\" class=\"norki-sel-objets__link\">Buy<\/a>\n                        <\/div>\n                    <\/article>\n\n                    <!-- Slide 5 : Fauteuil Edmond -->\n                    <article class=\"norki-sel-objets__slide\">\n                        <a href=\"https:\/\/www.norki.com\/en\/luxury-modern-armchairs-collection-norki\/124-edmond-wingback-armchair-norki-shearling.html\" class=\"norki-sel-objets__image-link\" aria-label=\"Discover the Edmond Armchair\">\n                            <img decoding=\"async\" data-src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Assise_Photo-Principale-Fauteuil-EDMOND_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=\"Edmond Shearling Armchair Norki\" class=\"norki-lazy\">\n                        <\/a>\n                        <div class=\"norki-sel-objets__caption avenirmedium-font\">\n                            <span class=\"norki-sel-objets__product-name\">Edmond Armchair<\/span>\n                            <a href=\"https:\/\/www.norki.com\/en\/luxury-modern-armchairs-collection-norki\/124-edmond-wingback-armchair-norki-shearling.html\" class=\"norki-sel-objets__link\">Buy<\/a>\n                        <\/div>\n                    <\/article>\n\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n\n    const container = document.getElementById('norki-sel-objets-slider');\n    if (!container) return;\n\n    const section = container.closest('.norki-sel-objets');\n    const track = container.querySelector('.norki-sel-objets__carousel-track');\n    const originalSlides = Array.from(container.querySelectorAll('.norki-sel-objets__slide'));\n    const totalOriginal = originalSlides.length;\n    const navBar = section.querySelector('.norki-sel-objets__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-sel-objets-clone');\n        clone.setAttribute('aria-hidden', 'true');\n        clone.querySelectorAll('a').forEach(link => link.setAttribute('tabindex', '-1'));\n        track.appendChild(clone);\n    });\n    originalSlides.slice().reverse().forEach(slide => {\n        const clone = slide.cloneNode(true);\n        clone.classList.add('norki-sel-objets-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('.norki-sel-objets__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    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    section.querySelector('.norki-sel-objets__next').addEventListener('click', moveNext);\n    section.querySelector('.norki-sel-objets__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 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    \/\/ 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    \/\/ Lazy Loading des images de la section\n    const imageObserver = new IntersectionObserver((entries, observer) => {\n        entries.forEach(entry => {\n            if (entry.isIntersecting) {\n                const img = entry.target;\n                if (img.dataset.src) {\n                    img.onload = () => img.classList.add('norki-loaded');\n                    img.src = img.dataset.src;\n                    img.removeAttribute('data-src');\n                    observer.unobserve(img);\n                }\n            }\n        });\n    }, { root: null, rootMargin: '0px 100% 0px 100%', threshold: 0 });\n    \n    document.querySelectorAll('.norki-lazy').forEach(img => {\n        imageObserver.observe(img);\n    });\n\n});\n<\/script>\n\n\n\n<div class=\"nk-hotels-showcase\">\n    \n    <!-- Image Sup\u00e9rieure avec D\u00e9grad\u00e9 -->\n    <section class=\"nk-hs-hero\">\n        <img decoding=\"async\" src=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/Fauteuil-vintage-Athena-Calderone.png\" alt=\"Vintage armchair Athena Calderone\" class=\"nk-hs-hero__img\">\n        <div class=\"nk-hs-hero__fade\"><\/div>\n    <\/section>\n\n    <!-- ==========================================\n         BLOC HTML - S\u00c9MANTIQUE & INDEXABILIT\u00c9\n         ========================================== -->\n    <section id=\"wp-custom-projects-slider\" class=\"wp-custom-projects-slider-container\" aria-label=\"Our Seaside Projects\">\n        \n        <!-- Bloc Information -->\n        <div class=\"projects-info\">\n            <h2 class=\"avenirmedium-font\">Explore all our <br><span class=\"baskerville-italic-font\">Seaside Projects<\/span><\/h2>\n            <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/\" class=\"link-voir-tout\">Discover all<\/a>\n        <\/div>\n\n        <!-- Zone Slider -->\n        <div class=\"projects-slider\">\n            <button class=\"nav-arrow left-arrow\" aria-label=\"Previous project\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n            <button class=\"nav-arrow right-arrow\" aria-label=\"Next project\">\n                <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/themes\/twentytwentyfour\/assets\/images\/arrow-right.svg\" alt=\"\" aria-hidden=\"true\">\n            <\/button>\n\n            <!-- Slide 1 : Maison \u00e0 Knokke -->\n            <article class=\"slide is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/Tapis-Khan-Blanc-dans-Maison-cubique-belgique.jpg\" alt=\"Cubic Spirit - House in Knokke\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Knokke<\/span>\n                        <h3>Cubic Spirit<\/h3>\n                        <p>House in Knokke<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Discover<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 2 : Hamptons, Amagansett (Active par d\u00e9faut) -->\n            <article class=\"slide active\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/athena-calderone-interior-design-house-1-1-2048x1106.jpg\" alt=\"Contemporary House - Hamptons, Amagansett\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Hamptons<\/span>\n                        <h3>Contemporary House<\/h3>\n                        <p>Hamptons, Amagansett<\/p>\n                    <\/div>\n                    <a href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/athena-calderone-hamptons\/\" class=\"link-voir\">Discover<\/a>\n                <\/div>\n            <\/article>\n\n            <!-- Slide 3 : Villa sur l'\u00cele de Zante -->\n            <article class=\"slide is-coming-soon\">\n                <div class=\"slide-img-wrapper\">\n                    <img decoding=\"async\" src=\"https:\/\/norki.com\/sur-mesure\/wp-content\/uploads\/2026\/05\/vintage-shearling-bespoke-sofa-2-2048x1559.jpg\" alt=\"Contemporary decor - Villa on Zante Island\">\n                <\/div>\n                <div class=\"slide-content\">\n                    <div class=\"slide-content-text\">\n                        <span class=\"slide-city\">Zante<\/span>\n                        <h3>Contemporary decor<\/h3>\n                        <p>Villa on Zante Island<\/p>\n                    <\/div>\n                    <a href=\"#\" class=\"link-voir\">Discover<\/a>\n                <\/div>\n            <\/article>\n\n        <\/div>\n    <\/section>\n\n<\/div>\n\n<style>\n    \/* ==========================================\n       HERO TOP IMAGE\n       ========================================== *\/\n    .nk-hotels-showcase {\n        width: 100%;\n        background-color: var(--color-norki-brown, #50423d);\n    }\n\n    .nk-hs-hero {\n        position: relative;\n        width: 100%;\n        height: 75vh;\n        background-color: #000;\n    }\n\n    .nk-hs-hero__img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        object-position: center 67%;\n        display: block;\n    }\n\n    .nk-hs-hero__fade {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 45%;\n        background: linear-gradient(to bottom, rgba(80, 66, 61, 0) 0%, var(--color-norki-brown, #50423d) 100%);\n        z-index: 2;\n        pointer-events: none;\n    }\n\n    \/* ==========================================\n       VARIABLES CSS & SLIDER STYLES\n       ========================================== *\/\n    .wp-custom-projects-slider-container {\n        --bg-section: var(--color-norki-brown, #50423d);\n        --text-light: #ffffff;\n        --text-muted: #d3ccc7;\n        --text-dark: var(--color-norki-beige, #f8f0ea);\n        --font-primary: Arial, sans-serif;\n        --font-secondary: serif;\n        --radius-img: 4px;\n        \n        box-sizing: border-box;\n        position: relative;\n        background-color: var(--bg-section);\n        width: 100%;\n        height: 100vh;\n        min-height: 850px;\n        color: var(--text-light);\n        font-family: var(--font-primary);\n        overflow: hidden;\n    }\n\n    .wp-custom-projects-slider-container *, \n    .wp-custom-projects-slider-container *::before, \n    .wp-custom-projects-slider-container *::after {\n        box-sizing: inherit;\n        margin: 0;\n        padding: 0;\n    }\n\n    .wp-custom-projects-slider-container .projects-info {\n        position: absolute;\n        top: 130px;\n        left: 50px;\n        width: 360px;\n        z-index: 10;\n    }\n\n    .wp-custom-projects-slider-container .projects-info h2 {\n        font-size: 35px;\n        font-weight: normal;\n        margin-bottom: 20px;\n        color: var(--text-dark);\n        line-height: 1.15;\n    }\n\n    .wp-custom-projects-slider-container .projects-info h2 span {\n        font-family: \"LibreBaskervilleItalic\", sans-serif;\n    }\n\n    .wp-custom-projects-slider-container .link-voir-tout {\n        font-size: 0.95rem;\n        color: var(--text-light);\n        text-decoration: underline;\n        text-decoration-color: currentColor;\n        text-underline-offset: 3px;\n        text-decoration-thickness: 1px;\n        transition: text-decoration-color 0.3s ease, opacity 0.3s ease;\n    }\n\n    .wp-custom-projects-slider-container .link-voir-tout:hover {\n        text-decoration-color: transparent;\n        opacity: 0.7;\n    }\n\n    .wp-custom-projects-slider-container .nav-arrow {\n        position: absolute;\n        top: 33%;\n        transform: translateY(-50%);\n        background: transparent;\n        border: none;\n        cursor: pointer;\n        z-index: 15;\n        transition: opacity 0.2s ease, transform 0.2s ease;\n        padding: 10px;\n        opacity: 0.7;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .wp-custom-projects-slider-container .nav-arrow img {\n        width: 20px; \n        height: 20px;\n        display: block;\n        filter: brightness(0) invert(1);\n    }\n\n    .wp-custom-projects-slider-container .left-arrow img {\n        transform: scaleX(-1);\n    }\n\n    @media (hover: hover) {\n        .wp-custom-projects-slider-container .nav-arrow:hover {\n            opacity: 1;\n            transform: translateY(-50%) scale(1.1);\n        }\n    }\n\n    .wp-custom-projects-slider-container .nav-arrow:active {\n        opacity: 0.4 !important;\n        transform: translateY(-50%) scale(0.9) !important;\n        transition: none !important;\n    }\n\n    .wp-custom-projects-slider-container .left-arrow { left: 30px; }\n    .wp-custom-projects-slider-container .right-arrow { right: 30px; }\n\n    .wp-custom-projects-slider-container .projects-slider {\n        position: absolute;\n        bottom: 40px; \n        width: 100vw;\n        height: 80vh; \n        display: flex;\n        align-items: flex-end;\n        justify-content: center;\n    }\n\n    .wp-custom-projects-slider-container .slide {\n        position: absolute;\n        bottom: 0;\n        height: 50vh;\n        width: auto;\n        aspect-ratio: 1272 \/ 1140;\n        transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);\n        opacity: 0;\n        visibility: hidden;\n        z-index: 0;\n    }\n\n    .wp-custom-projects-slider-container .slide-img-wrapper {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        overflow: hidden;\n        border-radius: var(--radius-img);\n        z-index: 0;\n    }\n\n    .wp-custom-projects-slider-container .slide img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n        border-radius: var(--radius-img);\n        transition: transform 0.5s ease;\n    }\n\n    \/* --- HOVER & COMING SOON --- *\/\n    .wp-custom-projects-slider-container .slide.active:not(.is-coming-soon):hover img {\n        transform: scale(1.03);\n    }\n\n    .wp-custom-projects-slider-container .slide.is-coming-soon,\n    .wp-custom-projects-slider-container .slide.active.is-coming-soon {\n        cursor: not-allowed !important;\n    }\n\n    .wp-custom-projects-slider-container .slide.is-coming-soon img {\n        opacity: 0.7;\n    }\n\n    \/* Tooltip ::before au lieu de ::after pour pr\u00e9server le d\u00e9grad\u00e9 sombre *\/\n    .wp-custom-projects-slider-container .slide.active.is-coming-soon:hover::before {\n        content: \"Page en cours de cr\u00e9ation\";\n        position: absolute;\n        bottom: -40px;\n        left: 50%;\n        transform: translateX(-50%);\n        background: #1f2937;\n        color: #fff;\n        padding: 6px 12px;\n        font-size: 0.75rem;\n        border-radius: 6px;\n        white-space: nowrap;\n        pointer-events: none;\n        z-index: 50;\n        box-shadow: 0 4px 6px -1px rgb(0 0 0 \/ 0.1);\n    }\n\n    \/* Masquer le lien sur les \u00e9l\u00e9ments indisponibles *\/\n    .wp-custom-projects-slider-container .slide.is-coming-soon .link-voir {\n        display: none;\n    }\n\n    .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    .wp-custom-projects-slider-container .slide-content {\n        text-align: left;\n        position: absolute;\n        top: 30px;\n        left: 30px;\n        right: 30px;\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-start;\n        opacity: 0;\n        transition: opacity 0.4s ease;\n        pointer-events: none;\n        z-index: 2;\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text .slide-city {\n        display: block;\n        color: var(--text-muted);\n        font-size: 0.75rem;\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n        margin-bottom: 6px;\n        font-weight: 600;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text h3 {\n        color: var(--text-light);\n        font-size: 1.15rem;\n        font-weight: normal;\n        margin-bottom: 5px;\n        line-height: 1.3;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide-content-text p {\n        font-family: var(--font-secondary);\n        font-style: italic;\n        font-size: 1rem;\n        color: white;\n        line-height: 1.4;\n    }\n\n    .wp-custom-projects-slider-container .link-voir {\n        position: relative;\n        color: var(--text-light);\n        text-decoration: none;\n        border-bottom: 1px solid var(--text-light);\n        font-size: 0.8rem;\n        opacity: 0;\n        transform: translateY(10px);\n        transition: all 0.4s ease;\n        pointer-events: auto;\n        transform-origin: right center;\n        text-shadow: 0 1px 3px rgba(0,0,0,0.5);\n    }\n\n    .wp-custom-projects-slider-container .slide.active .link-voir {\n        opacity: 1;\n        transform: translateY(0) scale(1);\n    }\n\n    @media (hover: hover) {\n        .wp-custom-projects-slider-container .slide.active:hover .link-voir {\n            transform: translateY(0) scale(1.15);\n        }\n    }\n\n    .wp-custom-projects-slider-container .slide.prev {\n        opacity: 1;\n        visibility: visible;\n        transform: translateX(calc(50px - 50vw + 50%));\n        z-index: 1;\n        cursor: pointer;\n    }\n\n    .wp-custom-projects-slider-container .slide.active {\n        opacity: 1;\n        visibility: visible;\n        transform: translateX(calc(90px + (50vh * 1272 \/ 1140) - 50vw + 50%));\n        z-index: 2;\n        height: 76vh;\n        cursor: pointer;\n    }\n\n    .wp-custom-projects-slider-container .slide.next {\n        opacity: 1;\n        visibility: visible;\n        transform: translateX(calc(130px + (126vh * 1272 \/ 1140) - 50vw + 50%));\n        z-index: 1;\n        cursor: pointer;\n    }\n\n    .wp-custom-projects-slider-container .slide.active .slide-content {\n        opacity: 1;\n        transition-delay: 0.4s;\n    }\n\n    \/* ==========================================\n       RESPONSIVE DESIGN\n       ========================================== *\/\n    @media (max-width: 1700px) {\n        .wp-custom-projects-slider-container .slide.prev, \n        .wp-custom-projects-slider-container .slide.next { filter: brightness(0.9); }\n        \n        .wp-custom-projects-slider-container {\n            height: auto;\n            min-height: 65vh;\n            display: flex;\n            flex-direction: column;\n            justify-content: flex-start;\n            padding-bottom: 40px; \n            text-align: center;\n        }\n        \n        .wp-custom-projects-slider-container .projects-info {\n            position: relative;\n            top: 0; left: 0; width: 100%;\n            padding: 60px 20px 20px;\n        }\n        \n        .wp-custom-projects-slider-container .projects-slider {\n            position: relative; top: auto; bottom: auto; left: 50%;\n            transform: translateX(-50%); height: 55cqi; max-height: 75vh;\n        }\n        \n        .wp-custom-projects-slider-container .slide { \n            width: 45vw; \n            height: auto; \n            max-height: 60vh; \n        }\n        \n        .wp-custom-projects-slider-container .slide.active { \n            width: 60vw; \n            height: auto; \n            max-height: 75vh; \n            transform: translateX(0); \n        }\n        \n        .wp-custom-projects-slider-container .slide.prev { transform: translateX(-50vw); } \n        .wp-custom-projects-slider-container .slide.next { transform: translateX(50vw); } \n        \n        .wp-custom-projects-slider-container .nav-arrow {\n            top: auto;\n            bottom: calc(min(45vw * (1140 \/ 1272), 60vh) + 15px);\n            transform: none;\n            transition: opacity 0.2s ease, transform 0.2s ease;\n        }\n\n        @media (hover: hover) {\n            .wp-custom-projects-slider-container .nav-arrow:hover { \n                transform: scale(1.1); \n                opacity: 1;\n            }\n        }\n\n        .wp-custom-projects-slider-container .nav-arrow:active {\n            opacity: 0.4 !important;\n            transform: scale(0.9) !important;\n            transition: none !important;\n        }\n\n        .wp-custom-projects-slider-container .left-arrow { left: 2vw; }\n        .wp-custom-projects-slider-container .right-arrow { right: 2vw; }\n    }\n\n    @media (max-width: 720px) {\n        .wp-custom-projects-slider-container .projects-info h2 { font-size: 1.4rem; }\n        .wp-custom-projects-slider-container .projects-slider { height: 75vw; }\n        .wp-custom-projects-slider-container .slide { \n            width: 65vw; \n            height: auto; \n        }\n        .wp-custom-projects-slider-container .slide.active { \n            width: 85vw; \n            height: auto; \n        }\n        .wp-custom-projects-slider-container .slide::after {\n            height: 60%;\n            background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.35) 65%, transparent 100%);\n        }\n        .wp-custom-projects-slider-container .slide.prev { transform: translateX(-75vw); }\n        .wp-custom-projects-slider-container .slide.next { transform: translateX(75vw); }\n        .wp-custom-projects-slider-container .nav-arrow { bottom: calc(min(65vw * (1140 \/ 1272), 60vh) + 15px); }\n        .wp-custom-projects-slider-container .left-arrow { left: 0; }\n        .wp-custom-projects-slider-container .right-arrow { right: 0; }\n\n        .wp-custom-projects-slider-container .slide-content {\n            top: 20px; bottom: 30px; text-align: center;\n            flex-direction: column; align-items: center; justify-content: space-between;\n        }\n        .wp-custom-projects-slider-container .slide-content-text h3 { margin-bottom: 5px; }\n        .wp-custom-projects-slider-container .link-voir {\n            transform-origin: center center;\n        }\n    }\n\n    @media (max-width: 420px) {\n        .wp-custom-projects-slider-container .projects-slider { height: 95vw; max-height: none; }\n        .wp-custom-projects-slider-container .nav-arrow { bottom: calc(85vw * (1140 \/ 1272) + 10px); }\n        .wp-custom-projects-slider-container .left-arrow { left: 5vw; }\n        .wp-custom-projects-slider-container .right-arrow { right: 5vw; }\n    }\n<\/style>\n\n<script>\n(function() {\n    const CONFIG_COMPOSANT = {\n        delaiAutoPlay: 8000,\n        delaiPauseApresClic: 15000\n    };\n\n    const container = document.getElementById('wp-custom-projects-slider');\n    if (!container) return; \n\n    const slidesElements = Array.from(container.querySelectorAll('.slide'));\n    let currentIndex = slidesElements.findIndex(slide => slide.classList.contains('active'));\n    if (currentIndex === -1) currentIndex = 0;\n\n    let autoplayInterval;\n    let pauseTimeout;\n\n    function renderSlider() {\n        slidesElements.forEach(slide => slide.classList.remove('active', 'prev', 'next'));\n        \n        slidesElements[currentIndex].classList.add('active');\n        \n        let prevIndex = currentIndex - 1 < 0 ? slidesElements.length - 1 : currentIndex - 1;\n        let nextIndex = currentIndex + 1 >= slidesElements.length ? 0 : currentIndex + 1;\n        \n        slidesElements[prevIndex].classList.add('prev');\n        slidesElements[nextIndex].classList.add('next');\n    }\n\n    function goToNextSlide() {\n        currentIndex = currentIndex + 1 >= slidesElements.length ? 0 : currentIndex + 1;\n        renderSlider();\n    }\n\n    function goToPrevSlide() {\n        currentIndex = currentIndex - 1 < 0 ? slidesElements.length - 1 : currentIndex - 1;\n        renderSlider();\n    }\n\n    function startAutoplay() {\n        clearInterval(autoplayInterval);\n        autoplayInterval = setInterval(goToNextSlide, CONFIG_COMPOSANT.delaiAutoPlay); \n    }\n\n    function pauseAutoplayTemporarily() {\n        clearInterval(autoplayInterval); \n        clearTimeout(pauseTimeout); \n        pauseTimeout = setTimeout(startAutoplay, CONFIG_COMPOSANT.delaiPauseApresClic);\n    }\n\n    container.querySelector('.left-arrow').addEventListener('click', () => {\n        goToPrevSlide();\n        pauseAutoplayTemporarily();\n    });\n\n    container.querySelector('.right-arrow').addEventListener('click', () => {\n        goToNextSlide();\n        pauseAutoplayTemporarily();\n    });\n\n    slidesElements.forEach(slide => {\n        slide.addEventListener('click', (e) => {\n            if (slide.classList.contains('active')) {\n                if (!e.target.classList.contains('link-voir')) {\n                    const linkElement = slide.querySelector('.link-voir');\n                    if (linkElement) {\n                        const linkHref = linkElement.getAttribute('href');\n                        if (linkHref && linkHref !== '#') window.location.href = linkHref;\n                    }\n                }\n            } else if (slide.classList.contains('prev')) {\n                goToPrevSlide();\n                pauseAutoplayTemporarily();\n            } else if (slide.classList.contains('next')) {\n                goToNextSlide();\n                pauseAutoplayTemporarily();\n            }\n        });\n    });\n\n    let touchStartX = 0;\n    let touchEndX = 0;\n    const sliderContainer = container.querySelector('.projects-slider');\n\n    function handleSwipeGesture() {\n        const swipeThreshold = 50; \n        if (touchEndX < touchStartX - swipeThreshold) {\n            goToNextSlide();\n            pauseAutoplayTemporarily();\n        }\n        if (touchEndX > touchStartX + swipeThreshold) {\n            goToPrevSlide();\n            pauseAutoplayTemporarily();\n        }\n    }\n\n    sliderContainer.addEventListener('touchstart', (e) => {\n        touchStartX = e.changedTouches[0].screenX;\n    }, { passive: true });\n\n    sliderContainer.addEventListener('touchend', (e) => {\n        touchEndX = e.changedTouches[0].screenX;\n        handleSwipeGesture();\n    });\n\n    renderSlider();\n    startAutoplay();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Seaside Villa Brighton Brighton, England 2019 Bespoke sofas Coastal Exclusivity Gabriel Bernardi Redefines the British Touch While Maison Norki is globally renowned for its prestigious alpine chalet interiors, this project demonstrates our ability to adapt with brilliance and exclusivity to seaside environments. This exceptional residence, located on the British coastline, perfectly embodies the refined and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4279,"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-4306","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Norki &amp; Gabriel Bernardi | Luxury Seaside Residence<\/title>\n<meta name=\"description\" content=\"Bespoke Norki sofas in navy cowhide and white pony skin for a seaside residence designed by Gabriel Bernardi, blending luxury and craftsmanship.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Norki &amp; Gabriel Bernardi | Luxury Seaside Residence\" \/>\n<meta property=\"og:description\" content=\"Bespoke Norki sofas in navy cowhide and white pony skin for a seaside residence designed by Gabriel Bernardi, blending luxury and craftsmanship.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/\" \/>\n<meta property=\"og:site_name\" content=\"Norki\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/NorkiDecoration\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T10:34:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/villa-angleterre-hero.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/\",\"url\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/\",\"name\":\"Norki & Gabriel Bernardi | Luxury Seaside Residence\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/villa-angleterre-hero.png\",\"datePublished\":\"2026-06-08T12:03:44+00:00\",\"dateModified\":\"2026-07-21T10:34:55+00:00\",\"description\":\"Bespoke Norki sofas in navy cowhide and white pony skin for a seaside residence designed by Gabriel Bernardi, blending luxury and craftsmanship.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/villa-angleterre-hero.png\",\"contentUrl\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/villa-angleterre-hero.png\",\"width\":2260,\"height\":1888},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/gabriel-bernardi-brighton\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.norki.com\\\/fr\\\/sur-mesure\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our Projects\",\"item\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Seaside\",\"item\":\"https:\\\/\\\/www.norki.com\\\/en\\\/custom-made-upholstery\\\/interior-design-projects-bespoke-craftsmanship\\\/seaside-projects\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Villa Angleterre\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/#website\",\"url\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/\",\"name\":\"Norki\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.norki.com\\\/sur-mesure\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Norki & Gabriel Bernardi | Luxury Seaside Residence","description":"Bespoke Norki sofas in navy cowhide and white pony skin for a seaside residence designed by Gabriel Bernardi, blending luxury and craftsmanship.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/","og_locale":"fr_FR","og_type":"article","og_title":"Norki & Gabriel Bernardi | Luxury Seaside Residence","og_description":"Bespoke Norki sofas in navy cowhide and white pony skin for a seaside residence designed by Gabriel Bernardi, blending luxury and craftsmanship.","og_url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/","og_site_name":"Norki","article_publisher":"https:\/\/facebook.com\/NorkiDecoration","article_modified_time":"2026-07-21T10:34:55+00:00","og_image":[{"url":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/villa-angleterre-hero.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/","url":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/","name":"Norki & Gabriel Bernardi | Luxury Seaside Residence","isPartOf":{"@id":"https:\/\/www.norki.com\/sur-mesure\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/#primaryimage"},"image":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/#primaryimage"},"thumbnailUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/villa-angleterre-hero.png","datePublished":"2026-06-08T12:03:44+00:00","dateModified":"2026-07-21T10:34:55+00:00","description":"Bespoke Norki sofas in navy cowhide and white pony skin for a seaside residence designed by Gabriel Bernardi, blending luxury and craftsmanship.","breadcrumb":{"@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/#primaryimage","url":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/villa-angleterre-hero.png","contentUrl":"https:\/\/www.norki.com\/sur-mesure\/wp-content\/uploads\/2026\/07\/villa-angleterre-hero.png","width":2260,"height":1888},{"@type":"BreadcrumbList","@id":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/gabriel-bernardi-brighton\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.norki.com\/fr\/sur-mesure\/"},{"@type":"ListItem","position":2,"name":"Our Projects","item":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/"},{"@type":"ListItem","position":3,"name":"Seaside","item":"https:\/\/www.norki.com\/en\/custom-made-upholstery\/interior-design-projects-bespoke-craftsmanship\/seaside-projects\/"},{"@type":"ListItem","position":4,"name":"Villa Angleterre"}]},{"@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":"Seaside Villa Brighton Brighton, England 2019 Bespoke sofas Coastal Exclusivity Gabriel Bernardi Redefines the British Touch While Maison Norki is globally renowned for its prestigious alpine chalet interiors, this project demonstrates our ability to adapt with brilliance and exclusivity to seaside environments. This exceptional residence, located on the British coastline, perfectly embodies the refined and\u2026","_links":{"self":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4306","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=4306"}],"version-history":[{"count":3,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4306\/revisions"}],"predecessor-version":[{"id":5125,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4306\/revisions\/5125"}],"up":[{"embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/pages\/4279"}],"wp:attachment":[{"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/media?parent=4306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/categories?post=4306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.norki.com\/sur-mesure\/wp-json\/wp\/v2\/tags?post=4306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}