{"id":1258,"date":"2024-08-31T01:39:58","date_gmt":"2024-08-30T23:39:58","guid":{"rendered":"https:\/\/touzeau.swiss\/?page_id=1258"},"modified":"2026-02-12T23:25:06","modified_gmt":"2026-02-12T21:25:06","slug":"table-rejuvenation","status":"publish","type":"page","link":"https:\/\/touzeau.swiss\/en\/rajeunissement-de-table","title":{"rendered":"Table rejuvenation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1258\" class=\"elementor elementor-1258\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b1d46dd e-flex e-con-boxed e-con e-parent\" data-id=\"b1d46dd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c11483 animated-fast breadc-mob exad-sticky-section-no exad-glass-effect-no elementor-invisible elementor-widget elementor-widget-woocommerce-breadcrumb\" data-id=\"7c11483\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"woocommerce-breadcrumb.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<nav class=\"woocommerce-breadcrumb\" aria-label=\"Breadcrumb\"><\/nav>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c548edd e-con-full e-flex e-con e-parent\" data-id=\"c548edd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-302dcc7 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-html\" data-id=\"302dcc7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ===== WHEEL VANILLA \u2014 FULL BLEED + PIN MANUEL (v4.1: wheel off instant, title fade with scroll) ===== -->\n<div id=\"tt-section\" style=\"position:relative;width:100vw;left:50%;margin-left:calc(50% - 50vw);height:220vh;background:#F9F0EF;\">\n  <style>\n  @media (max-width: 676px) {\n  #tt-section {\n      margin-left: -50% !important;\n  }\n  #tt-title {\n      line-height: 1.2 !important; \/* Ajuste cette valeur selon tes pr\u00e9f\u00e9rences *\/\n      font-size: clamp(32px, 15vw, 60px); \/* Optionnel : r\u00e9duit un peu la taille pour mobile *\/\n  }\n}\n    #tt-stage{\n      position:fixed; inset:0; width:100vw; height:100vh;\n      display:grid; place-items:center; pointer-events:none;\n    }\n    #tt-title{\n      position:absolute; z-index:1;\n      text-align:center;\n      font-size:clamp(36px,12vw,98px); line-height:.9; color:#000;\n      transform-origin:center;\n      opacity:0;\n      line-height: 110px\n    }\n    #tt-wheel{\n      position:absolute; left:50%; top:50%;\n      transform:translate(-50%, -50%);\n      width:min(80vmin, 1200px); height:min(80vmin, 1200px);\n      pointer-events:none; z-index:2;\n      opacity:1; visibility:visible;\n    }\n    #tt-wheel.off{\n      opacity:0 !important; visibility:hidden !important; transition:none !important;\n    }\n    .tt-item{ position:absolute; left:50%; top:50%; width:300px; height:300px; transform-origin:center; }\n    .tt-item img{\n      width:100%; height:100%; object-fit:cover;\n      border-radius:26px; background:#fff; padding:20px; box-sizing:border-box;\n      box-shadow:0 18px 60px rgba(0,0,0,.1);\n    }\n    .no-js #tt-wheel .tt-item{ transform:translate(-50%,-50%) !important; }\n  <\/style>\n\n  <div id=\"tt-stage\">\n    <h1 id=\"tt-title\">Modernisez<br>votre service<\/h1>\n    <div id=\"tt-wheel\">\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Combinaison-5.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/01\/grand-plateau-46-cm_1.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/ggd.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/ff.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Combinaison-3.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Combinaison-2.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item\"><img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Combinaison-1.webp\" alt=\"\"><\/div>\n      <div class=\"tt-item tt-has-hint\">\n  <img decoding=\"async\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Exemple-3.webp\" alt=\"\">\n  <div class=\"tt-cardhint\" aria-hidden=\"true\">\n\n    <span class=\"tt-cardhint__arrow\">\u2193<\/span>\n  <\/div>\n<\/div>\n\n<\/div>\n\n    \n  <\/div>\n\n  <div style=\"position:absolute;bottom:-120vh;left:0;width:100%;height:120vh;\"><\/div>\n\n  <script>\n    (function(){\n      const section = document.getElementById('tt-section');\n      const stage   = document.getElementById('tt-stage');\n      const wheel   = document.getElementById('tt-wheel');\n      const title   = document.getElementById('tt-title');\n      const items   = Array.from(wheel.querySelectorAll('.tt-item'));\n      if(!section || !stage || !wheel || !items.length) return;\n\n      const OPEN_AT_START_FACTOR = 0.03;\n      const TITLE_MAX_SCALE      = 1.35;\n      const TEXT_SHOW_OPEN       = 0.16;\n      const TEXT_FADE_END        = 0.85; \/\/ \u00e0 partir de 85% du scroll, on commence \u00e0 fade out\n      const REENTRY_HYSTERESIS   = 80;\n\n      let spin = 0, start=0, end=0, length=0, raf;\n      let state = 'before';\n\n      function place(radius, scaleTitle, openRatio, progressVal){\n        const N = items.length;\n        for(let i=0;i<N;i++){\n          const a   = (i \/ N) * Math.PI * 2 + spin;\n          const deg = a * 180 \/ Math.PI;\n          items[i].style.transform =\n            `translate(-50%, -50%) rotate(${deg}deg) translate(${radius}px,0) rotate(${-deg}deg)`;\n        }\n        title.style.transform = `scale(${scaleTitle})`;\n        title.style.letterSpacing = `${(scaleTitle-1)*3.5}px`;\n\n        \/\/ Apparition texte\n        if (openRatio < TEXT_SHOW_OPEN){\n          title.style.opacity = 0;\n        } else {\n          \/\/ fade out progressif \u00e0 la fin\n          if (progressVal > TEXT_FADE_END){\n            let fade = 1 - (progressVal - TEXT_FADE_END) \/ (1 - TEXT_FADE_END);\n            title.style.opacity = Math.max(0, fade);\n          } else {\n            title.style.opacity = 1;\n          }\n        }\n      }\n\n      function recalc(){\n        const rect = section.getBoundingClientRect();\n        const pageY = window.pageYOffset || document.documentElement.scrollTop;\n        const top   = rect.top + pageY;\n        const vh    = window.innerHeight;\n        start = top;\n        end   = top + rect.height - vh;\n        length = Math.max(end - start, 1);\n      }\n      const y = () => window.pageYOffset || document.documentElement.scrollTop;\n      function progress(){\n        const s = y();\n        if (s <= start) return 0;\n        if (s >= end)   return 1;\n        return (s - start) \/ length;\n      }\n\n      function setState(next){\n        if (state === next) return;\n        state = next;\n        if (state === 'after'){\n          wheel.classList.add('off'); \/\/ roue off instant\n        } else {\n          wheel.classList.remove('off');\n        }\n      }\n\n      function animate(){\n        const p  = progress();\n        const vw = window.innerWidth, vh = window.innerHeight;\n        const rEndOffscreen = Math.hypot(vw, vh) \/ 2 + 260;\n        const rStart        = rEndOffscreen * OPEN_AT_START_FACTOR;\n        const radius        = rStart + (rEndOffscreen - rStart) * p;\n        const openRatio     = (radius - rStart) \/ (rEndOffscreen - rStart);\n        const scaleTitle    = 1 + (TITLE_MAX_SCALE - 1) * p;\n\n        const s = y();\n        if (s < start){\n          setState('before');\n          stage.style.position = 'absolute'; stage.style.top = '0'; stage.style.bottom = '';\n        } else if (s > end){\n          setState('after');\n          stage.style.position = 'absolute'; stage.style.top = ''; stage.style.bottom = '0';\n        } else {\n          setState('during');\n          stage.style.position = 'fixed'; stage.style.top = '0'; stage.style.bottom = '';\n        }\n\n        if (state !== 'after') spin += 0.006;\n\n        place(radius, scaleTitle, openRatio, p);\n\n        if (state === 'after' && (s < end - REENTRY_HYSTERESIS)) {\n          setState('during');\n        }\n\n        raf = requestAnimationFrame(animate);\n      }\n\n      window.addEventListener('resize', recalc, {passive:true});\n      window.addEventListener('orientationchange', recalc);\n      recalc();\n      cancelAnimationFrame(raf);\n      raf = requestAnimationFrame(animate);\n    })();\n  <\/script>\n<\/div>\n\n\n<style>\n   .tt-has-hint{ position:absolute; }\n\n.tt-cardhint{\n  position:absolute;\n  left:50%;\n  bottom:24px;\n  transform:translateX(-50%);\n  z-index:5;\n  pointer-events:none;\n  opacity:1;\n  transition:opacity .3s ease;\n}\n\n.tt-cardhint.is-hidden{ opacity:0; }\n\n.tt-cardhint__arrow{\n  display:block;\n  font-size:20px;\n  line-height:1;\n  color:#9a0101;\n  animation:ttArrowBounce 1.8s ease-in-out infinite;\n}\n\n@keyframes ttArrowBounce{\n  0%,100% { transform:translateY(0); opacity:.75; }\n  50%     { transform:translateY(6px); opacity:1; }\n}\n\n@media (prefers-reduced-motion: reduce){\n  .tt-cardhint__arrow{ animation:none !important; }\n}\n\n\n<\/style>\n\n<script>\n    \/* ===== hide arrow on first scroll ===== *\/\nconst hint = document.querySelector('.tt-cardhint');\nlet hintHidden = false;\nconst HIDE_AFTER_PX = 10;\n\nfunction checkHideHint(){\n  if (hintHidden || !hint) return;\n\n  if (window.scrollY > HIDE_AFTER_PX){\n    hintHidden = true;\n    hint.classList.add('is-hidden');\n\n    const arrow = hint.querySelector('.tt-cardhint__arrow');\n    if (arrow) arrow.style.animation = 'none';\n  } else {\n    requestAnimationFrame(checkHideHint);\n  }\n}\n\nrequestAnimationFrame(checkHideHint);\n\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-79b9f53 e-flex e-con-boxed e-con e-parent\" data-id=\"79b9f53\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9a0c6c6 e-con-full e-flex e-con e-child\" data-id=\"9a0c6c6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-92e9dc9 e-con-full e-flex e-con e-child\" data-id=\"92e9dc9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ac93525 animated-fast content-book elementor-widget__width-initial exad-sticky-section-no exad-glass-effect-no elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"ac93525\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_direction&quot;:&quot;negative&quot;,&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:75}},&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4,&quot;sizes&quot;:[]},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vous poss\u00e9dez un service de table ancien et souhaitez lui offrir une touche de modernit\u00e9, sans en perdre l\u2019\u00e2me ? Le magasin Monique Touzeau vous accompagne pour le r\u00e9inventer avec \u00e9l\u00e9gance.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-154339a e-con-full e-flex e-con e-child\" data-id=\"154339a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aa19b7f exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"aa19b7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1512\" height=\"1370\" src=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Raj-001.webp\" class=\"attachment-full size-full wp-image-20899\" alt=\"\" srcset=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Raj-001.webp 1512w, https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Raj-001-300x272.webp 300w, https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Raj-001-1024x928.webp 1024w, https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Raj-001-768x696.webp 768w, https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Raj-001-13x12.webp 13w\" sizes=\"(max-width: 1512px) 100vw, 1512px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46879f4 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-html\" data-id=\"46879f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n(function(){\n  function onReady(fn){\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", fn, { once:true });\n    } else {\n      fn();\n    }\n  }\n\n  onReady(function(){\n    \/* ===== 1) Open Elementor tab if ?tab=liste-amour ===== *\/\n    try{\n      var urlParams = new URLSearchParams(window.location.search);\n      var tabParam = urlParams.get(\"tab\");\n      if (tabParam === \"liste-amour\") {\n        setTimeout(function(){\n          var btn = document.querySelector(\"#amour.e-n-tab-title\");\n          if (btn) btn.click();\n          else console.warn(\"Bouton #amour.e-n-tab-title non trouv\u00e9.\");\n        }, 200);\n      }\n    } catch(e){}\n\n    \/* ===== 2) Title variable font weight on scroll ===== *\/\n    var title = document.querySelector(\".liste-title\");\n    if (title) {\n      var tickTitle = false;\n      window.addEventListener(\"scroll\", function(){\n        if (tickTitle) return;\n        tickTitle = true;\n        requestAnimationFrame(function(){\n          var scrollTop = window.scrollY || 0;\n          var maxScroll = Math.max(1, (document.documentElement.scrollHeight - window.innerHeight));\n          var ratio = scrollTop \/ maxScroll;\n          var weight = Math.round(100 + ratio * 2000);\n          title.style.fontVariationSettings = \"'wght' \" + weight;\n          tickTitle = false;\n        });\n      }, { passive:true });\n    }\n\n    \/* ===== 3) Split .content-book into spans + reveal on scroll ===== *\/\n    var content = document.querySelector(\".content-book\");\n    if (!content) return;\n\n    \/\/ Prevent double-splitting (Elementor can re-init)\n    if (content.dataset.split === \"1\") return;\n    content.dataset.split = \"1\";\n\n    var originalText = (content.textContent || \"\").trim();\n    if (!originalText) return;\n\n    content.innerHTML = \"\";\n\n    \/\/ Split into words keeping spaces\n    var words = originalText.split(\/(\\s+)\/);\n\n    for (var i=0; i<words.length; i++){\n      var span = document.createElement(\"span\");\n      span.textContent = words[i];\n      content.appendChild(span);\n    }\n\n    var spans = content.querySelectorAll(\"span\");\n\n    var ticking = false;\n    function update(){\n      ticking = false;\n\n      var rect = content.getBoundingClientRect();\n      var windowHeight = window.innerHeight;\n\n      var startTrigger = windowHeight * 0.7;\n      var endTrigger   = windowHeight * 0.2;\n      var total = spans.length;\n\n      if (rect.top < startTrigger && rect.bottom > endTrigger) {\n        var progress = (startTrigger - rect.top) \/ (startTrigger - endTrigger);\n        var adjustedRatio = Math.min(Math.max(progress, 0), 1);\n        var visibleCount = Math.floor(adjustedRatio * total);\n\n        for (var j=0; j<total; j++){\n          if (j < visibleCount) spans[j].classList.add(\"visible\");\n          else spans[j].classList.remove(\"visible\");\n        }\n      } else {\n        for (var k=0; k<total; k++){\n          spans[k].classList.remove(\"visible\");\n        }\n      }\n    }\n\n    function onScroll(){\n      if (ticking) return;\n      ticking = true;\n      requestAnimationFrame(update);\n    }\n\n    window.addEventListener(\"scroll\", onScroll, { passive:true });\n    window.addEventListener(\"resize\", onScroll, { passive:true });\n\n    \/\/ init state\n    update();\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7fea05a elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"7fea05a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-609dbe3 animated-fast exad-sticky-section-no exad-glass-effect-no elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"609dbe3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Prochains Ateliers<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a664d1 animated-fast exad-sticky-section-no exad-glass-effect-no elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8a664d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Un moment convivial et instructif : Que vous souhaitiez moderniser votre service ou simplement apprendre \u00e0 dresser une belle table, cet atelier est fait pour vous. Red\u00e9couvrez le plaisir d\u2019une table \u00e9l\u00e9gante et raffin\u00e9e avec Monique Touzeau.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-89bff53 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"89bff53\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e4f52af elementor-grid-eael-col-3 elementor-grid-tablet-eael-col-2 elementor-grid-mobile-eael-col-1 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-eael-post-grid\" data-id=\"e4f52af\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_post_grid_columns&quot;:&quot;eael-col-3&quot;,&quot;eael_post_grid_columns_tablet&quot;:&quot;eael-col-2&quot;,&quot;eael_post_grid_columns_mobile&quot;:&quot;eael-col-1&quot;}\" data-widget_type=\"eael-post-grid.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"eael-post-grid-e4f52af\" class=\"eael-post-grid-container\">\n            <div class=\"eael-post-grid eael-post-appender eael-post-appender-e4f52af eael-post-grid-style-one\" data-layout-mode=\"grid\"><p class=\"no-posts-found\">No posts found!<\/p><\/div>\n            <div class=\"clearfix\"><\/div>\n        <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-20203c1 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"20203c1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2f027ce exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-html\" data-id=\"2f027ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n(function(){\n  const root   = document.querySelector('.tt-scrolly');\n  const stage  = root?.querySelector('.tt-scrolly-stage');\n  const slides = root ? Array.from(root.querySelectorAll('.tt-slide')) : [];\n  const nav    = root?.querySelector('.tt-scrolly-nav');\n  const items  = nav ? Array.from(nav.querySelectorAll('.tt-nav-item')) : [];\n  if(!root || !stage || slides.length < 2) return;\n\n  const total = slides.length;\n  let progress = 0;               \/\/ valeur continue pour le rendu\n  let currentIndex = 0;           \/\/ index discret\n  let targetIndex  = 0;           \/\/ index vis\u00e9\n  let locked = false;\n\n  \/\/ anti-rafales\n  let isAnimating   = false;      \/\/ une anim est en cours\n  let gestureLock   = false;      \/\/ un seul step par \"geste\"\n  let wheelAccum    = 0;\n  let lastWheelDir  = 0;\n  let lastWheelTime = 0;\n  const wheelThreshold = 50;      \/\/ px \u00e0 cumuler pour d\u00e9clencher 1 step\n  const quietWindow   = 180;      \/\/ ms sans events pour r\u00e9armer le geste\n\n  \/\/ tactile\n  const touchThreshold = 48;\n\n  \/\/ easing\n  const snapEase = 0.14;\n\n  \/\/ hauteur: N * 100vh\n  const setH = ()=> root.style.height = (total * innerHeight) + 'px';\n  setH(); addEventListener('resize', setH);\n\n  \/\/ lock quand le stage est plein \u00e9cran\n  const io = new IntersectionObserver((entries)=>{\n    const it = entries[0];\n    locked = !!(it && it.isIntersecting && it.intersectionRatio >= 0.99);\n  }, { threshold: [0, .99, 1] });\n  io.observe(stage);\n\n  \/\/ init visuel\n  slides.forEach((s,i)=>{ \n    s.style.opacity   = i===0 ? 1 : 0; \n    s.style.transform = i===0 ? 'none' : 'translateX(30px) scale(0.98)'; \n  });\n\n  const clampIndex = (i)=> Math.max(0, Math.min(total-1, i));\n  const atEdge = (dir)=> dir>0 ? currentIndex>=total-1 : currentIndex<=0;\n\n  function step(dir){\n    if (isAnimating || gestureLock || atEdge(dir)) return;\n    currentIndex = clampIndex(currentIndex + (dir>0?1:-1));\n    targetIndex  = currentIndex;\n    isAnimating  = true;\n    gestureLock  = true;                 \/\/ lock le geste\n  }\n\n  \/\/ normaliser delta molette\n  function normDeltaY(e){\n    let d = e.deltaY;\n    if (e.deltaMode === 1) d *= 16;               \/\/ lines -> px\n    else if (e.deltaMode === 2) d *= innerHeight; \/\/ pages -> px\n    const cap = 120; \/\/ anti-violence\n    return Math.max(-cap, Math.min(cap, d));\n  }\n\n  function onWheel(e){\n    if(!locked || matchMedia('(prefers-reduced-motion: reduce)').matches) return;\n\n    const now = performance.now();\n    const dy  = normDeltaY(e);\n    const dir = Math.sign(dy);\n    if (dir === 0) return;\n    if (atEdge(dir)) return; \/\/ laisse la page sortir\n\n    e.preventDefault();\n\n    \/\/ si on change de sens, on reset l'accumulateur\n    if (dir !== lastWheelDir) { wheelAccum = 0; lastWheelDir = dir; }\n\n    \/\/ si geste verrouill\u00e9 ou anim en cours, on ignore cette rafale\n    if (gestureLock || isAnimating) { lastWheelTime = now; return; }\n\n    wheelAccum += Math.abs(dy);\n    if (wheelAccum >= wheelThreshold){\n      step(dir);\n      wheelAccum = 0;\n    }\n    lastWheelTime = now;\n  }\n  addEventListener('wheel', onWheel, {passive:false});\n\n  \/\/ r\u00e9armement du geste apr\u00e8s un \"silence\" de la molette\n  function pollGestureUnlock(){\n    const now = performance.now();\n    if (gestureLock && !isAnimating && (now - lastWheelTime) > quietWindow){\n      gestureLock = false;\n      wheelAccum = 0;\n      lastWheelDir = 0;\n    }\n    requestAnimationFrame(pollGestureUnlock);\n  }\n  pollGestureUnlock();\n\n  \/\/ TOUCH: 1 swipe = 1 slide, r\u00e9armement au touchend\n  let touchStartY = null;\n  addEventListener('touchstart', e=>{\n    if(!locked) return;\n    touchStartY = e.touches[0].clientY;\n  }, {passive:true});\n\n  addEventListener('touchend', ()=>{\n    touchStartY = null;\n    gestureLock = false;          \/\/ on r\u00e9arme au rel\u00e2chement\n  }, {passive:true});\n\n  addEventListener('touchmove', e=>{\n    if(!locked || touchStartY==null) return;\n    const y = e.touches[0].clientY;\n    const dy = touchStartY - y;    \/\/ >0 descend\n    const dir = Math.sign(dy);\n\n    if (Math.abs(dy) >= touchThreshold && !isAnimating && !gestureLock){\n      if (!atEdge(dir)){\n        e.preventDefault();\n        step(dir);\n        gestureLock = true;        \/\/ verrouille jusqu'au touchend\n      }\n      touchStartY = y; \/\/ r\u00e9arme la mesure du seuil\n    }\n  }, {passive:false});\n\n  \/\/ NAV click -> step pr\u00e9cis (autoris\u00e9 m\u00eame si lock wheel)\n  items.forEach((btn,i)=>{\n    btn.addEventListener('click', ()=>{\n      if (i === currentIndex) return;\n      currentIndex = i;\n      targetIndex  = i;\n      isAnimating  = true;\n      gestureLock  = true;\n      \/\/ mini timer pour rel\u00e2cher le lock si l'anim est tr\u00e8s courte\n      setTimeout(()=>{ if(!isAnimating) gestureLock=false; }, 250);\n    });\n  });\n\n  function paint(){\n    const base = Math.floor(progress);\n    const frac = progress - base;\n\n    slides.forEach((el,i)=>{\n      let o=0, tx=30, sc=0.98;\n      if(i===base){ o=1-frac; tx=30*frac;      sc=0.98+0.02*(1-frac); }\n      else if(i===base+1){ o=frac;  tx=30*(1-frac); sc=0.98+0.02*frac; }\n      el.style.opacity   = o.toFixed(3);\n      el.style.transform = `translateX(${tx.toFixed(1)}px) scale(${sc.toFixed(3)})`;\n      el.classList.toggle('is-top', o>0.5);\n    });\n\n    items.forEach((n,i)=> n.classList.toggle('is-active', i===Math.round(progress)));\n  }\n\n  function tick(){\n    \/\/ easing vers la cible\n    progress += (targetIndex - progress) * snapEase;\n\n    \/\/ fin d'anim -> lib\u00e8re anim, le geste restera lock\u00e9 jusqu'\u00e0 \"silence\" (wheel) ou touchend\n    if (Math.abs(targetIndex - progress) < 0.001){\n      progress = targetIndex;\n      isAnimating = false;\n    }\n\n    paint();\n    requestAnimationFrame(tick);\n  }\n  paint(); tick();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5053422 e-con-full e-flex e-con e-parent\" data-id=\"5053422\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9221b33 exad-sticky-section-no exad-glass-effect-no elementor-invisible elementor-widget elementor-widget-html\" data-id=\"9221b33\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 1) Charger le bundle UNE SEULE FOIS -->\n<script>\n(function(){\n  window.process = window.process || { env: {} };\n\n  var URL = \"https:\/\/touzeau.swiss\/wp-content\/uploads\/bouncecards-wp\/dist\/bouncecards.iife.js?v=1001\";\n\n  if (window.__WPWIDGETS_BUNDLE_LOADED__) return;\n  window.__WPWIDGETS_BUNDLE_LOADED__ = true;\n\n  var s = document.createElement(\"script\");\n  s.src = URL;\n  s.onload = function(){ console.log(\"\u2705 widgets bundle charg\u00e9\"); };\n  s.onerror = function(){ console.log(\"\u274c widgets bundle FAIL\", URL); };\n  document.head.appendChild(s);\n})();\n<\/script>\n\n<!-- 2) Container -->\n<div id=\"flowmenu-1\" style=\"width:100%;height:600px;position:relative;\"><\/div>\n\n<!-- 3) Mount + Hover text -->\n<script>\n(function(){\n  var ROOT_ID = \"flowmenu-1\";\n\n  function getAPI(){\n    return (window.WPWidgets && window.WPWidgets.FlowingMenu) || window.FlowingMenuEmbed || null;\n  }\n\n  function waitReady(cb){\n    var tries = 140;\n    var t = setInterval(function(){\n      var el = document.getElementById(ROOT_ID);\n      var api = getAPI();\n      if (el && api && api.mount) {\n        clearInterval(t);\n        cb(el, api);\n      } else if (--tries <= 0) {\n        clearInterval(t);\n        console.log(\"FlowMenu: pas pr\u00eat (bundle ou API introuvable)\");\n      }\n    }, 150);\n  }\n\n  waitReady(function(el, api){\n    if (el.dataset.mounted === \"1\") return;\n    el.dataset.mounted = \"1\";\n\n    \/\/ \u2705 IMAGES TOUZEAU (SEUL CHANGEMENT)\n    var items = [\n      {\n        text:\"Un rendez-vous gratuit\",\n        hoverText:\"Deux fois par mois dans notre magasin \u00e0 Gen\u00e8ve\",\n        image:\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2024\/08\/1.webp\"\n      },\n      {\n        text:\"Un accompagnement personnalis\u00e9\",\n        hoverText:\"assur\u00e9 par Monique, B\u00e9atrice Touzeau et leur \u00e9quipe\",\n        image:\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2025\/09\/IMG_9476-scaled.webp\"\n      },\n      {\n        text:\"Des conseils concrets et inspirants\",\n        hoverText:\"pour moderniser votre table sans tout remplacer\",\n        image:\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Gemini_Generated_Image_3mepdq3mepdq3mep.webp\"\n      },\n\n      {\n        text:\"Une s\u00e9lection compl\u00e9mentaire de pi\u00e8ces\",\n        hoverText:\"vaisselle, verrerie, couverts et accessoires\",\n        image:\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-11-a-16.50.03.webp\"\n      }\n    ];\n\n    api.mount(el, {\n      items: items,\n      speed: 12,\n      textColor: \"#000000\",\n      bgColor: \"\",\n      marqueeBgColor: \"#ffffff\",\n      marqueeTextColor: \"#060010\",\n      borderColor: \"#ffffff\"\n    });\n\n    \/\/ post-init (Elementor parfois injecte tard)\n    function enhance(){\n      var nodes = el.querySelectorAll(\".menu__item\");\n      if (!nodes || nodes.length === 0) return false;\n\n      nodes.forEach(function(node, i){\n        if (node.dataset.twotext === \"1\") return;\n        node.dataset.twotext = \"1\";\n\n        var link = node.querySelector(\".menu__item-link\");\n        if (!link) return;\n\n        var normal = items[i].text;\n        var hover  = items[i].hoverText;\n\n        link.setAttribute(\"data-normal\", normal);\n        link.setAttribute(\"data-hover\", hover);\n\n        var marqueeSpans = node.querySelectorAll(\".marquee__part span\");\n\n        function setMarqueeText(val){\n          marqueeSpans.forEach(function(sp){ sp.textContent = val; });\n        }\n\n        node.addEventListener(\"mouseenter\", function(){\n          node.classList.add(\"is-hover\");\n          el.classList.add(\"has-hover\");\n          setMarqueeText(hover);\n        });\n\n        node.addEventListener(\"mouseleave\", function(){\n          node.classList.remove(\"is-hover\");\n          el.classList.remove(\"has-hover\");\n          setMarqueeText(normal);\n        });\n      });\n\n      return true;\n    }\n\n    var tries = 30;\n    var it = setInterval(function(){\n      if (enhance() || --tries <= 0) clearInterval(it);\n    }, 200);\n  });\n})();\n<\/script>\n\n<!-- 4) CSS (scop\u00e9) -->\n<style>\n  \/* SCOPE: uniquement dans #flowmenu-1 *\/\n  #flowmenu-1 .menu-wrap{ width:100%; height:100%; overflow:hidden; }\n  #flowmenu-1 .menu{ display:flex; flex-direction:column; height:100%; margin:0; padding:0; }\n\n  #flowmenu-1 .menu__item{\n    flex:1;\n    position:relative;\n    overflow:hidden;\n    text-align:center;\n    border-top:1px solid;\n    transition: flex-grow .35s cubic-bezier(.2,.8,.2,1);\n  }\n  #flowmenu-1 .menu__item:first-child{ border-top:none; }\n  #flowmenu-1 .menu__item.is-hover{ flex-grow:1.8; }\n  #flowmenu-1.has-hover .menu__item:not(.is-hover){ flex-grow:0.75; }\n\n  #flowmenu-1 .menu__item-link{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    height:100%;\n    width:100%;\n    position:relative;\n    cursor:pointer;\n    text-transform:uppercase;\n    text-decoration:none !important;\n    white-space:nowrap;\n    font-weight:600;\n    font-size:clamp(26px, 3.3vh, 22px);\n    line-height:1;\n  }\n\n  #flowmenu-1 .menu__item-link::after{\n    content: attr(data-hover);\n    position:absolute;\n    left:50%;\n    top:50%;\n    transform: translate(-50%,-50%) scale(.98);\n    opacity:0;\n    transition: opacity .18s ease, transform .22s ease;\n    pointer-events:none;\n    white-space:nowrap;\n  }\n\n  #flowmenu-1 .menu__item.is-hover .menu__item-link::after{\n    opacity:1;\n    transform: translate(-50%,-50%) scale(1.03);\n  }\n\n  #flowmenu-1 .marquee{\n    position:absolute; top:0; left:0;\n    overflow:hidden;\n    width:100%; height:100%;\n    pointer-events:none;\n    transform:translate3d(0,101%,0);\n  }\n  #flowmenu-1 .marquee__inner-wrap{ height:100%; width:100%; overflow:hidden; }\n  #flowmenu-1 .marquee__inner{\n    display:flex; align-items:center;\n    position:relative;\n    height:100%;\n    width:max-content;\n    will-change:transform;\n  }\n  #flowmenu-1 .marquee__part{ display:flex; align-items:center; flex-shrink:0; }\n  #flowmenu-1 .marquee span{\n    white-space:nowrap;\n    text-transform:uppercase;\n    font-weight:400;\n    font-size:clamp(18px, 3.6vh, 48px);\n    line-height:1;\n    padding:0 1.2vw;\n  }\n  #flowmenu-1 .marquee__img{\n    width:220px;\n    height:18vh;\n    min-height:48px;\n    margin:0 2vw;\n    border-radius:12px;\n    background-size:cover;\n    background-position:50% 50%;\n  }\n  \n  @media (max-width:767px){#flowmenu-1 .menu__item-link{font-size:14px!important;}}\n  \n  @media (max-width:767px){#flowmenu-1 .menu__item-link::after{font-size:14px!important;}#flowmenu-1 .marquee span{font-size:20px!important;}#flowmenu-1 .marquee__img{width:140px!important;height:12vh!important;}}\n\n@media (max-width:767px){#flowmenu-1 .menu__item.is-hover{flex-grow:1.2!important;}#flowmenu-1.has-hover .menu__item:not(.is-hover){flex-grow:0.9!important;}}\n\n\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Modernisezvotre service \u2193 Vous poss\u00e9dez un service de table ancien et souhaitez lui offrir une touche de modernit\u00e9, sans en perdre l\u2019\u00e2me ? Le magasin Monique Touzeau vous accompagne pour le r\u00e9inventer avec \u00e9l\u00e9gance. Prochains Ateliers Un moment convivial et instructif : Que vous souhaitiez moderniser votre service ou simplement apprendre \u00e0 dresser une belle [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15144,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1258","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rajeunissement de Table - Touzeau, Arts de la Table Gen\u00e8ve<\/title>\n<meta name=\"description\" content=\"Une nouvelle vie \u00e0 votre service de table avec les conseils personnalis\u00e9s de Monique Touzeau \u00e0 Gen\u00e8ve. \u00c9l\u00e9gance et modernit\u00e9 \u00e0 votre port\u00e9e.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/touzeau.swiss\/en\/table-rejuvenation\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rajeunissement de Table - Touzeau, Arts de la Table Gen\u00e8ve\" \/>\n<meta property=\"og:description\" content=\"Une nouvelle vie \u00e0 votre service de table avec les conseils personnalis\u00e9s de Monique Touzeau \u00e0 Gen\u00e8ve. \u00c9l\u00e9gance et modernit\u00e9 \u00e0 votre port\u00e9e.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/touzeau.swiss\/en\/table-rejuvenation\/\" \/>\n<meta property=\"og:site_name\" content=\"Touzeau Arts de la Table\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-12T21:25:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/touzeau.swiss\/wp-content\/uploads\/2025\/09\/000012.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table\",\"url\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table\",\"name\":\"Rajeunissement de Table - Touzeau, Arts de la Table Gen\u00e8ve\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/touzeau.swiss\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/000012.webp\",\"datePublished\":\"2024-08-30T23:39:58+00:00\",\"dateModified\":\"2026-02-12T21:25:06+00:00\",\"description\":\"Une nouvelle vie \u00e0 votre service de table avec les conseils personnalis\u00e9s de Monique Touzeau \u00e0 Gen\u00e8ve. \u00c9l\u00e9gance et modernit\u00e9 \u00e0 votre port\u00e9e.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table#primaryimage\",\"url\":\"https:\\\/\\\/touzeau.swiss\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/000012.webp\",\"contentUrl\":\"https:\\\/\\\/touzeau.swiss\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/000012.webp\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/rajeunissement-de-table#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/touzeau.swiss\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rajeunissement de table\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/touzeau.swiss\\\/#website\",\"url\":\"https:\\\/\\\/touzeau.swiss\\\/\",\"name\":\"Touzeau Arts de la Table\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/touzeau.swiss\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Table Rejuvenation - Touzeau, Arts de la Table Gen\u00e8ve","description":"Give your tableware a new lease of life with personalised advice from Monique Touzeau in Geneva. Elegance and modernity within your reach.","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:\/\/touzeau.swiss\/en\/table-rejuvenation\/","og_locale":"en_GB","og_type":"article","og_title":"Rajeunissement de Table - Touzeau, Arts de la Table Gen\u00e8ve","og_description":"Une nouvelle vie \u00e0 votre service de table avec les conseils personnalis\u00e9s de Monique Touzeau \u00e0 Gen\u00e8ve. \u00c9l\u00e9gance et modernit\u00e9 \u00e0 votre port\u00e9e.","og_url":"https:\/\/touzeau.swiss\/en\/table-rejuvenation\/","og_site_name":"Touzeau Arts de la Table","article_modified_time":"2026-02-12T21:25:06+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/touzeau.swiss\/wp-content\/uploads\/2025\/09\/000012.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/touzeau.swiss\/rajeunissement-de-table","url":"https:\/\/touzeau.swiss\/rajeunissement-de-table","name":"Table Rejuvenation - Touzeau, Arts de la Table Gen\u00e8ve","isPartOf":{"@id":"https:\/\/touzeau.swiss\/#website"},"primaryImageOfPage":{"@id":"https:\/\/touzeau.swiss\/rajeunissement-de-table#primaryimage"},"image":{"@id":"https:\/\/touzeau.swiss\/rajeunissement-de-table#primaryimage"},"thumbnailUrl":"https:\/\/touzeau.swiss\/wp-content\/uploads\/2025\/09\/000012.webp","datePublished":"2024-08-30T23:39:58+00:00","dateModified":"2026-02-12T21:25:06+00:00","description":"Give your tableware a new lease of life with personalised advice from Monique Touzeau in Geneva. Elegance and modernity within your reach.","breadcrumb":{"@id":"https:\/\/touzeau.swiss\/rajeunissement-de-table#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/touzeau.swiss\/rajeunissement-de-table"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/touzeau.swiss\/rajeunissement-de-table#primaryimage","url":"https:\/\/touzeau.swiss\/wp-content\/uploads\/2025\/09\/000012.webp","contentUrl":"https:\/\/touzeau.swiss\/wp-content\/uploads\/2025\/09\/000012.webp","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/touzeau.swiss\/rajeunissement-de-table#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/touzeau.swiss\/"},{"@type":"ListItem","position":2,"name":"Rajeunissement de table"}]},{"@type":"WebSite","@id":"https:\/\/touzeau.swiss\/#website","url":"https:\/\/touzeau.swiss\/","name":"Touzeau Tableware","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/touzeau.swiss\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"}]}},"_links":{"self":[{"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/pages\/1258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/comments?post=1258"}],"version-history":[{"count":811,"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/pages\/1258\/revisions"}],"predecessor-version":[{"id":21103,"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/pages\/1258\/revisions\/21103"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/media\/15144"}],"wp:attachment":[{"href":"https:\/\/touzeau.swiss\/en\/wp-json\/wp\/v2\/media?parent=1258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}