1<!doctype html> 2<html lang="de"> 3<head > 4 <meta charset="utf-8"/> 5<meta name="title" content="Sessel gegen Rückenschmerzen: wie wählt man ihn richtig aus? - Lafuma Mobilier"/> 6<meta name="description" content="Bei der Auswahl eines für Rückenschmerzen geeigneten Sessels müssen mehrere Kriterien berücksichtigt werden. Entdecken Sie unsere Tipps für die Auswahl des passenden Entspannungssessels."/> 7<meta name="robots" content="index, follow"/> 8<meta name="viewport" content="width=device-width, initial-scale=1"/> 9<title>Sessel gegen Rückenschmerzen: wie wählt man ihn richtig aus? - Lafuma Mobilier</title> 10 <!-- Convert A/B testing (loaded as early as possible in <head> to avoid flickering) -->
11<script>window._conv_prevent_bodyhide = true;</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript" src="//cdn-4.convertexperiments.com/v1/js/10048068-10049601.js?environment=production"></script>
12 13
13<script>(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[]},session_trace:{sampling_rate:0.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:0.0},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1120209076",accountID:"3958023",trustKey:"1322840",xpid:"Vw8CWVZRCxABVFZXBwIAV1wC",licenseKey:"NRJS-f27923ed7a687545e4a",applicationID:"1075037183",browserID:"1120209076"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */ 14(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
14e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
14const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
14if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
14o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
14(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
14;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
14{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
14ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
14{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
14null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
14dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
14imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
14return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
14!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
14if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
14);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
14class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
14h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
14 <link rel="stylesheet" type="text/css" media="all" href="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/css/styles.css" /> 15<link rel="stylesheet" type="text/css" media="all" href="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/HiPay_FullserviceMagento/css/styles.css" /> 16<link rel="preload" as="font" crossorigin="anonymous" href="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/fonts/Barlow.woff2" /> 17<link rel="preload" as="font" crossorigin="anonymous" href="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/fonts/Barlow-Medium.woff2" /> 18<link rel="preload" as="font" crossorigin="anonymous" href="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/fonts/CrimsonPro-Italic.woff2" /> 19<link rel="preload" as="font" crossorigin="anonymous" href="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/fonts/CrimsonPro-Regular.woff2" /> 20<link rel="canonical" href="https://www.lafuma-moebel.de/blog/komfort-sessel-rueckenschmerzen.html" /> 21<link rel="icon" type="image/x-icon" href="https://www.lafuma-moebel.de/media/favicon/websites/3/MicrosoftTeams-image_42_1__1.png" /> 22<link rel="shortcut icon" type="image/x-icon" href="https://www.lafuma-moebel.de/media/favicon/websites/3/MicrosoftTeams-image_42_1__1.png" /> 23<meta name="google-site-verification" content="ijf9In5Z-y5GFASzW6g_cYNyKqkpHJDS5gN9JM6crvo" /> 24
24<script> 25 window.getWpGA4Cookie = function(name) { 26 match = document.cookie.match(new RegExp(name + '=([^;]+)')); 27 if (match) return decodeURIComponent(match[1].replace(/\+/g, ' ')) ; 28 }; 29 30 window.ga4AllowServices = false; 31 32 var isCookieRestrictionModeEnabled = 0, 33 currentWebsiteId = 3, 34 cookieRestrictionName = 'user_allowed_save_cookie'; 35 36 if (isCookieRestrictionModeEnabled) { 37 allowedCookies = window.getWpGA4Cookie(cookieRestrictionName); 38 39 if (allowedCookies !== undefined) { 40 allowedWebsites = JSON.parse(allowedCookies); 41 42 if (allowedWebsites[currentWebsiteId] === 1) { 43 window.ga4AllowServices = true; 44 } 45 } 46 } else { 47 window.ga4AllowServices = true; 48 } 49 </script>
49 50
50<script> 51 if (window.ga4AllowServices) { 52 window.dataLayer = window.dataLayer || []; 53 var dl4Objects = [{"pageName":"Sessel gegen R\u00fcckenschmerzen: wie w\u00e4hlt man ihn richtig aus? - Lafuma Mobilier","pageType":"other"}]; 54 for (var i in dl4Objects) { 55 window.dataLayer.push({ecommerce: null}); 56 window.dataLayer.push(dl4Objects[i]); 57 } 58 var wpGA4Cookies = ['wp_ga4_user_id','wp_ga4_customerGroup','wp_ga4_user_email']; 59 wpGA4Cookies.map(function (cookieName) { 60 var cookieValue = window.getWpGA4Cookie(cookieName); 61 if (cookieValue) { 62 var dl4Object = {}; 63 dl4Object[cookieName.replace('wp_ga4_', '')] = cookieValue; 64 if (cookieName.replace('wp_ga4_', '') === 'user_id') { 65 dl4Object = { 66 event : 'userAuth', 67 'user_id': window.getWpGA4Cookie(cookieName), 68 'user_email': window.getWpGA4Cookie('wp_ga4_user_email') 69 } 70 } 71 72 if (cookieName.replace('wp_ga4_', '') !== 'user_email') { 73 window.dataLayer.push(dl4Object); 74 } 75 } 76 }); 77 } 78 </script>
78 79 80
80<script> 81 window.addEventListener('init-external-scripts', () => { 82 const scriptToLoad = document.createElement('script'); 83 scriptToLoad.innerHTML = (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 84 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 85 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 86 'https://sgtm.lafuma-moebel.de/cj1p3vxdjhzxbkl.js?aw='+i.replace(/^GTM-/, '')+dl;f.parentNode.insertBefore(j,f); 87 })(window,document,'script','dataLayer','GTM-5FB6Z8V6');; 88 document.querySelector('head').appendChild(scriptToLoad); 89 }, {once: true}); 90 </script>
90 91
91<script type="text/javascript" data-routing="commerce=rum" defer="defer" src="https://rum.hlx.page/.rum/@adobe/helix-rum-js@^2/dist/rum-standalone.js"></script>
91 92<div data-role="aw-raf-advocate-share-service" data-bind="scope: 'aw_raf_share_service'"> 93 <div class="sharethis-sticky-share-buttons"></div> <!-- ko template: getTemplate() --><!-- /ko --> 94</div> 95
96<script type="text/x-magento-init"> 97 { 98 "[data-role=aw-raf-advocate-share-service]": { 99 "Magento_Ui/js/core/app": {"types":[],"components":{"aw_raf_share_service":{"component":"Aheadworks_Raf\/js\/view\/advocate\/share-service","deps":["awRafShareDataProvider"],"children":{"addthis_service":{"component":"Aheadworks_Raf\/js\/view\/advocate\/share\/add-this","config":{"enabled":true}},"sharethis_service":{"component":"Aheadworks_Raf\/js\/view\/advocate\/share\/share-this","config":{"enabled":true}}}},"awRafShareDataProvider":{"component":"Aheadworks_Raf\/js\/view\/advocate\/share\/share-data-provider","deps":["awRafMessageConfigProvider"]},"awRafMessageConfigProvider":{"component":"Aheadworks_Raf\/js\/view\/advocate\/share\/provider","data":{"messageConfig":{"activeRuleData":{"registration_required":true,"friend_off":"10,00\u00a0\u20ac"},"storeName":"Allemagne"}}}}} } 100 } 101</script>
101 102<!-- Klaviyo Onsite JS SDK -->
103<script async type="text/javascript" src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=SppFwN"></script>
vendor: 1 bytes, line 103
103
104<script> 105 var BASE_URL = 'https://www.lafuma-moebel.de/'; 106 var THEME_PATH = 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE'; 107 var COOKIE_CONFIG = { 108 "expires": null, 109 "path": "\u002F", 110 "domain": ".www.lafuma\u002Dmoebel.de", 111 "secure": true, 112 "lifetime": "3600", 113 "cookie_restriction_enabled": false }; 114 var CURRENT_STORE_CODE = 'de_de'; 115 var CURRENT_WEBSITE_ID = '3'; 116 var CURRENT_LOCALE_CODE = 'de_de'; 117 var CURRENT_ZENDESK_LOCALE_CODE = 'de'; 118 119 window.hyva = window.hyva || {} 120 window.current_locale_code = CURRENT_LOCALE_CODE; 121 window.current_zendesk_locale_code = CURRENT_ZENDESK_LOCALE_CODE; 122 123 window.cookie_consent_groups = window.cookie_consent_groups || {} 124 window.cookie_consent_groups['necessary'] = true; 125 126 window.cookie_consent_config = window.cookie_consent_config || {}; 127 window.cookie_consent_config['necessary'] = [].concat( 128 window.cookie_consent_config['necessary'] || [], 129 [ 130 'user_allowed_save_cookie', 131 'form_key', 132 'mage-messages', 133 'private_content_version', 134 'mage-cache-sessid', 135 'last_visited_store', 136 'section_data_ids' 137 ] 138 ); 139</script>
vendor: 1 bytes, line 139
139
140<script> 141 (function( hyva, undefined ) { 142 143 function lifetimeToExpires(options, defaults) { 144 145 const lifetime = options.lifetime || defaults.lifetime; 146 147 if (lifetime) { 148 const date = new Date; 149 date.setTime(date.getTime() + lifetime * 1000); 150 return date; 151 } 152 153 return null; 154 } 155 156 function generateRandomString() { 157 158 const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 159 length = 16; 160 161 let formKey = '', 162 charactersLength = allowedCharacters.length; 163 164 for (let i = 0; i < length; i++) { 165 formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] 166 } 167 168 return formKey; 169 } 170 171 const sessionCookieMarker = {noLifetime: true} 172 173 const cookieTempStorage = {}; 174 175 const internalCookie = { 176 get(name) { 177 const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 178 return v ? v[2] : null; 179 }, 180 set(name, value, days, skipSetDomain) { 181 let expires, 182 path, 183 domain, 184 secure, 185 samesite; 186 187 const defaultCookieConfig = { 188 expires: null, 189 path: '/', 190 domain: null, 191 secure: false, 192 lifetime: null, 193 samesite: 'lax' 194 }; 195 196 const cookieConfig = window.COOKIE_CONFIG || {}; 197 198 expires = days && days !== sessionCookieMarker 199 ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) 200 : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; 201 202 path = cookieConfig.path || defaultCookieConfig.path; 203 domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); 204 secure = cookieConfig.secure || defaultCookieConfig.secure; 205 samesite = cookieConfig.samesite || defaultCookieConfig.samesite; 206 207 document.cookie = name + "=" + encodeURIComponent(value) + 208 (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + 209 (path ? '; path=' + path : '') + 210 (domain ? '; domain=' + domain : '') + 211 (secure ? '; secure' : '') + 212 (samesite ? '; samesite=' + samesite : 'lax'); 213 }, 214 isWebsiteAllowedToSaveCookie() { 215 const allowedCookies = this.get('user_allowed_save_cookie'); 216 if (allowedCookies) { 217 const allowedWebsites = JSON.parse(unescape(allowedCookies)); 218 219 return allowedWebsites[CURRENT_WEBSITE_ID] === 1; 220 } 221 return false; 222 }, 223 getGroupByCookieName(name) { 224 const cookieConsentConfig = window.cookie_consent_config || {}; 225 let group = null; 226 for (let prop in cookieConsentConfig) { 227 if (!cookieConsentConfig.hasOwnProperty(prop)) continue; 228 if (cookieConsentConfig[prop].includes(name)) { 229 group = prop; 230 break; 231 } 232 } 233 return group; 234 }, 235 isCookieAllowed(name) { 236 const cookieGroup = this.getGroupByCookieName(name); 237 return cookieGroup 238 ? window.cookie_consent_groups[cookieGroup] 239 : this.isWebsiteAllowedToSaveCookie(); 240 }, 241 saveTempStorageCookies() { 242 for (const [name, data] of Object.entries(cookieTempStorage)) { 243 if (this.isCookieAllowed(name)) { 244 this.set(name, data['value'], data['days'], data['skipSetDomain']); 245 delete cookieTempStorage[name]; 246 } 247 } 248 } 249 }; 250 251 hyva.getCookie = (name) => { 252 const cookieConfig = window.COOKIE_CONFIG || {}; 253 254 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 255 return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; 256 } 257 258 return internalCookie.get(name); 259 } 260 261 hyva.setCookie = (name, value, days, skipSetDomain) => { 262 const cookieConfig = window.COOKIE_CONFIG || {}; 263 264 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 265 cookieTempStorage[name] = {value, days, skipSetDomain}; 266 return; 267 } 268 return internalCookie.set(name, value, days, skipSetDomain); 269 } 270 271 272 hyva.setSessionCookie = (name, value, skipSetDomain) => { 273 return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) 274 } 275 276 hyva.getBrowserStorage = () => { 277 const browserStorage = window.localStorage || window.sessionStorage; 278 if (!browserStorage) { 279 console.warn('Browser Storage is unavailable'); 280 return false;
281 } 282 try { 283 browserStorage.setItem('storage_test', '1'); 284 browserStorage.removeItem('storage_test'); 285 } catch (error) { 286 console.warn('Browser Storage is not accessible', error); 287 return false; 288 } 289 return browserStorage; 290 } 291 292 hyva.postForm = (postParams) => { 293 const form = document.createElement("form"); 294 295 let data = postParams.data; 296 297 if (! postParams.skipUenc && ! data.uenc) { 298 data.uenc = btoa(window.location.href); 299 } 300 form.method = "POST"; 301 form.action = postParams.action; 302 303 Object.keys(postParams.data).map(key => { 304 const field = document.createElement("input"); 305 field.type = 'hidden' 306 field.value = postParams.data[key]; 307 field.name = key; 308 form.appendChild(field); 309 }); 310 311 const form_key = document.createElement("input"); 312 form_key.type = 'hidden'; 313 form_key.value = hyva.getFormKey(); 314 form_key.name="form_key"; 315 form.appendChild(form_key); 316 317 document.body.appendChild(form); 318 319 form.submit(); 320 } 321 322 hyva.getFormKey = function () { 323 let formKey = hyva.getCookie('form_key'); 324 325 if (!formKey) { 326 formKey = generateRandomString(); 327 hyva.setCookie('form_key', formKey); 328 } 329 330 return formKey; 331 } 332 333 hyva.formatPrice = (value, showSign, options = {}) => { 334 const groupSeparator = options.groupSeparator; 335 const decimalSeparator = options.decimalSeparator 336 delete options.groupSeparator; 337 delete options.decimalSeparator; 338 const formatter = new Intl.NumberFormat( 339 'de\u002DDE', 340 Object.assign({ 341 style: 'currency', 342 currency: 'EUR', 343 signDisplay: showSign ? 'always' : 'auto' 344 }, options) 345 ); 346 return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? 347 formatter.formatToParts(value).map(({type, value}) => { 348 switch (type) { 349 case 'currency': 350 return '\u20AC' || value; 351 case 'minusSign': 352 return '- '; 353 case 'plusSign': 354 return '+ '; 355 case 'group': 356 return groupSeparator !== undefined ? groupSeparator : value; 357 case 'decimal': 358 return decimalSeparator !== undefined ? decimalSeparator : value; 359 default : 360 return value; 361 } 362 }).reduce((string, part) => string + part) : 363 formatter.format(value); 364 } 365 366 const formatStr = function (str, nStart) { 367 const args = Array.from(arguments).slice(2); 368 369 return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { 370 const idx = parseInt(n) - nStart; 371 372 if (args[idx] === null || args[idx] === void 0) { 373 return m; 374 } 375 return p.length % 2 376 ? p.slice(0, -1).replace('%%', '%') + args[idx] 377 : p.replace('%%', '%') + n; 378 }) 379 } 380 381 hyva.str = function (string) { 382 const args = Array.from(arguments); 383 args.splice(1, 0, 1); 384 385 return formatStr.apply(undefined, args); 386 } 387 388 hyva.strf = function () { 389 const args = Array.from(arguments); 390 args.splice(1, 0, 0); 391 392 return formatStr.apply(undefined, args); 393 } 394 395 /** 396 * Take a html string as `content` parameter and 397 * extract an element from the DOM to replace in 398 * the current page under the same selector, 399 * defined by `targetSelector` 400 */ 401 hyva.replaceDomElement = (targetSelector, content) => { 402 // Parse the content and extract the DOM node using the `targetSelector` 403 const parser = new DOMParser(); 404 const doc = parser.parseFromString(content, 'text/html');
405 const contentNode = doc.querySelector(targetSelector); 406 407 // Bail if content or target can't be found 408 if (!contentNode || !document.querySelector(targetSelector)) { 409 return; 410 } 411 412 hyva.activateScripts(contentNode); 413 414 // Replace the old DOM node with the new content 415 document.querySelector(targetSelector).replaceWith(contentNode); 416 417 // Reload customerSectionData and display cookie-messages if present 418 window.dispatchEvent(new CustomEvent("reload-customer-section-data")); 419 hyva.initMessages(); 420 } 421 422 hyva.removeScripts = (contentNode) => { 423 const scripts = contentNode.getElementsByTagName('script'); 424 for (let i = 0; i < scripts.length; i++) { 425 scripts[i].parentNode.removeChild(scripts[i]); 426 } 427 const templates = contentNode.getElementsByTagName('template'); 428 for (let i = 0; i < templates.length; i++) { 429 const container = document.createElement('div'); 430 container.innerHTML = templates[i].innerHTML; 431 hyva.removeScripts(container); 432 templates[i].innerHTML = container.innerHTML; 433 } 434 } 435 436 hyva.activateScripts = (contentNode) => { 437 // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM. 438 const scripts = Array.from(contentNode.getElementsByTagName('script')); 439 440 // Iterate over all script tags to duplicate+inject each into the head 441 for (const original of scripts) { 442 const script = document.createElement('script'); 443 original.type && (script.type = original.type); 444 script.innerHTML = original.innerHTML; 445 446 // Remove the original (non-executing) script from the contentNode 447 original.parentNode.removeChild(original) 448 449 // Add script to head 450 document.head.appendChild(script); 451 } 452 453 return contentNode; 454 } 455 456 const replace = {['+']: '-', ['/']: '_', ['=']: ','}; 457 hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); 458 459 let currentTrap; 460 461 const focusableElements = (rootElement) => { 462 const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; 463 return Array.from(rootElement.querySelectorAll(selector)) 464 .filter(el => { 465 return el.style.display !== 'none' 466 && !el.disabled 467 && el.tabIndex !== -1 468 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) 469 }) 470 } 471 472 const focusTrap = (e) => { 473 const isTabPressed = e.key === 'Tab' || e.keyCode === 9; 474 if (!isTabPressed) return; 475 476 const focusable = focusableElements(currentTrap) 477 const firstFocusableElement = focusable[0] 478 const lastFocusableElement = focusable[focusable.length - 1] 479 480 e.shiftKey 481 ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) 482 : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) 483 }; 484 485 hyva.releaseFocus = (rootElement) => { 486 if (currentTrap && (!rootElement || rootElement === currentTrap)) { 487 currentTrap.removeEventListener('keydown', focusTrap) 488 currentTrap = null 489 } 490 } 491 hyva.trapFocus = (rootElement) => { 492 if (!rootElement) return; 493 hyva.releaseFocus() 494 currentTrap = rootElement 495 rootElement.addEventListener('keydown', focusTrap) 496 const firstElement = focusableElements(rootElement)[0] 497 firstElement && firstElement.focus() 498 } 499 500 hyva.safeParseNumber = (rawValue) => { 501 const number = rawValue ? parseFloat(rawValue) : null; 502 503 return Array.isArray(number) || isNaN(number) ? rawValue : number; 504 } 505 506 const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(''); 507 hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => { 508 509 const camelCase = toCamelCase(name);
510 const key = '__hyva_bool_' + name 511 512 return new Proxy(Object.assign( 513 additionalMethods, 514 { 515 [key]: !!value, 516 [name]() {return !!this[key]}, 517 ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine 518 ['not' + camelCase]() {return !this[key]}, 519 ['toggle' + camelCase]() {this[key] = !this[key]}, 520 [`set${camelCase}True`]() {this[key] = true}, 521 [`set${camelCase}False`]() {this[key] = false}, 522 } 523 ), { 524 set(target, prop, value) { 525 return prop === name 526 ? (target[key] = !!value) 527 : Reflect.set(...arguments); 528 } 529 }) 530 } 531 532 hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) 533 window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true}); 534 window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) 535 536 }( window.hyva = window.hyva || {} )); 537 //# sourceURL=hyva.js 538</script>
vendor: 1 bytes, line 538
538
539<script type="speculationrules"> 540{ 541 "tag": "Hyva Theme", 542 "prefetch": [{ 543 "source": "document", 544 "where": { 545 "and": [ 546 { "href_matches": "/*" }, 547 { "not": { 548 "href_matches": ["/customer/*","/search/*","/sales/*","/wishlist/*","/checkout/*","/paypal/*","/newsletter/*","/stores/store/redirect/*"] }}, 549 { "not": { 550 "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"] 551 }} 552 ] 553 }, 554 "eagerness": "moderate" 555 }] 556} 557</script>
vendor: 1 bytes, line 557
557
558<script> 559 (() => { 560 const addScriptToHead = (script) => { 561 const scriptToLoad = document.createElement('script'); 562 scriptToLoad.setAttribute('src', script); 563 document.querySelector('head').appendChild(scriptToLoad); 564 } 565 566 if (globalThis.navigator && !globalThis.navigator.userAgent.includes('Chrome-Lighthouse')) { 567 addScriptToHead('https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Hyva_MagentoDataServices/js/storefront-event-collector.js') 568 addScriptToHead('https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Hyva_MagentoDataServices/js/storefront-events-sdk.js') 569 addScriptToHead('https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Hyva_MagentoLiveSearch/js/sdk.js') 570 addScriptToHead('https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Hyva_MagentoProductRecommendations/js/recs-sdk.js') 571 } 572 })(); 573</script>
573 574 575
576<script> 577 (function () { 578 let amSwiperProcessed = false; 579 580 window.addEventListener('load-amswiper', () => { 581 if (amSwiperProcessed) { 582 window?.Swiper && window.dispatchEvent(new CustomEvent('amswiper-loaded', {})); 583 return; 584 } 585 586 const script = document.createElement('script'); 587 script.src = 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Amasty_LibSwiperJs/js/vendor/swiper/swiper.min.js'; 588 script.async = true; 589 document.body.appendChild(script); 590 591 amSwiperProcessed = true; 592 593 script.onload = () => { 594 window.dispatchEvent(new CustomEvent('amswiper-loaded', {})); 595 } 596 597 const stylesHref = 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Amasty_LibSwiperJs/vendor/swiper/swiper.min.css'; 598 599 if (document.querySelector(`link[href="${stylesHref}"]`)) { 600 return; 601 } 602 603 const styles = document.createElement('link'); 604 styles.rel = 'stylesheet'; 605 styles.type = 'text/css'; 606 styles.href = stylesHref; 607 608 document.head.appendChild(styles); 609 }); 610 }()); 611</script>
vendor: 1 bytes, line 611
611
612<script> 613 'use strict'; 614 615 (function () { 616 window.initAmAppendLabels = { 617 selectors: { 618 labelWrapper: '.amlabel-position-wrapper' 619 }, 620 /** 621 * We use approach from hyva.replaceDomElement method to replace labels and init components 622 * 623 * @param {HTMLElement} labelContainer 624 * @param {string} labelHtml 625 * @return {void} 626 */ 627 appendLabels: function (labelContainer, labelHtml) { 628 const parser = new DOMParser(); 629 const doc = parser.parseFromString(labelHtml, 'text/html'); 630 const nodes = doc.querySelectorAll(this.selectors.labelWrapper); 631 632 if (!nodes) { 633 return; 634 } 635 636 labelContainer.append(...nodes); 637 } 638 }; 639 })(); 640</script>
vendor: 1 bytes, line 640
640
641<script> 642 (function () { 643 let amSplideProcessed = false; 644 645 window.addEventListener('load-amsplide', () => { 646 if (amSplideProcessed) { 647 window?.Splide && window.dispatchEvent(new CustomEvent('amsplide-loaded', {})); 648 return; 649 } 650 651 const script = document.createElement('script'); 652 script.src = 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Amasty_LibSplideJs/4.1.3/js/splide/splide.min.js'; 653 script.async = true; 654 document.body.appendChild(script); 655 656 amSplideProcessed = true; 657 658 script.onload = () => { 659 window.dispatchEvent(new CustomEvent('amsplide-loaded', {})); 660 } 661 662 const stylesHref = 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Amasty_LibSplideJs/4.1.3/css/splide/splide.min.css'; 663 664 if (document.querySelector(`link[href="${stylesHref}"]`)) { 665 return; 666 } 667 668 const styles = document.createElement('link'); 669 styles.rel = 'stylesheet'; 670 styles.type = 'text/css'; 671 styles.href = stylesHref; 672 673 document.head.appendChild(styles); 674 }); 675 }()); 676</script>
vendor: 1 bytes, line 676
676
677<script> 678 'use strict'; 679 680 function amXnotifSubscribeComponentFactory(config) { 681 return { 682 productId: config.productId || null, 683 isAvailable: config.isAvailable || false, 684 isShowAlert: config.isShowAlert || false, 685 isAvailableConfigurableSimple: true, 686 isShowAlertConfigurableSimple: false, 687 isOutofstockConfigurable: config.isOutofstockConfigurable || false, 688 title: config.title || 'Availability', 689 attributesCount: config.attributesCount || 0, 690 options: {}, 691 productIndex: config.productId || null, 692 hideAddToCartBtn: "", 693 addToCartButton: "", 694 inStockLabel: 'Auf Lager', 695 outOfStockLabel: 'Nicht lieferbar', 696 notificationLabel: 'Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist', 697 containerClass: '.product-item, .product-item-info, .product-info-main, .item.product', 698 699 init() { 700 this.updateOptions(); 701 702 if (typeof this.$watch === 'function') { 703 this.$watch('isAvailable', (value) => { 704 this.toggleElements(value); 705 }); 706 } 707 this.$nextTick(() => { 708 this.toggleElements(this.isAvailable); 709 }); 710 }, 711 712 toggleElements(isAvailable) { 713 const container = this.$el ? this.$el.closest(this.containerClass) : null; 714 if (!container) return; 715 716 const selectors = [ 717 '.product-info-price', 718 'button[data-addto="cart"]', 719 '.action.tocart', 720 'form[data-role="tocart-form"]', 721 '[x-data="initQtyField"]', 722 '[x-data="initQtyField()"]' 723 ]; 724 725 selectors.forEach(selector => { 726 const elements = container.querySelectorAll(selector); 727 elements.forEach(el => { 728 if (el.closest(this.containerClass) === container) { 729 el.style.display = isAvailable ? '' : 'none'; 730 } 731 }); 732 }); 733 }, 734 735 getSubscriptionUrl(productIndex, type) { 736 const urlParts = [ 737 'xnotif/email/', 738 type, 739 '/product_id/', 740 productIndex, 741 (parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', 742 '/uenc/', 743 config.encodedUrl || '' 744 ]; 745 return BASE_URL + urlParts.join(''); 746 }, 747 748 isEventFromSameProduct(event, element) { 749 const source = (event.detail ? event.detail.sourceElement : null) || window.__amxnotifLastSourceElement; 750 if (!source || !(source instanceof Element) || !(element instanceof Element)) { 751 return true; 752 } 753 754 let sourceContainer = source.closest('.product-item, .item.product, .cart.item, .cart-item'); 755 let targetContainer = element.closest('.product-item, .item.product, .cart.item, .cart-item'); 756 757 if (!sourceContainer) sourceContainer = source.closest('.product-item-info, .product-info-main'); 758 if (!targetContainer) targetContainer = element.closest('.product-item-info, .product-info-main'); 759 760 return (sourceContainer || targetContainer) ? (sourceContainer === targetContainer) : true; 761 }, 762 763 getSimpleProduct(data, el) { 764 if (parseInt(data.productId) !== parseInt(this.productId) || !data.selectedValues) return; 765 const children = config.childProducts || {}; 766 const childrenAlertStatus = config.childProductsAlertStatus || {}; 767 const swatchesCount = parseInt(config.attributesCount) || 0; 768 const selectedCount = Object.keys(data.selectedValues).length; 769 const allSelected = selectedCount >= swatchesCount; 770 771 this.togglePriceLabel(allSelected); 772 773 if (!allSelected) { 774 this.isAvailable = true; 775 this.isAvailableConfigurableSimple = true; 776 this.isShowAlertConfigurableSimple = false;
777 this.updateOptions(); 778 return; 779 } 780 781 let resolvedIndex = data.productIndex || 0; 782 if (!resolvedIndex && data.selectedValues && config.indexMapping) { 783 const keyParts = Object.keys(data.selectedValues).map(attrId => parseInt(attrId) + ':' + data.selectedValues[attrId]); 784 keyParts.sort(); 785 const key = keyParts.join(','); 786 if (config.indexMapping[key]) { 787 resolvedIndex = config.indexMapping[key]; 788 } 789 } 790 791 this.productIndex = resolvedIndex; 792 const selectedChildState = children[this.productIndex]; 793 const selectedChildAlertState = childrenAlertStatus[this.productIndex]; 794 this.isAvailableConfigurableSimple = (typeof selectedChildState !== 'undefined') ? Boolean(Number(selectedChildState)) : true; 795 this.isShowAlertConfigurableSimple = (typeof selectedChildAlertState !== 'undefined') ? Boolean(Number(selectedChildAlertState)) : true; 796 797 this.isAvailable = this.isAvailableConfigurableSimple; 798 this.isShowAlert = this.isShowAlertConfigurableSimple; 799 this.updateOptions(); 800 }, 801 802 togglePriceLabel(isFullSelection) { 803 const container = this.$el ? this.$el.closest(this.containerClass) : null; 804 if (!container) return; 805 const labels = container.querySelectorAll('.price-label'); 806 labels.forEach(el => { 807 if (isFullSelection) { 808 el.classList.add('hidden'); 809 el.style.setProperty('display', 'none', 'important'); 810 } else { 811 el.classList.remove('hidden', 'invisible'); 812 el.style.setProperty('display', 'inline-block', 'important'); 813 } 814 }); 815 }, 816 817 updateOptions() { 818 this.options = { 819 additionalClass: this.isAvailableConfigurableSimple ? 'bg-green-500' : 'bg-red-500', 820 label: this.isAvailableConfigurableSimple ? this.inStockLabel : this.outOfStockLabel, 821 categoryNotificationLabel: this.isShowAlertConfigurableSimple ? this.notificationLabel : '' 822 }; 823 }, 824 825 getAvailable() { 826 this.updateOptions(); 827 return this.isAvailable; 828 }, 829 830 getShowAlert() { 831 this.updateOptions(); 832 return this.isShowAlert; 833 } 834 }; 835 } 836 837 (() => { 838 if (window.__amxnotifSafetyInjected) return; 839 window.__amxnotifSafetyInjected = true; 840 841 window.amxnotif_wrap_attributes = (attributes) => { 842 if (!attributes || typeof attributes !== 'object' || attributes.__amxnotifWrapped) { 843 return attributes; 844 } 845 846 const items = Array.isArray(attributes) ? attributes : Object.values(attributes); 847 const map = {}; 848 items.forEach((item) => { 849 const id = item && (item.id || item.attributeId || item.attribute_id); 850 if (id) map[id] = item; 851 }); 852 853 const wrapped = Object.assign(items, map); 854 Object.defineProperty(wrapped, '__amxnotifWrapped', { value: true, enumerable: false }); 855 return wrapped; 856 }; 857 858 859 window.amxnotif_wrap_config = (component) => { 860 if (!component || typeof component !== 'object' || component.__amxnotifWrapped) return; 861 component.__amxnotifWrapped = true; 862 863 if (typeof component.calculatePriceLabelVisibility === 'function') { 864 const originalVisibility = component.calculatePriceLabelVisibility; 865 component.calculatePriceLabelVisibility = function() { 866 originalVisibility.apply(this, arguments); 867 868 this.showRegularPriceLabel = true; 869 }; 870 } 871 872 if (!component.optionConfig && component.config) component.optionConfig = component.config; 873 if (!component.swatchConfig) { 874 for (let k in component) { 875 if (k.toLowerCase().includes('swatch') && k.toLowerCase().includes('config')) { 876 component.swatchConfig = component[k]; 877 break; 878 } 879 } 880 } 881 882 if (component.optionConfig && component.optionConfig.attributes) { 883 component.optionConfig.attributes = window.amxnotif_wrap_attributes(component.optionConfig.attributes); 884 } 885 886 const scheduleInjectIds = (ctx) => { 887 const inject = () => { if (typeof ctx._injectAttributeIds === 'function') ctx._injectAttributeIds(); }; 888 if (typeof ctx.$nextTick === 'function') ctx.$nextTick(inject); else setTimeout(inject, 50); 889 }; 890 891 const regularMethods = { 892 getOptions: function(attrId) { 893 return window.amxnotif_get_options(this.optionConfig, attrId); 894 }, 895 findAttributeId: function() { 896 if (this.item && this.item._amxnotif_attribute_id) { 897 return this.item._amxnotif_attribute_id; 898 } 899 const el = this.$el; 900 if (!el) return null; 901 let attrId = el.closest('[data-attribute-id]')?.dataset.attributeId; 902 if (!attrId) { 903 const input = (el.tagName === 'INPUT' && (el.name || '').includes('super_attribute')) 904 ? el 905 : el.querySelector('input[name*="super_attribute"]') 906 || el.parentElement?.querySelector('input[name*="super_attribute"]'); 907 const nameMatch = input?.name?.match(/super_attribute\[(\d+)\]/); 908 if (nameMatch) attrId = nameMatch[1]; 909 } 910 return attrId || null; 911 }, 912 _injectAttributeIds: function() { 913 const attrs = this.optionConfig?.attributes;
914 if (!attrs || typeof attrs.forEach !== 'function') return; 915 const root = this.$el || document; 916 attrs.forEach(attr => { 917 if (!attr) return; 918 const id = attr.id || attr.attributeId || attr.attribute_id; 919 if (!id) return; 920 const code = attr.code || attr.attribute_code || ''; 921 const candidates = root.querySelectorAll ? root.querySelectorAll('.swatch-attribute') : []; 922 candidates.forEach(div => { 923 if (div.dataset.attributeId) return; 924 if (code && (div.classList.contains(code) || div.className.includes(code))) { 925 div.dataset.attributeId = id; 926 } 927 }); 928 }); 929 }, 930 init: function() { 931 scheduleInjectIds(this); 932 if (typeof this.$watch === 'function') { 933 this.$watch('showSwatches', (val) => { if (val) scheduleInjectIds(this); }); 934 } 935 }, 936 unsetActiveTooltipItem: function() { this.activeTooltipItem = false; }, 937 _getItemId: function() { 938 if (this.item && this.item.id) return this.item.id; 939 if (this.itemId) return this.itemId; 940 const el = this.$el; 941 if (!el) return null; 942 const input = (el.tagName === 'INPUT' && el.name?.includes('super_attribute')) ? el : el.querySelector('input[name*="super_attribute"]'); 943 return el.dataset.optionId || (input ? input.value : el.closest('[data-option-id]')?.dataset.optionId); 944 } 945 }; 946 947 // Standardize component methods for cross-theme compatibility 948 component.getOptionsByAttrId = function(attrId) { 949 const id = attrId || (this.$el ? this.$el.dataset.attributeId : null) || this.findAttributeId(); 950 if (!id) return []; 951 const attributes = this.optionConfig?.attributes || []; 952 const attr = attributes[id] || (Array.isArray(attributes) ? attributes.find(a => a.id == id) : null); 953 return (attr && attr.options) ? attr.options : []; 954 }; 955 956 component.getAllAttributeOptions = function() { 957 return this.getOptionsByAttrId(); 958 }; 959 960 // Apply helper methods to component if not already present 961 for (let name in regularMethods) { 962 if (typeof component[name] === 'undefined') { 963 component[name] = regularMethods[name]; 964 } 965 } 966 967 // Wrap the init method to inject data-attribute-id into DOM after Alpine renders 968 if (typeof component.init === 'function' && !component.__amxnotifInitWrapped) { 969 const originalInit = component.init; 970 component.init = function() { 971 originalInit.apply(this, arguments); 972 scheduleInjectIds(this); 973 if (typeof this.$watch === 'function') { 974 this.$watch('showSwatches', (val) => { if (val) scheduleInjectIds(this); }); 975 } 976 }; 977 component.__amxnotifInitWrapped = true; 978 } 979 980 if (component.optionConfig && component.optionConfig.attributes) { 981 const attrs = component.optionConfig.attributes; 982 for (let attrId in attrs) { 983 const attr = attrs[attrId]; 984 if (attr && attr.options) { 985 attr.options.forEach(opt => { 986 opt._amxnotif_attribute_id = attrId; 987 }); 988 } 989 } 990 } 991 }; 992 })(); 993</script>
993 994
995<script> 996 window.addEventListener('load', function () { 997 window.magentoStorefrontEvents = magentoStorefrontEvents; 998 magentoStorefrontEvents.context.setStorefrontInstance( 999 {"storeUrl":"https:\/\/www.lafuma-moebel.de\/","websiteId":3,"websiteCode":"de","storeId":3,"storeCode":"de","storeViewId":3,"storeViewCode":"de_de","websiteName":"Allemagne","storeName":"Lafuma Mobilier DE","storeViewName":"Allemagne","baseCurrencyCode":"EUR","storeViewCurrencyCode":"EUR","catalogExtensionVersion":"103.4.17","environmentId":"36e0fe3f-653b-4443-84c0-b90d99155ba0","environment":"Production","storefrontTemplate":"Hyva"} ); 1000 magentoStorefrontEvents.context.setMagentoExtension({ 1001 magentoExtensionVersion: "8.0.1", 1002 }); 1003 magentoStorefrontEvents.context.setDataServicesExtension({ 1004 version: "8.0.1", 1005 }); 1006 magentoStorefrontEvents.context.setPage({ 1007 pageType: "Default" 1008 }); 1009 magentoStorefrontEvents.context.setContext("pageExtended", { 1010 action: "page-view" 1011 }); 1012 1013 let shopperId = "guest"; 1014 magentoStorefrontEvents.context.setShopper({ shopperId: shopperId }); 1015 1016 1017 magentoStorefrontEvents.publish.pageView(); 1018 }); 1019 1020 function getCustomerIdFromDataServices() { 1021 let customerId = hyva.getCookie("dataservices_customer_id"); 1022 return customerId ? decodeURI(customerId).replace(/[^\w\s]/gi, "") : null; 1023 } 1024 1025 function getCustomerGroupFromDataServices() { 1026 try { 1027 const decodedString = decodeURIComponent(hyva.getCookie("dataservices_customer_group")); 1028 return decodedString ? JSON.parse(decodedString) : null; 1029 } catch (error) { 1030 console.error("Failed to parse customer group data:", error); 1031 return null; 1032 } 1033 } 1034</script>
1034 1035</head> 1036<body id="html-body" class="amblog-index-post page-layout-1column"> 1037<noscript><iframe src="https://sgtm.lafuma-moebel.de/ns.html?id=GTM-5FB6Z8V6" 1038 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 1039<input name="form_key" type="hidden" value="Oww80Geo7YJx0a6o" /> 1040 <noscript> 1041 <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"> 1042 <div class="container text-center"> 1043 <p> 1044 <strong>JavaScript scheint in Ihrem Browser deaktiviert zu sein.</strong> 1045 <span> 1046 Um unsere Website in bester Weise zu erfahren, aktivieren Sie Javascript in Ihrem Browser. </span> 1047 </p> 1048 </div> 1049 </section> 1050 </noscript> 1051 1052
1053<script> 1054 document.body.addEventListener('touchstart', () => {}, {passive: true}) 1055</script>
1055 1056
1057<script data-cfasync="false"> 1058 window.amastyCookieManager = window.amastyCookieManager || {}; 1059</script>
1059 1060
1061<script> 1062 (function(hyva) { 1063 const formValidationRules = { 1064 required(value, options, field, context) { 1065 const el = field.element.type === 'hidden' ? createTextInputFrom(field.element) : field.element, 1066 fieldName = getFieldName(field), 1067 msg = fieldName 1068 ? hyva.str('\u00251\u0020field\u0020is\u0020required.', fieldName) 1069 : 'Vervollst\u00E4ndigen\u0020Sie\u0020bitte\u0020die\u0020notwendigen\u0020Angaben.'; 1070 1071 if (el.type === 'radio' || el.type === 'checkbox') { 1072 return (value === undefined || value.length === 0) ? msg : true; 1073 } 1074 1075 el.setAttribute('required', ''); 1076 el.checkValidity(); 1077 1078 return el.validity.valueMissing ? msg : true; 1079 }, 1080 maxlength(value, options, field, context) { 1081 const n = Number(options) 1082 if (value.length > n) { 1083 const fieldName = getFieldName(field); 1084 return fieldName 1085 ? n === 1 1086 ? hyva.str('\u00251\u0020field\u0020cannot\u0020be\u0020longer\u0020than\u00201\u0020character.', fieldName) 1087 : hyva.str('\u00251\u0020field\u0020cannot\u0020be\u0020longer\u0020than\u0020\u00252\u0020characters.', fieldName, options) 1088 : n === 1 1089 ? 'Please\u0020enter\u0020no\u0020more\u0020than\u00201\u0020character.' 1090 : hyva.strf('Please\u0020enter\u0020no\u0020more\u0020than\u0020\u00250\u0020characters.', options); 1091 } 1092 return true; 1093 }, 1094 minlength(value, options, field, context) { 1095 const n = Number(options) 1096 if (value.length > 0 && value.length < n) { 1097 const fieldName = getFieldName(field); 1098 return fieldName 1099 ? n === 1 1100 ? hyva.str('\u00251\u0020field\u0020must\u0020be\u0020at\u0020least\u00201\u0020character\u0020long.', fieldName) 1101 : hyva.str('\u00251\u0020field\u0020must\u0020be\u0020at\u0020least\u0020\u00252\u0020characters\u0020long.', fieldName, options) 1102 : n === 1 1103 ? 'Please\u0020enter\u0020at\u0020least\u00201\u0020character.' 1104 : hyva.strf('Please\u0020enter\u0020at\u0020least\u0020\u00250\u0020characters.', options); 1105 } 1106 return true; 1107 }, 1108 max(value, options, field, context) { 1109 field.element.setAttribute('max', options); 1110 field.element.checkValidity(); 1111 if (field.element.validity.rangeOverflow) { 1112 const fieldName = getFieldName(field); 1113 return fieldName 1114 ? hyva.str('\u00251\u0020field\u0020must\u0020contain\u0020a\u0020value\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00252\u0022.', fieldName, options) 1115 : hyva.strf('Please\u0020enter\u0020a\u0020value\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00250\u0022.', options); 1116 } 1117 return true; 1118 }, 1119 min(value, options, field, context) { 1120 field.element.setAttribute('min', options); 1121 field.element.checkValidity(); 1122 if (field.element.validity.rangeUnderflow) { 1123 const fieldName = getFieldName(field); 1124 return fieldName 1125 ? hyva.str('\u00251\u0020field\u0020must\u0020contain\u0020a\u0020value\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00252\u0022.', fieldName, options) 1126 : hyva.strf('Please\u0020enter\u0020a\u0020value\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00250\u0022.', options); 1127 } 1128 return true; 1129 }, 1130 step(value, options, field, context) { 1131 field.element.setAttribute('step', options); 1132 field.element.checkValidity(); 1133 if (field.element.validity.stepMismatch) { 1134 const val = Number(value), 1135 step = Number(options), 1136 fieldName = getFieldName(field), 1137 nearestLowerValue = Math.floor(val / step) * step,
1138 nearestUpperValue = Math.ceil(val / step) * step; 1139 return fieldName 1140 ? hyva.str('\u00251\u0020field\u0020is\u0020invalid.\u0020The\u0020two\u0020nearest\u0020valid\u0020values\u0020are\u0020\u0022\u00252\u0022\u0020and\u0020\u0022\u00253\u0022.', fieldName, nearestLowerValue, nearestUpperValue) 1141 : hyva.strf('Please\u0020enter\u0020a\u0020valid\u0020value.\u0020The\u0020two\u0020nearest\u0020valid\u0020values\u0020are\u0020\u0022\u00250\u0022\u0020and\u0020\u0022\u00251\u0022.', nearestLowerValue, nearestUpperValue); 1142 } 1143 return true; 1144 }, 1145 pattern(value, options, field, context) { 1146 field.element.setAttribute('pattern', options); 1147 field.element.checkValidity(); 1148 if (field.element.validity.patternMismatch) { 1149 const fieldName = getFieldName(field); 1150 return fieldName 1151 ? field.element.pattern 1152 ? hyva.str('\u00251\u0020field\u0020must\u0020match\u0020the\u0020requested\u0020format\u003A\u0020\u00252.', fieldName, field.element.pattern) 1153 : hyva.str('\u00251\u0020field\u0020must\u0020match\u0020the\u0020requested\u0020format.', fieldName) 1154 : field.element.pattern 1155 ? hyva.strf('Please\u0020match\u0020the\u0020requested\u0020format\u003A\u0020\u00250.', field.element.pattern) 1156 : 'Please\u0020match\u0020the\u0020requested\u0020format.'; 1157 } 1158 return true; 1159 }, 1160 email(value, options, field, context) { 1161 const rule = /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i; 1162 if (value.length > 0 && !rule.test(value)) { 1163 const fieldName = getFieldName(field); 1164 return fieldName 1165 ? hyva.str('\u00251\u0020field\u0020must\u0020contain\u0020a\u0020valid\u0020email\u0020address\u0020\u0028Ex\u003A\u0020johndoe\u0040domain.com\u0029.', fieldName) 1166 : 'Bitte\u0020geben\u0020Sie\u0020eine\u0020g\u00FCltige\u0020E\u002DMail\u0020Adresse\u0020ein\u0020\u0028z.B.\u0020johndoe\u0040domain.com\u0029.'; 1167 } 1168 return true; 1169 }, 1170 password(value, options, field, context) { 1171 const rule = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/; 1172 if (value.length > 0 && !rule.test(value)) { 1173 const fieldName = getFieldName(field); 1174 return fieldName 1175 ? hyva.str('\u00251\u0020field\u0020must\u0020contain\u0020at\u0020least\u0020one\u0020upper\u0020case,\u0020one\u0020lower\u0020case,\u0020one\u0020digit\u0020and\u0020one\u0020special\u0020character\u0020\u0028\u0023\u003F\u0021\u0040\u0024\u0025\u005E\u0026\u002A\u002D\u0029', fieldName) 1176 : 'Please\u0020provide\u0020at\u0020least\u0020one\u0020upper\u0020case,\u0020one\u0020lower\u0020case,\u0020one\u0020digit\u0020and\u0020one\u0020special\u0020character\u0020\u0028\u0023\u003F\u0021\u0040\u0024\u0025\u005E\u0026\u002A\u002D\u0029'; 1177 } 1178 return true; 1179 }, 1180 equalTo(value, options, field, context) { 1181 const dependencyField = context.fields[options].element; 1182 if (value !== dependencyField.value) { 1183 const dependencyFieldName = 1184 dependencyField.label || 1185 dependencyField.title || 1186 (dependencyField.labels && dependencyField.labels[0] && dependencyField.labels[0].innerText) || 1187 dependencyField.name, 1188 fieldName = getFieldName(field); 1189 return fieldName
1190 ? hyva.str('\u00251\u0020field\u0020value\u0020must\u0020be\u0020the\u0020same\u0020as\u0020\u0022\u00252\u0022.', fieldName, dependencyFieldName) 1191 : hyva.strf('This\u0020field\u0020value\u0020must\u0020be\u0020the\u0020same\u0020as\u0020\u0022\u00250\u0022.', dependencyFieldName); 1192 } 1193 return true; 1194 } 1195 }; 1196 1197 function raceSome(promises, pred) { 1198 return new Promise((resolve, reject) => { 1199 1200 if (promises.length === 0) { 1201 return resolve(); 1202 } 1203 1204 let settled = false, nDone = 0; 1205 1206 const resolveIf = v => { 1207 if (!settled && (pred(v) || ++nDone === promises.length)) { 1208 settled = true; 1209 resolve(v); 1210 } 1211 return v; 1212 } 1213 1214 promises.map(promise => { 1215 promise.then(resolveIf).catch(reason => { 1216 settled = true; 1217 reject(reason) 1218 }); 1219 return promise; 1220 }); 1221 }); 1222 } 1223 1224 const INPUT_ATTRIBUTE_RULES = {min: 'min', max: 'max', required: 'required', minlength: 'minlength', maxlength: 'maxlength', step: 'step', pattern: 'pattern'} 1225 const INPUT_TYPE_RULES = {email: 'email'} 1226 1227 function getRules(element) { 1228 let rules = {}; 1229 Object.keys(INPUT_ATTRIBUTE_RULES).forEach(attrName => { 1230 if (element.hasAttribute(attrName)) { 1231 rules[INPUT_ATTRIBUTE_RULES[attrName]] = element.getAttribute(attrName); 1232 } 1233 }) 1234 if (INPUT_TYPE_RULES[element.type]) { 1235 rules[INPUT_TYPE_RULES[element.type]] = true; 1236 } 1237 1238 if (element.dataset.validate) { 1239 try { 1240 Object.assign(rules, JSON.parse(element.dataset.validate)); 1241 } catch (error) { 1242 console.error('Validator error. Cannot parse data-validate attribute of element:\n', element); 1243 } 1244 } 1245 1246 return rules; 1247 } 1248 1249 function isInvalidRuleResult(ruleState) { 1250 return typeof ruleState === 'string' || !ruleState || (ruleState.type && ruleState.content); 1251 } 1252 1253 async function runValidateFn(rule, options, value, field) { 1254 return formValidationRules[rule](value, options, field, this); 1255 } 1256 1257 function generateId() { 1258 let id; 1259 do { 1260 id = `${this.idPrefix}-${++this.idSeq}`; 1261 } while (document.getElementById(id)); 1262 return id; 1263 } 1264 1265 function isVisible(element) { 1266 const el = element.type !== 'hidden' ? element : (element.parentElement || {}); 1267 return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length) 1268 } 1269 1270 function elementWillValidate(element) { 1271 return (element.willValidate || element.type === 'hidden') 1272 && element.tagName !== 'BUTTON' 1273 && element.disabled === false 1274 && !(element.tagName === 'INPUT' && element.type === 'submit') 1275 && (element.hasAttribute('data-validate-hidden') || isVisible(element)) 1276 } 1277 1278 function createMessageContainer(el, fieldWrapperClassName) { 1279 if (! el.parentElement) { 1280 return; 1281 } 1282 const refocus = document.activeElement === el; 1283 const wrapper = document.createElement('div'); 1284 wrapper.classList.add.apply(wrapper.classList, fieldWrapperClassName.split(' ')); 1285 el.parentElement.insertBefore(wrapper, el); 1286 wrapper.appendChild(el); 1287 refocus && document.activeElement !== el && el.focus(); 1288 return wrapper; 1289 } 1290 1291 function containerNotFound(selector, el) { 1292 const msg = `Cannot find message container element ${selector} of ${el.name}`; 1293 console.error(msg, el); 1294 throw msg; 1295 } 1296 1297 function createTextInputFrom(el) { 1298 const text = document.createElement('INPUT'); 1299 text.type = 'text'; 1300 text.value = el.value; 1301 return text; 1302 } 1303 1304 function classNamesToSelector(classNames) { 1305 return classNames.split(' ') 1306 .filter(className => className.length > 0) 1307 .map(className => `.${className}`) 1308 .join('') 1309 } 1310 1311 function hasMessagesWrapper(field, messagesWrapperClassName) { 1312 return this.getMessageContainer(field).querySelector(classNamesToSelector(messagesWrapperClassName)); 1313 } 1314
1315 function getMessagesWrapper(field, messagesWrapperClassName) { 1316 if (hasMessagesWrapper.call(this, field, messagesWrapperClassName)) { 1317 return this.getMessageContainer(field).querySelector(classNamesToSelector(messagesWrapperClassName)); 1318 } 1319 1320 const msgWrapper = document.createElement('ul'); 1321 const msgId = generateId.call(this); 1322 msgWrapper.id = msgId; 1323 field.element.setAttribute('aria-errormessage', msgId); 1324 field.element.setAttribute('aria-describedby', msgId); 1325 msgWrapper.classList.add.apply(msgWrapper.classList, messagesWrapperClassName.split(' ')); 1326 if (field.validateOnChange) { 1327 msgWrapper.setAttribute('aria-live', 'polite'); 1328 } 1329 this.getMessageContainer(field).appendChild(msgWrapper); 1330 1331 return msgWrapper; 1332 } 1333 1334 function getCheckedValues(field) { 1335 const name = field.element.name.replace(/([\\"])/g, '\\$1'); 1336 const elements = field.element.form.querySelectorAll('input[name="' + name + '"]:checked'); 1337 return Array.from(elements).map(el => el.value); 1338 } 1339 1340 function escapeHtml(s) { 1341 const div = document.createElement('div') 1342 div.innerText = s; 1343 return div.innerHTML; 1344 } 1345 1346 1347 function formValidation(form, options = {}) { 1348 const formElement = form || this.$el; 1349 1350 if (formElement.dataset && formElement.dataset.options) { 1351 try { 1352 options = Object.assign(options, JSON.parse(formElement.dataset.options || '{}')); 1353 } catch (e) { 1354 throw new Error('Cannot read the form options from the data-options attribute: not valid JSON'); 1355 } 1356 } 1357 1358 // Disable browser default validation 1359 if (formElement.tagName === 'FORM') { 1360 formElement.setAttribute('novalidate', ''); 1361 } else { 1362 console.error('formValidation can be initialized only on FORM element', formElement); 1363 return; 1364 } 1365 1366 options = Object.assign({ 1367 fieldWrapperClassName: 'field field-reserved', 1368 messagesWrapperClassName: 'messages', 1369 validClassName: 'field-success', 1370 invalidClassName: 'field-error', 1371 pageMessagesWrapperSelector: null, 1372 scrollToFirstError: true, 1373 }, options || {}); 1374 1375 return { 1376 state: { 1377 valid: false, 1378 }, 1379 isSubmitting: false, 1380 fields: {}, 1381 idSeq: 0, 1382 idPrefix: formElement.id || 'vld-msg', 1383 setupFields(elements) { 1384 this.fields = {}; 1385 Array.from(elements).forEach(element => { 1386 if (elementWillValidate(element)) { 1387 this.setupField(element); 1388 } 1389 }); 1390 }, 1391 setupField(element) { 1392 if (! element) return; 1393 const onChange = !!element.dataset.onChange; 1394 if (elementWillValidate(element)) { 1395 const rules = getRules(element); 1396 if (Object.keys(rules).length > 0) { 1397 if (this.fields[element.name]) { 1398 Object.assign(this.fields[element.name].rules, rules); 1399 } else { 1400 this.fields[element.name] = { 1401 element, 1402 rules: rules, 1403 validateOnChange: onChange, 1404 state: { 1405 valid: null, 1406 rules: {} 1407 } 1408 } 1409 } 1410 } 1411 } else { 1412 console.error('Element will not validate', element); 1413 } 1414 }, 1415 onSubmit(event) { 1416 if (event.target.tagName === 'FORM') { 1417 event.preventDefault(); 1418 1419 if (this.isSubmitting) return; 1420 this.isSubmitting = true; 1421 1422 this.validate() 1423 .then(() => event.target.submit()) 1424 .catch(invalidElements => { 1425 this.isSubmitting = false;
1426 }); 1427 } 1428 }, 1429 onChange(event) { 1430 event.target.dataset.onChange = 'true'; 1431 if (!Object.keys(this.fields).length) { 1432 this.setupFields(formElement.elements); 1433 } 1434 if (!Object.keys(this.fields).includes(event.target.name)) { 1435 this.setupField(event.target); 1436 } 1437 const field = this.fields[event.target.name]; 1438 1439 this.validateField(field); 1440 field && field.element.removeAttribute('data-on-change') 1441 }, 1442 validateSafe() { 1443 return new Promise(resolve => this.validate().then(() => resolve(true)).catch(() => {})) 1444 }, 1445 validate() { 1446 if (!Object.keys(this.fields).length || !Object.keys(this.fields).length !== formElement.elements.length) { 1447 this.setupFields(formElement.elements); 1448 } 1449 return new Promise(async (resolve, reject) => { 1450 if (formElement.elements) { 1451 await raceSome(this.validateFields(), result => result !== true) 1452 const invalidFields = Object.values(this.fields).filter(field => !field.state.valid); 1453 this.state.valid = invalidFields.length === 0; 1454 if (this.state.valid) { 1455 resolve(); 1456 } else { 1457 if (options.scrollToFirstError && invalidFields.length > 0) { 1458 invalidFields[0].element.focus() 1459 invalidFields[0].element.select && invalidFields[0].element.select(); 1460 } 1461 reject(invalidFields.map(field => field.element)); 1462 } 1463 } 1464 }); 1465 }, 1466 validateFields() { 1467 const fields = Object.values(this.fields); 1468 1469 fields.forEach(field => { 1470 this.getMessageContainer(field).classList.remove(options.validClassName, options.invalidClassName) 1471 }); 1472 return fields.map(field => this.validateField(field)) 1473 }, 1474 validateField(field) { 1475 if (! field || ! elementWillValidate(field.element)) { 1476 return new Promise(resolve => resolve(true)) 1477 } 1478 1479 let value; 1480 if (field.element.type === 'checkbox') { 1481 value = getCheckedValues(field); 1482 } else if (field.element.type === 'radio') { 1483 value = getCheckedValues(field)[0] || undefined; 1484 } else if (field.element.tagName === 'SELECT' && field.element.multiple) { 1485 value = Array.from(field.element.selectedOptions).map(opt => opt.value); 1486 } else { 1487 value = field.element.value; 1488 } 1489 1490 const rules = field.rules || {}; 1491 1492 field.state.valid = true; 1493 this.showFieldState(field); 1494 1495 1496 const fieldValidations = Object.keys(rules).filter(rule => formValidationRules[rule]).map(async rule => { 1497 return runValidateFn.call(this, rule, rules[rule], value, field).then(result => { 1498 field.state.rules[rule] = result; 1499 return result; 1500 }) 1501 }); 1502 1503 return new Promise(resolve => { 1504 Promise.all(fieldValidations).then(results => { 1505 field.state.valid = !elementWillValidate(field.element) || rules.length === 0 || !results.some(isInvalidRuleResult)
1506 this.showFieldState(field); 1507 resolve(field.state.valid); 1508 }) 1509 }); 1510 }, 1511 getMessagesByField(field) { 1512 const messages = []; 1513 const invalidRules = Object.keys(field.state.rules).filter(rule => isInvalidRuleResult(field.state.rules[rule])); 1514 1515 field.rules && Object.keys(field.rules).forEach((rule) => { 1516 if (invalidRules.includes(rule)) { 1517 const customMessage = field.element.getAttribute('data-msg-' + rule); 1518 const message = customMessage ? customMessage : field.state.rules[rule]; 1519 const ruleOptions = JSON.parse(JSON.stringify(field.rules[rule])); 1520 1521 if (typeof message === 'undefined' || message === null || (typeof message !== 'string' && ! message.type)) { 1522 messages.push(hyva.strf('Validation rule "%0" failed.', rule)); 1523 } else if (Array.isArray(ruleOptions)) { 1524 ruleOptions.unshift(message.type ? message.content : message); 1525 const content = hyva.strf.apply(null, ruleOptions); 1526 messages.push(message.type ? {type: message.type, content} : content); 1527 } else { 1528 const content = hyva.strf(message.type ? message.content : message, ruleOptions) 1529 messages.push(message.type ? {type: message.type, content} : content); 1530 } 1531 } 1532 }); 1533 return messages; 1534 }, 1535 /** @deprecated */ 1536 getFieldWrapper(field) { 1537 return this.getMessageContainer(field) 1538 }, 1539 getMessageContainer(field) { 1540 let container; 1541 const pageSelector = field.element.getAttribute('data-validation-container') || options.pageMessagesContainerSelector; 1542 if (pageSelector) { 1543 container = document.querySelector(pageSelector) 1544 || containerNotFound(pageSelector, field.element) 1545 } else { 1546 const containerSelector = classNamesToSelector(options.fieldWrapperClassName); 1547 container = field.element.closest(containerSelector) 1548 || createMessageContainer(field.element, options.fieldWrapperClassName) 1549 || containerNotFound(containerSelector, field.element); 1550 } 1551 1552 return container; 1553 }, 1554 showFieldState(field) { 1555 const container = this.getMessageContainer(field), 1556 hasErrorMessages = hasMessagesWrapper.call(this, field, options.messagesWrapperClassName), 1557 messages = this.getMessagesByField(field).map(m => { 1558 return m.type !== 'html' ? escapeHtml(m.type ? m.content : m) : m.content; 1559 }); 1560 container.classList.toggle(options.validClassName, field.state.valid && ! hasErrorMessages); 1561 container.classList.toggle(options.invalidClassName, !field.state.valid || hasErrorMessages); 1562 this.createHtmlErrorMessage(field, messages); 1563 1564 if (field.state.valid) { 1565 field.element.removeAttribute('aria-invalid'); 1566 } else { 1567 field.element.setAttribute('aria-invalid', 'true'); 1568 if (! document.activeElement) { 1569 field.element.focus(); 1570 } 1571 } 1572 }, 1573 removeMessages(field, messagesClass) { 1574 if (! hasMessagesWrapper.call(this, field, messagesClass || options.messagesWrapperClassName)) { 1575 return; 1576 } 1577 1578 const msgWrapper = getMessagesWrapper.call(this, field, messagesClass || options.messagesWrapperClassName); 1579 const messages = msgWrapper.querySelectorAll(`[data-msg-field='${field.element.name}']`);
1580 Array.from(messages).forEach(msg => msg.remove()); 1581 if (msgWrapper && msgWrapper.childElementCount === 0) { 1582 field.element.removeAttribute('aria-errormessage'); 1583 field.element.removeAttribute('aria-describedby'); 1584 msgWrapper.remove(); 1585 } 1586 }, 1587 createErrorMessage(field, messages) { 1588 const htmlMessages = (Array.isArray(messages) ? messages : [messages]).map(escapeHtml) 1589 this.createHtmlErrorMessage(field, htmlMessages); 1590 }, 1591 createHtmlErrorMessage(field, messages) { 1592 this.removeMessages(field, options.messagesWrapperClassName); 1593 field.element.removeAttribute('aria-errormessage'); 1594 field.element.removeAttribute('aria-describedby'); 1595 1596 if (!field.state.valid) { 1597 const msgWrapper = this.addHtmlMessages(field, options.messagesWrapperClassName, messages); 1598 field.element.setAttribute('aria-errormessage', msgWrapper.id); 1599 field.element.setAttribute('aria-describedby', msgWrapper.id); 1600 } 1601 }, 1602 /** @deprecated */ 1603 createMessage(field, message) { 1604 return this.addMessages(field, options.messagesWrapperClassName, message); 1605 }, 1606 addMessages(field, messagesClass, messages) { 1607 const htmlMessages = (Array.isArray(messages) ? messages : [messages]).map(escapeHtml) 1608 return this.addHtmlMessages(field, messagesClass, htmlMessages); 1609 }, 1610 addHtmlMessages(field, messagesClass, htmlMessages) { 1611 const msgWrapper = getMessagesWrapper.call(this, field, messagesClass); 1612 1613 (Array.isArray(htmlMessages) ? htmlMessages : [htmlMessages]).forEach((htmlMessage) => { 1614 const li = document.createElement('li'); 1615 li.innerHTML = htmlMessage; 1616 li.setAttribute('data-msg-field', field.element.name); 1617 msgWrapper.appendChild(li); 1618 }); 1619 1620 return msgWrapper; 1621 }, 1622 setField(name, value) { 1623 this.fields[name].element.value = value; 1624 this.fields[name].element.dispatchEvent((new Event('input'))); 1625 this.validateField(this.fields[name]); 1626 } 1627 } 1628 } 1629 1630 function getFieldName(field) { 1631 const fieldName = field.element?.getAttribute('title') 1632 || document.querySelector(`label[for="${field.element?.id}"]`)?.innerText; 1633 1634 return fieldName 1635 ? fieldName.trim() 1636 : ''; 1637 } 1638 1639 hyva.formValidation = formValidation; 1640 hyva.formValidation.rules = formValidationRules; 1641 hyva.formValidation.setInputAttributeRuleName = (attrName, ruleName) => INPUT_ATTRIBUTE_RULES[attrName] = ruleName || attrName; 1642 hyva.formValidation.setInputTypeRuleName = (typeName, ruleName) => INPUT_TYPE_RULES[typeName] = ruleName || typeName; 1643 hyva.formValidation.addRule = (name, validator) => formValidationRules[name] = validator; 1644 hyva.formValidation.getFieldName = getFieldName; 1645 }(window.hyva = window.hyva || {})); 1646 1647 window.addEventListener('alpine:init', () => { 1648 Alpine.data('hyva.formValidation', hyva.formValidation); 1649 Alpine.data('hyva.formValidation($el)', hyva.formValidation); 1650 }, {once: true}); 1651 //# sourceURL=hyva-advanced-form-validation.js 1652</script>
1652 1653<div class="page-wrapper"><header class="page-header">
1653<script> 1654 function initTopHeader() { 1655 return { 1656 textColor: getComputedStyle(document.querySelector('.top-header-center-text span'))['color'], 1657 stylesElements() { 1658 const self = this; 1659 document.querySelectorAll('#retailer-icon path') 1660 .forEach( 1661 function(path) { 1662 path.setAttribute('stroke', self.textColor); 1663 } 1664 ); 1665 document.querySelectorAll('#store-icon path') 1666 .forEach( 1667 function(path) { 1668 path.setAttribute('stroke', self.textColor); 1669 } 1670 ); 1671 return 'color: ' + this.textColor +';'; 1672 } 1673 } 1674 } 1675</script>
1675 1676<div x-data="initTopHeader()" 1677 class="hidden md:block relative z-[60] h-12" 1678 :style="stylesElements()" 1679> 1680 <div class="flex justify-between mx-auto max-w-9xl 3xl:px-1 container h-12"> 1681 <!-- top-header-left --> 1682 <div class="flex items-center bg-transparent z-20"> 1683 <a id="store-switcher-icon" 1684 @click="$dispatch('menu-click',{})" 1685 @click.prevent.stop="$dispatch('toggle-store-switcher',{});" 1686 class="inline-flex gap-1 justify-center items-center w-full focus:outline-none text-sm font-normal cursor-pointer" 1687 > 1688 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none" class="w-3.5 h-3.5" id="store-icon" role="img"> 1689<g id="Icons-10px" clip-path="url(#clip0_2375_30)"> 1690<path id="Vector" d="M0.700195 6.99995C0.700195 8.67081 1.36394 10.2732 2.54542 11.4547C3.7269 12.6362 5.32933 13.3 7.0002 13.3C8.67106 13.3 10.2735 12.6362 11.455 11.4547C12.6364 10.2732 13.3002 8.67081 13.3002 6.99995C13.3002 5.32909 12.6364 3.72666 11.455 2.54518C10.2735 1.3637 8.67106 0.699951 7.0002 0.699951C5.32933 0.699951 3.7269 1.3637 2.54542 2.54518C1.36394 3.72666 0.700195 5.32909 0.700195 6.99995Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> 1691<path id="Vector_2" d="M1.18408 9.42313H2.88088C3.33066 9.42275 3.76189 9.24382 4.0798 8.92565C4.3977 8.60748 4.57628 8.1761 4.57628 7.72633V6.27313C4.57628 5.82311 4.75505 5.39152 5.07326 5.07331C5.39147 4.7551 5.82306 4.57633 6.27308 4.57633C6.49573 4.57633 6.71619 4.53247 6.92188 4.44727C7.12758 4.36207 7.31448 4.23719 7.47191 4.07975C7.62934 3.92232 7.75423 3.73542 7.83943 3.52973C7.92463 3.32403 7.96848 3.10357 7.96848 2.88093V0.773926" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> 1692<path id="Vector_3" d="M13.3001 6.90035C12.8164 6.65068 12.2806 6.51876 11.7363 6.51535H9.66009C9.43325 6.50883 9.20741 6.54788 8.99593 6.63019C8.78446 6.71249 8.59164 6.83638 8.42889 6.99452C8.26614 7.15266 8.13676 7.34184 8.04842 7.55087C7.96007 7.7599 7.91455 7.98452 7.91455 8.21145C7.91455 8.43838 7.96007 8.663 8.04842 8.87203C8.13676 9.08105 8.26614 9.27023 8.42889 9.42838C8.59164 9.58652 8.78446 9.71041 8.99593 9.79271C9.20741 9.87502 9.43325 9.91407 9.66009 9.90755C9.98126 9.90755 10.2893 10.0351 10.5164 10.2622C10.7435 10.4893 10.8711 10.7974 10.8711 11.1185V11.9655" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> 1693</g> 1694<defs> 1695<clipPath id="clip0_2375_30"> 1696<rect width="14" height="14" fill="white"/> 1697</clipPath> 1698</defs> 1699<title>small-globe-white</title></svg> 1700 Allemagne </a> 1701 </div> 1702 1703 <!-- top-header-center --> 1704 <div class="absolute left-0 right-0 w-full h-12 col-end-3"> 1705 <style>#html-body [data-pb-style=XYABE6T]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#000;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div class="h-16 md:h-12 overflow-hidden md:px-48" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="XYABE6T"><div class="row-full-width-inner" data-element="inner"><div class="project-pagebuilder pagebuilder-animated-text h-16 md:h-12" data-content-type="animated_text" data-appearance="default" data-animated-type="linear" data-animated-time="20000" data-element="main"><div class="animated-text-content block h-full origin-[0_0]"><span class="top-header-center-text animated-text-title flex justify-center items-center h-16 md:h-12 py-3" data-element="first_title"><p style="text-align: center; line-height: normal;"><a href="/top-deals.html"><span style="font-family: Barlow; color: rgb(255, 255, 255); font-size: 14px;">KOMFORTMOMENTE: Bis zu 40 % Rabatt auf <u>eine Auswahl für noch mehr Komfort</u> â¨</span></a></p></span><span class="animated-text-title flex justify-center items-center h-16 md:h-12 py-3" data-element="third_title"><p style="text-align: center; line-height: normal;"><span style="color: #ffffff; font-size: 14px; font-family: Barlow;">Gratisversand ab 100⬠Einkaufswert</span></p></span><span class="top-header-center-text animated-text-title flex justify-center items-center h-16 md:h-12 py-3" data-element="first_title"><p style="text-align: center; line-height: normal;"><a href="/top-deals.html"><span style="font-family: Barlow; color: rgb(255, 255, 255); font-size: 14px;">KOMFORTMOMENTE: Bis zu 40 % Rabatt auf <u>
1705eine Auswahl für noch mehr Komfort</u> â¨</span></a></p></span></div></div></div></div> </div> 1706 1707 <!-- top-header-right --> 1708 <div class="flex justify-end bg-transparent z-20"> 1709 <a href="https://www.lafuma-moebel.de/retailer/retailer" 1710 class="text-sm items-center font-normal no-underline flex gap-1"> 1711 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none" class="w-3.5 h-3.5 hover:text-black" id="retailer-icon" role="img"> 1712<g id="Icons-10px_2"> 1713<path id="Vector_2" d="M11.2 4.89995C11.2 8.39995 7.00005 13.3 7.00005 13.3C7.00005 13.3 2.80005 8.39995 2.80005 4.89995C2.80005 3.78604 3.24255 2.71776 4.0302 1.9301C4.81785 1.14245 5.88614 0.699951 7.00005 0.699951C8.11396 0.699951 9.18224 1.14245 9.9699 1.9301C10.7576 2.71776 11.2 3.78604 11.2 4.89995Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> 1714<path id="Vector_2_2" d="M7.00005 5.59995C6.61345 5.59995 6.30005 5.28655 6.30005 4.89995C6.30005 4.51336 6.61345 4.19995 7.00005 4.19995" stroke="white"/> 1715<path id="Vector_3_2" d="M7 5.59995C7.3866 5.59995 7.7 5.28655 7.7 4.89995C7.7 4.51336 7.3866 4.19995 7 4.19995" stroke="white"/> 1716</g> 1717<title>location</title></svg> 1718 <p>Händler</p> 1719 </a> 1720 </div> 1721 </div> 1722 1723 1724 <!--Store Switcher --> 1725 <section id="store-switcher" 1726 x-data="{ open: false}" 1727 @toggle-store-switcher.window="open=true" 1728 @keydown.window.escape="open=false" 1729 > 1730 <div> 1731 <div role="dialog" 1732 aria-labelledby="store-switcher-title" 1733 aria-modal="true" 1734 @click.outside="open=false" 1735 class="fixed inset-y-0 left-0 z-[60] flex max-w-full"> 1736 <div class="backdrop" 1737 x-show="open" 1738 @click="open=false" 1739 aria-label="Close store switcher"></div> 1740 <div class="relative w-screen max-w-md shadow-2xl hidden" 1741 :class="{'hidden': !open, 'block': open}" 1742 x-show="open" 1743 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 1744 x-transition:enter-start="translate-x-[-100%]" 1745 x-transition:enter-end="translate-x-0" 1746 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 1747 x-transition:leave-start="translate-x-0" 1748 x-transition:leave-end="translate-x-[-100%]" 1749 > 1750 <div class="flex flex-col h-full bg-white shadow-xl overflow-auto"> 1751 <div class="min-h-[4rem] md:min-h-[3rem] bg-gray-200 inline-flex gap-1 px-8 items-center 1752 text-sm font-normal text-black cursor-pointer" 1753 @click="open=false"> 1754 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 10 10" fill="none" class="w-3.5 h-3.5" role="img"> 1755<g id="Icons-10px_3" clip-path="url(#clip0_2488_10118)"> 1756<path id="Vector_3" d="M0.5 5C0.5 6.19347 0.974106 7.33807 1.81802 8.18198C2.66193 9.02589 3.80653 9.5 5 9.5C6.19347 9.5 7.33807 9.02589 8.18198 8.18198C9.02589 7.33807 9.5 6.19347 9.5 5C9.5 3.80653 9.02589 2.66193 8.18198 1.81802C7.33807 0.974106 6.19347 0.5 5 0.5C3.80653 0.5 2.66193 0.974106 1.81802 1.81802C0.974106 2.66193 0.5 3.80653 0.5 5Z" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 1757<path id="Vector_2_3" d="M0.845947 6.73098H2.05795C2.37922 6.73071 2.68724 6.6029 2.91431 6.37564C3.14139 6.14837 3.26895 5.84025 3.26895 5.51898V4.48098C3.26895 4.15954 3.39664 3.85126 3.62393 3.62397C3.85123 3.39667 4.1595 3.26898 4.48095 3.26898C4.63998 3.26898 4.79745 3.23766 4.94438 3.1768C5.0913 3.11594 5.2248 3.02674 5.33725 2.91428C5.44971 2.80183 5.53891 2.66833 5.59977 2.52141C5.66062 2.37448 5.69195 2.21701 5.69195 2.05798V0.552979" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 1758<path id="Vector_3_3" d="M9.50001 4.92906C9.15452 4.75073 8.7718 4.6565 8.38301 4.65406H6.90001C6.73798 4.64941 6.57667 4.6773 6.42562 4.73609C6.27456 4.79488 6.13683 4.88337 6.02058 4.99633C5.90433 5.10929 5.81192 5.24442 5.74882 5.39372C5.68571 5.54303 5.6532 5.70347 5.6532 5.86556C5.6532 6.02766 5.
175868571 6.1881 5.74882 6.33741C5.81192 6.48671 5.90433 6.62184 6.02058 6.7348C6.13683 6.84776 6.27456 6.93625 6.42562 6.99504C6.57667 7.05383 6.73798 7.08172 6.90001 7.07706C7.12942 7.07706 7.34944 7.1682 7.51166 7.33042C7.67387 7.49264 7.76501 7.71265 7.76501 7.94206V8.54706" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 1759</g> 1760<defs> 1761<clipPath id="clip0_2488_10118"> 1762<rect width="10" height="10" fill="white"/> 1763</clipPath> 1764</defs> 1765<title>small-globe</title></svg> 1766 <span class="text-sm">Allemagne</span> 1767 </div> 1768 <header class="px-8 py-6 flex justify-between"> 1769 <div id="store-switcher-title" class="text-2xl font-normal text-black"> 1770 Online Store </div> 1771 <div x-show="open" 1772 class="flex"> 1773 <button @click="open=false" 1774 aria-label="Close store switcher" 1775 class="text-black"> 1776 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" class="w-2.5 h-2.5 hover:text-black" role="img"> 1777<g clip-path="url(#clip0_954_30807)"> 1778<g clip-path="url(#clip1_954_30807)"> 1779<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 1780<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 1781</g> 1782</g> 1783<defs> 1784<clipPath id="clip0_954_30807"> 1785<rect width="24" height="24" fill="white"/> 1786</clipPath> 1787<clipPath id="clip1_954_30807"> 1788<rect width="24" height="24" fill="white"/> 1789</clipPath> 1790</defs> 1791<title>close</title></svg> 1792 </button> 1793 </div> 1794 </header> 1795 <div class="p-8"> 1796 1797 <div class="flex justify-between items-center border-b border-primary-200 last:border-b-0"> 1798 <div class="flex py-4 gap-2 opacity-50"> 1799 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 1800<g id="Mask group"> 1801<mask id="mask0_1120_26155" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1802<g id="Group"> 1803<path id="Vector_4" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1804</g> 1805</mask> 1806<g mask="url(#mask0_1120_26155)"> 1807<g id="Group_2"> 1808<path id="Vector_2_4" d="M0 16.1719L12.0328 14.9766L24 16.1719V24H0V16.1719Z" fill="#FFDA44"/> 1809<path id="Vector_3_4" d="M0 7.82812L11.9531 6.75L24 7.82812V16.1719H0V7.82812Z" fill="#D80027"/> 1810<path id="Vector_4" d="M0 0H24V7.82812H0V0Z" fill="#333333"/> 1811</g> 1812</g> 1813</g> 1814<title>de</title></svg> 1815 <span class="font-normal text-base text-black"> 1816 Allemagne </span> 1817 </div> 1818 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" class="w-5 h-5 bg-black" role="img"> 1819<g id="checkmark"> 1820<path id="Vector_5" d="M6.45837 10.625L8.33337 12.7083L13.5417 7.29163" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 1821</g> 1822<title>checkmark</title></svg> 1823 </div> 1824 1825 <a href="https://www.lafuma-mobilier.fr/?___store=fr_fr" 1826 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1827 > 1828 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1829<g id="Mask group_2"> 1830<mask id="mask0_2189_10493" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1831<g id="Group_2"> 1832<path id="Vector_6" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1833</g> 1834</mask> 1835<g mask="url(#mask0_2189_10493)"> 1836<g id="Group_2_2">
1837<path id="Vector_2_5" d="M7.82815 0H16.1719L17.386 11.8266L16.1719 24H7.82815L6.43127 12.1219L7.82815 0Z" fill="#EEEEEE"/> 1838<path id="Vector_3_5" d="M0 0H7.82812V24H0V0Z" fill="#0052B4"/> 1839<path id="Vector_4_2" d="M16.1719 0H24V24H16.1719V0Z" fill="#D80027"/> 1840</g> 1841</g> 1842</g> 1843<title>fr</title></svg> 1844 <span class="font-normal text-base text-black"> 1845 France </span> 1846 </a> 1847 1848 <a href="https://www.lafuma-furniture.co.uk/?___store=uk_en" 1849 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1850 > 1851 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1852<g id="Mask group_3"> 1853<mask id="mask0_2189_4845" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1854<g id="Group_3"> 1855<path id="Vector_7" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1856</g> 1857</mask> 1858<g mask="url(#mask0_2189_4845)"> 1859<g id="Group_2_3"> 1860<path id="Vector_2_6" d="M0 0L0.375 1.03125L0 2.10938V3.1875L1.5 5.71875L0 8.25V9.75L1.5 12L0 14.25V15.75L1.5 18.2812L0 20.8125V24L1.03125 23.625L2.10938 24H3.1875L5.71875 22.5L8.25 24H9.75L12 22.5L14.25 24H15.75L18.2812 22.5L20.8125 24H24L23.625 22.9688L24 21.8906V20.8125L22.5 18.2812L24 15.75V14.25L22.5 12L24 9.75V8.25L22.5 5.71875L24 3.1875V0L22.9688 0.375L21.8906 0H20.8125L18.2812 1.5L15.75 0H14.25L12 1.5L9.75 0H8.25L5.71875 1.5L3.1875 0H0Z" fill="#EEEEEE"/> 1861<path id="Vector_3_6" d="M15.75 0V5.0625L20.8125 0H15.75ZM24 3.1875L18.9375 8.25H24V3.1875ZM0 8.25H5.0625L0 3.1875V8.25ZM3.1875 0L8.25 5.0625V0H3.1875ZM8.25 24V18.9375L3.1875 24H8.25ZM0 20.8125L5.0625 15.75H0V20.8125ZM24 15.75H18.9375L24 20.8125V15.75ZM20.8125 24L15.75 18.9375V24H20.8125Z" fill="#0052B4"/> 1862<path id="Vector_4_3" d="M0 0V2.10938L6.14062 8.25H8.25L0 0ZM9.75 0V9.75H0V14.25H9.75V24H14.25V14.25H24V9.75H14.25V0H9.75ZM21.8906 0L15.75 6.14062V8.25L24 0H21.8906ZM8.25 15.75L0 24H2.10938L8.25 17.8594V15.75ZM15.75 15.75L24 24V21.8906L17.8594 15.75H15.75Z" fill="#D80027"/> 1863</g> 1864</g> 1865</g> 1866<title>uk</title></svg> 1867 <span class="font-normal text-base text-black"> 1868 Royaume-Uni </span> 1869 </a> 1870 1871 <a href="https://www.lafuma-mobilier.be/nl/?___store=be_nl" 1872 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1873 > 1874 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1875<g id="Mask group_4"> 1876<mask id="mask0_2189_7435" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1877<g id="Group_4"> 1878<path id="Vector_8" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1879</g> 1880</mask> 1881<g mask="url(#mask0_2189_7435)"> 1882<g id="Group_2_4"> 1883<path id="Vector_2_7" d="M0 0H7.82812L9.61875 11.8406L7.82812 24H0V0Z" fill="#333333"/> 1884<path id="Vector_3_7" d="M16.1719 0H24V24H16.1719L14.4515 12L16.1719 0Z" fill="#D80027"/> 1885<path id="Vector_4_4" d="M7.82812 0H16.1719V24H7.82812V0Z" fill="#FFDA44"/> 1886</g> 1887</g> 1888</g> 1889<title>be</title></svg>
1890 <span class="font-normal text-base text-black"> 1891 Belgique - Flamand </span> 1892 <span class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 1893 Neu </span> 1894 </a> 1895 <a href="https://www.lafuma-mobilier.be/?___store=be_fr" 1896 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1897 > 1898 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1899<g id="Mask group_5"> 1900<mask id="mask0_2189_7435_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1901<g id="Group_5"> 1902<path id="Vector_9" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1903</g> 1904</mask> 1905<g mask="url(#mask0_2189_7435_2)"> 1906<g id="Group_2_5"> 1907<path id="Vector_2_8" d="M0 0H7.82812L9.61875 11.8406L7.82812 24H0V0Z" fill="#333333"/> 1908<path id="Vector_3_8" d="M16.1719 0H24V24H16.1719L14.4515 12L16.1719 0Z" fill="#D80027"/> 1909<path id="Vector_4_5" d="M7.82812 0H16.1719V24H7.82812V0Z" fill="#FFDA44"/> 1910</g> 1911</g> 1912</g> 1913<title>be</title></svg> 1914 <span class="font-normal text-base text-black"> 1915 Belgique - Français </span> 1916 </a> 1917 1918 <a href="https://www.lafuma-mobili.it/?___store=it_it" 1919 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1920 > 1921 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1922<g id="Mask group_6"> 1923<mask id="mask0_2189_7016" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1924<g id="Group_6"> 1925<path id="Vector_10" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1926</g> 1927</mask> 1928<g mask="url(#mask0_2189_7016)"> 1929<g id="Group_2_6"> 1930<path id="Vector_2_9" d="M7.82815 0H16.1719L17.386 11.8266L16.1719 24H7.82815L6.43127 12.1219L7.82815 0Z" fill="#EEEEEE"/> 1931<path id="Vector_3_9" d="M0 0H7.82812V24H0V0Z" fill="#6DA544"/> 1932<path id="Vector_4_6" d="M16.1719 0H24V24H16.1719V0Z" fill="#D80027"/> 1933</g> 1934</g> 1935</g> 1936<title>it</title></svg> 1937 <span class="font-normal text-base text-black"> 1938 Italie </span> 1939 </a> 1940 1941 <a href="https://www.lafuma-mobiliario.es/?___store=es_es" 1942 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1943 > 1944 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1945<g id="Mask group_7"> 1946<mask id="mask0_2189_13997" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 1947<g id="Group_7"> 1948<path id="Vector_11" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 1949</g> 1950</mask> 1951<g mask="url(#mask0_2189_13997)"> 1952<g id="Group_2_7"> 1953<path id="Vector_2_10" d="M0 6L12 4.5L24 6V18L12 19.5L0 18V6Z" fill="#FFDA44"/> 1954<path id="Vector_3_10" d="M0 0H24V6H0V0ZM0 18H24V24H0V18Z" fill="#D80027"/> 1955<g id="Group_3"> 1956<path id="Vector_4_7" d="M6.75 14.25H6V10.5H6.75V14.25ZM12.75 14.25H13.5V10.5H12.75V14.25Z" fill="#EEEEEE"/> 1957<path id="Vector_5" d="M9.75 15.375C10.9926 15.375 12 14.7034 12 13.875C12 13.0466 10.9926 12.375 9.75 12.375C8.50736 12.375 7.5 13.0466 7.5 13.875C7.5 14.7034 8.50736 15.375 9.75 15.375Z" fill="#EEEEEE"/> 1958</g> 1959<g id="Group_4"> 1960<path id="Vector_6" d="M6.75 9.375C6.75 9.16789 6.58211 9 6.375 9C6.16789 9 6 9.16789 6 9.375V9.75C6 9.95711 6.16789 10.125 6.375 10.125C6.58211 10.125 6.75 9.95711 6.75 9.75V9.375Z" fill="#D80027"/> 1961<path id="Vector_7" d="M13.5 9.375C13.5 9.16789 13.3321 9 13.125 9C12.9179 9 12.75 9.16789 12.75 9.375V9.75C12.75 9.95711 12.9179 10.125 13.125 10.125C13.3321 10.125 13.5 9.95711 13.5 9.75V9.375Z" fill="#D80027"/> 1962<path id="Vector_8" d="M9.75 12.75V13.875C9.75 14.1734 9.86853 14.4595 10.0795 14.6705C10.2905 14.8815 10.5766 15 10.875 15C11.1734 15 11.4595 14.8815 11.6705 14.6705C11.8815 14.4595 12 14.1734 12 13.875V12.75H10.875H9.75Z" fill="#D80027"/> 1963</g> 1964<path id="Vector_9" d="M6.75 9.75H6C5.79289 9.75 5.625 9.91789 5.625 10.125C5.625 10.3321 5.79289 10.5 6 10.5H6.75C6.95711 10.5 7.125 10.3321 7.125 10.125C7.125 9.91789 6.95711 9.75 6.75 9.75Z" fill="#FF9811"/> 1965<path id="Vector_10" d="M13.5 9.75H12.75C12.5429 9.75 12.375 9.91789 12.375 10.
1965125C12.375 10.3321 12.5429 10.5 12.75 10.5H13.5C13.7071 10.5 13.875 10.3321 13.875 10.125C13.875 9.91789 13.7071 9.75 13.5 9.75Z" fill="#FF9811"/> 1966<path id="Vector_11" d="M6.75 14.25H6C5.79289 14.25 5.625 14.4179 5.625 14.625C5.625 14.8321 5.79289 15 6 15H6.75C6.95711 15 7.125 14.8321 7.125 14.625C7.125 14.4179 6.95711 14.25 6.75 14.25Z" fill="#FF9811"/> 1967<path id="Vector_12" d="M13.5 14.25H12.75C12.5429 14.25 12.375 14.4179 12.375 14.625C12.375 14.8321 12.5429 15 12.75 15H13.5C13.7071 15 13.875 14.8321 13.875 14.625C13.875 14.4179 13.7071 14.25 13.5 14.25Z" fill="#FF9811"/> 1968<path id="Vector_13" d="M7.5 12.75V13.875C7.5 14.25 7.6875 14.5312 7.92188 14.7656L8.15625 14.4844L8.39062 14.9531C8.5446 14.9909 8.7054 14.9909 8.85938 14.9531L9.09375 14.4844L9.32812 14.7656C9.60938 14.5312 9.75 14.25 9.75 13.875V12.75H9.32812L9.09375 13.125L8.85938 12.75H8.39062L8.15625 13.125L7.92188 12.75H7.5Z" fill="#FF9811"/> 1969<path id="Vector_14" d="M5.71875 11.625C5.66902 11.625 5.62133 11.6448 5.58617 11.6799C5.551 11.7151 5.53125 11.7628 5.53125 11.8125C5.53125 11.8622 5.551 11.9099 5.58617 11.9451C5.62133 11.9802 5.66902 12 5.71875 12H13.7812C13.831 12 13.8787 11.9802 13.9138 11.9451C13.949 11.9099 13.9688 11.8622 13.9688 11.8125C13.9688 11.7628 13.949 11.7151 13.9138 11.6799C13.8787 11.6448 13.831 11.625 13.7812 11.625H5.71875ZM5.71875 12.75C5.66902 12.75 5.62133 12.7698 5.58617 12.8049C5.551 12.8401 5.53125 12.8878 5.53125 12.9375C5.53125 12.9872 5.551 13.0349 5.58617 13.0701C5.62133 13.1052 5.66902 13.125 5.71875 13.125H7.03125C7.08098 13.125 7.12867 13.1052 7.16383 13.0701C7.199 13.0349 7.21875 12.9872 7.21875 12.9375C7.21875 12.8878 7.199 12.8401 7.16383 12.8049C7.12867 12.7698 7.08098 12.75 7.03125 12.75H5.71875ZM12.4688 12.75C12.419 12.75 12.3713 12.7698 12.3362 12.8049C12.301 12.8401 12.2812 12.8878 12.2812 12.9375C12.2812 12.9872 12.301 13.0349 12.3362 13.0701C12.3713 13.1052 12.419 13.125 12.4688 13.125H13.7812C13.831 13.125 13.8787 13.1052 13.9138 13.0701C13.949 13.0349 13.9688 12.9872 13.9688 12.9375C13.9688 12.8878 13.949 12.8401 13.9138 12.8049C13.8787 12.7698 13.831 12.75 13.7812 12.75H12.4688Z" fill="#D80027"/> 1970<path id="Vector_15" d="M9.1875 7.875C8.85938 7.875 8.57812 8.10938 8.48438 8.39062L8.25 8.34375C7.82812 8.34375 7.5 8.67188 7.5 9.09375C7.5 9.51562 7.82812 9.84375 8.25 9.84375C8.57812 9.84375 8.85938 9.65625 8.95312 9.32812C9.08984 9.37744 9.23793 9.38597 9.3794 9.35269C9.52087 9.3194 9.64962 9.24573 9.75 9.14062C9.85038 9.24573 9.97913 9.3194 10.1206 9.35269C10.2621 9.38597 10.4102 9.37744 10.5469 9.32812C10.5924 9.4701 10.6791 9.5953 10.7961 9.68774C10.9131 9.78018 11.0549 9.83566 11.2036 9.8471C11.3522 9.85854 11.5009 9.82542 11.6306 9.75197C11.7604 9.67851 11.8653 9.56806 11.9319 9.43472C11.9986 9.30137 12.024 9.15118 12.005 9.00332C11.9859 8.85547 11.9232 8.71665 11.8248 8.6046C11.7265 8.49254 11.597 8.41234 11.4528 8.37423C11.3087 8.33612 11.1565 8.34183 11.0156 8.39062C10.9704 8.2691 10.8945 8.16137 10.7952 8.07795C10.6959 7.99453 10.5767 7.93827 10.4493 7.91466C10.3218 7.89104 10.1903 7.90089 10.0678 7.94323C9.94521 7.98558 9.83573 8.05897 9.75 8.15625C9.60938 7.96875 9.42188 7.875 9.1875 7.875ZM9.1875 8.25C9.42188 8.25 9.5625 8.4375 9.5625 8.625C9.5625 8.85938 9.42188 9 9.1875 9C9 9 8.8125 8.85938 8.8125 8.625C8.8125 8.4375 9 8.25 9.1875 8.25ZM10.3125 8.25C10.5469 8.25 10.6875 8.4375 10.6875 8.625C10.6875 8.85938 10.5469 9 10.3125 9C10.125 9 9.9375 8.85938 9.9375 8.625C9.9375 8.4375 10.
1970125 8.25 10.3125 8.25ZM8.25 8.71875L8.4375 8.76562L8.625 9.14062C8.625 9.32812 8.4375 9.46875 8.25 9.46875C8.0625 9.46875 7.875 9.32812 7.875 9.09375C7.875 8.90625 8.0625 8.71875 8.25 8.71875ZM11.25 8.71875C11.4844 8.71875 11.625 8.90625 11.625 9.09375C11.625 9.32812 11.4844 9.46875 11.25 9.46875C11.0625 9.46875 10.875 9.32812 10.875 9.14062L11.0625 8.76562L11.25 8.71875Z" fill="#EEEEEE"/> 1971<path id="Vector_16" d="M9.375 7.5H10.125V9H9.375V7.5Z" fill="#FF9811"/> 1972<path id="Vector_17" d="M9.75 10.5H12V12.75H9.75V10.5Z" fill="#EEEEEE"/> 1973<path id="Vector_18" d="M11.625 9.75L11.25 10.125H8.25L7.875 9.75C7.875 9.14062 8.71875 8.625 9.75 8.625C10.7812 8.625 11.625 9.14062 11.625 9.75ZM7.5 10.5H9.75V12.75H7.5V10.5Z" fill="#D80027"/> 1974<path id="Vector_19" d="M11.3438 11.3438C11.3438 11.0849 11.1339 10.875 10.875 10.875C10.6161 10.875 10.4062 11.0849 10.4062 11.3438V11.9062C10.4062 12.1651 10.6161 12.375 10.875 12.375C11.1339 12.375 11.3438 12.1651 11.3438 11.9062V11.3438Z" fill="#D80027"/> 1975<path id="Vector_20" d="M7.875 10.875V11.25H8.25V12H7.875V12.375H9.375V12H9V11.25H9.375V10.875H7.875ZM8.25 10.125H11.25V10.5H8.25V10.125Z" fill="#FF9811"/> 1976<g id="Group_5"> 1977<path id="Vector_21" d="M8.71875 9.75C8.87408 9.75 9 9.62408 9 9.46875C9 9.31342 8.87408 9.1875 8.71875 9.1875C8.56342 9.1875 8.4375 9.31342 8.4375 9.46875C8.4375 9.62408 8.56342 9.75 8.71875 9.75Z" fill="#FFDA44"/> 1978<path id="Vector_22" d="M9.75 9.75C9.90533 9.75 10.0312 9.62408 10.0312 9.46875C10.0312 9.31342 9.90533 9.1875 9.75 9.1875C9.59467 9.1875 9.46875 9.31342 9.46875 9.46875C9.46875 9.62408 9.59467 9.75 9.75 9.75Z" fill="#FFDA44"/> 1979<path id="Vector_23" d="M10.7812 9.75C10.9366 9.75 11.0625 9.62408 11.0625 9.46875C11.0625 9.31342 10.9366 9.1875 10.7812 9.1875C10.6259 9.1875 10.5 9.31342 10.5 9.46875C10.5 9.62408 10.6259 9.75 10.7812 9.75Z" fill="#FFDA44"/> 1980</g> 1981<path id="Vector_24" d="M7.92188 12.75V14.7656C8.0619 14.8628 8.22219 14.9269 8.39062 14.9531V12.75H7.92188ZM8.85938 12.75V14.9531C9.02781 14.9269 9.1881 14.8628 9.32812 14.7656V12.75H8.85938Z" fill="#D80027"/> 1982<g id="Group_6"> 1983<path id="Vector_25" d="M9.75 13.5C10.1642 13.5 10.5 13.1642 10.5 12.75C10.5 12.3358 10.1642 12 9.75 12C9.33579 12 9 12.3358 9 12.75C9 13.1642 9.33579 13.5 9.75 13.5Z" fill="#338AF3"/> 1984<path id="Vector_26" d="M13.5 15H12.75C12.5429 15 12.375 15.1679 12.375 15.375C12.375 15.5821 12.5429 15.75 12.75 15.75H13.5C13.7071 15.75 13.875 15.5821 13.875 15.375C13.875 15.1679 13.7071 15 13.5 15Z" fill="#338AF3"/> 1985<path id="Vector_27" d="M6.75 15H6C5.79289 15 5.625 15.1679 5.625 15.375C5.625 15.5821 5.79289 15.75 6 15.75H6.75C6.95711 15.75 7.125 15.5821 7.125 15.375C7.125 15.1679 6.95711 15 6.75 15Z" fill="#338AF3"/> 1986</g> 1987</g> 1988</g> 1989</g> 1990<title>es</title></svg> 1991 <span class="font-normal text-base text-black"> 1992 Espagne </span> 1993 </a> 1994 1995 <a href="https://www.lafuma-meubels.nl/?___store=nl_nl" 1996 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 1997 > 1998 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 1999<g id="Mask group_8"> 2000<mask id="mask0_2189_10527" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 2001<g id="Group_8"> 2002<path id="Vector_12" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 2003</g> 2004</mask> 2005<g mask="url(#mask0_2189_10527)"> 2006<g id="Group_2_8"> 2007<path id="Vector_2_11" d="M0 7.82815L11.8969 6.92346L24 7.82815V16.1719L12.0516 17.686L0 16.1719V7.82815Z" fill="#EEEEEE"/> 2008<path id="Vector_3_11" d="M0 0H24V7.82812H0V0Z" fill="#A2001D"/> 2009<path id="Vector_4_8" d="M0 16.1719H24V24H0V16.1719Z" fill="#0052B4"/> 2010</g> 2011</g> 2012</g> 2013<title>nl</title></svg>
2014 <span class="font-normal text-base text-black"> 2015 Pays-Bas </span> 2016 </a> 2017 2018 <a href="https://www.lafuma-furniture.jp/?___store=jp_jp" 2019 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 2020 > 2021 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 2022<g id="Mask group_9"> 2023<mask id="mask0_2189_10517" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 2024<g id="Group_9"> 2025<path id="Vector_13" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 2026</g> 2027</mask> 2028<g mask="url(#mask0_2189_10517)"> 2029<g id="Group_2_9"> 2030<path id="Vector_2_12" d="M0 0H24V24H0V0Z" fill="#EEEEEE"/> 2031<path id="Vector_3_12" d="M12 17.2172C14.8814 17.2172 17.2172 14.8814 17.2172 12C17.2172 9.11865 14.8814 6.78284 12 6.78284C9.11865 6.78284 6.78284 9.11865 6.78284 12C6.78284 14.8814 9.11865 17.2172 12 17.2172Z" fill="#D80027"/> 2032</g> 2033</g> 2034</g> 2035<title>jp</title></svg> 2036 <span class="font-normal text-base text-black"> 2037 Japon </span> 2038 </a> 2039 2040 <a href="https://www.lafuma-mobilier.ch/de/?___store=ch_de" 2041 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 2042 > 2043 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 32 32" class="w-6 h-6 hover:text-black" role="img"> 2044<path d="m0 0h32v32h-32z" fill="#f00"/> 2045<path d="m13 6h6v7h7v6h-7v7h-6v-7h-7v-6h7z" fill="#fff"/> 2046<title>ch</title></svg> 2047 <span class="font-normal text-base text-black"> 2048 Suisse - Allemand </span> 2049 <span class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 2050 Neu </span> 2051 </a> 2052 <a href="https://www.lafuma-mobilier.ch/?___store=ch_fr" 2053 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 2054 > 2055 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 32 32" class="w-6 h-6 hover:text-black" role="img"> 2056<path d="m0 0h32v32h-32z" fill="#f00"/> 2057<path d="m13 6h6v7h7v6h-7v7h-6v-7h-7v-6h7z" fill="#fff"/> 2058<title>ch</title></svg> 2059 <span class="font-normal text-base text-black"> 2060 Suisse - Français </span> 2061 <sp
2061an class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 2062 Neu </span> 2063 </a> 2064 <a href="https://www.lafumausa.com/" 2065 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 2066 > 2067 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 2068<g id="Mask group_10"> 2069<mask id="mask0_2189_10471" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 2070<g id="Group_10"> 2071<path id="Vector_14" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 2072</g> 2073</mask> 2074<g mask="url(#mask0_2189_10471)"> 2075<g id="Group_2_10"> 2076<path id="Vector_2_13" d="M12 0H24V3L22.5 4.5L24 6V9L22.5 10.5L24 12V15L22.5 16.5L24 18V21L12 22.5L0 21V18L1.5 16.5L0 15V12L12 0Z" fill="#EEEEEE"/> 2077<path id="Vector_3_13" d="M10.5 3H24V6H10.5V3ZM10.5 9H24V12H12L10.5 9ZM0 15H24V18H0V15ZM0 21H24V24H0V21Z" fill="#D80027"/> 2078<path id="Vector_4_9" d="M0 0H12V12H0V0Z" fill="#0052B4"/> 2079<path id="Vector_5_2" d="M8.76562 11.3906L11.4375 9.46875H8.15625L10.8281 11.3906L9.79688 8.25L8.76562 11.3906ZM4.96875 11.3906L7.64062 9.46875H4.35938L7.03125 11.3906L6 8.25L4.96875 11.3906ZM1.17188 11.3906L3.84375 9.46875H0.5625L3.23438 11.3906L2.20312 8.25L1.17188 11.3906ZM8.76562 7.59375L11.4375 5.67188H8.15625L10.8281 7.59375L9.79688 4.45312L8.76562 7.59375ZM4.96875 7.59375L7.64062 5.67188H4.35938L7.03125 7.59375L6 4.45312L4.96875 7.59375ZM1.17188 7.59375L3.84375 5.67188H0.5625L3.23438 7.59375L2.20312 4.45312L1.17188 7.59375ZM8.76562 3.75L11.4375 1.82812H8.15625L10.8281 3.75L9.79688 0.609375L8.76562 3.75ZM4.96875 3.75L7.64062 1.82812H4.35938L7.03125 3.75L6 0.609375L4.96875 3.75ZM1.17188 3.75L3.84375 1.82812H0.5625L3.23438 3.75L2.20312 0.609375L1.17188 3.75Z" fill="#EEEEEE"/> 2080</g> 2081</g> 2082</g> 2083<title>us</title></svg> 2084 <span class="font-normal text-base text-black"> 2085 United States </span> 2086 <span class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 2087 Neu </span> 2088 </a> 2089 </div> 2090 </div> 2091 </div> 2092 </div> 2093 </div> 2094 </section> 2095</div> 2096<a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focu
2096s:bg-white 2097 contentarea" 2098 href="#contentarea"> 2099 <span> 2100 Zum Inhalt springen </span> 2101</a> 2102
2102<script type="application/javascript" async 2103 src="https://static.klaviyo.com/onsite/js/SppFwN/klaviyo.js"></script>
2103 2104 2105 <div x-data="initKlaviyoCustomerTracking()" 2106 @private-content-loaded.window="sendCustomerDataToKlaviyo(event.detail.data)"></div> 2107
2107<script> 2108 !function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}(); 2109 2110 function initKlaviyoCustomerTracking() { 2111 return { 2112 sendCustomerDataToKlaviyo(data) { 2113 window.klaviyo = window.klaviyo || []; 2114 const customer = data.customer; 2115 2116 window.klaviyo.isIdentified().then((identified)=> { 2117 if(customer && customer.email && !identified) { 2118 window.klaviyo.identify({ 2119 '$email': customer.email, 2120 '$first_name': customer.firstname ? customer.firstname : '', 2121 '$last_name': customer.lastname ? customer.lastname : '' 2122 }); 2123 } 2124 }); 2125 } 2126 } 2127 } 2128 </script>
vendor: 1 bytes, line 2128
2128
2129<script> 2130 function initHeader() { 2131 return { 2132 searchOpen: false, 2133 cart: {}, 2134 getData(data) { 2135 if (data.cart) { 2136 this.cart = data.cart 2137 } 2138 }, 2139 preventBodyScrolling() { 2140 var $body = document.querySelector('body'); 2141 2142 if (this.searchOpen === true) { 2143 $body.classList.add( 2144 'overflow-hidden', 2145 'h-screen' 2146 ); 2147 } else { 2148 $body.classList.remove( 2149 'overflow-hidden', 2150 'h-screen' 2151 ); 2152 } 2153 }, 2154 toggleSearch() { 2155 this.searchOpen = !this.searchOpen; 2156 this.preventBodyScrolling(); 2157 this.$nextTick(() => { 2158 const searchInput = document.querySelector('#search'); 2159 searchInput.focus(); 2160 searchInput.select(); 2161 2162 }); 2163 } 2164 } 2165 } 2166 2167 function initCompareHeader() { 2168 return { 2169 compareProducts: null, 2170 itemCount: 0, 2171 receiveCompareData(data) { 2172 if (data['compare-products']) { 2173 this.compareProducts = data['compare-products']; 2174 this.itemCount = this.compareProducts.count; 2175 } 2176 } 2177 } 2178 } 2179</script>
2179 2180<div id="header" 2181 class="relative w-full bg-container-lighter" 2182 x-data="initHeader()" 2183 @keydown.window.escape="searchOpen = false;" 2184 @private-content-loaded.window="getData(event.detail.data)" 2185> 2186 <div 2187 class="mx-auto max-w-9xl container flex items-center justify-between w-full pt-2 md:pt-4 mt-0 sm:border-b sm:border-primary-300"> 2188 <!--Logo--> 2189 <div class="logo-container order-2 lg:order-1 self-start w-full sm:w-auto sm:pb-0 lg:z-[52]"> 2190 <a class="flex items-end justify-center text-xl font-medium tracking-wide text-gray-800 2191 no-underline hover:no-underline font-title" 2192 href="https://www.lafuma-moebel.de/" 2193 title="" 2194 aria-label="store logo"> 2195 <img src="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/images/lafmob-flag-logo.svg" 2196 title="" 2197 alt="" 2198 width="141" height="60" /> 2199 </a> 2200</div> 2201 2202 <!--Main Navigation--> 2203 <div x-data="initMenuMobile_6ac71552f0993()" 2204 class="z-50 order-1 lg:order-2 navigation lg:hidden mr-10 lg:mr-0" 2205> 2206 <div class="background-opacity full-viewport-less-scrollbar fixed top-0 z-10 left-0 hidden h-screen bg-black/30" 2207 :class="{ 'hidden' : !open }" 2208 @click="open = !open"> 2209 </div> 2210 2211 <!-- mobile --> 2212 <div @load.window="setActiveMenu($root)" 2213 class="menu-container bg-container-lighter z-30" 2214 :class="{'h-screen overflow-x-hidden overflow-y-auto fixed top-0 left-0 w-[85%]' : open}" 2215 @toggle-mobile-menu.window="open = !open" 2216 @keydown.window.escape="open=false" 2217 > 2218 <div class="toggle-menu flex items-baseline justify-between menu-icon bg-container-lighter"> 2219 <div class="flex justify-start w-full"> 2220 <a @click="$dispatch('toggle-mobile-menu')" 2221 class="block md:flex items-center justify-center cursor-pointer w-full min-w-[1.5rem]" 2222 > 2223 <span class="search-menu-close hidden w-full" 2224 :class="{ 'hidden' : !open }"> 2225 <span class="close flex justify-between p-6"> 2226 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 2227<g clip-path="url(#clip0_954_30807_2)"> 2228<g clip-path="url(#clip1_954_30807_2)"> 2229<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2230<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2231</g> 2232</g> 2233<defs> 2234<clipPath id="clip0_954_30807_2"> 2235<rect width="24" height="24" fill="white"/> 2236</clipPath> 2237<clipPath id="clip1_954_30807_2"> 2238<rect width="24" height="24" fill="white"/> 2239</clipPath> 2240</defs> 2241<title>close</title></svg> 2242 2243 <button id="menu-mobile-search-icon" 2244 class="no-underline" 2245 @click="$dispatch('toggle-search')" 2246 2247 > 2248 <span class="sr-only label"> 2249 Suche </span> 2250 2251 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 w-6 hover:text-black" role="img"> 2252<g clip-path="url(#clip0_106_1458)"> 2253<path d="M1.47208 13.3571C2.41223 15.5693 4.19265 17.3174 6.42168 18.2168C8.6507 19.1163 11.1457 19.0934 13.3579 18.1533C15.5701 17.2131 17.3182 15.4327 18.2176 13.2037C19.1171 10.9746 19.0942 8.4796 18.1541 6.26743C17.2139 4.05526 15.4335 2.30717 13.2045 1.40772C10.9754 0.508266 8.4804 0.531128 6.26824 1.47128C4.05607 2.41143 2.30798 4.19185 1.40852 6.42087C0.50907 8.6499 0.531933 11.1449 1.47208 13.3571Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 2254<path d="M16.2209 16.2202L23.2499 23.2502" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 2255</g> 2256<defs> 2257<clipPath id="clip0_106_1458"> 2258<rect width="24" height="24" fill="white"/> 2259</clipPath> 2260</defs> 2261<title>search</title></svg> 2262 </button> 2263 </span> 2264 </span>
2265 <span :class="{ 'hidden' : open, 'block': !open }"> 2266 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" role="img"> 2267<g clip-path="url(#clip0_116_1412)"> 2268<path d="M15.6 12L1.19995 12" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 2269<path d="M22.8 18H1.19995" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 2270<path d="M22.8 6H1.19995" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 2271</g> 2272<defs> 2273<clipPath id="clip0_116_1412"> 2274<rect width="24" height="24" fill="white"/> 2275</clipPath> 2276</defs> 2277<title>menu</title></svg> 2278 </span> 2279 </a> 2280 </div> 2281 </div> 2282 2283 <nav class="hidden w-full duration-150 ease-in-out transform transition-display bg-primary-100 min-h-[calc(100%-4.5rem)]" 2284 :class="{ 'hidden' : !open }" 2285 > 2286 <div class="level-0 first:border-t border-primary-300"> 2287 <span 2288 class="flex items-center transition-transform duration-150 ease-in-out transform" 2289 :class="{ 2290 '-translate-x-full' : mobilePanelActiveId, 2291 'translate-x-0' : !mobilePanelActiveId 2292 }" 2293 > 2294 <a class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-300 level-0 hover:font-semibold" 2295 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 2296 href="https://www.lafuma-moebel.de/alle-unsere-produkte.html" 2297 title="Alle unsere Produkte"> 2298 <span class="block pr-14">Alle unsere Produkte</span> 2299 </a> 2300 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 2301 @click="mobilePanelActiveId = 2302 mobilePanelActiveId === 'category-node-3' ? 2303 0 : 'category-node-3'" 2304 > 2305 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 2306<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2307</svg> 2308 </a> 2309 </span> 2310 <div 2311 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 2312 translate-x-full transform bg-container-lighter" 2313 :class="{ 2314 'translate-x-full' : mobilePanelActiveId !== 'category-node-3', 2315 'translate-x-0' : mobilePanelActiveId === 'category-node-3' 2316 }" 2317 > 2318 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 2319 @click="mobilePanelActiveId = 0" 2320 > 2321 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 2322<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2323</svg> 2324 <span class="ml-2 font-medium"> 2325 Back to </span> 2326 </a> 2327 <div class="level-1">
2328 <span class="flex items-center"> 2329 2330 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung.html" 2331 title="Nach Raum und Nutzung" 2332 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 2333 > 2334 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/par-espace-et-usage.svg" 2335 alt="" 2336 width="24" 2337 height="24" 2338 loading="lazy" /> 2339 <span class="text-base tracking-wide pr-14 block"> 2340 Nach Raum und Nutzung </span> 2341 </a> 2342 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 2343 @click="mobilePanelLevel1ActiveId = 2344 mobilePanelLevel1ActiveId === 'category-node-15' ? 2345 0 : 'category-node-15'" 2346 > 2347 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 2348<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2349</svg> 2350 </a> 2351 </span> 2352 2353 <div 2354 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 2355 translate-x-full transform bg-container-lighter" 2356 :class="{ 2357 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-15', 2358 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-15', 2359 }" 2360 > 2361 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 2362 @click="mobilePanelLevel1ActiveId = 0" 2363 > 2364 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 2365<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2366</svg> 2367 <span class="ml-2 font-medium"> 2368 Back to </span> 2369 </a> 2370 2371 <div class="level-2 bg-container-lighter">
2372 <span class="flex flex-col px-6"> 2373 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/neue-kollektion.html" 2374 title="Neue Kollektion" 2375 class="flex items-center w-full cursor-pointer bg-container-lighter" 2376 > 2377 <img src="https://www.lafuma-moebel.de/media/catalog/category/AMBIANCE_MAXI_TRANSAT_RIVIERA_0017_LAFUMA_MOBILIER_2026.jpg" 2378 class="py-3 mr-3" 2379 alt="" 2380 width="70" 2381 height="70" 2382 loading="lazy" /> 2383 <span class="text-base py-3"> 2384 Neue Kollektion </span> 2385 </a> 2386 </span> 2387 </div> 2388 <div class="level-2 bg-container-lighter"> 2389 <span class="flex flex-col px-6"> 2390 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/cocooning-auswahl.html" 2391 title="Cocooning-Auswahl" 2392 class="flex items-center w-full cursor-pointer bg-container-lighter" 2393 > 2394 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/AMBIANCE_EVOLUTION_NIKSEN_8723_LAFUMA_MOBILIER_2026_1_.jpg" 2395 class="py-3 mr-3" 2396 alt="" 2397 width="70" 2398 height="70" 2399 loading="lazy" /> 2400 <span class="text-base py-3"> 2401 Cocooning-Auswahl </span> 2402 </a> 2403 </span> 2404 </div> 2405 <div class="level-2 bg-container-lighter"> 2406 <span class="flex flex-col px-6"> 2407 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/vanlife-auswahl.html" 2408 title="Vanlife-Auswahl" 2409 class="flex items-center w-full cursor-pointer bg-container-lighter" 2410 > 2411 <img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/menu/menu-selection-vanlife-_glechanu.jpg" 2412 class="py-3 mr-3" 2413 alt="" 2414 width="70" 2415 height="70" 2416 loading="lazy" /> 2417 <sp
2417an class="text-base py-3"> 2418 Vanlife-Auswahl </span> 2419 </a> 2420 </span> 2421 </div> 2422 <div class="level-2 bg-container-lighter"> 2423 <span class="flex flex-col px-6"> 2424 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/auswahl-balkon-und-kleine-raume.html" 2425 title="Auswahl Balkon und kleine Räume" 2426 class="flex items-center w-full cursor-pointer bg-container-lighter" 2427 > 2428 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/menu-selection-balcon-balcony64-colorblock-0699.jpg" 2429 class="py-3 mr-3" 2430 alt="" 2431 width="70" 2432 height="70" 2433 loading="lazy" /> 2434 <span class="text-base py-3"> 2435 Auswahl Balkon und kleine Räume </span> 2436 </a> 2437 </span> 2438 </div> 2439 <div class="level-2 bg-container-lighter"> 2440 <span class="flex flex-col px-6"> 2441 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/essbereich.html" 2442 title="Essbereich" 2443 class="flex items-center w-full cursor-pointer bg-container-lighter" 2444 > 2445 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/menu-selection-repas-ancone_allure_20092165.jpg" 2446 class="py-3 mr-3" 2447 alt="" 2448 width="70" 2449 height="70" 2450 loading="lazy" /> 2451 <span class="text-base py-3"> 2452 Essbereich </span> 2453 </a> 2454 </span> 2455 </div> 2456 <div class="level-2 bg-container-lighter">
2457 <span class="flex flex-col px-6"> 2458 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/auswahl-fuer-die-gastronomie.html" 2459 title="Auswahl für die Gastronomie" 2460 class="flex items-center w-full cursor-pointer bg-container-lighter" 2461 > 2462 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/menu-selection-pro-horizon.jpg" 2463 class="py-3 mr-3" 2464 alt="" 2465 width="70" 2466 height="70" 2467 loading="lazy" /> 2468 <span class="text-base py-3"> 2469 Auswahl für die Gastronomie </span> 2470 </a> 2471 </span> 2472 </div> 2473 2474 </div> 2475 </div> 2476 <div class="level-1"> 2477 <span class="flex items-center"> 2478 2479 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen.html" 2480 title="Zero Gravity Relaxliegen" 2481 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 2482 > 2483 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/fauteuils-relax-zero-gravite.svg" 2484 alt="" 2485 width="24" 2486 height="24" 2487 loading="lazy" /> 2488 <span class="text-base tracking-wide pr-14 block"> 2489 Zero Gravity Relaxliegen </span> 2490 </a> 2491 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 2492 @click="mobilePanelLevel1ActiveId = 2493 mobilePanelLevel1ActiveId === 'category-node-6' ? 2494 0 : 'category-node-6'" 2495 > 2496 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 2497<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2498</svg> 2499 </a> 2500 </span> 2501 2502 <div 2503 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 2504 translate-x-full transform bg-container-lighter" 2505 :class="{ 2506 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-6', 2507 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-6', 2508 }" 2509 > 2510 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 2511 @click="mobilePanelLevel1ActiveId = 0" 2512 > 2513 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
2513ox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 2514<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2515</svg> 2516 <span class="ml-2 font-medium"> 2517 Back to </span> 2518 </a> 2519 2520 <div class="level-2 bg-container-lighter"> 2521 <span class="flex flex-col px-6"> 2522 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen.html" 2523 title="Relaxliegen" 2524 class="flex items-center w-full cursor-pointer bg-container-lighter" 2525 > 2526 <span class="text-base font-semibold py-3"> 2527 Relaxliegen </span> 2528 </a> 2529 <div class="level-3 flex flex-col"> 2530 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen/relaxliegen-fuer-draussen.html" 2531 title="Relaxliegen für draußen" 2532 class="cursor-pointer bg-container-lighter py-1 px-2" 2533 > 2534 <span class="text-sm "> 2535 Relaxliegen für drauÃen </span> 2536 </a> 2537 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen/relaxliegen-fuer-drinnen.html" 2538 title="Relaxliegen für drinnen" 2539 class="cursor-pointer bg-container-lighter py-1 px-2" 2540 > 2541 <span class="text-sm "> 2542 Relaxliegen für drinnen </span> 2543 </a> 2544 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen/relaxliegen-xl.html" 2545 title="Relaxliegen XL" 2546 class="cursor-pointer bg-container-lighter py-1 px-2" 2547 > 2548 <sp
2548an class="text-sm "> 2549 Relaxliegen XL </span> 2550 </a> 2551 <a href="/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung.html" 2552 title="Professioneller Gebrauch" 2553 class="cursor-pointer bg-container-lighter py-1 px-2" 2554 > 2555 <span class="text-sm font-semibold "> 2556 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 2557 PRO </span> 2558 </span> 2559 </a> 2560 </div> 2561 </span> 2562 </div> 2563 <div class="level-2 bg-container-lighter"> 2564 <span class="flex flex-col px-6"> 2565 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit.html" 2566 title="Pflege - Langlebigkeit" 2567 class="flex items-center w-full cursor-pointer bg-container-lighter" 2568 > 2569 <span class="text-base font-semibold py-3"> 2570 Pflege - Langlebigkeit </span> 2571 </a> 2572 <div class="level-3 flex flex-col"> 2573 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" 2574 title="Pflegeprodukte" 2575 class="cursor-pointer bg-container-lighter py-1 px-2" 2576 > 2577 <sp
2577an class="text-sm "> 2578 Pflegeprodukte </span> 2579 </a> 2580 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-relaxliegen.html" 2581 title="Ersatzbezüge Relaxliegen" 2582 class="cursor-pointer bg-container-lighter py-1 px-2" 2583 > 2584 <span class="text-sm "> 2585 Ersatzbezüge Relaxliegen </span> 2586 </a> 2587 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/gummischnuere.html" 2588 title="Gummischnüre" 2589 class="cursor-pointer bg-container-lighter py-1 px-2" 2590 > 2591 <span class="text-sm "> 2592 Gummischnüre </span> 2593 </a> 2594 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" 2595 title="Schutzhüllen" 2596 class="cursor-pointer bg-container-lighter py-1 px-2" 2597 > 2598 <span class="text-sm "> 2599 Schutzhüllen </span> 2600 </a> 2601 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-relaxliegen.html" 2602 title="Ersatzteile" 2603 class="cursor-pointer bg-container-lighter py-1 px-2" 2604 > 2605 <span class="text-sm "> 2606 Ersatzteile </span> 2607 </a> 2608 </div> 2609 </span> 2610 </div> 2611 <div class="level-2 bg-container-lighter">
2612 <span class="flex flex-col px-6"> 2613 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/accessoires.html" 2614 title="Accessoires" 2615 class="flex items-center w-full cursor-pointer bg-container-lighter" 2616 > 2617 <span class="text-base font-semibold py-3"> 2618 Accessoires </span> 2619 </a> 2620 <div class="level-3 flex flex-col"> 2621 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/sonnenschirm.html" 2622 title="Sonnenschirm" 2623 class="cursor-pointer bg-container-lighter py-1 px-2" 2624 > 2625 <span class="text-sm "> 2626 Sonnenschirm </span> 2627 </a> 2628 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/recycelte-getraenkehalter.html" 2629 title="Recycelte Getränkehalter" 2630 class="cursor-pointer bg-container-lighter py-1 px-2" 2631 > 2632 <span class="text-sm "> 2633 Recycelte Getränkehalter </span> 2634 </a> 2635 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/decken.html" 2636 title="Decken" 2637 class="cursor-pointer bg-container-lighter py-1 px-2" 2638 > 2639 <span class="text-sm "> 2640 Decken </span> 2641 </a> 2642 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/frotteeauflagen.html" 2643 title="Frotteeauflagen" 2644 class="cursor-pointer bg-container-lighter py-1 px-2" 2645 > 2646 <sp
2646an class="text-sm "> 2647 Frotteeauflagen </span> 2648 </a> 2649 </div> 2650 </span> 2651 </div> 2652 2653 <div class="menu-cms-bottom mt-12 hidden" 2654 :class="{ 2655 'hidden' : mobilePanelLevel1ActiveId !== 'category-node-6' 2656 }"> 2657 <style>::backdrop { 2658--tw-border-spacing-x: 0; 2659--tw-border-spacing-y: 0; 2660--tw-translate-x: 0; 2661--tw-translate-y: 0; 2662--tw-rotate: 0; 2663--tw-skew-x: 0; 2664--tw-skew-y: 0; 2665--tw-scale-x: 1; 2666--tw-scale-y: 1; 2667--tw-pan-x: ; 2668--tw-pan-y: ; 2669--tw-pinch-zoom: ; 2670--tw-scroll-snap-strictness: proximity; 2671--tw-gradient-from-position: ; 2672--tw-gradient-via-position: ; 2673--tw-gradient-to-position: ; 2674--tw-ordinal: ; 2675--tw-slashed-zero: ; 2676--tw-numeric-figure: ; 2677--tw-numeric-spacing: ; 2678--tw-numeric-fraction: ; 2679--tw-ring-inset: ; 2680--tw-ring-offset-width: 0px; 2681--tw-ring-offset-color: #fff; 2682--tw-ring-color: rgb(59 130 246 / 0.5); 2683--tw-ring-offset-shadow: 0 0 #0000; 2684--tw-ring-shadow: 0 0 #0000; 2685--tw-shadow: 0 0 #0000; 2686--tw-shadow-colored: 0 0 #0000; 2687--tw-blur: ; 2688--tw-brightness: ; 2689--tw-contrast: ; 2690--tw-grayscale: ; 2691--tw-hue-rotate: ; 2692--tw-invert: ; 2693--tw-saturate: ; 2694--tw-sepia: ; 2695--tw-drop-shadow: ; 2696--tw-backdrop-blur: ; 2697--tw-backdrop-brightness: ; 2698--tw-backdrop-contrast: ; 2699--tw-backdrop-grayscale: ; 2700--tw-backdrop-hue-rotate: ; 2701--tw-backdrop-invert: ; 2702--tw-backdrop-opacity: ; 2703--tw-backdrop-saturate: ; 2704--tw-backdrop-sepia: 2705} 2706.cmsb2097-mb-4 { 2707margin-bottom: 1rem 2708} 2709.cmsb2097-max-w-\[360px\] { 2710max-width: 360px 2711} 2712.cmsb2097-basis-\[120px\] { 2713flex-basis: 120px 2714} 2715.cmsb2097-basis-\[220px\] { 2716flex-basis: 220px 2717} 2718.cmsb2097-\!flex-row { 2719flex-direction: row !important 2720} 2721.cmsb2097-bg-primary-200 { 2722--tw-bg-opacity: 1; 2723background-color: rgb(238 238 238 / var(--tw-bg-opacity)) 2724} 2725.cmsb2097-\!p-4 { 2726padding: 1rem !important 2727} 2728.cmsb2097-px-6 { 2729padding-left: 1.5rem; 2730padding-right: 1.5rem 2731} 2732.cmsb2097-py-3 { 2733padding-top: 0.75rem; 2734padding-bottom: 0.75rem 2735} 2736.cmsb2097-py-3\.5 { 2737padding-top: 0.875rem; 2738padding-bottom: 0.875rem 2739} 2740.cmsb2097-font-tertiary { 2741font-family: CrimsonPro Italic, Helvetica Neue, Arial, sans-serif 2742} 2743.cmsb2097-leading-5 { 2744line-height: 22px 2745} 2746@media (min-width: 768px) { 2747.cmsb2097-md\:mx-4 { 2748margin-left: 1rem; 2749margin-right: 1rem 2750} 2751.cmsb2097-md\:mb-0 { 2752margin-bottom: 0px 2753} 2754.cmsb2097-md\:\!px-20 { 2755padding-left: 5rem !important; 2756padding-right: 5rem !important 2757} 2758.cmsb2097-md\:\!py-8 { 2759padding-top: 2rem !important; 2760padding-bottom: 2rem !important 2761} 2762} 2763@media (min-width: 1280px) { 2764.cmsb2097-xl\:mx-\[30px\] { 2765margin-left: 30px; 2766margin-right: 30px 2767} 2768}</style> 2769<style>#html-body [data-pb-style=POTDOHK],#html-body [data-pb-style=UDL9QLY]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=POTDOHK]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#eee;margin:0;padding:0}#html-body [data-pb-style=UDL9QLY]{align-self:stretch}
2769#html-body [data-pb-style=RY4PFD9]{display:flex;width:100%}#html-body [data-pb-style=FQ3KTT4],#html-body [data-pb-style=IR9AIYT]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=VLPBQWH]{border-style:none}#html-body [data-pb-style=CNVXGFP]{max-width:100%;height:auto}#html-body [data-pb-style=YBCHIKE]{border-style:none}#html-body [data-pb-style=UH72OG1]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=VLPBQWH],#html-body [data-pb-style=YBCHIKE]{border-style:none} }</style><div class="cmsb2097-bg-primary-200 cmsb2097-!p-4 cmsb2097-md:!py-8 cmsb2097-md:!px-20" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="POTDOHK"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="UDL9QLY"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="RY4PFD9"><div class="pagebuilder-column cmsb2097-mb-4 cmsb2097-md:mb-0 cmsb2097-md:mx-4 cmsb2097-xl:mx-[30px] cmsb2097-!flex-row cmsb2097-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IR9AIYT"><figure class="cmsb2097-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="VLPBQWH"><a href="https://www.lafuma-moebel.de/blog/komfort-sessel-rueckenschmerzen.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-fauteuil-mal-de-dos.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-fauteuil-mal-de-dos.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="CNVXGFP"></source></picture></a></figure><div class="cmsb2097-py-3.5 cmsb2097-px-6 cmsb2097-font-tertiary cmsb2097-leading-5 cmsb2097-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Komfort !<br><br></em></span></p> 2770<p id="S8VW5QJ">Sessel gegen Rückenschmerzen: wie wählt man ihn richtig aus?</p></div></div><div class="pagebuilder-column cmsb2097-mb-4 cmsb2097-md:mb-0 cmsb2097-md:mx-4 cmsb2097-xl:mx-[30px] cmsb2097-!flex-row cmsb2097-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="FQ3KTT4"><figure class="cmsb2097-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="YBCHIKE"><a href="https://www.lafuma-moebel.de/blog/komfort-position-zero-gravity.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-position-zero-gravite-vignette-menu.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-position-zero-gravite-vignette-menu.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="UH72OG1"></source></picture></a></figure><div class="cmsb2097-py-3.5 cmsb2097-px-6 cmsb2097-font-tertiary cmsb2097-leading-5 cmsb2097-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Zero Gravity<br><br></em></span></p> 2771<p id="S8VW5QJ">Warum sollte man sich für einen „Zero Gravity“ Sessel entscheiden?</p></div></div></div></div></div></div> </div> 2772 </div> 2773 </div> 2774 <div class="level-1">
2775 <span class="flex items-center"> 2776 2777 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen.html" 2778 title="Liegestühle und Sonnenliegen" 2779 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 2780 > 2781 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/transats-et-chaises-longues.svg" 2782 alt="" 2783 width="24" 2784 height="24" 2785 loading="lazy" /> 2786 <span class="text-base tracking-wide pr-14 block"> 2787 Liegestühle und Sonnenliegen </span> 2788 </a> 2789 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 2790 @click="mobilePanelLevel1ActiveId = 2791 mobilePanelLevel1ActiveId === 'category-node-12' ? 2792 0 : 'category-node-12'" 2793 > 2794 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 2795<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2796</svg> 2797 </a> 2798 </span> 2799 2800 <div 2801 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 2802 translate-x-full transform bg-container-lighter" 2803 :class="{ 2804 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-12', 2805 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-12', 2806 }" 2807 > 2808 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 2809 @click="mobilePanelLevel1ActiveId = 0" 2810 > 2811 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 2812<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2813</svg> 2814 <span class="ml-2 font-medium"> 2815 Back to </span> 2816 </a> 2817 2818 <div class="level-2 bg-container-lighter">
2819 <span class="flex flex-col px-6"> 2820 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen.html" 2821 title="Liegestühle und Sonnenliegen" 2822 class="flex items-center w-full cursor-pointer bg-container-lighter" 2823 > 2824 <span class="text-base font-semibold py-3"> 2825 Liegestühle und Sonnenliegen </span> 2826 </a> 2827 <div class="level-3 flex flex-col"> 2828 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/liegestuehle.html" 2829 title="Liegestühle" 2830 class="cursor-pointer bg-container-lighter py-1 px-2" 2831 > 2832 <span class="text-sm "> 2833 Liegestühle </span> 2834 </a> 2835 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/sonnenliegen.html" 2836 title="Sonnenliegen" 2837 class="cursor-pointer bg-container-lighter py-1 px-2" 2838 > 2839 <span class="text-sm "> 2840 Sonnenliegen </span> 2841 </a> 2842 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/butterfly-chairs-pop-up.html" 2843 title="Butterfly Chairs (Pop Up)" 2844 class="cursor-pointer bg-container-lighter py-1 px-2" 2845 > 2846 <span class="text-sm "> 2847 Butterfly Chairs (Pop Up) </span> 2848 </a> 2849 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/fussauflagen.html" 2850 title="Fußauflagen" 2851 class="cursor-pointer bg-container-lighter py-1 px-2" 2852 > 2853 <sp
2853an class="text-sm "> 2854 FuÃauflagen </span> 2855 </a> 2856 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/liegestuehle.html" 2857 title="Professioneller Gebrauch" 2858 class="cursor-pointer bg-container-lighter py-1 px-2" 2859 > 2860 <span class="text-sm font-semibold "> 2861 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 2862 PRO </span> 2863 </span> 2864 </a> 2865 </div> 2866 </span> 2867 </div> 2868 <div class="level-2 bg-container-lighter"> 2869 <span class="flex flex-col px-6"> 2870 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/pflege-langlebigkeit.html" 2871 title="Pflege - Langlebigkeit" 2872 class="flex items-center w-full cursor-pointer bg-container-lighter" 2873 > 2874 <span class="text-base font-semibold py-3"> 2875 Pflege - Langlebigkeit </span> 2876 </a> 2877 <div class="level-3 flex flex-col"> 2878 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-liegestuehle.html" 2879 title="Ersatzbezüge Liegestühle" 2880 class="cursor-pointer bg-container-lighter py-1 px-2" 2881 > 2882 <sp
2882an class="text-sm "> 2883 Ersatzbezüge Liegestühle </span> 2884 </a> 2885 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-sonnenliegen.html" 2886 title="Ersatzbezüge Sonnenliegen" 2887 class="cursor-pointer bg-container-lighter py-1 px-2" 2888 > 2889 <span class="text-sm "> 2890 Ersatzbezüge Sonnenliegen </span> 2891 </a> 2892 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" 2893 title="Ersatzbezüge Pop Up" 2894 class="cursor-pointer bg-container-lighter py-1 px-2" 2895 > 2896 <span class="text-sm "> 2897 Ersatzbezüge Pop Up </span> 2898 </a> 2899 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" 2900 title="Schutzhüllen" 2901 class="cursor-pointer bg-container-lighter py-1 px-2" 2902 > 2903 <span class="text-sm "> 2904 Schutzhüllen </span> 2905 </a> 2906 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-liegestuehle.html" 2907 title="Ersatzteile Liegestühle" 2908 class="cursor-pointer bg-container-lighter py-1 px-2" 2909 > 2910 <sp
2910an class="text-sm "> 2911 Ersatzteile Liegestühle </span> 2912 </a> 2913 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-sonnenliegen.html" 2914 title="Ersatzteile Sonnenliegen" 2915 class="cursor-pointer bg-container-lighter py-1 px-2" 2916 > 2917 <span class="text-sm "> 2918 Ersatzteile Sonnenliegen </span> 2919 </a> 2920 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" 2921 title="Ersatzteile Pop Up" 2922 class="cursor-pointer bg-container-lighter py-1 px-2" 2923 > 2924 <span class="text-sm "> 2925 Ersatzteile Pop Up </span> 2926 </a> 2927 <a href="/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" 2928 title="Pflegeprodukte" 2929 class="cursor-pointer bg-container-lighter py-1 px-2" 2930 > 2931 <span class="text-sm "> 2932 Pflegeprodukte </span> 2933 </a> 2934 </div> 2935 </span> 2936 </div> 2937 2938 <div class="menu-cms-bottom mt-12 hidden" 2939 :class="{ 2940 'hidden' : mobilePanelLevel1ActiveId !== 'category-node-12' 2941 }"> 2942 </div> 2943 </div> 2944 </div> 2945 <div class="level-1">
2946 <span class="flex items-center"> 2947 2948 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle.html" 2949 title="Tische und Stühle" 2950 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 2951 > 2952 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/tables-et-chaises.svg" 2953 alt="" 2954 width="24" 2955 height="24" 2956 loading="lazy" /> 2957 <span class="text-base tracking-wide pr-14 block"> 2958 Tische und Stühle </span> 2959 </a> 2960 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 2961 @click="mobilePanelLevel1ActiveId = 2962 mobilePanelLevel1ActiveId === 'category-node-93' ? 2963 0 : 'category-node-93'" 2964 > 2965 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 2966<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2967</svg> 2968 </a> 2969 </span> 2970 2971 <div 2972 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 2973 translate-x-full transform bg-container-lighter" 2974 :class="{ 2975 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-93', 2976 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-93', 2977 }" 2978 > 2979 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 2980 @click="mobilePanelLevel1ActiveId = 0" 2981 > 2982 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 2983<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 2984</svg> 2985 <span class="ml-2 font-medium"> 2986 Back to </span> 2987 </a> 2988 2989 <div class="level-2 bg-container-lighter">
2990 <span class="flex flex-col px-6"> 2991 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische.html" 2992 title="Gartentische" 2993 class="flex items-center w-full cursor-pointer bg-container-lighter" 2994 > 2995 <span class="text-base font-semibold py-3"> 2996 Gartentische </span> 2997 </a> 2998 <div class="level-3 flex flex-col"> 2999 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/essgruppen-tisch-und-stuehle.html" 3000 title="Essgruppen (Tisch und Stühle)" 3001 class="cursor-pointer bg-container-lighter py-1 px-2" 3002 > 3003 <span class="text-sm "> 3004 Essgruppen (Tisch und Stühle) </span> 3005 </a> 3006 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/quadratische-tische.html" 3007 title="Quadratische Tische" 3008 class="cursor-pointer bg-container-lighter py-1 px-2" 3009 > 3010 <span class="text-sm "> 3011 Quadratische Tische </span> 3012 </a> 3013 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/rechteckige-tische.html" 3014 title="Rechteckige Tische" 3015 class="cursor-pointer bg-container-lighter py-1 px-2" 3016 > 3017 <span class="text-sm "> 3018 Rechteckige Tische </span> 3019 </a> 3020 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische
3020-und-stuehle/gartentische/ausziehbare-tische.html" 3021 title="Ausziehbare Tische" 3022 class="cursor-pointer bg-container-lighter py-1 px-2" 3023 > 3024 <span class="text-sm "> 3025 Ausziehbare Tische </span> 3026 </a> 3027 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/klappbare-tische.html" 3028 title="Klappbare Tische" 3029 class="cursor-pointer bg-container-lighter py-1 px-2" 3030 > 3031 <span class="text-sm "> 3032 Klappbare Tische </span> 3033 </a> 3034 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/niedrige-tische.html" 3035 title="Niedrige Tische" 3036 class="cursor-pointer bg-container-lighter py-1 px-2" 3037 > 3038 <span class="text-sm "> 3039 Niedrige Tische </span> 3040 </a> 3041 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/tische.html" 3042 title="Professioneller Gebrauch" 3043 class="cursor-pointer bg-container-lighter py-1 px-2" 3044 > 3045 <span class="text-sm font-semibold "> 3046 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3047 PRO </span> 3048 </span> 3049 </a> 3050 </div> 3051 </span> 3052 </div> 3053 <div class="level-2 bg-container-lighter">
3054 <span class="flex flex-col px-6"> 3055 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle.html" 3056 title="Gartenstühle" 3057 class="flex items-center w-full cursor-pointer bg-container-lighter" 3058 > 3059 <span class="text-base font-semibold py-3"> 3060 Gartenstühle </span> 3061 </a> 3062 <div class="level-3 flex flex-col"> 3063 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/gartenstuehle.html" 3064 title="Gartenstühle" 3065 class="cursor-pointer bg-container-lighter py-1 px-2" 3066 > 3067 <span class="text-sm "> 3068 Gartenstühle </span> 3069 </a> 3070 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/klappbare-stuehle.html" 3071 title="Klappbare Stühle" 3072 class="cursor-pointer bg-container-lighter py-1 px-2" 3073 > 3074 <span class="text-sm "> 3075 Klappbare Stühle </span> 3076 </a> 3077 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/hochlehner.html" 3078 title="Hochlehner" 3079 class="cursor-pointer bg-container-lighter py-1 px-2" 3080 > 3081 <span class="text-sm "> 3082 Hochlehner </span> 3083 </a> 3084 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische
3084-und-stuehle/gartenstuehle/mittelhohe-stuehle.html" 3085 title="Mittelhohe Stühle" 3086 class="cursor-pointer bg-container-lighter py-1 px-2" 3087 > 3088 <span class="text-sm "> 3089 Mittelhohe Stühle </span> 3090 </a> 3091 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/stuehle-und-sessel.html" 3092 title="Professioneller Gebrauch" 3093 class="cursor-pointer bg-container-lighter py-1 px-2" 3094 > 3095 <span class="text-sm font-semibold "> 3096 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3097 PRO </span> 3098 </span> 3099 </a> 3100 </div> 3101 </span> 3102 </div> 3103 <div class="level-2 bg-container-lighter"> 3104 <span class="flex flex-col px-6"> 3105 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/pflege-langlebigkeit.html" 3106 title="Pflege - Langlebigkeit" 3107 class="flex items-center w-full cursor-pointer bg-container-lighter" 3108 > 3109 <span class="text-base font-semibold py-3"> 3110 Pflege - Langlebigkeit </span> 3111 </a> 3112 <div class="level-3 flex flex-col"> 3113 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische
3113-und-stuehle/pflege-langlebigkeit/pflegeprodukte.html" 3114 title="Pflegeprodukte" 3115 class="cursor-pointer bg-container-lighter py-1 px-2" 3116 > 3117 <span class="text-sm "> 3118 Pflegeprodukte </span> 3119 </a> 3120 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-stuehle-und-sessel.html" 3121 title="Ersatzbezüge Stühle und Sessel" 3122 class="cursor-pointer bg-container-lighter py-1 px-2" 3123 > 3124 <span class="text-sm "> 3125 Ersatzbezüge Stühle und Sessel </span> 3126 </a> 3127 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-stuehle-und-sessel.html" 3128 title="Ersatzteile Stühle und Sessel" 3129 class="cursor-pointer bg-container-lighter py-1 px-2" 3130 > 3131 <span class="text-sm "> 3132 Ersatzteile Stühle und Sessel </span> 3133 </a> 3134 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-tische.html" 3135 title="Ersatzteile Tische" 3136 class="cursor-pointer bg-container-lighter py-1 px-2" 3137 > 3138 <span class="text-sm "> 3139 Ersatzteile Tische </span> 3140 </a> 3141 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" 3142 title="Schutzhüllen" 3143 class="cursor-pointer bg-container-lighter py-1 px-2" 3144 > 3145 <sp
3145an class="text-sm "> 3146 Schutzhüllen </span> 3147 </a> 3148 </div> 3149 </span> 3150 </div> 3151 3152 <div class="menu-cms-bottom mt-12 hidden" 3153 :class="{ 3154 'hidden' : mobilePanelLevel1ActiveId !== 'category-node-93' 3155 }"> 3156 <style>::backdrop { 3157--tw-border-spacing-x: 0; 3158--tw-border-spacing-y: 0; 3159--tw-translate-x: 0; 3160--tw-translate-y: 0; 3161--tw-rotate: 0; 3162--tw-skew-x: 0; 3163--tw-skew-y: 0; 3164--tw-scale-x: 1; 3165--tw-scale-y: 1; 3166--tw-pan-x: ; 3167--tw-pan-y: ; 3168--tw-pinch-zoom: ; 3169--tw-scroll-snap-strictness: proximity; 3170--tw-gradient-from-position: ; 3171--tw-gradient-via-position: ; 3172--tw-gradient-to-position: ; 3173--tw-ordinal: ; 3174--tw-slashed-zero: ; 3175--tw-numeric-figure: ; 3176--tw-numeric-spacing: ; 3177--tw-numeric-fraction: ; 3178--tw-ring-inset: ; 3179--tw-ring-offset-width: 0px; 3180--tw-ring-offset-color: #fff; 3181--tw-ring-color: rgb(59 130 246 / 0.5); 3182--tw-ring-offset-shadow: 0 0 #0000; 3183--tw-ring-shadow: 0 0 #0000; 3184--tw-shadow: 0 0 #0000; 3185--tw-shadow-colored: 0 0 #0000; 3186--tw-blur: ; 3187--tw-brightness: ; 3188--tw-contrast: ; 3189--tw-grayscale: ; 3190--tw-hue-rotate: ; 3191--tw-invert: ; 3192--tw-saturate: ; 3193--tw-sepia: ; 3194--tw-drop-shadow: ; 3195--tw-backdrop-blur: ; 3196--tw-backdrop-brightness: ; 3197--tw-backdrop-contrast: ; 3198--tw-backdrop-grayscale: ; 3199--tw-backdrop-hue-rotate: ; 3200--tw-backdrop-invert: ; 3201--tw-backdrop-opacity: ; 3202--tw-backdrop-saturate: ; 3203--tw-backdrop-sepia: 3204} 3205.cmsb2130-mb-4 { 3206margin-bottom: 1rem 3207} 3208.cmsb2130-max-w-\[360px\] { 3209max-width: 360px 3210} 3211.cmsb2130-basis-\[120px\] { 3212flex-basis: 120px 3213} 3214.cmsb2130-basis-\[220px\] { 3215flex-basis: 220px 3216} 3217.cmsb2130-\!flex-row { 3218flex-direction: row !important 3219} 3220.cmsb2130-bg-primary-200 { 3221--tw-bg-opacity: 1; 3222background-color: rgb(238 238 238 / var(--tw-bg-opacity)) 3223} 3224.cmsb2130-\!p-4 { 3225padding: 1rem !important 3226} 3227.cmsb2130-px-6 { 3228padding-left: 1.5rem; 3229padding-right: 1.5rem 3230} 3231.cmsb2130-py-3 { 3232padding-top: 0.75rem; 3233padding-bottom: 0.75rem 3234} 3235.cmsb2130-py-3\.5 { 3236padding-top: 0.875rem; 3237padding-bottom: 0.875rem 3238} 3239.cmsb2130-font-tertiary { 3240font-family: CrimsonPro Italic, Helvetica Neue, Arial, sans-serif 3241} 3242.cmsb2130-leading-5 { 3243line-height: 22px 3244} 3245@media (min-width: 768px) { 3246.cmsb2130-md\:mx-4 { 3247margin-left: 1rem; 3248margin-right: 1rem 3249} 3250.cmsb2130-md\:mb-0 { 3251margin-bottom: 0px 3252} 3253.cmsb2130-md\:\!px-20 { 3254padding-left: 5rem !important; 3255padding-right: 5rem !important 3256} 3257.cmsb2130-md\:\!py-8 { 3258padding-top: 2rem !important; 3259padding-bottom: 2rem !important 3260} 3261} 3262@media (min-width: 1280px) { 3263.cmsb2130-xl\:mx-\[30px\] { 3264margin-left: 30px; 3265margin-right: 30px 3266} 3267}</style> 3268<style>#html-body [data-pb-style=CGPTRNH],#html-body [data-pb-style=PQ131LI]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=PQ131LI]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#eee;margin:0;padding:0}#html-body [data-pb-style=CGPTRNH]{align-self:stretch}#html-body [data-pb-style=P86YKEM]{display:flex;width:100%}#html-body [data-pb-style=BWPGTIG],#html-body [data-pb-style=L4ORY25],#html-body [data-pb-style=YMHB8MA]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;align-self:stretch}#html-body [data-pb-style=XUTXFT9]{border-style:none}#html-body [data-pb-style=OTG7YX3]{max-width:100%;height:auto}#html-body [data-pb-style=LPDFIAV]{border-style:none}#html-body [data-pb-style=O06PF7B]{max-width:100%;height:auto}#html-body [data-pb-style=V0VKPPW]{border-style:none}#html-body [data-pb-style=YA0E1A2]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=LPDFIAV],#html-body [data-pb-style=V0VKPPW],#html-body [data-pb-style=XUTXFT9]{border-style:none} }</style><div class="cmsb2130-bg-primary-200 cmsb2130-!p-4 cmsb2130-md:!py-8 cmsb2130-md:!px-20" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="PQ131LI"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="CGPTRNH"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="P8
32686YKEM"><div class="pagebuilder-column cmsb2130-mb-4 cmsb2130-md:mb-0 cmsb2130-md:mx-4 cmsb2130-xl:mx-[30px] cmsb2130-!flex-row cmsb2130-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="L4ORY25"><figure class="cmsb2130-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="XUTXFT9"><a href="https://www.lafuma-moebel.de/blog/unsere-leitfaeden-und-tipps-leitfaden-tisch-auswaehlen.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc1-article.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc1-article.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="OTG7YX3"></source></picture></a></figure><div class="cmsb2130-py-3.5 cmsb2130-px-6 cmsb2130-font-tertiary cmsb2130-leading-5 cmsb2130-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Tipps<br><br></em></span></p> 3269<p id="S8VW5QJ">Welcher Gartentisch ist der beste?</p></div></div><div class="pagebuilder-column cmsb2130-mb-4 cmsb2130-md:mb-0 cmsb2130-md:mx-4 cmsb2130-xl:mx-[30px] cmsb2130-!flex-row cmsb2130-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="YMHB8MA"><figure class="cmsb2130-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="LPDFIAV"><a href="https://www.lafuma-moebel.de/blog/unsere-leitfaeden-und-tipps-leitfaden-wie-gross-muss-ein-tisch-sein.html" target="_blank" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc2-article.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc2-article.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="O06PF7B"></source></picture></a></figure><div class="cmsb2130-py-3.5 cmsb2130-px-6 cmsb2130-font-tertiary cmsb2130-leading-5 cmsb2130-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Die richtige Größe<br><br></em></span></p> 3270<p id="S8VW5QJ">Wie groß muss ein Gartentisch sein?</p></div></div><div class="pagebuilder-column cmsb2130-md:mx-4 cmsb2130-xl:mx-[30px] cmsb2130-!flex-row cmsb2130-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="BWPGTIG"><figure class="cmsb2130-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="V0VKPPW"><a href="https://www.lafuma-moebel.de/blog/unsere-leitfaeden-und-tipps-welches-material-fuer-tische.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc3-article.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc3-article.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="YA0E1A2"></source></picture></a></figure><div class="cmsb2130-py-3.5 cmsb2130-px-6 cmsb2130-font-tertiary cmsb2130-leading-5 cmsb2130-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Hilfe bei der Auswahl<br><br></em></span></p> 3271<p id="S8VW5QJ">Welches Material für den Gartentisch?</p></div></div></div></div></div></div> </div> 3272 </div> 3273 </div> 3274 <div class="level-1">
3275 <span class="flex items-center"> 3276 3277 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge.html" 3278 title="Gartenlounge" 3279 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 3280 > 3281 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/salons-de-jardin.svg" 3282 alt="" 3283 width="24" 3284 height="24" 3285 loading="lazy" /> 3286 <span class="text-base tracking-wide pr-14 block"> 3287 Gartenlounge </span> 3288 </a> 3289 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 3290 @click="mobilePanelLevel1ActiveId = 3291 mobilePanelLevel1ActiveId === 'category-node-141' ? 3292 0 : 'category-node-141'" 3293 > 3294 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 3295<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3296</svg> 3297 </a> 3298 </span> 3299 3300 <div 3301 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 3302 translate-x-full transform bg-container-lighter" 3303 :class="{ 3304 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-141', 3305 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-141', 3306 }" 3307 > 3308 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 3309 @click="mobilePanelLevel1ActiveId = 0" 3310 > 3311 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 3312<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3313</svg> 3314 <span class="ml-2 font-medium"> 3315 Back to </span> 3316 </a> 3317 3318 <div class="level-2 bg-container-lighter">
3319 <span class="flex flex-col px-6"> 3320 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/gartenlounge.html" 3321 title="Gartenlounge" 3322 class="flex items-center w-full cursor-pointer bg-container-lighter" 3323 > 3324 <span class="text-base font-semibold py-3"> 3325 Gartenlounge </span> 3326 </a> 3327 <div class="level-3 flex flex-col"> 3328 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/gartenlounge/moebel-fuer-niedrige-gartenlounge.html" 3329 title="Möbel für niedrige Gartenlounge" 3330 class="cursor-pointer bg-container-lighter py-1 px-2" 3331 > 3332 <span class="text-sm "> 3333 Möbel für niedrige Gartenlounge </span> 3334 </a> 3335 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/gartenlounge/designstuehle-und-sessel.html" 3336 title="Designstühle und Gartensessel" 3337 class="cursor-pointer bg-container-lighter py-1 px-2" 3338 > 3339 <span class="text-sm "> 3340 Designstühle und Gartensessel </span> 3341 </a> 3342 <a href="/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/butterfly-chairs-pop-up.html" 3343 title="Butterfly Chairs (Pop Up)" 3344 class="cursor-pointer bg-container-lighter py-1 px-2" 3345 > 3346 <span class="text-sm "> 3347 Butterfly Chairs (Pop Up) </span> 3348 </a> 3349 <a href="/alle-unsere-produkte/tische
3349-und-stuehle/gartentische/niedrige-tische.html" 3350 title="Niedrige Tische" 3351 class="cursor-pointer bg-container-lighter py-1 px-2" 3352 > 3353 <span class="text-sm "> 3354 Niedrige Tische </span> 3355 </a> 3356 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel.html" 3357 title="Professioneller Gebrauch" 3358 class="cursor-pointer bg-container-lighter py-1 px-2" 3359 > 3360 <span class="text-sm font-semibold "> 3361 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3362 PRO </span> 3363 </span> 3364 </a> 3365 </div> 3366 </span> 3367 </div> 3368 <div class="level-2 bg-container-lighter"> 3369 <span class="flex flex-col px-6"> 3370 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/pflege-langlebigkeit.html" 3371 title="Pflege - Langlebigkeit" 3372 class="flex items-center w-full cursor-pointer bg-container-lighter" 3373 > 3374 <span class="text-base font-semibold py-3"> 3375 Pflege - Langlebigkeit </span> 3376 </a> 3377 <div class="level-3 flex flex-col"> 3378 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" 3379 title="Ersatzbezüge Pop Up" 3380 class="cursor-pointer bg-container-lighter py-1 px-2" 3381 > 3382 <sp
3382an class="text-sm "> 3383 Ersatzbezüge Pop Up </span> 3384 </a> 3385 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-niedrige-loungemoebel.html" 3386 title="Ersatzbezüge niedrige Loungemöbel" 3387 class="cursor-pointer bg-container-lighter py-1 px-2" 3388 > 3389 <span class="text-sm "> 3390 Ersatzbezüge niedrige Loungemöbel </span> 3391 </a> 3392 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" 3393 title="Ersatzteile" 3394 class="cursor-pointer bg-container-lighter py-1 px-2" 3395 > 3396 <span class="text-sm "> 3397 Ersatzteile </span> 3398 </a> 3399 <a href="/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" 3400 title="Pflegeprodukte" 3401 class="cursor-pointer bg-container-lighter py-1 px-2" 3402 > 3403 <span class="text-sm "> 3404 Pflegeprodukte </span> 3405 </a> 3406 </div> 3407 </span> 3408 </div> 3409 3410 </div> 3411 </div> 3412 <div class="level-1"> 3413 <span class="flex items-center"> 3414 3415 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand.html" 3416 title="Camping und Strand" 3417 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 3418 > 3419 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/mobilier-camping-et-plage.svg" 3420 alt="" 3421 width="24" 3422 height="24" 3423 loading="lazy" /> 3424 <sp
3424an class="text-base tracking-wide pr-14 block"> 3425 Camping und Strand </span> 3426 </a> 3427 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 3428 @click="mobilePanelLevel1ActiveId = 3429 mobilePanelLevel1ActiveId === 'category-node-156' ? 3430 0 : 'category-node-156'" 3431 > 3432 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 3433<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3434</svg> 3435 </a> 3436 </span> 3437 3438 <div 3439 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 3440 translate-x-full transform bg-container-lighter" 3441 :class="{ 3442 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-156', 3443 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-156', 3444 }" 3445 > 3446 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 3447 @click="mobilePanelLevel1ActiveId = 0" 3448 > 3449 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 3450<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3451</svg> 3452 <span class="ml-2 font-medium"> 3453 Back to </span> 3454 </a> 3455 3456 <div class="level-2 bg-container-lighter"> 3457 <span class="flex flex-col px-6"> 3458 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs.html" 3459 title="Möbel für unterwegs" 3460 class="flex items-center w-full cursor-pointer bg-container-lighter" 3461 > 3462 <span class="text-base font-semibold py-3"> 3463 Möbel für unterwegs </span> 3464 </a> 3465 <div class="level-3 flex flex-col"> 3466 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/klappbare-stuehle.html" 3467 title="Klappbare Stühle" 3468 class="cursor-pointer bg-container-lighter py-1 px-2" 3469 > 3470 <sp
3470an class="text-sm "> 3471 Klappbare Stühle </span> 3472 </a> 3473 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/niedrige-klappstuehle.html" 3474 title="Niedrige Klappstühle" 3475 class="cursor-pointer bg-container-lighter py-1 px-2" 3476 > 3477 <span class="text-sm "> 3478 Niedrige Klappstühle </span> 3479 </a> 3480 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/butterfly-chairs-pop-up.html" 3481 title="Butterfly Chairs (Pop Up)" 3482 class="cursor-pointer bg-container-lighter py-1 px-2" 3483 > 3484 <span class="text-sm "> 3485 Butterfly Chairs (Pop Up) </span> 3486 </a> 3487 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/campinghocker.html" 3488 title="Campinghocker" 3489 class="cursor-pointer bg-container-lighter py-1 px-2" 3490 > 3491 <span class="text-sm "> 3492 Campinghocker </span> 3493 </a> 3494 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/campingsessel.html" 3495 title="Campingsessel" 3496 class="cursor-pointer bg-container-lighter py-1 px-2" 3497 > 3498 <sp
3498an class="text-sm "> 3499 Campingsessel </span> 3500 </a> 3501 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/klappbare-strandstuehle.html" 3502 title="Klappbare Strandstühle" 3503 class="cursor-pointer bg-container-lighter py-1 px-2" 3504 > 3505 <span class="text-sm "> 3506 Klappbare Strandstühle </span> 3507 </a> 3508 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/klappbare-sonnenliegen.html" 3509 title="Klappbare Sonnenliegen" 3510 class="cursor-pointer bg-container-lighter py-1 px-2" 3511 > 3512 <span class="text-sm "> 3513 Klappbare Sonnenliegen </span> 3514 </a> 3515 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/campingtische.html" 3516 title="Campingtische" 3517 class="cursor-pointer bg-container-lighter py-1 px-2" 3518 > 3519 <span class="text-sm "> 3520 Campingtische </span> 3521 </a> 3522 </div> 3523 </span> 3524 </div> 3525 <div class="level-2 bg-container-lighter"> 3526 <span class="flex flex-col px-6"> 3527 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/pflege-langlebigkeit.html" 3528 title="Pflege - Langlebigkeit" 3529 class="flex items-center w-full cursor-pointer bg-container-lighter" 3530 > 3531 <sp
3531an class="text-base font-semibold py-3"> 3532 Pflege - Langlebigkeit </span> 3533 </a> 3534 <div class="level-3 flex flex-col"> 3535 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" 3536 title="Ersatzbezüge Pop Up" 3537 class="cursor-pointer bg-container-lighter py-1 px-2" 3538 > 3539 <span class="text-sm "> 3540 Ersatzbezüge Pop Up </span> 3541 </a> 3542 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-stuehle-und-sessel.html" 3543 title="Ersatzbezüge Stühle und Sessel" 3544 class="cursor-pointer bg-container-lighter py-1 px-2" 3545 > 3546 <span class="text-sm "> 3547 Ersatzbezüge Stühle und Sessel </span> 3548 </a> 3549 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" 3550 title="Ersatzteile Pop Up" 3551 class="cursor-pointer bg-container-lighter py-1 px-2" 3552 > 3553 <span class="text-sm "> 3554 Ersatzteile Pop Up </span> 3555 </a> 3556 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-stuehle-und-sessel.html" 3557 title="Ersatzteile Stühle und Sessel" 3558 class="cursor-pointer bg-container-lighter py-1 px-2" 3559 > 3560 <sp
3560an class="text-sm "> 3561 Ersatzteile Stühle und Sessel </span> 3562 </a> 3563 <a href="/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" 3564 title="Pflegeprodukte" 3565 class="cursor-pointer bg-container-lighter py-1 px-2" 3566 > 3567 <span class="text-sm "> 3568 Pflegeprodukte </span> 3569 </a> 3570 </div> 3571 </span> 3572 </div> 3573 3574 </div> 3575 </div> 3576 <div class="level-1"> 3577 <span class="flex items-center"> 3578 3579 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires.html" 3580 title="Accessoires" 3581 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 3582 > 3583 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/accessoires.svg" 3584 alt="" 3585 width="24" 3586 height="24" 3587 loading="lazy" /> 3588 <span class="text-base tracking-wide pr-14 block"> 3589 Accessoires </span> 3590 </a> 3591 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 3592 @click="mobilePanelLevel1ActiveId = 3593 mobilePanelLevel1ActiveId === 'category-node-189' ? 3594 0 : 'category-node-189'" 3595 > 3596 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 3597<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3598</svg> 3599 </a> 3600 </span> 3601 3602 <div 3603 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 3604 translate-x-full transform bg-container-lighter" 3605 :class="{ 3606 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-189', 3607 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-189', 3608 }" 3609 > 3610 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 3611 @click="mobilePanelLevel1ActiveId = 0" 3612 > 3613 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
3613ox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 3614<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3615</svg> 3616 <span class="ml-2 font-medium"> 3617 Back to </span> 3618 </a> 3619 3620 <div class="level-2 bg-container-lighter"> 3621 <span class="flex flex-col px-6"> 3622 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko.html" 3623 title="Einrichtung und Deko" 3624 class="flex items-center w-full cursor-pointer bg-container-lighter" 3625 > 3626 <span class="text-base font-semibold py-3"> 3627 Einrichtung und Deko </span> 3628 </a> 3629 <div class="level-3 flex flex-col"> 3630 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/outdoor-teppiche.html" 3631 title="Outdoor-Teppiche" 3632 class="cursor-pointer bg-container-lighter py-1 px-2" 3633 > 3634 <span class="text-sm "> 3635 Outdoor-Teppiche </span> 3636 </a> 3637 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/kissen.html" 3638 title="Kissen" 3639 class="cursor-pointer bg-container-lighter py-1 px-2" 3640 > 3641 <span class="text-sm "> 3642 Kissen </span> 3643 </a> 3644 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/tischsets.html" 3645 title="Tischsets" 3646 class="cursor-pointer bg-container-lighter py-1 px-2" 3647 > 3648 <sp
3648an class="text-sm "> 3649 Tischsets </span> 3650 </a> 3651 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/tabletts.html" 3652 title="Tabletts" 3653 class="cursor-pointer bg-container-lighter py-1 px-2" 3654 > 3655 <span class="text-sm "> 3656 Tabletts </span> 3657 </a> 3658 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/recycelte-untersetzer.html" 3659 title="Recycelte Untersetzer" 3660 class="cursor-pointer bg-container-lighter py-1 px-2" 3661 > 3662 <span class="text-sm "> 3663 Recycelte Untersetzer </span> 3664 </a> 3665 </div> 3666 </span> 3667 </div> 3668 <div class="level-2 bg-container-lighter"> 3669 <span class="flex flex-col px-6"> 3670 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch.html" 3671 title="Bequem und praktisch" 3672 class="flex items-center w-full cursor-pointer bg-container-lighter" 3673 > 3674 <span class="text-base font-semibold py-3"> 3675 Bequem und praktisch </span> 3676 </a> 3677 <div class="level-3 flex flex-col"> 3678 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/recycelte-getraenkehalter.html" 3679 title="Recycelte Getränkehalter" 3680 class="cursor-pointer bg-container-lighter py-1 px-2" 3681 > 3682 <sp
3682an class="text-sm "> 3683 Recycelte Getränkehalter </span> 3684 </a> 3685 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/sonnenschirm.html" 3686 title="Sonnenschirm" 3687 class="cursor-pointer bg-container-lighter py-1 px-2" 3688 > 3689 <span class="text-sm "> 3690 Sonnenschirm </span> 3691 </a> 3692 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" 3693 title="Schutzhüllen / Transporttaschen" 3694 class="cursor-pointer bg-container-lighter py-1 px-2" 3695 > 3696 <span class="text-sm "> 3697 Schutzhüllen / Transporttaschen </span> 3698 </a> 3699 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/frotteeauflagen.html" 3700 title="Frotteeauflagen" 3701 class="cursor-pointer bg-container-lighter py-1 px-2" 3702 > 3703 <span class="text-sm "> 3704 Frotteeauflagen </span> 3705 </a> 3706 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/decken.html" 3707 title="Decken" 3708 class="cursor-pointer bg-container-lighter py-1 px-2" 3709 > 3710 <sp
3710an class="text-sm "> 3711 Decken </span> 3712 </a> 3713 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/gummischnuere.html" 3714 title="Gummischnüre" 3715 class="cursor-pointer bg-container-lighter py-1 px-2" 3716 > 3717 <span class="text-sm "> 3718 Gummischnüre </span> 3719 </a> 3720 </div> 3721 </span> 3722 </div> 3723 3724 </div> 3725 </div> 3726 </div> 3727 </div> 3728 <div class="level-0 first:border-t border-primary-300"> 3729 <span 3730 class="flex items-center transition-transform duration-150 ease-in-out transform" 3731 :class="{ 3732 '-translate-x-full' : mobilePanelActiveId, 3733 'translate-x-0' : !mobilePanelActiveId 3734 }" 3735 > 3736 <a class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-300 level-0 hover:font-semibold" 3737 style="color: red" 3738 href="https://www.lafuma-moebel.de/top-deals.html" 3739 title="KOMFORTMOMENTE"> 3740 <span class="block pr-14">KOMFORTMOMENTE</span> 3741 </a> 3742 </span> 3743 </div> 3744 <div class="level-0 first:border-t border-primary-300"> 3745 <span 3746 class="flex items-center transition-transform duration-150 ease-in-out transform" 3747 :class="{ 3748 '-translate-x-full' : mobilePanelActiveId, 3749 'translate-x-0' : !mobilePanelActiveId 3750 }" 3751 > 3752 <a class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-300 level-0 hover:font-semibold" 3753 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 3754 href="https://www.lafuma-moebel.de/professioneller-gebrauch.html" 3755 title="Professioneller Gebrauch"> 3756 <span class="block pr-14">Professioneller Gebrauch</span> 3757 </a> 3758 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 3759 @click="mobilePanelActiveId = 3760 mobilePanelActiveId === 'category-node-291' ? 3761 0 : 'category-node-291'" 3762 > 3763 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
3763ox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 3764<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3765</svg> 3766 </a> 3767 </span> 3768 <div 3769 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 3770 translate-x-full transform bg-container-lighter" 3771 :class="{ 3772 'translate-x-full' : mobilePanelActiveId !== 'category-node-291', 3773 'translate-x-0' : mobilePanelActiveId === 'category-node-291' 3774 }" 3775 > 3776 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 3777 @click="mobilePanelActiveId = 0" 3778 > 3779 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 3780<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3781</svg> 3782 <span class="ml-2 font-medium"> 3783 Back to </span> 3784 </a> 3785 <div class="level-1"> 3786 <span class="flex items-center"> 3787 3788 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants.html" 3789 title="Hotels, Cafés & Restaurants" 3790 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 3791 > 3792 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/cafe-hotels-restaurants.svg" 3793 alt="" 3794 width="24" 3795 height="24" 3796 loading="lazy" /> 3797 <span class="text-base tracking-wide pr-14 block"> 3798 Hotels, Cafés & Restaurants </span> 3799 </a> 3800 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 3801 @click="mobilePanelLevel1ActiveId = 3802 mobilePanelLevel1ActiveId === 'category-node-294' ? 3803 0 : 'category-node-294'" 3804 > 3805 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 3806<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3807</svg> 3808 </a> 3809 </span> 3810 3811 <div 3812 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 3813 translate-x-full transform bg-container-lighter" 3814 :class="{ 3815 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-294', 3816 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-294', 3817 }" 3818 > 3819 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 3820 @click="mobilePanelLevel1ActiveId = 0" 3821 > 3822 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
3822ox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 3823<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 3824</svg> 3825 <span class="ml-2 font-medium"> 3826 Back to </span> 3827 </a> 3828 3829 <div class="level-2 bg-container-lighter"> 3830 <span class="flex flex-col px-6"> 3831 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants.html" 3832 title="Terrassenmöbel für Restaurants" 3833 class="flex items-center w-full cursor-pointer bg-container-lighter" 3834 > 3835 <span class="text-base font-semibold py-3"> 3836 Terrassenmöbel für Restaurants <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3837 PRO </span> 3838 </span> 3839 </a> 3840 <div class="level-3 flex flex-col"> 3841 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/tische.html" 3842 title="Tische" 3843 class="cursor-pointer bg-container-lighter py-1 px-2" 3844 > 3845 <span class="text-sm "> 3846 Tische </span> 3847 </a> 3848 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/halbhohe-tische.html" 3849 title="Halbhohe Tische" 3850 class="cursor-pointer bg-container-lighter py-1 px-2" 3851 > 3852 <span class="text-sm "> 3853 Halbhohe Tische </span> 3854 </a> 3855 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/hohe-tische.html" 3856 title="Hohe Tische      " 3857 class="cursor-pointer bg-container-lighter py-1 px-2" 3858 > 3859 <sp
3859an class="text-sm "> 3860 Hohe Tische </span> 3861 </a> 3862 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/stuehle-und-sessel.html" 3863 title="Stühle und Sessel" 3864 class="cursor-pointer bg-container-lighter py-1 px-2" 3865 > 3866 <span class="text-sm "> 3867 Stühle und Sessel </span> 3868 </a> 3869 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/halbhohe-sessel.html" 3870 title="Halbhohe Sessel" 3871 class="cursor-pointer bg-container-lighter py-1 px-2" 3872 > 3873 <span class="text-sm "> 3874 Halbhohe Sessel </span> 3875 </a> 3876 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/hohe-sessel.html" 3877 title="Hohe Sessel" 3878 class="cursor-pointer bg-container-lighter py-1 px-2" 3879 > 3880 <span class="text-sm "> 3881 Hohe Sessel </span> 3882 </a> 3883 </div> 3884 </span> 3885 </div> 3886 <div class="level-2 bg-container-lighter"> 3887 <span class="flex flex-col px-6"> 3888 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel.html" 3889 title="Niedrige Loungemöbel" 3890 class="flex items-center w-full cursor-pointer bg-container-lighter" 3891 > 3892 <sp
3892an class="text-base font-semibold py-3"> 3893 Niedrige Loungemöbel <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3894 PRO </span> 3895 </span> 3896 </a> 3897 <div class="level-3 flex flex-col"> 3898 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/liegestuehle.html" 3899 title="Liegestühle        " 3900 class="cursor-pointer bg-container-lighter py-1 px-2" 3901 > 3902 <span class="text-sm "> 3903 Liegestühle </span> 3904 </a> 3905 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/niedrige-sessel.html" 3906 title="Niedrige Sessel" 3907 class="cursor-pointer bg-container-lighter py-1 px-2" 3908 > 3909 <span class="text-sm "> 3910 Niedrige Sessel </span> 3911 </a> 3912 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/baenke.html" 3913 title="Bänke" 3914 class="cursor-pointer bg-container-lighter py-1 px-2" 3915 > 3916 <span class="text-sm "> 3917 Bänke </span> 3918 </a> 3919 </div> 3920 </span> 3921 </div> 3922 <div class="level-2 bg-container-lighter">
3923 <span class="flex flex-col px-6"> 3924 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/komponenten-fuer-tische.html" 3925 title="Komponenten für Tische" 3926 class="flex items-center w-full cursor-pointer bg-container-lighter" 3927 > 3928 <span class="text-base font-semibold py-3"> 3929 Komponenten für Tische <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3930 PRO </span> 3931 </span> 3932 </a> 3933 <div class="level-3 flex flex-col"> 3934 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/komponenten-fuer-tische/tischplatten.html" 3935 title="Tischplatten" 3936 class="cursor-pointer bg-container-lighter py-1 px-2" 3937 > 3938 <span class="text-sm "> 3939 Tischplatten </span> 3940 </a> 3941 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/komponenten-fuer-tische/tischbeine.html" 3942 title="Tischbeine" 3943 class="cursor-pointer bg-container-lighter py-1 px-2" 3944 > 3945 <span class="text-sm "> 3946 Tischbeine </span> 3947 </a> 3948 </div> 3949 </span> 3950 </div> 3951 <div class="level-2 bg-container-lighter">
3952 <span class="flex flex-col px-6"> 3953 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/pflege-und-langlebigkeit.html" 3954 title="Pflege und Langlebigkeit" 3955 class="flex items-center w-full cursor-pointer bg-container-lighter" 3956 > 3957 <span class="text-base font-semibold py-3"> 3958 Pflege und Langlebigkeit <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 3959 PRO </span> 3960 </span> 3961 </a> 3962 <div class="level-3 flex flex-col"> 3963 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/pflege-und-langlebigkeit/ersatzbezuege.html" 3964 title="Ersatzbezüge" 3965 class="cursor-pointer bg-container-lighter py-1 px-2" 3966 > 3967 <span class="text-sm "> 3968 Ersatzbezüge </span> 3969 </a> 3970 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/pflege-und-langlebigkeit/accessoires.html" 3971 title="Accessoires" 3972 class="cursor-pointer bg-container-lighter py-1 px-2" 3973 > 3974 <span class="text-sm "> 3975 Accessoires </span> 3976 </a> 3977 </div> 3978 </span> 3979 </div> 3980 3981 </div> 3982 </div> 3983 <div class="level-1">
3984 <span class="flex items-center"> 3985 3986 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden.html" 3987 title="Gesundheit und Wohlbefinden" 3988 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 3989 > 3990 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/sante-et-bien-etre.svg" 3991 alt="" 3992 width="24" 3993 height="24" 3994 loading="lazy" /> 3995 <span class="text-base tracking-wide pr-14 block"> 3996 Gesundheit und Wohlbefinden </span> 3997 </a> 3998 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 3999 @click="mobilePanelLevel1ActiveId = 4000 mobilePanelLevel1ActiveId === 'category-node-354' ? 4001 0 : 'category-node-354'" 4002 > 4003 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4004<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4005</svg> 4006 </a> 4007 </span> 4008 4009 <div 4010 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4011 translate-x-full transform bg-container-lighter" 4012 :class="{ 4013 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-354', 4014 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-354', 4015 }" 4016 > 4017 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4018 @click="mobilePanelLevel1ActiveId = 0" 4019 > 4020 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4021<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4022</svg> 4023 <span class="ml-2 font-medium"> 4024 Back to </span> 4025 </a> 4026 4027 <div class="level-2 bg-container-lighter">
4028 <span class="flex flex-col px-6"> 4029 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung.html" 4030 title="Erholung und Entspannung" 4031 class="flex items-center w-full cursor-pointer bg-container-lighter" 4032 > 4033 <span class="text-base font-semibold py-3"> 4034 Erholung und Entspannung <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 4035 PRO </span> 4036 </span> 4037 </a> 4038 <div class="level-3 flex flex-col"> 4039 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/relaxliege-fuer-krankenhaus.html" 4040 title="Relaxliege für Krankenhaus" 4041 class="cursor-pointer bg-container-lighter py-1 px-2" 4042 > 4043 <span class="text-sm "> 4044 Relaxliege für Krankenhaus </span> 4045 </a> 4046 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/reflexologie-und-gesundheitsliege.html" 4047 title="Reflexologie- und Gesundheitsliege   " 4048 class="cursor-pointer bg-container-lighter py-1 px-2" 4049 > 4050 <span class="text-sm "> 4051 Reflexologie- und Gesundheitsliege </span> 4052 </a> 4053 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/pausensessel.html" 4054 title="Pausensessel         " 4055 class="cursor-pointer bg-container-lighter py-1 px-2" 4056 > 4057 <sp
4057an class="text-sm "> 4058 Pausensessel </span> 4059 </a> 4060 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/liege-fuer-erholung-nach-sport.html" 4061 title="Liege für Erholungnach Sport" 4062 class="cursor-pointer bg-container-lighter py-1 px-2" 4063 > 4064 <span class="text-sm "> 4065 Liege für Erholungnach Sport </span> 4066 </a> 4067 </div> 4068 </span> 4069 </div> 4070 <div class="level-2 bg-container-lighter"> 4071 <span class="flex flex-col px-6"> 4072 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/pflege-und-langlebigkeit.html" 4073 title="Pflege und Langlebigkeit" 4074 class="flex items-center w-full cursor-pointer bg-container-lighter" 4075 > 4076 <span class="text-base font-semibold py-3"> 4077 Pflege und Langlebigkeit <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline"> 4078 PRO </span> 4079 </span> 4080 </a> 4081 <div class="level-3 flex flex-col"> 4082 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/pflege-und-langlebigkeit/ersatzbezuege.html" 4083 title="Ersatzbezüge" 4084 class="cursor-pointer bg-container-lighter py-1 px-2" 4085 > 4086 <sp
4086an class="text-sm "> 4087 Ersatzbezüge </span> 4088 </a> 4089 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/pflege-und-langlebigkeit/ersatzteile.html" 4090 title="Ersatzteile" 4091 class="cursor-pointer bg-container-lighter py-1 px-2" 4092 > 4093 <span class="text-sm "> 4094 Ersatzteile </span> 4095 </a> 4096 </div> 4097 </span> 4098 </div> 4099 4100 </div> 4101 </div> 4102 <div class="level-1"> 4103 <span class="flex items-center"> 4104 4105 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/service-und-unterstuetzung.html" 4106 title="Service und Unterstützung" 4107 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4108 > 4109 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/services-et-accompagnement.svg" 4110 alt="" 4111 width="24" 4112 height="24" 4113 loading="lazy" /> 4114 <span class="text-base tracking-wide pr-14 block"> 4115 Service und Unterstützung </span> 4116 </a> 4117 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4118 @click="mobilePanelLevel1ActiveId = 4119 mobilePanelLevel1ActiveId === 'category-node-384' ? 4120 0 : 'category-node-384'" 4121 > 4122 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4123<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4124</svg> 4125 </a> 4126 </span> 4127 4128 <div 4129 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4130 translate-x-full transform bg-container-lighter" 4131 :class="{ 4132 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-384', 4133 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-384', 4134 }" 4135 > 4136 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4137 @click="mobilePanelLevel1ActiveId = 0" 4138 > 4139 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
4139ox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4140<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4141</svg> 4142 <span class="ml-2 font-medium"> 4143 Back to </span> 4144 </a> 4145 4146 <div class="level-2 bg-container-lighter"> 4147 <span class="flex flex-col px-6"> 4148 <a href="https://contract.lafuma-mobilier.fr/de/plr-de" 4149 title="Unterstützung für Fachleute   " 4150 class="flex items-center w-full cursor-pointer bg-container-lighter" 4151 > 4152 <span class="text-base font-semibold py-3"> 4153 Unterstützung für Fachleute </span> 4154 </a> 4155 <div class="level-3 flex flex-col"> 4156 <a href="https://contract.lafuma-mobilier.fr/de/plr-de" 4157 title="Ihr Projekt: Individueller Kostenvoranschlag" 4158 class="cursor-pointer bg-container-lighter py-1 px-2" 4159 > 4160 <span class="text-sm "> 4161 Ihr Projekt: Individueller Kostenvoranschlag </span> 4162 </a> 4163 </div> 4164 </span> 4165 </div> 4166 <div class="level-2 bg-container-lighter"> 4167 <span class="flex flex-col px-6"> 4168 <a href="/blog/category/professionals.html" 4169 title="Blogartikel Contract" 4170 class="flex items-center w-full cursor-pointer bg-container-lighter" 4171 > 4172 <span class="text-base font-semibold py-3"> 4173 Blogartikel Contract </span> 4174 </a> 4175 </span> 4176 </div> 4177 4178 </div> 4179 </div> 4180 </div> 4181 </div> 4182 <div class="level-0 first:border-t border-primary-300">
4183 <span 4184 class="flex items-center transition-transform duration-150 ease-in-out transform" 4185 :class="{ 4186 '-translate-x-full' : mobilePanelActiveId, 4187 'translate-x-0' : !mobilePanelActiveId 4188 }" 4189 > 4190 <a class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-300 level-0 hover:font-semibold" 4191 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 4192 href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege.html" 4193 title="Ersatzteile & Ersatzbezüge"> 4194 <span class="block pr-14">Ersatzteile & Ersatzbezüge</span> 4195 </a> 4196 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4197 @click="mobilePanelActiveId = 4198 mobilePanelActiveId === 'category-node-231' ? 4199 0 : 'category-node-231'" 4200 > 4201 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4202<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4203</svg> 4204 </a> 4205 </span> 4206 <div 4207 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4208 translate-x-full transform bg-container-lighter" 4209 :class="{ 4210 'translate-x-full' : mobilePanelActiveId !== 'category-node-231', 4211 'translate-x-0' : mobilePanelActiveId === 'category-node-231' 4212 }" 4213 > 4214 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4215 @click="mobilePanelActiveId = 0" 4216 > 4217 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4218<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4219</svg> 4220 <span class="ml-2 font-medium"> 4221 Back to </span> 4222 </a> 4223 <div class="level-1"> 4224 <span class="flex items-center"> 4225 4226 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege.html" 4227 title="Ersatzbezüge" 4228 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4229 > 4230 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/toiles-de-rechange.svg" 4231 alt="" 4232 width="24" 4233 height="24" 4234 loading="lazy" /> 4235 <sp
4235an class="text-base tracking-wide pr-14 block"> 4236 Ersatzbezüge </span> 4237 </a> 4238 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4239 @click="mobilePanelLevel1ActiveId = 4240 mobilePanelLevel1ActiveId === 'category-node-234' ? 4241 0 : 'category-node-234'" 4242 > 4243 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4244<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4245</svg> 4246 </a> 4247 </span> 4248 4249 <div 4250 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4251 translate-x-full transform bg-container-lighter" 4252 :class="{ 4253 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-234', 4254 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-234', 4255 }" 4256 > 4257 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4258 @click="mobilePanelLevel1ActiveId = 0" 4259 > 4260 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4261<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4262</svg> 4263 <span class="ml-2 font-medium"> 4264 Back to </span> 4265 </a> 4266 4267 <div class="level-2 bg-container-lighter"> 4268 <span class="flex flex-col px-6"> 4269 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege.html" 4270 title="Alle Ersatzbezüge" 4271 class="flex items-center w-full cursor-pointer bg-container-lighter" 4272 > 4273 <span class="text-base font-semibold py-3"> 4274 Alle Ersatzbezüge </span> 4275 </a> 4276 <div class="level-3 flex flex-col"> 4277 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-relaxliegen.html" 4278 title="Ersatzbezüge Relaxliegen" 4279 class="cursor-pointer bg-container-lighter py-1 px-2" 4280 > 4281 <sp
4281an class="text-sm "> 4282 Ersatzbezüge Relaxliegen </span> 4283 </a> 4284 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-liegestuehle.html" 4285 title="Ersatzbezüge Liegestühle" 4286 class="cursor-pointer bg-container-lighter py-1 px-2" 4287 > 4288 <span class="text-sm "> 4289 Ersatzbezüge Liegestühle </span> 4290 </a> 4291 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-sonnenliegen.html" 4292 title="Ersatzbezüge Sonnenliegen" 4293 class="cursor-pointer bg-container-lighter py-1 px-2" 4294 > 4295 <span class="text-sm "> 4296 Ersatzbezüge Sonnenliegen </span> 4297 </a> 4298 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" 4299 title="Ersatzbezüge Pop Up" 4300 class="cursor-pointer bg-container-lighter py-1 px-2" 4301 > 4302 <span class="text-sm "> 4303 Ersatzbezüge Pop Up </span> 4304 </a> 4305 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-stuehle-und-sessel.html" 4306 title="Ersatzbezüge Stühle und Sessel" 4307 class="cursor-pointer bg-container-lighter py-1 px-2" 4308 > 4309 <sp
4309an class="text-sm "> 4310 Ersatzbezüge Stühle und Sessel </span> 4311 </a> 4312 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-niedrige-loungemoebel.html" 4313 title="Ersatzbezüge niedrige Loungemöbel" 4314 class="cursor-pointer bg-container-lighter py-1 px-2" 4315 > 4316 <span class="text-sm "> 4317 Ersatzbezüge niedrige Loungemöbel </span> 4318 </a> 4319 </div> 4320 </span> 4321 </div> 4322 4323 </div> 4324 </div> 4325 <div class="level-1"> 4326 <span class="flex items-center"> 4327 4328 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile.html" 4329 title="Ersatzteile" 4330 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4331 > 4332 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/pieces-detachees.svg" 4333 alt="" 4334 width="24" 4335 height="24" 4336 loading="lazy" /> 4337 <span class="text-base tracking-wide pr-14 block"> 4338 Ersatzteile </span> 4339 </a> 4340 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4341 @click="mobilePanelLevel1ActiveId = 4342 mobilePanelLevel1ActiveId === 'category-node-258' ? 4343 0 : 'category-node-258'" 4344 > 4345 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4346<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4347</svg> 4348 </a> 4349 </span> 4350 4351 <div 4352 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4353 translate-x-full transform bg-container-lighter" 4354 :class="{ 4355 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-258', 4356 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-258', 4357 }" 4358 > 4359 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4360 @click="mobilePanelLevel1ActiveId = 0" 4361 > 4362 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
4362ox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4363<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4364</svg> 4365 <span class="ml-2 font-medium"> 4366 Back to </span> 4367 </a> 4368 4369 <div class="level-2 bg-container-lighter"> 4370 <span class="flex flex-col px-6"> 4371 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile.html" 4372 title="Alle Ersatzteile" 4373 class="flex items-center w-full cursor-pointer bg-container-lighter" 4374 > 4375 <span class="text-base font-semibold py-3"> 4376 Alle Ersatzteile </span> 4377 </a> 4378 <div class="level-3 flex flex-col"> 4379 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-relaxliegen.html" 4380 title="Ersatzteile Relaxliegen" 4381 class="cursor-pointer bg-container-lighter py-1 px-2" 4382 > 4383 <span class="text-sm "> 4384 Ersatzteile Relaxliegen </span> 4385 </a> 4386 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-liegestuehle.html" 4387 title="Ersatzteile Liegestühle" 4388 class="cursor-pointer bg-container-lighter py-1 px-2" 4389 > 4390 <span class="text-sm "> 4391 Ersatzteile Liegestühle </span> 4392 </a> 4393 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-sonnenliegen.html" 4394 title="Ersatzteile Sonnenliegen" 4395 class="cursor-pointer bg-container-lighter py-1 px-2" 4396 > 4397 <sp
4397an class="text-sm "> 4398 Ersatzteile Sonnenliegen </span> 4399 </a> 4400 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" 4401 title="Ersatzteile Pop Up" 4402 class="cursor-pointer bg-container-lighter py-1 px-2" 4403 > 4404 <span class="text-sm "> 4405 Ersatzteile Pop Up </span> 4406 </a> 4407 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-stuehle-und-sessel.html" 4408 title="Ersatzteile Stühle und Sessel" 4409 class="cursor-pointer bg-container-lighter py-1 px-2" 4410 > 4411 <span class="text-sm "> 4412 Ersatzteile Stühle und Sessel </span> 4413 </a> 4414 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-tische.html" 4415 title="Ersatzteile Tische" 4416 class="cursor-pointer bg-container-lighter py-1 px-2" 4417 > 4418 <span class="text-sm "> 4419 Ersatzteile Tische </span> 4420 </a> 4421 </div> 4422 </span> 4423 </div> 4424 4425 </div> 4426 </div> 4427 <div class="level-1">
4428 <span class="flex items-center"> 4429 4430 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/leitfaeden-und-tipps.html" 4431 title="Leitfäden und Tipps" 4432 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4433 > 4434 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/guides-et-conseils.svg" 4435 alt="" 4436 width="24" 4437 height="24" 4438 loading="lazy" /> 4439 <span class="text-base tracking-wide pr-14 block"> 4440 Leitfäden und Tipps </span> 4441 </a> 4442 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4443 @click="mobilePanelLevel1ActiveId = 4444 mobilePanelLevel1ActiveId === 'category-node-288' ? 4445 0 : 'category-node-288'" 4446 > 4447 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4448<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4449</svg> 4450 </a> 4451 </span> 4452 4453 <div 4454 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4455 translate-x-full transform bg-container-lighter" 4456 :class="{ 4457 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-288', 4458 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-288', 4459 }" 4460 > 4461 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4462 @click="mobilePanelLevel1ActiveId = 0" 4463 > 4464 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4465<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4466</svg> 4467 <span class="ml-2 font-medium"> 4468 Back to </span> 4469 </a> 4470 4471 <div class="level-2 bg-container-lighter">
4472 <span class="flex flex-col px-6"> 4473 <a href="/blog/unsere-leitfaeden-und-tipps-bezug-wechseln.html" 4474 title="Bezug wechseln" 4475 class="flex items-center w-full cursor-pointer bg-container-lighter" 4476 > 4477 <span class="text-base font-semibold py-3"> 4478 Bezug wechseln </span> 4479 </a> 4480 </span> 4481 </div> 4482 <div class="level-2 bg-container-lighter"> 4483 <span class="flex flex-col px-6"> 4484 <a href="/blog/unsere-leitfaeden-und-tipps-pflege-und-reparatur.html" 4485 title="Pflegen & Reparieren" 4486 class="flex items-center w-full cursor-pointer bg-container-lighter" 4487 > 4488 <span class="text-base font-semibold py-3"> 4489 Pflegen & Reparieren </span> 4490 </a> 4491 </span> 4492 </div> 4493 <div class="level-2 bg-container-lighter"> 4494 <span class="flex flex-col px-6"> 4495 <a href="https://www.youtube.com/@LafumamobilierFrance" 4496 title="Alle unsere YouTube-Tutorials" 4497 class="flex items-center w-full cursor-pointer bg-container-lighter" 4498 > 4499 <span class="text-base font-semibold py-3"> 4500 Alle unsere YouTube-Tutorials </span> 4501 </a> 4502 </span> 4503 </div> 4504 <div class="level-2 bg-container-lighter"> 4505 <span class="flex flex-col px-6"> 4506 <a href="https://faq.lafuma-mobilier.fr/hc/de" 4507 title="FAQ" 4508 class="flex items-center w-full cursor-pointer bg-container-lighter" 4509 > 4510 <sp
4510an class="text-base font-semibold py-3"> 4511 FAQ </span> 4512 </a> 4513 </span> 4514 </div> 4515 <div class="level-2 bg-container-lighter"> 4516 <span class="flex flex-col px-6"> 4517 <a href="https://faq.lafuma-mobilier.fr/hc/de/requests/new" 4518 title="Benötigen Sie Hilfe?" 4519 class="flex items-center w-full cursor-pointer bg-container-lighter" 4520 > 4521 <span class="text-base font-semibold py-3"> 4522 Benötigen Sie Hilfe? </span> 4523 </a> 4524 </span> 4525 </div> 4526 4527 </div> 4528 </div> 4529 </div> 4530 </div> 4531 <div class="level-0 first:border-t border-primary-300"> 4532 <span 4533 class="flex items-center transition-transform duration-150 ease-in-out transform" 4534 :class="{ 4535 '-translate-x-full' : mobilePanelActiveId, 4536 'translate-x-0' : !mobilePanelActiveId 4537 }" 4538 > 4539 <a class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-300 level-0 hover:font-semibold" 4540 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 4541 href="https://www.lafuma-moebel.de/nachhaltige-marke-seit-1954.html" 4542 title="Nachhaltige Marke seit 1954"> 4543 <span class="block pr-14">Nachhaltige Marke seit 1954</span> 4544 </a> 4545 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4546 @click="mobilePanelActiveId = 4547 mobilePanelActiveId === 'category-node-9' ? 4548 0 : 'category-node-9'" 4549 > 4550 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4551<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4552</svg> 4553 </a> 4554 </span> 4555 <div 4556 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4557 translate-x-full transform bg-container-lighter" 4558 :class="{ 4559 'translate-x-full' : mobilePanelActiveId !== 'category-node-9', 4560 'translate-x-0' : mobilePanelActiveId === 'category-node-9' 4561 }" 4562 > 4563 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4564 @click="mobilePanelActiveId = 0" 4565 > 4566 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
4566ox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4567<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4568</svg> 4569 <span class="ml-2 font-medium"> 4570 Back to </span> 4571 </a> 4572 <div class="level-1"> 4573 <span class="flex items-center"> 4574 4575 <a href="/nachhaltige-marke/unsere-geschichte.html" 4576 title="Unsere Geschichte" 4577 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4578 > 4579 <span class="text-base tracking-wide pr-14 block"> 4580 Unsere Geschichte </span> 4581 </a> 4582 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4583 @click="mobilePanelLevel1ActiveId = 4584 mobilePanelLevel1ActiveId === 'category-node-21' ? 4585 0 : 'category-node-21'" 4586 > 4587 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4588<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4589</svg> 4590 </a> 4591 </span> 4592 4593 <div 4594 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4595 translate-x-full transform bg-container-lighter" 4596 :class="{ 4597 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-21', 4598 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-21', 4599 }" 4600 > 4601 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4602 @click="mobilePanelLevel1ActiveId = 0" 4603 > 4604 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4605<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4606</svg> 4607 <span class="ml-2 font-medium"> 4608 Back to </span> 4609 </a> 4610 4611 <div class="level-2 bg-container-lighter">
4612 <span class="flex flex-col px-6"> 4613 <a href="/nachhaltige-marke/unsere-geschichte/unser-engagement-und-manifest.html" 4614 title="Unser Engagement & Manifest" 4615 class="flex items-center w-full cursor-pointer bg-container-lighter" 4616 > 4617 <span class="text-base font-semibold py-3"> 4618 Unser Engagement & Manifest </span> 4619 </a> 4620 </span> 4621 </div> 4622 <div class="level-2 bg-container-lighter"> 4623 <span class="flex flex-col px-6"> 4624 <a href="/nachhaltige-marke/unsere-geschichte/franzoesische-manufaktur.html" 4625 title="Französische Manufaktur" 4626 class="flex items-center w-full cursor-pointer bg-container-lighter" 4627 > 4628 <span class="text-base font-semibold py-3"> 4629 Französische Manufaktur </span> 4630 </a> 4631 </span> 4632 </div> 4633 <div class="level-2 bg-container-lighter"> 4634 <span class="flex flex-col px-6"> 4635 <a href="/nachhaltige-marke/unsere-geschichte/unser-know-how-und-unsere-teams.html" 4636 title="Unser Know-how & unsere Teams" 4637 class="flex items-center w-full cursor-pointer bg-container-lighter" 4638 > 4639 <span class="text-base font-semibold py-3"> 4640 Unser Know-how & unsere Teams </span> 4641 </a> 4642 </span> 4643 </div> 4644 4645 </div> 4646 </div> 4647 <div class="level-1">
4648 <span class="flex items-center"> 4649 4650 <a href="https://www.lafuma-moebel.de/nachhaltige-marke-seit-1954/engagiert-an-ihrer-seite.html" 4651 title="Engagiert an Ihrer Seite" 4652 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4653 > 4654 <span class="text-base tracking-wide pr-14 block"> 4655 Engagiert an Ihrer Seite </span> 4656 </a> 4657 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4658 @click="mobilePanelLevel1ActiveId = 4659 mobilePanelLevel1ActiveId === 'category-node-24' ? 4660 0 : 'category-node-24'" 4661 > 4662 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4663<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4664</svg> 4665 </a> 4666 </span> 4667 4668 <div 4669 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4670 translate-x-full transform bg-container-lighter" 4671 :class="{ 4672 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-24', 4673 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-24', 4674 }" 4675 > 4676 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4677 @click="mobilePanelLevel1ActiveId = 0" 4678 > 4679 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4680<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4681</svg> 4682 <span class="ml-2 font-medium"> 4683 Back to </span> 4684 </a> 4685 4686 <div class="level-2 bg-container-lighter"> 4687 <span class="flex flex-col px-6"> 4688 <a href="/nachhaltige-marke/engagiert-an-ihrer-seite/ihr-komfort-unsere-expertise.html" 4689 title="Ihr Komfort: unsere Expertise" 4690 class="flex items-center w-full cursor-pointer bg-container-lighter" 4691 > 4692 <sp
4692an class="text-base font-semibold py-3"> 4693 Ihr Komfort: unsere Expertise </span> 4694 </a> 4695 </span> 4696 </div> 4697 <div class="level-2 bg-container-lighter"> 4698 <span class="flex flex-col px-6"> 4699 <a href="/nachhaltige-marke/engagiert-an-ihrer-seite/auf-langlebigkeit-ausgelegte-produkte.html" 4700 title="Produkte, die auf Langlebigkeit ausgelegt sind" 4701 class="flex items-center w-full cursor-pointer bg-container-lighter" 4702 > 4703 <span class="text-base font-semibold py-3"> 4704 Produkte, die auf Langlebigkeit ausgelegt sind </span> 4705 </a> 4706 </span> 4707 </div> 4708 <div class="level-2 bg-container-lighter"> 4709 <span class="flex flex-col px-6"> 4710 <a href="/nachhaltige-marke/engagiert-an-ihrer-seite/unsere-oekodesign-charta.html" 4711 title="Unsere Ökodesign-Charta" 4712 class="flex items-center w-full cursor-pointer bg-container-lighter" 4713 > 4714 <span class="text-base font-semibold py-3"> 4715 Unsere Ãkodesign-Charta </span> 4716 </a> 4717 </span> 4718 </div> 4719 4720 </div> 4721 </div> 4722 <div class="level-1"> 4723 <span class="flex items-center"> 4724 4725 <a href="https://www.lafuma-moebel.de/nachhaltige-marke-seit-1954/lafuma-mobilier-peugeot-freres-industrie.html" 4726 title="Lafuma Mobilier & Peugeot Frères Industrie" 4727 class="flex items-center w-full p-6 border-b cursor-pointer bg-container-lighter border-primary-200 gap-3" 4728 > 4729 <sp
4729an class="text-base tracking-wide pr-14 block"> 4730 Lafuma Mobilier & Peugeot Frères Industrie </span> 4731 </a> 4732 <a class="absolute right-6 cursor-pointer w-full h-8 flex justify-end items-center" 4733 @click="mobilePanelLevel1ActiveId = 4734 mobilePanelLevel1ActiveId === 'category-node-738' ? 4735 0 : 'category-node-738'" 4736 > 4737 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5" aria-hidden="true"> 4738<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4739</svg> 4740 </a> 4741 </span> 4742 4743 <div 4744 class="absolute top-0 right-0 z-10 w-full h-full transition-transform duration-200 ease-in-out 4745 translate-x-full transform bg-container-lighter" 4746 :class="{ 4747 'translate-x-full' : mobilePanelLevel1ActiveId !== 'category-node-738', 4748 'translate-x-0' : mobilePanelLevel1ActiveId === 'category-node-738', 4749 }" 4750 > 4751 <a class="flex items-center px-4 py-3 cursor-pointer bg-primary-100" 4752 @click="mobilePanelLevel1ActiveId = 0" 4753 > 4754 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="h-2.5 w-2.5 rotate-180" aria-hidden="true"> 4755<path d="M2.75 0.5L7.1 4.646C7.14656 4.69245 7.18351 4.74762 7.20871 4.80837C7.23392 4.86911 7.24689 4.93423 7.24689 5C7.24689 5.06577 7.23392 5.13089 7.20871 5.19163C7.18351 5.25238 7.14656 5.30755 7.1 5.354L2.75 9.5" stroke="black" stroke-linecap="round" stroke-linejoin="round"/> 4756</svg> 4757 <span class="ml-2 font-medium"> 4758 Back to </span> 4759 </a> 4760 4761 <div class="level-2 bg-container-lighter"> 4762 <span class="flex flex-col px-6"> 4763 <a href="/nachhaltige-marke/peugeot-freres-industrie-lafuma-mobilier/maison-peugeot.html" 4764 title="Eine sinnvolle Partnerschaft" 4765 class="flex items-center w-full cursor-pointer bg-container-lighter" 4766 > 4767 <span class="text-base font-semibold py-3"> 4768 Eine sinnvolle Partnerschaft </span> 4769 </a> 4770 </span> 4771 </div> 4772 <div class="level-2 bg-container-lighter">
4773 <span class="flex flex-col px-6"> 4774 <a href="/nachhaltige-marke/peugeot-freres-industrie-lafuma-mobilier/maison-peugeot.html" 4775 title="Dev. By Peugeot" 4776 class="flex items-center w-full cursor-pointer bg-container-lighter" 4777 > 4778 <img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/logo-dbp-header.png" 4779 class="py-3 mr-3" 4780 alt="" 4781 width="70" 4782 height="70" 4783 loading="lazy" /> 4784 <span class="text-base py-3"> 4785 Dev. By Peugeot </span> 4786 </a> 4787 </span> 4788 </div> 4789 4790 </div> 4791 </div> 4792 <div class="menu-cms-bottom mt-12 hidden" 4793 :class="{ 4794 'hidden' : mobilePanelActiveId !== 'category-node-9' 4795 }"> 4796 </div> 4797 </div> 4798 </div> 4799 <div class="p-6 bg-container-lighter"> 4800 <a class="flex justify-between items-center no-underline py-3 hover:font-semibold" 4801 href="https://www.lafuma-moebel.de/checkout/cart/index/" 4802 > 4803 <span class="label flex gap-2 tracking-wide"> 4804 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 md:w-6 hover:text-black" role="img"> 4805<g id="Icons-24px"> 4806<path id="Vector_15" d="M18.9361 20.625H5.06412C4.73934 20.6191 4.42607 20.5037 4.17505 20.2975C3.92404 20.0913 3.75 19.8064 3.68112 19.489L1.54312 10.489C1.48588 10.2735 1.47796 10.0478 1.51994 9.82875C1.56192 9.60972 1.65273 9.40297 1.78562 9.22386C1.91851 9.04476 2.09005 8.89791 2.2875 8.79423C2.48496 8.69055 2.70324 8.63271 2.92612 8.625H21.0741C21.297 8.63271 21.5153 8.69055 21.7127 8.79423C21.9102 8.89791 22.0817 9.04476 22.2146 9.22386C22.3475 9.40297 22.4383 9.60972 22.4803 9.82875C22.5223 10.0478 22.5144 10.2735 22.4571 10.489L20.3191 19.489C20.2502 19.8064 20.0762 20.0913 19.8252 20.2975C19.5742 20.5037 19.2609 20.6191 18.9361 20.625Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 4807<path id="Vector_2_14" d="M4.5 8.625L9 3.375" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 4808<path id="Vector_3_14" d="M19.5 8.625L15 3.375" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 4809</g> 4810<title>shopping-cart</title></svg> 4811 Warenkorb </span> 4812 <span x-text="cart.summary_count"
4813 class="hidden h-6 w-6 px-2 text-xs font-semibold leading-5 text-center text-white rounded-full bg-primary" 4814 :class="{ 4815 'hidden': !cart.summary_count, 4816 'block': cart.summary_count }" 4817 ></span> 4818 </a> 4819 <a href="https://www.lafuma-moebel.de/customer/account/login/" 4820 class="flex justify-between items-start py-3 hover:font-semibold" 4821 aria-label="Konto" 4822 > 4823 <span class="label flex gap-2 tracking-wide"> 4824 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 w-6" aria-hidden="true"> 4825<path d="M6.75 6C6.75 7.39239 7.30312 8.72774 8.28769 9.71231C9.27226 10.6969 10.6076 11.25 12 11.25C13.3924 11.25 14.7277 10.6969 15.7123 9.71231C16.6969 8.72774 17.25 7.39239 17.25 6C17.25 4.60761 16.6969 3.27226 15.7123 2.28769C14.7277 1.30312 13.3924 0.75 12 0.75C10.6076 0.75 9.27226 1.30312 8.28769 2.28769C7.30312 3.27226 6.75 4.60761 6.75 6Z" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4826<path d="M2.25 23.25C2.25 20.6641 3.27723 18.1842 5.10571 16.3557C6.93419 14.5272 9.41414 13.5 12 13.5C14.5859 13.5 17.0658 14.5272 18.8943 16.3557C20.7228 18.1842 21.75 20.6641 21.75 23.25" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4827</svg> 4828 Konto </span> 4829 <span> 4830 <div class="flex justify-between md:hidden"> 4831 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 21 21" fill="none" class="w-5 h-5 mt-1 mr-1" role="img"> 4832<path d="M13.9522 9.26835C13.891 9.57432 13.7686 10.1863 13.5238 10.8594C13.4626 10.9206 13.4626 10.9818 13.4626 11.1042C13.0954 12.1444 12.5447 13.4295 11.1984 15.4489C10.0358 17.1011 8.44472 18.6922 7.09846 19.4265L7.15966 19.4877L7.22085 19.5489C7.64921 19.7325 8.07756 19.7937 8.44473 19.916C11.2596 20.5892 13.279 20.0384 13.279 20.0384C13.5238 19.9772 13.891 19.916 14.1357 19.916C14.5641 19.916 14.9924 19.9772 14.9924 19.9772C15.2984 19.9772 15.5432 19.9772 15.6656 19.8548C15.9103 19.7325 15.9104 19.6101 15.9104 19.4877C15.9104 19.3041 15.8492 19.2429 15.7268 19.1205C15.6044 18.9981 15.482 18.8146 15.482 18.6922C15.4208 18.3862 15.8492 18.325 15.8492 18.325C17.1954 17.7743 17.8073 17.1011 17.8073 17.1011C18.4193 16.428 18.5417 16.0608 18.8476 15.7549C19.0924 15.4489 19.8879 14.531 19.9491 14.4086C20.1327 14.1638 20.1939 13.9803 20.1327 13.8579C20.0715 13.6131 19.8267 13.5519 19.582 13.5519C19.276 13.4907 18.9088 13.5519 18.9088 13.5519C18.6029 13.6131 18.3581 13.5519 18.2357 13.4907C18.1133 13.4295 18.0521 13.4295 18.0521 13.4295C17.9297 13.3683 17.8685 13.3683 17.8685 13.3071C17.7462 13.1847 17.685 13.1235 17.685 13.0012C17.6238 12.5116 18.2969 11.8385 18.2969 11.8385C18.8476 11.2265 18.97 10.9206 19.1536 10.4922C19.3984 9.81909 19.8267 8.96238 19.8267 8.96238C20.0103 8.59522 19.8879 8.35044 19.8879 8.35044C19.8267 8.22806 19.7655 8.22806 19.6432 8.16686C19.582 8.10567 19.5208 8.10567 19.4596 8.10567C19.276 8.10567 19.0924 8.16686 19.0312 8.16686C18.4193 8.22806 18.0521 8.10567 18.0521 8.10567C17.9297 8.04448 17.8685 7.98328 17.8073 7.98328C17.6238 7.7997 17.5626 7.61612 17.5014 7.37134V7.31015C17.5014 5.9027 17.8073 5.41315 17.685 4.43405C17.685 4.31166 17.6238 4.25047 17.6238 4.18927C17.4402 2.90421 17.2566 2.59824 17.073 2.29227C16.9506 1.9863 16.9506 1.86392 16.8894 1.49675C16.8282 1.12959 16.8283 1.12959 16.7059 0.76243C16.6447 0.395268 16.5223 0.272881 16.3999 0.211688C16.2775 0.150494 16.2163 0.211687 16.1551 0.272881C15.9715 0.334075 15.6044 0.701236 15.6044 0.701236C15.5432 0.76243 15.482 0.823624 15.482 0.823624C15.3596 0.946011 15.2984 1.0072 15.2372 1.0684C15.0536 1.25198 14.8701 1.37437 14.7477 1.43556C14.1357 1.86392 13.7686 1.9863 13.7686 1.9863C12.2387 2.41466 11.3208 3.57734 11.1984 3.76092V3.82211C10.8925 4.18927 10.5253 4.25047 10.1581 4.25047C9.85217 4.25047 9.6074 4.12808 9.6074 4.12808C9.17905 4.06689 8.56711 2.78182 8.56711 2.78182C8.50592 2.59824 8.44472 2.53705 8.32233 2.53705C8.13875 2.47585 7.95518 2.65943 7.95518 2.65943C7.7104 2.90421 7.52682 3.08779 7.28204 3.39376C6.42533 4.25047 6.30295 4.98479 5.99698 5.71912C5.99698 5.78031 5.93578 5.8415 5.93578 5.9027C5.69101 6.45344 5.69101 6.51463 5.62981 6.63702C5.50743 6.8206 5.32385 6.8818 5.20146 6.8818C5.07907 6.8818 5.01788 6.8206 5.01788 6.8206C4.95668 6.75941 4.89549 6.75941 4.83429 6.69822C4.40594 6.45344 3.97758 5.96389 3.61042 5.41315C3.42684 5.10718 3.24326 5.04599 3.12087 5.04599C2.69252 5.10718 2.44775 6.08628 2.44775 6.08628C1.28507 9.14596 1.77461 10.0639 1.77461 10.3086C1.83581 10.4922 1.897 10.6146 1.9582 10.9206C2.01939 11.8385 1.46864 12.0221 1.46864 12.0221C1.34626 12.0833 1.04029 12.2056 1.04029 12.2056C0.856709 12.2668 0.734318 12.3892 0.673125 12.5116C0.550737 12.6952 0.550743 12.8176 0.611937 13.0012C0.734324 13.2459 0.856706 13.4295 0.979093 13.6131C1.10148 13.7967 1.34625 13.9803
48321.59103 14.2862C1.897 14.6534 2.26416 15.1429 2.50893 15.5713C2.57013 15.6937 2.69252 15.8161 2.75371 15.9385C2.75371 15.9996 2.8149 15.9997 2.8149 15.9997C3.18206 16.734 3.42684 17.1011 3.91639 17.4683C3.97758 17.5295 4.09998 17.5907 4.16117 17.6519C4.34475 17.7743 4.65072 17.9578 4.77311 18.019C4.89549 18.1414 5.50743 18.5698 4.46714 18.9369C2.9373 19.4877 1.897 18.9981 1.28506 18.4474C0.734318 18.019 0.489551 17.5907 0.489551 17.5907C0.428357 17.5295 0.367162 17.4683 0.305968 17.4071C0.183581 17.3459 0.122382 17.4683 0.0611881 17.5907C-5.59882e-06 17.7131 0 17.8355 0 18.019V19.916C1.59104 20.3444 2.8761 20.2832 3.67162 20.1608C3.8552 20.0996 4.03878 20.0996 4.22236 20.0384C8.26114 19.1205 11.6268 13.9803 13.0954 10.5534C13.1566 10.431 13.2178 10.3086 13.2178 10.2474C13.3402 10.0027 13.4014 9.88028 13.4626 9.57432C13.4626 9.57432 13.585 9.26835 13.6462 9.08477C13.7074 9.02357 13.7074 9.02357 13.7074 9.02357C13.7686 9.02357 13.8298 9.14596 13.7686 9.32954C13.9522 9.20715 13.9522 9.20715 13.9522 9.26835Z" fill="#171717"/> 4833<title>leaf</title></svg> 4834 <lottie-player src="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/lottie/For-Life-8s.json" class="w-[63.75px] h-[34px]" speed="1" loop autoplay></lottie-player> 4835 </div> 4836 </span> 4837 </a> 4838 </div> 4839 <div class="menu-mobile-bottom p-6 flex flex-col"> 4840 <a id="store-switcher-icon-mobile" 4841 @click.prevent.stop="$dispatch('toggle-store-switcher',{});" 4842 class="inline-flex gap-1 pb-4 items-center text-sm border-b border-primary-300" 4843 > 4844 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="w-2.5 h-2.5" role="img"> 4845<g id="Icons-10px_4" clip-path="url(#clip0_2488_10118_2)"> 4846<path id="Vector_16" d="M0.5 5C0.5 6.19347 0.974106 7.33807 1.81802 8.18198C2.66193 9.02589 3.80653 9.5 5 9.5C6.19347 9.5 7.33807 9.02589 8.18198 8.18198C9.02589 7.33807 9.5 6.19347 9.5 5C9.5 3.80653 9.02589 2.66193 8.18198 1.81802C7.33807 0.974106 6.19347 0.5 5 0.5C3.80653 0.5 2.66193 0.974106 1.81802 1.81802C0.974106 2.66193 0.5 3.80653 0.5 5Z" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4847<path id="Vector_2_15" d="M0.845947 6.73098H2.05795C2.37922 6.73071 2.68724 6.6029 2.91431 6.37564C3.14139 6.14837 3.26895 5.84025 3.26895 5.51898V4.48098C3.26895 4.15954 3.39664 3.85126 3.62393 3.62397C3.85123 3.39667 4.1595 3.26898 4.48095 3.26898C4.63998 3.26898 4.79745 3.23766 4.94438 3.1768C5.0913 3.11594 5.2248 3.02674 5.33725 2.91428C5.44971 2.80183 5.53891 2.66833 5.59977 2.52141C5.66062 2.37448 5.69195 2.21701 5.69195 2.05798V0.552979" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4848<path id="Vector_3_15" d="M9.50001 4.92906C9.15452 4.75073 8.7718 4.6565 8.38301 4.65406H6.90001C6.73798 4.64941 6.57667 4.6773 6.42562 4.73609C6.27456 4.79488 6.13683 4.88337 6.02058 4.99633C5.90433 5.10929 5.81192 5.24442 5.74882 5.39372C5.68571 5.54303 5.6532 5.70347 5.6532 5.86556C5.6532 6.02766 5.68571 6.1881 5.74882 6.33741C5.81192 6.48671 5.90433 6.62184 6.02058 6.7348C6.13683 6.84776 6.27456 6.93625 6.42562 6.99504C6.57667 7.05383 6.73798 7.08172 6.90001 7.07706C7.12942 7.07706 7.34944 7.1682 7.51166 7.33042C7.67387 7.49264 7.76501 7.71265 7.76501 7.94206V8.54706" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4849</g> 4850<defs> 4851<clipPath id="clip0_2488_10118_2"> 4852<rect width="10" height="10" fill="white"/> 4853</clipPath> 4854</defs> 4855<title>small-globe</title></svg> 4856 Allemagne </a> 4857 <a href="https://www.lafuma-moebel.de/retailer/retailer" 4858 class="inline-flex gap-1 pt-4 items-center text-sm no-underline"> 4859 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" class="w-2.5 h-2.5" role="img"> 4860<path d="M8 3.5C8 6 5 9.5 5 9.5C5 9.5 2 6 2 3.5C2 2.70435 2.31607 1.94129 2.87868 1.37868C3.44129 0.81607 4.20435 0.5 5 0.5C5.79565 0.5 6.55871 0.81607 7.12132 1.37868C7.68393 1.94129 8 2.70435 8 3.5Z" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4861<path d="M5 4C4.72386 4 4.5 3.77614 4.5 3.5C4.5 3.22386 4.72386 3 5 3" stroke="#171717"/> 4862<path d="M5 4C5.27614 4 5.5 3.77614 5.5 3.5C5.5 3.22386 5.27614 3 5 3" stroke="#171717"/> 4863<title>small-location</title></svg> 4864 Retailer </a> 4865 </div> 4866 </nav> 4867 </div> 4868 4869 <!--Store Switcher --> 4870 <section id="store-switcher" 4871 x-data="{ open: false}" 4872 @toggle-store-switcher.window="open=true" 4873 @keydown.window.escape="open=false" 4874 > 4875 <div> 4876 <div role="dialog" 4877 aria-labelledby="store-switcher-title" 4878 aria-modal="true" 4879 @click.outside="open=false" 4880 class="fixed inset-y-0 left-0 z-[60] flex max-w-full"> 4881 <div class="backdrop" 4882 x-show="open" 4883 @click="open=false" 4884 aria-label="Close store switcher"></div>
4885 <div class="relative w-screen max-w-md shadow-2xl hidden" 4886 :class="{'hidden': !open, 'block': open}" 4887 x-show="open" 4888 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 4889 x-transition:enter-start="translate-x-[-100%]" 4890 x-transition:enter-end="translate-x-0" 4891 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 4892 x-transition:leave-start="translate-x-0" 4893 x-transition:leave-end="translate-x-[-100%]" 4894 > 4895 <div class="flex flex-col h-full bg-white shadow-xl overflow-auto"> 4896 <div class="min-h-[4rem] md:min-h-[3rem] bg-gray-200 inline-flex gap-1 px-8 items-center 4897 text-sm font-normal text-black cursor-pointer" 4898 @click="open=false"> 4899 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 10 10" fill="none" class="w-3.5 h-3.5" role="img"> 4900<g id="Icons-10px_5" clip-path="url(#clip0_2488_10118_3)"> 4901<path id="Vector_17" d="M0.5 5C0.5 6.19347 0.974106 7.33807 1.81802 8.18198C2.66193 9.02589 3.80653 9.5 5 9.5C6.19347 9.5 7.33807 9.02589 8.18198 8.18198C9.02589 7.33807 9.5 6.19347 9.5 5C9.5 3.80653 9.02589 2.66193 8.18198 1.81802C7.33807 0.974106 6.19347 0.5 5 0.5C3.80653 0.5 2.66193 0.974106 1.81802 1.81802C0.974106 2.66193 0.5 3.80653 0.5 5Z" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4902<path id="Vector_2_16" d="M0.845947 6.73098H2.05795C2.37922 6.73071 2.68724 6.6029 2.91431 6.37564C3.14139 6.14837 3.26895 5.84025 3.26895 5.51898V4.48098C3.26895 4.15954 3.39664 3.85126 3.62393 3.62397C3.85123 3.39667 4.1595 3.26898 4.48095 3.26898C4.63998 3.26898 4.79745 3.23766 4.94438 3.1768C5.0913 3.11594 5.2248 3.02674 5.33725 2.91428C5.44971 2.80183 5.53891 2.66833 5.59977 2.52141C5.66062 2.37448 5.69195 2.21701 5.69195 2.05798V0.552979" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4903<path id="Vector_3_16" d="M9.50001 4.92906C9.15452 4.75073 8.7718 4.6565 8.38301 4.65406H6.90001C6.73798 4.64941 6.57667 4.6773 6.42562 4.73609C6.27456 4.79488 6.13683 4.88337 6.02058 4.99633C5.90433 5.10929 5.81192 5.24442 5.74882 5.39372C5.68571 5.54303 5.6532 5.70347 5.6532 5.86556C5.6532 6.02766 5.68571 6.1881 5.74882 6.33741C5.81192 6.48671 5.90433 6.62184 6.02058 6.7348C6.13683 6.84776 6.27456 6.93625 6.42562 6.99504C6.57667 7.05383 6.73798 7.08172 6.90001 7.07706C7.12942 7.07706 7.34944 7.1682 7.51166 7.33042C7.67387 7.49264 7.76501 7.71265 7.76501 7.94206V8.54706" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 4904</g> 4905<defs> 4906<clipPath id="clip0_2488_10118_3"> 4907<rect width="10" height="10" fill="white"/> 4908</clipPath> 4909</defs> 4910<title>small-globe</title></svg> 4911 <span class="text-sm">Allemagne</span> 4912 </div> 4913 <header class="px-8 py-6 flex justify-between"> 4914 <div id="store-switcher-title" class="text-2xl font-normal text-black"> 4915 Online Store </div> 4916 <div x-show="open" 4917 class="flex"> 4918 <button @click="open=false" 4919 aria-label="Close store switcher" 4920 class="text-black"> 4921 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" class="w-2.5 h-2.5 hover:text-black" role="img"> 4922<g clip-path="url(#clip0_954_30807_3)"> 4923<g clip-path="url(#clip1_954_30807_3)"> 4924<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4925<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4926</g> 4927</g> 4928<defs> 4929<clipPath id="clip0_954_30807_3"> 4930<rect width="24" height="24" fill="white"/> 4931</clipPath> 4932<clipPath id="clip1_954_30807_3"> 4933<rect width="24" height="24" fill="white"/> 4934</clipPath> 4935</defs> 4936<title>close</title></svg> 4937 </button> 4938 </div> 4939 </header> 4940 <div class="p-8"> 4941 4942 <div class="flex justify-between items-center border-b border-primary-200 last:border-b-0"> 4943 <div class="flex py-4 gap-2 opacity-50"> 4944 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 4945<g id="Mask group_11"> 4946<mask id="mask0_1120_26155_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 4947<g id="Group_11"> 4948<path id="Vector_18" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 4949</g> 4950</mask> 4951<g mask="url(#mask0_1120_26155_2)"> 4952<g id="Group_2_11"> 4953<path id="Vector_2_17" d="M0 16.1719L12.0328 14.9766L24 16.1719V24H0V16.1719Z" fill="#FFDA44"/> 4954<path id="Vector_3_17" d="M0 7.82812L11.9531 6.75L24 7.82812V16.1719H0V7.82812Z" fill="#D80027"/> 4955<path id="Vector_4_10" d="M0 0H24V7.82812H0V0Z" fill="#333333"/> 4956</g> 4957</g> 4958</g> 4959<title>de</title></svg>
4960 <span class="font-normal text-base text-black"> 4961 Allemagne </span> 4962 </div> 4963 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" class="w-5 h-5 bg-black" role="img"> 4964<g id="checkmark_2"> 4965<path id="Vector_19" d="M6.45837 10.625L8.33337 12.7083L13.5417 7.29163" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4966</g> 4967<title>checkmark</title></svg> 4968 </div> 4969 4970 <a href="https://www.lafuma-mobilier.fr/?___store=fr_fr" 4971 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 4972 > 4973 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 4974<g id="Mask group_12"> 4975<mask id="mask0_2189_10493_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 4976<g id="Group_12"> 4977<path id="Vector_20" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 4978</g> 4979</mask> 4980<g mask="url(#mask0_2189_10493_2)"> 4981<g id="Group_2_12"> 4982<path id="Vector_2_18" d="M7.82815 0H16.1719L17.386 11.8266L16.1719 24H7.82815L6.43127 12.1219L7.82815 0Z" fill="#EEEEEE"/> 4983<path id="Vector_3_18" d="M0 0H7.82812V24H0V0Z" fill="#0052B4"/> 4984<path id="Vector_4_11" d="M16.1719 0H24V24H16.1719V0Z" fill="#D80027"/> 4985</g> 4986</g> 4987</g> 4988<title>fr</title></svg> 4989 <span class="font-normal text-base text-black"> 4990 France </span> 4991 </a> 4992 4993 <a href="https://www.lafuma-furniture.co.uk/?___store=uk_en" 4994 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 4995 > 4996 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 4997<g id="Mask group_13"> 4998<mask id="mask0_2189_4845_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 4999<g id="Group_13"> 5000<path id="Vector_21" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5001</g> 5002</mask> 5003<g mask="url(#mask0_2189_4845_2)"> 5004<g id="Group_2_13"> 5005<path id="Vector_2_19" d="M0 0L0.375 1.03125L0 2.10938V3.1875L1.5 5.71875L0 8.25V9.75L1.5 12L0 14.25V15.75L1.5 18.2812L0 20.8125V24L1.03125 23.625L2.10938 24H3.1875L5.71875 22.5L8.25 24H9.75L12 22.5L14.25 24H15.75L18.2812 22.5L20.8125 24H24L23.625 22.9688L24 21.8906V20.8125L22.5 18.2812L24 15.75V14.25L22.5 12L24 9.75V8.25L22.5 5.71875L24 3.1875V0L22.9688 0.375L21.8906 0H20.8125L18.2812 1.5L15.75 0H14.25L12 1.5L9.75 0H8.25L5.71875 1.5L3.1875 0H0Z" fill="#EEEEEE"/> 5006<path id="Vector_3_19" d="M15.75 0V5.0625L20.8125 0H15.75ZM24 3.1875L18.9375 8.25H24V3.1875ZM0 8.25H5.0625L0 3.1875V8.25ZM3.1875 0L8.25 5.0625V0H3.1875ZM8.25 24V18.9375L3.1875 24H8.25ZM0 20.8125L5.0625 15.75H0V20.8125ZM24 15.75H18.9375L24 20.8125V15.75ZM20.8125 24L15.75 18.9375V24H20.8125Z" fill="#0052B4"/> 5007<path id="Vector_4_12" d="M0 0V2.10938L6.14062 8.25H8.25L0 0ZM9.75 0V9.75H0V14.25H9.75V24H14.25V14.25H24V9.75H14.25V0H9.75ZM21.8906 0L15.75 6.14062V8.25L24 0H21.8906ZM8.25 15.75L0 24H2.10938L8.25 17.8594V15.75ZM15.75 15.75L24 24V21.8906L17.8594 15.75H15.75Z" fill="#D80027"/> 5008</g> 5009</g> 5010</g> 5011<title>uk</title></svg>
5012 <span class="font-normal text-base text-black"> 5013 Royaume-Uni </span> 5014 </a> 5015 5016 <a href="https://www.lafuma-mobilier.be/nl/?___store=be_nl" 5017 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5018 > 5019 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5020<g id="Mask group_14"> 5021<mask id="mask0_2189_7435_3" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5022<g id="Group_14"> 5023<path id="Vector_22" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5024</g> 5025</mask> 5026<g mask="url(#mask0_2189_7435_3)"> 5027<g id="Group_2_14"> 5028<path id="Vector_2_20" d="M0 0H7.82812L9.61875 11.8406L7.82812 24H0V0Z" fill="#333333"/> 5029<path id="Vector_3_20" d="M16.1719 0H24V24H16.1719L14.4515 12L16.1719 0Z" fill="#D80027"/> 5030<path id="Vector_4_13" d="M7.82812 0H16.1719V24H7.82812V0Z" fill="#FFDA44"/> 5031</g> 5032</g> 5033</g> 5034<title>be</title></svg> 5035 <span class="font-normal text-base text-black"> 5036 Belgique - Flamand </span> 5037 <span class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 5038 Neu </span> 5039 </a> 5040 <a href="https://www.lafuma-mobilier.be/?___store=be_fr" 5041 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5042 > 5043 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5044<g id="Mask group_15"> 5045<mask id="mask0_2189_7435_4" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5046<g id="Group_15"> 5047<path id="Vector_23" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5048</g> 5049</mask> 5050<g mask="url(#mask0_2189_7435_4)"> 5051<g id="Group_2_15"> 5052<path id="Vector_2_21" d="M0 0H7.82812L9.61875 11.8406L7.82812 24H0V0Z" fill="#333333"/> 5053<path id="Vector_3_21" d="M16.1719 0H24V24H16.1719L14.4515 12L16.1719 0Z" fill="#D80027"/> 5054<path id="Vector_4_14" d="M7.82812 0H16.1719V24H7.82812V0Z" fill="#FFDA44"/> 5055</g> 5056</g> 5057</g> 5058<title>be</title></svg> 5059 <span class="font-normal text-base text-black"> 5060 Belgique - Français </span> 5061 </a> 5062 5063 <a href="https://www.lafuma-mobili.it/?___store=it_it" 5064 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5065 > 5066 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5067<g id="Mask group_16"> 5068<mask id="mask0_2189_7016_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5069<g id="Group_16"> 5070<path id="Vector_24" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5071</g> 5072</mask> 5073<g mask="url(#mask0_2189_7016_2)"> 5074<g id="Group_2_16">
5075<path id="Vector_2_22" d="M7.82815 0H16.1719L17.386 11.8266L16.1719 24H7.82815L6.43127 12.1219L7.82815 0Z" fill="#EEEEEE"/> 5076<path id="Vector_3_22" d="M0 0H7.82812V24H0V0Z" fill="#6DA544"/> 5077<path id="Vector_4_15" d="M16.1719 0H24V24H16.1719V0Z" fill="#D80027"/> 5078</g> 5079</g> 5080</g> 5081<title>it</title></svg> 5082 <span class="font-normal text-base text-black"> 5083 Italie </span> 5084 </a> 5085 5086 <a href="https://www.lafuma-mobiliario.es/?___store=es_es" 5087 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5088 > 5089 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5090<g id="Mask group_17"> 5091<mask id="mask0_2189_13997_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5092<g id="Group_17"> 5093<path id="Vector_25" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5094</g> 5095</mask> 5096<g mask="url(#mask0_2189_13997_2)"> 5097<g id="Group_2_17"> 5098<path id="Vector_2_23" d="M0 6L12 4.5L24 6V18L12 19.5L0 18V6Z" fill="#FFDA44"/> 5099<path id="Vector_3_23" d="M0 0H24V6H0V0ZM0 18H24V24H0V18Z" fill="#D80027"/> 5100<g id="Group_3_2"> 5101<path id="Vector_4_16" d="M6.75 14.25H6V10.5H6.75V14.25ZM12.75 14.25H13.5V10.5H12.75V14.25Z" fill="#EEEEEE"/> 5102<path id="Vector_5_3" d="M9.75 15.375C10.9926 15.375 12 14.7034 12 13.875C12 13.0466 10.9926 12.375 9.75 12.375C8.50736 12.375 7.5 13.0466 7.5 13.875C7.5 14.7034 8.50736 15.375 9.75 15.375Z" fill="#EEEEEE"/> 5103</g> 5104<g id="Group_4_2"> 5105<path id="Vector_6_2" d="M6.75 9.375C6.75 9.16789 6.58211 9 6.375 9C6.16789 9 6 9.16789 6 9.375V9.75C6 9.95711 6.16789 10.125 6.375 10.125C6.58211 10.125 6.75 9.95711 6.75 9.75V9.375Z" fill="#D80027"/> 5106<path id="Vector_7_2" d="M13.5 9.375C13.5 9.16789 13.3321 9 13.125 9C12.9179 9 12.75 9.16789 12.75 9.375V9.75C12.75 9.95711 12.9179 10.125 13.125 10.125C13.3321 10.125 13.5 9.95711 13.5 9.75V9.375Z" fill="#D80027"/> 5107<path id="Vector_8_2" d="M9.75 12.75V13.875C9.75 14.1734 9.86853 14.4595 10.0795 14.6705C10.2905 14.8815 10.5766 15 10.875 15C11.1734 15 11.4595 14.8815 11.6705 14.6705C11.8815 14.4595 12 14.1734 12 13.875V12.75H10.875H9.75Z" fill="#D80027"/> 5108</g> 5109<path id="Vector_9_2" d="M6.75 9.75H6C5.79289 9.75 5.625 9.91789 5.625 10.125C5.625 10.3321 5.79289 10.5 6 10.5H6.75C6.95711 10.5 7.125 10.3321 7.125 10.125C7.125 9.91789 6.95711 9.75 6.75 9.75Z" fill="#FF9811"/> 5110<path id="Vector_10_2" d="M13.5 9.75H12.75C12.5429 9.75 12.375 9.91789 12.375 10.125C12.375 10.3321 12.5429 10.5 12.75 10.5H13.5C13.7071 10.5 13.875 10.3321 13.875 10.125C13.875 9.91789 13.7071 9.75 13.5 9.75Z" fill="#FF9811"/> 5111<path id="Vector_11_2" d="M6.75 14.25H6C5.79289 14.25 5.625 14.4179 5.625 14.625C5.625 14.8321 5.79289 15 6 15H6.75C6.95711 15 7.125 14.8321 7.125 14.625C7.125 14.4179 6.95711 14.25 6.75 14.25Z" fill="#FF9811"/> 5112<path id="Vector_12_2" d="M13.5 14.25H12.75C12.5429 14.25 12.375 14.4179 12.375 14.625C12.375 14.8321 12.5429 15 12.75 15H13.5C13.7071 15 13.875 14.8321 13.875 14.625C13.875 14.4179 13.7071 14.25 13.5 14.25Z" fill="#FF9811"/>
5113<path id="Vector_13_2" d="M7.5 12.75V13.875C7.5 14.25 7.6875 14.5312 7.92188 14.7656L8.15625 14.4844L8.39062 14.9531C8.5446 14.9909 8.7054 14.9909 8.85938 14.9531L9.09375 14.4844L9.32812 14.7656C9.60938 14.5312 9.75 14.25 9.75 13.875V12.75H9.32812L9.09375 13.125L8.85938 12.75H8.39062L8.15625 13.125L7.92188 12.75H7.5Z" fill="#FF9811"/> 5114<path id="Vector_14_2" d="M5.71875 11.625C5.66902 11.625 5.62133 11.6448 5.58617 11.6799C5.551 11.7151 5.53125 11.7628 5.53125 11.8125C5.53125 11.8622 5.551 11.9099 5.58617 11.9451C5.62133 11.9802 5.66902 12 5.71875 12H13.7812C13.831 12 13.8787 11.9802 13.9138 11.9451C13.949 11.9099 13.9688 11.8622 13.9688 11.8125C13.9688 11.7628 13.949 11.7151 13.9138 11.6799C13.8787 11.6448 13.831 11.625 13.7812 11.625H5.71875ZM5.71875 12.75C5.66902 12.75 5.62133 12.7698 5.58617 12.8049C5.551 12.8401 5.53125 12.8878 5.53125 12.9375C5.53125 12.9872 5.551 13.0349 5.58617 13.0701C5.62133 13.1052 5.66902 13.125 5.71875 13.125H7.03125C7.08098 13.125 7.12867 13.1052 7.16383 13.0701C7.199 13.0349 7.21875 12.9872 7.21875 12.9375C7.21875 12.8878 7.199 12.8401 7.16383 12.8049C7.12867 12.7698 7.08098 12.75 7.03125 12.75H5.71875ZM12.4688 12.75C12.419 12.75 12.3713 12.7698 12.3362 12.8049C12.301 12.8401 12.2812 12.8878 12.2812 12.9375C12.2812 12.9872 12.301 13.0349 12.3362 13.0701C12.3713 13.1052 12.419 13.125 12.4688 13.125H13.7812C13.831 13.125 13.8787 13.1052 13.9138 13.0701C13.949 13.0349 13.9688 12.9872 13.9688 12.9375C13.9688 12.8878 13.949 12.8401 13.9138 12.8049C13.8787 12.7698 13.831 12.75 13.7812 12.75H12.4688Z" fill="#D80027"/> 5115<path id="Vector_15_2" d="M9.1875 7.875C8.85938 7.875 8.57812 8.10938 8.48438 8.39062L8.25 8.34375C7.82812 8.34375 7.5 8.67188 7.5 9.09375C7.5 9.51562 7.82812 9.84375 8.25 9.84375C8.57812 9.84375 8.85938 9.65625 8.95312 9.32812C9.08984 9.37744 9.23793 9.38597 9.3794 9.35269C9.52087 9.3194 9.64962 9.24573 9.75 9.14062C9.85038 9.24573 9.97913 9.3194 10.1206 9.35269C10.2621 9.38597 10.4102 9.37744 10.5469 9.32812C10.5924 9.4701 10.6791 9.5953 10.7961 9.68774C10.9131 9.78018 11.0549 9.83566 11.2036 9.8471C11.3522 9.85854 11.5009 9.82542 11.6306 9.75197C11.7604 9.67851 11.8653 9.56806 11.9319 9.43472C11.9986 9.30137 12.024 9.15118 12.005 9.00332C11.9859 8.85547 11.9232 8.71665 11.8248 8.6046C11.7265 8.49254 11.597 8.41234 11.4528 8.37423C11.3087 8.33612 11.1565 8.34183 11.0156 8.39062C10.9704 8.2691 10.8945 8.16137 10.7952 8.07795C10.6959 7.99453 10.5767 7.93827 10.4493 7.91466C10.3218 7.89104 10.1903 7.90089 10.0678 7.94323C9.94521 7.98558 9.83573 8.05897 9.75 8.15625C9.60938 7.96875 9.42188 7.875 9.1875 7.875ZM9.1875 8.25C9.42188 8.25 9.5625 8.4375 9.5625 8.625C9.5625 8.85938 9.42188 9 9.1875 9C9 9 8.8125 8.85938 8.8125 8.625C8.8125 8.4375 9 8.25 9.1875 8.25ZM10.3125 8.25C10.5469 8.25 10.6875 8.4375 10.6875 8.625C10.6875 8.85938 10.5469 9 10.3125 9C10.125 9 9.9375 8.85938 9.9375 8.625C9.9375 8.4375 10.
5115125 8.25 10.3125 8.25ZM8.25 8.71875L8.4375 8.76562L8.625 9.14062C8.625 9.32812 8.4375 9.46875 8.25 9.46875C8.0625 9.46875 7.875 9.32812 7.875 9.09375C7.875 8.90625 8.0625 8.71875 8.25 8.71875ZM11.25 8.71875C11.4844 8.71875 11.625 8.90625 11.625 9.09375C11.625 9.32812 11.4844 9.46875 11.25 9.46875C11.0625 9.46875 10.875 9.32812 10.875 9.14062L11.0625 8.76562L11.25 8.71875Z" fill="#EEEEEE"/> 5116<path id="Vector_16_2" d="M9.375 7.5H10.125V9H9.375V7.5Z" fill="#FF9811"/> 5117<path id="Vector_17_2" d="M9.75 10.5H12V12.75H9.75V10.5Z" fill="#EEEEEE"/> 5118<path id="Vector_18_2" d="M11.625 9.75L11.25 10.125H8.25L7.875 9.75C7.875 9.14062 8.71875 8.625 9.75 8.625C10.7812 8.625 11.625 9.14062 11.625 9.75ZM7.5 10.5H9.75V12.75H7.5V10.5Z" fill="#D80027"/> 5119<path id="Vector_19_2" d="M11.3438 11.3438C11.3438 11.0849 11.1339 10.875 10.875 10.875C10.6161 10.875 10.4062 11.0849 10.4062 11.3438V11.9062C10.4062 12.1651 10.6161 12.375 10.875 12.375C11.1339 12.375 11.3438 12.1651 11.3438 11.9062V11.3438Z" fill="#D80027"/> 5120<path id="Vector_20_2" d="M7.875 10.875V11.25H8.25V12H7.875V12.375H9.375V12H9V11.25H9.375V10.875H7.875ZM8.25 10.125H11.25V10.5H8.25V10.125Z" fill="#FF9811"/> 5121<g id="Group_5_2"> 5122<path id="Vector_21_2" d="M8.71875 9.75C8.87408 9.75 9 9.62408 9 9.46875C9 9.31342 8.87408 9.1875 8.71875 9.1875C8.56342 9.1875 8.4375 9.31342 8.4375 9.46875C8.4375 9.62408 8.56342 9.75 8.71875 9.75Z" fill="#FFDA44"/> 5123<path id="Vector_22_2" d="M9.75 9.75C9.90533 9.75 10.0312 9.62408 10.0312 9.46875C10.0312 9.31342 9.90533 9.1875 9.75 9.1875C9.59467 9.1875 9.46875 9.31342 9.46875 9.46875C9.46875 9.62408 9.59467 9.75 9.75 9.75Z" fill="#FFDA44"/> 5124<path id="Vector_23_2" d="M10.7812 9.75C10.9366 9.75 11.0625 9.62408 11.0625 9.46875C11.0625 9.31342 10.9366 9.1875 10.7812 9.1875C10.6259 9.1875 10.5 9.31342 10.5 9.46875C10.5 9.62408 10.6259 9.75 10.7812 9.75Z" fill="#FFDA44"/> 5125</g> 5126<path id="Vector_24_2" d="M7.92188 12.75V14.7656C8.0619 14.8628 8.22219 14.9269 8.39062 14.9531V12.75H7.92188ZM8.85938 12.75V14.9531C9.02781 14.9269 9.1881 14.8628 9.32812 14.7656V12.75H8.85938Z" fill="#D80027"/> 5127<g id="Group_6_2"> 5128<path id="Vector_25_2" d="M9.75 13.5C10.1642 13.5 10.5 13.1642 10.5 12.75C10.5 12.3358 10.1642 12 9.75 12C9.33579 12 9 12.3358 9 12.75C9 13.1642 9.33579 13.5 9.75 13.5Z" fill="#338AF3"/> 5129<path id="Vector_26_2" d="M13.5 15H12.75C12.5429 15 12.375 15.1679 12.375 15.375C12.375 15.5821 12.5429 15.75 12.75 15.75H13.5C13.7071 15.75 13.875 15.5821 13.875 15.375C13.875 15.1679 13.7071 15 13.5 15Z" fill="#338AF3"/> 5130<path id="Vector_27_2" d="M6.75 15H6C5.79289 15 5.625 15.1679 5.625 15.375C5.625 15.5821 5.79289 15.75 6 15.75H6.75C6.95711 15.75 7.125 15.5821 7.125 15.375C7.125 15.1679 6.95711 15 6.75 15Z" fill="#338AF3"/> 5131</g> 5132</g> 5133</g> 5134</g> 5135<title>es</title></svg> 5136 <span class="font-normal text-base text-black"> 5137 Espagne </span> 5138 </a> 5139 5140 <a href="https://www.lafuma-meubels.nl/?___store=nl_nl" 5141 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5142 > 5143 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5144<g id="Mask group_18"> 5145<mask id="mask0_2189_10527_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5146<g id="Group_18"> 5147<path id="Vector_26" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5148</g> 5149</mask> 5150<g mask="url(#mask0_2189_10527_2)"> 5151<g id="Group_2_18"> 5152<path id="Vector_2_24" d="M0 7.82815L11.8969 6.92346L24 7.82815V16.1719L12.0516 17.686L0 16.1719V7.82815Z" fill="#EEEEEE"/> 5153<path id="Vector_3_24" d="M0 0H24V7.82812H0V0Z" fill="#A2001D"/> 5154<path id="Vector_4_17" d="M0 16.1719H24V24H0V16.1719Z" fill="#0052B4"/> 5155</g> 5156</g> 5157</g> 5158<title>nl</title></svg>
5159 <span class="font-normal text-base text-black"> 5160 Pays-Bas </span> 5161 </a> 5162 5163 <a href="https://www.lafuma-furniture.jp/?___store=jp_jp" 5164 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5165 > 5166 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5167<g id="Mask group_19"> 5168<mask id="mask0_2189_10517_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5169<g id="Group_19"> 5170<path id="Vector_27" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5171</g> 5172</mask> 5173<g mask="url(#mask0_2189_10517_2)"> 5174<g id="Group_2_19"> 5175<path id="Vector_2_25" d="M0 0H24V24H0V0Z" fill="#EEEEEE"/> 5176<path id="Vector_3_25" d="M12 17.2172C14.8814 17.2172 17.2172 14.8814 17.2172 12C17.2172 9.11865 14.8814 6.78284 12 6.78284C9.11865 6.78284 6.78284 9.11865 6.78284 12C6.78284 14.8814 9.11865 17.2172 12 17.2172Z" fill="#D80027"/> 5177</g> 5178</g> 5179</g> 5180<title>jp</title></svg> 5181 <span class="font-normal text-base text-black"> 5182 Japon </span> 5183 </a> 5184 5185 <a href="https://www.lafuma-mobilier.ch/de/?___store=ch_de" 5186 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5187 > 5188 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 32 32" class="w-6 h-6 hover:text-black" role="img"> 5189<path d="m0 0h32v32h-32z" fill="#f00"/> 5190<path d="m13 6h6v7h7v6h-7v7h-6v-7h-7v-6h7z" fill="#fff"/> 5191<title>ch</title></svg> 5192 <span class="font-normal text-base text-black"> 5193 Suisse - Allemand </span> 5194 <span class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 5195 Neu </span> 5196 </a> 5197 <a href="https://www.lafuma-mobilier.ch/?___store=ch_fr" 5198 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5199 > 5200 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 32 32" class="w-6 h-6 hover:text-black" role="img"> 5201<path d="m0 0h32v32h-32z" fill="#f00"/> 5202<path d="m13 6h6v7h7v6h-7v7h-6v-7h-7v-6h7z" fill="#fff"/> 5203<title>ch</title></svg> 5204 <span class="font-normal text-base text-black"> 5205 Suisse - Français </span> 5206 <sp
5206an class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 5207 Neu </span> 5208 </a> 5209 <a href="https://www.lafumausa.com/" 5210 class="flex py-4 gap-2 items-center border-b border-primary-200 last:border-b-0" 5211 > 5212 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6 hover:text-black" role="img"> 5213<g id="Mask group_20"> 5214<mask id="mask0_2189_10471_2" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"> 5215<g id="Group_20"> 5216<path id="Vector_28" d="M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z" fill="white"/> 5217</g> 5218</mask> 5219<g mask="url(#mask0_2189_10471_2)"> 5220<g id="Group_2_20"> 5221<path id="Vector_2_26" d="M12 0H24V3L22.5 4.5L24 6V9L22.5 10.5L24 12V15L22.5 16.5L24 18V21L12 22.5L0 21V18L1.5 16.5L0 15V12L12 0Z" fill="#EEEEEE"/> 5222<path id="Vector_3_26" d="M10.5 3H24V6H10.5V3ZM10.5 9H24V12H12L10.5 9ZM0 15H24V18H0V15ZM0 21H24V24H0V21Z" fill="#D80027"/> 5223<path id="Vector_4_18" d="M0 0H12V12H0V0Z" fill="#0052B4"/> 5224<path id="Vector_5_4" d="M8.76562 11.3906L11.4375 9.46875H8.15625L10.8281 11.3906L9.79688 8.25L8.76562 11.3906ZM4.96875 11.3906L7.64062 9.46875H4.35938L7.03125 11.3906L6 8.25L4.96875 11.3906ZM1.17188 11.3906L3.84375 9.46875H0.5625L3.23438 11.3906L2.20312 8.25L1.17188 11.3906ZM8.76562 7.59375L11.4375 5.67188H8.15625L10.8281 7.59375L9.79688 4.45312L8.76562 7.59375ZM4.96875 7.59375L7.64062 5.67188H4.35938L7.03125 7.59375L6 4.45312L4.96875 7.59375ZM1.17188 7.59375L3.84375 5.67188H0.5625L3.23438 7.59375L2.20312 4.45312L1.17188 7.59375ZM8.76562 3.75L11.4375 1.82812H8.15625L10.8281 3.75L9.79688 0.609375L8.76562 3.75ZM4.96875 3.75L7.64062 1.82812H4.35938L7.03125 3.75L6 0.609375L4.96875 3.75ZM1.17188 3.75L3.84375 1.82812H0.5625L3.23438 3.75L2.20312 0.609375L1.17188 3.75Z" fill="#EEEEEE"/> 5225</g> 5226</g> 5227</g> 5228<title>us</title></svg> 5229 <span class="font-normal text-base text-black"> 5230 United States </span> 5231 <span class="bg-gray-200 font-semibold leading-2 text-xxs text-black px-2 py-1"> 5232 Neu </span> 5233 </a> 5234 </div> 5235 </div> 5236 </div> 5237 </div> 5238 </div> 5239 </section> 5240</div>
5241<script> 5242 'use strict'; 5243 5244 const initMenuMobile_6ac71552f0993 = () => { 5245 return { 5246 mobilePanelActiveId: null, 5247 mobilePanelLevel1ActiveId: null, 5248 open: false, 5249 setActiveMenu(menuNode) { 5250 Array.from(menuNode.querySelectorAll('a')).filter(link => { 5251 return link.href === window.location.href.split('?')[0]; 5252 }).map(item => { 5253 item.closest('div.level-0') && 5254 item.closest('div.level-0').querySelector('a.level-0').classList.add('font-semibold'); 5255 }); 5256 } 5257 } 5258 } 5259</script>
5259 5260<div x-data="initMenuDesktop_6ac715531e17d()" 5261 class="z-30 order-2 sm:order-1 lg:order-2 navigation hidden lg:flex" 5262> 5263 <!-- desktop --> 5264 <div x-ref="nav-desktop" 5265 class="hidden lg:block lg:min-h-0 lg:w-auto lg:pt-0" 5266 > 5267 <nav class="menu-desktop w-full duration-150 ease-in-out flex justify-start w-auto min-h-0 transition-display gap-2"> 5268 <div class="level-0" 5269 id="category-node-3"> 5270 <span class="flex items-center block text-md bg-opacity-95 mb-4 text-center"> 5271 <a 5272 class="link-level0 w-full text-base flex gap-2 items-center level-0 tracking-wide no-underline px-3" 5273 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 5274 @click="handleLevel0Click(event, 'category-node-3', '1')" 5275 :class="hoverPanelActiveId === 'category-node-3' ? 'font-medium text-black border-b-2 border-black pt-2.5 pb-2 tracking-normal' : 'font-normal py-2.5'" 5276 href="https://www.lafuma-moebel.de/alle-unsere-produkte.html" 5277 title="Alle unsere Produkte" 5278 @menu-click.window="handleLevel0Click(event, 0, true)" 5279 @click.prevent="" 5280 > 5281 <span :class="hoverPanelActiveId != 'category-node-3' ? 'rotate-180' : ''"> 5282 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" class="h-3.5 w-3.5 font-bold" role="img"> 5283<path d="M1.19995 17.7026L11.4912 7.41117C11.5579 7.34429 11.6372 7.29123 11.7245 7.25503C11.8119 7.21883 11.9054 7.2002 12 7.2002C12.0945 7.2002 12.188 7.21883 12.2754 7.25503C12.3627 7.29123 12.442 7.34429 12.5088 7.41117L22.8 17.7026" stroke="#171717" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 5284<title>drop-top</title></svg> 5285 </span> 5286 Alle unsere Produkte </a> 5287 </span> 5288 <div class="content-level0 absolute full-viewport-less-scrollbar z-20 left-0 hidden border-y border-primary-200 border-opacity-90 bg-white overflow-auto max-h-[calc(100vh-148px)]"> 5289 5290<div x-data="initMenuLevel1_6ac6f931ab9d7()" 5291 x-init="init()" 5292 class="category-icon z-10 bg-white relative max-w-container m-auto"> 5293 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 5294 id="category-node-15" 5295 data-cms-content="" 5296 data-display-mode="category-square-image" 5297 @click="handleCategoryIconClick(event, 'category-node-15')" 5298 :class="hoverLevel1ActiveId === 'category-node-15' ? 'category-active' : ''"> 5299 5300 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung.html" 5301 title="Nach Raum und Nutzung" 5302 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 5303 :class="hoverLevel1ActiveId === 'category-node-15' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 5304 @click.prevent 5305 > 5306 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/par-espace-et-usage.svg" 5307 alt="" 5308 width="24" 5309 height="24" 5310 loading="lazy" /> 5311
5312 <span class="text-base"> 5313 Nach Raum und Nutzung </span> 5314 </a> 5315 5316 5317 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 5318 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 5319 5320<div class="category-square-image z-10 bg-primary-100 pl-6 flex flex-wrap w-full"> 5321 <div class="category-square-image-item basis-1/3"> 5322 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/neue-kollektion.html" 5323 title="Neue Kollektion" 5324 class="mx-6 my-6 block" 5325 style="width: calc(100% - 2rem)" 5326 > 5327 <img src="https://www.lafuma-moebel.de/media/catalog/category/AMBIANCE_MAXI_TRANSAT_RIVIERA_0017_LAFUMA_MOBILIER_2026.jpg" 5328 alt="" 5329 width="200" 5330 height="200" 5331 loading="lazy" /> 5332 <span class="text-base font-medium text-black mt-1 block"> 5333 Neue Kollektion </span> 5334 </a> 5335 </div> 5336 <div class="category-square-image-item basis-1/3"> 5337 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/cocooning-auswahl.html" 5338 title="Cocooning-Auswahl" 5339 class="mx-6 my-6 block" 5340 style="width: calc(100% - 2rem)" 5341 > 5342 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/AMBIANCE_EVOLUTION_NIKSEN_8723_LAFUMA_MOBILIER_2026_1_.jpg" 5343 alt="" 5344 width="200" 5345 height="200" 5346 loading="lazy" /> 5347 <span class="text-base font-medium text-black mt-1 block"> 5348 Cocooning-Auswahl </span> 5349 </a> 5350 </div> 5351 <div class="category-square-image-item basis-1/3"> 5352 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/vanlife-auswahl.html" 5353 title="Vanlife-Auswahl" 5354 class="mx-6 my-6 block" 5355 style="width: calc(100% - 2rem)" 5356 > 5357 <img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/menu/menu-selection-vanlife-_glechanu.jpg" 5358 alt="" 5359 width="200" 5360 height="200" 5361 loading="lazy" /> 5362 <span class="text-base font-medium text-black mt-1 block"> 5363 Vanlife-Auswahl </span> 5364 </a> 5365 </div> 5366 <div class="category-square-image-item basis-1/3"> 5367 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/auswahl-balkon-und-kleine-raume.html" 5368 title="Auswahl Balkon und kleine Räume" 5369 class="mx-6 my-6 block" 5370 style="width: calc(100% - 2rem)" 5371 > 5372 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/menu-selection-balcon-balcony64-colorblock-0699.jpg" 5373 alt="" 5374 width="200" 5375 height="200" 5376 loading="lazy" /> 5377 <span class="text-base font-medium text-black mt-1 block"> 5378 Auswahl Balkon und kleine Räume </span> 5379 </a> 5380 </div> 5381 <div class="category-square-image-item basis-1/3"> 5382 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/essbereich.html" 5383 title="Essbereich" 5384 class="mx-6 my-6 block" 5385 style="width: calc(100% - 2rem)" 5386 > 5387 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/menu-selection-repas-ancone_allure_20092165.jpg" 5388 alt="" 5389 width="200" 5390 height="200" 5391 loading="lazy" />
5392 <span class="text-base font-medium text-black mt-1 block"> 5393 Essbereich </span> 5394 </a> 5395 </div> 5396 <div class="category-square-image-item basis-1/3"> 5397 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/nach-raum-und-nutzung/auswahl-fuer-die-gastronomie.html" 5398 title="Auswahl für die Gastronomie" 5399 class="mx-6 my-6 block" 5400 style="width: calc(100% - 2rem)" 5401 > 5402 <img src="https://www.lafuma-moebel.de/media/.renditions/catalog/category/menu-selection-pro-horizon.jpg" 5403 alt="" 5404 width="200" 5405 height="200" 5406 loading="lazy" /> 5407 <span class="text-base font-medium text-black mt-1 block"> 5408 Auswahl für die Gastronomie </span> 5409 </a> 5410 </div> 5411 </div> </div> 5412 </div> 5413 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 5414 id="category-node-6" 5415 data-cms-content="<style>::backdrop { 5416--tw-border-spacing-x: 0; 5417--tw-border-spacing-y: 0; 5418--tw-translate-x: 0; 5419--tw-translate-y: 0; 5420--tw-rotate: 0; 5421--tw-skew-x: 0; 5422--tw-skew-y: 0; 5423--tw-scale-x: 1; 5424--tw-scale-y: 1; 5425--tw-pan-x: ; 5426--tw-pan-y: ; 5427--tw-pinch-zoom: ; 5428--tw-scroll-snap-strictness: proximity; 5429--tw-gradient-from-position: ; 5430--tw-gradient-via-position: ; 5431--tw-gradient-to-position: ; 5432--tw-ordinal: ; 5433--tw-slashed-zero: ; 5434--tw-numeric-figure: ; 5435--tw-numeric-spacing: ; 5436--tw-numeric-fraction: ; 5437--tw-ring-inset: ; 5438--tw-ring-offset-width: 0px; 5439--tw-ring-offset-color: #fff; 5440--tw-ring-color: rgb(59 130 246 / 0.5); 5441--tw-ring-offset-shadow: 0 0 #0000; 5442--tw-ring-shadow: 0 0 #0000; 5443--tw-shadow: 0 0 #0000; 5444--tw-shadow-colored: 0 0 #0000; 5445--tw-blur: ; 5446--tw-brightness: ; 5447--tw-contrast: ; 5448--tw-grayscale: ; 5449--tw-hue-rotate: ; 5450--tw-invert: ; 5451--tw-saturate: ; 5452--tw-sepia: ; 5453--tw-drop-shadow: ; 5454--tw-backdrop-blur: ; 5455--tw-backdrop-brightness: ; 5456--tw-backdrop-contrast: ; 5457--tw-backdrop-grayscale: ; 5458--tw-backdrop-hue-rotate: ; 5459--tw-backdrop-invert: ; 5460--tw-backdrop-opacity: ; 5461--tw-backdrop-saturate: ; 5462--tw-backdrop-sepia: 5463} 5464.cmsb2097-mb-4 { 5465margin-bottom: 1rem 5466} 5467.cmsb2097-max-w-\[360px\] { 5468max-width: 360px 5469} 5470.cmsb2097-basis-\[120px\] { 5471flex-basis: 120px 5472} 5473.cmsb2097-basis-\[220px\] { 5474flex-basis: 220px 5475} 5476.cmsb2097-\!flex-row { 5477flex-direction: row !important 5478} 5479.cmsb2097-bg-primary-200 { 5480--tw-bg-opacity: 1; 5481background-color: rgb(238 238 238 / var(--tw-bg-opacity)) 5482} 5483.cmsb2097-\!p-4 { 5484padding: 1rem !important 5485} 5486.cmsb2097-px-6 { 5487padding-left: 1.5rem; 5488padding-right: 1.5rem 5489} 5490.cmsb2097-py-3 { 5491padding-top: 0.75rem; 5492padding-bottom: 0.75rem 5493} 5494.cmsb2097-py-3\.5 { 5495padding-top: 0.875rem; 5496padding-bottom: 0.875rem 5497} 5498.cmsb2097-font-tertiary { 5499font-family: CrimsonPro Italic, Helvetica Neue, Arial, sans-serif 5500} 5501.cmsb2097-leading-5 { 5502line-height: 22px 5503} 5504@media (min-width: 768px) { 5505.cmsb2097-md\:mx-4 { 5506margin-left: 1rem; 5507margin-right: 1rem 5508} 5509.cmsb2097-md\:mb-0 { 5510margin-bottom: 0px 5511} 5512.cmsb2097-md\:\!px-20 { 5513padding-left: 5rem !important; 5514padding-right: 5rem !important 5515} 5516.cmsb2097-md\:\!py-8 { 5517padding-top: 2rem !important; 5518padding-bottom: 2rem !important 5519} 5520} 5521@media (min-width: 1280px) { 5522.cmsb2097-xl\:mx-\[30px\] { 5523margin-left: 30px; 5524margin-right: 30px 5525} 5526}</style> 5527<style>#html-body [data-pb-style=POTDOHK],#html-body [data-pb-style=UDL9QLY]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=POTDOHK]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#eee;margin:0;padding:0}#html-body [data-pb-style=UDL9QLY]{align-self:stretch}
5527#html-body [data-pb-style=RY4PFD9]{display:flex;width:100%}#html-body [data-pb-style=FQ3KTT4],#html-body [data-pb-style=IR9AIYT]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=VLPBQWH]{border-style:none}#html-body [data-pb-style=CNVXGFP]{max-width:100%;height:auto}#html-body [data-pb-style=YBCHIKE]{border-style:none}#html-body [data-pb-style=UH72OG1]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=VLPBQWH],#html-body [data-pb-style=YBCHIKE]{border-style:none} }</style><div class="cmsb2097-bg-primary-200 cmsb2097-!p-4 cmsb2097-md:!py-8 cmsb2097-md:!px-20" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="POTDOHK"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="UDL9QLY"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="RY4PFD9"><div class="pagebuilder-column cmsb2097-mb-4 cmsb2097-md:mb-0 cmsb2097-md:mx-4 cmsb2097-xl:mx-[30px] cmsb2097-!flex-row cmsb2097-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IR9AIYT"><figure class="cmsb2097-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="VLPBQWH"><a href="https://www.lafuma-moebel.de/blog/komfort-sessel-rueckenschmerzen.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-fauteuil-mal-de-dos.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-fauteuil-mal-de-dos.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="CNVXGFP"></source></picture></a></figure><div class="cmsb2097-py-3.5 cmsb2097-px-6 cmsb2097-font-tertiary cmsb2097-leading-5 cmsb2097-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Komfort !<br><br></em></span></p> 5528<p id="S8VW5QJ">Sessel gegen Rückenschmerzen: wie wählt man ihn richtig aus?</p></div></div><div class="pagebuilder-column cmsb2097-mb-4 cmsb2097-md:mb-0 cmsb2097-md:mx-4 cmsb2097-xl:mx-[30px] cmsb2097-!flex-row cmsb2097-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="FQ3KTT4"><figure class="cmsb2097-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="YBCHIKE"><a href="https://www.lafuma-moebel.de/blog/komfort-position-zero-gravity.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-position-zero-gravite-vignette-menu.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/wysiwyg/du-confort-position-zero-gravite-vignette-menu.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="UH72OG1"></source></picture></a></figure><div class="cmsb2097-py-3.5 cmsb2097-px-6 cmsb2097-font-tertiary cmsb2097-leading-5 cmsb2097-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Zero Gravity<br><br></em></span></p> 5529<p id="S8VW5QJ">Warum sollte man sich für einen „Zero Gravity“ Sessel entscheiden?</p></div></div></div></div></div></div>" 5530 data-display-mode="" 5531 @click="handleCategoryIconClick(event, 'category-node-6')" 5532 :class="hoverLevel1ActiveId === 'category-node-6' ? 'category-active' : ''"> 5533 5534 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen.html" 5535 title="Zero Gravity Relaxliegen" 5536 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 5537 :class="hoverLevel1ActiveId === 'category-node-6' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 5538 @click.prevent 5539 > 5540 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/fauteuils-relax-zero-gravite.svg" 5541 alt="" 5542 width="24" 5543 height="24" 5544 loading="lazy" /> 5545
5546 <span class="text-base"> 5547 Zero Gravity Relaxliegen </span> 5548 </a> 5549 5550 5551 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 5552 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 5553 5554 5555 <div class="category-default basis-1/3 2xl:basis-[270px]"> 5556 5557 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen.html" title="Relaxliegen" 5558 class="py-2 block" 5559 > 5560 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5561 Relaxliegen </span> 5562 </a> 5563 5564 5565 <div> 5566 5567 5568 <div class="category-default basis-full"> 5569 5570 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen/relaxliegen-fuer-draussen.html" title="Relaxliegen für draußen" 5571 class="py-2 block" 5572 > 5573 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5574 Relaxliegen für drauÃen </span> 5575 </a> 5576 5577 5578 </div> 5579 5580 <div class="category-default basis-full"> 5581 5582 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen/relaxliegen-fuer-drinnen.html" title="Relaxliegen für drinnen" 5583 class="py-2 block" 5584 > 5585 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5586 Relaxliegen für drinnen </span> 5587 </a> 5588 5589 5590 </div> 5591 5592 <div class="category-default basis-full"> 5593 5594 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/relaxliegen/relaxliegen-xl.html" title="Relaxliegen XL" 5595 class="py-2 block" 5596 > 5597 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5598 Relaxliegen XL </span> 5599 </a> 5600 5601 5602 5603 5604 <a href="/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung.html" title="Professioneller Gebrauch" 5605 class="py-2 block" 5606 > 5607 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5608 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 5609 PRO </span> 5610 </span> 5611 </a> 5612 5613 5614 </div> 5615 </div> 5616 5617 </div> 5618 5619 <div class="category-default basis-1/3 2xl:basis-[270px]"> 5620 5621 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit.html" title="Pflege - Langlebigkeit" 5622 class="py-2 block" 5623 > 5624 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5625 Pflege - Langlebigkeit </span> 5626 </a> 5627 5628 5629 <div> 5630 5631 5632 <div class="category-default basis-full"> 5633 5634 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" title="Pflegeprodukte" 5635 class="py-2 block" 5636 >
5637 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5638 Pflegeprodukte </span> 5639 </a> 5640 5641 5642 </div> 5643 5644 <div class="category-default basis-full"> 5645 5646 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-relaxliegen.html" title="Ersatzbezüge Relaxliegen" 5647 class="py-2 block" 5648 > 5649 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5650 Ersatzbezüge Relaxliegen </span> 5651 </a> 5652 5653 5654 </div> 5655 5656 <div class="category-default basis-full"> 5657 5658 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/gummischnuere.html" title="Gummischnüre" 5659 class="py-2 block" 5660 > 5661 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5662 Gummischnüre </span> 5663 </a> 5664 5665 5666 5667 5668 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" title="Schutzhüllen" 5669 class="py-2 block" 5670 > 5671 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5672 Schutzhüllen </span> 5673 </a> 5674 5675 5676 5677 5678 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-relaxliegen.html" title="Ersatzteile" 5679 class="py-2 block" 5680 > 5681 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5682 Ersatzteile </span> 5683 </a> 5684 5685 5686 </div> 5687 </div> 5688 5689 </div> 5690 5691 <div class="category-default basis-1/3 2xl:basis-[270px]"> 5692 5693 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/zero-gravity-relaxliegen/accessoires.html" title="Accessoires" 5694 class="py-2 block" 5695 > 5696 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5697 Accessoires </span> 5698 </a> 5699 5700 5701 <div> 5702 5703 5704 <div class="category-default basis-full"> 5705 5706 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/sonnenschirm.html" title="Sonnenschirm" 5707 class="py-2 block" 5708 > 5709 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5710 Sonnenschirm </span> 5711 </a> 5712 5713 5714 </div> 5715 5716 <div class="category-default basis-full"> 5717 5718 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/recycelte-getraenkehalter.html" title="Recycelte Getränkehalter" 5719 class="py-2 block" 5720 > 5721 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5722 Recycelte Getränkehalter </span> 5723 </a> 5724 5725 5726 </div> 5727 5728 <div class="category-default basis-full"> 5729 5730 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/decken.html" title="Decken" 5731 class="py-2 block" 5732 >
5733 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5734 Decken </span> 5735 </a> 5736 5737 5738 5739 5740 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/frotteeauflagen.html" title="Frotteeauflagen" 5741 class="py-2 block" 5742 > 5743 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5744 Frotteeauflagen </span> 5745 </a> 5746 5747 5748 </div> 5749 </div> 5750 5751 </div> 5752 </div> 5753 </div> 5754 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 5755 id="category-node-12" 5756 data-cms-content="" 5757 data-display-mode="" 5758 @click="handleCategoryIconClick(event, 'category-node-12')" 5759 :class="hoverLevel1ActiveId === 'category-node-12' ? 'category-active' : ''"> 5760 5761 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen.html" 5762 title="Liegestühle und Sonnenliegen" 5763 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 5764 :class="hoverLevel1ActiveId === 'category-node-12' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 5765 @click.prevent 5766 > 5767 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/transats-et-chaises-longues.svg" 5768 alt="" 5769 width="24" 5770 height="24" 5771 loading="lazy" /> 5772 5773 <span class="text-base"> 5774 Liegestühle und Sonnenliegen </span> 5775 </a> 5776 5777 5778 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 5779 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 5780 5781 5782 <div class="category-default basis-1/3 2xl:basis-[270px]"> 5783 5784 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen.html" title="Liegestühle und Sonnenliegen" 5785 class="py-2 block" 5786 > 5787 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5788 Liegestühle und Sonnenliegen </span> 5789 </a> 5790 5791 5792 <div> 5793 5794 5795 <div class="category-default basis-full"> 5796 5797 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/liegestuehle.html" title="Liegestühle" 5798 class="py-2 block" 5799 > 5800 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5801 Liegestühle </span> 5802 </a> 5803 5804 5805 </div> 5806 5807 <div class="category-default basis-full"> 5808 5809 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/sonnenliegen.html" title="Sonnenliegen" 5810 class="py-2 block" 5811 >
5812 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5813 Sonnenliegen </span> 5814 </a> 5815 5816 5817 </div> 5818 5819 <div class="category-default basis-full"> 5820 5821 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/butterfly-chairs-pop-up.html" title="Butterfly Chairs (Pop Up)" 5822 class="py-2 block" 5823 > 5824 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5825 Butterfly Chairs (Pop Up) </span> 5826 </a> 5827 5828 5829 5830 5831 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/fussauflagen.html" title="Fußauflagen" 5832 class="py-2 block" 5833 > 5834 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5835 FuÃauflagen </span> 5836 </a> 5837 5838 5839 5840 5841 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/liegestuehle.html" title="Professioneller Gebrauch" 5842 class="py-2 block" 5843 > 5844 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5845 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 5846 PRO </span> 5847 </span> 5848 </a> 5849 5850 5851 </div> 5852 </div> 5853 5854 </div> 5855 5856 <div class="category-default basis-1/3 2xl:basis-[270px]"> 5857 5858 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/liegestuehle-und-sonnenliegen/pflege-langlebigkeit.html" title="Pflege - Langlebigkeit" 5859 class="py-2 block" 5860 > 5861 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 5862 Pflege - Langlebigkeit </span> 5863 </a> 5864 5865 5866 <div> 5867 5868 5869 <div class="category-default basis-full"> 5870 5871 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-liegestuehle.html" title="Ersatzbezüge Liegestühle" 5872 class="py-2 block" 5873 > 5874 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5875 Ersatzbezüge Liegestühle </span> 5876 </a> 5877 5878 5879 </div> 5880 5881 <div class="category-default basis-full"> 5882 5883 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-sonnenliegen.html" title="Ersatzbezüge Sonnenliegen" 5884 class="py-2 block" 5885 > 5886 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5887 Ersatzbezüge Sonnenliegen </span> 5888 </a> 5889 5890 5891 </div> 5892 5893 <div class="category-default basis-full"> 5894 5895 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" title="Ersatzbezüge Pop Up" 5896 class="py-2 block" 5897 >
5898 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5899 Ersatzbezüge Pop Up </span> 5900 </a> 5901 5902 5903 5904 5905 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" title="Schutzhüllen" 5906 class="py-2 block" 5907 > 5908 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5909 Schutzhüllen </span> 5910 </a> 5911 5912 5913 5914 5915 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-liegestuehle.html" title="Ersatzteile Liegestühle" 5916 class="py-2 block" 5917 > 5918 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5919 Ersatzteile Liegestühle </span> 5920 </a> 5921 5922 5923 5924 5925 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-sonnenliegen.html" title="Ersatzteile Sonnenliegen" 5926 class="py-2 block" 5927 > 5928 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5929 Ersatzteile Sonnenliegen </span> 5930 </a> 5931 5932 5933 5934 5935 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" title="Ersatzteile Pop Up" 5936 class="py-2 block" 5937 > 5938 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5939 Ersatzteile Pop Up </span> 5940 </a> 5941 5942 5943 5944 5945 <a href="/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" title="Pflegeprodukte" 5946 class="py-2 block" 5947 > 5948 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 5949 Pflegeprodukte </span> 5950 </a> 5951 5952 5953 </div> 5954 </div> 5955 5956 </div> 5957 </div> 5958 </div> 5959 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 5960 id="category-node-93" 5961 data-cms-content="<style>::backdrop { 5962--tw-border-spacing-x: 0; 5963--tw-border-spacing-y: 0; 5964--tw-translate-x: 0; 5965--tw-translate-y: 0; 5966--tw-rotate: 0; 5967--tw-skew-x: 0; 5968--tw-skew-y: 0; 5969--tw-scale-x: 1; 5970--tw-scale-y: 1; 5971--tw-pan-x: ; 5972--tw-pan-y: ; 5973--tw-pinch-zoom: ; 5974--tw-scroll-snap-strictness: proximity; 5975--tw-gradient-from-position: ; 5976--tw-gradient-via-position: ; 5977--tw-gradient-to-position: ; 5978--tw-ordinal: ; 5979--tw-slashed-zero: ; 5980--tw-numeric-figure: ; 5981--tw-numeric-spacing: ; 5982--tw-numeric-fraction: ; 5983--tw-ring-inset: ; 5984--tw-ring-offset-width: 0px; 5985--tw-ring-offset-color: #fff; 5986--tw-ring-color: rgb(59 130 246 / 0.5); 5987--tw-ring-offset-shadow: 0 0 #0000; 5988--tw-ring-shadow: 0 0 #0000; 5989--tw-shadow: 0 0 #0000; 5990--tw-shadow-colored: 0 0 #0000; 5991--tw-blur: ; 5992--tw-brightness: ; 5993--tw-contrast: ; 5994--tw-grayscale: ; 5995--tw-hue-rotate: ; 5996--tw-invert: ; 5997--tw-saturate: ; 5998--tw-sepia: ; 5999--tw-drop-shadow: ; 6000--tw-backdrop-blur: ; 6001--tw-backdrop-brightness: ; 6002--tw-backdrop-contrast: ; 6003--tw-backdrop-grayscale: ; 6004--tw-backdrop-hue-rotate: ; 6005--tw-backdrop-invert: ; 6006--tw-backdrop-opacity: ; 6007--tw-backdrop-saturate: ; 6008--tw-backdrop-sepia: 6009} 6010.cmsb2130-mb-4 { 6011margin-bottom: 1rem 6012} 6013.cmsb2130-max-w-\[360px\] { 6014max-width: 360px 6015} 6016.cmsb2130-basis-\[120px\] { 6017flex-basis: 120px 6018} 6019.cmsb2130-basis-\[220px\] { 6020flex-basis: 220px 6021} 6022.cmsb2130-\!flex-row { 6023flex-direction: row !important 6024}
6025.cmsb2130-bg-primary-200 { 6026--tw-bg-opacity: 1; 6027background-color: rgb(238 238 238 / var(--tw-bg-opacity)) 6028} 6029.cmsb2130-\!p-4 { 6030padding: 1rem !important 6031} 6032.cmsb2130-px-6 { 6033padding-left: 1.5rem; 6034padding-right: 1.5rem 6035} 6036.cmsb2130-py-3 { 6037padding-top: 0.75rem; 6038padding-bottom: 0.75rem 6039} 6040.cmsb2130-py-3\.5 { 6041padding-top: 0.875rem; 6042padding-bottom: 0.875rem 6043} 6044.cmsb2130-font-tertiary { 6045font-family: CrimsonPro Italic, Helvetica Neue, Arial, sans-serif 6046} 6047.cmsb2130-leading-5 { 6048line-height: 22px 6049} 6050@media (min-width: 768px) { 6051.cmsb2130-md\:mx-4 { 6052margin-left: 1rem; 6053margin-right: 1rem 6054} 6055.cmsb2130-md\:mb-0 { 6056margin-bottom: 0px 6057} 6058.cmsb2130-md\:\!px-20 { 6059padding-left: 5rem !important; 6060padding-right: 5rem !important 6061} 6062.cmsb2130-md\:\!py-8 { 6063padding-top: 2rem !important; 6064padding-bottom: 2rem !important 6065} 6066} 6067@media (min-width: 1280px) { 6068.cmsb2130-xl\:mx-\[30px\] { 6069margin-left: 30px; 6070margin-right: 30px 6071} 6072}</style> 6073<style>#html-body [data-pb-style=CGPTRNH],#html-body [data-pb-style=PQ131LI]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=PQ131LI]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#eee;margin:0;padding:0}#html-body [data-pb-style=CGPTRNH]{align-self:stretch}#html-body [data-pb-style=P86YKEM]{display:flex;width:100%}#html-body [data-pb-style=BWPGTIG],#html-body [data-pb-style=L4ORY25],#html-body [data-pb-style=YMHB8MA]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;align-self:stretch}#html-body [data-pb-style=XUTXFT9]{border-style:none}#html-body [data-pb-style=OTG7YX3]{max-width:100%;height:auto}#html-body [data-pb-style=LPDFIAV]{border-style:none}#html-body [data-pb-style=O06PF7B]{max-width:100%;height:auto}#html-body [data-pb-style=V0VKPPW]{border-style:none}#html-body [data-pb-style=YA0E1A2]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=LPDFIAV],#html-body [data-pb-style=V0VKPPW],#html-body [data-pb-style=XUTXFT9]{border-style:none} }</style><div class="cmsb2130-bg-primary-200 cmsb2130-!p-4 cmsb2130-md:!py-8 cmsb2130-md:!px-20" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="PQ131LI"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="CGPTRNH"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="P86YKEM"><div class="pagebuilder-column cmsb2130-mb-4 cmsb2130-md:mb-0 cmsb2130-md:mx-4 cmsb2130-xl:mx-[30px] cmsb2130-!flex-row cmsb2130-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="L4ORY25"><figure class="cmsb2130-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="XUTXFT9"><a href="https://www.lafuma-moebel.de/blog/unsere-leitfaeden-und-tipps-leitfaden-tisch-auswaehlen.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc1-article.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc1-article.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="OTG7YX3"></source></picture></a></figure><div class="cmsb2130-py-3.5 cmsb2130-px-6 cmsb2130-font-tertiary cmsb2130-leading-5 cmsb2130-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Tipps<br><br></em></span></p> 6074<p id="S8VW5QJ">Welcher Gartentisch ist der beste?</p></div></div><div class="pagebuilder-column cmsb2130-mb-4 cmsb2130-md:mb-0 cmsb2130-md:mx-4 cmsb2130-xl:mx-[30px] cmsb2130-!flex-row cmsb2130-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="YMHB8MA"><figure class="cmsb2130-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="LPDFIAV"><a href="
6074https://www.lafuma-moebel.de/blog/unsere-leitfaeden-und-tipps-leitfaden-wie-gross-muss-ein-tisch-sein.html" target="_blank" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc2-article.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc2-article.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="O06PF7B"></source></picture></a></figure><div class="cmsb2130-py-3.5 cmsb2130-px-6 cmsb2130-font-tertiary cmsb2130-leading-5 cmsb2130-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Die richtige Größe<br><br></em></span></p> 6075<p id="S8VW5QJ">Wie groß muss ein Gartentisch sein?</p></div></div><div class="pagebuilder-column cmsb2130-md:mx-4 cmsb2130-xl:mx-[30px] cmsb2130-!flex-row cmsb2130-max-w-[360px]" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="BWPGTIG"><figure class="cmsb2130-basis-[120px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="V0VKPPW"><a href="https://www.lafuma-moebel.de/blog/unsere-leitfaeden-und-tipps-welches-material-fuer-tische.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc3-article.jpg" alt="" title="" loading="lazy" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/cms-menu-bottom-tables-bloc3-article.jpg" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="YA0E1A2"></source></picture></a></figure><div class="cmsb2130-py-3.5 cmsb2130-px-6 cmsb2130-font-tertiary cmsb2130-leading-5 cmsb2130-basis-[220px]" data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: CrimsonPro-Italic; font-size: 18px;"><em>Hilfe bei der Auswahl<br><br></em></span></p> 6076<p id="S8VW5QJ">Welches Material für den Gartentisch?</p></div></div></div></div></div></div>" 6077 data-display-mode="" 6078 @click="handleCategoryIconClick(event, 'category-node-93')" 6079 :class="hoverLevel1ActiveId === 'category-node-93' ? 'category-active' : ''"> 6080 6081 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle.html" 6082 title="Tische und Stühle" 6083 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 6084 :class="hoverLevel1ActiveId === 'category-node-93' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 6085 @click.prevent 6086 > 6087 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/tables-et-chaises.svg" 6088 alt="" 6089 width="24" 6090 height="24" 6091 loading="lazy" /> 6092
6093 <span class="text-base"> 6094 Tische und Stühle </span> 6095 </a> 6096 6097 6098 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 6099 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 6100 6101 6102 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6103 6104 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische.html" title="Gartentische" 6105 class="py-2 block" 6106 > 6107 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6108 Gartentische </span> 6109 </a> 6110 6111 6112 <div> 6113 6114 6115 <div class="category-default basis-full"> 6116 6117 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/essgruppen-tisch-und-stuehle.html" title="Essgruppen (Tisch und Stühle)" 6118 class="py-2 block" 6119 > 6120 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6121 Essgruppen (Tisch und Stühle) </span> 6122 </a> 6123 6124 6125 </div> 6126 6127 <div class="category-default basis-full"> 6128 6129 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/quadratische-tische.html" title="Quadratische Tische" 6130 class="py-2 block" 6131 > 6132 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6133 Quadratische Tische </span> 6134 </a> 6135 6136 6137 </div> 6138 6139 <div class="category-default basis-full"> 6140 6141 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/rechteckige-tische.html" title="Rechteckige Tische" 6142 class="py-2 block" 6143 > 6144 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6145 Rechteckige Tische </span> 6146 </a> 6147 6148 6149 6150 6151 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/ausziehbare-tische.html" title="Ausziehbare Tische" 6152 class="py-2 block" 6153 > 6154 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6155 Ausziehbare Tische </span> 6156 </a> 6157 6158 6159 6160 6161 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/klappbare-tische.html" title="Klappbare Tische" 6162 class="py-2 block" 6163 > 6164 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6165 Klappbare Tische </span> 6166 </a> 6167 6168 6169 6170 6171 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartentische/niedrige-tische.html" title="Niedrige Tische" 6172 class="py-2 block" 6173 > 6174 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6175 Niedrige Tische </span> 6176 </a> 6177 6178 6179 6180 6181 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/tische.html" title="Professioneller Gebrauch" 6182 class="py-2 block" 6183 >
6184 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6185 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 6186 PRO </span> 6187 </span> 6188 </a> 6189 6190 6191 </div> 6192 </div> 6193 6194 </div> 6195 6196 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6197 6198 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle.html" title="Gartenstühle" 6199 class="py-2 block" 6200 > 6201 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6202 Gartenstühle </span> 6203 </a> 6204 6205 6206 <div> 6207 6208 6209 <div class="category-default basis-full"> 6210 6211 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/gartenstuehle.html" title="Gartenstühle" 6212 class="py-2 block" 6213 > 6214 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6215 Gartenstühle </span> 6216 </a> 6217 6218 6219 </div> 6220 6221 <div class="category-default basis-full"> 6222 6223 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/klappbare-stuehle.html" title="Klappbare Stühle" 6224 class="py-2 block" 6225 > 6226 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6227 Klappbare Stühle </span> 6228 </a> 6229 6230 6231 </div> 6232 6233 <div class="category-default basis-full"> 6234 6235 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/hochlehner.html" title="Hochlehner" 6236 class="py-2 block" 6237 > 6238 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6239 Hochlehner </span> 6240 </a> 6241 6242 6243 6244 6245 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/gartenstuehle/mittelhohe-stuehle.html" title="Mittelhohe Stühle" 6246 class="py-2 block" 6247 > 6248 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6249 Mittelhohe Stühle </span> 6250 </a> 6251 6252 6253 6254 6255 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/stuehle-und-sessel.html" title="Professioneller Gebrauch" 6256 class="py-2 block" 6257 > 6258 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6259 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 6260 PRO </span> 6261 </span> 6262 </a> 6263 6264 6265 </div> 6266 </div> 6267 6268 </div> 6269 6270 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6271 6272 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische
6272-und-stuehle/pflege-langlebigkeit.html" title="Pflege - Langlebigkeit" 6273 class="py-2 block" 6274 > 6275 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6276 Pflege - Langlebigkeit </span> 6277 </a> 6278 6279 6280 <div> 6281 6282 6283 <div class="category-default basis-full"> 6284 6285 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/tische-und-stuehle/pflege-langlebigkeit/pflegeprodukte.html" title="Pflegeprodukte" 6286 class="py-2 block" 6287 > 6288 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6289 Pflegeprodukte </span> 6290 </a> 6291 6292 6293 </div> 6294 6295 <div class="category-default basis-full"> 6296 6297 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-stuehle-und-sessel.html" title="Ersatzbezüge Stühle und Sessel" 6298 class="py-2 block" 6299 > 6300 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6301 Ersatzbezüge Stühle und Sessel </span> 6302 </a> 6303 6304 6305 </div> 6306 6307 <div class="category-default basis-full"> 6308 6309 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-stuehle-und-sessel.html" title="Ersatzteile Stühle und Sessel" 6310 class="py-2 block" 6311 > 6312 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6313 Ersatzteile Stühle und Sessel </span> 6314 </a> 6315 6316 6317 6318 6319 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-tische.html" title="Ersatzteile Tische" 6320 class="py-2 block" 6321 > 6322 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6323 Ersatzteile Tische </span> 6324 </a> 6325 6326 6327 6328 6329 <a href="/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" title="Schutzhüllen" 6330 class="py-2 block" 6331 > 6332 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6333 Schutzhüllen </span> 6334 </a> 6335 6336 6337 </div> 6338 </div> 6339 6340 </div> 6341 </div> 6342 </div> 6343 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 6344 id="category-node-141" 6345 data-cms-content="" 6346 data-display-mode="" 6347 @click="handleCategoryIconClick(event, 'category-node-141')" 6348 :class="hoverLevel1ActiveId === 'category-node-141' ? 'category-active' : ''"> 6349 6350 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge.html" 6351 title="Gartenlounge" 6352 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 6353 :class="hoverLevel1ActiveId === 'category-node-14
63531' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 6354 @click.prevent 6355 > 6356 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/salons-de-jardin.svg" 6357 alt="" 6358 width="24" 6359 height="24" 6360 loading="lazy" /> 6361 6362 <span class="text-base"> 6363 Gartenlounge </span> 6364 </a> 6365 6366 6367 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 6368 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 6369 6370 6371 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6372 6373 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/gartenlounge.html" title="Gartenlounge" 6374 class="py-2 block" 6375 > 6376 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6377 Gartenlounge </span> 6378 </a> 6379 6380 6381 <div> 6382 6383 6384 <div class="category-default basis-full"> 6385 6386 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/gartenlounge/moebel-fuer-niedrige-gartenlounge.html" title="Möbel für niedrige Gartenlounge" 6387 class="py-2 block" 6388 > 6389 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6390 Möbel für niedrige Gartenlounge </span> 6391 </a> 6392 6393 6394 </div> 6395 6396 <div class="category-default basis-full"> 6397 6398 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/gartenlounge/designstuehle-und-sessel.html" title="Designstühle und Gartensessel" 6399 class="py-2 block" 6400 > 6401 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6402 Designstühle und Gartensessel </span> 6403 </a> 6404 6405 6406 </div> 6407 6408 <div class="category-default basis-full"> 6409 6410 <a href="/alle-unsere-produkte/liegestuehle-und-sonnenliegen/liegestuehle-und-sonnenliegen/butterfly-chairs-pop-up.html" title="Butterfly Chairs (Pop Up)" 6411 class="py-2 block" 6412 > 6413 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6414 Butterfly Chairs (Pop Up) </span> 6415 </a> 6416 6417 6418 6419 6420 <a href="/alle-unsere-produkte/tische-und-stuehle/gartentische/niedrige-tische.html" title="Niedrige Tische" 6421 class="py-2 block" 6422 > 6423 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6424 Niedrige Tische </span> 6425 </a> 6426 6427 6428 6429 6430 <a href="/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel.html" title="Professioneller Gebrauch" 6431 class="py-2 block" 6432 >
6433 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6434 Professioneller Gebrauch <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 6435 PRO </span> 6436 </span> 6437 </a> 6438 6439 6440 </div> 6441 </div> 6442 6443 </div> 6444 6445 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6446 6447 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/gartenlounge/pflege-langlebigkeit.html" title="Pflege - Langlebigkeit" 6448 class="py-2 block" 6449 > 6450 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6451 Pflege - Langlebigkeit </span> 6452 </a> 6453 6454 6455 <div> 6456 6457 6458 <div class="category-default basis-full"> 6459 6460 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" title="Ersatzbezüge Pop Up" 6461 class="py-2 block" 6462 > 6463 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6464 Ersatzbezüge Pop Up </span> 6465 </a> 6466 6467 6468 </div> 6469 6470 <div class="category-default basis-full"> 6471 6472 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-niedrige-loungemoebel.html" title="Ersatzbezüge niedrige Loungemöbel" 6473 class="py-2 block" 6474 > 6475 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6476 Ersatzbezüge niedrige Loungemöbel </span> 6477 </a> 6478 6479 6480 </div> 6481 6482 <div class="category-default basis-full"> 6483 6484 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" title="Ersatzteile" 6485 class="py-2 block" 6486 > 6487 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6488 Ersatzteile </span> 6489 </a> 6490 6491 6492 6493 6494 <a href="/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" title="Pflegeprodukte" 6495 class="py-2 block" 6496 > 6497 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6498 Pflegeprodukte </span> 6499 </a> 6500 6501 6502 </div> 6503 </div> 6504 6505 </div> 6506 </div> 6507 </div> 6508 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 6509 id="category-node-156" 6510 data-cms-content="" 6511 data-display-mode="" 6512 @click="handleCategoryIconClick(event, 'category-node-156')" 6513 :class="hoverLevel1ActiveId === 'category-node-156' ? 'category-active' : ''"> 6514 6515 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand.html" 6516 title="Camping und Strand" 6517 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 6518 :class="hoverLevel1ActiveId === 'category-node-156' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 6519 @click.prevent 6520 > 6521 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/mobilier-camping-et-plage.svg" 6522 alt="" 6523 width="24" 6524 height="24" 6525 loading="lazy" /> 6526
6527 <span class="text-base"> 6528 Camping und Strand </span> 6529 </a> 6530 6531 6532 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 6533 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 6534 6535 6536 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6537 6538 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs.html" title="Möbel für unterwegs" 6539 class="py-2 block" 6540 > 6541 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6542 Möbel für unterwegs </span> 6543 </a> 6544 6545 6546 <div> 6547 6548 6549 <div class="category-default basis-full"> 6550 6551 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/klappbare-stuehle.html" title="Klappbare Stühle" 6552 class="py-2 block" 6553 > 6554 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6555 Klappbare Stühle </span> 6556 </a> 6557 6558 6559 </div> 6560 6561 <div class="category-default basis-full"> 6562 6563 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/niedrige-klappstuehle.html" title="Niedrige Klappstühle" 6564 class="py-2 block" 6565 > 6566 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6567 Niedrige Klappstühle </span> 6568 </a> 6569 6570 6571 </div> 6572 6573 <div class="category-default basis-full"> 6574 6575 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/butterfly-chairs-pop-up.html" title="Butterfly Chairs (Pop Up)" 6576 class="py-2 block" 6577 > 6578 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6579 Butterfly Chairs (Pop Up) </span> 6580 </a> 6581 6582 6583 6584 6585 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/campinghocker.html" title="Campinghocker" 6586 class="py-2 block" 6587 > 6588 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6589 Campinghocker </span> 6590 </a> 6591 6592 6593 6594 6595 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/campingsessel.html" title="Campingsessel" 6596 class="py-2 block" 6597 > 6598 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6599 Campingsessel </span> 6600 </a> 6601 6602 6603 6604 6605 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/klappbare-strandstuehle.html" title="Klappbare Strandstühle" 6606 class="py-2 block" 6607 >
6608 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6609 Klappbare Strandstühle </span> 6610 </a> 6611 6612 6613 6614 6615 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/klappbare-sonnenliegen.html" title="Klappbare Sonnenliegen" 6616 class="py-2 block" 6617 > 6618 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6619 Klappbare Sonnenliegen </span> 6620 </a> 6621 6622 6623 6624 6625 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/moebel-fuer-unterwegs/campingtische.html" title="Campingtische" 6626 class="py-2 block" 6627 > 6628 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6629 Campingtische </span> 6630 </a> 6631 6632 6633 </div> 6634 </div> 6635 6636 </div> 6637 6638 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6639 6640 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/camping-und-strand/pflege-langlebigkeit.html" title="Pflege - Langlebigkeit" 6641 class="py-2 block" 6642 > 6643 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6644 Pflege - Langlebigkeit </span> 6645 </a> 6646 6647 6648 <div> 6649 6650 6651 <div class="category-default basis-full"> 6652 6653 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" title="Ersatzbezüge Pop Up" 6654 class="py-2 block" 6655 > 6656 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6657 Ersatzbezüge Pop Up </span> 6658 </a> 6659 6660 6661 </div> 6662 6663 <div class="category-default basis-full"> 6664 6665 <a href="/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-stuehle-und-sessel.html" title="Ersatzbezüge Stühle und Sessel" 6666 class="py-2 block" 6667 > 6668 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6669 Ersatzbezüge Stühle und Sessel </span> 6670 </a> 6671 6672 6673 </div> 6674 6675 <div class="category-default basis-full"> 6676 6677 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" title="Ersatzteile Pop Up" 6678 class="py-2 block" 6679 > 6680 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6681 Ersatzteile Pop Up </span> 6682 </a> 6683 6684 6685 6686 6687 <a href="/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-stuehle-und-sessel.html" title="Ersatzteile Stühle und Sessel" 6688 class="py-2 block" 6689 > 6690 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6691 Ersatzteile Stühle und Sessel </span> 6692 </a> 6693 6694 6695 6696 6697 <a href="/alle-unsere-produkte/zero-gravity-relaxliegen/pflege-langlebigkeit/pflegeprodukte.html" title="Pflegeprodukte" 6698 class="py-2 block" 6699 >
6700 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6701 Pflegeprodukte </span> 6702 </a> 6703 6704 6705 </div> 6706 </div> 6707 6708 </div> 6709 </div> 6710 </div> 6711 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 6712 id="category-node-189" 6713 data-cms-content="" 6714 data-display-mode="" 6715 @click="handleCategoryIconClick(event, 'category-node-189')" 6716 :class="hoverLevel1ActiveId === 'category-node-189' ? 'category-active' : ''"> 6717 6718 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires.html" 6719 title="Accessoires" 6720 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 6721 :class="hoverLevel1ActiveId === 'category-node-189' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 6722 @click.prevent 6723 > 6724 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/accessoires.svg" 6725 alt="" 6726 width="24" 6727 height="24" 6728 loading="lazy" /> 6729 6730 <span class="text-base"> 6731 Accessoires </span> 6732 </a> 6733 6734 6735 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 6736 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 6737 6738 6739 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6740 6741 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko.html" title="Einrichtung und Deko" 6742 class="py-2 block" 6743 > 6744 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6745 Einrichtung und Deko </span> 6746 </a> 6747 6748 6749 <div> 6750 6751 6752 <div class="category-default basis-full"> 6753 6754 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/outdoor-teppiche.html" title="Outdoor-Teppiche" 6755 class="py-2 block" 6756 > 6757 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6758 Outdoor-Teppiche </span> 6759 </a> 6760 6761 6762 </div> 6763 6764 <div class="category-default basis-full"> 6765 6766 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/kissen.html" title="Kissen" 6767 class="py-2 block" 6768 > 6769 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6770 Kissen </span> 6771 </a> 6772 6773 6774 </div> 6775 6776 <div class="category-default basis-full"> 6777 6778 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/tischsets.html" title="Tischsets" 6779 class="py-2 block" 6780 >
6781 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6782 Tischsets </span> 6783 </a> 6784 6785 6786 6787 6788 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/tabletts.html" title="Tabletts" 6789 class="py-2 block" 6790 > 6791 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6792 Tabletts </span> 6793 </a> 6794 6795 6796 6797 6798 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/einrichtung-und-deko/recycelte-untersetzer.html" title="Recycelte Untersetzer" 6799 class="py-2 block" 6800 > 6801 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6802 Recycelte Untersetzer </span> 6803 </a> 6804 6805 6806 </div> 6807 </div> 6808 6809 </div> 6810 6811 <div class="category-default basis-1/3 2xl:basis-[270px]"> 6812 6813 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch.html" title="Bequem und praktisch" 6814 class="py-2 block" 6815 > 6816 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 6817 Bequem und praktisch </span> 6818 </a> 6819 6820 6821 <div> 6822 6823 6824 <div class="category-default basis-full"> 6825 6826 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/recycelte-getraenkehalter.html" title="Recycelte Getränkehalter" 6827 class="py-2 block" 6828 > 6829 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6830 Recycelte Getränkehalter </span> 6831 </a> 6832 6833 6834 </div> 6835 6836 <div class="category-default basis-full"> 6837 6838 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/sonnenschirm.html" title="Sonnenschirm" 6839 class="py-2 block" 6840 > 6841 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6842 Sonnenschirm </span> 6843 </a> 6844 6845 6846 </div> 6847 6848 <div class="category-default basis-full"> 6849 6850 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/schutzhuellen-transporttaschen.html" title="Schutzhüllen / Transporttaschen" 6851 class="py-2 block" 6852 > 6853 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6854 Schutzhüllen / Transporttaschen </span> 6855 </a> 6856 6857 6858 6859 6860 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/frotteeauflagen.html" title="Frotteeauflagen" 6861 class="py-2 block" 6862 > 6863 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6864 Frotteeauflagen </span> 6865 </a> 6866 6867 6868 6869 6870 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/decken.html" title="Decken" 6871 class="py-2 block" 6872 >
6873 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6874 Decken </span> 6875 </a> 6876 6877 6878 6879 6880 <a href="https://www.lafuma-moebel.de/alle-unsere-produkte/accessoires/bequem-und-praktisch/gummischnuere.html" title="Gummischnüre" 6881 class="py-2 block" 6882 > 6883 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 6884 Gummischnüre </span> 6885 </a> 6886 6887 6888 </div> 6889 </div> 6890 6891 </div> 6892 </div> 6893 </div> 6894 </div> 6895 6896<div class="menu-bottom-cms hidden"></div> 6897
6898<script> 6899 'use strict'; 6900 6901 const initMenuLevel1_6ac6f931ab9d7 = () => { 6902 return { 6903 hoverLevel1ActiveId: 0, 6904 6905 init: function() { 6906 var $categoryIconItem = this.$el.querySelector('.category-icon-item'), 6907 menuDisplayMode = $categoryIconItem && $categoryIconItem.getAttribute('data-display-mode'), 6908 menuCmsContent = $categoryIconItem && $categoryIconItem.getAttribute('data-cms-content'); 6909 6910 this.hoverLevel1ActiveId = $categoryIconItem.getAttribute('id'); 6911 this.openCurrentMenu($categoryIconItem, $categoryIconItem.getAttribute('id')); 6912 6913 if (this.$el.nextElementSibling.classList.contains('menu-bottom-cms')) { 6914 this.$el.nextElementSibling.innerHTML = ""; 6915 this.handleMenuCmsBlock(this.$el.nextElementSibling, menuDisplayMode, menuCmsContent); 6916 } 6917 6918 this.handleMenuHeight($categoryIconItem); 6919 }, 6920 6921 handleCategoryIconClick: function (e, index) { 6922 var $categoryIcon = this.$el.closest('.category-icon'), 6923 $menuBottomCms = $categoryIcon.nextElementSibling, 6924 menuDisplayMode = this.$el.getAttribute('data-display-mode'), 6925 menuCmsContent = this.$el.getAttribute('data-cms-content'); 6926 6927 this.hoverLevel1ActiveId = index; 6928 6929 this.closeAllMenu($categoryIcon); 6930 this.openCurrentMenu(this.$el, index); 6931 6932 if ($menuBottomCms.classList.contains('menu-bottom-cms')) { 6933 $menuBottomCms.innerHTML = ""; 6934 this.handleMenuCmsBlock($menuBottomCms, menuDisplayMode, menuCmsContent); 6935 } 6936 6937 this.handleMenuHeight(this.$el); 6938 }, 6939 6940 handleMenuCmsBlock: function ($menuBottomCms, menuDisplayMode, menuCmsContent) { 6941 $menuBottomCms.innerHTML = menuCmsContent; 6942 6943 if (menuDisplayMode !== 'category-square-image') { 6944 $menuBottomCms.style.display = 'block' 6945 } else { 6946 $menuBottomCms.style.display = ''; 6947 } 6948 }, 6949 6950 handleMenuHeight: function ($element) { 6951 var $categoryIcon = $element.closest('.category-icon'), 6952 $content = $element.querySelector('.content-category-icon'); 6953 6954 $categoryIcon.style.height = ''; 6955 6956 if ($content.offsetHeight > $categoryIcon.offsetHeight) { 6957 $categoryIcon.style.height = $content.offsetHeight + 'px'; 6958 } 6959 }, 6960 6961 closeAllMenu: function ($categoryIcon) { 6962 var $allContents = $categoryIcon.getElementsByClassName('content-category-icon'); 6963 6964 for (var i = 0; i < $allContents.length; i++) { 6965 $allContents[i].style.display = 'none'; 6966 } 6967 }, 6968 6969 openCurrentMenu : function ($element, index) { 6970 var $content = $element.querySelector('.content-category-icon'); 6971 6972 if ($element.getAttribute('id') === index) { 6973 $content.style.display = 'flex'; 6974 } 6975 } 6976 } 6977 } 6978</script>
6978 6979 </div> 6980 <div class="background-opacity full-viewport-less-scrollbar absolute z-10 left-0 hidden h-screen bg-black/30" 6981 @click="hoverPanelActiveId = 0; closeAllLevel0Menu()" 6982 > 6983 </div> 6984 </div> 6985 <div class="level-0" 6986 id="category-node-552"> 6987 <span class="flex items-center block text-md bg-opacity-95 mb-4 text-center"> 6988 <a 6989 class="link-level0 w-full text-base flex gap-2 items-center level-0 tracking-wide no-underline px-3" 6990 style="color: red" 6991 @click="handleLevel0Click(event, 'category-node-552', '')" 6992 :class="hoverPanelActiveId === 'category-node-552' ? 'font-medium text-black border-b-2 border-black pt-2.5 pb-2 tracking-normal' : 'font-normal py-2.5'" 6993 href="https://www.lafuma-moebel.de/top-deals.html" 6994 title="KOMFORTMOMENTE" 6995 @menu-click.window="handleLevel0Click(event, 0, true)" 6996 > 6997 KOMFORTMOMENTE </a> 6998 </span> 6999 </div> 7000 <div class="level-0" 7001 id="category-node-291"> 7002 <span class="flex items-center block text-md bg-opacity-95 mb-4 text-center"> 7003 <a 7004 class="link-level0 w-full text-base flex gap-2 items-center level-0 tracking-wide no-underline px-3" 7005 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 7006 @click="handleLevel0Click(event, 'category-node-291', '1')" 7007 :class="hoverPanelActiveId === 'category-node-291' ? 'font-medium text-black border-b-2 border-black pt-2.5 pb-2 tracking-normal' : 'font-normal py-2.5'" 7008 href="https://www.lafuma-moebel.de/professioneller-gebrauch.html" 7009 title="Professioneller Gebrauch" 7010 @menu-click.window="handleLevel0Click(event, 0, true)" 7011 @click.prevent="" 7012 > 7013 Professioneller Gebrauch </a> 7014 </span> 7015 <div class="content-level0 absolute full-viewport-less-scrollbar z-20 left-0 hidden border-y border-primary-200 border-opacity-90 bg-white overflow-auto max-h-[calc(100vh-148px)]"> 7016 7017<div x-data="initMenuLevel1_6ac6cef97ef89()" 7018 x-init="init()" 7019 class="category-icon z-10 bg-white relative max-w-container m-auto"> 7020 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 7021 id="category-node-294" 7022 data-cms-content="" 7023 data-display-mode="" 7024 @click="handleCategoryIconClick(event, 'category-node-294')" 7025 :class="hoverLevel1ActiveId === 'category-node-294' ? 'category-active' : ''"> 7026 7027 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants.html" 7028 title="Hotels, Cafés & Restaurants" 7029 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 7030 :class="hoverLevel1ActiveId === 'category-node-294' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 7031 @click.prevent 7032 > 7033 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/cafe-hotels-restaurants.svg" 7034 alt="" 7035 width="24" 7036 height="24" 7037 loading="lazy" /> 7038
7039 <span class="text-base"> 7040 Hotels, Cafés & Restaurants </span> 7041 </a> 7042 7043 7044 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 7045 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 7046 7047 7048 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7049 7050 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants.html" title="Terrassenmöbel für Restaurants" 7051 class="py-2 block" 7052 > 7053 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7054 Terrassenmöbel für Restaurants <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 7055 PRO </span> 7056 </span> 7057 </a> 7058 7059 7060 <div> 7061 7062 7063 <div class="category-default basis-full"> 7064 7065 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/tische.html" title="Tische" 7066 class="py-2 block" 7067 > 7068 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7069 Tische </span> 7070 </a> 7071 7072 7073 </div> 7074 7075 <div class="category-default basis-full"> 7076 7077 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/halbhohe-tische.html" title="Halbhohe Tische" 7078 class="py-2 block" 7079 > 7080 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7081 Halbhohe Tische </span> 7082 </a> 7083 7084 7085 </div> 7086 7087 <div class="category-default basis-full"> 7088 7089 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/hohe-tische.html" title="Hohe Tische      " 7090 class="py-2 block" 7091 > 7092 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7093 Hohe Tische </span> 7094 </a> 7095 7096 7097 7098 7099 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/stuehle-und-sessel.html" title="Stühle und Sessel" 7100 class="py-2 block" 7101 > 7102 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7103 Stühle und Sessel </span> 7104 </a> 7105 7106 7107 7108 7109 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/halbhohe-sessel.html" title="Halbhohe Sessel" 7110 class="py-2 block" 7111 > 7112 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7113 Halbhohe Sessel </span> 7114 </a> 7115 7116 7117 7118 7119 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/terrassenmoebel-fuer-restaurants/hohe-sessel.html" title="Hohe Sessel" 7120 class="py-2 block" 7121 >
7122 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7123 Hohe Sessel </span> 7124 </a> 7125 7126 7127 </div> 7128 </div> 7129 7130 </div> 7131 7132 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7133 7134 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel.html" title="Niedrige Loungemöbel" 7135 class="py-2 block" 7136 > 7137 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7138 Niedrige Loungemöbel <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 7139 PRO </span> 7140 </span> 7141 </a> 7142 7143 7144 <div> 7145 7146 7147 <div class="category-default basis-full"> 7148 7149 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/liegestuehle.html" title="Liegestühle        " 7150 class="py-2 block" 7151 > 7152 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7153 Liegestühle </span> 7154 </a> 7155 7156 7157 </div> 7158 7159 <div class="category-default basis-full"> 7160 7161 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/niedrige-sessel.html" title="Niedrige Sessel" 7162 class="py-2 block" 7163 > 7164 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7165 Niedrige Sessel </span> 7166 </a> 7167 7168 7169 </div> 7170 7171 <div class="category-default basis-full"> 7172 7173 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/niedrige-loungemoebel/baenke.html" title="Bänke" 7174 class="py-2 block" 7175 > 7176 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7177 Bänke </span> 7178 </a> 7179 7180 7181 </div> 7182 </div> 7183 7184 </div> 7185 7186 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7187 7188 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/komponenten-fuer-tische.html" title="Komponenten für Tische" 7189 class="py-2 block" 7190 > 7191 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7192 Komponenten für Tische <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 7193 PRO </span> 7194 </span> 7195 </a> 7196 7197 7198 <div> 7199 7200 7201 <div class="category-default basis-full"> 7202 7203 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/komponenten-fuer-tische/tischplatten.html" title="Tischplatten" 7204 class="py-2 block" 7205 >
7206 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7207 Tischplatten </span> 7208 </a> 7209 7210 7211 </div> 7212 7213 <div class="category-default basis-full"> 7214 7215 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/komponenten-fuer-tische/tischbeine.html" title="Tischbeine" 7216 class="py-2 block" 7217 > 7218 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7219 Tischbeine </span> 7220 </a> 7221 7222 7223 </div> 7224 </div> 7225 7226 7227 7228 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/pflege-und-langlebigkeit.html" title="Pflege und Langlebigkeit" 7229 class="py-2 block" 7230 > 7231 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7232 Pflege und Langlebigkeit <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 7233 PRO </span> 7234 </span> 7235 </a> 7236 7237 7238 <div> 7239 7240 7241 <div class="category-default basis-full"> 7242 7243 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/pflege-und-langlebigkeit/ersatzbezuege.html" title="Ersatzbezüge" 7244 class="py-2 block" 7245 > 7246 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7247 Ersatzbezüge </span> 7248 </a> 7249 7250 7251 </div> 7252 7253 <div class="category-default basis-full"> 7254 7255 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/hotels-cafes-restaurants/pflege-und-langlebigkeit/accessoires.html" title="Accessoires" 7256 class="py-2 block" 7257 > 7258 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7259 Accessoires </span> 7260 </a> 7261 7262 7263 </div> 7264 </div> 7265 7266 </div> 7267 </div> 7268 </div> 7269 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 7270 id="category-node-354" 7271 data-cms-content="" 7272 data-display-mode="" 7273 @click="handleCategoryIconClick(event, 'category-node-354')" 7274 :class="hoverLevel1ActiveId === 'category-node-354' ? 'category-active' : ''"> 7275 7276 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden.html" 7277 title="Gesundheit und Wohlbefinden" 7278 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 7279 :class="hoverLevel1ActiveId === 'category-node-354' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 7280 @click.prevent 7281 > 7282 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/sante-et-bien-etre.svg" 7283 alt="" 7284 width="24" 7285 height="24" 7286 loading="lazy" /> 7287
7288 <span class="text-base"> 7289 Gesundheit und Wohlbefinden </span> 7290 </a> 7291 7292 7293 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 7294 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 7295 7296 7297 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7298 7299 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung.html" title="Erholung und Entspannung" 7300 class="py-2 block" 7301 > 7302 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7303 Erholung und Entspannung <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 7304 PRO </span> 7305 </span> 7306 </a> 7307 7308 7309 <div> 7310 7311 7312 <div class="category-default basis-full"> 7313 7314 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/relaxliege-fuer-krankenhaus.html" title="Relaxliege für Krankenhaus" 7315 class="py-2 block" 7316 > 7317 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7318 Relaxliege für Krankenhaus </span> 7319 </a> 7320 7321 7322 </div> 7323 7324 <div class="category-default basis-full"> 7325 7326 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/reflexologie-und-gesundheitsliege.html" title="Reflexologie- und Gesundheitsliege   " 7327 class="py-2 block" 7328 > 7329 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7330 Reflexologie- und Gesundheitsliege </span> 7331 </a> 7332 7333 7334 </div> 7335 7336 <div class="category-default basis-full"> 7337 7338 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/pausensessel.html" title="Pausensessel         " 7339 class="py-2 block" 7340 > 7341 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7342 Pausensessel </span> 7343 </a> 7344 7345 7346 7347 7348 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/erholung-und-entspannung/liege-fuer-erholung-nach-sport.html" title="Liege für Erholungnach Sport" 7349 class="py-2 block" 7350 > 7351 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7352 Liege für Erholungnach Sport </span> 7353 </a> 7354 7355 7356 </div> 7357 </div> 7358 7359 </div> 7360 7361 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7362 7363 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/pflege-und-langlebigkeit.html" title="Pflege und Langlebigkeit" 7364 class="py-2 block" 7365 >
7366 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7367 Pflege und Langlebigkeit <span class="label bg-black text-white py-1 px-2 rounded-sm ml-1 text-xxs align-baseline whitespace-nowrap"> 7368 PRO </span> 7369 </span> 7370 </a> 7371 7372 7373 <div> 7374 7375 7376 <div class="category-default basis-full"> 7377 7378 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/pflege-und-langlebigkeit/ersatzbezuege.html" title="Ersatzbezüge" 7379 class="py-2 block" 7380 > 7381 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7382 Ersatzbezüge </span> 7383 </a> 7384 7385 7386 </div> 7387 7388 <div class="category-default basis-full"> 7389 7390 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/gesundheit-und-wohlbefinden/pflege-und-langlebigkeit/ersatzteile.html" title="Ersatzteile" 7391 class="py-2 block" 7392 > 7393 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7394 Ersatzteile </span> 7395 </a> 7396 7397 7398 </div> 7399 </div> 7400 7401 </div> 7402 </div> 7403 </div> 7404 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 7405 id="category-node-384" 7406 data-cms-content="" 7407 data-display-mode="" 7408 @click="handleCategoryIconClick(event, 'category-node-384')" 7409 :class="hoverLevel1ActiveId === 'category-node-384' ? 'category-active' : ''"> 7410 7411 <a href="https://www.lafuma-moebel.de/professioneller-gebrauch/service-und-unterstuetzung.html" 7412 title="Service und Unterstützung" 7413 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 7414 :class="hoverLevel1ActiveId === 'category-node-384' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 7415 @click.prevent 7416 > 7417 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/services-et-accompagnement.svg" 7418 alt="" 7419 width="24" 7420 height="24" 7421 loading="lazy" /> 7422 7423 <span class="text-base"> 7424 Service und Unterstützung </span> 7425 </a> 7426 7427 7428 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 7429 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 7430 7431 7432 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7433 7434 <a href="https://contract.lafuma-mobilier.fr/de/plr-de" title="Unterstützung für Fachleute   " 7435 class="py-2 block" 7436 >
7437 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7438 Unterstützung für Fachleute </span> 7439 </a> 7440 7441 7442 <div> 7443 7444 7445 <div class="category-default basis-full"> 7446 7447 <a href="https://contract.lafuma-mobilier.fr/de/plr-de" title="Ihr Projekt: Individueller Kostenvoranschlag" 7448 class="py-2 block" 7449 > 7450 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7451 Ihr Projekt: Individueller Kostenvoranschlag </span> 7452 </a> 7453 7454 7455 </div> 7456 </div> 7457 7458 </div> 7459 7460 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7461 7462 <a href="/blog/category/professionals.html" title="Blogartikel Contract" 7463 class="py-2 block" 7464 > 7465 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7466 Blogartikel Contract </span> 7467 </a> 7468 7469 7470 </div> 7471 </div> 7472 </div> 7473 </div> 7474 7475<div class="menu-bottom-cms hidden"></div> 7476
7477<script> 7478 'use strict'; 7479 7480 const initMenuLevel1_6ac6cef97ef89 = () => { 7481 return { 7482 hoverLevel1ActiveId: 0, 7483 7484 init: function() { 7485 var $categoryIconItem = this.$el.querySelector('.category-icon-item'), 7486 menuDisplayMode = $categoryIconItem && $categoryIconItem.getAttribute('data-display-mode'), 7487 menuCmsContent = $categoryIconItem && $categoryIconItem.getAttribute('data-cms-content'); 7488 7489 this.hoverLevel1ActiveId = $categoryIconItem.getAttribute('id'); 7490 this.openCurrentMenu($categoryIconItem, $categoryIconItem.getAttribute('id')); 7491 7492 if (this.$el.nextElementSibling.classList.contains('menu-bottom-cms')) { 7493 this.$el.nextElementSibling.innerHTML = ""; 7494 this.handleMenuCmsBlock(this.$el.nextElementSibling, menuDisplayMode, menuCmsContent); 7495 } 7496 7497 this.handleMenuHeight($categoryIconItem); 7498 }, 7499 7500 handleCategoryIconClick: function (e, index) { 7501 var $categoryIcon = this.$el.closest('.category-icon'), 7502 $menuBottomCms = $categoryIcon.nextElementSibling, 7503 menuDisplayMode = this.$el.getAttribute('data-display-mode'), 7504 menuCmsContent = this.$el.getAttribute('data-cms-content'); 7505 7506 this.hoverLevel1ActiveId = index; 7507 7508 this.closeAllMenu($categoryIcon); 7509 this.openCurrentMenu(this.$el, index); 7510 7511 if ($menuBottomCms.classList.contains('menu-bottom-cms')) { 7512 $menuBottomCms.innerHTML = ""; 7513 this.handleMenuCmsBlock($menuBottomCms, menuDisplayMode, menuCmsContent); 7514 } 7515 7516 this.handleMenuHeight(this.$el); 7517 }, 7518 7519 handleMenuCmsBlock: function ($menuBottomCms, menuDisplayMode, menuCmsContent) { 7520 $menuBottomCms.innerHTML = menuCmsContent; 7521 7522 if (menuDisplayMode !== 'category-square-image') { 7523 $menuBottomCms.style.display = 'block' 7524 } else { 7525 $menuBottomCms.style.display = ''; 7526 } 7527 }, 7528 7529 handleMenuHeight: function ($element) { 7530 var $categoryIcon = $element.closest('.category-icon'), 7531 $content = $element.querySelector('.content-category-icon'); 7532 7533 $categoryIcon.style.height = ''; 7534 7535 if ($content.offsetHeight > $categoryIcon.offsetHeight) { 7536 $categoryIcon.style.height = $content.offsetHeight + 'px'; 7537 } 7538 }, 7539 7540 closeAllMenu: function ($categoryIcon) { 7541 var $allContents = $categoryIcon.getElementsByClassName('content-category-icon'); 7542 7543 for (var i = 0; i < $allContents.length; i++) { 7544 $allContents[i].style.display = 'none'; 7545 } 7546 }, 7547 7548 openCurrentMenu : function ($element, index) { 7549 var $content = $element.querySelector('.content-category-icon'); 7550 7551 if ($element.getAttribute('id') === index) { 7552 $content.style.display = 'flex'; 7553 } 7554 } 7555 } 7556 } 7557</script>
7557 7558 </div> 7559 <div class="background-opacity full-viewport-less-scrollbar absolute z-10 left-0 hidden h-screen bg-black/30" 7560 @click="hoverPanelActiveId = 0; closeAllLevel0Menu()" 7561 > 7562 </div> 7563 </div> 7564 <div class="level-0" 7565 id="category-node-231"> 7566 <span class="flex items-center block text-md bg-opacity-95 mb-4 text-center"> 7567 <a 7568 class="link-level0 w-full text-base flex gap-2 items-center level-0 tracking-wide no-underline px-3" 7569 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 7570 @click="handleLevel0Click(event, 'category-node-231', '1')" 7571 :class="hoverPanelActiveId === 'category-node-231' ? 'font-medium text-black border-b-2 border-black pt-2.5 pb-2 tracking-normal' : 'font-normal py-2.5'" 7572 href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege.html" 7573 title="Ersatzteile & Ersatzbezüge" 7574 @menu-click.window="handleLevel0Click(event, 0, true)" 7575 @click.prevent="" 7576 > 7577 Ersatzteile & Ersatzbezüge </a> 7578 </span> 7579 <div class="content-level0 absolute full-viewport-less-scrollbar z-20 left-0 hidden border-y border-primary-200 border-opacity-90 bg-white overflow-auto max-h-[calc(100vh-148px)]"> 7580 7581<div x-data="initMenuLevel1_6ac6cef9e8d68()" 7582 x-init="init()" 7583 class="category-icon z-10 bg-white relative max-w-container m-auto"> 7584 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 7585 id="category-node-234" 7586 data-cms-content="" 7587 data-display-mode="" 7588 @click="handleCategoryIconClick(event, 'category-node-234')" 7589 :class="hoverLevel1ActiveId === 'category-node-234' ? 'category-active' : ''"> 7590 7591 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege.html" 7592 title="Ersatzbezüge" 7593 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 7594 :class="hoverLevel1ActiveId === 'category-node-234' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 7595 @click.prevent 7596 > 7597 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/toiles-de-rechange.svg" 7598 alt="" 7599 width="24" 7600 height="24" 7601 loading="lazy" /> 7602 7603 <span class="text-base"> 7604 Ersatzbezüge </span> 7605 </a> 7606 7607 7608 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 7609 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 7610 7611 7612 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7613 7614 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege.html" title="Alle Ersatzbezüge" 7615 class="py-2 block" 7616 >
7617 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7618 Alle Ersatzbezüge </span> 7619 </a> 7620 7621 7622 <div> 7623 7624 7625 <div class="category-default basis-full"> 7626 7627 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-relaxliegen.html" title="Ersatzbezüge Relaxliegen" 7628 class="py-2 block" 7629 > 7630 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7631 Ersatzbezüge Relaxliegen </span> 7632 </a> 7633 7634 7635 </div> 7636 7637 <div class="category-default basis-full"> 7638 7639 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-liegestuehle.html" title="Ersatzbezüge Liegestühle" 7640 class="py-2 block" 7641 > 7642 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7643 Ersatzbezüge Liegestühle </span> 7644 </a> 7645 7646 7647 </div> 7648 7649 <div class="category-default basis-full"> 7650 7651 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-sonnenliegen.html" title="Ersatzbezüge Sonnenliegen" 7652 class="py-2 block" 7653 > 7654 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7655 Ersatzbezüge Sonnenliegen </span> 7656 </a> 7657 7658 7659 7660 7661 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-pop-up.html" title="Ersatzbezüge Pop Up" 7662 class="py-2 block" 7663 > 7664 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7665 Ersatzbezüge Pop Up </span> 7666 </a> 7667 7668 7669 7670 7671 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-stuehle-und-sessel.html" title="Ersatzbezüge Stühle und Sessel" 7672 class="py-2 block" 7673 > 7674 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7675 Ersatzbezüge Stühle und Sessel </span> 7676 </a> 7677 7678 7679 7680 7681 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzbezuege/alle-ersatzbezuege/ersatzbezuege-niedrige-loungemoebel.html" title="Ersatzbezüge niedrige Loungemöbel" 7682 class="py-2 block" 7683 > 7684 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7685 Ersatzbezüge niedrige Loungemöbel </span> 7686 </a> 7687 7688 7689 </div> 7690 </div> 7691 7692 </div> 7693 </div> 7694 </div> 7695 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 7696 id="category-node-258" 7697 data-cms-content="" 7698 data-display-mode="" 7699 @click="handleCategoryIconClick(event, 'category-node-258')" 7700 :class="hoverLevel1ActiveId === 'category-node-258' ? 'category-active' : ''"> 7701 7702 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile.html" 7703 title="Ersatzteile" 7704 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 7705 :class="hoverLevel1ActiveId === 'category-node-258' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 7706 @click.prevent 7707 > 7708 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/pieces-detachees.svg" 7709 alt="" 7710 width="24" 7711 height="24" 7712 loading="lazy" /> 7713
7714 <span class="text-base"> 7715 Ersatzteile </span> 7716 </a> 7717 7718 7719 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 7720 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 7721 7722 7723 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7724 7725 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile.html" title="Alle Ersatzteile" 7726 class="py-2 block" 7727 > 7728 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal tracking-normal font-medium text-black"> 7729 Alle Ersatzteile </span> 7730 </a> 7731 7732 7733 <div> 7734 7735 7736 <div class="category-default basis-full"> 7737 7738 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-relaxliegen.html" title="Ersatzteile Relaxliegen" 7739 class="py-2 block" 7740 > 7741 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7742 Ersatzteile Relaxliegen </span> 7743 </a> 7744 7745 7746 </div> 7747 7748 <div class="category-default basis-full"> 7749 7750 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-liegestuehle.html" title="Ersatzteile Liegestühle" 7751 class="py-2 block" 7752 > 7753 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7754 Ersatzteile Liegestühle </span> 7755 </a> 7756 7757 7758 </div> 7759 7760 <div class="category-default basis-full"> 7761 7762 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-sonnenliegen.html" title="Ersatzteile Sonnenliegen" 7763 class="py-2 block" 7764 > 7765 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7766 Ersatzteile Sonnenliegen </span> 7767 </a> 7768 7769 7770 7771 7772 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-pop-up.html" title="Ersatzteile Pop Up" 7773 class="py-2 block" 7774 > 7775 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7776 Ersatzteile Pop Up </span> 7777 </a> 7778 7779 7780 7781 7782 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-stuehle-und-sessel.html" title="Ersatzteile Stühle und Sessel" 7783 class="py-2 block" 7784 > 7785 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7786 Ersatzteile Stühle und Sessel </span> 7787 </a> 7788 7789 7790 7791 7792 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/ersatzteile/alle-ersatzteile/ersatzteile-tische.html" title="Ersatzteile Tische" 7793 class="py-2 block" 7794 >
7795 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7796 Ersatzteile Tische </span> 7797 </a> 7798 7799 7800 </div> 7801 </div> 7802 7803 </div> 7804 </div> 7805 </div> 7806 <div class="category-icon-item first:pt-3 xl:first:pt-6 last:pb-3 xl:last:pb-6 mb-4 last:mb-0 w-[352px] 4xl:ml-10" 7807 id="category-node-288" 7808 data-cms-content="" 7809 data-display-mode="" 7810 @click="handleCategoryIconClick(event, 'category-node-288')" 7811 :class="hoverLevel1ActiveId === 'category-node-288' ? 'category-active' : ''"> 7812 7813 <a href="https://www.lafuma-moebel.de/ersatzteile-und-ersatzbezuege/leitfaeden-und-tipps.html" 7814 title="Leitfäden und Tipps" 7815 class="flex gap-4 mx-5 xl:mx-10 pr-2 pt-2 pb-1.5 no-underline border-b-2 hover:font-medium hover:text-black hover:tracking-normal" 7816 :class="hoverLevel1ActiveId === 'category-node-288' ? 'border-black font-medium text-black tracking-normal' : 'border-transparent'" 7817 @click.prevent 7818 > 7819 <img src="https://www.lafuma-moebel.de/media/catalog/category/menu/icon/guides-et-conseils.svg" 7820 alt="" 7821 width="24" 7822 height="24" 7823 loading="lazy" /> 7824 7825 <span class="text-base"> 7826 Leitfäden und Tipps </span> 7827 </a> 7828 7829 7830 <div class="content-category-icon absolute top-0 right-0 w-[calc(100vw-367px)] min-h-full h-auto max-w-[1483px] bg-primary-100 7831 py-4 xl:py-8 pl-6 xl:pl-12 pr-6 xl:pr-12 2xl:pr-56 gap-8 xl:gap-16 overflow-hidden hidden"> 7832 7833 7834 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7835 7836 <a href="/blog/unsere-leitfaeden-und-tipps-bezug-wechseln.html" title="Bezug wechseln" 7837 class="py-2 block" 7838 > 7839 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7840 Bezug wechseln </span> 7841 </a> 7842 7843 7844 </div> 7845 7846 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7847 7848 <a href="/blog/unsere-leitfaeden-und-tipps-pflege-und-reparatur.html" title="Pflegen & Reparieren" 7849 class="py-2 block" 7850 > 7851 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7852 Pflegen & Reparieren </span> 7853 </a> 7854 7855 7856 </div> 7857 7858 <div class="category-default basis-1/3 2xl:basis-[270px]"> 7859 7860 <a href="https://www.youtube.com/@LafumamobilierFrance" title="Alle unsere YouTube-Tutorials" 7861 class="py-2 block" 7862 > 7863 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7864 Alle unsere YouTube-Tutorials </span> 7865 </a> 7866 7867 7868 7869 7870 <a href="https://faq.lafuma-mobilier.fr/hc/de" title="FAQ" 7871 class="py-2 block" 7872 > 7873 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7874 FAQ </span> 7875 </a> 7876 7877 7878 7879 7880 <a href="https://faq.lafuma-mobilier.fr/hc/de/requests/new" title="Benötigen Sie Hilfe?" 7881 class="py-2 block" 7882 >
7883 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 7884 Benötigen Sie Hilfe? </span> 7885 </a> 7886 7887 7888 </div> 7889 </div> 7890 </div> 7891 </div> 7892 7893<div class="menu-bottom-cms hidden"></div> 7894
7895<script> 7896 'use strict'; 7897 7898 const initMenuLevel1_6ac6cef9e8d68 = () => { 7899 return { 7900 hoverLevel1ActiveId: 0, 7901 7902 init: function() { 7903 var $categoryIconItem = this.$el.querySelector('.category-icon-item'), 7904 menuDisplayMode = $categoryIconItem && $categoryIconItem.getAttribute('data-display-mode'), 7905 menuCmsContent = $categoryIconItem && $categoryIconItem.getAttribute('data-cms-content'); 7906 7907 this.hoverLevel1ActiveId = $categoryIconItem.getAttribute('id'); 7908 this.openCurrentMenu($categoryIconItem, $categoryIconItem.getAttribute('id')); 7909 7910 if (this.$el.nextElementSibling.classList.contains('menu-bottom-cms')) { 7911 this.$el.nextElementSibling.innerHTML = ""; 7912 this.handleMenuCmsBlock(this.$el.nextElementSibling, menuDisplayMode, menuCmsContent); 7913 } 7914 7915 this.handleMenuHeight($categoryIconItem); 7916 }, 7917 7918 handleCategoryIconClick: function (e, index) { 7919 var $categoryIcon = this.$el.closest('.category-icon'), 7920 $menuBottomCms = $categoryIcon.nextElementSibling, 7921 menuDisplayMode = this.$el.getAttribute('data-display-mode'), 7922 menuCmsContent = this.$el.getAttribute('data-cms-content'); 7923 7924 this.hoverLevel1ActiveId = index; 7925 7926 this.closeAllMenu($categoryIcon); 7927 this.openCurrentMenu(this.$el, index); 7928 7929 if ($menuBottomCms.classList.contains('menu-bottom-cms')) { 7930 $menuBottomCms.innerHTML = ""; 7931 this.handleMenuCmsBlock($menuBottomCms, menuDisplayMode, menuCmsContent); 7932 } 7933 7934 this.handleMenuHeight(this.$el); 7935 }, 7936 7937 handleMenuCmsBlock: function ($menuBottomCms, menuDisplayMode, menuCmsContent) { 7938 $menuBottomCms.innerHTML = menuCmsContent; 7939 7940 if (menuDisplayMode !== 'category-square-image') { 7941 $menuBottomCms.style.display = 'block' 7942 } else { 7943 $menuBottomCms.style.display = ''; 7944 } 7945 }, 7946 7947 handleMenuHeight: function ($element) { 7948 var $categoryIcon = $element.closest('.category-icon'), 7949 $content = $element.querySelector('.content-category-icon'); 7950 7951 $categoryIcon.style.height = ''; 7952 7953 if ($content.offsetHeight > $categoryIcon.offsetHeight) { 7954 $categoryIcon.style.height = $content.offsetHeight + 'px'; 7955 } 7956 }, 7957 7958 closeAllMenu: function ($categoryIcon) { 7959 var $allContents = $categoryIcon.getElementsByClassName('content-category-icon'); 7960 7961 for (var i = 0; i < $allContents.length; i++) { 7962 $allContents[i].style.display = 'none'; 7963 } 7964 }, 7965 7966 openCurrentMenu : function ($element, index) { 7967 var $content = $element.querySelector('.content-category-icon'); 7968 7969 if ($element.getAttribute('id') === index) { 7970 $content.style.display = 'flex'; 7971 } 7972 } 7973 } 7974 } 7975</script>
7975 7976 </div> 7977 <div class="background-opacity full-viewport-less-scrollbar absolute z-10 left-0 hidden h-screen bg-black/30" 7978 @click="hoverPanelActiveId = 0; closeAllLevel0Menu()" 7979 > 7980 </div> 7981 </div> 7982 <div class="level-0" 7983 id="category-node-9"> 7984 <span class="flex items-center block text-md bg-opacity-95 mb-4 text-center"> 7985 <a 7986 class="link-level0 w-full text-base flex gap-2 items-center level-0 tracking-wide no-underline px-3" 7987 style="color: rgba(63, 63, 70, var(--tw-text-opacity))" 7988 @click="handleLevel0Click(event, 'category-node-9', '1')" 7989 :class="hoverPanelActiveId === 'category-node-9' ? 'font-medium text-black border-b-2 border-black pt-2.5 pb-2 tracking-normal' : 'font-normal py-2.5'" 7990 href="https://www.lafuma-moebel.de/nachhaltige-marke-seit-1954.html" 7991 title="Nachhaltige Marke seit 1954" 7992 @menu-click.window="handleLevel0Click(event, 0, true)" 7993 @click.prevent="" 7994 > 7995 Nachhaltige Marke seit 1954 </a> 7996 </span> 7997 <div class="content-level0 absolute full-viewport-less-scrollbar z-20 left-0 hidden border-y border-primary-200 border-opacity-90 bg-white overflow-auto max-h-[calc(100vh-148px)]"> 7998 7999<div class="subcategories-list px-28 xl:px-44 2xl:px-56 pt-12 pb-24 flex gap-16 max-w-container m-auto"> 8000 8001 <div class="category-default border-r border-primary-300 last:border-r-0 basis-full pr-16 last:pr-0"> 8002 <div title="Unsere Geschichte" 8003 class="py-2 block" 8004 > 8005 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal 8006 font-medium text-black tracking-normal"> 8007 Unsere Geschichte </span> 8008 </div> 8009 8010 8011 <div> 8012 8013 8014 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8015 8016 <a href="/nachhaltige-marke/unsere-geschichte/unser-engagement-und-manifest.html" title="Unser Engagement & Manifest" 8017 class="py-2 block" 8018 > 8019 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8020 Unser Engagement & Manifest </span> 8021 </a> 8022 8023 8024 </div> 8025 8026 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8027 8028 <a href="/nachhaltige-marke/unsere-geschichte/franzoesische-manufaktur.html" title="Französische Manufaktur" 8029 class="py-2 block" 8030 > 8031 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8032 Französische Manufaktur </span> 8033 </a> 8034 8035 8036 </div> 8037 8038 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8039 8040 <a href="/nachhaltige-marke/unsere-geschichte/unser-know-how-und-unsere-teams.html" title="Unser Know-how & unsere Teams" 8041 class="py-2 block" 8042 >
8043 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8044 Unser Know-how & unsere Teams </span> 8045 </a> 8046 8047 8048 </div> 8049 </div> 8050 </div> 8051 8052 <div class="category-default border-r border-primary-300 last:border-r-0 basis-full pr-16 last:pr-0"> 8053 <div title="Engagiert an Ihrer Seite" 8054 class="py-2 block" 8055 > 8056 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal 8057 font-medium text-black tracking-normal"> 8058 Engagiert an Ihrer Seite </span> 8059 </div> 8060 8061 8062 <div> 8063 8064 8065 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8066 8067 <a href="/nachhaltige-marke/engagiert-an-ihrer-seite/ihr-komfort-unsere-expertise.html" title="Ihr Komfort: unsere Expertise" 8068 class="py-2 block" 8069 > 8070 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8071 Ihr Komfort: unsere Expertise </span> 8072 </a> 8073 8074 8075 </div> 8076 8077 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8078 8079 <a href="/nachhaltige-marke/engagiert-an-ihrer-seite/auf-langlebigkeit-ausgelegte-produkte.html" title="Produkte, die auf Langlebigkeit ausgelegt sind" 8080 class="py-2 block" 8081 > 8082 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8083 Produkte, die auf Langlebigkeit ausgelegt sind </span> 8084 </a> 8085 8086 8087 </div> 8088 8089 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8090 8091 <a href="/nachhaltige-marke/engagiert-an-ihrer-seite/unsere-oekodesign-charta.html" title="Unsere Ökodesign-Charta" 8092 class="py-2 block" 8093 > 8094 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8095 Unsere Ãkodesign-Charta </span> 8096 </a> 8097 8098 8099 </div> 8100 </div> 8101 </div> 8102 8103 <div class="category-default border-r border-primary-300 last:border-r-0 basis-full pr-16 last:pr-0"> 8104 <div title="Lafuma Mobilier & Peugeot Frères Industrie" 8105 class="py-2 block" 8106 > 8107 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal 8108 font-medium text-black tracking-normal"> 8109 Lafuma Mobilier & Peugeot Frères Industrie </span> 8110 </div> 8111 8112 8113 <div> 8114 8115 8116 <div class="category-default basis-1/3 2xl:basis-[270px]"> 8117 8118 <a href="/nachhaltige-marke/peugeot-freres-industrie-lafuma-mobilier/maison-peugeot.html" title="Eine sinnvolle Partnerschaft" 8119 class="py-2 block" 8120 >
8121 <span class="text-base hover:font-medium hover:text-black hover:tracking-normal "> 8122 Eine sinnvolle Partnerschaft </span> 8123 </a> 8124 8125 8126 </div> 8127 8128 <div class="category-default basis-1/3 2xl:basis-[270px] inline-block"> 8129 8130 <a href="/nachhaltige-marke/peugeot-freres-industrie-lafuma-mobilier/maison-peugeot.html" title="Dev. By Peugeot" 8131 class="py-2 block" 8132 > 8133 <img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/logo-dbp-header.png" 8134 alt="" 8135 width="70" 8136 height="70" 8137 loading="lazy" /> 8138 </a> 8139 8140 8141 </div> 8142 </div> 8143 </div> 8144 </div> 8145 <div class="menu-bottom-cms"> 8146 </div> 8147 </div> 8148 <div class="background-opacity full-viewport-less-scrollbar absolute z-10 left-0 hidden h-screen bg-black/30" 8149 @click="hoverPanelActiveId = 0; closeAllLevel0Menu()" 8150 > 8151 </div> 8152 </div> 8153 <!--Search Icon--> 8154 <button id="menu-search-icon" 8155 class="hidden md:inline-block mb-4 px-5 no-underline hover:text-black border-l border-primary-300 ml-3" 8156 @click.prevent="$dispatch('toggle-search');" 8157 > 8158 <span class="sr-only label"> 8159 Suche </span> 8160 8161 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 w-6 hover:text-black" role="img"> 8162<g clip-path="url(#clip0_106_1458_2)"> 8163<path d="M1.47208 13.3571C2.41223 15.5693 4.19265 17.3174 6.42168 18.2168C8.6507 19.1163 11.1457 19.0934 13.3579 18.1533C15.5701 17.2131 17.3182 15.4327 18.2176 13.2037C19.1171 10.9746 19.0942 8.4796 18.1541 6.26743C17.2139 4.05526 15.4335 2.30717 13.2045 1.40772C10.9754 0.508266 8.4804 0.531128 6.26824 1.47128C4.05607 2.41143 2.30798 4.19185 1.40852 6.42087C0.50907 8.6499 0.531933 11.1449 1.47208 13.3571Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8164<path d="M16.2209 16.2202L23.2499 23.2502" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8165</g> 8166<defs> 8167<clipPath id="clip0_106_1458_2"> 8168<rect width="24" height="24" fill="white"/> 8169</clipPath> 8170</defs> 8171<title>search</title></svg> 8172 </button> 8173 </nav> 8174 </div> 8175</div>
8176<script> 8177 'use strict'; 8178 8179 const initMenuDesktop_6ac715531e17d = () => { 8180 return { 8181 hoverPanelActiveId: 0, 8182 8183 handleLevel0Click: function (e, index, hasChild) { 8184 this.hoverPanelActiveId = (this.hoverPanelActiveId === 0 || this.hoverPanelActiveId !== index) ? index : 0; 8185 8186 if (hasChild) { 8187 this.preventBodyScrolling(); 8188 } 8189 8190 this.closeAllLevel0Menu(); 8191 this.toggleLevel0Menu(this.$el.closest('div.level-0'), index); 8192 this.handleMenuHeight(); 8193 }, 8194 8195 preventBodyScrolling: function () { 8196 var $body = document.querySelector('body'); 8197 8198 if (this.hoverPanelActiveId !== 0) { 8199 $body.classList.add( 8200 'overflow-hidden', 8201 'h-screen' 8202 ); 8203 } else { 8204 $body.classList.remove( 8205 'overflow-hidden', 8206 'h-screen' 8207 ); 8208 } 8209 }, 8210 8211 toggleLevel0Menu : function ($element, index) { 8212 var $content = $element.querySelector('.content-level0'), 8213 $background = $element.querySelector('.background-opacity'); 8214 8215 if ($element.getAttribute('id') === index) { 8216 if (this.hoverPanelActiveId === 0) { 8217 $content.classList.remove('block'); 8218 $background.classList.remove('flex'); 8219 $content.classList.add('hidden'); 8220 $background.classList.add('hidden'); 8221 } else { 8222 $content.classList.remove('hidden'); 8223 $background.classList.remove('hidden'); 8224 $content.classList.add('block'); 8225 $background.classList.add('flex'); 8226 } 8227 8228 } 8229 }, 8230 8231 handleMenuHeight: function () { 8232 var $element = this.$el, 8233 $level0 = $element.closest('div.level-0'), 8234 $categoryIcon = $level0.querySelector('.category-icon'), 8235 $categoryIconItem = $categoryIcon && $categoryIcon.querySelector('.category-icon-item.category-active'), 8236 $content = $categoryIconItem && $categoryIconItem.querySelector('.content-category-icon'); 8237 8238 if ($content) { 8239 $categoryIcon.style.height = ''; 8240 8241 if ($content.offsetHeight > $categoryIcon.offsetHeight) { 8242 $categoryIcon.style.height = $content.offsetHeight + 'px'; 8243 } 8244 } 8245 }, 8246 8247 closeAllLevel0Menu: function () { 8248 var $nav = this.$el.closest('nav'), 8249 $allContents = $nav.getElementsByClassName('content-level0'), 8250 $allBackgroundOpacity = $nav.getElementsByClassName('background-opacity'); 8251 8252 for (var i = 0; i < $allContents.length; i++) { 8253 $allContents[i].classList.remove('block'); 8254 $allBackgroundOpacity[i].classList.remove('flex'); 8255 $allContents[i].classList.add('hidden'); 8256 $allBackgroundOpacity[i].classList.add('hidden'); 8257 } 8258 8259 this.preventBodyScrolling(); 8260 } 8261 } 8262 } 8263</script>
8263 8264 8265 8266 <div class="navigation-icons flex md:gap-4 md:pb-4 items-center order-3"> 8267 <!--Search Icon--> 8268 <button id="menu-search-icon" 8269 class="pr-4 md:pr-0 inline-block md:hidden no-underline hover:text-black" 8270 @toggle-search.window="toggleSearch()" 8271 @click="$dispatch('toggle-search')" 8272 > 8273 <span class="sr-only label"> 8274 Suche </span> 8275 8276 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 w-6 hover:text-black" role="img"> 8277<g clip-path="url(#clip0_106_1458)"> 8278<path d="M1.47208 13.3571C2.41223 15.5693 4.19265 17.3174 6.42168 18.2168C8.6507 19.1163 11.1457 19.0934 13.3579 18.1533C15.5701 17.2131 17.3182 15.4327 18.2176 13.2037C19.1171 10.9746 19.0942 8.4796 18.1541 6.26743C17.2139 4.05526 15.4335 2.30717 13.2045 1.40772C10.9754 0.508266 8.4804 0.531128 6.26824 1.47128C4.05607 2.41143 2.30798 4.19185 1.40852 6.42087C0.50907 8.6499 0.531933 11.1449 1.47208 13.3571Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8279<path d="M16.2209 16.2202L23.2499 23.2502" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8280</g> 8281<defs> 8282<clipPath id="clip0_106_1458"> 8283<rect width="24" height="24" fill="white"/> 8284</clipPath> 8285</defs> 8286<title>search</title></svg> 8287 </button> 8288 8289 <div class="md:hidden"> 8290 <!-- BLOCK header.customer --> 8291<div class="hidden relative md:flex justify-between gap-3 items-center cursor-pointer" 8292 x-data="initCustomerMenu()" 8293 x-init="checkIsMobileResolution()" 8294 @resize.window.debounce="checkIsMobileResolution()" 8295 @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)" 8296 @click.prevent.stop="handleClick"> 8297 <div class="flex justify-between mt-2"> 8298 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 21 21" fill="none" class="w-5 h-5 mt-0.5 mr-1" role="img"> 8299<path d="M13.9522 9.26835C13.891 9.57432 13.7686 10.1863 13.5238 10.8594C13.4626 10.9206 13.4626 10.9818 13.4626 11.1042C13.0954 12.1444 12.5447 13.4295 11.1984 15.4489C10.0358 17.1011 8.44472 18.6922 7.09846 19.4265L7.15966 19.4877L7.22085 19.5489C7.64921 19.7325 8.07756 19.7937 8.44473 19.916C11.2596 20.5892 13.279 20.0384 13.279 20.0384C13.5238 19.9772 13.891 19.916 14.1357 19.916C14.5641 19.916 14.9924 19.9772 14.9924 19.9772C15.2984 19.9772 15.5432 19.9772 15.6656 19.8548C15.9103 19.7325 15.9104 19.6101 15.9104 19.4877C15.9104 19.3041 15.8492 19.2429 15.7268 19.1205C15.6044 18.9981 15.482 18.8146 15.482 18.6922C15.4208 18.3862 15.8492 18.325 15.8492 18.325C17.1954 17.7743 17.8073 17.1011 17.8073 17.1011C18.4193 16.428 18.5417 16.0608 18.8476 15.7549C19.0924 15.4489 19.8879 14.531 19.9491 14.4086C20.1327 14.1638 20.1939 13.9803 20.1327 13.8579C20.0715 13.6131 19.8267 13.5519 19.582 13.5519C19.276 13.4907 18.9088 13.5519 18.9088 13.5519C18.6029 13.6131 18.3581 13.5519 18.2357 13.4907C18.1133 13.4295 18.0521 13.4295 18.0521 13.4295C17.9297 13.3683 17.8685 13.3683 17.8685 13.3071C17.7462 13.1847 17.685 13.1235 17.685 13.0012C17.6238 12.5116 18.2969 11.8385 18.2969 11.8385C18.8476 11.2265 18.97 10.9206 19.1536 10.4922C19.3984 9.81909 19.8267 8.96238 19.8267 8.96238C20.0103 8.59522 19.8879 8.35044 19.8879 8.35044C19.8267 8.22806 19.7655 8.22806 19.6432 8.16686C19.582 8.10567 19.5208 8.10567 19.4596 8.10567C19.276 8.10567 19.0924 8.16686 19.0312 8.16686C18.4193 8.22806 18.0521 8.10567 18.0521 8.10567C17.9297 8.04448 17.8685 7.98328 17.8073 7.98328C17.6238 7.7997 17.5626 7.61612 17.5014 7.37134V7.31015C17.5014 5.9027 17.8073 5.41315 17.685 4.43405C17.685 4.31166 17.6238 4.25047 17.6238 4.18927C17.4402 2.90421 17.2566 2.59824 17.073 2.29227C16.9506 1.9863 16.9506 1.86392 16.8894 1.49675C16.8282 1.12959 16.8283 1.12959 16.7059 0.76243C16.6447 0.395268 16.5223 0.272881 16.3999 0.211688C16.2775 0.150494 16.2163 0.211687 16.1551 0.272881C15.9715 0.334075 15.6044 0.701236 15.6044 0.701236C15.5432 0.76243 15.482 0.823624 15.482 0.823624C15.3596 0.946011 15.2984 1.0072 15.2372 1.0684C15.0536 1.25198 14.8701 1.37437 14.7477 1.43556C14.1357 1.86392 13.7686 1.9863 13.7686 1.9863C12.2387 2.41466 11.3208 3.57734 11.1984 3.76092V3.82211C10.8925 4.18927 10.5253 4.25047 10.1581 4.25047C9.85217 4.25047 9.6074 4.12808 9.6074 4.12808C9.17905 4.06689 8.56711 2.78182 8.56711 2.78182C8.50592 2.59824 8.44472 2.53705 8.32233 2.53705C8.13875 2.47585 7.95518 2.65943 7.95518 2.65943C7.7104 2.90421 7.52682 3.08779 7.28204 3.39376C6.42533 4.25047 6.30295 4.98479 5.99698 5.71912C5.99698 5.78031 5.93578 5.8415 5.93578 5.9027C5.69101 6.45344 5.69101 6.51463 5.62981 6.63702C5.50743 6.8206 5.32385 6.8818 5.20146 6.8818C5.07907 6.8818 5.01788 6.8206 5.01788 6.8206C4.95668 6.75941 4.89549 6.75941 4.83429 6.69822C4.40594 6.45344 3.97758 5.96389 3.61042 5.41315C3.42684 5.10718 3.24326 5.04599 3.12087 5.04599C2.69252 5.10718 2.44775 6.08628 2.44775 6.08628C1.28507 9.14596 1.77461 10.0639 1.77461 10.3086C1.83581 10.4922 1.897 10.6146 1.9582 10.9206C2.01939 11.8385 1.46864 12.0221 1.46864 12.0221C1.34626 12.0833 1.04029 12.2056 1.04029 12.2056C0.856709 12.2668 0.734318 12.3892 0.673125 12.5116C0.550737 12.6952 0.550743 12.8176 0.611937 13.0012C0.734324 13.2459 0.856706 13.4295 0.979093 13.6131C1.10148 13.7967 1.34625 13.9803
82991.59103 14.2862C1.897 14.6534 2.26416 15.1429 2.50893 15.5713C2.57013 15.6937 2.69252 15.8161 2.75371 15.9385C2.75371 15.9996 2.8149 15.9997 2.8149 15.9997C3.18206 16.734 3.42684 17.1011 3.91639 17.4683C3.97758 17.5295 4.09998 17.5907 4.16117 17.6519C4.34475 17.7743 4.65072 17.9578 4.77311 18.019C4.89549 18.1414 5.50743 18.5698 4.46714 18.9369C2.9373 19.4877 1.897 18.9981 1.28506 18.4474C0.734318 18.019 0.489551 17.5907 0.489551 17.5907C0.428357 17.5295 0.367162 17.4683 0.305968 17.4071C0.183581 17.3459 0.122382 17.4683 0.0611881 17.5907C-5.59882e-06 17.7131 0 17.8355 0 18.019V19.916C1.59104 20.3444 2.8761 20.2832 3.67162 20.1608C3.8552 20.0996 4.03878 20.0996 4.22236 20.0384C8.26114 19.1205 11.6268 13.9803 13.0954 10.5534C13.1566 10.431 13.2178 10.3086 13.2178 10.2474C13.3402 10.0027 13.4014 9.88028 13.4626 9.57432C13.4626 9.57432 13.585 9.26835 13.6462 9.08477C13.7074 9.02357 13.7074 9.02357 13.7074 9.02357C13.7686 9.02357 13.8298 9.14596 13.7686 9.32954C13.9522 9.20715 13.9522 9.20715 13.9522 9.26835Z" fill="#171717"/> 8300<title>leaf</title></svg> 8301 <lottie-player src="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/lottie/For-Life-8s.json" class="w-[63.75px] h-[34px]" speed="1" loop autoplay></lottie-player> 8302 </div> 8303 <a 8304 href="https://www.lafuma-moebel.de/customer/account/login/" 8305 id="customer-menu" 8306 class="block hover:text-black" 8307 aria-label="Mein Konto" 8308 > 8309 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" class="md:h-6 md:w-6" aria-hidden="true"> 8310<g clip-path="url(#clip0_593_18980)"> 8311<g clip-path="url(#clip1_593_18980)"> 8312<path d="M0.75 17.2489C0.75076 16.133 1.02804 15.0347 1.55706 14.0521C2.08607 13.0696 2.85033 12.2334 3.78149 11.6185C4.71265 11.0035 5.7817 10.6289 6.89305 10.5281C8.00439 10.4273 9.12339 10.6035 10.15 11.0409" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8313<path d="M7.5 8.99902C8.59402 8.99902 9.64323 8.56443 10.4168 7.79084C11.1904 7.01725 11.625 5.96804 11.625 4.87402C11.625 3.78001 11.1904 2.7308 10.4168 1.95721C9.64323 1.18362 8.59402 0.749023 7.5 0.749023C6.40598 0.749023 5.35677 1.18362 4.58318 1.95721C3.8096 2.7308 3.375 3.78001 3.375 4.87402C3.375 5.96804 3.8096 7.01725 4.58318 7.79084C5.35677 8.56443 6.40598 8.99902 7.5 8.99902Z" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8314<path d="M18 12C18.9946 12 19.9484 12.3951 20.6517 13.0983C21.3549 13.8016 21.75 14.7554 21.75 15.75V18.75C21.75 19.1478 21.908 19.5294 22.1893 19.8107C22.4706 20.092 22.8522 20.25 23.25 20.25H12.75C13.1478 20.25 13.5294 20.092 13.8107 19.8107C14.092 19.5294 14.25 19.1478 14.25 18.75V15.75C14.25 14.7554 14.6451 13.8016 15.3483 13.0983C16.0516 12.3951 17.0054 12 18 12Z" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8315<path d="M18 23.25C17.9005 23.25 17.8052 23.2105 17.7348 23.1402C17.6645 23.0698 17.625 22.9745 17.625 22.875C17.625 22.7755 17.6645 22.6802 17.7348 22.6098C17.8052 22.5395 17.9005 22.5 18 22.5" stroke="black" stroke-width="1.5"/> 8316<path d="M18 23.25C18.0995 23.25 18.1948 23.2105 18.2652 23.1402C18.3355 23.0698 18.375 22.9745 18.375 22.875C18.375 22.7755 18.3355 22.6802 18.2652 22.6098C18.1948 22.5395 18.0995 22.5 18 22.5" stroke="black" stroke-width="1.5"/> 8317</g> 8318</g> 8319<defs> 8320<clipPath id="clip0_593_18980"> 8321<rect width="24" height="24" fill="white"/> 8322</clipPath> 8323<clipPath id="clip1_593_18980"> 8324<rect width="24" height="24" fill="white"/> 8325</clipPath> 8326</defs> 8327</svg> 8328 </a> 8329</div>
8330<script> 8331 function initCustomerMenu() { 8332 return { 8333 isLoggedIn: false, 8334 isMobile: false, 8335 8336 onPrivateContentLoaded: function (data) { 8337 this.isLoggedIn = data.customer && data.customer.firstname; 8338 }, 8339 8340 handleClick: function () { 8341 if (this.isLoggedIn || this.isMobile) { 8342 window.location.href = '/customer/account'; 8343 return; 8344 } 8345 8346 this.$dispatch('toggle-lfl',{}); 8347 }, 8348 8349 checkIsMobileResolution() { 8350 this.isMobile = window.matchMedia('(max-width: 768px)').matches; 8351 } 8352 } 8353 } 8354</script>
8354<!-- /BLOCK header.customer --> </div> 8355 8356 <!--Customer Icon & Dropdown--> 8357 <!-- BLOCK header.customer --> 8358<div class="hidden relative md:flex justify-between gap-3 items-center cursor-pointer" 8359 x-data="initCustomerMenu()" 8360 x-init="checkIsMobileResolution()" 8361 @resize.window.debounce="checkIsMobileResolution()" 8362 @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)" 8363 @click.prevent.stop="handleClick"> 8364 <div class="flex justify-between mt-2"> 8365 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 21 21" fill="none" class="w-5 h-5 mt-0.5 mr-1" role="img"> 8366<path d="M13.9522 9.26835C13.891 9.57432 13.7686 10.1863 13.5238 10.8594C13.4626 10.9206 13.4626 10.9818 13.4626 11.1042C13.0954 12.1444 12.5447 13.4295 11.1984 15.4489C10.0358 17.1011 8.44472 18.6922 7.09846 19.4265L7.15966 19.4877L7.22085 19.5489C7.64921 19.7325 8.07756 19.7937 8.44473 19.916C11.2596 20.5892 13.279 20.0384 13.279 20.0384C13.5238 19.9772 13.891 19.916 14.1357 19.916C14.5641 19.916 14.9924 19.9772 14.9924 19.9772C15.2984 19.9772 15.5432 19.9772 15.6656 19.8548C15.9103 19.7325 15.9104 19.6101 15.9104 19.4877C15.9104 19.3041 15.8492 19.2429 15.7268 19.1205C15.6044 18.9981 15.482 18.8146 15.482 18.6922C15.4208 18.3862 15.8492 18.325 15.8492 18.325C17.1954 17.7743 17.8073 17.1011 17.8073 17.1011C18.4193 16.428 18.5417 16.0608 18.8476 15.7549C19.0924 15.4489 19.8879 14.531 19.9491 14.4086C20.1327 14.1638 20.1939 13.9803 20.1327 13.8579C20.0715 13.6131 19.8267 13.5519 19.582 13.5519C19.276 13.4907 18.9088 13.5519 18.9088 13.5519C18.6029 13.6131 18.3581 13.5519 18.2357 13.4907C18.1133 13.4295 18.0521 13.4295 18.0521 13.4295C17.9297 13.3683 17.8685 13.3683 17.8685 13.3071C17.7462 13.1847 17.685 13.1235 17.685 13.0012C17.6238 12.5116 18.2969 11.8385 18.2969 11.8385C18.8476 11.2265 18.97 10.9206 19.1536 10.4922C19.3984 9.81909 19.8267 8.96238 19.8267 8.96238C20.0103 8.59522 19.8879 8.35044 19.8879 8.35044C19.8267 8.22806 19.7655 8.22806 19.6432 8.16686C19.582 8.10567 19.5208 8.10567 19.4596 8.10567C19.276 8.10567 19.0924 8.16686 19.0312 8.16686C18.4193 8.22806 18.0521 8.10567 18.0521 8.10567C17.9297 8.04448 17.8685 7.98328 17.8073 7.98328C17.6238 7.7997 17.5626 7.61612 17.5014 7.37134V7.31015C17.5014 5.9027 17.8073 5.41315 17.685 4.43405C17.685 4.31166 17.6238 4.25047 17.6238 4.18927C17.4402 2.90421 17.2566 2.59824 17.073 2.29227C16.9506 1.9863 16.9506 1.86392 16.8894 1.49675C16.8282 1.12959 16.8283 1.12959 16.7059 0.76243C16.6447 0.395268 16.5223 0.272881 16.3999 0.211688C16.2775 0.150494 16.2163 0.211687 16.1551 0.272881C15.9715 0.334075 15.6044 0.701236 15.6044 0.701236C15.5432 0.76243 15.482 0.823624 15.482 0.823624C15.3596 0.946011 15.2984 1.0072 15.2372 1.0684C15.0536 1.25198 14.8701 1.37437 14.7477 1.43556C14.1357 1.86392 13.7686 1.9863 13.7686 1.9863C12.2387 2.41466 11.3208 3.57734 11.1984 3.76092V3.82211C10.8925 4.18927 10.5253 4.25047 10.1581 4.25047C9.85217 4.25047 9.6074 4.12808 9.6074 4.12808C9.17905 4.06689 8.56711 2.78182 8.56711 2.78182C8.50592 2.59824 8.44472 2.53705 8.32233 2.53705C8.13875 2.47585 7.95518 2.65943 7.95518 2.65943C7.7104 2.90421 7.52682 3.08779 7.28204 3.39376C6.42533 4.25047 6.30295 4.98479 5.99698 5.71912C5.99698 5.78031 5.93578 5.8415 5.93578 5.9027C5.69101 6.45344 5.69101 6.51463 5.62981 6.63702C5.50743 6.8206 5.32385 6.8818 5.20146 6.8818C5.07907 6.8818 5.01788 6.8206 5.01788 6.8206C4.95668 6.75941 4.89549 6.75941 4.83429 6.69822C4.40594 6.45344 3.97758 5.96389 3.61042 5.41315C3.42684 5.10718 3.24326 5.04599 3.12087 5.04599C2.69252 5.10718 2.44775 6.08628 2.44775 6.08628C1.28507 9.14596 1.77461 10.0639 1.77461 10.3086C1.83581 10.4922 1.897 10.6146 1.9582 10.9206C2.01939 11.8385 1.46864 12.0221 1.46864 12.0221C1.34626 12.0833 1.04029 12.2056 1.04029 12.2056C0.856709 12.2668 0.734318 12.3892 0.673125 12.5116C0.550737 12.6952 0.550743 12.8176 0.611937 13.0012C0.734324 13.2459 0.856706 13.4295 0.979093 13.6131C1.10148 13.7967 1.34625 13.9803 1.59103 14.2862C1.897 14.6534 2.26416 15.1429 2.50893 15.5713C2.57013 15.6937 2.69252 15.8161 2.75371 15.9385C2.75371 15.9996 2.8149 15.9997 2.8149 15.9997C3.18206 16.734 3.42684 17.1011 3.91639 17.4683C3.97758 17.5295 4.09998 17.5907 4.16117 17.6519C4.34475 17.7743 4.65072 17.9578 4.77311 18.019C4.89549 18.1414 5.50743 18.5698 4.46714 18.9369C2.9373 19.4877 1.897 18.9981 1.28506 18.4474C0.734318 18.019 0.489551 17.5907 0.489551 17.5907C0.428357 17.5295 0.367162 17.4683 0.305968 17.4071C0.183581 17.3459 0.122382 17.4683 0.0611881 17.5907C-5.59882e-06 17.7131 0 17.8355 0 18.019V19.916C1.59104 20.3444 2.8761 20.2832 3.67162 20.1608C3.8552 20.0996 4.03878 20.0996 4.22236 20.0384C8.26114 19.1205 11.6268 13.9803
836613.0954 10.5534C13.1566 10.431 13.2178 10.3086 13.2178 10.2474C13.3402 10.0027 13.4014 9.88028 13.4626 9.57432C13.4626 9.57432 13.585 9.26835 13.6462 9.08477C13.7074 9.02357 13.7074 9.02357 13.7074 9.02357C13.7686 9.02357 13.8298 9.14596 13.7686 9.32954C13.9522 9.20715 13.9522 9.20715 13.9522 9.26835Z" fill="#171717"/> 8367<title>leaf</title></svg> 8368 <lottie-player src="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/lottie/For-Life-8s.json" class="w-[63.75px] h-[34px]" speed="1" loop autoplay></lottie-player> 8369 </div> 8370 <a 8371 href="https://www.lafuma-moebel.de/customer/account/login/" 8372 id="customer-menu" 8373 class="block hover:text-black" 8374 aria-label="Mein Konto" 8375 > 8376 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" class="md:h-6 md:w-6" aria-hidden="true"> 8377<g clip-path="url(#clip0_593_18980)"> 8378<g clip-path="url(#clip1_593_18980)"> 8379<path d="M0.75 17.2489C0.75076 16.133 1.02804 15.0347 1.55706 14.0521C2.08607 13.0696 2.85033 12.2334 3.78149 11.6185C4.71265 11.0035 5.7817 10.6289 6.89305 10.5281C8.00439 10.4273 9.12339 10.6035 10.15 11.0409" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8380<path d="M7.5 8.99902C8.59402 8.99902 9.64323 8.56443 10.4168 7.79084C11.1904 7.01725 11.625 5.96804 11.625 4.87402C11.625 3.78001 11.1904 2.7308 10.4168 1.95721C9.64323 1.18362 8.59402 0.749023 7.5 0.749023C6.40598 0.749023 5.35677 1.18362 4.58318 1.95721C3.8096 2.7308 3.375 3.78001 3.375 4.87402C3.375 5.96804 3.8096 7.01725 4.58318 7.79084C5.35677 8.56443 6.40598 8.99902 7.5 8.99902Z" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8381<path d="M18 12C18.9946 12 19.9484 12.3951 20.6517 13.0983C21.3549 13.8016 21.75 14.7554 21.75 15.75V18.75C21.75 19.1478 21.908 19.5294 22.1893 19.8107C22.4706 20.092 22.8522 20.25 23.25 20.25H12.75C13.1478 20.25 13.5294 20.092 13.8107 19.8107C14.092 19.5294 14.25 19.1478 14.25 18.75V15.75C14.25 14.7554 14.6451 13.8016 15.3483 13.0983C16.0516 12.3951 17.0054 12 18 12Z" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8382<path d="M18 23.25C17.9005 23.25 17.8052 23.2105 17.7348 23.1402C17.6645 23.0698 17.625 22.9745 17.625 22.875C17.625 22.7755 17.6645 22.6802 17.7348 22.6098C17.8052 22.5395 17.9005 22.5 18 22.5" stroke="black" stroke-width="1.5"/> 8383<path d="M18 23.25C18.0995 23.25 18.1948 23.2105 18.2652 23.1402C18.3355 23.0698 18.375 22.9745 18.375 22.875C18.375 22.7755 18.3355 22.6802 18.2652 22.6098C18.1948 22.5395 18.0995 22.5 18 22.5" stroke="black" stroke-width="1.5"/> 8384</g> 8385</g> 8386<defs> 8387<clipPath id="clip0_593_18980"> 8388<rect width="24" height="24" fill="white"/> 8389</clipPath> 8390<clipPath id="clip1_593_18980"> 8391<rect width="24" height="24" fill="white"/> 8392</clipPath> 8393</defs> 8394</svg> 8395 </a> 8396</div>
8397<script> 8398 function initCustomerMenu() { 8399 return { 8400 isLoggedIn: false, 8401 isMobile: false, 8402 8403 onPrivateContentLoaded: function (data) { 8404 this.isLoggedIn = data.customer && data.customer.firstname; 8405 }, 8406 8407 handleClick: function () { 8408 if (this.isLoggedIn || this.isMobile) { 8409 window.location.href = '/customer/account'; 8410 return; 8411 } 8412 8413 this.$dispatch('toggle-lfl',{}); 8414 }, 8415 8416 checkIsMobileResolution() { 8417 this.isMobile = window.matchMedia('(max-width: 768px)').matches; 8418 } 8419 } 8420 } 8421</script>
8421<!-- /BLOCK header.customer --> 8422 <!--Cart Icon--> 8423 <a id="menu-cart-icon" 8424 @click.prevent.stop="$dispatch('toggle-cart',{});" class="relative inline-block no-underline hover:text-black" 8425 href="https://www.lafuma-moebel.de/checkout/cart/index/" 8426 > 8427 <span class="sr-only label"> 8428 Warenkorb </span> 8429 8430 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 md:w-6 hover:text-black" role="img"> 8431<g id="Icons-24px"> 8432<path id="Vector_15" d="M18.9361 20.625H5.06412C4.73934 20.6191 4.42607 20.5037 4.17505 20.2975C3.92404 20.0913 3.75 19.8064 3.68112 19.489L1.54312 10.489C1.48588 10.2735 1.47796 10.0478 1.51994 9.82875C1.56192 9.60972 1.65273 9.40297 1.78562 9.22386C1.91851 9.04476 2.09005 8.89791 2.2875 8.79423C2.48496 8.69055 2.70324 8.63271 2.92612 8.625H21.0741C21.297 8.63271 21.5153 8.69055 21.7127 8.79423C21.9102 8.89791 22.0817 9.04476 22.2146 9.22386C22.3475 9.40297 22.4383 9.60972 22.4803 9.82875C22.5223 10.0478 22.5144 10.2735 22.4571 10.489L20.3191 19.489C20.2502 19.8064 20.0762 20.0913 19.8252 20.2975C19.5742 20.5037 19.2609 20.6191 18.9361 20.625Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8433<path id="Vector_2_14" d="M4.5 8.625L9 3.375" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8434<path id="Vector_3_14" d="M19.5 8.625L15 3.375" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8435</g> 8436<title>shopping-cart</title></svg> 8437 8438 <span x-text="cart.summary_count" 8439 class="absolute top-0 right-0 hidden h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold 8440 leading-none text-center text-white uppercase transform -translate-x-1 8441 translate-y-1/2 rounded-full bg-primary" 8442 :class="{ 8443 'hidden': !cart.summary_count, 8444 'block': cart.summary_count }" 8445 ></span> 8446 </a> 8447 8448 </div> 8449 </div> 8450 <!--Search--> 8451 <div class="absolute z-[51] w-full bg-container-lighter border-container-lighter pt-10 md:pt-0 8452 top-0 md:top-auto lg:top-0 md:h-[calc(100%-1px)] md:max-w-9xl md:ml-[50%] md:-translate-x-1/2" 8453 id="search-content" 8454 :class="{ 'block': searchOpen}" x-cloak x-show="searchOpen" 8455 @click.outside="$dispatch('toggle-search');" 8456 > 8457 <div x-data="initLiveSearch()" x-init="initPopover()" @close-search.window="handlePopover(false)" 8458 @open-search.window="handlePopover(true)"> 8459 <div class="container mx-0 lg:mx-auto text-black w-[calc(100%-2.5rem)] lg:w-full lg:max-w-[47%]"> 8460 <form class="form minisearch" 8461 id="search_mini_form" 8462 action="https://www.lafuma-moebel.de/catalogsearch/result/" 8463 method="get" 8464 x-ref="searchMiniForm" 8465 > 8466 <div> 8467 <div class="group"> 8468 <div class="relative flex"> 8469 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 w-6 hover:text-black absolute top-7 left-4" role="img"> 8470<g clip-path="url(#clip0_106_1458_2)"> 8471<path d="M1.47208 13.3571C2.41223 15.5693 4.19265 17.3174 6.42168 18.2168C8.6507 19.1163 11.1457 19.0934 13.3579 18.1533C15.5701 17.2131 17.3182 15.4327 18.2176 13.2037C19.1171 10.9746 19.0942 8.4796 18.1541 6.26743C17.2139 4.05526 15.4335 2.30717 13.2045 1.40772C10.9754 0.508266 8.4804 0.531128 6.26824 1.47128C4.05607 2.41143 2.30798 4.19185 1.40852 6.42087C0.50907 8.6499 0.531933 11.1449 1.47208 13.3571Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8472<path d="M16.2209 16.2202L23.2499 23.2502" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8473</g> 8474<defs> 8475<clipPath id="clip0_106_1458_2"> 8476<rect width="24" height="24" fill="white"/> 8477</clipPath> 8478</defs> 8479<title>search</title></svg> 8480 <input id="search" 8481 class="w-full !py-3 !px-12 my-4 !border !border-primary-300 text-lg leading-normal transition 8482 appearance-none text-black font-medium focus:outline-none focus:border-transparent lg:text-xl 8483 !bg-primary-100" 8484 type="text" 8485 x-model="queryPhrase" 8486 name="q" 8487 value="" 8488 placeholder="Gesamten Shop hier durchsuchen..." 8489 maxlength="128" 8490 role="combobox" 8491 aria-haspopup="false" 8492 aria-autocomplete="both" 8493 autocomplete="off" 8494 aria-expanded="false"
8495 @input="getProducts(); $nextTick(() => this.searchOpen = true);" 8496 @keyup.enter="$refs.searchMiniForm.submit();" 8497 /> 8498 <a class="absolute right-4 top-8 cursor-pointer" @click.prevent="clearInput()"> 8499 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" class="w-2.5 h-2.5 text-primary-600" role="img"> 8500<g clip-path="url(#clip0_954_30807_2)"> 8501<g clip-path="url(#clip1_954_30807_2)"> 8502<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8503<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8504</g> 8505</g> 8506<defs> 8507<clipPath id="clip0_954_30807_2"> 8508<rect width="24" height="24" fill="white"/> 8509</clipPath> 8510<clipPath id="clip1_954_30807_2"> 8511<rect width="24" height="24" fill="white"/> 8512</clipPath> 8513</defs> 8514<title>close</title></svg> 8515 </a> 8516 </div> 8517 <div class="absolute flex-col z-50 shadow-xl lg:mt-[1px] bg-white w-full search-autocomplete left-0 top-28 md:top-auto" 8518 :class="{ 'block': searchOpen, 'hidden': !searchOpen }" x-show="true"> 8519 <div class="flex z-[11] relative lg:w-[100vw] lg:ml-[50%] lg:-translate-x-1/2 bg-container-lighter 8520 max-h-[calc(100vh-246px)] overflow-y-auto md:max-h-auto"> 8521 <template x-if="liveSearchProducts.length >= 1 && queryPhrase !== ''"> 8522 <div class="lg:max-w-9xl lg:mx-auto grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 md:mx-auto 8523 gap-x-4 gap-y-4 px-4 md:px-8 pt-1 md:pt-4 lg:pt-8 lg:px-4 xl:px-24 max-h-[610px] md:max-h-[29vh] lg:max-h-[40vh] overflow-y-auto md:overflow-hidden"> 8524 <template x-for="product in liveSearchProducts.slice(0, 7)"> 8525 <a class="flex flex-col p-2 hover:bg-gray-200 cursor-pointer border border-primary-200 p-4 gap-y-1 md:max-w-[164px] lg:max-w-[100%]" 8526 @click="handleProductClick(product)"> 8527 <div> 8528 <img class="mx-auto" :src="product.image" width="180" height="180"/> 8529 </div> 8530 <div class="flex-col"> 8531 <div class="h-24 line-clamp-6"> 8532 <div x-text="getProductModele(product.name)" class="font-medium text-sm leading-4">Fauteuil relax</div> 8533 <div x-text="getProductNameWithoutModele(product.name)" class="font-medium text-xs"></div> 8534 </div> 8535 <div class="flex flex-col text-sm"> 8536 <div x-text="window.hyva.formatPrice(product.price)" class="pt-2 font-semibold"></div> 8537 </div> 8538 </div> 8539 </a> 8540 </template> 8541 </div> 8542 </template> 8543 </div> 8544 <template x-if="liveSearchProducts.length >= 1 && queryPhrase !== ''"> 8545 <div class="relative z-[11] pt-8 pb-12 px-4 lg:my-0 lg:pt-8 lg:pb-12 lg:w-[100vw] lg:ml-[50%] lg:-translate-x-1/2 bg-container-lighter"> 8546 <button class="m-auto text-sm btn-size-md btn btn-secondary btn-with-arrow-black" 8547 type="submit"> 8548 Alle Produkte anzeigen </button> 8549 </div> 8550 </template> 8551 <div class="background-opacity full-viewport-less-scrollbar top-0 lg:w-[100vw] lg:ml-[50%] lg:-translate-x-1/2 absolute z-10 left-0 h-screen bg-black/30 cursor-pointer" 8552 @click="$dispatch('toggle-search');" 8553 > 8554 </div> 8555 </div> 8556 </div> 8557 </div> 8558 </form> 8559 </div> 8560 <button class="close-search flex gap-4 absolute top-16 right-4 md:right-8 lg:right-12 md:top-6 3xl:right-0" 8561 @click="$dispatch('toggle-search');">
8562 <span class="hidden lg:block">Stornieren</span> 8563 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 8564<g clip-path="url(#clip0_954_30807_3)"> 8565<g clip-path="url(#clip1_954_30807_3)"> 8566<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8567<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 8568</g> 8569</g> 8570<defs> 8571<clipPath id="clip0_954_30807_3"> 8572<rect width="24" height="24" fill="white"/> 8573</clipPath> 8574<clipPath id="clip1_954_30807_3"> 8575<rect width="24" height="24" fill="white"/> 8576</clipPath> 8577</defs> 8578<title>close</title></svg> 8579 </button> 8580</div> 8581
8582<script> 8583 function initLiveSearch() { 8584 8585 'use strict'; 8586 8587 return { 8588 queryPhrase: '', 8589 liveSearchProducts: [], 8590 liveSearchSuggestions: [], 8591 searchOpen: false, 8592 search: null, 8593 searchId: '36e0fe3f-653b-4443-84c0-b90d99155ba0_de_de_de_de', 8594 8595 initPopover() { 8596 this.search = this.buildSearch(); 8597 this.initTogglePopover(); 8598 }, 8599 8600 buildSearch() { 8601 window.magentoStorefrontEvents.context.setSearchExtension({ 8602 version: "4.6.0" 8603 }); 8604 return new MagentoLiveSearch({ 8605 environmentId: "36e0fe3f-653b-4443-84c0-b90d99155ba0", 8606 websiteCode: "de", 8607 storeCode: "de", 8608 storeViewCode: "de_de", 8609 apiKey: "search_gql", 8610 }); 8611 }, 8612 8613 initTogglePopover() { 8614 const popover = document.getElementById('search'); 8615 8616 if (popover) { 8617 popover.addEventListener('focus', () => { 8618 this.searchOpen = true; 8619 }); 8620 } 8621 }, 8622 8623 handlePopover(toggleValue) { 8624 this.searchOpen = toggleValue; 8625 }, 8626 8627 handleProductClick(product) { 8628 window.magentoStorefrontEvents.context.setSearchResults( 8629 window.magentoStorefrontEvents.context.getSearchResults() 8630 ); 8631 8632 window.magentoStorefrontEvents.publish.searchProductClick("search-bar", 8633 { productId: product.id } 8634 ); 8635 8636 setTimeout(() => window.location.href = product.url, 500); 8637 }, 8638 8639 searchSuggestion(suggestion, event) { 8640 document.getElementById('search').value = suggestion; 8641 document.getElementById('search_mini_form').submit(); 8642 }, 8643 8644 async getProducts() { 8645 if (this.queryPhrase.trim() === '') { 8646 this.liveSearchProducts = []; 8647 return; 8648 } 8649 8650 this.searchOpen = true; 8651 const result = await this.getLiveSearchProducts(); 8652 8653 if (!result?.data?.productSearch?.items) { 8654 this.liveSearchProducts = []; 8655 return; 8656 } 8657 8658 // 1. Extraction et mapping de base depuis Live Search (On utilise le minimum_price) 8659 let products = result.data.productSearch.items.map(item => ({ 8660 name: item.product.name, 8661 sku: item.product.sku, 8662 type: item.product.__typename, // Capture du type (ex: BundleProduct) 8663 price: item.product.price_range.minimum_price.final_price.value, 8664 currency: item.product.price_range.minimum_price.final_price.currency, 8665 image: item.product.image ? item.product.image.url : 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Magento_Catalog/images/product/placeholder/small_image.jpg', 8666 url: item.product.canonical_url, 8667 id: item.product.id 8668 })); 8669 8670 const bundleSkus = products 8671 .filter(p => p.type === 'BundleProduct') 8672 .map(p => p.sku); 8673 8674 if (bundleSkus.length > 0) { 8675 try { 8676 const graphqlResponse = await fetch('/graphql', { 8677 method: 'POST', 8678 headers: { 'Content-Type': 'application/json' }, 8679 body: JSON.stringify({ 8680 query: ` 8681 query($skus: [String!]!) { 8682 getBundleCustomPrices(skus: $skus) { 8683 prices { 8684 sku 8685 final_price 8686 } 8687 } 8688 } 8689 `, 8690 variables: { skus: bundleSkus } 8691 }) 8692 }); 8693 8694 const customPricesData = await graphqlResponse.json(); 8695 const verifiedPrices = customPricesData?.data?.getBundleCustomPrices?.prices || []; 8696 8697 products = products.map(product => { 8698 const exactMatch = verifiedPrices.find(vp => vp.sku === product.sku); 8699 if (exactMatch) { 8700 product.price = exactMatch.final_price; 8701 } 8702 return product; 8703 }); 8704 } catch (err) { 8705 console.error("Erreur d'enrichissement des prix bundles :", err); 8706 } 8707 } 8708 8709 this.liveSearchProducts = products; 8710 this.liveSearchSuggestions = result.data.productSearch.suggestions; 8711 }, 8712 8713 async getLiveSearchProducts() { 8714 this.searchRequestId = Math.random().toString(16).slice(2); 8715 8716 if (!this.search) { 8717 return []; 8718 } 8719 8720 const searchCtx = { 8721 units: [{ 8722 searchUnitId: "search-bar", 8723 queryTypes: ["products"], 8724 phrase: this.queryPhrase, 8725 currentPage: 1, 8726 pageSize: 1, 8727 filter: [], 8728 sort: [{attribute: "relevance", direction: "DESC"}], 8729 searchRequestId: this.searchRequestId 8730 }] 8731 }; 8732 8733 window.magentoStorefrontEvents.context.setSearchInput(searchCtx); 8734 window.magentoStorefrontEvents.publish.searchRequestSent("search-bar"); 8735 8736 const before = Date.now(); 8737 8738 const result = await this.search.productSearch({ 8739 phrase: this.queryPhrase, 8740 data: { 8741 products: true, 8742 facets: true, 8743 suggestions: true 8744 } 8745 }); 8746 8747 const after = Date.now(); 8748 8749 const productItems = result.data.productSearch.items || []; 8750 const suggestions = result.data.productSearch.suggestions || []; 8751 const facets = result.data.productSearch.facets || []; 8752 8753 const formattedProductItems = productItems.map((item, key) => ({ 8754 name: item.product.name, 8755 sku: item.product.sku, 8756 url: item.product.canonical_url, 8757 imageUrl: item.product.image ? item.product.image.url : 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Magento_Catalog/images/product/placeholder/small_image.jpg', 8758 price: item.product.price_range.minimum_price.final_price.value, 8759 rank: key 8760 })); 8761 8762 const formattedSuggestions = suggestions.map((item, key) => ({ 8763 suggestion: item, 8764 rank: key, 8765 })); 8766 8767 const formattedFacets = facets.map((facet) => ({ 8768 attribute: facet.attribute, 8769 title: facet.title, 8770 type: facet.type || "PINNED", 8771 buckets: facet.buckets.map((bucket) => bucket), 8772 })); 8773 8774 const searchCtxUpdated = { 8775 units: [{ 8776 searchUnitId: "search-bar", 8777 searchRequestId: this.searchRequestId, 8778 executionTime: after - before, 8779 products: formattedProductItems, 8780 categories: [], 8781 suggestions: formattedSuggestions, 8782 page: result.data.productSearch.page_info.current_page, 8783 perPage: result.data.productSearch.page_info.page_size, 8784 facets: formattedFacets 8785 }] 8786 }; 8787 8788 window.magentoStorefrontEvents.context.setSearchResults(searchCtxUpdated); 8789 window.magentoStorefrontEvents.publish.searchResponseReceived("search-bar"); 8790 8791 return result; 8792 }, 8793 8794 getProductModele(name) { 8795 let splitName = name.split(' - '); 8796 return splitName[0]; 8797 }, 8798 8799 getProductNameWithoutModele(name) { 8800 let splitName = name.split(' - '), 8801 newName = ''; 8802 8803 for (let i = 1; i < splitName.length; i++) { 8804 newName += splitName[i]; 8805 } 8806 8807 return newName; 8808 }, 8809 8810 clearInput() { 8811 let inputElement = document.getElementById("search"); 8812 if (inputElement) { 8813 inputElement.value = ''; 8814 this.queryPhrase = ''; 8815 this.liveSearchProducts = []; 8816 this.searchOpen = false;
8817 } 8818 } 8819 } 8820 } 8821</script>
8821 8822 </div> 8823 8824 <!--Cart Drawer--> 8825
8825<script> 8826 function initCartDrawer() { 8827 return { 8828 open: false, 8829 isLoading: false, 8830 cart: {}, 8831 maxItemsToDisplay: 10, 8832 itemsCount: 0, 8833 totalCartAmount: 0, 8834 getData(data) { 8835 if (data.cart) { 8836 this.cart = data.cart; 8837 this.itemsCount = data.cart.items && data.cart.items.length || 0; 8838 this.totalCartAmount = this.cart.summary_count; 8839 this.setCartItems(); 8840 } 8841 this.isLoading = false; 8842 }, 8843 cartItems: [], 8844 cartMessages: [], 8845 getItemCountTitle() { 8846 return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.totalCartAmount) 8847 }, 8848 setCartItems() { 8849 this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; 8850 8851 if (this.maxItemsToDisplay > 0) { 8852 this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); 8853 } 8854 }, 8855 deleteItemFromCart(itemId) { 8856 this.isLoading = true; 8857 8858 const formKey = hyva.getFormKey(); 8859 const postUrl = BASE_URL + 'checkout/sidebar/removeItem/'; 8860 8861 fetch(postUrl, { 8862 "headers": { 8863 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 8864 }, 8865 "body": "form_key=" + formKey + "&item_id=" + itemId, 8866 "method": "POST", 8867 "mode": "cors", 8868 "credentials": "include" 8869 }).then(response => { 8870 if (response.redirected) { 8871 window.location.href = response.url; 8872 } else if (response.ok) { 8873 return response.json(); 8874 } else { 8875 window.dispatchMessages && window.dispatchMessages([{ 8876 type: 'warning', 8877 text: 'Der\u0020Artikel\u0020konnte\u0020nicht\u0020aus\u0020dem\u0020Angebot\u0020entfernt\u0020werden.' 8878 }]); 8879 this.isLoading = false; 8880 } 8881 }).then(result => { 8882 window.dispatchMessages && window.dispatchMessages([{ 8883 type: result.success ? 'success' : 'error', 8884 text: result.success 8885 ? 'Sie\u0020haben\u0020den\u0020Artikel\u0020entfernt.' 8886 : result.error_message 8887 }], result.success ? 5000 : 0) 8888 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 8889 }); 8890 }, 8891 toggleCartDrawer(event) { 8892 if (event.detail && event.detail.isOpen !== undefined) { 8893 if (event.detail.isOpen) { 8894 this.openCartDrawer() 8895 } else { 8896 this.open = false 8897 this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent) 8898 } 8899 } else { 8900 this.openCartDrawer() 8901 } 8902 }, 8903 setCartMessages(event) { 8904 this.cartMessages = [...this.cartMessages, event.detail]; 8905 }, 8906 emptyCartMessages() { 8907 this.cartMessages = []; 8908 }, 8909 openCartDrawer() { 8910 this.open = true; 8911 this.$nextTick(() => { 8912 this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent) 8913 }) 8914 }, 8915 closeCartDrawer() { 8916 this.$dispatch('toggle-cart', { isOpen: false }) 8917 this.emptyCartMessages(); 8918 } 8919 } 8920 } 8921</script>
8921 8922<section x-cloak 8923 x-show="cart" 8924 id="cart-drawer" 8925 x-data="initCartDrawer()" 8926 @private-content-loaded.window="getData($event.detail.data)" 8927 @toggle-cart.window="toggleCartDrawer($event)" 8928 @keydown.window.escape="closeCartDrawer" 8929> 8930 <div role="dialog" 8931 aria-labelledby="cart-drawer-title" 8932 aria-modal="true" 8933 :aria-hidden="!open" 8934 class="fixed inset-y-0 right-0 z-[60] flex max-w-full"> 8935 <div class="backdrop" 8936 x-show="open" 8937 x-transition:enter="ease-in-out duration-500" 8938 x-transition:enter-start="opacity-0" 8939 x-transition:enter-end="opacity-100" 8940 x-transition:leave="ease-in-out duration-500" 8941 x-transition:leave-start="opacity-100" 8942 x-transition:leave-end="opacity-0" 8943 role="button" 8944 @click="closeCartDrawer" 8945 aria-label="Close minicart"></div> 8946 <div class="relative w-screen max-w-md shadow-2xl" 8947 x-show="open" 8948 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 8949 x-transition:enter-start="translate-x-full" 8950 x-transition:enter-end="translate-x-0" 8951 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 8952 x-transition:leave-start="translate-x-0" 8953 x-transition:leave-end="translate-x-full" 8954 x-ref="cartDialogContent" 8955 role="region" 8956 :tabindex="open ? 0 : -1" 8957 aria-label="Mein Warenkorb" 8958 8959 > 8960 <div class="flex flex-col h-full max-h-screen bg-white shadow-xl overflow-auto"> 8961 8962 <div class="relative flex py-6 px-6 gap-4"> 8963 <div id="cart-drawer-title" 8964 class="relative inline-block text-lg font-medium"> 8965 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="h-6 md:w-6 hover:text-black" role="img"> 8966<g id="Icons-24px_2"> 8967<path id="Vector_16" d="M18.9361 20.625H5.06412C4.73934 20.6191 4.42607 20.5037 4.17505 20.2975C3.92404 20.0913 3.75 19.8064 3.68112 19.489L1.54312 10.489C1.48588 10.2735 1.47796 10.0478 1.51994 9.82875C1.56192 9.60972 1.65273 9.40297 1.78562 9.22386C1.91851 9.04476 2.09005 8.89791 2.2875 8.79423C2.48496 8.69055 2.70324 8.63271 2.92612 8.625H21.0741C21.297 8.63271 21.5153 8.69055 21.7127 8.79423C21.9102 8.89791 22.0817 9.04476 22.2146 9.22386C22.3475 9.40297 22.4383 9.60972 22.4803 9.82875C22.5223 10.0478 22.5144 10.2735 22.4571 10.489L20.3191 19.489C20.2502 19.8064 20.0762 20.0913 19.8252 20.2975C19.5742 20.5037 19.2609 20.6191 18.9361 20.625Z" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8968<path id="Vector_2_15" d="M4.5 8.625L9 3.375" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8969<path id="Vector_3_15" d="M19.5 8.625L15 3.375" stroke="#171717" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/> 8970</g> 8971<title>shopping-cart</title></svg> 8972 <span x-text="cart.summary_count" 8973 class="absolute bottom-0 right-0 hidden h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold 8974 leading-none text-center text-white uppercase transform -translate-x-1 8975 translate-y-1/2 rounded-full bg-primary z-50" 8976 :class="{ 8977 'hidden': !cart.summary_count, 8978 'block': cart.summary_count }" 8979 ></span> 8980 </div> 8981 <p class="">Warenkorb</p> 8982 </div> 8983 8984 8985 <template x-if="!itemsCount"> 8986 <div class="relative py-6 bg-white border-bs px-6 border-container"> 8987 Ihr Warenkorb ist leer. </div> 8988 </template> 8989 8990 8991 <template @cart-messages.window="setCartMessages($event)" 8992 x-for="message in cartMessages"> 8993 <div class="relative gap-1 py-4 px-6 bg-primary-100 flex justify-center items-center"> 8994 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
8994ox="0 0 10 10" fill="none" class="w-2.5 h-2.5" role="img"> 8995<g id="Icons-10px_4" clip-path="url(#clip0_1510_34075)"> 8996<path id="Vector_17" d="M0.5 6.25L2.245 8.4C2.33675 8.51023 2.45179 8.59877 2.58183 8.65925C2.71188 8.71973 2.85371 8.75065 2.99713 8.74979C3.14055 8.74893 3.28199 8.71631 3.4113 8.65427C3.54061 8.59224 3.65458 8.50233 3.745 8.391L9.5 1.25" stroke="#171717" stroke-linecap="round" stroke-linejoin="round"/> 8997</g> 8998<defs> 8999<clipPath id="clip0_1510_34075"> 9000<rect width="10" height="10" fill="white"/> 9001</clipPath> 9002</defs> 9003<title>check-black</title></svg> 9004 <span class="font-bold" x-text="message.text"></span> 9005 </div> 9006 </template> 9007 9008 <template x-if="itemsCount"> 9009 <div class="relative grid gap-3 py-6 overflow-y-auto overscroll-y-contain bg-white 9010 px-6 border-container min-h-[145px]" 9011 > 9012 <template x-for="item in cartItems"> 9013 <div class="product-item-minicart flex items-start p-4 border border-primary-200 9014 relative gap-x-3"> 9015 <template x-if="item.label_amasty"> 9016 <span class="label-amasty absolute top-0 left-0 p-1 bg-red-600 9017 text-xxs font-semibold text-white" 9018 x-html="item.label_amasty"></span> 9019 </template> 9020 9021 <a :href="item.product_url" 9022 class="w-1/4 focus-visible:outline-none" 9023 :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)" 9024 > 9025 <img 9026 class="focus-visible:outline-none" 9027 :src="item.product_image.src" 9028 :width="item.product_image.width" 9029 :height="item.product_image.height" 9030 loading="lazy" 9031 alt="" 9032 /> 9033 </a> 9034 <div class="w-3/4 space-y-2"> 9035 <div> 9036 <div class="item-name-minicart text-sm text-primary-900 font-normal"> 9037 <p> 9038 <template x-if="item.freegift_prefix"> 9039 <span x-html="item.freegift_prefix"></span> 9040 </template> 9041 <template x-if="item.nom_generique"> 9042 <span x-html="item.nom_generique"></span> 9043 </template> 9044 </p> 9045 <template x-if="item.modele"> 9046 <span class="after:ml-1 after:content-['-']" 9047 x-html="item.modele"> 9048 </span> 9049 </template> 9050 <template x-if="item.matiere"> 9051 <span class="after:ml-1 after:content-['-']" 9052 x-html="item.matiere"> 9053 </span> 9054 </template> 9055 <span x-html="item.groupe_couleur"></span> 9056 <span x-html="item.couleur_principale"></span> 9057 </div> 9058 </div> 9059 <template x-for="option in item.options"> 9060 <div class="pt-2"> 9061 <p class="font-semibold" x-text="option.label + ':'"></p> 9062 <p class="text-secondary" x-html="option.value"></p> 9063 </div> 9064 </template> 9065 </div> 9066 9067 <p class="price-box">
9068 <span x-html="item.product_price"></span> 9069 <template x-if="item.old_price_with_ecotax"> 9070 <span class="old-price"> 9071 <span class="price-container" 9072 x-html="item.old_price_with_ecotax"></span> 9073 </span> 9074 </template> 9075 </p> 9076 </div> 9077 </template> 9078 </div> 9079 </template> 9080 9081 <template x-if="itemsCount"> 9082 <div> 9083 9084 <div class="relative grid gap-6 py-6 bg-white sm:gap-8 px-6"> 9085 <div class="w-full space-x-4"> 9086 <p class="flex justify-between font-semibold uppercase text-xl"> 9087 Montant total <span x-html="cart.subtotal" class=""></span></p> 9088 </div> 9089 <div class="w-full flex flex-col gap-4"> 9090 <a href="https://www.lafuma-moebel.de/checkout/cart/" 9091 class="btn btn-primary btn-size-sm md:btn-size-md btn-with-arrow w-full justify-center" 9092 > 9093 Warenkorb anzeigen </a> 9094 <button @click="closeCartDrawer" 9095 class="btn btn-secondary btn-size-sm md:btn-size-md btn-with-arrow-black w-full justify-center" 9096 > 9097 Mit dem Einkauf fortfahren </button> 9098 </div> 9099 <div class="w-full"> 9100 <style>::backdrop { 9101--tw-border-spacing-x: 0; 9102--tw-border-spacing-y: 0; 9103--tw-translate-x: 0; 9104--tw-translate-y: 0; 9105--tw-rotate: 0; 9106--tw-skew-x: 0; 9107--tw-skew-y: 0; 9108--tw-scale-x: 1; 9109--tw-scale-y: 1; 9110--tw-pan-x: ; 9111--tw-pan-y: ; 9112--tw-pinch-zoom: ; 9113--tw-scroll-snap-strictness: proximity; 9114--tw-gradient-from-position: ; 9115--tw-gradient-via-position: ; 9116--tw-gradient-to-position: ; 9117--tw-ordinal: ; 9118--tw-slashed-zero: ; 9119--tw-numeric-figure: ; 9120--tw-numeric-spacing: ; 9121--tw-numeric-fraction: ; 9122--tw-ring-inset: ; 9123--tw-ring-offset-width: 0px; 9124--tw-ring-offset-color: #fff; 9125--tw-ring-color: rgb(59 130 246 / 0.5); 9126--tw-ring-offset-shadow: 0 0 #0000; 9127--tw-ring-shadow: 0 0 #0000; 9128--tw-shadow: 0 0 #0000; 9129--tw-shadow-colored: 0 0 #0000; 9130--tw-blur: ; 9131--tw-brightness: ; 9132--tw-contrast: ; 9133--tw-grayscale: ; 9134--tw-hue-rotate: ; 9135--tw-invert: ; 9136--tw-saturate: ; 9137--tw-sepia: ; 9138--tw-drop-shadow: ; 9139--tw-backdrop-blur: ; 9140--tw-backdrop-brightness: ; 9141--tw-backdrop-contrast: ; 9142--tw-backdrop-grayscale: ; 9143--tw-backdrop-hue-rotate: ; 9144--tw-backdrop-invert: ; 9145--tw-backdrop-opacity: ; 9146--tw-backdrop-saturate: ; 9147--tw-backdrop-sepia: 9148}</style> 9149<style>#html-body [data-pb-style=KBE9J0U]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin:0;padding:0}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="KBE9J0U"><div class="minicart-information-payment" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center; line-height: 20px;"><img id="XCV7YWI" style="width: 10px; height: 10px;" src="https://www.lafuma-mobilier.fr/media/wysiwyg/icons/cb.svg" alt="" width="10" height="10"><span style="font-family: Barlow;"> Sicher einkaufen</span></p></div></div> </div> 9150 </div> 9151 9152 </div> 9153 </template> 9154 9155 </div> 9156 9157 <button 9158 type="button" 9159 @click="closeCartDrawer" 9160 aria-label="Close minicart" 9161 class="absolute top-0 right-0 p-4 mt-2" 9162 > 9163 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
9163ox="0 0 24 24" fill="none" class="w-2.5 h-2.5 hover:text-black" role="img"> 9164<g clip-path="url(#clip0_954_30807_4)"> 9165<g clip-path="url(#clip1_954_30807_4)"> 9166<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 9167<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 9168</g> 9169</g> 9170<defs> 9171<clipPath id="clip0_954_30807_4"> 9172<rect width="24" height="24" fill="white"/> 9173</clipPath> 9174<clipPath id="clip1_954_30807_4"> 9175<rect width="24" height="24" fill="white"/> 9176</clipPath> 9177</defs> 9178<title>close</title></svg> 9179 </button> 9180 </div> 9181 <div 9182 class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-slate-800" 9183 x-cloak 9184 x-show="isLoading" 9185 x-transition.opacity.duration.200ms 9186> 9187 <div class="flex gap-10 items-center p-4"> 9188 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> 9189 <style> 9190 @keyframes spinner-ball-triangle1 { 9191 0% { transform: translate(0%, 0%); } 9192 33% { transform: translate(38%, -79%); } 9193 66% { transform: translate(77%, 0%); } 9194 100% { transform: translate(0%, 0%); } 9195 } 9196 9197 @keyframes spinner-ball-triangle2 { 9198 0% { transform: translate(0%, 0%); } 9199 33% { transform: translate(38%, 79%); } 9200 66% { transform: translate(-38%, 79%); } 9201 100% { transform: translate(0%, 0%); } 9202 } 9203 9204 @keyframes spinner-ball-triangle3 { 9205 0% { transform: translate(0%, 0%); } 9206 33% { transform: translate(-77%, 0%); } 9207 66% { transform: translate(-38%, -79%); } 9208 100% { transform: translate(0%, 0%); } 9209 } 9210 </style> 9211 <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/> 9212 <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/> 9213 <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/> 9214</svg> 9215 <span class="text-xl select-none"> 9216 Wird geladen ⦠</span> 9217 </div> 9218</div> 9219 </div> 9220 9221</section> 9222 <!--LFL Drawer--> 9223
9223<script> 9224 function initLFLDrawer() { 9225 return { 9226 open: false, 9227 isLoading: false, 9228 toggleLFLDrawer(event) { 9229 if (event.detail && event.detail.isOpen !== undefined) { 9230 if (event.detail.isOpen) { 9231 this.openLFLDrawer() 9232 } else { 9233 this.open = false 9234 this.$refs && this.$refs.lflDialogContent && hyva.releaseFocus(this.$refs.lflDialogContent) 9235 } 9236 } else { 9237 this.openLFLDrawer() 9238 } 9239 }, 9240 openLFLDrawer() { 9241 this.open = true; 9242 document.body.style.overflow = 'hidden'; 9243 this.calculateTop(); 9244 }, 9245 closeLFLDrawer() { 9246 document.body.style.overflow = 'auto'; 9247 this.$dispatch('toggle-lfl', { isOpen: false }) 9248 }, 9249 calculateTop() { 9250 const header = document.getElementsByTagName('header')[0]; 9251 this.$refs.lflDialog.style.top = header?.offsetHeight + "px"; 9252 this.$refs.backdrop.style.top = header?.offsetHeight + "px"; 9253 }, 9254 initEvent() { 9255 const self = this; 9256 document.getElementsByTagName('header')[0]?.addEventListener('click', () => { 9257 self.$dispatch('toggle-lfl', { isOpen: false }) 9258 }); 9259 } 9260 } 9261 } 9262</script>
9262 9263<section x-cloak 9264 id="lfl-drawer" 9265 x-data="initLFLDrawer()" 9266 x-init="initEvent()" 9267 @private-content-loaded.window="getData($event.detail.data)" 9268 @toggle-lfl.window="toggleLFLDrawer($event)" 9269 @keydown.window.escape="closeLFLDrawer" 9270> 9271 <div role="dialog" 9272 aria-labelledby="lfl-drawer-title" 9273 aria-modal="true" 9274 :aria-hidden="!open" 9275 x-ref="lflDialog" 9276 class="fixed bottom-0 right-0 z-50 flex max-w-full" 9277 @resize.window.debounce="calculateTop"> 9278 <div class="backdrop" 9279 x-show="open" 9280 x-ref="backdrop" 9281 x-transition:enter="ease-in-out duration-500" 9282 x-transition:enter-start="opacity-0" 9283 x-transition:enter-end="opacity-100" 9284 x-transition:leave="ease-in-out duration-500" 9285 x-transition:leave-start="opacity-100" 9286 x-transition:leave-end="opacity-0" 9287 role="button" 9288 @click="closeLFLDrawer" 9289 aria-label="Close minicart"></div> 9290 <div class="relative w-screen max-w-[375px] shadow-2xl" 9291 x-show="open" 9292 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 9293 x-transition:enter-start="translate-x-full" 9294 x-transition:enter-end="translate-x-0" 9295 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 9296 x-transition:leave-start="translate-x-0" 9297 x-transition:leave-end="translate-x-full" 9298 x-ref="lflDialogContent" 9299 role="region" 9300 :tabindex="open ? 0 : -1" 9301 aria-label="Lafuma for life" 9302 9303 > 9304 <div class="flex flex-col h-full max-h-screen bg-white shadow-xl overflow-auto pt-14"> 9305 <div class="container px-8"> 9306 <div class="lfl-logo flex justify-center mt-2 mx-auto"> 9307 <a class="flex justify-between max-w-[268px]" href="https://www.lafuma-moebel.de/customer/account/"> 9308 <svg xmlns="http://www.w3.org/2000/svg" width="162" height="30" viewBox="0 0 163 31" fill="none" class="w-40 h-8 mt-0.5 mr-1" role="img"> 9309<path fill-rule="evenodd" clip-rule="evenodd" d="M50.1028 0.691413C50.1028 0.691413 48.8925 0.412109 47.4029 0.412109C46.565 0.412109 45.7271 0.505211 44.9823 0.691413C44.7961 0.691413 44.7961 0.784513 44.7961 0.784513L44.3306 0.877615C40.6065 1.80863 38.7445 4.32236 38.6514 8.41881V9.44292H36.2308V14.4704H38.5583V29.739H44.703V14.3773H49.1718V9.34982H44.703V8.41881C44.703 6.55678 44.7961 4.69476 48.2408 4.69476C49.1718 4.69476 50.0097 4.88096 50.0097 4.88096L50.1028 0.691413ZM35.1172 29.6461V15.3085C35.2103 10.6534 32.3242 8.6983 25.714 8.6052C24.2244 8.5121 21.7107 8.8845 19.6624 10.0017C17.8004 11.0258 16.8694 12.6085 16.6832 14.843H21.8969C22.3624 12.9809 23.852 12.5154 25.6209 12.5154C27.4829 12.5154 29.1587 12.7016 29.1587 14.843C29.1587 16.0533 28.7863 16.705 28.0415 17.0774C27.4216 17.3431 25.8749 17.5245 24.3632 17.7019L24.1313 17.7291C20.221 18.1946 15.6591 18.7532 15.6591 24.1531C15.6591 27.4116 18.8245 30.2047 22.5486 30.2047C28.0415 30.2047 29.2518 27.1323 29.2518 27.1323V29.6461H35.1172ZM28.0415 25.3634C27.1105 26.2013 26.0864 26.3875 24.5037 26.3875C22.4555 26.3875 21.3382 25.4565 21.3382 23.6876C21.3382 21.4573 23.6836 21.0592 25.578 20.7377L25.5781 20.7377C25.8188 20.6968 26.0522 20.6572 26.2726 20.6152C28.2277 20.2428 29.1587 20.0566 29.1587 20.0566V21.4531L29.1529 21.6044C29.0652 23.8976 29.044 24.4521 28.0415 25.3634ZM129.242 10.0944C129.708 10.0944 130.173 10.2806 130.546 10.653C130.918 11.0254 131.105 11.4909 131.105 11.9564C131.105 12.4219 130.918 12.8874 130.546 13.2598C130.173 13.6322 129.708 13.8184 129.242 13.8184C128.777 13.8184 128.311 13.6322 127.939 13.2598C127.567 12.8874 127.38 12.4219 127.38 11.9564C127.38 10.9323 128.218 10.0944 129.242 10.0944ZM128.032 13.2598C128.311 13.5391 128.777 13.7253 129.242 13.7253C130.174 13.7253 130.918 12.9805 130.918 12.0495C130.918 11.584 130.732 11.1185 130.453 10.8392C130.08 10.5599 129.708 10.3737 129.242 10.3737C128.777 10.3737 128.311 10.4668 128.032 10.8392C127.753
930911.1185 127.567 11.584 127.567 12.0495C127.567 12.515 127.753 12.9805 128.032 13.2598ZM129.989 11.6777C129.989 11.8639 129.709 12.0501 129.337 12.1432L130.361 12.9811H129.989L129.151 12.1432H128.965V12.9811H128.592V11.1191H128.965C129.151 11.1191 129.43 11.1191 129.616 11.2122C129.803 11.3053 129.989 11.4915 129.989 11.6777ZM128.872 11.8639H128.965C129.337 11.8639 129.616 11.8639 129.616 11.5846C129.616 11.3053 129.337 11.2122 128.965 11.2122H128.872V11.8639ZM110.436 10.0017C112.484 8.8845 114.998 8.5121 116.487 8.6052C123.098 8.6983 125.891 10.6534 126.077 15.3085V29.6461H120.025V27.1323C120.025 27.1323 118.815 30.2047 113.322 30.2047C109.598 30.2047 106.432 27.4116 106.432 24.1531C106.432 18.7532 110.994 18.1946 114.905 17.7291L115.137 17.7019C116.648 17.5245 118.195 17.3431 118.815 17.0774C119.56 16.705 119.932 16.0533 119.932 14.843C119.932 12.7016 118.163 12.5154 116.301 12.5154C114.532 12.5154 113.136 12.9809 112.67 14.843H107.457C107.736 12.6085 108.574 11.0258 110.436 10.0017ZM118.815 25.3634C119.932 24.5255 119.932 23.9669 119.932 21.5463V20.0566C119.932 20.0566 119.001 20.2428 117.046 20.6152C116.826 20.6572 116.592 20.6968 116.351 20.7377C114.457 21.0592 112.112 21.4573 112.112 23.6876C112.112 25.4565 113.229 26.3875 115.277 26.3875C116.86 26.3875 117.884 26.2013 118.815 25.3634ZM6.44155 0.412683V24.1535H14.3551V29.6464H0.296875V0.412683H6.44155ZM85.3018 8.88454C82.695 8.88454 80.3675 10.0949 78.8778 12.1431H78.7847V9.44315H73.1056V29.6461H79.1571V17.9154C79.1571 13.912 81.8571 13.2603 82.9743 13.2603C86.3444 13.2603 86.3352 15.7103 86.3268 17.9546V17.9561C86.3263 18.0673 86.3259 18.1779 86.3259 18.2878V29.6461H92.0982V18.3809C92.0982 15.8671 92.6568 13.2603 95.8222 13.2603C98.9877 13.2603 99.267 15.4947 99.267 18.1947V29.6461H105.039V16.0533C105.039 10.8397 102.246 8.79144 97.405 8.79144C94.6119 8.79144 92.4706 10.3742 91.2603 12.1431C90.1431 9.72246 87.9087 8.88454 85.3018 8.88454ZM56.8092 9.4432V20.8946C56.8092 24.4325 57.9264 26.1083 60.5332 26.1083C63.6987 26.1083 64.909 24.3394 64.909 20.0567V9.4432H70.9606V29.7392H65.1883V27.2255L64.909 27.5048C63.6987 29.0875 61.1849 30.2048 58.7643 30.2048C53.3644 30.2048 50.7576 27.5048 50.7576 21.9188V9.4432H56.8092Z" fill="#171717"/> 9310<path d="M153.075 13.8189C152.982 14.2844 152.795 15.2154 152.423 16.2396C152.33 16.3327 152.33 16.4258 152.33 16.612C151.771 18.1947 150.933 20.1498 148.885 23.2221C147.116 25.7359 144.696 28.1565 142.647 29.2737L142.74 29.3668L142.834 29.4599C143.485 29.7392 144.137 29.8323 144.696 30.0185C148.978 31.0426 152.051 30.2047 152.051 30.2047C152.423 30.1116 152.982 30.0185 153.354 30.0185C154.006 30.0185 154.657 30.1116 154.657 30.1116C155.123 30.1116 155.495 30.1116 155.682 29.9254C156.054 29.7392 156.054 29.553 156.054 29.3668C156.054 29.0875 155.961 28.9944 155.775 28.8082C155.588 28.622 155.402 28.3427 155.402 28.1565C155.309 27.691 155.961 27.5979 155.961 27.5979C158.009 26.76 158.94 25.7359 158.94 25.7359C159.871 24.7118 160.057 24.1532 160.523 23.6877C160.895 23.2221 162.106 21.8256 162.199 21.6394C162.478 21.267 162.571 20.9877 162.478 20.8015C162.385 20.4291 162.012 20.336 161.64 20.336C161.175 20.2429 160.616 20.336 160.616 20.336C160.15 20.4291 159.778 20.336 159.592 20.2429C159.406 20.1498 159.312 20.1498 159.312 20.1498C159.126 20.0567 159.033 20.0567 159.033 19.9636C158.847 19.7774 158.754 19.6843 158.754 19.4981C158.661 18.7533 159.685 17.7292 159.685 17.7292C160.523 16.7982 160.709 16.3327 160.988 15.681C161.361 14.6568 162.012 13.3534 162.012 13.3534C162.292 12.7948 162.106 12.4224 162.106 12.4224C162.012 12.2362 161.919 12.2362 161.733 12.1431C161.64 12.05 161.547 12.05 161.454 12.05C161.175 12.05 160.895 12.1431 160.802 12.1431C159.871 12.2362 159.312 12.05 159.312 12.05C159.126 11.9569 159.033 11.8638 158.94 11.8638C158.661 11.5845 158.568 11.3052 158.475 10.9328V10.8397C158.475 8.69837 158.94 7.95356 158.754 6.46394C158.754 6.27774 158.661 6.18464 158.661 6.09154C158.381 4.13642 158.102 3.67091 157.823 3.2054C157.637 2.7399 157.637 2.5537 157.544 1.99509C157.45 1.43648 157.45 1.43648 157.264 0.877877C157.171 0.319271 156.985 0.133069 156.799 0.0399677C156.613 -0.0531334 156.519 0.0399671 156.426 0.133068C156.147 0.226169 155.588 0.784776 155.588 0.784776C155.495 0.877877 155.402 0.970979 155.402 0.970979C155.216 1.15718 155.123 1.25028 155.03 1.34338C154.751 1.62269 154.471 1.80889 154.285 1.90199C153.354 2.5537 152.795 2.7399 152.795 2.7399C150.468 3.39161 149.071 5.16053 148.885 5.43983V5.53293C148.42 6.09154 147.861 6.18464 147.302 6.18464C146.837 6.18464 146.465 5.99844 146.465 5.99844C145.813 5.90534 144.882 3.95021 144.882 3.95021C144.789 3.67091 144.696 3.57781 144.509 3.57781C144.23 3.48471 143.951 3.76401 143.951 3.76401C143.578 4.13642 143.299 4.41572 142.927 4.88123C141.623 6.18464 141.437 7.30185 140.972 8.41907C140.972 8.51217 140.878 8.60527 140.878 8.69837C140.506 9.53628 140.506 9.62938 140.413 9.81559C140.227 10.0949 139.947 10.188 139.761 10.188C139.575 10.188 139.482 10.0949 139.482 10.0949C139.389 10.0018 139.296 10.0018 139.203 9.90869C138.551 9.53628 137.899 8.79147 137.341 7.95356C137.061 7.48806 136.782 7.39496 136.596 7.39496C135.944 7.48806 135.572 8.97768 135.572 8.97768C133.803 13.6327 134.548 15.0292 134.548 15.4017C134.641 15.681 134.734 15.8672 134.827 16.3327C134.92 17.7292 134.082 18.0085 134.082 18.0085C133.896 18.1016 133.43 18.2878 133.43 18.2878C133.151 18.3809 132.965 18.5671 132.872 18.7533C132.686 19.0326 132.686 19.2188 132.779 19.4981C132.965 19.8705 133.151 20.1498 133.337 20.4291C133.523 20.7084 133.896 20.9877 134.268 21.4532C134.734 22.0118 135.292 22.7566 135.665 23.4083C135.758 23.5945 135.944 23.7808 136.037 23.967C136.037 24.0601 136.13 24.0601 136.13 24.0601C136.689 25.1773 137.061 25.7359 137.806 26.2945C137.899 26.3876 138.085 26.4807 138.179 26.5738C138.458 26.76 138.923 27.0393 139.11 27.1324C139.296 27.3186 140.227 27.9703 138.644 28.5289C136.317 29.3668 134.734 28.622 133.803 27.7841C132.965 27.1324 132.592 26.4807 132.592 26.4807C132.499 26.3876 132.406 26.2945 132.313 26.2014C132.127 26.1083 132.034 26.2945 131.941 26.4807C131.848 26.6669 131.848 26.8531 131.848 27.1324V30.0185C134.268 30.6702 136.223 30.5771 137.434 30.3909C137.713 30.2978 137.992 30.2978 138.272 30.2047C144.416 28.8082 149.537 20.9877 151.771 15.7741C151.864 15.5879 151.957 15.4017 151.95
93107 15.3085C152.144 14.9361 152.237 14.7499 152.33 14.2844C152.33 14.2844 152.516 13.8189 152.609 13.5396C152.702 13.4465 152.702 13.4465 152.702 13.4465C152.795 13.4465 152.889 13.6327 152.795 13.912C153.075 13.7258 153.075 13.7258 153.075 13.8189Z" fill="#171717"/> 9311<title>lafuma</title></svg> 9312 <lottie-player src="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/lottie/For-Life-8s.json" class="lottie-player w-[95px] h-[51px]" speed="1" loop autoplay></lottie-player> 9313 </a> 9314 </div> <div class=""><style>#html-body [data-pb-style=S4YKHDJ]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin:0;padding:0}</style><div data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="S4YKHDJ"><div class="row-full-width-inner" data-element="inner"><div class="text-base mt-8 mb-3 leading-5 font-semibold" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><span style="color: rgb(128, 166, 128);">Ein Abenteuer, das ein Leben lang dauert!</span></p></div><div class="text-sm gap-3 flex flex-col mb-8" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAC4SURBVHgBjZCxDcJADEW/L5EoyQjZgGyA2IDUNIzACN4AMgFQACUjBDZghGwACxDzHQIFykl86eSz7/nbOgGlBy0YaggeBquCBWNUz2EodaG31EEW1ixUeOIiQc4mBt5LBOQ8SmIuelSHll33kAwZEuzccUVrQUS61Qwj3B1s6Lph57BjgjFaNIHAnunk+yCYduejFoUzab/HleO1/4F3/MkD/lTox2VRwnd0RE+ac3TNex5BGxrNXuGrPU9iEZnpAAAAAElFTkSuQmCC"> 15⬠Willkommensbonus bei der Anmeldung</p><p style="text-align: center;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB+SURBVHgBdc+xEYMwEETRf07cBnXZCe5kXQkQ2G24FGpwCIk4GJg5CbHh6o3m1vTVCDTEJHo99co6h4ki3vX6qIvdjUr0UIthEVdhDV/CEq9wKO/JMiHHrR3H+9JULlWnhjs/fxuMsDTiiLyTZT/smJl3RKcx2/HwdzRGtGYBx/pFLsc0TIQAAAAASUVORK5CYII="> -15% auf Ersatzteile und Bezüge</p><p style="text-align: center;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADFSURBVHgBhY/NDcIwDIWfIyhXRigT0BHaDeCIEFK7iZmAEYqE4ApMQJiAjtARcuRHKDhtKQSEcGQ92/n0LBM+gje8EBnhgkTU2K5N6Ua7Dr4jkjwiwMk1JE9qozy3nPsiIe5Y4opBlQQDBa3eoBC9ymXPM9acsWkdzsDLMUBcuQFDXnHczFxfiMGBvNUOUNjKuoKItLU2lXHpjmpBXnMkgIMyWOSoL0l4wg6sV7eQxVg+tOi8qcunEXnQlAv8CCVQ/g9y8QDuUEUsRXBDVQAAAABJRU5ErkJggg=="> Exklusive Angebote nur für Mitglieder</p><p style="text-align: center;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADZSURBVHgBdVHRDYIwFDzxw19H0AmUCYQN8M/Ah7CBbvCYQJwAjdFfdQIcASdwBX4xEbw2QirRlzTtXe/1ri3wKUllJAdxYJQcZar4Bvc0eZINaoREOeEIL0ToI+W64BjCwkUWsrZ4mkfCwxNj8cVl057CrEa9JbZRwkYFR7la7JoqgURSaJdAhNiO/TjRWPE1rtRRXOFG+9lX1kBy4y5D7i9VxCbzjtOElm7j0AoHyLi8M1LYazc6DV1h+xrGUyU6Uok5hWdTqMrqZF3pywzwULMp/FvqM37xb1b1XAksxrbgAAAAAElFTkSuQmCC"> Ein Kundenservice, der immer für Sie da ist</p></div></div></div></div> 9315 <div class="flex flex-col justify-between gap-2"> 9316 <div class="w-full flex border-t border-primary-200"> 9317 <a href="https://www.lafuma-moebel.de/customer/account/create/" 9318 class="btn btn-size-lg btn-primary py-3 px-16 w-full text-center inline-block text-xs">Ein Konto erstellen</a> 9319 </div> 9320 <div class="w-full flex border-t border-primary-200"> 9321 <a href="https://www.lafuma-moebel.de/customer/account/login/" 9322 class="btn btn-size-lg btn-secondary py-3 px-16 w-full text-center inline-block text-xs">Anmelden</a> 9323 </div> 9324 </div> 9325 <div class="mt-10 pt-1 text-center text-sm underline"> 9326 <a class="btn-with-arrow-black after:top-0.5" href="https://www.lafuma-moebel.de/lafuma-for-life/">Mehr über die Vorteile erfahren</a> 9327 </div> 9328 </div> 9329 </div> 9330 9331 <button 9332 type="button" 9333 @click="closeLFLDrawer" 9334 aria-label="Close sidebar" 9335 class="absolute top-0 right-0 p-4 mt-2" 9336 > 9337 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
9337ox="0 0 24 24" fill="none" class="w-2.5 h-2.5 hover:text-black" role="img"> 9338<g clip-path="url(#clip0_954_30807_5)"> 9339<g clip-path="url(#clip1_954_30807_5)"> 9340<path d="M0.75 23.249L23.25 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 9341<path d="M23.25 23.249L0.75 0.749023" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 9342</g> 9343</g> 9344<defs> 9345<clipPath id="clip0_954_30807_5"> 9346<rect width="24" height="24" fill="white"/> 9347</clipPath> 9348<clipPath id="clip1_954_30807_5"> 9349<rect width="24" height="24" fill="white"/> 9350</clipPath> 9351</defs> 9352<title>close</title></svg> 9353 </button> 9354 </div> 9355 </div> 9356 9357</section> 9358 </div> 9359<div class="w-full md:hidden"> 9360 <!-- Promotion Block --> 9361 <div> 9362 <style>#html-body [data-pb-style=XYABE6T]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#000;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div class="h-16 md:h-12 overflow-hidden md:px-48" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="XYABE6T"><div class="row-full-width-inner" data-element="inner"><div class="project-pagebuilder pagebuilder-animated-text h-16 md:h-12" data-content-type="animated_text" data-appearance="default" data-animated-type="linear" data-animated-time="20000" data-element="main"><div class="animated-text-content block h-full origin-[0_0]"><span class="top-header-center-text animated-text-title flex justify-center items-center h-16 md:h-12 py-3" data-element="first_title"><p style="text-align: center; line-height: normal;"><a href="/top-deals.html"><span style="font-family: Barlow; color: rgb(255, 255, 255); font-size: 14px;">KOMFORTMOMENTE: Bis zu 40 % Rabatt auf <u>eine Auswahl für noch mehr Komfort</u> â¨</span></a></p></span><span class="animated-text-title flex justify-center items-center h-16 md:h-12 py-3" data-element="third_title"><p style="text-align: center; line-height: normal;"><span style="color: #ffffff; font-size: 14px; font-family: Barlow;">Gratisversand ab 100⬠Einkaufswert</span></p></span><span class="top-header-center-text animated-text-title flex justify-center items-center h-16 md:h-12 py-3" data-element="first_title"><p style="text-align: center; line-height: normal;"><a href="/top-deals.html"><span style="font-family: Barlow; color: rgb(255, 255, 255); font-size: 14px;">KOMFORTMOMENTE: Bis zu 40 % Rabatt auf <u>eine Auswahl für noch mehr Komfort</u> â¨</span></a></p></span></div></div></div></div> </div> 9363</div> 9364</header><div class="top-container container"> <nav class="breadcrumbs bg-container-lighter overflow-auto" aria-label="Breadcrumb"> 9365 <div class="w-max mx-0 max-w-none"> 9366 <ol class="items list-reset py-4 rounded flex flex-wrap text-grey text-sm"> 9367 <li class="item flex home text-xs leading-none"> 9368 <a href="https://www.lafuma-moebel.de/" 9369 class="no-underline" 9370 title="Startseite" 9371 >Startseite</a> 9372 </li> 9373 <li class="item flex blog text-xs leading-none"> 9374 <span aria-hidden="true" class="separator text-primary-900 px-2 flex items-end"> 9375 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 25 24" fill="none" class="icon-next" role="img"> 9376<path d="M9.30005 0.75L20.02 11.47C20.0897 11.5396 20.145 11.6222 20.1827 11.7131C20.2204 11.8041 20.2398 11.9016 20.2398 12C20.2398 12.0984 20.2204 12.1959 20.1827 12.2869C20.145 12.3778 20.0897 12.4604 20.02 12.53L9.30005 23.25" stroke="#171717" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 9377<title>next</title></svg> 9378 </span> 9379 <a href="https://www.lafuma-moebel.de/blog.html" 9380 class="no-underline" 9381 title="Blog" 9382 >Blog</a> 9383 </li> 9384 <li class="item flex post text-xs leading-none">
9385 <span aria-hidden="true" class="separator text-primary-900 px-2 flex items-end"> 9386 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 25 24" fill="none" class="icon-next" role="img"> 9387<path d="M9.30005 0.75L20.02 11.47C20.0897 11.5396 20.145 11.6222 20.1827 11.7131C20.2204 11.8041 20.2398 11.9016 20.2398 12C20.2398 12.0984 20.2204 12.1959 20.1827 12.2869C20.145 12.3778 20.0897 12.4604 20.02 12.53L9.30005 23.25" stroke="#171717" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 9388<title>next</title></svg> 9389 </span> 9390 <a href="" 9391 class="text-primary-500" 9392 aria-current="page" 9393 >Sessel gegen Rückenschmerzen: wie wählt man ihn richtig aus? </a> 9394 </li> 9395 </ol> 9396 </div> 9397 </nav> 9398</div><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div> 9399<div class="page messages">
9399<script> 9400 function initMessages() { 9401 "use strict"; 9402 return { 9403 messages: window.mageMessages || [], 9404 isEmpty() { 9405 return this.messages.reduce( 9406 function (isEmpty, message) { 9407 return isEmpty && message === undefined 9408 }, true 9409 ) 9410 }, 9411 hasMessages() { 9412 return !this.isEmpty(); 9413 }, 9414 hasMessage() { 9415 return !!this.message; 9416 }, 9417 removeMessage() { 9418 this.messages[this.index] = undefined; 9419 }, 9420 addMessages(messages, hideAfter) { 9421 messages.map((message) => { 9422 this.messages = this.messages.concat(message); 9423 if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { 9424 hideAfter = window.defaultSuccessMessageTimeout; 9425 } 9426 if (hideAfter) { 9427 this.setHideTimeOut(this.messages.length -1, hideAfter); 9428 } 9429 }); 9430 }, 9431 setHideTimeOut(messageIndex, hideAfter) { 9432 setTimeout((messageIndex) => { 9433 this.messages[messageIndex] = undefined; 9434 }, hideAfter, messageIndex); 9435 }, 9436 eventListeners: { 9437 ['@messages-loaded.window'](event) { 9438 this.addMessages(event.detail.messages, event.detail.hideAfter) 9439 }, 9440 ['@private-content-loaded.window'](event) { 9441 const data = event.detail.data; 9442 if ( 9443 data.messages && 9444 data.messages.messages && 9445 data.messages.messages.length 9446 ) { 9447 this.addMessages(data.messages.messages); 9448 } 9449 }, 9450 ['@clear-messages.window']() { 9451 this.messages = []; 9452 } 9453 }, 9454 getMessageUiId() { 9455 return 'message-' + this.message.type; 9456 } 9457 } 9458 } 9459 9460 window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true}) 9461</script>
9461 9462<section id="messages" 9463 x-data="initMessages" 9464 x-bind="eventListeners" 9465 role="alert" 9466> 9467 <template x-if="hasMessages"> 9468 <div class="w-full"> 9469 <div class="messages container mx-auto py-3"> 9470 <template x-for="(message, index) in messages" :key="index"> 9471 <div> 9472 <template x-if="hasMessage"> 9473 <div class="message" 9474 :class="message.type" 9475 :ui-id="getMessageUiId" 9476 > 9477 <span x-html="message.text"></span> 9478 <button 9479 type="button" 9480 class="text-gray-600 hover:text-black" 9481 aria-label="Close message" 9482 @click.prevent="removeMessage" 9483 > 9484 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current" width="18" height="18" aria-hidden="true"> 9485 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 9486</svg> 9487 </button> 9488 </div> 9489 </template> 9490 </div> 9491 </template> 9492 </div> 9493 </div> 9494 </template> 9495</section> 9496</div><div class="container flex flex-col md:flex-row flex-wrap my-6 font-bold lg:mt-8 !flex-row !justify-center mb-0 py-2 md:py-4 max-w-4xl text-center"> 9497 <h1 class="text-gray-900 page-title title-font" 9498 > 9499 <span class="base" data-ui-id="page-title-wrapper" >Sessel gegen Rückenschmerzen: wie wählt man ihn richtig aus? </span> </h1> 9500 </div> 9501<div class="columns"><div class="column main"> 9502 <div data-amblog-js="element-block" class="desktop-block amblog-element-block" 9503 data-set="sidebar-post"> 9504 <div class="amblog-post-container -post-page mb-4 max-w-8xl mx-auto"> 9505 <div class="post-info flex uppercase text-primary-600 text-xs font-medium leading-3 tracking-wider justify-center mb-12"> 9506 <div class="amblog-dates mr-2 pr-2 border-r border-primary-300"> 9507 <span 9508 > 9509 25. März 2020 </span> 9510 <span> 9511 Bearbeitet <span x-data="HumanizeDateComponent()" 9512 x-init="initializeDates('2025\u002D07\u002D22\u002014\u003A25\u003A02')" 9513 x-html="getHumanizeDate()" 9514 > 9515 Wird geladen ⦠</span> 9516 </span> 9517 </div> 9518 <div class="amblog-categories"> 9519 9520 <div class="amblog-wrap"> 9521 <a href="https://www.lafuma-moebel.de/blog/category/komfort.html" 9522 title="KOMFORT"> 9523 KOMFORT</a> 9524 </div> 9525 </div> 9526 </div> 9527 <img src="https://www.lafuma-moebel.de/media/amasty/blog/cache/f/a/1280/720/fauteuil-mal-dos-post-image-blog-1280x720.jpg" 9528 alt="Welcher Stuhl hilft beiRückenschmerzen?" 9529 class="mx-auto mb-12" 9530 width="1440" 9531 height="810" 9532 loading="lazy"/> 9533 9534 <div class="amblog-content"> 9535 <div class="amblog-post-content"> 9536 <style>#html-body [data-pb-style=HP5Y8E4],#html-body [data-pb-style=KHYLM18],#html-body [data-pb-style=RLPJB4J]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin:0;padding:0}#html-body [data-pb-style=UBIKUSI]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=UKWHHS1]{display:flex;width:100%}#html-body [data-pb-style=FTV7E9V]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=IAOWPGP]{border-style:none}#html-body [data-pb-style=XB4TLIL]{max-width:100%;height:auto}#html-body [data-pb-style=CDTQY47]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=LTXGETP]{border-style:none}#html-body [data-pb-style=PSE706T]{max-width:100%;height:auto}#html-body [data-pb-style=NRWYIPO],#html-body [data-pb-style=WJBQ9O5]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin:0;padding:0}@media only screen and (max-width: 768px) { #html-body [data-pb-style=IAOWPGP],#html-body [data-pb-style=LTXGETP]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="RLPJB4J"><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><span style="font-family: Barlow;"><strong>Sessel sind ein wichtiger Bestandteil im Alltag oder als Ort der Entspannung für Zuhause. Sie müssen echten Komfort bieten, insbesondere für Menschen, die viel sitzen oder unter Rückenschmerzen leiden.<br> </strong></span></p></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="KHYLM18"><div data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: Barlow;">Bei der Auswahl eines Stuhls gegen Rückenschmerzen müssen mehrere Kriterien berücksichtigt werden. Finden Sie mit unserer Hilfe den perfekten Relaxsessel, der Ihre Rückenschmerzen lindern wird.</span></p> 9537<p> </p></div><h2 data-content-type="heading" data-appearance="default" data-element="main">Die Auswahl des perfekten Sessels gegen Rückenschmerzen </h2><div data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: Barlow;">Ob am Arbeitsplatz oder Zuhause: Nur ein ergonomischer Sessel, der an Ihre Körperform angepasst ist, kann Schmerzen in den Lendenwirbeln oder im Rü
9537cken lindern. Vor dem Kauf eines Bürostuhls sollte man eine Reihe von Kriterien beachten.</span></p> 9538<p><span style="font-family: Barlow;">Die Höhe und Tiefe des zu wählenden Stuhls gegen Rückenschmerzen richtet sich nach Ihrer Körpergröße und Ihrem Körperbau. Die Abmessungen sind geeignet, wenn Ihre Füße den Boden berühren. Ein guter Stuhl vermittelt den Eindruck, festen Halt zu verleihen und den Körper leicht zu stabilisieren. Kurz gesagt, man sollte nicht das Gefühl haben, im Bürostuhl zu versinken, aber trotzdem sollte der Sitz nicht zu hart sein, wie dies beispielsweise bei klassischen Stühlen der Fall ist. Ein bequemer Stuhl muss den Lendenwirbelbereich und die Wirbelsäule gut stützen, was durch eine ausreichend feste Rückenlehne gewährleistet wird. Achten Sie auch auf die Neigung der Rückenlehne, die sich der Rückenform perfekt anpassen sollte. Sie können sich für ein Modell mit verstellbarer Rückenlehne entscheiden, das sich Ihrer Körpergröße optimal anpasst.</span></p> 9539<p> </p> 9540<p><span style="font-family: Barlow;">Und letztendlich ist auch das Zubehör eines Sessels nicht außer Acht zu lassen. Armlehnen ermöglichen es Ihnen, sich zu setzen und aufzustehen, ohne die Lendenwirbel dabei zu belasten. Für eine gute Körperhaltung sollten Sie Ihre Ellbogen in einem Winkel von 90 Grad auf den Armlehnen ablegen können. Wenn Sie lange sitzen müssen – zum Beispiel bei der Arbeit am Computer – ist es außerdem ratsam, ein Modell mit einer Kopfstütze zu wählen, die Ihren Nacken stützt. Parallel dazu bietet eine Fußstütze das Gefühl von optimalem Komfort, da sie die Beine anhebt und die Durchblutung verbessert.</span></p></div></div></div><div data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="HP5Y8E4"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="UBIKUSI"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="UKWHHS1"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="FTV7E9V"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="IAOWPGP"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/wysiwyg/actus-definition-mal-au-dos-bloctexte1-desktop.jpg" alt="" title="" loading="" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/wysiwyg/actus-definition-mal-au-dos-bloctexte1-desktop.jpg" alt="" title="" loading="" data-element="desktop_image" data-pb-style="XB4TLIL"></source></picture></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="CDTQY47"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="LTXGETP"><picture><source media="(max-width: 768px)" srcset="https://www.lafuma-moebel.de/media/wysiwyg/actus-definition-mal-au-dos-bloctexte2-desktop.jpg" alt="" title="" loading="" data-element="mobile_image"><img src="https://www.lafuma-moebel.de/media/wysiwyg/actus-definition-mal-au-dos-bloctexte2-desktop.jpg" alt="" title="" loading="" data-element="desktop_image" data-pb-style="PSE706T"></source></picture></figure></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="NRWYIPO"><h2 data-content-type="heading" data-appearance="default" data-element="main">Der perfekte Stuhl gegen Rückenschmerzen: unser Relaxsessel LAFUMA MOBILIER</h2><div data-content-type="text" data-appearance="default" data-element="main"><p><span style="font-family: Barlow;">Um Rücken- oder Muskelschmerzen zu lindern, ist es essentiell, sich Momente der Entspannung zu gönnen. Eine statische Körperposition hat gesundheitsschädliche Folgen, auch wenn Sie im Büro ergonomisch sitzen. Es wird zwar empfohlen, sich zu bewegen und schlechte Körperhaltungen zu vermeiden, aber es ist ebenfalls ratsam, sich eine Pause zum Wohlfühlen zu gönnen. Entspannung in einer geeigneten Position kann Rückenschmerzen lindern und wird allgemein für eine bessere Gesundheit am Arbeitsplatz empfohlen.</span></p> 9541<p><span style="font-family: Barlow;">
9541Obwohl es eine Vielzahl von Relaxsesseln gegen Rückenschmerzen auf dem Markt gibt, können einige Modelle, ob mit oder ohne Liegefunktion, bestimmte Nachteile mit sich bringen, wie zum Beispiel eine massive Form oder einen sehr hohen Anschaffungspreis. Die Entscheidung für ein leichtes, verstellbares Modell, das für den Einsatz im Freien konzipiert ist, ist eine sinnvolle Alternative.</span></p> 9542<p><span style="font-family: Barlow;">Das Flaggschiff der Marke LAFUMA MOBILIER, die für ihr medizinisches Know-how bekannt ist, ist der Multipositions-Relaxsessel. Dieser Stuhl gegen Rückenschmerzen wurde speziell entwickelt, um Ihnen die ideale Entspannungsposition in einem klappbaren, leichten Format zu einem äußerst attraktiven Preis zu bieten.</span></p> 9543<p> </p> 9544<p><span style="font-family: Barlow;">Das Hauptprinzip dieses Sessels gegen Rückenschmerzen ist die Positionierung der Beine leicht über der Höhe des Herzens, wodurch sich der Körper optimal entspannen kann. Diese „Zero Gravity" Position ist die natürliche Haltung des Körpers, wenn er schwerelos ist. Die Beine sind erhöht, die Oberschenkel und der Oberkörper bilden dabei einen Winkel von 127 Grad – der perfekte Neigungswinkel, um sich optimal zu entspannen. Die Lendenwirbelsäule befindet sich in einer neutralen Position, der Rücken wird entlastet und das Blut zirkuliert besser. Dies ist die entspannendste Position, um für ein paar Minuten dem stressigen Arbeitsalltag zu entfliehen – in Ihrem neuen Stuhl gegen Rückenschmerzen.</span></p></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="WJBQ9O5"><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="true" data-show-dots="true" data-carousel-mode="default" data-center-padding="90px" data-element="main"><div class="glider-contain product-items widget-product-carousel"> 9545 <div data-role="glider-content" class="mx-auto grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 relative overflow-y-hidden overflow-x-scroll"> 9546 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 9547 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="900" tabindex="-1"> 9548 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-900.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-vert-chlorophylle-green-titane-lfm4020-9266-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege - RClip - Batyline® Iso - Grün Chlorophylle" title="Zero-Gravity-Relaxliege - RClip - Batyline® Iso - Grün Chlorophylle"> 9549 9550 </a> 9551 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 9552 <div class="mb-6 justify-center text-primary text-left "> 9553 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html"> 9554 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege</span> 9555 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">RClip Batyline® Iso Grün </span> 9556 </a> 9557 </div> 9558 9559 9560 9561
9561<script> 9562 function initPriceBox__6ac713c6c5d6c() { 9563 return { 9564 updatePrice(priceData) { 9565 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 9566 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 9567 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 9568 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 9569 regularPriceLabel.classList.add('hidden'); 9570 } else { 9571 regularPriceLabel.classList.remove('hidden'); 9572 } 9573 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 9574 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 9575 } 9576 } 9577 } 9578 </script>
9578 9579 <div class="sm:items-center sm:flex sm:justify-between"> 9580 <div class="text-gray-900" x-data="initPriceBox__6ac713c6c5d6c()" @update-prices-900.window="updatePrice($event.detail);"> 9581 <div class="price-box price-final_price" data-role="priceBox" data-product-id="900" data-price-box="product-id-900"> 9582 <span x-data x-id="['product\u002Dprice\u002D900']" class="price-container price-final_price tax weee"> 9583 <span :id="$id('product\u002Dprice\u002D900')" data-price-amount="149.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">149,90 €</span></span> 9584 </span> 9585 9586</div> </div> 9587 <div class="w-auto justify-center"> 9588 <div class="text-right"> 9589 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 9590 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 9591 <span class="text-xs">Auf Lager</span> 9592 </p> 9593 </div> 9594 </div> 9595 </div> 9596 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 9597 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-vert-chlorophylle-green-titane-lfm4020-9266-1.jpg')" @mouseleave="resetImage()"> 9598 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9599 'border-primary-900': isCurrentProduct(900, 900), 9600 'border-transparent': !isCurrentProduct(900, 900) 9601 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9266-chlorophylle-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9602 </a> 9603 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-vert-tilleul-lightgreen-titane-lfm4020-9268-1.jpg')" @mouseleave="resetImage()"> 9604 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9605 'border-primary-900': isCurrentProduct(906, 900), 9606 'border-transparent': !isCurrentProduct(906, 900) 9607 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9268-tilleul-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9608 </a> 9609 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-bleu-ciel-tube-titane-lfm4020-9711-1.jpg')" @mouseleave="resetImage()"> 9610 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9611 'border-primary-900': isCurrentProduct(1749, 900), 9612 'border-transparent': !isCurrentProduct(1749, 900) 9613 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9711-ciel-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9614 </a> 9615 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-beige-seigle-ii-tube-titane-lfm4020-9868-1.jpg')" @mouseleave="resetImage()"> 9616 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9617 'border-primary-900': isCurrentProduct(912, 900), 9618 'border-transparent': !isCurrentProduct(912, 900) 9619 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9620 </a> 9621 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-bleu-ocean-ii-tube-titane-lfm4020-9870-1.jpg')" @mouseleave="resetImage()"> 9622 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9623 'border-primary-900': isCurrentProduct(915, 900), 9624 'border-transparent': !isCurrentProduct(915, 900) 9625 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9626 </a> 9627 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-orange-clementine-tube-titane-lfm4020-9949-1.jpg')" @mouseleave="resetImage()"> 9628 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9629 'border-primary-900': isCurrentProduct(3309, 900), 9630 'border-transparent': !isCurrentProduct(3309, 900) 9631 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9949-clementine-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9632 </a> 9633 <a href="https://www.lafuma-moebel.de/relaxsessel-rclip-batyline-chlorophylle-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-r-clip-rose-cerisier-tube-titane-lfm4020-9950-1.jpg')" @mouseleave="resetImage()"> 9634 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9635 'border-primary-900': isCurrentProduct(3312, 900), 9636 'border-transparent': !isCurrentProduct(3312, 900) 9637 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9950-cerisier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9638 </a> 9639 </div> 9640 </div> 9641
9641<script> 9642 function initAutolist() { 9643 return { 9644 changeImage(image) { 9645 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9646 target.dataset.tempsrc = target.src; 9647 target.src = image; 9648 }, 9649 resetImage() { 9650 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9651 target.src = target.dataset.tempsrc; 9652 }, 9653 isCurrentProduct(currentId, productId) { 9654 return currentId === productId; 9655 } 9656 } 9657 } 9658 </script>
9658 9659 </div> 9660 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 9661 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-batyline-duo-obsidian-rohr-titane.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="786" tabindex="-1"> 9662 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-786.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-gris-obsidian-tube-titane-lfm3113-9718-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege - Futura - - Grau Obsidian" title="Zero-Gravity-Relaxliege - Futura - - Grau Obsidian"> 9663 9664 </a> 9665 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 9666 <div class="mb-6 justify-center text-primary text-left "> 9667 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-futura-batyline-duo-obsidian-rohr-titane.html"> 9668 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege</span> 9669 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura Batyline® Duo Grau </span> 9670 </a> 9671 </div> 9672 9673 9674 9675
9675<script> 9676 function initPriceBox__6ac713c6cc947() { 9677 return { 9678 updatePrice(priceData) { 9679 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 9680 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 9681 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 9682 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 9683 regularPriceLabel.classList.add('hidden'); 9684 } else { 9685 regularPriceLabel.classList.remove('hidden'); 9686 } 9687 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 9688 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 9689 } 9690 } 9691 } 9692 </script>
9692 9693 <div class="sm:items-center sm:flex sm:justify-between"> 9694 <div class="text-gray-900" x-data="initPriceBox__6ac713c6cc947()" @update-prices-786.window="updatePrice($event.detail);"> 9695 <div class="price-box price-final_price" data-role="priceBox" data-product-id="786" data-price-box="product-id-786"> 9696 <span x-data x-id="['product\u002Dprice\u002D786']" class="price-container price-final_price tax weee"> 9697 <span :id="$id('product\u002Dprice\u002D786')" data-price-amount="299.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">299,90 €</span></span> 9698 </span> 9699 9700</div> </div> 9701 <div class="w-auto justify-center"> 9702 <div class="text-right"> 9703 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 9704 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 9705 <span class="text-xs">Auf Lager</span> 9706 </p> 9707 </div> 9708 </div> 9709 </div> 9710 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 9711 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-gris-galet-tube-titane-lfm3113-9714-1.jpg')" @mouseleave="resetImage()"> 9712 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9713 'border-primary-900': isCurrentProduct(780, 786), 9714 'border-transparent': !isCurrentProduct(780, 786) 9715 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9714-galet-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9716 </a> 9717 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-bleu-mistral-blue-tube-titane-lfm3113-9716-1.jpg')" @mouseleave="resetImage()"> 9718 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9719 'border-primary-900': isCurrentProduct(783, 786), 9720 'border-transparent': !isCurrentProduct(783, 786) 9721 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9716-mistral-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9722 </a> 9723 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-gris-obsidian-tube-titane-lfm3113-9718-1.jpg')" @mouseleave="resetImage()"> 9724 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9725 'border-primary-900': isCurrentProduct(786, 786), 9726 'border-transparent': !isCurrentProduct(786, 786) 9727 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9718-obsidian-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9728 </a> 9729 </div> 9730 </div> 9731
9731<script> 9732 function initAutolist() { 9733 return { 9734 changeImage(image) { 9735 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9736 target.dataset.tempsrc = target.src; 9737 target.src = image; 9738 }, 9739 resetImage() { 9740 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9741 target.src = target.dataset.tempsrc; 9742 }, 9743 isCurrentProduct(currentId, productId) { 9744 return currentId === productId; 9745 } 9746 } 9747 } 9748 </script>
9748 9749 </div> 9750 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 9751 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-zen-edition-beige-seigle-ii-tube-titane-lfm5367-9868.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3405" tabindex="-1"> 9752 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3405.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-accessoires-zen-edition-beige-seigle-ii-tube-titane-lfm5367-9868-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel und Zubehör - Zen Edition - Batyline® Iso - Beige Seigle" title="Set Relaxsessel und Zubehör - Zen Edition - Batyline® Iso - Beige Seigle"> 9753 9754 </a> 9755 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 9756 <div class="mb-6 justify-center text-primary text-left "> 9757 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-zen-edition-beige-seigle-ii-tube-titane-lfm5367-9868.html"> 9758 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel und Zubehör</span> 9759 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Zen Edition Batyline® Iso Beige </span> 9760 </a> 9761 </div> 9762 9763 9764 9765
9765<script> 9766 function initPriceBox__6ac713c6d33fa() { 9767 return { 9768 updatePrice(priceData) { 9769 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 9770 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 9771 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 9772 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 9773 regularPriceLabel.classList.add('hidden'); 9774 } else { 9775 regularPriceLabel.classList.remove('hidden'); 9776 } 9777 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 9778 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 9779 } 9780 } 9781 } 9782 </script>
9782 9783 <div class="sm:items-center sm:flex sm:justify-between"> 9784 <div class="text-gray-900" x-data="initPriceBox__6ac713c6d33fa()" @update-prices-3405.window="updatePrice($event.detail);"> 9785 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3405" data-price-box="product-id-3405"> 9786 <span x-data x-id="['product\u002Dprice\u002D3405']" class="price-container price-final_price tax weee"> 9787 <span :id="$id('product\u002Dprice\u002D3405')" data-price-amount="365.6" data-price-type="finalPrice" class="price-wrapper "><span class="price">365,60 €</span></span> 9788 </span> 9789 9790</div> </div> 9791 <div class="w-auto justify-center"> 9792 <div class="text-right"> 9793 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 9794 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 9795 <span class="text-xs">Bald verfügbar</span> 9796 </p> 9797 </div> 9798 </div> 9799 </div> 9800 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 9801 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-zen-edition-beige-seigle-ii-tube-titane-lfm5367-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-accessoires-zen-edition-vert-foret-tube-titane-lfm5367-0140-1.jpg')" @mouseleave="resetImage()"> 9802 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9803 'border-primary-900': isCurrentProduct(3375, 3405), 9804 'border-transparent': !isCurrentProduct(3375, 3405) 9805 }" src="https://www.lafuma-moebel.de/visuels-lafmob/0140-foret-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9806 </a> 9807 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-zen-edition-beige-seigle-ii-tube-titane-lfm5367-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-accessoires-zen-edition-beige-seigle-ii-tube-titane-lfm5367-9868-1.jpg')" @mouseleave="resetImage()"> 9808 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9809 'border-primary-900': isCurrentProduct(3405, 3405), 9810 'border-transparent': !isCurrentProduct(3405, 3405) 9811 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9812 </a> 9813 </div> 9814 </div> 9815
9815<script> 9816 function initAutolist() { 9817 return { 9818 changeImage(image) { 9819 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9820 target.dataset.tempsrc = target.src; 9821 target.src = image; 9822 }, 9823 resetImage() { 9824 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9825 target.src = target.dataset.tempsrc; 9826 }, 9827 isCurrentProduct(currentId, productId) { 9828 return currentId === productId; 9829 } 9830 } 9831 } 9832 </script>
9832 9833 9834 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 9835 amlabel-position-bottom-left-3405-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3405","label":648,"margin":2,"alignment":0,"order":2,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 9836 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-648-3405-prod amasty-label-for-3405" data-amlabel-order="2"> 9837 <div style="background-color: #f0c300; padding:5px; font-weight:500; font-size: 10px; color: #000000;"> 9838 <div class="amlabel-text text-center whitespace-nowrap"> 9839 LIMITED EDITION </div> 9840 </div> 9841 </div> 9842 </div> 9843</div> 9844 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 9845 <a href="https://www.lafuma-moebel.de/gepolstertes-relaxsessel-set-und-zubehor-relax-all-in-one-gris-silver-tube-titane-lfm5429-8901.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="4320" tabindex="-1"> 9846 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-4320.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-et-accessoires-relax-all-in-one-gris-lfm5361_9952-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolstertes Relaxsessel-Set und Zubehör - Evolution - BeComfort® - Grau Silver" title="Gepolstertes Relaxsessel-Set und Zubehör - Evolution - BeComfort® - Grau Silver"> 9847 9848 </a> 9849 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 9850 <div class="mb-6 justify-center text-primary text-left "> 9851 <a class="product-item-link" href="https://www.lafuma-moebel.de/gepolstertes-relaxsessel-set-und-zubehor-relax-all-in-one-gris-silver-tube-titane-lfm5429-8901.html"> 9852 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolstertes Relaxsessel-Set und Zubehör</span> 9853 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Evolution BeComfort® Grau </span> 9854 </a> 9855 </div> 9856 9857 9858 9859
9859<script> 9860 function initPriceBox__6ac713c6da927() { 9861 return { 9862 updatePrice(priceData) { 9863 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 9864 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 9865 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 9866 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 9867 regularPriceLabel.classList.add('hidden'); 9868 } else { 9869 regularPriceLabel.classList.remove('hidden'); 9870 } 9871 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 9872 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 9873 } 9874 } 9875 } 9876 </script>
9876 9877 <div class="sm:items-center sm:flex sm:justify-between"> 9878 <div class="text-gray-900" x-data="initPriceBox__6ac713c6da927()" @update-prices-4320.window="updatePrice($event.detail);"> 9879 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4320" data-price-box="product-id-4320"> 9880 <span x-data x-id="['product\u002Dprice\u002D4320']" class="price-container price-final_price tax weee"> 9881 <span :id="$id('product\u002Dprice\u002D4320')" data-price-amount="514.6" data-price-type="finalPrice" class="price-wrapper "><span class="price">514,60 €</span></span> 9882 </span> 9883 9884</div> </div> 9885 <div class="w-auto justify-center"> 9886 <div class="text-right"> 9887 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 9888 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 9889 <span class="text-xs">Bald verfügbar</span> 9890 </p> 9891 </div> 9892 </div> 9893 </div> 9894 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 9895 <a href="https://www.lafuma-moebel.de/gepolstertes-relaxsessel-set-und-zubehor-relax-all-in-one-gris-silver-tube-titane-lfm5429-8901.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-et-accessoires-relax-all-in-one-gris-lfm5361_9952-1.jpg')" @mouseleave="resetImage()"> 9896 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9897 'border-primary-900': isCurrentProduct(4320, 4320), 9898 'border-transparent': !isCurrentProduct(4320, 4320) 9899 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9900 </a> 9901 </div> 9902 </div> 9903
9903<script> 9904 function initAutolist() { 9905 return { 9906 changeImage(image) { 9907 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9908 target.dataset.tempsrc = target.src; 9909 target.src = image; 9910 }, 9911 resetImage() { 9912 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 9913 target.src = target.dataset.tempsrc; 9914 }, 9915 isCurrentProduct(currentId, productId) { 9916 return currentId === productId; 9917 } 9918 } 9919 } 9920 </script>
9920 9921 </div> 9922 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 9923 <a href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="849" tabindex="-1"> 9924 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-849.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-dark-grey-tube-titane-lfm3131-8902-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Dark Grey" title="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Dark Grey"> 9925 9926 </a> 9927 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 9928 <div class="mb-6 justify-center text-primary text-left "> 9929 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html"> 9930 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 9931 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura XL BeComfort® Grau </span> 9932 </a> 9933 </div> 9934 9935 9936 9937
9937<script> 9938 function initPriceBox__6ac713c6e1249() { 9939 return { 9940 updatePrice(priceData) { 9941 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 9942 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 9943 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 9944 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 9945 regularPriceLabel.classList.add('hidden'); 9946 } else { 9947 regularPriceLabel.classList.remove('hidden'); 9948 } 9949 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 9950 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 9951 } 9952 } 9953 } 9954 </script>
9954 9955 <div class="sm:items-center sm:flex sm:justify-between"> 9956 <div class="text-gray-900" x-data="initPriceBox__6ac713c6e1249()" @update-prices-849.window="updatePrice($event.detail);"> 9957 <div class="price-box price-final_price" data-role="priceBox" data-product-id="849" data-price-box="product-id-849"> 9958 <span x-data x-id="['product\u002Dprice\u002D849']" class="price-container price-final_price tax weee"> 9959 <span :id="$id('product\u002Dprice\u002D849')" data-price-amount="399.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">399,90 €</span></span> 9960 </span> 9961 9962</div> </div> 9963 <div class="w-auto justify-center"> 9964 <div class="text-right"> 9965 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 9966 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 9967 <span class="text-xs">Auf Lager</span> 9968 </p> 9969 </div> 9970 </div> 9971 </div> 9972 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 9973 <a href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-bleu-bleu-encre-tube-titane-lfm3131-8900-1.jpg')" @mouseleave="resetImage()"> 9974 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9975 'border-primary-900': isCurrentProduct(843, 849), 9976 'border-transparent': !isCurrentProduct(843, 849) 9977 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9978 </a> 9979 <a href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-silver-tube-titane-lfm3131-8901-1.jpg')" @mouseleave="resetImage()"> 9980 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9981 'border-primary-900': isCurrentProduct(846, 849), 9982 'border-transparent': !isCurrentProduct(846, 849) 9983 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9984 </a> 9985 <a href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-dark-grey-tube-titane-lfm3131-8902-1.jpg')" @mouseleave="resetImage()"> 9986 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9987 'border-primary-900': isCurrentProduct(849, 849), 9988 'border-transparent': !isCurrentProduct(849, 849) 9989 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9990 </a> 9991 <a href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-vert-olive-green-tube-titane-lfm3131-9548-1.jpg')" @mouseleave="resetImage()"> 9992 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9993 'border-primary-900': isCurrentProduct(852, 849), 9994 'border-transparent': !isCurrentProduct(852, 849) 9995 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9548-olive-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 9996 </a> 9997 <a href="https://www.lafuma-moebel.de/relaxsessel-xl-futura-be-comfort-dark-grey-lfm3131-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-beige-moka-tube-titane-lfm3131-9935-1.jpg')" @mouseleave="resetImage()"> 9998 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 9999 'border-primary-900': isCurrentProduct(1740, 849), 10000 'border-transparent': !isCurrentProduct(1740, 849) 10001 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9935-moka-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10002 </a> 10003 </div> 10004 </div> 10005
10005<script> 10006 function initAutolist() { 10007 return { 10008 changeImage(image) { 10009 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10010 target.dataset.tempsrc = target.src; 10011 target.src = image; 10012 }, 10013 resetImage() { 10014 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10015 target.src = target.dataset.tempsrc; 10016 }, 10017 isCurrentProduct(currentId, productId) { 10018 return currentId === productId; 10019 } 10020 } 10021 } 10022 </script>
10022 10023 10024 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 10025 amlabel-position-bottom-right-849-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"849","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 10026 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-849-prod amasty-label-for-849" data-amlabel-order="4"> 10027 <div style="font-size: 14px; color: #ffffff;"> 10028 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 10029 </div> 10030 <img id="amasty-label-image-6-849-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
10030amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Dark Grey" alt="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Dark Grey"> 10031 </div> 10032 </div> 10033 </div> 10034</div> 10035 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10036 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-noir-acier-tube-noir-bdl0053-6135.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3747" tabindex="-1"> 10037 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3747.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-noir-bdl0053_6135-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter - RSX Clip - AirComfort® - Noir Acier" title="Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter - RSX Clip - AirComfort® - Noir Acier"> 10038 10039 </a> 10040 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10041 <div class="mb-6 justify-center text-primary text-left "> 10042 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-noir-acier-tube-noir-bdl0053-6135.html"> 10043 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter</span> 10044 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip AirComfort® Schwarz </span> 10045 </a> 10046 </div> 10047 10048 10049 10050
10050<script> 10051 function initPriceBox__6ac71ba2ecbc6() { 10052 return { 10053 updatePrice(priceData) { 10054 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10055 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10056 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10057 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10058 regularPriceLabel.classList.add('hidden'); 10059 } else { 10060 regularPriceLabel.classList.remove('hidden'); 10061 } 10062 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10063 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10064 } 10065 } 10066 } 10067 </script>
10067 10068 <div class="sm:items-center sm:flex sm:justify-between"> 10069 <div class="text-gray-900" x-data="initPriceBox__6ac71ba2ecbc6()" @update-prices-3747.window="updatePrice($event.detail);"> 10070 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3747" data-price-box="product-id-3747"> 10071<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 10072 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 10073 <span class="price">449,70 €</span> </div> 10074 10075 10076 </div> 10077</div> </div> 10078 <div class="w-auto justify-center"> 10079 <div class="text-right"> 10080 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10081 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10082 <span class="text-xs">Auf Lager</span> 10083 </p> 10084 </div> 10085 </div> 10086 </div> 10087 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10088 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-noir-acier-tube-noir-bdl0053-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-rouge-bdl0053_3186-1.jpg')" @mouseleave="resetImage()"> 10089 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10090 'border-primary-900': isCurrentProduct(3750, 3747), 10091 'border-transparent': !isCurrentProduct(3750, 3747) 10092 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10093 </a> 10094 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-noir-acier-tube-noir-bdl0053-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-noir-bdl0053_6135-1.jpg')" @mouseleave="resetImage()"> 10095 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10096 'border-primary-900': isCurrentProduct(3747, 3747), 10097 'border-transparent': !isCurrentProduct(3747, 3747) 10098 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10099 </a> 10100 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-noir-acier-tube-noir-bdl0053-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-bleu-bdl0053_6893-1.jpg')" @mouseleave="resetImage()"> 10101 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10102 'border-primary-900': isCurrentProduct(3753, 3747), 10103 'border-transparent': !isCurrentProduct(3753, 3747) 10104 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10105 </a> 10106 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-noir-acier-tube-noir-bdl0053-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-marron-bdl0053_70
1010657-1.jpg')" @mouseleave="resetImage()"> 10107 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10108 'border-primary-900': isCurrentProduct(3756, 3747), 10109 'border-transparent': !isCurrentProduct(3756, 3747) 10110 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10111 </a> 10112 </div> 10113 </div> 10114
10114<script> 10115 function initAutolist() { 10116 return { 10117 changeImage(image) { 10118 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10119 target.dataset.tempsrc = target.src; 10120 target.src = image; 10121 }, 10122 resetImage() { 10123 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10124 target.src = target.dataset.tempsrc; 10125 }, 10126 isCurrentProduct(currentId, productId) { 10127 return currentId === productId; 10128 } 10129 } 10130 } 10131 </script>
10131 10132 10133</div> 10134 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10135 <a href="https://www.lafuma-moebel.de/set-relaxsessel-getrankehalter-und-badetuch-bleu-ocean-ii-tube-titane-bdl0064-9870.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="4165" tabindex="-1"> 10136 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-4165.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-drap-de-bain-bleu-bdl0064_9870-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel, Getränkehalter und Badetuch - RClip - Batyline® Iso - Bleu Ocean" title="Set Relaxsessel, Getränkehalter und Badetuch - RClip - Batyline® Iso - Bleu Ocean"> 10137 10138 </a> 10139 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10140 <div class="mb-6 justify-center text-primary text-left "> 10141 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-getrankehalter-und-badetuch-bleu-ocean-ii-tube-titane-bdl0064-9870.html"> 10142 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel, Getränkehalter und Badetuch</span> 10143 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">RClip Batyline® Iso Blau </span> 10144 </a> 10145 </div> 10146 10147 10148 10149
10149<script> 10150 function initPriceBox__6ac71ba30eabb() { 10151 return { 10152 updatePrice(priceData) { 10153 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10154 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10155 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10156 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10157 regularPriceLabel.classList.add('hidden'); 10158 } else { 10159 regularPriceLabel.classList.remove('hidden'); 10160 } 10161 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10162 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10163 } 10164 } 10165 } 10166 </script>
10166 10167 <div class="sm:items-center sm:flex sm:justify-between"> 10168 <div class="text-gray-900" x-data="initPriceBox__6ac71ba30eabb()" @update-prices-4165.window="updatePrice($event.detail);"> 10169 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4165" data-price-box="product-id-4165"> 10170<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 10171 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 10172 <span class="price">214,70 €</span> </div> 10173 10174 10175 </div> 10176</div> </div> 10177 <div class="w-auto justify-center"> 10178 <div class="text-right"> 10179 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10180 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10181 <span class="text-xs">Auf Lager</span> 10182 </p> 10183 </div> 10184 </div> 10185 </div> 10186 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10187 <a href="https://www.lafuma-moebel.de/set-relaxsessel-getrankehalter-und-badetuch-bleu-ocean-ii-tube-titane-bdl0064-9870.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-drap-de-bain-bleu-bdl0064_9870-1.jpg')" @mouseleave="resetImage()"> 10188 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10189 'border-primary-900': isCurrentProduct(4165, 4165), 10190 'border-transparent': !isCurrentProduct(4165, 4165) 10191 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10192 </a> 10193 </div> 10194 </div> 10195
10195<script> 10196 function initAutolist() { 10197 return { 10198 changeImage(image) { 10199 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10200 target.dataset.tempsrc = target.src; 10201 target.src = image; 10202 }, 10203 resetImage() { 10204 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10205 target.src = target.dataset.tempsrc; 10206 }, 10207 isCurrentProduct(currentId, productId) { 10208 return currentId === productId; 10209 } 10210 } 10211 } 10212 </script>
10212 10213 10214</div> 10215 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10216 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-marron-taupe-tube-noir-bdl0054-7057.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3765" tabindex="-1"> 10217 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3765.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-marron-bdl0054_7057-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Marron Taupe" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Marron Taupe"> 10218 10219 </a> 10220 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10221 <div class="mb-6 justify-center text-primary text-left "> 10222 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-marron-taupe-tube-noir-bdl0054-7057.html"> 10223 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter</span> 10224 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip XL AirComfort® Braun </span> 10225 </a> 10226 </div> 10227 10228 10229 10230
10230<script> 10231 function initPriceBox__6ac71ba31e331() { 10232 return { 10233 updatePrice(priceData) { 10234 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10235 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10236 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10237 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10238 regularPriceLabel.classList.add('hidden'); 10239 } else { 10240 regularPriceLabel.classList.remove('hidden'); 10241 } 10242 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10243 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10244 } 10245 } 10246 } 10247 </script>
10247 10248 <div class="sm:items-center sm:flex sm:justify-between"> 10249 <div class="text-gray-900" x-data="initPriceBox__6ac71ba31e331()" @update-prices-3765.window="updatePrice($event.detail);"> 10250 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3765" data-price-box="product-id-3765"> 10251<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 10252 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 10253 <span class="price">469,70 €</span> </div> 10254 10255 10256 </div> 10257</div> </div> 10258 <div class="w-auto justify-center"> 10259 <div class="text-right"> 10260 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10261 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10262 <span class="text-xs">Auf Lager</span> 10263 </p> 10264 </div> 10265 </div> 10266 </div> 10267 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10268 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-marron-taupe-tube-noir-bdl0054-7057.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-rouge-bdl0054_3186-1.jpg')" @mouseleave="resetImage()"> 10269 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10270 'border-primary-900': isCurrentProduct(3762, 3765), 10271 'border-transparent': !isCurrentProduct(3762, 3765) 10272 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10273 </a> 10274 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-marron-taupe-tube-noir-bdl0054-7057.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-noir-bdl0054_6135-1.jpg')" @mouseleave="resetImage()"> 10275 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10276 'border-primary-900': isCurrentProduct(3768, 3765), 10277 'border-transparent': !isCurrentProduct(3768, 3765) 10278 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10279 </a> 10280 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-marron-taupe-tube-noir-bdl0054-7057.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-bleu-bdl0054_6893-1.jpg')" @mouseleave="resetImage()"> 10281 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10282 'border-primary-900': isCurrentProduct(3759, 3765), 10283 'border-transparent': !isCurrentProduct(3759, 3765) 10284 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10285 </a> 10286 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-marron-taupe-tube-noir-bdl0054-7057.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-marron-bdl0054_7057-1.jpg')" @mouseleave="resetImage()"> 10287 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10288 'border-primary-900': isCurrentProduct(3765, 3765), 10289 'border-transparent': !isCurrentProduct(3765, 3765) 10290 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10291 </a> 10292 </div> 10293 </div> 10294
10294<script> 10295 function initAutolist() { 10296 return { 10297 changeImage(image) { 10298 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10299 target.dataset.tempsrc = target.src; 10300 target.src = image; 10301 }, 10302 resetImage() { 10303 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10304 target.src = target.dataset.tempsrc; 10305 }, 10306 isCurrentProduct(currentId, productId) { 10307 return currentId === productId; 10308 } 10309 } 10310 } 10311 </script>
10311 10312 10313 10314 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 10315 amlabel-position-bottom-right-3765-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3765","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 10316 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-3765-prod amasty-label-for-3765" data-amlabel-order="4"> 10317 <div style="font-size: 14px; color: #ffffff;"> 10318 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 10319 </div> 10320 <img id="amasty-label-image-6-3765-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
10320amlabel/TAGS_2__1.png" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Marron Taupe" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Marron Taupe"> 10321 </div> 10322 </div> 10323 </div> 10324</div> 10325 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10326 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-noir-acier-tube-noir-bdl0054-6135.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3768" tabindex="-1"> 10327 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3768.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-noir-bdl0054_6135-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Noir Acier" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Noir Acier"> 10328 10329 </a> 10330 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10331 <div class="mb-6 justify-center text-primary text-left "> 10332 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-noir-acier-tube-noir-bdl0054-6135.html"> 10333 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter</span> 10334 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip XL AirComfort® Schwarz </span> 10335 </a> 10336 </div> 10337 10338 10339 10340
10340<script> 10341 function initPriceBox__6ac71ba32e111() { 10342 return { 10343 updatePrice(priceData) { 10344 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10345 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10346 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10347 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10348 regularPriceLabel.classList.add('hidden'); 10349 } else { 10350 regularPriceLabel.classList.remove('hidden'); 10351 } 10352 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10353 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10354 } 10355 } 10356 } 10357 </script>
10357 10358 <div class="sm:items-center sm:flex sm:justify-between"> 10359 <div class="text-gray-900" x-data="initPriceBox__6ac71ba32e111()" @update-prices-3768.window="updatePrice($event.detail);"> 10360 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3768" data-price-box="product-id-3768"> 10361<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 10362 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 10363 <span class="price">469,70 €</span> </div> 10364 10365 10366 </div> 10367</div> </div> 10368 <div class="w-auto justify-center"> 10369 <div class="text-right"> 10370 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10371 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10372 <span class="text-xs">Auf Lager</span> 10373 </p> 10374 </div> 10375 </div> 10376 </div> 10377 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10378 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-noir-acier-tube-noir-bdl0054-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-rouge-bdl0054_3186-1.jpg')" @mouseleave="resetImage()"> 10379 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10380 'border-primary-900': isCurrentProduct(3762, 3768), 10381 'border-transparent': !isCurrentProduct(3762, 3768) 10382 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10383 </a> 10384 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-noir-acier-tube-noir-bdl0054-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-noir-bdl0054_6135-1.jpg')" @mouseleave="resetImage()"> 10385 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10386 'border-primary-900': isCurrentProduct(3768, 3768), 10387 'border-transparent': !isCurrentProduct(3768, 3768) 10388 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10389 </a> 10390 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-noir-acier-tube-noir-bdl0054-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-bleu-bdl0054_6893-1.jpg')" @mouseleave="resetImage()"> 10391 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10392 'border-primary-900': isCurrentProduct(3759, 3768), 10393 'border-transparent': !isCurrentProduct(3759, 3768) 10394 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10395 </a> 10396 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-noir-acier-tube-noir-bdl0054-6135.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-marron-bdl0054_7057-1.jpg')" @mouseleave="resetImage()"> 10397 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10398 'border-primary-900': isCurrentProduct(3765, 3768), 10399 'border-transparent': !isCurrentProduct(3765, 3768) 10400 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10401 </a> 10402 </div> 10403 </div> 10404
10404<script> 10405 function initAutolist() { 10406 return { 10407 changeImage(image) { 10408 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10409 target.dataset.tempsrc = target.src; 10410 target.src = image; 10411 }, 10412 resetImage() { 10413 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10414 target.src = target.dataset.tempsrc; 10415 }, 10416 isCurrentProduct(currentId, productId) { 10417 return currentId === productId; 10418 } 10419 } 10420 } 10421 </script>
10421 10422 10423 10424 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 10425 amlabel-position-bottom-right-3768-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3768","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 10426 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-3768-prod amasty-label-for-3768" data-amlabel-order="4"> 10427 <div style="font-size: 14px; color: #ffffff;"> 10428 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 10429 </div> 10430 <img id="amasty-label-image-6-3768-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
10430amlabel/TAGS_2__1.png" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Noir Acier" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Noir Acier"> 10431 </div> 10432 </div> 10433 </div> 10434</div> 10435 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10436 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-duo-obsidian-rohr-titane.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="354" tabindex="-1"> 10437 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-354.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-evolution-gris-obsidian-tube-titane-lfm2767-9718-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege - Evolution - - Grau Obsidian" title="Zero-Gravity-Relaxliege - Evolution - - Grau Obsidian"> 10438 10439 </a> 10440 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10441 <div class="mb-6 justify-center text-primary text-left "> 10442 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-duo-obsidian-rohr-titane.html"> 10443 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege</span> 10444 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Evolution Batyline® Duo Grau </span> 10445 </a> 10446 </div> 10447 10448 10449 10450
10450<script> 10451 function initPriceBox__6ac71ba33dbc4() { 10452 return { 10453 updatePrice(priceData) { 10454 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10455 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10456 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10457 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10458 regularPriceLabel.classList.add('hidden'); 10459 } else { 10460 regularPriceLabel.classList.remove('hidden'); 10461 } 10462 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10463 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10464 } 10465 } 10466 } 10467 </script>
10467 10468 <div class="sm:items-center sm:flex sm:justify-between"> 10469 <div class="text-gray-900" x-data="initPriceBox__6ac71ba33dbc4()" @update-prices-354.window="updatePrice($event.detail);"> 10470 <div class="price-box price-final_price" data-role="priceBox" data-product-id="354" data-price-box="product-id-354"> 10471 <span x-data x-id="['product\u002Dprice\u002D354']" class="price-container price-final_price tax weee"> 10472 <span :id="$id('product\u002Dprice\u002D354')" data-price-amount="349.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">349,90 €</span></span> 10473 </span> 10474 10475</div> </div> 10476 <div class="w-auto justify-center"> 10477 <div class="text-right"> 10478 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 10479 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 10480 <span class="text-xs">Bald verfügbar</span> 10481 </p> 10482 </div> 10483 </div> 10484 </div> 10485 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10486 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-evolution-gris-galet-tube-titane-lfm2767-9714-1.jpg')" @mouseleave="resetImage()"> 10487 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10488 'border-primary-900': isCurrentProduct(351, 354), 10489 'border-transparent': !isCurrentProduct(351, 354) 10490 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9714-galet-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10491 </a> 10492 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-evolution-gris-obsidian-tube-titane-lfm2767-9718-1.jpg')" @mouseleave="resetImage()"> 10493 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10494 'border-primary-900': isCurrentProduct(354, 354), 10495 'border-transparent': !isCurrentProduct(354, 354) 10496 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9718-obsidian-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10497 </a> 10498 </div> 10499 </div> 10500
10500<script> 10501 function initAutolist() { 10502 return { 10503 changeImage(image) { 10504 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10505 target.dataset.tempsrc = target.src; 10506 target.src = image; 10507 }, 10508 resetImage() { 10509 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10510 target.src = target.dataset.tempsrc; 10511 }, 10512 isCurrentProduct(currentId, productId) { 10513 return currentId === productId; 10514 } 10515 } 10516 } 10517 </script>
10517 10518 </div> 10519 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10520 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="846" tabindex="-1"> 10521 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-846.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-silver-tube-titane-lfm3131-8901-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Silver" title="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Silver"> 10522 10523 </a> 10524 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10525 <div class="mb-6 justify-center text-primary text-left "> 10526 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html"> 10527 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 10528 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura XL BeComfort® Grau </span> 10529 </a> 10530 </div> 10531 10532 10533 10534
10534<script> 10535 function initPriceBox__6ac71ba3487d3() { 10536 return { 10537 updatePrice(priceData) { 10538 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10539 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10540 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10541 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10542 regularPriceLabel.classList.add('hidden'); 10543 } else { 10544 regularPriceLabel.classList.remove('hidden'); 10545 } 10546 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10547 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10548 } 10549 } 10550 } 10551 </script>
10551 10552 <div class="sm:items-center sm:flex sm:justify-between"> 10553 <div class="text-gray-900" x-data="initPriceBox__6ac71ba3487d3()" @update-prices-846.window="updatePrice($event.detail);"> 10554 <div class="price-box price-final_price" data-role="priceBox" data-product-id="846" data-price-box="product-id-846"> 10555 <span x-data x-id="['product\u002Dprice\u002D846']" class="price-container price-final_price tax weee"> 10556 <span :id="$id('product\u002Dprice\u002D846')" data-price-amount="399.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">399,90 €</span></span> 10557 </span> 10558 10559</div> </div> 10560 <div class="w-auto justify-center"> 10561 <div class="text-right"> 10562 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10563 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10564 <span class="text-xs">Auf Lager</span> 10565 </p> 10566 </div> 10567 </div> 10568 </div> 10569 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10570 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-bleu-bleu-encre-tube-titane-lfm3131-8900-1.jpg')" @mouseleave="resetImage()"> 10571 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10572 'border-primary-900': isCurrentProduct(843, 846), 10573 'border-transparent': !isCurrentProduct(843, 846) 10574 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10575 </a> 10576 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-silver-tube-titane-lfm3131-8901-1.jpg')" @mouseleave="resetImage()"> 10577 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10578 'border-primary-900': isCurrentProduct(846, 846), 10579 'border-transparent': !isCurrentProduct(846, 846) 10580 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10581 </a> 10582 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-dark-grey-tube-titane-lfm3131-8902-1.jpg')" @mouseleave="resetImage()"> 10583 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10584 'border-primary-900': isCurrentProduct(849, 846), 10585 'border-transparent': !isCurrentProduct(849, 846) 10586 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10587 </a> 10588 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-vert-olive-green-tube-titane-lfm3131-9548-1.jpg')" @mouseleave="resetImage()"> 10589 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10590 'border-primary-900': isCurrentProduct(852, 846), 10591 'border-transparent': !isCurrentProduct(852, 846) 10592 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9548-olive-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10593 </a> 10594 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-be-comfort-silver-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-beige-moka-tube-titane-lfm3131-9935-1.jpg')" @mouseleave="resetImage()"> 10595 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10596 'border-primary-900': isCurrentProduct(1740, 846), 10597 'border-transparent': !isCurrentProduct(1740, 846) 10598 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9935-moka-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10599 </a> 10600 </div> 10601 </div> 10602
10602<script> 10603 function initAutolist() { 10604 return { 10605 changeImage(image) { 10606 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10607 target.dataset.tempsrc = target.src; 10608 target.src = image; 10609 }, 10610 resetImage() { 10611 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10612 target.src = target.dataset.tempsrc; 10613 }, 10614 isCurrentProduct(currentId, productId) { 10615 return currentId === productId; 10616 } 10617 } 10618 } 10619 </script>
10619 10620 10621 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 10622 amlabel-position-bottom-right-846-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"846","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 10623 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-846-prod amasty-label-for-846" data-amlabel-order="4"> 10624 <div style="font-size: 14px; color: #ffffff;"> 10625 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 10626 </div> 10627 <img id="amasty-label-image-6-846-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
10627amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Silver" alt="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Grau Silver"> 10628 </div> 10629 </div> 10630 </div> 10631</div> 10632 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10633 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-batyline-duo-obsidian-rohr-titane.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="795" tabindex="-1"> 10634 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-795.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-obsidian-tube-titane-lfm3116-9718-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Futura XL - - Grau Obsidian" title="Zero-Gravity-Relaxliege XL - Futura XL - - Grau Obsidian"> 10635 10636 </a> 10637 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10638 <div class="mb-6 justify-center text-primary text-left "> 10639 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-batyline-duo-obsidian-rohr-titane.html"> 10640 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 10641 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura XL Batyline® Duo Grau </span> 10642 </a> 10643 </div> 10644 10645 10646 10647
10647<script> 10648 function initPriceBox__6ac71ba353ad6() { 10649 return { 10650 updatePrice(priceData) { 10651 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10652 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10653 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10654 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10655 regularPriceLabel.classList.add('hidden'); 10656 } else { 10657 regularPriceLabel.classList.remove('hidden'); 10658 } 10659 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10660 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10661 } 10662 } 10663 } 10664 </script>
10664 10665 <div class="sm:items-center sm:flex sm:justify-between"> 10666 <div class="text-gray-900" x-data="initPriceBox__6ac71ba353ad6()" @update-prices-795.window="updatePrice($event.detail);"> 10667 <div class="price-box price-final_price" data-role="priceBox" data-product-id="795" data-price-box="product-id-795"> 10668 <span x-data x-id="['product\u002Dprice\u002D795']" class="price-container price-final_price tax weee"> 10669 <span :id="$id('product\u002Dprice\u002D795')" data-price-amount="329.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">329,90 €</span></span> 10670 </span> 10671 10672</div> </div> 10673 <div class="w-auto justify-center"> 10674 <div class="text-right"> 10675 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10676 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10677 <span class="text-xs">Auf Lager</span> 10678 </p> 10679 </div> 10680 </div> 10681 </div> 10682 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10683 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-galet-tube-titane-lfm3116-9714-1.jpg')" @mouseleave="resetImage()"> 10684 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10685 'border-primary-900': isCurrentProduct(789, 795), 10686 'border-transparent': !isCurrentProduct(789, 795) 10687 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9714-galet-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10688 </a> 10689 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-bleu-mistral-blue-tube-titane-lfm3116-9716-1.jpg')" @mouseleave="resetImage()"> 10690 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10691 'border-primary-900': isCurrentProduct(792, 795), 10692 'border-transparent': !isCurrentProduct(792, 795) 10693 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9716-mistral-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10694 </a> 10695 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-xl-batyline-duo-obsidian-rohr-titane.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-obsidian-tube-titane-lfm3116-9718-1.jpg')" @mouseleave="resetImage()"> 10696 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10697 'border-primary-900': isCurrentProduct(795, 795), 10698 'border-transparent': !isCurrentProduct(795, 795) 10699 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9718-obsidian-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10700 </a> 10701 </div> 10702 </div> 10703
10703<script> 10704 function initAutolist() { 10705 return { 10706 changeImage(image) { 10707 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10708 target.dataset.tempsrc = target.src; 10709 target.src = image; 10710 }, 10711 resetImage() { 10712 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10713 target.src = target.dataset.tempsrc; 10714 }, 10715 isCurrentProduct(currentId, productId) { 10716 return currentId === productId; 10717 } 10718 } 10719 } 10720 </script>
10720 10721 10722 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 10723 amlabel-position-bottom-right-795-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"795","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 10724 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-795-prod amasty-label-for-795" data-amlabel-order="4"> 10725 <div style="font-size: 14px; color: #ffffff;"> 10726 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 10727 </div> 10728 <img id="amasty-label-image-6-795-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
10728amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Futura XL - - Grau Obsidian" alt="Zero-Gravity-Relaxliege XL - Futura XL - - Grau Obsidian"> 10729 </div> 10730 </div> 10731 </div> 10732</div> 10733 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10734 <a href="https://www.lafuma-moebel.de/relaxation-chair-futura-coral-blue-air-comfort-uk-lfm3124-6893.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="819" tabindex="-1"> 10735 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-819.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-futura-bleu-coral-blue-tube-noir-lfm3124-6893-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Futura - AirComfort® - Blau Coral Blue" title="Gepolsterte Zero-Gravity-Relaxliege - Futura - AirComfort® - Blau Coral Blue"> 10736 10737 </a> 10738 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10739 <div class="mb-6 justify-center text-primary text-left "> 10740 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxation-chair-futura-coral-blue-air-comfort-uk-lfm3124-6893.html"> 10741 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 10742 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura AirComfort® Blau </span> 10743 </a> 10744 </div> 10745 10746 10747 10748
10748<script> 10749 function initPriceBox__6ac71ba35f282() { 10750 return { 10751 updatePrice(priceData) { 10752 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10753 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10754 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10755 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10756 regularPriceLabel.classList.add('hidden'); 10757 } else { 10758 regularPriceLabel.classList.remove('hidden'); 10759 } 10760 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10761 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10762 } 10763 } 10764 } 10765 </script>
10765 10766 <div class="sm:items-center sm:flex sm:justify-between"> 10767 <div class="text-gray-900" x-data="initPriceBox__6ac71ba35f282()" @update-prices-819.window="updatePrice($event.detail);"> 10768 <div class="price-box price-final_price" data-role="priceBox" data-product-id="819" data-price-box="product-id-819"> 10769 <span x-data x-id="['product\u002Dprice\u002D819']" class="price-container price-final_price tax weee"> 10770 <span :id="$id('product\u002Dprice\u002D819')" data-price-amount="379.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">379,90 €</span></span> 10771 </span> 10772 10773</div> </div> 10774 <div class="w-auto justify-center"> 10775 <div class="text-right"> 10776 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10777 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10778 <span class="text-xs">Auf Lager</span> 10779 </p> 10780 </div> 10781 </div> 10782 </div> 10783 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10784 <a href="https://www.lafuma-moebel.de/relaxation-chair-futura-coral-blue-air-comfort-uk-lfm3124-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-futura-bleu-coral-blue-tube-noir-lfm3124-6893-1.jpg')" @mouseleave="resetImage()"> 10785 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10786 'border-primary-900': isCurrentProduct(819, 819), 10787 'border-transparent': !isCurrentProduct(819, 819) 10788 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10789 </a> 10790 </div> 10791 </div> 10792
10792<script> 10793 function initAutolist() { 10794 return { 10795 changeImage(image) { 10796 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10797 target.dataset.tempsrc = target.src; 10798 target.src = image; 10799 }, 10800 resetImage() { 10801 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10802 target.src = target.dataset.tempsrc; 10803 }, 10804 isCurrentProduct(currentId, productId) { 10805 return currentId === productId; 10806 } 10807 } 10808 } 10809 </script>
10809 10810 </div> 10811 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10812 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3209" tabindex="-1"> 10813 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3209.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set aus 2 Relaxsesseln - Futura - BeComfort® - Bleu Encre" title="Set aus 2 Relaxsesseln - Futura - BeComfort® - Bleu Encre"> 10814 10815 </a> 10816 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10817 <div class="mb-6 justify-center text-primary text-left "> 10818 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900.html"> 10819 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set aus 2 Relaxsesseln</span> 10820 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Blau </span> 10821 </a> 10822 </div> 10823 10824 10825 10826
10826<script> 10827 function initPriceBox__6ac71ba386362() { 10828 return { 10829 updatePrice(priceData) { 10830 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10831 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10832 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10833 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10834 regularPriceLabel.classList.add('hidden'); 10835 } else { 10836 regularPriceLabel.classList.remove('hidden'); 10837 } 10838 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10839 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10840 } 10841 } 10842 } 10843 </script>
10843 10844 <div class="sm:items-center sm:flex sm:justify-between"> 10845 <div class="text-gray-900" x-data="initPriceBox__6ac71ba386362()" @update-prices-3209.window="updatePrice($event.detail);"> 10846 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3209" data-price-box="product-id-3209"> 10847<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 10848 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 10849 <span class="price">759,80 €</span> </div> 10850 10851 10852 </div> 10853</div> </div> 10854 <div class="w-auto justify-center"> 10855 <div class="text-right"> 10856 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10857 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10858 <span class="text-xs">Auf Lager</span> 10859 </p> 10860 </div> 10861 </div> 10862 </div> 10863 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10864 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900-1.jpg')" @mouseleave="resetImage()"> 10865 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10866 'border-primary-900': isCurrentProduct(3209, 3209), 10867 'border-transparent': !isCurrentProduct(3209, 3209) 10868 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10869 </a> 10870 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902-1.jpg')" @mouseleave="resetImage()"> 10871 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10872 'border-primary-900': isCurrentProduct(3206, 3209), 10873 'border-transparent': !isCurrentProduct(3206, 3209) 10874 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10875 </a> 10876 </div> 10877 </div> 10878
10878<script> 10879 function initAutolist() { 10880 return { 10881 changeImage(image) { 10882 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10883 target.dataset.tempsrc = target.src; 10884 target.src = image; 10885 }, 10886 resetImage() { 10887 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10888 target.src = target.dataset.tempsrc; 10889 }, 10890 isCurrentProduct(currentId, productId) { 10891 return currentId === productId; 10892 } 10893 } 10894 } 10895 </script>
10895 10896 10897</div> 10898 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10899 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3215" tabindex="-1"> 10900 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3215.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel und Getränkehalter - RClip - Batyline® Iso - Beige Seigle" title="Set Relaxsessel und Getränkehalter - RClip - Batyline® Iso - Beige Seigle"> 10901 10902 </a> 10903 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10904 <div class="mb-6 justify-center text-primary text-left "> 10905 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868.html"> 10906 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel und Getränkehalter</span> 10907 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">RClip Batyline® Iso Beige </span> 10908 </a> 10909 </div> 10910 10911 10912 10913
10913<script> 10914 function initPriceBox__6ac71ba3ae536() { 10915 return { 10916 updatePrice(priceData) { 10917 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10918 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 10919 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10920 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10921 regularPriceLabel.classList.add('hidden'); 10922 } else { 10923 regularPriceLabel.classList.remove('hidden'); 10924 } 10925 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10926 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 10927 } 10928 } 10929 } 10930 </script>
10930 10931 <div class="sm:items-center sm:flex sm:justify-between"> 10932 <div class="text-gray-900" x-data="initPriceBox__6ac71ba3ae536()" @update-prices-3215.window="updatePrice($event.detail);"> 10933 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3215" data-price-box="product-id-3215"> 10934<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 10935 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 10936 <span class="price">164,80 €</span> </div> 10937 10938 10939 </div> 10940</div> </div> 10941 <div class="w-auto justify-center"> 10942 <div class="text-right"> 10943 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 10944 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 10945 <span class="text-xs">Auf Lager</span> 10946 </p> 10947 </div> 10948 </div> 10949 </div> 10950 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 10951 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868-1.jpg')" @mouseleave="resetImage()"> 10952 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10953 'border-primary-900': isCurrentProduct(3215, 3215), 10954 'border-transparent': !isCurrentProduct(3215, 3215) 10955 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10956 </a> 10957 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870-1.jpg')" @mouseleave="resetImage()"> 10958 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 10959 'border-primary-900': isCurrentProduct(3212, 3215), 10960 'border-transparent': !isCurrentProduct(3212, 3215) 10961 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 10962 </a> 10963 </div> 10964 </div> 10965
10965<script> 10966 function initAutolist() { 10967 return { 10968 changeImage(image) { 10969 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10970 target.dataset.tempsrc = target.src; 10971 target.src = image; 10972 }, 10973 resetImage() { 10974 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 10975 target.src = target.dataset.tempsrc; 10976 }, 10977 isCurrentProduct(currentId, productId) { 10978 return currentId === productId; 10979 } 10980 } 10981 } 10982 </script>
10982 10983 10984</div> 10985 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 10986 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1740" tabindex="-1"> 10987 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1740.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-beige-moka-tube-titane-lfm3131-9935-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Beige Moka" title="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Beige Moka"> 10988 10989 </a> 10990 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 10991 <div class="mb-6 justify-center text-primary text-left "> 10992 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html"> 10993 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 10994 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura XL BeComfort® Beige </span> 10995 </a> 10996 </div> 10997 10998 10999 11000
11000<script> 11001 function initPriceBox__6ac71ba3c56f1() { 11002 return { 11003 updatePrice(priceData) { 11004 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11005 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11006 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11007 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11008 regularPriceLabel.classList.add('hidden'); 11009 } else { 11010 regularPriceLabel.classList.remove('hidden'); 11011 } 11012 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11013 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11014 } 11015 } 11016 } 11017 </script>
11017 11018 <div class="sm:items-center sm:flex sm:justify-between"> 11019 <div class="text-gray-900" x-data="initPriceBox__6ac71ba3c56f1()" @update-prices-1740.window="updatePrice($event.detail);"> 11020 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1740" data-price-box="product-id-1740"> 11021 <span x-data x-id="['product\u002Dprice\u002D1740']" class="price-container price-final_price tax weee"> 11022 <span :id="$id('product\u002Dprice\u002D1740')" data-price-amount="399.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">399,90 €</span></span> 11023 </span> 11024 11025</div> </div> 11026 <div class="w-auto justify-center"> 11027 <div class="text-right"> 11028 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11029 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11030 <span class="text-xs">Auf Lager</span> 11031 </p> 11032 </div> 11033 </div> 11034 </div> 11035 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11036 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-bleu-bleu-encre-tube-titane-lfm3131-8900-1.jpg')" @mouseleave="resetImage()"> 11037 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11038 'border-primary-900': isCurrentProduct(843, 1740), 11039 'border-transparent': !isCurrentProduct(843, 1740) 11040 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11041 </a> 11042 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-silver-tube-titane-lfm3131-8901-1.jpg')" @mouseleave="resetImage()"> 11043 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11044 'border-primary-900': isCurrentProduct(846, 1740), 11045 'border-transparent': !isCurrentProduct(846, 1740) 11046 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11047 </a> 11048 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-gris-dark-grey-tube-titane-lfm3131-8902-1.jpg')" @mouseleave="resetImage()"> 11049 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11050 'border-primary-900': isCurrentProduct(849, 1740), 11051 'border-transparent': !isCurrentProduct(849, 1740) 11052 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11053 </a> 11054 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-vert-olive-green-tube-titane-lfm3131-9548-1.jpg')" @mouseleave="resetImage()"> 11055 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11056 'border-primary-900': isCurrentProduct(852, 1740), 11057 'border-transparent': !isCurrentProduct(852, 1740) 11058 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9548-olive-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11059 </a> 11060 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-futura-xl-beige-moka-tube-titane-lfm3131-9935.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-xl-beige-moka-tube-titane-lfm3131-9935-1.jpg')" @mouseleave="resetImage()"> 11061 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11062 'border-primary-900': isCurrentProduct(1740, 1740), 11063 'border-transparent': !isCurrentProduct(1740, 1740) 11064 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9935-moka-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11065 </a> 11066 </div> 11067 </div> 11068
11068<script> 11069 function initAutolist() { 11070 return { 11071 changeImage(image) { 11072 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11073 target.dataset.tempsrc = target.src; 11074 target.src = image; 11075 }, 11076 resetImage() { 11077 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11078 target.src = target.dataset.tempsrc; 11079 }, 11080 isCurrentProduct(currentId, productId) { 11081 return currentId === productId; 11082 } 11083 } 11084 } 11085 </script>
11085 11086 11087 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 11088 amlabel-position-bottom-right-1740-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"1740","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 11089 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-1740-prod amasty-label-for-1740" data-amlabel-order="4"> 11090 <div style="font-size: 14px; color: #ffffff;"> 11091 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 11092 </div> 11093 <img id="amasty-label-image-6-1740-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
11093amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Beige Moka" alt="Zero-Gravity-Relaxliege XL - Futura XL - BeComfort® - Beige Moka"> 11094 </div> 11095 </div> 11096 </div> 11097</div> 11098 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11099 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3212" tabindex="-1"> 11100 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3212.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel und Getränkehalter - RClip - Batyline® Iso - Bleu Ocean" title="Set Relaxsessel und Getränkehalter - RClip - Batyline® Iso - Bleu Ocean"> 11101 11102 </a> 11103 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11104 <div class="mb-6 justify-center text-primary text-left "> 11105 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870.html"> 11106 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel und Getränkehalter</span> 11107 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">RClip Batyline® Iso Blau </span> 11108 </a> 11109 </div> 11110 11111 11112 11113
11113<script> 11114 function initPriceBox__6ac71ba3e3392() { 11115 return { 11116 updatePrice(priceData) { 11117 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11118 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11119 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11120 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11121 regularPriceLabel.classList.add('hidden'); 11122 } else { 11123 regularPriceLabel.classList.remove('hidden'); 11124 } 11125 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11126 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11127 } 11128 } 11129 } 11130 </script>
11130 11131 <div class="sm:items-center sm:flex sm:justify-between"> 11132 <div class="text-gray-900" x-data="initPriceBox__6ac71ba3e3392()" @update-prices-3212.window="updatePrice($event.detail);"> 11133 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3212" data-price-box="product-id-3212"> 11134<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 11135 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 11136 <span class="price">164,80 €</span> </div> 11137 11138 11139 </div> 11140</div> </div> 11141 <div class="w-auto justify-center"> 11142 <div class="text-right"> 11143 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11144 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11145 <span class="text-xs">Auf Lager</span> 11146 </p> 11147 </div> 11148 </div> 11149 </div> 11150 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11151 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-rclip-et-porte-gobelet-batyline-beige-seigle-ii-tube-titane-bdl0012-9868-1.jpg')" @mouseleave="resetImage()"> 11152 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11153 'border-primary-900': isCurrentProduct(3215, 3212), 11154 'border-transparent': !isCurrentProduct(3215, 3212) 11155 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11156 </a> 11157 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-rclip-et-porte-gobelet-batyline-bleu-ocean-ii-tube-titane-bdl0012-9870-1.jpg')" @mouseleave="resetImage()"> 11158 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11159 'border-primary-900': isCurrentProduct(3212, 3212), 11160 'border-transparent': !isCurrentProduct(3212, 3212) 11161 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11162 </a> 11163 </div> 11164 </div> 11165
11165<script> 11166 function initAutolist() { 11167 return { 11168 changeImage(image) { 11169 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11170 target.dataset.tempsrc = target.src; 11171 target.src = image; 11172 }, 11173 resetImage() { 11174 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11175 target.src = target.dataset.tempsrc; 11176 }, 11177 isCurrentProduct(currentId, productId) { 11178 return currentId === productId; 11179 } 11180 } 11181 } 11182 </script>
11182 11183 11184</div> 11185 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11186 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="837" tabindex="-1"> 11187 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-837.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-pliant-matelasse-zero-gravite-xl-futura-gris-dark-grey-tube-titane-lfm3130-8902-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Futura - BeComfort® - Grau Dark Grey" title="Gepolsterte Zero-Gravity-Relaxliege - Futura - BeComfort® - Grau Dark Grey"> 11188 11189 </a> 11190 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11191 <div class="mb-6 justify-center text-primary text-left "> 11192 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html"> 11193 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 11194 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Grau </span> 11195 </a> 11196 </div> 11197 11198 11199 11200
11200<script> 11201 function initPriceBox__6ac71ba3f16cc() { 11202 return { 11203 updatePrice(priceData) { 11204 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11205 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11206 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11207 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11208 regularPriceLabel.classList.add('hidden'); 11209 } else { 11210 regularPriceLabel.classList.remove('hidden'); 11211 } 11212 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11213 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11214 } 11215 } 11216 } 11217 </script>
11217 11218 <div class="sm:items-center sm:flex sm:justify-between"> 11219 <div class="text-gray-900" x-data="initPriceBox__6ac71ba3f16cc()" @update-prices-837.window="updatePrice($event.detail);"> 11220 <div class="price-box price-final_price" data-role="priceBox" data-product-id="837" data-price-box="product-id-837"> 11221 <span x-data x-id="['product\u002Dprice\u002D837']" class="price-container price-final_price tax weee"> 11222 <span :id="$id('product\u002Dprice\u002D837')" data-price-amount="379.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">379,90 €</span></span> 11223 </span> 11224 11225</div> </div> 11226 <div class="w-auto justify-center"> 11227 <div class="text-right"> 11228 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11229 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11230 <span class="text-xs">Auf Lager</span> 11231 </p> 11232 </div> 11233 </div> 11234 </div> 11235 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11236 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-pliant-matelasse-zero-gravite-xl-futura-bleu-bleu-encre-tube-titane-lfm3130-8900-1.jpg')" @mouseleave="resetImage()"> 11237 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11238 'border-primary-900': isCurrentProduct(831, 837), 11239 'border-transparent': !isCurrentProduct(831, 837) 11240 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11241 </a> 11242 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-pliant-matelasse-zero-gravite-xl-futura-gris-silver-tube-titane-lfm3130-8901-1.jpg')" @mouseleave="resetImage()"> 11243 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11244 'border-primary-900': isCurrentProduct(834, 837), 11245 'border-transparent': !isCurrentProduct(834, 837) 11246 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11247 </a> 11248 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-pliant-matelasse-zero-gravite-xl-futura-gris-dark-grey-tube-titane-lfm3130-8902-1.jpg')" @mouseleave="resetImage()"> 11249 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11250 'border-primary-900': isCurrentProduct(837, 837), 11251 'border-transparent': !isCurrentProduct(837, 837) 11252 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11253 </a> 11254 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-pliant-matelasse-zero-gravite-xl-futura-vert-olive-green-tube-titane-lfm3130-9548-1.jpg')" @mouseleave="resetImage()"> 11255 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11256 'border-primary-900': isCurrentProduct(840, 837), 11257 'border-transparent': !isCurrentProduct(840, 837) 11258 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9548-olive-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11259 </a> 11260 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-be-comfort-dark-grey-lfm3130-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-pliant-matelasse-zero-gravite-xl-futura-beige-moka-tube-titane-lfm3130-9935-1.jpg')" @mouseleave="resetImage()"> 11261 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11262 'border-primary-900': isCurrentProduct(1737, 837), 11263 'border-transparent': !isCurrentProduct(1737, 837) 11264 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9935-moka-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11265 </a> 11266 </div> 11267 </div> 11268
11268<script> 11269 function initAutolist() { 11270 return { 11271 changeImage(image) { 11272 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11273 target.dataset.tempsrc = target.src; 11274 target.src = image; 11275 }, 11276 resetImage() { 11277 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11278 target.src = target.dataset.tempsrc; 11279 }, 11280 isCurrentProduct(currentId, productId) { 11281 return currentId === productId; 11282 } 11283 } 11284 } 11285 </script>
11285 11286 </div> 11287 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11288 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-beige-creme-tube-noir-lfm5398-a004.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3891" tabindex="-1"> 11289 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3891.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-niksen-beige-lfm5398_a004-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Beige Creme" title="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Beige Creme"> 11290 11291 </a> 11292 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11293 <div class="mb-6 justify-center text-primary text-left "> 11294 <a class="product-item-link" href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-beige-creme-tube-noir-lfm5398-a004.html"> 11295 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 11296 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Evolution Niksen Beige </span> 11297 </a> 11298 </div> 11299 11300 11301 11302
11302<script> 11303 function initPriceBox__6ac71ba4116f1() { 11304 return { 11305 updatePrice(priceData) { 11306 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11307 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11308 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11309 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11310 regularPriceLabel.classList.add('hidden'); 11311 } else { 11312 regularPriceLabel.classList.remove('hidden'); 11313 } 11314 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11315 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11316 } 11317 } 11318 } 11319 </script>
11319 11320 <div class="sm:items-center sm:flex sm:justify-between"> 11321 <div class="text-gray-900" x-data="initPriceBox__6ac71ba4116f1()" @update-prices-3891.window="updatePrice($event.detail);"> 11322 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3891" data-price-box="product-id-3891"> 11323 <span x-data x-id="['product\u002Dprice\u002D3891']" class="price-container price-final_price tax weee"> 11324 <span :id="$id('product\u002Dprice\u002D3891')" data-price-amount="349.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">349,90 €</span></span> 11325 </span> 11326 11327</div> </div> 11328 <div class="w-auto justify-center"> 11329 <div class="text-right"> 11330 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11331 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11332 <span class="text-xs">Auf Lager</span> 11333 </p> 11334 </div> 11335 </div> 11336 </div> 11337 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11338 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-beige-creme-tube-noir-lfm5398-a004.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-niksen-beige-lfm5398_a004-1.jpg')" @mouseleave="resetImage()"> 11339 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11340 'border-primary-900': isCurrentProduct(3891, 3891), 11341 'border-transparent': !isCurrentProduct(3891, 3891) 11342 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a004-creme-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11343 </a> 11344 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-beige-creme-tube-noir-lfm5398-a004.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-niksen-gris-lfm5398_a005-1.jpg')" @mouseleave="resetImage()"> 11345 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11346 'border-primary-900': isCurrentProduct(3894, 3891), 11347 'border-transparent': !isCurrentProduct(3894, 3891) 11348 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a005-cendre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11349 </a> 11350 </div> 11351 </div> 11352
11352<script> 11353 function initAutolist() { 11354 return { 11355 changeImage(image) { 11356 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11357 target.dataset.tempsrc = target.src; 11358 target.src = image; 11359 }, 11360 resetImage() { 11361 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11362 target.src = target.dataset.tempsrc; 11363 }, 11364 isCurrentProduct(currentId, productId) { 11365 return currentId === productId; 11366 } 11367 } 11368 } 11369 </script>
11369 11370 11371 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 11372 amlabel-position-bottom-left-3891-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3891","label":18,"margin":2,"alignment":0,"order":2,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 11373 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-18-3891-prod amasty-label-for-3891" data-amlabel-order="2"> 11374 <div style=""> 11375 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 11376 </div> 11377 <img id="amasty-label-image-18-3891-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
11377amlabel/DE_1_1.png" title="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Beige Creme" alt="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Beige Creme"> 11378 </div> 11379 </div> 11380 </div> 11381</div> 11382 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11383 <a href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-beige-creme-tube-noir-lfm5397-a004.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3885" tabindex="-1"> 11384 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3885.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-interieure-transalounge-niksen-beige-lfm5397_a004-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Chaiselongue für den Innenbereich - Transalounge - Niksen - Beige Creme" title="Chaiselongue für den Innenbereich - Transalounge - Niksen - Beige Creme"> 11385 11386 </a> 11387 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11388 <div class="mb-6 justify-center text-primary text-left "> 11389 <a class="product-item-link" href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-beige-creme-tube-noir-lfm5397-a004.html"> 11390 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Chaiselongue für den Innenbereich</span> 11391 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Transalounge Niksen Beige </span> 11392 </a> 11393 </div> 11394 11395 11396 11397
11397<script> 11398 function initPriceBox__6ac71ba42d448() { 11399 return { 11400 updatePrice(priceData) { 11401 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11402 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11403 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11404 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11405 regularPriceLabel.classList.add('hidden'); 11406 } else { 11407 regularPriceLabel.classList.remove('hidden'); 11408 } 11409 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11410 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11411 } 11412 } 11413 } 11414 </script>
11414 11415 <div class="sm:items-center sm:flex sm:justify-between"> 11416 <div class="text-gray-900" x-data="initPriceBox__6ac71ba42d448()" @update-prices-3885.window="updatePrice($event.detail);"> 11417 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3885" data-price-box="product-id-3885"> 11418 <span x-data x-id="['product\u002Dprice\u002D3885']" class="price-container price-final_price tax weee"> 11419 <span :id="$id('product\u002Dprice\u002D3885')" data-price-amount="349.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">349,90 €</span></span> 11420 </span> 11421 11422</div> </div> 11423 <div class="w-auto justify-center"> 11424 <div class="text-right"> 11425 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11426 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11427 <span class="text-xs">Auf Lager</span> 11428 </p> 11429 </div> 11430 </div> 11431 </div> 11432 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11433 <a href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-beige-creme-tube-noir-lfm5397-a004.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-interieure-transalounge-niksen-beige-lfm5397_a004-1.jpg')" @mouseleave="resetImage()"> 11434 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11435 'border-primary-900': isCurrentProduct(3885, 3885), 11436 'border-transparent': !isCurrentProduct(3885, 3885) 11437 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a004-creme-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11438 </a> 11439 <a href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-beige-creme-tube-noir-lfm5397-a004.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-interieure-transalounge-niksen-gris-lfm5397_a005-1.jpg')" @mouseleave="resetImage()"> 11440 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11441 'border-primary-900': isCurrentProduct(3888, 3885), 11442 'border-transparent': !isCurrentProduct(3888, 3885) 11443 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a005-cendre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11444 </a> 11445 </div> 11446 </div> 11447
11447<script> 11448 function initAutolist() { 11449 return { 11450 changeImage(image) { 11451 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11452 target.dataset.tempsrc = target.src; 11453 target.src = image; 11454 }, 11455 resetImage() { 11456 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11457 target.src = target.dataset.tempsrc; 11458 }, 11459 isCurrentProduct(currentId, productId) { 11460 return currentId === productId; 11461 } 11462 } 11463 } 11464 </script>
11464 11465 11466 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 11467 amlabel-position-bottom-left-3885-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3885","label":18,"margin":2,"alignment":0,"order":2,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 11468 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-18-3885-prod amasty-label-for-3885" data-amlabel-order="2"> 11469 <div style=""> 11470 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 11471 </div> 11472 <img id="amasty-label-image-18-3885-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
11472amlabel/DE_1_1.png" title="Chaiselongue für den Innenbereich - Transalounge - Niksen - Beige Creme" alt="Chaiselongue für den Innenbereich - Transalounge - Niksen - Beige Creme"> 11473 </div> 11474 </div> 11475 </div> 11476</div> 11477 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11478 <a href="https://www.lafuma-moebel.de/relaxsessl-evolution-be-comfort-silver-lfm2830-8901.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="471" tabindex="-1"> 11479 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-471.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-gris-silver-tube-titane-lfm2830-8901-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Evolution - BeComfort® - Grau Silver" title="Gepolsterte Zero-Gravity-Relaxliege - Evolution - BeComfort® - Grau Silver"> 11480 11481 </a> 11482 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11483 <div class="mb-6 justify-center text-primary text-left "> 11484 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessl-evolution-be-comfort-silver-lfm2830-8901.html"> 11485 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 11486 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Evolution BeComfort® Grau </span> 11487 </a> 11488 </div> 11489 11490 11491 11492
11492<script> 11493 function initPriceBox__6ac71ba440742() { 11494 return { 11495 updatePrice(priceData) { 11496 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11497 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11498 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11499 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11500 regularPriceLabel.classList.add('hidden'); 11501 } else { 11502 regularPriceLabel.classList.remove('hidden'); 11503 } 11504 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11505 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11506 } 11507 } 11508 } 11509 </script>
11509 11510 <div class="sm:items-center sm:flex sm:justify-between"> 11511 <div class="text-gray-900" x-data="initPriceBox__6ac71ba440742()" @update-prices-471.window="updatePrice($event.detail);"> 11512 <div class="price-box price-final_price" data-role="priceBox" data-product-id="471" data-price-box="product-id-471"> 11513 <span x-data x-id="['product\u002Dprice\u002D471']" class="price-container price-final_price tax weee"> 11514 <span :id="$id('product\u002Dprice\u002D471')" data-price-amount="399.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">399,90 €</span></span> 11515 </span> 11516 11517</div> </div> 11518 <div class="w-auto justify-center"> 11519 <div class="text-right"> 11520 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11521 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11522 <span class="text-xs">Auf Lager</span> 11523 </p> 11524 </div> 11525 </div> 11526 </div> 11527 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11528 <a href="https://www.lafuma-moebel.de/relaxsessl-evolution-be-comfort-silver-lfm2830-8901.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-bleu-bleu-encre-tube-titane-lfm2830-8900-1.jpg')" @mouseleave="resetImage()"> 11529 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11530 'border-primary-900': isCurrentProduct(468, 471), 11531 'border-transparent': !isCurrentProduct(468, 471) 11532 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11533 </a> 11534 <a href="https://www.lafuma-moebel.de/relaxsessl-evolution-be-comfort-silver-lfm2830-8901.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-gris-silver-tube-titane-lfm2830-8901-1.jpg')" @mouseleave="resetImage()"> 11535 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11536 'border-primary-900': isCurrentProduct(471, 471), 11537 'border-transparent': !isCurrentProduct(471, 471) 11538 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11539 </a> 11540 <a href="https://www.lafuma-moebel.de/relaxsessl-evolution-be-comfort-silver-lfm2830-8901.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-gris-dark-grey-tube-titane-lfm2830-8902-1.jpg')" @mouseleave="resetImage()"> 11541 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11542 'border-primary-900': isCurrentProduct(474, 471), 11543 'border-transparent': !isCurrentProduct(474, 471) 11544 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11545 </a> 11546 </div> 11547 </div> 11548
11548<script> 11549 function initAutolist() { 11550 return { 11551 changeImage(image) { 11552 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11553 target.dataset.tempsrc = target.src; 11554 target.src = image; 11555 }, 11556 resetImage() { 11557 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11558 target.src = target.dataset.tempsrc; 11559 }, 11560 isCurrentProduct(currentId, productId) { 11561 return currentId === productId; 11562 } 11563 } 11564 } 11565 </script>
11565 11566 </div> 11567 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11568 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3221" tabindex="-1"> 11569 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3221.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel und Getränkehalter - Futura - BeComfort® - Bleu Encre" title="Set Relaxsessel und Getränkehalter - Futura - BeComfort® - Bleu Encre"> 11570 11571 </a> 11572 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11573 <div class="mb-6 justify-center text-primary text-left "> 11574 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900.html"> 11575 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel und Getränkehalter</span> 11576 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Blau </span> 11577 </a> 11578 </div> 11579 11580 11581 11582
11582<script> 11583 function initPriceBox__6ac71ba45ba23() { 11584 return { 11585 updatePrice(priceData) { 11586 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11587 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11588 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11589 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11590 regularPriceLabel.classList.add('hidden'); 11591 } else { 11592 regularPriceLabel.classList.remove('hidden'); 11593 } 11594 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11595 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11596 } 11597 } 11598 } 11599 </script>
11599 11600 <div class="sm:items-center sm:flex sm:justify-between"> 11601 <div class="text-gray-900" x-data="initPriceBox__6ac71ba45ba23()" @update-prices-3221.window="updatePrice($event.detail);"> 11602 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3221" data-price-box="product-id-3221"> 11603<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 11604 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 11605 <span class="price">394,80 €</span> </div> 11606 11607 11608 </div> 11609</div> </div> 11610 <div class="w-auto justify-center"> 11611 <div class="text-right"> 11612 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11613 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11614 <span class="text-xs">Auf Lager</span> 11615 </p> 11616 </div> 11617 </div> 11618 </div> 11619 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11620 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900-1.jpg')" @mouseleave="resetImage()"> 11621 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11622 'border-primary-900': isCurrentProduct(3221, 3221), 11623 'border-transparent': !isCurrentProduct(3221, 3221) 11624 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11625 </a> 11626 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902-1.jpg')" @mouseleave="resetImage()"> 11627 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11628 'border-primary-900': isCurrentProduct(3218, 3221), 11629 'border-transparent': !isCurrentProduct(3218, 3221) 11630 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11631 </a> 11632 </div> 11633 </div> 11634
11634<script> 11635 function initAutolist() { 11636 return { 11637 changeImage(image) { 11638 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11639 target.dataset.tempsrc = target.src; 11640 target.src = image; 11641 }, 11642 resetImage() { 11643 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11644 target.src = target.dataset.tempsrc; 11645 }, 11646 isCurrentProduct(currentId, productId) { 11647 return currentId === productId; 11648 } 11649 } 11650 } 11651 </script>
11651 11652 11653</div> 11654 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11655 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1620" tabindex="-1"> 11656 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1620.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grau Terre" title="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grau Terre"> 11657 11658 </a> 11659 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11660 <div class="mb-6 justify-center text-primary text-left "> 11661 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html"> 11662 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 11663 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsxa Clip XL Batyline® Iso Grau </span> 11664 </a> 11665 </div> 11666 11667 11668 11669
11669<script> 11670 function initPriceBox__6ac71ba471913() { 11671 return { 11672 updatePrice(priceData) { 11673 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11674 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11675 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11676 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11677 regularPriceLabel.classList.add('hidden'); 11678 } else { 11679 regularPriceLabel.classList.remove('hidden'); 11680 } 11681 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11682 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11683 } 11684 } 11685 } 11686 </script>
11686 11687 <div class="sm:items-center sm:flex sm:justify-between"> 11688 <div class="text-gray-900" x-data="initPriceBox__6ac71ba471913()" @update-prices-1620.window="updatePrice($event.detail);"> 11689 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1620" data-price-box="product-id-1620"> 11690 <span x-data x-id="['product\u002Dprice\u002D1620']" class="price-container price-final_price tax weee"> 11691 <span :id="$id('product\u002Dprice\u002D1620')" data-price-amount="269.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">269,90 €</span></span> 11692 </span> 11693 11694</div> </div> 11695 <div class="w-auto justify-center"> 11696 <div class="text-right"> 11697 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11698 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11699 <span class="text-xs">Auf Lager</span> 11700 </p> 11701 </div> 11702 </div> 11703 </div> 11704 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11705 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-noir-black-tube-titane-lfm2057-8551-1.jpg')" @mouseleave="resetImage()"> 11706 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11707 'border-primary-900': isCurrentProduct(1617, 1620), 11708 'border-transparent': !isCurrentProduct(1617, 1620) 11709 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8551-black-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11710 </a> 11711 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556-1.jpg')" @mouseleave="resetImage()"> 11712 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11713 'border-primary-900': isCurrentProduct(1620, 1620), 11714 'border-transparent': !isCurrentProduct(1620, 1620) 11715 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8556-terre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11716 </a> 11717 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557-1.jpg')" @mouseleave="resetImage()"> 11718 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11719 'border-primary-900': isCurrentProduct(1623, 1620), 11720 'border-transparent': !isCurrentProduct(1623, 1620) 11721 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8557-moss-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11722 </a> 11723 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-graphite-tube-titane-lfm2057-8717-1.jpg')" @mouseleave="resetImage()"> 11724 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11725 'border-primary-900': isCurrentProduct(1626, 1620), 11726 'border-transparent': !isCurrentProduct(1626, 1620) 11727 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8717-graphite-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11728 </a> 11729 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868-1.jpg')" @mouseleave="resetImage()"> 11730 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11731 'border-primary-900': isCurrentProduct(1629, 1620), 11732 'border-transparent': !isCurrentProduct(1629, 1620) 11733 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11734 </a> 11735 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-bleu-ocean-ii-tube-titane-lfm2057-9870-1.jpg')" @mouseleave="resetImage()"> 11736 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11737 'border-primary-900': isCurrentProduct(1632, 1620), 11738 'border-transparent': !isCurrentProduct(1632, 1620) 11739 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11740 </a> 11741 </div> 11742 </div> 11743
11743<script> 11744 function initAutolist() { 11745 return { 11746 changeImage(image) { 11747 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11748 target.dataset.tempsrc = target.src; 11749 target.src = image; 11750 }, 11751 resetImage() { 11752 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11753 target.src = target.dataset.tempsrc; 11754 }, 11755 isCurrentProduct(currentId, productId) { 11756 return currentId === productId; 11757 } 11758 } 11759 } 11760 </script>
11760 11761 11762 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 11763 amlabel-position-bottom-right-1620-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"1620","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 11764 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-1620-prod amasty-label-for-1620" data-amlabel-order="4"> 11765 <div style="font-size: 14px; color: #ffffff;"> 11766 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 11767 </div> 11768 <img id="amasty-label-image-6-1620-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
11768amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grau Terre" alt="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grau Terre"> 11769 </div> 11770 </div> 11771 </div> 11772</div> 11773 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11774 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3206" tabindex="-1"> 11775 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3206.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set aus 2 Relaxsesseln - Futura - BeComfort® - Gris Dark Grey" title="Set aus 2 Relaxsesseln - Futura - BeComfort® - Gris Dark Grey"> 11776 11777 </a> 11778 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11779 <div class="mb-6 justify-center text-primary text-left "> 11780 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902.html"> 11781 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set aus 2 Relaxsesseln</span> 11782 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Grau </span> 11783 </a> 11784 </div> 11785 11786 11787 11788
11788<script> 11789 function initPriceBox__6ac71ba48ab8f() { 11790 return { 11791 updatePrice(priceData) { 11792 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11793 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11794 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11795 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11796 regularPriceLabel.classList.add('hidden'); 11797 } else { 11798 regularPriceLabel.classList.remove('hidden'); 11799 } 11800 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11801 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11802 } 11803 } 11804 } 11805 </script>
11805 11806 <div class="sm:items-center sm:flex sm:justify-between"> 11807 <div class="text-gray-900" x-data="initPriceBox__6ac71ba48ab8f()" @update-prices-3206.window="updatePrice($event.detail);"> 11808 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3206" data-price-box="product-id-3206"> 11809<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 11810 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 11811 <span class="price">759,80 €</span> </div> 11812 11813 11814 </div> 11815</div> </div> 11816 <div class="w-auto justify-center"> 11817 <div class="text-right"> 11818 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11819 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11820 <span class="text-xs">Auf Lager</span> 11821 </p> 11822 </div> 11823 </div> 11824 </div> 11825 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11826 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-becomfort-bleu-bleu-encre-tube-titane-bdl0011-8900-1.jpg')" @mouseleave="resetImage()"> 11827 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11828 'border-primary-900': isCurrentProduct(3209, 3206), 11829 'border-transparent': !isCurrentProduct(3209, 3206) 11830 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11831 </a> 11832 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-becomfort-gris-dark-grey-tube-titane-bdl0011-8902-1.jpg')" @mouseleave="resetImage()"> 11833 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11834 'border-primary-900': isCurrentProduct(3206, 3206), 11835 'border-transparent': !isCurrentProduct(3206, 3206) 11836 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11837 </a> 11838 </div> 11839 </div> 11840
11840<script> 11841 function initAutolist() { 11842 return { 11843 changeImage(image) { 11844 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11845 target.dataset.tempsrc = target.src; 11846 target.src = image; 11847 }, 11848 resetImage() { 11849 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11850 target.src = target.dataset.tempsrc; 11851 }, 11852 isCurrentProduct(currentId, productId) { 11853 return currentId === productId; 11854 } 11855 } 11856 } 11857 </script>
11857 11858 11859</div> 11860 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11861 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-be-comfort-bleu-encre-rohr-basalte.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="468" tabindex="-1"> 11862 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-468.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-bleu-bleu-encre-tube-titane-lfm2830-8900-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Evolution - BeComfort® - Blau Bleu Encre" title="Gepolsterte Zero-Gravity-Relaxliege - Evolution - BeComfort® - Blau Bleu Encre"> 11863 11864 </a> 11865 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11866 <div class="mb-6 justify-center text-primary text-left "> 11867 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-evolution-be-comfort-bleu-encre-rohr-basalte.html"> 11868 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 11869 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Evolution BeComfort® Blau </span> 11870 </a> 11871 </div> 11872 11873 11874 11875
11875<script> 11876 function initPriceBox__6ac71ba49e727() { 11877 return { 11878 updatePrice(priceData) { 11879 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11880 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11881 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11882 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11883 regularPriceLabel.classList.add('hidden'); 11884 } else { 11885 regularPriceLabel.classList.remove('hidden'); 11886 } 11887 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11888 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11889 } 11890 } 11891 } 11892 </script>
11892 11893 <div class="sm:items-center sm:flex sm:justify-between"> 11894 <div class="text-gray-900" x-data="initPriceBox__6ac71ba49e727()" @update-prices-468.window="updatePrice($event.detail);"> 11895 <div class="price-box price-final_price" data-role="priceBox" data-product-id="468" data-price-box="product-id-468"> 11896 <span x-data x-id="['product\u002Dprice\u002D468']" class="price-container price-final_price tax weee"> 11897 <span :id="$id('product\u002Dprice\u002D468')" data-price-amount="399.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">399,90 €</span></span> 11898 </span> 11899 11900</div> </div> 11901 <div class="w-auto justify-center"> 11902 <div class="text-right"> 11903 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11904 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11905 <span class="text-xs">Auf Lager</span> 11906 </p> 11907 </div> 11908 </div> 11909 </div> 11910 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 11911 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-be-comfort-bleu-encre-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-bleu-bleu-encre-tube-titane-lfm2830-8900-1.jpg')" @mouseleave="resetImage()"> 11912 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11913 'border-primary-900': isCurrentProduct(468, 468), 11914 'border-transparent': !isCurrentProduct(468, 468) 11915 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11916 </a> 11917 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-be-comfort-bleu-encre-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-gris-silver-tube-titane-lfm2830-8901-1.jpg')" @mouseleave="resetImage()"> 11918 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11919 'border-primary-900': isCurrentProduct(471, 468), 11920 'border-transparent': !isCurrentProduct(471, 468) 11921 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11922 </a> 11923 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-be-comfort-bleu-encre-rohr-basalte.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-gris-dark-grey-tube-titane-lfm2830-8902-1.jpg')" @mouseleave="resetImage()"> 11924 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 11925 'border-primary-900': isCurrentProduct(474, 468), 11926 'border-transparent': !isCurrentProduct(474, 468) 11927 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 11928 </a> 11929 </div> 11930 </div> 11931
11931<script> 11932 function initAutolist() { 11933 return { 11934 changeImage(image) { 11935 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11936 target.dataset.tempsrc = target.src; 11937 target.src = image; 11938 }, 11939 resetImage() { 11940 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 11941 target.src = target.dataset.tempsrc; 11942 }, 11943 isCurrentProduct(currentId, productId) { 11944 return currentId === productId; 11945 } 11946 } 11947 } 11948 </script>
11948 11949 </div> 11950 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 11951 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3218" tabindex="-1"> 11952 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3218.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel und Getränkehalter - Futura - BeComfort® - Gris Dark Grey" title="Set Relaxsessel und Getränkehalter - Futura - BeComfort® - Gris Dark Grey"> 11953 11954 </a> 11955 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 11956 <div class="mb-6 justify-center text-primary text-left "> 11957 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902.html"> 11958 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel und Getränkehalter</span> 11959 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Grau </span> 11960 </a> 11961 </div> 11962 11963 11964 11965
11965<script> 11966 function initPriceBox__6ac71ba4b9747() { 11967 return { 11968 updatePrice(priceData) { 11969 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 11970 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 11971 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 11972 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 11973 regularPriceLabel.classList.add('hidden'); 11974 } else { 11975 regularPriceLabel.classList.remove('hidden'); 11976 } 11977 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 11978 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 11979 } 11980 } 11981 } 11982 </script>
11982 11983 <div class="sm:items-center sm:flex sm:justify-between"> 11984 <div class="text-gray-900" x-data="initPriceBox__6ac71ba4b9747()" @update-prices-3218.window="updatePrice($event.detail);"> 11985 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3218" data-price-box="product-id-3218"> 11986<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 11987 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 11988 <span class="price">394,80 €</span> </div> 11989 11990 11991 </div> 11992</div> </div> 11993 <div class="w-auto justify-center"> 11994 <div class="text-right"> 11995 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 11996 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 11997 <span class="text-xs">Auf Lager</span> 11998 </p> 11999 </div> 12000 </div> 12001 </div> 12002 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12003 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-futura-et-porte-gobelet-becomfort-bleu-bleu-encre-tube-titane-bdl0013-8900-1.jpg')" @mouseleave="resetImage()"> 12004 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12005 'border-primary-900': isCurrentProduct(3221, 3218), 12006 'border-transparent': !isCurrentProduct(3221, 3218) 12007 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12008 </a> 12009 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-getrankehalter-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-porte-gobelet-bundle-futura-et-porte-gobelet-becomfort-gris-dark-grey-tube-titane-bdl0013-8902-1.jpg')" @mouseleave="resetImage()"> 12010 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12011 'border-primary-900': isCurrentProduct(3218, 3218), 12012 'border-transparent': !isCurrentProduct(3218, 3218) 12013 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12014 </a> 12015 </div> 12016 </div> 12017
12017<script> 12018 function initAutolist() { 12019 return { 12020 changeImage(image) { 12021 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12022 target.dataset.tempsrc = target.src; 12023 target.src = image; 12024 }, 12025 resetImage() { 12026 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12027 target.src = target.dataset.tempsrc; 12028 }, 12029 isCurrentProduct(currentId, productId) { 12030 return currentId === productId; 12031 } 12032 } 12033 } 12034 </script>
12034 12035 12036</div> 12037 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12038 <a href="https://www.lafuma-moebel.de/zero-gravity-kunstleder-eclipse-relax-noir-tube-noir-lfm5296-9943.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="2967" tabindex="-1"> 12039 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-2967.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-sim-cuir-stamskin-m2-eclipse-relax-noir-nori-tube-noir-lfm5296-9943-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity Relaxliege - Eclipse - Simili cuir - Schwarz Nori" title="Zero-Gravity Relaxliege - Eclipse - Simili cuir - Schwarz Nori"> 12040 12041 </a> 12042 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12043 <div class="mb-6 justify-center text-primary text-left "> 12044 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-kunstleder-eclipse-relax-noir-tube-noir-lfm5296-9943.html"> 12045 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity Relaxliege</span> 12046 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Eclipse Kunstleder Schwarz </span> 12047 </a> 12048 </div> 12049 12050 12051 12052
12052<script> 12053 function initPriceBox__6ac71ba4ceb6f() { 12054 return { 12055 updatePrice(priceData) { 12056 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12057 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12058 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12059 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12060 regularPriceLabel.classList.add('hidden'); 12061 } else { 12062 regularPriceLabel.classList.remove('hidden'); 12063 } 12064 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12065 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12066 } 12067 } 12068 } 12069 </script>
12069 12070 <div class="sm:items-center sm:flex sm:justify-between"> 12071 <div class="text-gray-900" x-data="initPriceBox__6ac71ba4ceb6f()" @update-prices-2967.window="updatePrice($event.detail);"> 12072 <div class="price-box price-final_price" data-role="priceBox" data-product-id="2967" data-price-box="product-id-2967"> 12073 <span x-data x-id="['product\u002Dprice\u002D2967']" class="price-container price-final_price tax weee"> 12074 <span :id="$id('product\u002Dprice\u002D2967')" data-price-amount="449" data-price-type="finalPrice" class="price-wrapper "><span class="price">449,00 €</span></span> 12075 </span> 12076 12077</div> </div> 12078 <div class="w-auto justify-center"> 12079 <div class="text-right"> 12080 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12081 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12082 <span class="text-xs">Auf Lager</span> 12083 </p> 12084 </div> 12085 </div> 12086 </div> 12087 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12088 <a href="https://www.lafuma-moebel.de/zero-gravity-kunstleder-eclipse-relax-noir-tube-noir-lfm5296-9943.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-sim-cuir-stamskin-m2-eclipse-relax-noir-nori-tube-noir-lfm5296-9943-1.jpg')" @mouseleave="resetImage()"> 12089 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12090 'border-primary-900': isCurrentProduct(2967, 2967), 12091 'border-transparent': !isCurrentProduct(2967, 2967) 12092 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9943-nori-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12093 </a> 12094 </div> 12095 </div> 12096
12096<script> 12097 function initAutolist() { 12098 return { 12099 changeImage(image) { 12100 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12101 target.dataset.tempsrc = target.src; 12102 target.src = image; 12103 }, 12104 resetImage() { 12105 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12106 target.src = target.dataset.tempsrc; 12107 }, 12108 isCurrentProduct(currentId, productId) { 12109 return currentId === productId; 12110 } 12111 } 12112 } 12113 </script>
12113 12114 12115 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 12116 amlabel-position-bottom-left-2967-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"2967","label":88,"margin":2,"alignment":0,"order":1,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 12117 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-88-2967-prod amasty-label-for-2967" data-amlabel-order="1"> 12118 <div style="background-color: #000; padding:5px; font-weight:500; font-size: 10px; color: #ffffff;"> 12119 <div class="amlabel-text text-center whitespace-nowrap"> 12120 PRO </div> 12121 </div> 12122 </div> 12123 </div> 12124</div> 12125 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12126 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-privilege-latte-2018.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="357" tabindex="-1"> 12127 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-357.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-bayanne-relax-beige-latte-tube-titane-lfm2768-7710-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Bayanne - Hedona - Beige Latte" title="Gepolsterte Zero-Gravity-Relaxliege - Bayanne - Hedona - Beige Latte"> 12128 12129 </a> 12130 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12131 <div class="mb-6 justify-center text-primary text-left "> 12132 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-privilege-latte-2018.html"> 12133 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 12134 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Bayanne Hedona Beige </span> 12135 </a> 12136 </div> 12137 12138 12139 12140
12140<script> 12141 function initPriceBox__6ac71ba4da426() { 12142 return { 12143 updatePrice(priceData) { 12144 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12145 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12146 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12147 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12148 regularPriceLabel.classList.add('hidden'); 12149 } else { 12150 regularPriceLabel.classList.remove('hidden'); 12151 } 12152 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12153 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12154 } 12155 } 12156 } 12157 </script>
12157 12158 <div class="sm:items-center sm:flex sm:justify-between"> 12159 <div class="text-gray-900" x-data="initPriceBox__6ac71ba4da426()" @update-prices-357.window="updatePrice($event.detail);"> 12160 <div class="price-box price-final_price" data-role="priceBox" data-product-id="357" data-price-box="product-id-357"> 12161 <span x-data x-id="['product\u002Dprice\u002D357']" class="price-container price-final_price tax weee"> 12162 <span :id="$id('product\u002Dprice\u002D357')" data-price-amount="369.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">369,90 €</span></span> 12163 </span> 12164 12165</div> </div> 12166 <div class="w-auto justify-center"> 12167 <div class="text-right"> 12168 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12169 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12170 <span class="text-xs">Auf Lager</span> 12171 </p> 12172 </div> 12173 </div> 12174 </div> 12175 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12176 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-privilege-latte-2018.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-bayanne-relax-beige-latte-tube-titane-lfm2768-7710-1.jpg')" @mouseleave="resetImage()"> 12177 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12178 'border-primary-900': isCurrentProduct(357, 357), 12179 'border-transparent': !isCurrentProduct(357, 357) 12180 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7710-latte-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12181 </a> 12182 <a href="https://www.lafuma-moebel.de/relaxsessel-evolution-batyline-privilege-latte-2018.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-bayanne-relax-gris-onyx-tube-titane-lfm2768-8917-1.jpg')" @mouseleave="resetImage()"> 12183 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12184 'border-primary-900': isCurrentProduct(363, 357), 12185 'border-transparent': !isCurrentProduct(363, 357) 12186 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8917-onyx-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12187 </a> 12188 </div> 12189 </div> 12190
12190<script> 12191 function initAutolist() { 12192 return { 12193 changeImage(image) { 12194 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12195 target.dataset.tempsrc = target.src; 12196 target.src = image; 12197 }, 12198 resetImage() { 12199 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12200 target.src = target.dataset.tempsrc; 12201 }, 12202 isCurrentProduct(currentId, productId) { 12203 return currentId === productId; 12204 } 12205 } 12206 } 12207 </script>
12207 12208 </div> 12209 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12210 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-beige-seigle-ii-tube-titane-bdl0027-9868.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3558" tabindex="-1"> 12211 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3558.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-beige-bdl0027_9868-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set aus 2 Relaxsesseln - Futura - Batyline® Iso - Beige Seigle" title="Set aus 2 Relaxsesseln - Futura - Batyline® Iso - Beige Seigle"> 12212 12213 </a> 12214 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12215 <div class="mb-6 justify-center text-primary text-left "> 12216 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-beige-seigle-ii-tube-titane-bdl0027-9868.html"> 12217 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set aus 2 Relaxsesseln</span> 12218 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura Batyline® Iso Beige </span> 12219 </a> 12220 </div> 12221 12222 12223 12224
12224<script> 12225 function initPriceBox__6ac71ba4e54e6() { 12226 return { 12227 updatePrice(priceData) { 12228 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12229 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12230 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12231 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12232 regularPriceLabel.classList.add('hidden'); 12233 } else { 12234 regularPriceLabel.classList.remove('hidden'); 12235 } 12236 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12237 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12238 } 12239 } 12240 } 12241 </script>
12241 12242 <div class="sm:items-center sm:flex sm:justify-between"> 12243 <div class="text-gray-900" x-data="initPriceBox__6ac71ba4e54e6()" @update-prices-3558.window="updatePrice($event.detail);"> 12244 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3558" data-price-box="product-id-3558"> 12245<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 12246 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 12247 <span class="price">499,80 €</span> </div> 12248 12249 12250 </div> 12251</div> </div> 12252 <div class="w-auto justify-center"> 12253 <div class="text-right"> 12254 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12255 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12256 <span class="text-xs">Auf Lager</span> 12257 </p> 12258 </div> 12259 </div> 12260 </div> 12261 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12262 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-beige-seigle-ii-tube-titane-bdl0027-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-beige-bdl0027_9868-1.jpg')" @mouseleave="resetImage()"> 12263 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12264 'border-primary-900': isCurrentProduct(3558, 3558), 12265 'border-transparent': !isCurrentProduct(3558, 3558) 12266 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12267 </a> 12268 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-beige-seigle-ii-tube-titane-bdl0027-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-bleu-bdl0027_9870-1.jpg')" @mouseleave="resetImage()"> 12269 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12270 'border-primary-900': isCurrentProduct(3561, 3558), 12271 'border-transparent': !isCurrentProduct(3561, 3558) 12272 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12273 </a> 12274 </div> 12275 </div> 12276
12276<script> 12277 function initAutolist() { 12278 return { 12279 changeImage(image) { 12280 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12281 target.dataset.tempsrc = target.src; 12282 target.src = image; 12283 }, 12284 resetImage() { 12285 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12286 target.src = target.dataset.tempsrc; 12287 }, 12288 isCurrentProduct(currentId, productId) { 12289 return currentId === productId; 12290 } 12291 } 12292 } 12293 </script>
12293 12294 12295</div> 12296 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12297 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-rclip-batyline-bleu-ocean-ii-tube-titane-bdl0010-9870.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3200" tabindex="-1"> 12298 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3200.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-rclip-batyline-bleu-ocean-ii-tube-titane-bdl0010-9870-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set aus 2 Relaxsesseln - RClip - Batyline® Iso - Bleu Ocean" title="Set aus 2 Relaxsesseln - RClip - Batyline® Iso - Bleu Ocean"> 12299 12300 </a> 12301 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12302 <div class="mb-6 justify-center text-primary text-left "> 12303 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-rclip-batyline-bleu-ocean-ii-tube-titane-bdl0010-9870.html"> 12304 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set aus 2 Relaxsesseln</span> 12305 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">RClip Batyline® Iso Blau </span> 12306 </a> 12307 </div> 12308 12309 12310 12311
12311<script> 12312 function initPriceBox__6ac71ba50b531() { 12313 return { 12314 updatePrice(priceData) { 12315 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12316 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12317 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12318 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12319 regularPriceLabel.classList.add('hidden'); 12320 } else { 12321 regularPriceLabel.classList.remove('hidden'); 12322 } 12323 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12324 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12325 } 12326 } 12327 } 12328 </script>
12328 12329 <div class="sm:items-center sm:flex sm:justify-between"> 12330 <div class="text-gray-900" x-data="initPriceBox__6ac71ba50b531()" @update-prices-3200.window="updatePrice($event.detail);"> 12331 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3200" data-price-box="product-id-3200"> 12332<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 12333 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 12334 <span class="price">299,80 €</span> </div> 12335 12336 12337 </div> 12338</div> </div> 12339 <div class="w-auto justify-center"> 12340 <div class="text-right"> 12341 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12342 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12343 <span class="text-xs">Auf Lager</span> 12344 </p> 12345 </div> 12346 </div> 12347 </div> 12348 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12349 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-rclip-batyline-bleu-ocean-ii-tube-titane-bdl0010-9870.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-rclip-batyline-beige-seigle-ii-tube-titane-bdl0010-9868-1.jpg')" @mouseleave="resetImage()"> 12350 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12351 'border-primary-900': isCurrentProduct(3203, 3200), 12352 'border-transparent': !isCurrentProduct(3203, 3200) 12353 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12354 </a> 12355 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-rclip-batyline-bleu-ocean-ii-tube-titane-bdl0010-9870.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-rclip-batyline-bleu-ocean-ii-tube-titane-bdl0010-9870-1.jpg')" @mouseleave="resetImage()"> 12356 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12357 'border-primary-900': isCurrentProduct(3200, 3200), 12358 'border-transparent': !isCurrentProduct(3200, 3200) 12359 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12360 </a> 12361 </div> 12362 </div> 12363
12363<script> 12364 function initAutolist() { 12365 return { 12366 changeImage(image) { 12367 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12368 target.dataset.tempsrc = target.src; 12369 target.src = image; 12370 }, 12371 resetImage() { 12372 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12373 target.src = target.dataset.tempsrc; 12374 }, 12375 isCurrentProduct(currentId, productId) { 12376 return currentId === productId; 12377 } 12378 } 12379 } 12380 </script>
12380 12381 12382</div> 12383 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12384 <a href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-gris-cendre-tube-noir-lfm5397-a005.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3888" tabindex="-1"> 12385 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3888.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-interieure-transalounge-niksen-gris-lfm5397_a005-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Chaiselongue für den Innenbereich - Transalounge - Niksen - Grau Cendre" title="Chaiselongue für den Innenbereich - Transalounge - Niksen - Grau Cendre"> 12386 12387 </a> 12388 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12389 <div class="mb-6 justify-center text-primary text-left "> 12390 <a class="product-item-link" href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-gris-cendre-tube-noir-lfm5397-a005.html"> 12391 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Chaiselongue für den Innenbereich</span> 12392 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Transalounge Niksen Grau </span> 12393 </a> 12394 </div> 12395 12396 12397 12398
12398<script> 12399 function initPriceBox__6ac71ba51fbb3() { 12400 return { 12401 updatePrice(priceData) { 12402 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12403 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12404 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12405 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12406 regularPriceLabel.classList.add('hidden'); 12407 } else { 12408 regularPriceLabel.classList.remove('hidden'); 12409 } 12410 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12411 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12412 } 12413 } 12414 } 12415 </script>
12415 12416 <div class="sm:items-center sm:flex sm:justify-between"> 12417 <div class="text-gray-900" x-data="initPriceBox__6ac71ba51fbb3()" @update-prices-3888.window="updatePrice($event.detail);"> 12418 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3888" data-price-box="product-id-3888"> 12419 <span x-data x-id="['product\u002Dprice\u002D3888']" class="price-container price-final_price tax weee"> 12420 <span :id="$id('product\u002Dprice\u002D3888')" data-price-amount="349.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">349,90 €</span></span> 12421 </span> 12422 12423</div> </div> 12424 <div class="w-auto justify-center"> 12425 <div class="text-right"> 12426 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12427 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12428 <span class="text-xs">Auf Lager</span> 12429 </p> 12430 </div> 12431 </div> 12432 </div> 12433 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12434 <a href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-gris-cendre-tube-noir-lfm5397-a005.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-interieure-transalounge-niksen-beige-lfm5397_a004-1.jpg')" @mouseleave="resetImage()"> 12435 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12436 'border-primary-900': isCurrentProduct(3885, 3888), 12437 'border-transparent': !isCurrentProduct(3885, 3888) 12438 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a004-creme-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12439 </a> 12440 <a href="https://www.lafuma-moebel.de/chaiselongue-fur-den-innenbereich-transalounge-niksen-gris-cendre-tube-noir-lfm5397-a005.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-interieure-transalounge-niksen-gris-lfm5397_a005-1.jpg')" @mouseleave="resetImage()"> 12441 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12442 'border-primary-900': isCurrentProduct(3888, 3888), 12443 'border-transparent': !isCurrentProduct(3888, 3888) 12444 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a005-cendre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12445 </a> 12446 </div> 12447 </div> 12448
12448<script> 12449 function initAutolist() { 12450 return { 12451 changeImage(image) { 12452 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12453 target.dataset.tempsrc = target.src; 12454 target.src = image; 12455 }, 12456 resetImage() { 12457 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12458 target.src = target.dataset.tempsrc; 12459 }, 12460 isCurrentProduct(currentId, productId) { 12461 return currentId === productId; 12462 } 12463 } 12464 } 12465 </script>
12465 12466 12467 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 12468 amlabel-position-bottom-left-3888-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3888","label":18,"margin":2,"alignment":0,"order":2,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 12469 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-18-3888-prod amasty-label-for-3888" data-amlabel-order="2"> 12470 <div style=""> 12471 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 12472 </div> 12473 <img id="amasty-label-image-18-3888-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
12473amlabel/DE_1_1.png" title="Chaiselongue für den Innenbereich - Transalounge - Niksen - Grau Cendre" alt="Chaiselongue für den Innenbereich - Transalounge - Niksen - Grau Cendre"> 12474 </div> 12475 </div> 12476 </div> 12477</div> 12478 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12479 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-futura-beige-seigle-ii-tube-titane-lfm3111-9868.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1722" tabindex="-1"> 12480 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1722.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-futura-beige-seigle-ii-tube-titane-lfm3111-9868-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege - Futura - Batyline® Iso - Beige Seigle" title="Zero-Gravity-Relaxliege - Futura - Batyline® Iso - Beige Seigle"> 12481 12482 </a> 12483 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12484 <div class="mb-6 justify-center text-primary text-left "> 12485 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-futura-beige-seigle-ii-tube-titane-lfm3111-9868.html"> 12486 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege</span> 12487 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura Batyline® Iso Beige </span> 12488 </a> 12489 </div> 12490 12491 12492 12493
12493<script> 12494 function initPriceBox__6ac71ba531fdc() { 12495 return { 12496 updatePrice(priceData) { 12497 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12498 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12499 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12500 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12501 regularPriceLabel.classList.add('hidden'); 12502 } else { 12503 regularPriceLabel.classList.remove('hidden'); 12504 } 12505 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12506 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12507 } 12508 } 12509 } 12510 </script>
12510 12511 <div class="sm:items-center sm:flex sm:justify-between"> 12512 <div class="text-gray-900" x-data="initPriceBox__6ac71ba531fdc()" @update-prices-1722.window="updatePrice($event.detail);"> 12513 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1722" data-price-box="product-id-1722"> 12514 <span x-data x-id="['product\u002Dprice\u002D1722']" class="price-container price-final_price tax weee"> 12515 <span :id="$id('product\u002Dprice\u002D1722')" data-price-amount="249.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">249,90 €</span></span> 12516 </span> 12517 12518</div> </div> 12519 <div class="w-auto justify-center"> 12520 <div class="text-right"> 12521 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12522 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12523 <span class="text-xs">Auf Lager</span> 12524 </p> 12525 </div> 12526 </div> 12527 </div> 12528 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12529 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-futura-beige-seigle-ii-tube-titane-lfm3111-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-futura-beige-seigle-ii-tube-titane-lfm3111-9868-1.jpg')" @mouseleave="resetImage()"> 12530 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12531 'border-primary-900': isCurrentProduct(1722, 1722), 12532 'border-transparent': !isCurrentProduct(1722, 1722) 12533 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12534 </a> 12535 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-futura-beige-seigle-ii-tube-titane-lfm3111-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-futura-bleu-ocean-ii-tube-titane-lfm3111-9870-1.jpg')" @mouseleave="resetImage()"> 12536 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12537 'border-primary-900': isCurrentProduct(1725, 1722), 12538 'border-transparent': !isCurrentProduct(1725, 1722) 12539 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12540 </a> 12541 </div> 12542 </div> 12543
12543<script> 12544 function initAutolist() { 12545 return { 12546 changeImage(image) { 12547 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12548 target.dataset.tempsrc = target.src; 12549 target.src = image; 12550 }, 12551 resetImage() { 12552 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12553 target.src = target.dataset.tempsrc; 12554 }, 12555 isCurrentProduct(currentId, productId) { 12556 return currentId === productId; 12557 } 12558 } 12559 } 12560 </script>
12560 12561 </div> 12562 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12563 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-gris-cendre-tube-noir-lfm5398-a005.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3894" tabindex="-1"> 12564 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3894.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-niksen-gris-lfm5398_a005-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Grau Cendre" title="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Grau Cendre"> 12565 12566 </a> 12567 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12568 <div class="mb-6 justify-center text-primary text-left "> 12569 <a class="product-item-link" href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-gris-cendre-tube-noir-lfm5398-a005.html"> 12570 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 12571 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Evolution Niksen Grau </span> 12572 </a> 12573 </div> 12574 12575 12576 12577
12577<script> 12578 function initPriceBox__6ac71ba54473f() { 12579 return { 12580 updatePrice(priceData) { 12581 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12582 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12583 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12584 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12585 regularPriceLabel.classList.add('hidden'); 12586 } else { 12587 regularPriceLabel.classList.remove('hidden'); 12588 } 12589 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12590 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12591 } 12592 } 12593 } 12594 </script>
12594 12595 <div class="sm:items-center sm:flex sm:justify-between"> 12596 <div class="text-gray-900" x-data="initPriceBox__6ac71ba54473f()" @update-prices-3894.window="updatePrice($event.detail);"> 12597 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3894" data-price-box="product-id-3894"> 12598 <span x-data x-id="['product\u002Dprice\u002D3894']" class="price-container price-final_price tax weee"> 12599 <span :id="$id('product\u002Dprice\u002D3894')" data-price-amount="349.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">349,90 €</span></span> 12600 </span> 12601 12602</div> </div> 12603 <div class="w-auto justify-center"> 12604 <div class="text-right"> 12605 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12606 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12607 <span class="text-xs">Auf Lager</span> 12608 </p> 12609 </div> 12610 </div> 12611 </div> 12612 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12613 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-gris-cendre-tube-noir-lfm5398-a005.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-niksen-beige-lfm5398_a004-1.jpg')" @mouseleave="resetImage()"> 12614 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12615 'border-primary-900': isCurrentProduct(3891, 3894), 12616 'border-transparent': !isCurrentProduct(3891, 3894) 12617 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a004-creme-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12618 </a> 12619 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-evolution-niksen-gris-cendre-tube-noir-lfm5398-a005.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-evolution-niksen-gris-lfm5398_a005-1.jpg')" @mouseleave="resetImage()"> 12620 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12621 'border-primary-900': isCurrentProduct(3894, 3894), 12622 'border-transparent': !isCurrentProduct(3894, 3894) 12623 }" src="https://www.lafuma-moebel.de/visuels-lafmob/a005-cendre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12624 </a> 12625 </div> 12626 </div> 12627
12627<script> 12628 function initAutolist() { 12629 return { 12630 changeImage(image) { 12631 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12632 target.dataset.tempsrc = target.src; 12633 target.src = image; 12634 }, 12635 resetImage() { 12636 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12637 target.src = target.dataset.tempsrc; 12638 }, 12639 isCurrentProduct(currentId, productId) { 12640 return currentId === productId; 12641 } 12642 } 12643 } 12644 </script>
12644 12645 12646 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 12647 amlabel-position-bottom-left-3894-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3894","label":18,"margin":2,"alignment":0,"order":2,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 12648 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-18-3894-prod amasty-label-for-3894" data-amlabel-order="2"> 12649 <div style=""> 12650 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 12651 </div> 12652 <img id="amasty-label-image-18-3894-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
12652amlabel/DE_1_1.png" title="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Grau Cendre" alt="Gepolsterte Zero-Gravity-Relaxliege - Evolution - Niksen - Grau Cendre"> 12653 </div> 12654 </div> 12655 </div> 12656</div> 12657 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12658 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1596" tabindex="-1"> 12659 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1596.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-vert-moss-tube-titane-lfm2055-8557-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege - Rsxa Clip - Batyline® Iso - Grün Moss" title="Zero-Gravity-Relaxliege - Rsxa Clip - Batyline® Iso - Grün Moss"> 12660 12661 </a> 12662 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12663 <div class="mb-6 justify-center text-primary text-left "> 12664 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html"> 12665 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege</span> 12666 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsxa Clip Batyline® Iso Grün </span> 12667 </a> 12668 </div> 12669 12670 12671 12672
12672<script> 12673 function initPriceBox__6ac71ba5569af() { 12674 return { 12675 updatePrice(priceData) { 12676 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12677 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12678 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12679 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12680 regularPriceLabel.classList.add('hidden'); 12681 } else { 12682 regularPriceLabel.classList.remove('hidden'); 12683 } 12684 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12685 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12686 } 12687 } 12688 } 12689 </script>
12689 12690 <div class="sm:items-center sm:flex sm:justify-between"> 12691 <div class="text-gray-900" x-data="initPriceBox__6ac71ba5569af()" @update-prices-1596.window="updatePrice($event.detail);"> 12692 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1596" data-price-box="product-id-1596"> 12693 <span x-data x-id="['product\u002Dprice\u002D1596']" class="price-container price-final_price tax weee"> 12694 <span :id="$id('product\u002Dprice\u002D1596')" data-price-amount="249.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">249,90 €</span></span> 12695 </span> 12696 12697</div> </div> 12698 <div class="w-auto justify-center"> 12699 <div class="text-right"> 12700 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12701 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12702 <span class="text-xs">Auf Lager</span> 12703 </p> 12704 </div> 12705 </div> 12706 </div> 12707 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12708 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-noir-black-tube-titane-lfm2055-8551-1.jpg')" @mouseleave="resetImage()"> 12709 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12710 'border-primary-900': isCurrentProduct(1590, 1596), 12711 'border-transparent': !isCurrentProduct(1590, 1596) 12712 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8551-black-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12713 </a> 12714 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-vert-moss-tube-titane-lfm2055-8557-1.jpg')" @mouseleave="resetImage()"> 12715 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12716 'border-primary-900': isCurrentProduct(1596, 1596), 12717 'border-transparent': !isCurrentProduct(1596, 1596) 12718 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8557-moss-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12719 </a> 12720 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-marron-graphite-tube-titane-lfm2055-8717-1.jpg')" @mouseleave="resetImage()"> 12721 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12722 'border-primary-900': isCurrentProduct(1599, 1596), 12723 'border-transparent': !isCurrentProduct(1599, 1596) 12724 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8717-graphite-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12725 </a> 12726 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-bleu-ciel-tube-titane-lfm2055-9711-1.jpg')" @mouseleave="resetImage()"> 12727 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12728 'border-primary-900': isCurrentProduct(1602, 1596), 12729 'border-transparent': !isCurrentProduct(1602, 1596) 12730 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9711-ciel-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12731 </a> 12732 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-orange-canyon-tube-titane-lfm2055-9712-1.jpg')" @mouseleave="resetImage()"> 12733 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12734 'border-primary-900': isCurrentProduct(3789, 1596), 12735 'border-transparent': !isCurrentProduct(3789, 1596) 12736 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9875-canyon-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12737 </a> 12738 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-rsxa-clip-vert-moss-tube-titane-lfm2055-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-rsxa-clip-bleu-ocean-ii-tube-titane-lfm2055-9870-1.jpg')" @mouseleave="resetImage()"> 12739 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12740 'border-primary-900': isCurrentProduct(1611, 1596), 12741 'border-transparent': !isCurrentProduct(1611, 1596) 12742 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12743 </a> 12744 </div> 12745 </div> 12746
12746<script> 12747 function initAutolist() { 12748 return { 12749 changeImage(image) { 12750 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12751 target.dataset.tempsrc = target.src; 12752 target.src = image; 12753 }, 12754 resetImage() { 12755 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12756 target.src = target.dataset.tempsrc; 12757 }, 12758 isCurrentProduct(currentId, productId) { 12759 return currentId === productId; 12760 } 12761 } 12762 } 12763 </script>
12763 12764 </div> 12765 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12766 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1629" tabindex="-1"> 12767 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1629.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Beige Seigle" title="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Beige Seigle"> 12768 12769 </a> 12770 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12771 <div class="mb-6 justify-center text-primary text-left "> 12772 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html"> 12773 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 12774 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsxa Clip XL Batyline® Iso Beige </span> 12775 </a> 12776 </div> 12777 12778 12779 12780
12780<script> 12781 function initPriceBox__6ac71ba560c36() { 12782 return { 12783 updatePrice(priceData) { 12784 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12785 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12786 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12787 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12788 regularPriceLabel.classList.add('hidden'); 12789 } else { 12790 regularPriceLabel.classList.remove('hidden'); 12791 } 12792 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12793 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12794 } 12795 } 12796 } 12797 </script>
12797 12798 <div class="sm:items-center sm:flex sm:justify-between"> 12799 <div class="text-gray-900" x-data="initPriceBox__6ac71ba560c36()" @update-prices-1629.window="updatePrice($event.detail);"> 12800 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1629" data-price-box="product-id-1629"> 12801 <span x-data x-id="['product\u002Dprice\u002D1629']" class="price-container price-final_price tax weee"> 12802 <span :id="$id('product\u002Dprice\u002D1629')" data-price-amount="269.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">269,90 €</span></span> 12803 </span> 12804 12805</div> </div> 12806 <div class="w-auto justify-center"> 12807 <div class="text-right"> 12808 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12809 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12810 <span class="text-xs">Auf Lager</span> 12811 </p> 12812 </div> 12813 </div> 12814 </div> 12815 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12816 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-noir-black-tube-titane-lfm2057-8551-1.jpg')" @mouseleave="resetImage()"> 12817 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12818 'border-primary-900': isCurrentProduct(1617, 1629), 12819 'border-transparent': !isCurrentProduct(1617, 1629) 12820 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8551-black-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12821 </a> 12822 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556-1.jpg')" @mouseleave="resetImage()"> 12823 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12824 'border-primary-900': isCurrentProduct(1620, 1629), 12825 'border-transparent': !isCurrentProduct(1620, 1629) 12826 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8556-terre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12827 </a> 12828 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557-1.jpg')" @mouseleave="resetImage()"> 12829 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12830 'border-primary-900': isCurrentProduct(1623, 1629), 12831 'border-transparent': !isCurrentProduct(1623, 1629) 12832 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8557-moss-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12833 </a> 12834 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-graphite-tube-titane-lfm2057-8717-1.jpg')" @mouseleave="resetImage()"> 12835 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12836 'border-primary-900': isCurrentProduct(1626, 1629), 12837 'border-transparent': !isCurrentProduct(1626, 1629) 12838 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8717-graphite-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12839 </a> 12840 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868-1.jpg')" @mouseleave="resetImage()"> 12841 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12842 'border-primary-900': isCurrentProduct(1629, 1629), 12843 'border-transparent': !isCurrentProduct(1629, 1629) 12844 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12845 </a> 12846 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-bleu-ocean-ii-tube-titane-lfm2057-9870-1.jpg')" @mouseleave="resetImage()"> 12847 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12848 'border-primary-900': isCurrentProduct(1632, 1629), 12849 'border-transparent': !isCurrentProduct(1632, 1629) 12850 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12851 </a> 12852 </div> 12853 </div> 12854
12854<script> 12855 function initAutolist() { 12856 return { 12857 changeImage(image) { 12858 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12859 target.dataset.tempsrc = target.src; 12860 target.src = image; 12861 }, 12862 resetImage() { 12863 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12864 target.src = target.dataset.tempsrc; 12865 }, 12866 isCurrentProduct(currentId, productId) { 12867 return currentId === productId; 12868 } 12869 } 12870 } 12871 </script>
12871 12872 12873 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 12874 amlabel-position-bottom-right-1629-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"1629","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 12875 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-1629-prod amasty-label-for-1629" data-amlabel-order="4"> 12876 <div style="font-size: 14px; color: #ffffff;"> 12877 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 12878 </div> 12879 <img id="amasty-label-image-6-1629-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
12879amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Beige Seigle" alt="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Beige Seigle"> 12880 </div> 12881 </div> 12882 </div> 12883</div> 12884 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 12885 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1623" tabindex="-1"> 12886 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1623.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grün Moss" title="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grün Moss"> 12887 12888 </a> 12889 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 12890 <div class="mb-6 justify-center text-primary text-left "> 12891 <a class="product-item-link" href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html"> 12892 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege XL</span> 12893 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsxa Clip XL Batyline® Iso Grün </span> 12894 </a> 12895 </div> 12896 12897 12898 12899
12899<script> 12900 function initPriceBox__6ac71ba56c037() { 12901 return { 12902 updatePrice(priceData) { 12903 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 12904 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 12905 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 12906 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 12907 regularPriceLabel.classList.add('hidden'); 12908 } else { 12909 regularPriceLabel.classList.remove('hidden'); 12910 } 12911 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 12912 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 12913 } 12914 } 12915 } 12916 </script>
12916 12917 <div class="sm:items-center sm:flex sm:justify-between"> 12918 <div class="text-gray-900" x-data="initPriceBox__6ac71ba56c037()" @update-prices-1623.window="updatePrice($event.detail);"> 12919 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1623" data-price-box="product-id-1623"> 12920 <span x-data x-id="['product\u002Dprice\u002D1623']" class="price-container price-final_price tax weee"> 12921 <span :id="$id('product\u002Dprice\u002D1623')" data-price-amount="269.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">269,90 €</span></span> 12922 </span> 12923 12924</div> </div> 12925 <div class="w-auto justify-center"> 12926 <div class="text-right"> 12927 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 12928 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 12929 <span class="text-xs">Auf Lager</span> 12930 </p> 12931 </div> 12932 </div> 12933 </div> 12934 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 12935 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-noir-black-tube-titane-lfm2057-8551-1.jpg')" @mouseleave="resetImage()"> 12936 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12937 'border-primary-900': isCurrentProduct(1617, 1623), 12938 'border-transparent': !isCurrentProduct(1617, 1623) 12939 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8551-black-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12940 </a> 12941 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-terre-tube-titane-lfm2057-8556-1.jpg')" @mouseleave="resetImage()"> 12942 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12943 'border-primary-900': isCurrentProduct(1620, 1623), 12944 'border-transparent': !isCurrentProduct(1620, 1623) 12945 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8556-terre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12946 </a> 12947 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557-1.jpg')" @mouseleave="resetImage()"> 12948 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12949 'border-primary-900': isCurrentProduct(1623, 1623), 12950 'border-transparent': !isCurrentProduct(1623, 1623) 12951 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8557-moss-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12952 </a> 12953 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-marron-graphite-tube-titane-lfm2057-8717-1.jpg')" @mouseleave="resetImage()"> 12954 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12955 'border-primary-900': isCurrentProduct(1626, 1623), 12956 'border-transparent': !isCurrentProduct(1626, 1623) 12957 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8717-graphite-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12958 </a> 12959 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-beige-seigle-ii-tube-titane-lfm2057-9868-1.jpg')" @mouseleave="resetImage()"> 12960 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12961 'border-primary-900': isCurrentProduct(1629, 1623), 12962 'border-transparent': !isCurrentProduct(1629, 1623) 12963 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9868-seigle-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12964 </a> 12965 <a href="https://www.lafuma-moebel.de/zero-gravity-relaxliege-xl-rsxa-clip-xl-vert-moss-tube-titane-lfm2057-8557.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-xl-rsxa-clip-xl-bleu-ocean-ii-tube-titane-lfm2057-9870-1.jpg')" @mouseleave="resetImage()"> 12966 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 12967 'border-primary-900': isCurrentProduct(1632, 1623), 12968 'border-transparent': !isCurrentProduct(1632, 1623) 12969 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9870-ocean-ll-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 12970 </a> 12971 </div> 12972 </div> 12973
12973<script> 12974 function initAutolist() { 12975 return { 12976 changeImage(image) { 12977 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12978 target.dataset.tempsrc = target.src; 12979 target.src = image; 12980 }, 12981 resetImage() { 12982 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 12983 target.src = target.dataset.tempsrc; 12984 }, 12985 isCurrentProduct(currentId, productId) { 12986 return currentId === productId; 12987 } 12988 } 12989 } 12990 </script>
12990 12991 12992 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 12993 amlabel-position-bottom-right-1623-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"1623","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 12994 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-1623-prod amasty-label-for-1623" data-amlabel-order="4"> 12995 <div style="font-size: 14px; color: #ffffff;"> 12996 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 12997 </div> 12998 <img id="amasty-label-image-6-1623-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
12998amlabel/TAGS_2__1.png" title="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grün Moss" alt="Zero-Gravity-Relaxliege XL - Rsxa Clip XL - Batyline® Iso - Grün Moss"> 12999 </div> 13000 </div> 13001 </div> 13002</div> 13003 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13004 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-rouge-bordeaux-tube-noir-bdl0053-3186.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3750" tabindex="-1"> 13005 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3750.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-rouge-bdl0053_3186-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter - RSX Clip - AirComfort® - Rouge Bordeaux" title="Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter - RSX Clip - AirComfort® - Rouge Bordeaux"> 13006 13007 </a> 13008 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13009 <div class="mb-6 justify-center text-primary text-left "> 13010 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-rouge-bordeaux-tube-noir-bdl0053-3186.html"> 13011 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter</span> 13012 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip AirComfort® Rot </span> 13013 </a> 13014 </div> 13015 13016 13017 13018
13018<script> 13019 function initPriceBox__6ac71ba5777ea() { 13020 return { 13021 updatePrice(priceData) { 13022 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13023 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13024 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13025 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13026 regularPriceLabel.classList.add('hidden'); 13027 } else { 13028 regularPriceLabel.classList.remove('hidden'); 13029 } 13030 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13031 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13032 } 13033 } 13034 } 13035 </script>
13035 13036 <div class="sm:items-center sm:flex sm:justify-between"> 13037 <div class="text-gray-900" x-data="initPriceBox__6ac71ba5777ea()" @update-prices-3750.window="updatePrice($event.detail);"> 13038 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3750" data-price-box="product-id-3750"> 13039<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13040 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13041 <span class="price">449,70 €</span> </div> 13042 13043 13044 </div> 13045</div> </div> 13046 <div class="w-auto justify-center"> 13047 <div class="text-right"> 13048 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 13049 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 13050 <span class="text-xs">Bald verfügbar</span> 13051 </p> 13052 </div> 13053 </div> 13054 </div> 13055 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13056 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-rouge-bordeaux-tube-noir-bdl0053-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-rouge-bdl0053_3186-1.jpg')" @mouseleave="resetImage()"> 13057 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13058 'border-primary-900': isCurrentProduct(3750, 3750), 13059 'border-transparent': !isCurrentProduct(3750, 3750) 13060 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13061 </a> 13062 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-rouge-bordeaux-tube-noir-bdl0053-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-noir-bdl0053_6135-1.jpg')" @mouseleave="resetImage()"> 13063 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13064 'border-primary-900': isCurrentProduct(3747, 3750), 13065 'border-transparent': !isCurrentProduct(3747, 3750) 13066 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13067 </a> 13068 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-rouge-bordeaux-tube-noir-bdl0053-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-bleu-bdl0053_6893-1.jpg')" @mouseleave="resetImage()"> 13069 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13070 'border-primary-900': isCurrentProduct(3753, 3750), 13071 'border-transparent': !isCurrentProduct(3753, 3750) 13072 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13073 </a> 13074 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-rouge-bordeaux-tube-noir-bdl0053-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-marron-bdl0053_70
1307457-1.jpg')" @mouseleave="resetImage()"> 13075 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13076 'border-primary-900': isCurrentProduct(3756, 3750), 13077 'border-transparent': !isCurrentProduct(3756, 3750) 13078 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13079 </a> 13080 </div> 13081 </div> 13082
13082<script> 13083 function initAutolist() { 13084 return { 13085 changeImage(image) { 13086 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13087 target.dataset.tempsrc = target.src; 13088 target.src = image; 13089 }, 13090 resetImage() { 13091 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13092 target.src = target.dataset.tempsrc; 13093 }, 13094 isCurrentProduct(currentId, productId) { 13095 return currentId === productId; 13096 } 13097 } 13098 } 13099 </script>
13099 13100 13101</div> 13102 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13103 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-velio-neo-flora-rohr-titane-de.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="855" tabindex="-1"> 13104 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-855.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-mauve-flora-mauve-tube-titane-lfm3138-9531-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Zero-Gravity-Relaxliege - Futura - Velio - Lila Flora" title="Zero-Gravity-Relaxliege - Futura - Velio - Lila Flora"> 13105 13106 </a> 13107 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13108 <div class="mb-6 justify-center text-primary text-left "> 13109 <a class="product-item-link" href="https://www.lafuma-moebel.de/relaxsessel-futura-velio-neo-flora-rohr-titane-de.html"> 13110 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Zero-Gravity-Relaxliege</span> 13111 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura Velio Lila </span> 13112 </a> 13113 </div> 13114 13115 13116 13117
13117<script> 13118 function initPriceBox__6ac71ba585c4a() { 13119 return { 13120 updatePrice(priceData) { 13121 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13122 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13123 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13124 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13125 regularPriceLabel.classList.add('hidden'); 13126 } else { 13127 regularPriceLabel.classList.remove('hidden'); 13128 } 13129 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13130 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13131 } 13132 } 13133 } 13134 </script>
13134 13135 <div class="sm:items-center sm:flex sm:justify-between"> 13136 <div class="text-gray-900" x-data="initPriceBox__6ac71ba585c4a()" @update-prices-855.window="updatePrice($event.detail);"> 13137 <div class="price-box price-final_price" data-role="priceBox" data-product-id="855" data-price-box="product-id-855"> 13138 <span x-data x-id="['product\u002Dprice\u002D855']" class="price-container price-final_price tax weee"> 13139 <span :id="$id('product\u002Dprice\u002D855')" data-price-amount="269.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">269,90 €</span></span> 13140 </span> 13141 13142</div> </div> 13143 <div class="w-auto justify-center"> 13144 <div class="text-right"> 13145 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13146 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13147 <span class="text-xs">Auf Lager</span> 13148 </p> 13149 </div> 13150 </div> 13151 </div> 13152 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13153 <a href="https://www.lafuma-moebel.de/relaxsessel-futura-velio-neo-flora-rohr-titane-de.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-zero-gravite-futura-mauve-flora-mauve-tube-titane-lfm3138-9531-1.jpg')" @mouseleave="resetImage()"> 13154 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13155 'border-primary-900': isCurrentProduct(855, 855), 13156 'border-transparent': !isCurrentProduct(855, 855) 13157 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9531-flora-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13158 </a> 13159 </div> 13160 </div> 13161
13161<script> 13162 function initAutolist() { 13163 return { 13164 changeImage(image) { 13165 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13166 target.dataset.tempsrc = target.src; 13167 target.src = image; 13168 }, 13169 resetImage() { 13170 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13171 target.src = target.dataset.tempsrc; 13172 }, 13173 isCurrentProduct(currentId, productId) { 13174 return currentId === productId; 13175 } 13176 } 13177 } 13178 </script>
13178 13179 </div> 13180 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13181 <a href="https://www.lafuma-moebel.de/gepolsterter-klapp-liegestuhl-eclipse-chaise-longue-noir-nori-tube-noir-lfm5297-9943.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="2952" tabindex="-1"> 13182 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-2952.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-matelassee-pliante-eclipse-chaise-longue-noir-nori-tube-noir-lfm5297-9943-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterter-Klapp-Liegestuhl - Eclipse - Simili cuir - Schwarz Nori" title="Gepolsterter-Klapp-Liegestuhl - Eclipse - Simili cuir - Schwarz Nori"> 13183 13184 </a> 13185 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13186 <div class="mb-6 justify-center text-primary text-left "> 13187 <a class="product-item-link" href="https://www.lafuma-moebel.de/gepolsterter-klapp-liegestuhl-eclipse-chaise-longue-noir-nori-tube-noir-lfm5297-9943.html"> 13188 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterter-Klapp-Liegestuhl</span> 13189 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Eclipse Kunstleder Schwarz </span> 13190 </a> 13191 </div> 13192 13193 13194 13195
13195<script> 13196 function initPriceBox__6ac71ba59038c() { 13197 return { 13198 updatePrice(priceData) { 13199 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13200 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13201 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13202 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13203 regularPriceLabel.classList.add('hidden'); 13204 } else { 13205 regularPriceLabel.classList.remove('hidden'); 13206 } 13207 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13208 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13209 } 13210 } 13211 } 13212 </script>
13212 13213 <div class="sm:items-center sm:flex sm:justify-between"> 13214 <div class="text-gray-900" x-data="initPriceBox__6ac71ba59038c()" @update-prices-2952.window="updatePrice($event.detail);"> 13215 <div class="price-box price-final_price" data-role="priceBox" data-product-id="2952" data-price-box="product-id-2952"> 13216 <span x-data x-id="['product\u002Dprice\u002D2952']" class="price-container price-final_price tax weee"> 13217 <span :id="$id('product\u002Dprice\u002D2952')" data-price-amount="389" data-price-type="finalPrice" class="price-wrapper "><span class="price">389,00 €</span></span> 13218 </span> 13219 13220</div> </div> 13221 <div class="w-auto justify-center"> 13222 <div class="text-right"> 13223 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13224 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13225 <span class="text-xs">Auf Lager</span> 13226 </p> 13227 </div> 13228 </div> 13229 </div> 13230 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13231 <a href="https://www.lafuma-moebel.de/gepolsterter-klapp-liegestuhl-eclipse-chaise-longue-noir-nori-tube-noir-lfm5297-9943.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/chaise-longue-matelassee-pliante-eclipse-chaise-longue-noir-nori-tube-noir-lfm5297-9943-1.jpg')" @mouseleave="resetImage()"> 13232 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13233 'border-primary-900': isCurrentProduct(2952, 2952), 13234 'border-transparent': !isCurrentProduct(2952, 2952) 13235 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9943-nori-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13236 </a> 13237 </div> 13238 </div> 13239
13239<script> 13240 function initAutolist() { 13241 return { 13242 changeImage(image) { 13243 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13244 target.dataset.tempsrc = target.src; 13245 target.src = image; 13246 }, 13247 resetImage() { 13248 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13249 target.src = target.dataset.tempsrc; 13250 }, 13251 isCurrentProduct(currentId, productId) { 13252 return currentId === productId; 13253 } 13254 } 13255 } 13256 </script>
13256 13257 13258 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 13259 amlabel-position-bottom-left-2952-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"2952","label":88,"margin":2,"alignment":0,"order":1,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 13260 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-88-2952-prod amasty-label-for-2952" data-amlabel-order="1"> 13261 <div style="background-color: #000; padding:5px; font-weight:500; font-size: 10px; color: #ffffff;"> 13262 <div class="amlabel-text text-center whitespace-nowrap"> 13263 PRO </div> 13264 </div> 13265 </div> 13266 </div> 13267</div> 13268 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13269 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-gris-obsidian-tube-titane-bdl0049-9718.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3669" tabindex="-1"> 13270 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3669.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-batyline-gris-bdl0049_9718-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set aus 2 Relaxsesseln - Futura - Batyline® Duo - Gris Obsidian" title="Set aus 2 Relaxsesseln - Futura - Batyline® Duo - Gris Obsidian"> 13271 13272 </a> 13273 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13274 <div class="mb-6 justify-center text-primary text-left "> 13275 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-gris-obsidian-tube-titane-bdl0049-9718.html"> 13276 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set aus 2 Relaxsesseln</span> 13277 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura Batyline® Duo Grau </span> 13278 </a> 13279 </div> 13280 13281 13282 13283
13283<script> 13284 function initPriceBox__6ac71ba59b9c1() { 13285 return { 13286 updatePrice(priceData) { 13287 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13288 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13289 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13290 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13291 regularPriceLabel.classList.add('hidden'); 13292 } else { 13293 regularPriceLabel.classList.remove('hidden'); 13294 } 13295 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13296 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13297 } 13298 } 13299 } 13300 </script>
13300 13301 <div class="sm:items-center sm:flex sm:justify-between"> 13302 <div class="text-gray-900" x-data="initPriceBox__6ac71ba59b9c1()" @update-prices-3669.window="updatePrice($event.detail);"> 13303 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3669" data-price-box="product-id-3669"> 13304<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13305 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13306 <span class="price">599,80 €</span> </div> 13307 13308 13309 </div> 13310</div> </div> 13311 <div class="w-auto justify-center"> 13312 <div class="text-right"> 13313 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13314 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13315 <span class="text-xs">Auf Lager</span> 13316 </p> 13317 </div> 13318 </div> 13319 </div> 13320 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13321 <a href="https://www.lafuma-moebel.de/set-aus-2-relaxsesseln-futura-batyline-gris-obsidian-tube-titane-bdl0049-9718.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/lot-de-2-fauteuils-relax-zero-gravite-futura-batyline-gris-bdl0049_9718-1.jpg')" @mouseleave="resetImage()"> 13322 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13323 'border-primary-900': isCurrentProduct(3669, 3669), 13324 'border-transparent': !isCurrentProduct(3669, 3669) 13325 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9718-obsidian-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13326 </a> 13327 </div> 13328 </div> 13329
13329<script> 13330 function initAutolist() { 13331 return { 13332 changeImage(image) { 13333 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13334 target.dataset.tempsrc = target.src; 13335 target.src = image; 13336 }, 13337 resetImage() { 13338 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13339 target.src = target.dataset.tempsrc; 13340 }, 13341 isCurrentProduct(currentId, productId) { 13342 return currentId === productId; 13343 } 13344 } 13345 } 13346 </script>
13346 13347 13348</div> 13349 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13350 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-xl-rsx-clip-xl-lightcomfort-gris-ombre-tube-titane-lfm5334-9929.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3453" tabindex="-1"> 13351 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3453.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-xl-rsx-clip-xl-lightcomfort-gris-ombre-tube-titane-lfm5334-9929-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege XL - Rsx Clip XL - LightComfort® - Grau Ombre" title="Gepolsterte Zero-Gravity-Relaxliege XL - Rsx Clip XL - LightComfort® - Grau Ombre"> 13352 13353 </a> 13354 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13355 <div class="mb-6 justify-center text-primary text-left "> 13356 <a class="product-item-link" href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-xl-rsx-clip-xl-lightcomfort-gris-ombre-tube-titane-lfm5334-9929.html"> 13357 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege XL</span> 13358 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip XL LightComfort® Grau </span> 13359 </a> 13360 </div> 13361 13362 13363 13364
13364<script> 13365 function initPriceBox__6ac71ba5a93a0() { 13366 return { 13367 updatePrice(priceData) { 13368 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13369 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13370 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13371 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13372 regularPriceLabel.classList.add('hidden'); 13373 } else { 13374 regularPriceLabel.classList.remove('hidden'); 13375 } 13376 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13377 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13378 } 13379 } 13380 } 13381 </script>
13381 13382 <div class="sm:items-center sm:flex sm:justify-between"> 13383 <div class="text-gray-900" x-data="initPriceBox__6ac71ba5a93a0()" @update-prices-3453.window="updatePrice($event.detail);"> 13384 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3453" data-price-box="product-id-3453"> 13385 <span x-data x-id="['product\u002Dprice\u002D3453']" class="price-container price-final_price tax weee"> 13386 <span :id="$id('product\u002Dprice\u002D3453')" data-price-amount="299.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">299,90 €</span></span> 13387 </span> 13388 13389</div> </div> 13390 <div class="w-auto justify-center"> 13391 <div class="text-right"> 13392 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 13393 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 13394 <span class="text-xs">Bald verfügbar</span> 13395 </p> 13396 </div> 13397 </div> 13398 </div> 13399 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13400 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-xl-rsx-clip-xl-lightcomfort-gris-ombre-tube-titane-lfm5334-9929.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-xl-rsx-clip-xl-lightcomfort-bleu-denim-tube-titane-lfm5334-9928-1.jpg')" @mouseleave="resetImage()"> 13401 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13402 'border-primary-900': isCurrentProduct(3450, 3453), 13403 'border-transparent': !isCurrentProduct(3450, 3453) 13404 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9928-denim-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13405 </a> 13406 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-xl-rsx-clip-xl-lightcomfort-gris-ombre-tube-titane-lfm5334-9929.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-xl-rsx-clip-xl-lightcomfort-gris-ombre-tube-titane-lfm5334-9929-1.jpg')" @mouseleave="resetImage()"> 13407 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13408 'border-primary-900': isCurrentProduct(3453, 3453), 13409 'border-transparent': !isCurrentProduct(3453, 3453) 13410 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9929-ombre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13411 </a> 13412 </div> 13413 </div> 13414
13414<script> 13415 function initAutolist() { 13416 return { 13417 changeImage(image) { 13418 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13419 target.dataset.tempsrc = target.src; 13420 target.src = image; 13421 }, 13422 resetImage() { 13423 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13424 target.src = target.dataset.tempsrc; 13425 }, 13426 isCurrentProduct(currentId, productId) { 13427 return currentId === productId; 13428 } 13429 } 13430 } 13431 </script>
13431 13432 13433 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 13434 amlabel-position-bottom-right-3453-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3453","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 13435 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-3453-prod amasty-label-for-3453" data-amlabel-order="4"> 13436 <div style="font-size: 14px; color: #ffffff;"> 13437 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 13438 </div> 13439 <img id="amasty-label-image-6-3453-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
13439amlabel/TAGS_2__1.png" title="Gepolsterte Zero-Gravity-Relaxliege XL - Rsx Clip XL - LightComfort® - Grau Ombre" alt="Gepolsterte Zero-Gravity-Relaxliege XL - Rsx Clip XL - LightComfort® - Grau Ombre"> 13440 </div> 13441 </div> 13442 </div> 13443</div> 13444 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13445 <a href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0066-8900.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="4174" tabindex="-1"> 13446 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-4174.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-housse-bleu-bdl0066_8900-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxliege, Getränkehalter und Schutzhülle - Futura - BeComfort® - Bleu Encre" title="Set Relaxliege, Getränkehalter und Schutzhülle - Futura - BeComfort® - Bleu Encre"> 13447 13448 </a> 13449 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13450 <div class="mb-6 justify-center text-primary text-left "> 13451 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0066-8900.html"> 13452 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxliege, Getränkehalter und Schutzhülle</span> 13453 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Blau </span> 13454 </a> 13455 </div> 13456 13457 13458 13459
13459<script> 13460 function initPriceBox__6ac71ba5c8f81() { 13461 return { 13462 updatePrice(priceData) { 13463 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13464 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13465 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13466 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13467 regularPriceLabel.classList.add('hidden'); 13468 } else { 13469 regularPriceLabel.classList.remove('hidden'); 13470 } 13471 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13472 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13473 } 13474 } 13475 } 13476 </script>
13476 13477 <div class="sm:items-center sm:flex sm:justify-between"> 13478 <div class="text-gray-900" x-data="initPriceBox__6ac71ba5c8f81()" @update-prices-4174.window="updatePrice($event.detail);"> 13479 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4174" data-price-box="product-id-4174"> 13480<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13481 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13482 <span class="price">444,70 €</span> </div> 13483 13484 13485 </div> 13486</div> </div> 13487 <div class="w-auto justify-center"> 13488 <div class="text-right"> 13489 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13490 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13491 <span class="text-xs">Auf Lager</span> 13492 </p> 13493 </div> 13494 </div> 13495 </div> 13496 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13497 <a href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0066-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-housse-bleu-bdl0066_8900-1.jpg')" @mouseleave="resetImage()"> 13498 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13499 'border-primary-900': isCurrentProduct(4174, 4174), 13500 'border-transparent': !isCurrentProduct(4174, 4174) 13501 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13502 </a> 13503 <a href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0066-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-housse-gris-bdl0066_8902-1.jpg')" @mouseleave="resetImage()"> 13504 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13505 'border-primary-900': isCurrentProduct(4171, 4174), 13506 'border-transparent': !isCurrentProduct(4171, 4174) 13507 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13508 </a> 13509 </div> 13510 </div> 13511
13511<script> 13512 function initAutolist() { 13513 return { 13514 changeImage(image) { 13515 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13516 target.dataset.tempsrc = target.src; 13517 target.src = image; 13518 }, 13519 resetImage() { 13520 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13521 target.src = target.dataset.tempsrc; 13522 }, 13523 isCurrentProduct(currentId, productId) { 13524 return currentId === productId; 13525 } 13526 } 13527 } 13528 </script>
13528 13529 13530</div> 13531 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13532 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-bleu-coral-blue-tube-noir-bdl0053-6893.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3753" tabindex="-1"> 13533 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3753.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-bleu-bdl0053_6893-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter - RSX Clip - AirComfort® - Bleu Coral Blue" title="Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter - RSX Clip - AirComfort® - Bleu Coral Blue"> 13534 13535 </a> 13536 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13537 <div class="mb-6 justify-center text-primary text-left "> 13538 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-bleu-coral-blue-tube-noir-bdl0053-6893.html"> 13539 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege mit Sonnenschirm und Becherhalter</span> 13540 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip AirComfort® Blau </span> 13541 </a> 13542 </div> 13543 13544 13545 13546
13546<script> 13547 function initPriceBox__6ac71ba5dedcd() { 13548 return { 13549 updatePrice(priceData) { 13550 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13551 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13552 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13553 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13554 regularPriceLabel.classList.add('hidden'); 13555 } else { 13556 regularPriceLabel.classList.remove('hidden'); 13557 } 13558 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13559 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13560 } 13561 } 13562 } 13563 </script>
13563 13564 <div class="sm:items-center sm:flex sm:justify-between"> 13565 <div class="text-gray-900" x-data="initPriceBox__6ac71ba5dedcd()" @update-prices-3753.window="updatePrice($event.detail);"> 13566 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3753" data-price-box="product-id-3753"> 13567<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13568 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13569 <span class="price">449,70 €</span> </div> 13570 13571 13572 </div> 13573</div> </div> 13574 <div class="w-auto justify-center"> 13575 <div class="text-right"> 13576 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 13577 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 13578 <span class="text-xs">Bald verfügbar</span> 13579 </p> 13580 </div> 13581 </div> 13582 </div> 13583 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13584 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-bleu-coral-blue-tube-noir-bdl0053-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-rouge-bdl0053_3186-1.jpg')" @mouseleave="resetImage()"> 13585 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13586 'border-primary-900': isCurrentProduct(3750, 3753), 13587 'border-transparent': !isCurrentProduct(3750, 3753) 13588 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13589 </a> 13590 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-bleu-coral-blue-tube-noir-bdl0053-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-noir-bdl0053_6135-1.jpg')" @mouseleave="resetImage()"> 13591 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13592 'border-primary-900': isCurrentProduct(3747, 3753), 13593 'border-transparent': !isCurrentProduct(3747, 3753) 13594 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13595 </a> 13596 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-bleu-coral-blue-tube-noir-bdl0053-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-bleu-bdl0053_6893-1.jpg')" @mouseleave="resetImage()"> 13597 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13598 'border-primary-900': isCurrentProduct(3753, 3753), 13599 'border-transparent': !isCurrentProduct(3753, 3753) 13600 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13601 </a> 13602 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-mit-sonnenschirm-und-becherhalter-rsx-clip-bleu-coral-blue-tube-noir-bdl0053-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-avec-ombrelle-et-porte-gobelet-marron-bdl0053_70
1360257-1.jpg')" @mouseleave="resetImage()"> 13603 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13604 'border-primary-900': isCurrentProduct(3756, 3753), 13605 'border-transparent': !isCurrentProduct(3756, 3753) 13606 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13607 </a> 13608 </div> 13609 </div> 13610
13610<script> 13611 function initAutolist() { 13612 return { 13613 changeImage(image) { 13614 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13615 target.dataset.tempsrc = target.src; 13616 target.src = image; 13617 }, 13618 resetImage() { 13619 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13620 target.src = target.dataset.tempsrc; 13621 }, 13622 isCurrentProduct(currentId, productId) { 13623 return currentId === productId; 13624 } 13625 } 13626 } 13627 </script>
13627 13628 13629</div> 13630 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13631 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-rsx-clip-bleu-denim-tube-titane-lfm2054-9928.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="1584" tabindex="-1"> 13632 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-1584.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-rsx-clip-bleu-denim-tube-titane-lfm2054-9928-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Gepolsterte Zero-Gravity-Relaxliege - Rsx Clip - LightComfort® - Blau Denim" title="Gepolsterte Zero-Gravity-Relaxliege - Rsx Clip - LightComfort® - Blau Denim"> 13633 13634 </a> 13635 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13636 <div class="mb-6 justify-center text-primary text-left "> 13637 <a class="product-item-link" href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-rsx-clip-bleu-denim-tube-titane-lfm2054-9928.html"> 13638 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Gepolsterte Zero-Gravity-Relaxliege</span> 13639 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip LightComfort® Blau </span> 13640 </a> 13641 </div> 13642 13643 13644 13645
13645<script> 13646 function initPriceBox__6ac71ba5ed8fc() { 13647 return { 13648 updatePrice(priceData) { 13649 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13650 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13651 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13652 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13653 regularPriceLabel.classList.add('hidden'); 13654 } else { 13655 regularPriceLabel.classList.remove('hidden'); 13656 } 13657 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13658 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13659 } 13660 } 13661 } 13662 </script>
13662 13663 <div class="sm:items-center sm:flex sm:justify-between"> 13664 <div class="text-gray-900" x-data="initPriceBox__6ac71ba5ed8fc()" @update-prices-1584.window="updatePrice($event.detail);"> 13665 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1584" data-price-box="product-id-1584"> 13666 <span x-data x-id="['product\u002Dprice\u002D1584']" class="price-container price-final_price tax weee"> 13667 <span :id="$id('product\u002Dprice\u002D1584')" data-price-amount="269.9" data-price-type="finalPrice" class="price-wrapper "><span class="price">269,90 €</span></span> 13668 </span> 13669 13670</div> </div> 13671 <div class="w-auto justify-center"> 13672 <div class="text-right"> 13673 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13674 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13675 <span class="text-xs">Auf Lager</span> 13676 </p> 13677 </div> 13678 </div> 13679 </div> 13680 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13681 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-rsx-clip-bleu-denim-tube-titane-lfm2054-9928.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-rsx-clip-bleu-denim-tube-titane-lfm2054-9928-1.jpg')" @mouseleave="resetImage()"> 13682 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13683 'border-primary-900': isCurrentProduct(1584, 1584), 13684 'border-transparent': !isCurrentProduct(1584, 1584) 13685 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9928-denim-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13686 </a> 13687 <a href="https://www.lafuma-moebel.de/gepolsterte-zero-gravity-relaxliege-rsx-clip-bleu-denim-tube-titane-lfm2054-9928.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/fauteuil-relax-matelasse-zero-gravite-rsx-clip-gris-ombre-tube-titane-lfm2054-9929-1.jpg')" @mouseleave="resetImage()"> 13688 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13689 'border-primary-900': isCurrentProduct(1587, 1584), 13690 'border-transparent': !isCurrentProduct(1587, 1584) 13691 }" src="https://www.lafuma-moebel.de/visuels-lafmob/9929-ombre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13692 </a> 13693 </div> 13694 </div> 13695
13695<script> 13696 function initAutolist() { 13697 return { 13698 changeImage(image) { 13699 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13700 target.dataset.tempsrc = target.src; 13701 target.src = image; 13702 }, 13703 resetImage() { 13704 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13705 target.src = target.dataset.tempsrc; 13706 }, 13707 isCurrentProduct(currentId, productId) { 13708 return currentId === productId; 13709 } 13710 } 13711 } 13712 </script>
13712 13713 </div> 13714 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13715 <a href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0067-8900.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="4180" tabindex="-1"> 13716 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-4180.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-xl-avec-porte-gobelet-et-housse-bleu-bdl0067_8900-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxliege XL, Getränkehalter und Schutzhülle - Futura XL - BeComfort® - Bleu Encre" title="Set Relaxliege XL, Getränkehalter und Schutzhülle - Futura XL - BeComfort® - Bleu Encre"> 13717 13718 </a> 13719 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13720 <div class="mb-6 justify-center text-primary text-left "> 13721 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0067-8900.html"> 13722 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxliege XL, Getränkehalter und Schutzhülle</span> 13723 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura XL BeComfort® Blau </span> 13724 </a> 13725 </div> 13726 13727 13728 13729
13729<script> 13730 function initPriceBox__6ac71ba6047ad() { 13731 return { 13732 updatePrice(priceData) { 13733 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13734 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13735 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13736 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13737 regularPriceLabel.classList.add('hidden'); 13738 } else { 13739 regularPriceLabel.classList.remove('hidden'); 13740 } 13741 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13742 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13743 } 13744 } 13745 } 13746 </script>
13746 13747 <div class="sm:items-center sm:flex sm:justify-between"> 13748 <div class="text-gray-900" x-data="initPriceBox__6ac71ba6047ad()" @update-prices-4180.window="updatePrice($event.detail);"> 13749 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4180" data-price-box="product-id-4180"> 13750<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13751 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13752 <span class="price">464,70 €</span> </div> 13753 13754 13755 </div> 13756</div> </div> 13757 <div class="w-auto justify-center"> 13758 <div class="text-right"> 13759 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13760 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13761 <span class="text-xs">Auf Lager</span> 13762 </p> 13763 </div> 13764 </div> 13765 </div> 13766 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13767 <a href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0067-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-xl-avec-porte-gobelet-et-housse-bleu-bdl0067_8900-1.jpg')" @mouseleave="resetImage()"> 13768 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13769 'border-primary-900': isCurrentProduct(4180, 4180), 13770 'border-transparent': !isCurrentProduct(4180, 4180) 13771 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13772 </a> 13773 <a href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-bleu-bleu-encre-tube-titane-bdl0067-8900.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-xl-avec-porte-gobelet-et-housse-gris-bdl0067_8901-1.jpg')" @mouseleave="resetImage()"> 13774 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13775 'border-primary-900': isCurrentProduct(4177, 4180), 13776 'border-transparent': !isCurrentProduct(4177, 4180) 13777 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13778 </a> 13779 </div> 13780 </div> 13781
13781<script> 13782 function initAutolist() { 13783 return { 13784 changeImage(image) { 13785 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13786 target.dataset.tempsrc = target.src; 13787 target.src = image; 13788 }, 13789 resetImage() { 13790 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13791 target.src = target.dataset.tempsrc; 13792 }, 13793 isCurrentProduct(currentId, productId) { 13794 return currentId === productId; 13795 } 13796 } 13797 } 13798 </script>
13798 13799 13800</div> 13801 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13802 <a href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-gris-silver-tube-titane-bdl0067-8901.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="4177" tabindex="-1"> 13803 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-4177.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-xl-avec-porte-gobelet-et-housse-gris-bdl0067_8901-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxliege XL, Getränkehalter und Schutzhülle - Futura XL - BeComfort® - Gris Silver" title="Set Relaxliege XL, Getränkehalter und Schutzhülle - Futura XL - BeComfort® - Gris Silver"> 13804 13805 </a> 13806 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13807 <div class="mb-6 justify-center text-primary text-left "> 13808 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-gris-silver-tube-titane-bdl0067-8901.html"> 13809 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxliege XL, Getränkehalter und Schutzhülle</span> 13810 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura XL BeComfort® Grau </span> 13811 </a> 13812 </div> 13813 13814 13815 13816
13816<script> 13817 function initPriceBox__6ac71ba613991() { 13818 return { 13819 updatePrice(priceData) { 13820 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13821 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13822 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13823 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13824 regularPriceLabel.classList.add('hidden'); 13825 } else { 13826 regularPriceLabel.classList.remove('hidden'); 13827 } 13828 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13829 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13830 } 13831 } 13832 } 13833 </script>
13833 13834 <div class="sm:items-center sm:flex sm:justify-between"> 13835 <div class="text-gray-900" x-data="initPriceBox__6ac71ba613991()" @update-prices-4177.window="updatePrice($event.detail);"> 13836 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4177" data-price-box="product-id-4177"> 13837<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13838 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13839 <span class="price">464,70 €</span> </div> 13840 13841 13842 </div> 13843</div> </div> 13844 <div class="w-auto justify-center"> 13845 <div class="text-right"> 13846 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13847 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13848 <span class="text-xs">Auf Lager</span> 13849 </p> 13850 </div> 13851 </div> 13852 </div> 13853 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13854 <a href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-gris-silver-tube-titane-bdl0067-8901.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-xl-avec-porte-gobelet-et-housse-bleu-bdl0067_8900-1.jpg')" @mouseleave="resetImage()"> 13855 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13856 'border-primary-900': isCurrentProduct(4180, 4177), 13857 'border-transparent': !isCurrentProduct(4180, 4177) 13858 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13859 </a> 13860 <a href="https://www.lafuma-moebel.de/set-relaxliege-xl-getrankehalter-und-schutzhulle-gris-silver-tube-titane-bdl0067-8901.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-xl-avec-porte-gobelet-et-housse-gris-bdl0067_8901-1.jpg')" @mouseleave="resetImage()"> 13861 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13862 'border-primary-900': isCurrentProduct(4177, 4177), 13863 'border-transparent': !isCurrentProduct(4177, 4177) 13864 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8901-silver-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13865 </a> 13866 </div> 13867 </div> 13868
13868<script> 13869 function initAutolist() { 13870 return { 13871 changeImage(image) { 13872 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13873 target.dataset.tempsrc = target.src; 13874 target.src = image; 13875 }, 13876 resetImage() { 13877 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13878 target.src = target.dataset.tempsrc; 13879 }, 13880 isCurrentProduct(currentId, productId) { 13881 return currentId === productId; 13882 } 13883 } 13884 } 13885 </script>
13885 13886 13887</div> 13888 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13889 <a href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-gris-dark-grey-tube-titane-bdl0066-8902.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="4171" tabindex="-1"> 13890 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-4171.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-housse-gris-bdl0066_8902-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxliege, Getränkehalter und Schutzhülle - Futura - BeComfort® - Gris Dark Grey" title="Set Relaxliege, Getränkehalter und Schutzhülle - Futura - BeComfort® - Gris Dark Grey"> 13891 13892 </a> 13893 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13894 <div class="mb-6 justify-center text-primary text-left "> 13895 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-gris-dark-grey-tube-titane-bdl0066-8902.html"> 13896 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxliege, Getränkehalter und Schutzhülle</span> 13897 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Futura BeComfort® Grau </span> 13898 </a> 13899 </div> 13900 13901 13902 13903
13903<script> 13904 function initPriceBox__6ac71ba622296() { 13905 return { 13906 updatePrice(priceData) { 13907 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13908 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13909 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13910 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13911 regularPriceLabel.classList.add('hidden'); 13912 } else { 13913 regularPriceLabel.classList.remove('hidden'); 13914 } 13915 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 13916 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13917 } 13918 } 13919 } 13920 </script>
13920 13921 <div class="sm:items-center sm:flex sm:justify-between"> 13922 <div class="text-gray-900" x-data="initPriceBox__6ac71ba622296()" @update-prices-4171.window="updatePrice($event.detail);"> 13923 <div class="price-box price-final_price" data-role="priceBox" data-product-id="4171" data-price-box="product-id-4171"> 13924<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 13925 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 13926 <span class="price">444,70 €</span> </div> 13927 13928 13929 </div> 13930</div> </div> 13931 <div class="w-auto justify-center"> 13932 <div class="text-right"> 13933 <p class="flex items-center justify-end align-middle available gap-x-2 stock" title="Verfügbarkeit"> 13934 <span class="w-2 h-2 bg-green-500 rounded-full shrink-0"></span> 13935 <span class="text-xs">Auf Lager</span> 13936 </p> 13937 </div> 13938 </div> 13939 </div> 13940 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 13941 <a href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-gris-dark-grey-tube-titane-bdl0066-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-housse-bleu-bdl0066_8900-1.jpg')" @mouseleave="resetImage()"> 13942 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13943 'border-primary-900': isCurrentProduct(4174, 4171), 13944 'border-transparent': !isCurrentProduct(4174, 4171) 13945 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8900-bleu-encre-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13946 </a> 13947 <a href="https://www.lafuma-moebel.de/set-relaxliege-getrankehalter-und-schutzhulle-gris-dark-grey-tube-titane-bdl0066-8902.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-avec-porte-gobelet-et-housse-gris-bdl0066_8902-1.jpg')" @mouseleave="resetImage()"> 13948 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 13949 'border-primary-900': isCurrentProduct(4171, 4171), 13950 'border-transparent': !isCurrentProduct(4171, 4171) 13951 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8902-dark-grey-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 13952 </a> 13953 </div> 13954 </div> 13955
13955<script> 13956 function initAutolist() { 13957 return { 13958 changeImage(image) { 13959 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13960 target.dataset.tempsrc = target.src; 13961 target.src = image; 13962 }, 13963 resetImage() { 13964 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 13965 target.src = target.dataset.tempsrc; 13966 }, 13967 isCurrentProduct(currentId, productId) { 13968 return currentId === productId; 13969 } 13970 } 13971 } 13972 </script>
13972 13973 13974</div> 13975 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 13976 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-rouge-bordeaux-tube-noir-bdl0054-3186.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3762" tabindex="-1"> 13977 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3762.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-rouge-bdl0054_3186-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Rouge Bordeaux" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Rouge Bordeaux"> 13978 13979 </a> 13980 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 13981 <div class="mb-6 justify-center text-primary text-left "> 13982 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-rouge-bordeaux-tube-noir-bdl0054-3186.html"> 13983 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter</span> 13984 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip XL AirComfort® Rot </span> 13985 </a> 13986 </div> 13987 13988 13989 13990
13990<script> 13991 function initPriceBox__6ac71ba6442bc() { 13992 return { 13993 updatePrice(priceData) { 13994 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13995 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13996 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13997 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13998 regularPriceLabel.classList.add('hidden'); 13999 } else { 14000 regularPriceLabel.classList.remove('hidden'); 14001 } 14002 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 14003 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 14004 } 14005 } 14006 } 14007 </script>
14007 14008 <div class="sm:items-center sm:flex sm:justify-between"> 14009 <div class="text-gray-900" x-data="initPriceBox__6ac71ba6442bc()" @update-prices-3762.window="updatePrice($event.detail);"> 14010 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3762" data-price-box="product-id-3762"> 14011<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 14012 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 14013 <span class="price">469,70 €</span> </div> 14014 14015 14016 </div> 14017</div> </div> 14018 <div class="w-auto justify-center"> 14019 <div class="text-right"> 14020 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 14021 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 14022 <span class="text-xs">Bald verfügbar</span> 14023 </p> 14024 </div> 14025 </div> 14026 </div> 14027 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 14028 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-rouge-bordeaux-tube-noir-bdl0054-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-rouge-bdl0054_3186-1.jpg')" @mouseleave="resetImage()"> 14029 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14030 'border-primary-900': isCurrentProduct(3762, 3762), 14031 'border-transparent': !isCurrentProduct(3762, 3762) 14032 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14033 </a> 14034 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-rouge-bordeaux-tube-noir-bdl0054-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-noir-bdl0054_6135-1.jpg')" @mouseleave="resetImage()"> 14035 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14036 'border-primary-900': isCurrentProduct(3768, 3762), 14037 'border-transparent': !isCurrentProduct(3768, 3762) 14038 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14039 </a> 14040 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-rouge-bordeaux-tube-noir-bdl0054-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-bleu-bdl0054_6893-1.jpg')" @mouseleave="resetImage()"> 14041 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14042 'border-primary-900': isCurrentProduct(3759, 3762), 14043 'border-transparent': !isCurrentProduct(3759, 3762) 14044 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14045 </a> 14046 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-rouge-bordeaux-tube-noir-bdl0054-3186.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-marron-bdl0054_7057-1.jpg')" @mouseleave="resetImage()"> 14047 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14048 'border-primary-900': isCurrentProduct(3765, 3762), 14049 'border-transparent': !isCurrentProduct(3765, 3762) 14050 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14051 </a> 14052 </div> 14053 </div> 14054
14054<script> 14055 function initAutolist() { 14056 return { 14057 changeImage(image) { 14058 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 14059 target.dataset.tempsrc = target.src; 14060 target.src = image; 14061 }, 14062 resetImage() { 14063 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 14064 target.src = target.dataset.tempsrc; 14065 }, 14066 isCurrentProduct(currentId, productId) { 14067 return currentId === productId; 14068 } 14069 } 14070 } 14071 </script>
14071 14072 14073 14074 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 14075 amlabel-position-bottom-right-3762-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3762","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 14076 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-3762-prod amasty-label-for-3762" data-amlabel-order="4"> 14077 <div style="font-size: 14px; color: #ffffff;"> 14078 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 14079 </div> 14080 <img id="amasty-label-image-6-3762-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
14080amlabel/TAGS_2__1.png" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Rouge Bordeaux" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Rouge Bordeaux"> 14081 </div> 14082 </div> 14083 </div> 14084</div> 14085 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 14086 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-bleu-coral-blue-tube-noir-bdl0054-6893.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3759" tabindex="-1"> 14087 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3759.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-bleu-bdl0054_6893-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Bleu Coral Blue" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Bleu Coral Blue"> 14088 14089 </a> 14090 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 14091 <div class="mb-6 justify-center text-primary text-left "> 14092 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-bleu-coral-blue-tube-noir-bdl0054-6893.html"> 14093 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter</span> 14094 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Rsx Clip XL AirComfort® Blau </span> 14095 </a> 14096 </div> 14097 14098 14099 14100
14100<script> 14101 function initPriceBox__6ac71ba659fe3() { 14102 return { 14103 updatePrice(priceData) { 14104 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 14105 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 14106 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 14107 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 14108 regularPriceLabel.classList.add('hidden'); 14109 } else { 14110 regularPriceLabel.classList.remove('hidden'); 14111 } 14112 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 14113 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 14114 } 14115 } 14116 } 14117 </script>
14117 14118 <div class="sm:items-center sm:flex sm:justify-between"> 14119 <div class="text-gray-900" x-data="initPriceBox__6ac71ba659fe3()" @update-prices-3759.window="updatePrice($event.detail);"> 14120 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3759" data-price-box="product-id-3759"> 14121<div class="bundle-price price-container inline-grid grid-row-1 gap-x-2 leading-none"> 14122 <div class="price col-start-1 col-end-2 row-start-1 row-end-3 leading-none"> 14123 <span class="price">469,70 €</span> </div> 14124 14125 14126 </div> 14127</div> </div> 14128 <div class="w-auto justify-center"> 14129 <div class="text-right"> 14130 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 14131 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 14132 <span class="text-xs">Bald verfügbar</span> 14133 </p> 14134 </div> 14135 </div> 14136 </div> 14137 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 14138 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-bleu-coral-blue-tube-noir-bdl0054-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-rouge-bdl0054_3186-1.jpg')" @mouseleave="resetImage()"> 14139 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14140 'border-primary-900': isCurrentProduct(3762, 3759), 14141 'border-transparent': !isCurrentProduct(3762, 3759) 14142 }" src="https://www.lafuma-moebel.de/visuels-lafmob/3186-bordeaux-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14143 </a> 14144 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-bleu-coral-blue-tube-noir-bdl0054-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-noir-bdl0054_6135-1.jpg')" @mouseleave="resetImage()"> 14145 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14146 'border-primary-900': isCurrentProduct(3768, 3759), 14147 'border-transparent': !isCurrentProduct(3768, 3759) 14148 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6135-acier-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14149 </a> 14150 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-bleu-coral-blue-tube-noir-bdl0054-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-bleu-bdl0054_6893-1.jpg')" @mouseleave="resetImage()"> 14151 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14152 'border-primary-900': isCurrentProduct(3759, 3759), 14153 'border-transparent': !isCurrentProduct(3759, 3759) 14154 }" src="https://www.lafuma-moebel.de/visuels-lafmob/6893-coral-blue-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14155 </a> 14156 <a href="https://www.lafuma-moebel.de/set-gepolsterte-relaxliege-xl-mit-sonnenschirm-und-becherhalter-rsx-clip-xl-bleu-coral-blue-tube-noir-bdl0054-6893.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-matelasse-xl-avec-ombrelle-et-porte-gobelet-rsx-clip-xl-marron-bdl0054_7057-1.jpg')" @mouseleave="resetImage()"> 14157 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14158 'border-primary-900': isCurrentProduct(3765, 3759), 14159 'border-transparent': !isCurrentProduct(3765, 3759) 14160 }" src="https://www.lafuma-moebel.de/visuels-lafmob/7057-taupe-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14161 </a> 14162 </div> 14163 </div> 14164
14164<script> 14165 function initAutolist() { 14166 return { 14167 changeImage(image) { 14168 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 14169 target.dataset.tempsrc = target.src; 14170 target.src = image; 14171 }, 14172 resetImage() { 14173 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 14174 target.src = target.dataset.tempsrc; 14175 }, 14176 isCurrentProduct(currentId, productId) { 14177 return currentId === productId; 14178 } 14179 } 14180 } 14181 </script>
14181 14182 14183 14184 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 14185 amlabel-position-bottom-right-3759-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-right","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3759","label":6,"margin":2,"alignment":0,"order":4,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 14186 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-6-3759-prod amasty-label-for-3759" data-amlabel-order="4"> 14187 <div style="font-size: 14px; color: #ffffff;"> 14188 <div class="amlabel-text text-center whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2"> 14189 </div> 14190 <img id="amasty-label-image-6-3759-prod" class="amasty-label-image opacity-100 align-top" src="https://www.lafuma-moebel.de/media/amasty/
14190amlabel/TAGS_2__1.png" title="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Bleu Coral Blue" alt="Set gepolsterte Relaxliege XL mit Sonnenschirm und Becherhalter - RSX Clip XL - AirComfort® - Bleu Coral Blue"> 14191 </div> 14192 </div> 14193 </div> 14194</div> 14195 <div x-data="initAutolist" class="item product border md:border-2 border-primary-200 product-item flex flex-col w-full max-w-[312px] relative "> 14196 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-relax-zen-edition-gris-silex-tube-titane-lfm5360-8544.html" class="product photo product-item-photo block mb-3 md:relative mt-4 !mx-4 snap-mandatory md:snap-none scroll-m-1 flex overflow-auto md:overflow-hidden w-auto " id="3399" tabindex="-1"> 14197 <img class="mx-auto object-contain h-auto w-full product-image-photo" x-data="" @update-gallery-3399.window="$root.src = $event.detail" srcset="" src="https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-accessoires-relax-zen-edition-gris-silex-tube-titane-lfm5360-8544-1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=278&width=278&canvas=278:278" loading="lazy" width="278" height="278" alt="Set Relaxsessel und Zubehör - Zen Edition - Texplast - Grau Silex" title="Set Relaxsessel und Zubehör - Zen Edition - Texplast - Grau Silex"> 14198 14199 </a> 14200 <div class="product-info flex flex-col justify-between grow px-4 pb-4"> 14201 <div class="mb-6 justify-center text-primary text-left "> 14202 <a class="product-item-link" href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-relax-zen-edition-gris-silex-tube-titane-lfm5360-8544.html"> 14203 <span class="block text-sm sm:text-base min-h-[20px] font-medium">Set Relaxsessel und Zubehör</span> 14204 <span class="block text-xs s:min-h-[48px] sm:min-h-[32px] font-medium">Zen Edition Texplast Grau </span> 14205 </a> 14206 </div> 14207 14208 14209 14210
14210<script> 14211 function initPriceBox__6ac71ba669479() { 14212 return { 14213 updatePrice(priceData) { 14214 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 14215 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 14216 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 14217 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 14218 regularPriceLabel.classList.add('hidden'); 14219 } else { 14220 regularPriceLabel.classList.remove('hidden'); 14221 } 14222 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 14223 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 14224 } 14225 } 14226 } 14227 </script>
14227 14228 <div class="sm:items-center sm:flex sm:justify-between"> 14229 <div class="text-gray-900" x-data="initPriceBox__6ac71ba669479()" @update-prices-3399.window="updatePrice($event.detail);"> 14230 <div class="price-box price-final_price" data-role="priceBox" data-product-id="3399" data-price-box="product-id-3399"> 14231 <span x-data x-id="['product\u002Dprice\u002D3399']" class="price-container price-final_price tax weee"> 14232 <span :id="$id('product\u002Dprice\u002D3399')" data-price-amount="365.6" data-price-type="finalPrice" class="price-wrapper "><span class="price">365,60 €</span></span> 14233 </span> 14234 14235</div> </div> 14236 <div class="w-auto justify-center"> 14237 <div class="text-right"> 14238 <p class="flex items-center justify-end align-middle gap-x-2 unavailable stock" title="Verfügbarkeit"> 14239 <span class="w-2 h-2 bg-system-alert rounded-full shrink-0"></span> 14240 <span class="text-xs">Bald verfügbar</span> 14241 </p> 14242 </div> 14243 </div> 14244 </div> 14245 <div class="w-auto inline-block gap-0 mt-[9px] justify-end hidden md:flex"> 14246 <a href="https://www.lafuma-moebel.de/set-relaxsessel-und-zubehor-relax-zen-edition-gris-silex-tube-titane-lfm5360-8544.html" class="hover:cursor-pointer" @mouseenter="changeImage('https://www.lafuma-moebel.de/visuels-lafmob/ensemble-fauteuil-relax-et-accessoires-relax-zen-edition-gris-silex-tube-titane-lfm5360-8544-1.jpg')" @mouseleave="resetImage()"> 14247 <img class="rounded-full h-full border rounded-full p-[2px]" :class="{ 14248 'border-primary-900': isCurrentProduct(3399, 3399), 14249 'border-transparent': !isCurrentProduct(3399, 3399) 14250 }" src="https://www.lafuma-moebel.de/visuels-lafmob/8544-silex-unicolore.jpg" width="26" height="26" loading="lazy" alt="color"> 14251 </a> 14252 </div> 14253 </div> 14254
14254<script> 14255 function initAutolist() { 14256 return { 14257 changeImage(image) { 14258 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 14259 target.dataset.tempsrc = target.src; 14260 target.src = image; 14261 }, 14262 resetImage() { 14263 const target = event.target.closest('.product-item').querySelector('.product-item-photo').querySelector('.product-image-photo'); 14264 target.src = target.dataset.tempsrc; 14265 }, 14266 isCurrentProduct(currentId, productId) { 14267 return currentId === productId; 14268 } 14269 } 14270 } 14271 </script>
14271 14272 14273 <div class="amlabel-position-wrapper absolute max-w-full h-fit-content !w-auto !min-w-0 m-auto flex gap-amlabel-margin z-20 14274 amlabel-position-bottom-left-3399-prod flex-col" :class="labelClasses" x-data="initAmlabel" x-init="initLabel" x-amintersect="render" data-amlabel-config='{"position":"bottom-left","size":"","path":".product-image-container, .product-item-photo, .cdz-product-top","mode":"prod","move":0,"product":"3399","label":648,"margin":2,"alignment":0,"order":2,"redirect_url":"","tooltip":{"backgroundColor":"","color":"","status":1,"content":""}}'> 14275 <div x-ref="amLabel" x-cloak x-transition:enter="transition ease-out duration-250" x-transition:enter-start="opacity-0 transform scale-90" x-transition:enter-end="opacity-100 transform scale-100" @resize.window.debounce="resize" @click="labelClick" class="group relative amasty-label-container amasty-label-container-648-3399-prod amasty-label-for-3399" data-amlabel-order="2"> 14276 <div style="background-color: #f0c300; padding:5px; font-weight:500; font-size: 10px; color: #000000;"> 14277 <div class="amlabel-text text-center whitespace-nowrap"> 14278 LIMITED EDITION </div> 14279 </div> 14280 </div> 14281 </div> 14282</div> 14283 </div> 14284 14285<div class="carousel-nav flex items-center justify-between flex-1 gap-12"> 14286 <button aria-label="Zurück" class="glider-prev flex justify-center items-center w-8 h-8 bg-black text-white outline-none focus:outline-none hidden rotate-180 md:absolute md:left-0 md:w-9 md:h-9 md:-translate-y-1/2"> 14287 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewbox="0 0 25 24" fill="none" class="w-2.5 h-2.5" role="img"> 14288<path d="M9.30005 0.75L20.02 11.47C20.0897 11.5396 20.145 11.6222 20.1827 11.7131C20.2204 11.8041 20.2398 11.9016 20.2398 12C20.2398 12.0984 20.2204 12.1959 20.1827 12.2869C20.145 12.3778 20.0897 12.4604 20.02 12.53L9.30005 23.25" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 14289<title>next-white</title></svg> 14290 </button> 14291 <div role="tablist" class="glider-dots select-none flex flex-wrap mx-1 justify-center p-0 focus:outline-none"></div> 14292 <button aria-label="Weiter" class="glider-next flex justify-center items-center w-8 h-8 bg-black text-white outline-none focus:outline-none hidden md:absolute md:right-0 md:w-9 md:h-9 md:-translate-y-1/2"> 14293 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewbox="0 0 25 24" fill="none" class="w-2.5 h-2.5" role="img"> 14294<path d="M9.30005 0.75L20.02 11.47C20.0897 11.5396 20.145 11.6222 20.1827 11.7131C20.2204 11.8041 20.2398 11.9016 20.2398 12C20.2398 12.0984 20.2204 12.1959 20.1827 12.2869C20.145 12.3778 20.0897 12.4604 20.02 12.53L9.30005 23.25" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 14295<title>next-white</title></svg> 14296 </button> 14297</div> 14298 </div></div></div></div> </div> 14299 </div> 14300 <div class="amblog-footer max-w-[56.3rem] mx-auto border-t border-primary-300"> 14301 <div class="flex justify-between items-center pt-8"> 14302 <span class="text-xs leading-3 tracking-wide text-primary-600 uppercase">Teilen</span> 14303 14304 <div class="amblog-social-container" id="social"> 14305 <ul class="amblog-list flex gap-4"> 14306 <li class="facebook-link"> 14307 <a class="amblog-social opacity-50" 14308 target="_blank" 14309 href="http://www.facebook.com/share.php?u=https%3A%2F%2Fwww.lafuma-moebel.de%2Fblog%2Fkomfort-sessel-rueckenschmerzen.html" 14310 title="Facebook"> 14311 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 14312<g clip-path="url(#clip0_106_1657)"> 14313<path d="M24 12C24 5.37075 18.6248 0 12 0C5.37075 0 0 5.37075 0 12C0 17.988 4.38675 22.953 10.125 23.8522V15.4695H7.07775V12.0007H10.125V9.3555C10.125 6.34875 11.9138 4.68825 14.6558 4.68825C15.969 4.68825 17.3438 4.92225 17.3438 4.92225V7.875H15.828C14.34 7.875 13.875 8.80125 13.875 9.75V12H17.2028L16.668 15.4688H13.875V23.8515C19.6087 22.9522 24 17.9872 24 11.9992V12Z" fill="#171717"/> 14314</g> 14315<defs> 14316<clipPath id="clip0_106_1657"> 14317<rect width="24" height="24" fill="white"/> 14318</clipPath> 14319</defs> 14320<title>facebook</title></svg> 14321 </a> 14322 </li> 14323 <li class="pinterest-link"> 14324 <a class="amblog-social opacity-50" 14325 target="_blank" 14326 href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.lafuma-moebel.de%2Fblog%2Fkomfort-sessel-rueckenschmerzen.html&media=https%3A%2F%2Fwww.lafuma-moebel.de%2Fmedia%2Famasty%2Fblog%2Fcache%2Ff%2Fa%2F1280%2F720%2Ffauteuil-mal-dos-post-image-blog-1280x720.jpg&description=Sessel+gegen+R%C3%BCckenschmerzen%3A+wie+w%C3%A4hlt+man+ihn+richtig+aus%3F+" 14327 title="Pinterest"> 14328 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 14329<path d="M12.0158 0C5.39483 0 0.027832 5.367 0.027832 11.988C0.027832 17.0662 3.18833 21.402 7.64858 23.148C7.54283 22.1985 7.44908 20.7458 7.68758 19.7108C7.90658 18.7733 9.09383 13.7535 9.09383 13.7535C9.09383 13.7535 8.73458 13.0305 8.73458 11.9722C8.73458 10.308 9.70358 9.06225 10.9028 9.06225C11.9266 9.06225 12.4223 9.828 12.4223 10.7498C12.4223 11.7773 11.7698 13.3162 11.4301 14.742C11.1451 15.9338 12.0278 16.9058 13.2038 16.9058C15.3331 16.9058 16.9733 14.6595 16.9733 11.4172C16.9733 8.5575 14.9108 6.54975 11.9656 6.54975C8.55533 6.54975 6.55508 9.1125 6.55508 11.7487C6.55508 12.78 6.94958 13.8892 7.44608 14.487C7.54358 14.6077 7.55558 14.7135 7.52783 14.835C7.43783 15.21 7.23458 16.0343 7.19558 16.1985C7.14083 16.4212 7.02383 16.4677 6.79358 16.3627C5.30108 15.6712 4.35983 13.4835 4.35983 11.718C4.35983 7.941 7.11008 4.464 12.2821 4.464C16.4386 4.464 19.6726 7.4325 19.6726 11.3857C19.6726 15.5227 17.0671 18.8505 13.4423 18.8505C12.2273 18.8505 11.0866 18.2213 10.6846 17.4713L9.93458 20.319C9.66533 21.3622 8.93033 22.6702 8.43458 23.4637C9.55958 23.8072 10.7431 23.9993 11.9851 23.9993C18.5948 23.9993 23.9693 18.636 23.9693 12.0112C23.9693 5.39025 18.5941 0.027 11.9851 0.027L12.0158 0Z" fill="#171717"/> 14330<title>pinterest</title></svg> 14331 </a> 14332 </li> 14333 <li class="linkedin-link"> 14334 <a class="amblog-social opacity-50" 14335 target="_blank" 14336 href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.lafuma-moebel.de%2Fblog%2Fkomfort-sessel-rueckenschmerzen.html&title=Sessel+gegen+R%C3%BCckenschmerzen%3A+wie+w%C3%A4hlt+man+ihn+richtig+aus%3F+" 14337 title="LinkedIn"> 14338 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-6 h-6" role="img"> 14339<g clip-path="url(#clip0_593_46739)"> 14340<path d="M0 1.719C0 0.7695 0.789 0 1.7625 0H22.2375C23.211 0 24 0.7695 24 1.719V22.281C24 23.2305 23.211 24 22.2375 24H1.7625C0.789 24 0 23.2305 0 22.281V1.719ZM7.4145 20.091V9.2535H3.813V20.091H7.4145ZM5.6145 7.773C6.87 7.773 7.6515 6.942 7.6515 5.901C7.629 4.8375 6.8715 4.029 5.6385 4.029C4.4055 4.029 3.6 4.839 3.6 5.901C3.6 6.942 4.3815 7.773 5.5905 7.773H5.6145ZM12.9765 20.091V14.0385C12.9765 13.7145 13.0005 13.3905 13.0965 13.1595C13.356 12.513 13.9485 11.8425 14.9445 11.8425C16.248 11.8425 16.7685 12.8355 16.7685 14.2935V20.091H20.37V13.875C20.37 10.545 18.594 8.997 16.224 8.997C14.313 8.997 13.4565 10.047 12.9765 10.7865V10.824H12.9525C12.9605 10.8115 12.9685 10.799 12.976
143405 10.7865V9.2535H9.3765C9.4215 10.2705 9.3765 20.091 9.3765 20.091H12.9765Z" fill="#171717"/> 14341</g> 14342<defs> 14343<clipPath id="clip0_593_46739"> 14344<rect width="24" height="24" fill="white"/> 14345</clipPath> 14346</defs> 14347<title>linkedin</title></svg> 14348 </a> 14349 </li> 14350 </ul> 14351 </div> 14352 </div> 14353 </div> 14354 14355 </div> 14356 14357 14358
14359<script> 14360 'use strict'; 14361 14362 function initSliderComponent() { 14363 return { 14364 active: 0, 14365 itemCount: 0, 14366 getSlider() { 14367 return this.$root.querySelector('.js_slides'); 14368 }, 14369 pageSize: 4, 14370 pageFillers: 0, 14371 calcPageSize() { 14372 const slider = this.getSlider(); 14373 if (slider) { 14374 this.itemCount = slider.querySelectorAll('.js_slide').length; 14375 this.pageSize = Math.floor(slider.clientWidth / slider.querySelector('.js_slide').clientWidth); 14376 this.pageFillers = ( 14377 this.pageSize * Math.ceil(this.itemCount / this.pageSize) 14378 ) - this.itemCount; 14379 } 14380 }, 14381 calcActive() { 14382 const slider = this.getSlider(); 14383 if (slider) { 14384 const sliderItems = this.itemCount + this.pageFillers; 14385 const calculatedActiveSlide = slider.scrollLeft / (slider.scrollWidth / sliderItems); 14386 this.active = Math.round(calculatedActiveSlide / this.pageSize) * this.pageSize; 14387 } 14388 14389 this.overflowCards(); 14390 }, 14391 scrollPrevious() { 14392 this.scrollTo(this.active - 1); 14393 }, 14394 scrollNext() { 14395 this.scrollTo(this.active + 1); 14396 }, 14397 scrollTo(idx) { 14398 const slider = this.getSlider(); 14399 if (slider) { 14400 const slideWidth = slider.scrollWidth / (this.itemCount + this.pageFillers); 14401 slider.scrollLeft = Math.floor(slideWidth) * idx; 14402 this.active = idx; 14403 } 14404 }, 14405 skipCarouselToNavigation(navSelector) { 14406 const element = document.getElementById(navSelector) 14407 if (element) { 14408 element.scrollIntoView({behavior: 'smooth', block: 'end'}); 14409 const button = element.querySelector('button:not([disabled])'); 14410 this.$nextTick(() => button && button.focus({preventScroll: true})) 14411 } 14412 }, 14413 overflowCards() { 14414 const slider = this.$refs.slider; 14415 const cards = slider.querySelectorAll('.js_slide'); 14416 cards.forEach(card => { 14417 const cardRect = card.getBoundingClientRect(); 14418 const sliderRect = slider.getBoundingClientRect(); 14419 14420 if (cardRect.left < sliderRect.left || cardRect.right > sliderRect.right) { 14421 card.classList.add('opacity-30'); 14422 return; 14423 } 14424 14425 card.classList.remove('opacity-30'); 14426 }); 14427 }, 14428 initSwipeFunction() { 14429 // Swipe functionnality start 14430 let touchstartX = 0; 14431 let touchendX = 0; 14432 let mouseIsMoving; 14433 let swiped = 0; 14434 const slider = this.$refs.slider; 14435 14436 slider.addEventListener('touchstart', function (event) { 14437 document.querySelector('.page-wrapper').classList.add('overflow-hidden'); 14438 touchstartX = event.changedTouches[0].screenX; 14439 14440 slider.addEventListener('touchmove', handleTouchMove); 14441 }, false); 14442 14443 const handleTouchMove = (event) => { 14444 event.stopPropagation(); 14445 slider.classList.add('draggable'); 14446 let deltaX = event.touches[0].clientX - touchstartX; 14447 }; 14448 14449 slider.addEventListener('touchend', function (event) { 14450 document.querySelector('.page-wrapper').classList.remove('overflow-hidden'); 14451 slider.classList.remove('draggable'); 14452 slider.removeEventListener('touchmove', handleTouchMove); 14453 touchendX = event.changedTouches[0].screenX; 14454 handleGesture(); 14455 swipeContent(event); 14456 }); 14457 14458 let startClicX = 0; 14459 14460 const onMouseMove = (event) => { 14461 mouseIsMoving = true; 14462 let deltaX = event.clientX - startClicX; 14463 if (deltaX < -50) { 14464 swiped = 1; 14465 } else if (deltaX > 50) { 14466 swiped = 0; 14467 } 14468 } 14469 14470 slider.onmousedown = (event) => { 14471 startClicX = event.clientX; 14472 event.preventDefault(); 14473 event.stopPropagation(); 14474 slider.addEventListener('mousemove', onMouseMove); 14475 14476 document.addEventListener('mouseup', swipeContent); 14477 } 14478 14479 const swipeContent = () => { 14480 document.removeEventListener('mouseup', swipeContent); 14481 slider.removeEventListener('mousemove', onMouseMove); 14482 const next = slider.parentNode.querySelector('div[id*="slider-nav"] .glider-next'); 14483 const prev = slider.parentNode.querySelector('div[id*="slider-nav"] .glider-prev'); 14484 if (swiped !== undefined && mouseIsMoving) { 14485 if (swiped) { 14486 next.click(); 14487 } else { 14488 prev.click(); 14489 } 14490 } 14491 14492 mouseIsMoving = false;
14493 } 14494 14495 const handleGesture = () => { 14496 mouseIsMoving = true; 14497 if (touchendX < touchstartX) { 14498 swiped = 1; 14499 } 14500 14501 if (touchendX > touchstartX) { 14502 swiped = 0; 14503 } 14504 14505 if (touchendX === touchstartX) { 14506 swiped = undefined; 14507 } 14508 } 14509 //Swipe functionnality end 14510 } 14511 } 14512 } 14513</script>
14513 14514</section> 14515 14516<div class="amblog-overlay" data-amblog-js="overlay"></div> 14517
14518<script> 14519 'use strict'; 14520 14521 function dataComments() { 14522 return { 14523 replyCount: 0, 14524 isLoading: false, 14525 14526 options: { 14527 form_selector: '.amblog-comment-reply', 14528 form_url: 'https://www.lafuma-moebel.de/amblog/index/form/reply_to/%7B%7Breply_to%7D%7D/post_id/%7B%7Bpost_id%7D%7D/session_id/%7B%7Bsession_id%7D%7D/', 14529 update_url: 'https://www.lafuma-moebel.de/amblog/index/updateComments/', 14530 post_url: 'https://www.lafuma-moebel.de/amblog/index/postForm/reply_to/%7B%7Breply_to%7D%7D/post_id/%7B%7Bpost_id%7D%7D/', 14531 post_id: '22', 14532 session_id: '02a64c534338dda2896fcf5413564906', 14533 maxDeep: 2 14534 }, 14535 14536 selectors: { 14537 topCommentsWrapper: '.top-comments-wrapper', 14538 gdpr: '[name="gdpr_agree"]', 14539 commentsWrapper: '.comments_wrapper', 14540 shortComments: '.short_comments', 14541 commentsForm: '#comments-form', 14542 replies: '.amblog-replies', 14543 }, 14544 14545 classes: { 14546 deepReply: 'deep-reply', 14547 pointer: 'pointer-events-none', 14548 fillGrey: 'fill-amb_grey', 14549 fillBlue: 'fill-amb_blue_icon', 14550 textGrey: 'text-amb_grey', 14551 textBlue: 'text-amb_blue_icon' 14552 }, 14553 14554 windowReplace: window.location.href.replace(/:[^:].*$/i, ''), 14555 14556 initComments() { 14557 this.checkLocation(); 14558 this.loadCommentsByAjax(); 14559 }, 14560 14561 getReplyCount(el) { 14562 return el.closest('.comment-item') 14563 .querySelectorAll('.comment-item').length; 14564 }, 14565 14566 getReplyForm(el) { 14567 const container = el.getAttribute('href').replace('#', ''), 14568 id = el.getAttribute('data-id'); 14569 14570 this.showForm(container, id); 14571 }, 14572 14573 innerElements(elementSelector, data) { 14574 const tmpElement = document.createElement('div'); 14575 const element = document.querySelector(elementSelector); 14576 tmpElement.innerHTML = data; 14577 const commentsWrapper = tmpElement.querySelector(elementSelector) 14578 14579 if (element && commentsWrapper && commentsWrapper.firstChild) { 14580 element.innerHTML = commentsWrapper.innerHTML; 14581 } 14582 14583 if (element && !commentsWrapper) { 14584 element.innerHTML = data; 14585 } 14586 }, 14587 14588 parents(el, selector) { 14589 const parents = []; 14590 while ((el = el.parentNode) && el !== document) { 14591 if (!selector || el.matches(selector)) parents.push(el); 14592 } 14593 return parents; 14594 }, 14595 14596 loadCommentsByAjax() { 14597 fetch(this.options.update_url+ '?form_key=' + hyva.getFormKey() + 14598 '&post_id=22', 14599 { 14600 method: 'GET', 14601 headers: { 14602 'Content-type': 'application/json', 14603 'X-Requested-With': 'XMLHttpRequest' 14604 } 14605 } 14606 ) 14607 .then(response => response.json()) 14608 .then(result => { 14609 if (result.content) { 14610 this.innerElements(this.selectors.commentsWrapper, result.content); 14611 14612 if (result.short_content) { 14613 this.innerElements(this.selectors.shortComments, result.short_content); 14614 } 14615 14616 if (result.comments_form) { 14617 this.innerElements(this.selectors.commentsForm, result.comments_form); 14618 } 14619 14620 this.setDeepReplyClass(); 14621 } else if (data.error) { 14622 console.warn(data.error); 14623 } 14624 }); 14625 }, 14626 14627 setDeepReplyClass() { 14628 const commentsWrapper = document.querySelector(this.selectors.commentsWrapper), 14629 replies = commentsWrapper.querySelectorAll(this.selectors.replies); 14630
14631 replies.forEach(reply => { 14632 if (this.parents(reply, this.selectors.replies).length >= this.options.maxDeep) { 14633 reply.classList.add(this.classes.deepReply); 14634 } 14635 }); 14636 }, 14637 14638 checkLocation() { 14639 // Redirect to form after login 14640 if (window.location.hash) { 14641 if (window.location.hash === '#add-comment') { 14642 this.showForm('amblog-comment-form', 0); 14643 } else if (window.location.hash.indexOf('#reply-to-') !== -1) { 14644 const replyTo = window.location.hash.replace('#reply-to-', ''); 14645 this.showForm('am-comment-form-' + replyTo, replyTo); 14646 } 14647 } 14648 }, 14649 14650 hideForm(el) { 14651 const container = el.closest('.amblog-comment-reply'); 14652 14653 container.innerHTML = ''; 14654 container.style.display = 'none'; 14655 }, 14656 14657 showForm(container, id) { 14658 const formContainer = document.getElementById(container), 14659 formID = formContainer.getAttribute('id'); 14660 14661 if (formContainer && formContainer.style.display === 'none') { 14662 document.querySelectorAll('.amblog-comment-reply').forEach(containerReply => { 14663 if (containerReply !== formContainer) { 14664 containerReply.innerHTML = ''; 14665 containerReply.style.display = 'none'; 14666 } 14667 }); 14668 14669 formContainer.style.display = 'block'; 14670 14671 this.loadFormToContainer(container, id, formID); 14672 } 14673 14674 return false; 14675 }, 14676 14677 loadFormToContainer: function (container, id, formID) { 14678 let url = decodeURI( 14679 this.options.form_url.replace(/^http[s]{0,1}/, 14680 this.windowReplace) 14681 ); 14682 14683 this.isLoading = true; 14684 fetch(this.getFormattedUrl(url, id), { 14685 headers: { 14686 'Content-type': 'application/json', 14687 'X-Requested-With': 'XMLHttpRequest' 14688 } 14689 } 14690 ) 14691 .then(response => response.json()) 14692 .then(result => { 14693 if (result.form) { 14694 document.getElementById(container).innerHTML = result.form; 14695 14696 if (formID) { 14697 this.addFormHash(formID); 14698 } 14699 } 14700 }) 14701 .catch(this.displayError) 14702 .finally(() => { 14703 this.isLoading = false; 14704 }); 14705 }, 14706 14707 addFormHash(formID) { 14708 window.location.hash = '#' + formID; 14709 document.querySelector('#' + formID).scrollIntoView({block: 'start', behavior: 'smooth'}); 14710 }, 14711 14712 getReplyLabel(el, isShow) { 14713 if (isShow) { 14714 return 'Hide replies'; 14715 } 14716 14717 const repliesCount = this.getReplyCount(el), 14718 replyText = repliesCount > 1 ? 14719 'Antworten' : 14720 'antworten'; 14721 14722 return repliesCount + ' ' + replyText; 14723 }, 14724 14725 showReply(el) { 14726 let display = 'none'; 14727 const replys = el.closest('.amblog-comment') 14728 .querySelector('.amblog-replies').children, 14729 isShow = replys[0].style.display === display; 14730 14731 if (isShow) { 14732 display = 'block'; 14733 } 14734 14735 for (const reply of replys) { 14736 reply.style.display = display; 14737 } 14738 14739 el.innerHTML = this.getReplyLabel(el, isShow); 14740 }, 14741 14742 sendForm(form) { 14743 let url = decodeURI(this.options.post_url), 14744 values = this.serializeForm(form), 14745 replyTo = values.filter(val => val.name === 'reply_to' ); 14746 14747 if (form.querySelectorAll(this.selectors.gdpr).length 14748 && !form.querySelectorAll(this.selectors.gdpr + ':checked').length 14749 ) { 14750 values.email = ''; 14751 values.name = ''; 14752 values['customer_id'] = 0; 14753 } 14754 14755 if (!('name' in values)) { 14756 values.name = ''; 14757 } 14758 14759 this.isLoading = true; 14760 fetch(this.getClearUrlParams(this.getFormattedUrl(url, replyTo[0].value), values), { 14761 method: 'POST', 14762 headers: { 14763 'Content-type': 'application/json', 14764 'X-Requested-With': 'XMLHttpRequest' 14765 } 14766 } 14767 ) 14768 .then(response => response.json()) 14769 .then(result => { 14770 form.querySelector('textarea').value = ''; 14771 14772 let commentsBlock = document.querySelector('.amblog-comments-block'); 14773 14774 if (form.classList.contains('reply-form')) { 14775 commentsBlock = form 14776 .closest('.amblog-replies-block') 14777 .querySelector('.amblog-replies'); 14778 14779 commentsBlock.style.display = 'block'; 14780 } 14781 14782 this.insertBeforeElement(commentsBlock, result.message); 14783 commentsBlock.querySelector('div > .comment-item').style.display = 'block'; 14784 14785 const commentItem = commentsBlock.closest('.comment-item'); 14786 if (commentItem) { 14787 const commentBtn = commentItem 14788 .querySelector('.amblog-comment-content button.replies-button'), 14789 commentBtnLabel = commentBtn.querySelector('span'), 14790 commentBtnSVG = commentBtn.querySelector('svg'); 14791 14792 commentBtnLabel.innerHTML = this.getReplyLabel(commentBtnLabel, true); 14793 14794 commentBtn.classList.remove(this.classes.pointer); 14795 commentBtnLabel.classList.remove(this.classes.textGrey); 14796 commentBtnLabel.classList.add(this.classes.textBlue); 14797 commentBtnSVG.classList.remove(this.classes.fillGrey); 14798 commentBtnSVG.classList.add(this.classes.fillBlue); 14799 } 14800 }) 14801 .catch(this.displayError) 14802 .finally(() => { 14803 this.isLoading = false;
14804 }); 14805 }, 14806 14807 getClearUrlParams(url, data) { 14808 let params = ''; 14809 14810 url = url.replace('#', ''); 14811 14812 data.map(param => { 14813 if (params) { 14814 params += '&'; 14815 } 14816 14817 params += param.name + '=' + param.value; 14818 }); 14819 14820 if (~url.indexOf('?')) { 14821 url += '&'; 14822 } else { 14823 url += '?'; 14824 } 14825 14826 return url + params; 14827 }, 14828 14829 getFormattedUrl(url, replyTo) { 14830 return url.replace('{{post_id}}', this.options.post_id) 14831 .replace('{{session_id}}', this.options.session_id) 14832 .replace('{{reply_to}}', replyTo) 14833 .replace(/^http[s]{0,1}/, this.windowReplace); 14834 }, 14835 14836 insertBeforeElement(parent, message) { 14837 const before = parent.querySelector('div'), 14838 div = document.createElement('div'); 14839 14840 div.innerHTML = message; 14841 14842 parent.insertBefore(div, before); 14843 }, 14844 14845 serializeForm(form) { 14846 const data = new FormData(form) 14847 let array = []; 14848 for (let [key, value] of data) { 14849 array.push({ 14850 name: key, 14851 value: value 14852 }); 14853 } 14854 14855 return array; 14856 }, 14857 14858 displayError(error) { 14859 if (error.name === 'AbortError') { 14860 console.log('Fetch aborted'); 14861 } else { 14862 console.error(error); 14863 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 14864 [{ 14865 type: "error", 14866 text: "Es\u0020ist\u0020ein\u0020Fehler\u0020aufgetreten.\u0020Bitte\u0020versuchen\u0020Sie\u0020es\u0020erneut." 14867 }], 10000 14868 ); 14869 } 14870 }, 14871 } 14872 } 14873 14874 function amBlogViewStatistic() { 14875 return { 14876 selectors: { 14877 viewsCounter: 'amblog-views-counter', 14878 }, 14879 isShowViews: false, 14880 postViewStatistic() { 14881 fetch(BASE_URL + 'amblog/index/view?form_key=' + hyva.getFormKey() + 14882 '&post_id=22', 14883 { 14884 method: 'GET', 14885 headers: { 14886 'Content-type': 'application/json', 14887 'X-Requested-With': 'XMLHttpRequest' 14888 } 14889 } 14890 ).then(response => response.json()).then(result => { 14891 const viewsCount = result.views_count; 14892 14893 if (!isNaN(viewsCount) && this.isShowViews) { 14894 document.getElementById(this.selectors.viewsCounter).innerHTML = 14895 '%1 Aufruf(e)'.replace('%1', viewsCount); 14896 } 14897 }); 14898 }, 14899 eventListeners: { 14900 ['@postViewStatistic.window']() { 14901 this.postViewStatistic(); 14902 } 14903 } 14904 } 14905 } 14906</script>
14906 14907 14908
14909<script> 14910 'use strict'; 14911 14912 function HumanizeDateComponent() { 14913 return { 14914 now: new Date(), 14915 timeData: '', 14916 dateString: '', 14917 formattedDate: '', 14918 14919 /** 14920 * Renders a date in the local timezone, including day of the week. 14921 * e.g. 'Fri, 22 May 2020' 14922 */ 14923 dateFormatter: new Intl.DateTimeFormat([], { 14924 'year': 'numeric', 14925 'month': 'long', 14926 'day': 'numeric', 14927 'weekday': 'short' 14928 }), 14929 14930 /** 14931 * Renders an HH:MM time in the local timezone, including timezone info. 14932 * e.g. '12:17 BST' 14933 */ 14934 timeFormatter: new Intl.DateTimeFormat([], { 14935 'hour': 'numeric', 14936 'minute': 'numeric', 14937 'timeZoneName': 'short' 14938 }), 14939 14940 /** 14941 * @returns {void} 14942 */ 14943 initializeDates(dateString) { 14944 this._prepareNowDate(); 14945 this._processDateString(dateString); 14946 this._setTimeData(); 14947 this._setDate(); 14948 }, 14949 14950 /** 14951 * Convert current date to UTC. 14952 * @private 14953 * @returns {void} 14954 */ 14955 _prepareNowDate() { 14956 this.now = new Date( 14957 this.now.getUTCFullYear(), 14958 this.now.getUTCMonth(), 14959 this.now.getUTCDate(), 14960 this.now.getUTCHours(), 14961 this.now.getUTCMinutes(), 14962 this.now.getUTCSeconds(), 14963 this.now.getUTCMilliseconds() 14964 ); 14965 }, 14966 14967 /** 14968 * For iOS devices is need to replace the 'space' with a 'T' to conform to a simplified version of ISO-8601. 14969 * @private 14970 * @returns {void} 14971 */ 14972 _processDateString(dateString) { 14973 this.parsedDate = new Date(Date.parse(dateString.replace(' ', 'T'))); 14974 }, 14975 14976 /** 14977 * @private 14978 * @returns {void} 14979 */ 14980 _setTimeData() { 14981 const delta = this.now - this.parsedDate, 14982 seconds = Math.floor(delta / 1000), 14983 minutes = Math.floor(seconds / 60), 14984 hours = Math.floor(minutes / 60), 14985 days = Math.floor(hours / 24), 14986 months = Math.floor(days / 30), 14987 years = Math.floor(days / 365); 14988 14989 this.timeData = { 14990 seconds: { 14991 value: seconds, 14992 label: 'second' 14993 }, 14994 minutes: { 14995 value: minutes, 14996 label: 'minute' 14997 }, 14998 hours: { 14999 value: hours, 15000 label: 'hour' 15001 }, 15002 days: { 15003 value: days, 15004 label: 'day' 15005 }, 15006 months: { 15007 value: months, 15008 label: 'month' 15009 }, 15010 years: { 15011 value: years, 15012 label: 'year' 15013 } 15014 }; 15015 }, 15016 15017 /** 15018 * @private 15019 * @returns {Boolean} 15020 */ 15021 _isToday() { 15022 return this.dateFormatter.format(this.parsedDate) === this.dateFormatter.format(this.now); 15023 }, 15024 15025 /** 15026 * @private 15027 * @returns {Boolean} 15028 */ 15029 _isYesterday() { 15030 const yesterday = new Date().setDate(this.now.getDate() - 1); 15031 15032 return this.dateFormatter.format(this.parsedDate) === this.dateFormatter.format(yesterday); 15033 }, 15034 15035 /** 15036 * @private 15037 * @returns {String} 15038 */ 15039 _getFormattedDate() { 15040 const timeData = this.timeData; 15041 15042 if (timeData.seconds.value < 5) { 15043 return 'just now'; 15044 } 15045 15046 if (timeData.seconds.value < 60) { 15047 return this._getFormattedValue(timeData.seconds); 15048 } 15049 15050 if (timeData.minutes.value < 60) { 15051 return this._getFormattedValue(timeData.minutes); 15052 } 15053 15054 if (timeData.hours.value < 24) { 15055 return this._getFormattedValue(timeData.hours); 15056 } 15057 15058 if (timeData.days.value < 30) { 15059 return this._getFormattedValue(timeData.days); 15060 } 15061 15062 if (timeData.months.value < 12) { 15063 return this._getFormattedValue(timeData.months); 15064 } 15065 15066 return this._getFormattedValue(timeData.years); 15067 }, 15068 15069 /** 15070 * @private 15071 * @param {Object} data 15072 * @returns {String} 15073 */ 15074 _getFormattedValue(data) { 15075 const postfix = this._getPostfix(data.value); 15076 let formatted = '%1' + ' ' + data.label + postfix + ' ago'; 15077 15078 15079 return this._getDateTranslate(formatted).replace('%1', data.value); 15080 }, 15081 15082 /** 15083 * @private 15084 * @param {Number} value 15085 * @returns {String} 15086 */ 15087 _getPostfix(value) { 15088 return value === 1 ? '' : 's'; 15089 }, 15090 15091 /** 15092 * @private 15093 * @returns {void} 15094 */ 15095 _setDate() { 15096 this.formattedDate = this._getFormattedDate(); 15097 }, 15098 15099 /** 15100 * @public 15101 * @returns {String} 15102 */ 15103 getDate() { 15104 return this.formattedDate; 15105 }, 15106 15107 /** 15108 * @private 15109 * @param {String} string 15110 * @returns {String} 15111 */ 15112 _getDateTranslate(string) { 15113 const translate = { 15114 '%1 second ago': 'Vor %1 Sekunde', 15115 '%1 seconds ago': 'Vor %1 Sekunden', 15116 '%1 minute ago': 'Vor %1 Minute', 15117 '%1 minutes ago': 'Vor %1 Minuten', 15118 '%1 day ago': 'Vor %1 Tag', 15119 '%1 days ago': 'Vor %1 Tagen', 15120 '%1 month ago': 'Vor %1 Monat', 15121 '%1 months ago': 'Vor %1 Monaten', 15122 '%1 year ago': 'Vor %1 Jahr', 15123 '%1 years ago': 'Vor %1 Jahren' 15124 } 15125
15126 return translate[string] || string; 15127 }, 15128 15129 /** 15130 * Returns formatted date 15131 * @public 15132 * @returns {String} 15133 */ 15134 getHumanizeDate() { 15135 return this.formattedDate; 15136 } 15137 } 15138 } 15139</script>
15139 15140 15141
15141<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BlogPosting","datePublished":"2020-03-25T08:00:00+00:00","dateModified":"2025-07-22T14:25:02+00:00","mainEntityOfPage":"https:\/\/www.lafuma-moebel.de\/blog\/komfort-sessel-rueckenschmerzen.html","headline":"Sessel gegen R\u00fcckenschmerzen: wie w\u00e4hlt man ihn richtig aus? ","name":"Sessel gegen R\u00fcckenschmerzen: wie w\u00e4hlt man ihn richtig aus? ","description":"<p><span style=\"font-family: Barlow; font-size: 14px;\">Sie haben R\u00fcckenschmerzen und suchen nach einem Stuhl, der Ihre Schmerzen lindert? Erfahren Sie, wie Sie den richtigen Relaxsessel finden.<\/span><\/p>","image":"https:\/\/www.lafuma-moebel.de\/media\/amasty\/blog\/fauteuil-mal-dos-post-image-blog-1280x720.jpg"}</script>
15141 15142
15142<script type="application/ld+json">{"@context":"http:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.lafuma-moebel.de\/","name":"Startseite"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.lafuma-moebel.de\/blog.html","name":"Blog"}}]}</script>
15142 15143
15144<script> 15145function amastyBlogPost() { 15146 return Object.assign( 15147 amBlogViewStatistic(), 15148 { 15149 ['getHumanizeDateValue']() {return this.getHumanizeDate()}, 15150 ['amastyBlogPostInit']() {return this.postViewStatistic()}, 15151 ['humanizeDateInit']() {return this.initializeDates(`${this.$el.dataset.date}`)}, 15152 ['humanizeDateEditedInit']() {return this.initializeDates(`${this.$el.dataset.date}`)}, 15153 ['humanizeDateAuthorInit']() {return this.initializeDates(`${this.$el.dataset.date}`)} 15154 } 15155 ) 15156} 15157(() => { 15158 const initFn = () => Alpine.data('amastyBlogPost', amastyBlogPost); 15159 window.Alpine ? initFn() : window.addEventListener('alpine:init', initFn, {once: true}) 15160})(); 15161 15162function humanizeDateData() { 15163 return Object.assign( 15164 Object.assign(HumanizeDateComponent(), amastyBlogPost()) 15165 ) 15166} 15167(() => { 15168 const initFn = () => Alpine.data('humanizeDateData', humanizeDateData); 15169 window.Alpine ? initFn() : window.addEventListener('alpine:init', initFn, {once: true}) 15170})(); 15171 15172function postCommentsData() { 15173 return Object.assign( 15174 dataComments(), 15175 { 15176 ['initPostComments']() {return this.initComments()}, 15177 ['hideFormEvent'](event) {return this.hideForm(this.$event.target)}, 15178 ['sendFormEvent'](event) {return this.sendForm(this.$event.target)}, 15179 ['showReplyEvent'](event) {return this.showReply(this.$event.target)}, 15180 ['replyFormEvent'](event) {return this.getReplyForm(this.$event.target)}, 15181 ['replayClass']() { 15182 return { 15183 'pointer-events-none': !this.getReplyCount( 15184 document.getElementById('commentBtn_' + this.$el.dataset.id) 15185 ) 15186 } 15187 }, 15188 ['svgLinkClass']() { 15189 return { 15190 'fill-amb_grey': !this.getReplyCount( 15191 document.getElementById('commentBtn_' + this.$el.dataset.id) 15192 ), 15193 'fill-amb_blue_icon': this.getReplyCount( 15194 document.getElementById('commentBtn_' + this.$el.dataset.id) 15195 ) 15196 } 15197 }, 15198 ['replyCountClass']() { 15199 return { 15200 'text-amb_blue_icon': this.getReplyCount( 15201 document.getElementById('commentBtn_' + this.$el.dataset.id) 15202 ), 15203 'text-gray-500': !this.getReplyCount( 15204 document.getElementById('commentBtn_' + this.$el.dataset.id) 15205 ) 15206 } 15207 }, 15208 ['replyLabelValue']() { 15209 return this.getReplyLabel( 15210 document.getElementById('commentBtnLabel_' + this.$el.dataset.id), 15211 false) 15212 } 15213 } 15214 ) 15215} 15216(() => { 15217 const initFn = () => Alpine.data('postCommentsData', postCommentsData); 15218 window.Alpine ? initFn() : window.addEventListener('alpine:init', initFn, {once: true}) 15219})(); 15220</script>
15220 </div> 15221 <div x-data="AmFinderNotification()" x-init="initialize()"></div> 15222 15223</div></div>
15223<script> 15224 'use strict'; 15225 15226 (() => { 15227 window.addEventListener('DOMContentLoaded', () => { 15228 const inputElements = document.querySelectorAll( 15229 'input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select' 15230 ); 15231 15232 const targetNode = document.body; 15233 const config = { childList: true, subtree: true }; 15234 15235 const callback = (mutationsList) => { 15236 const inputElements = document.querySelectorAll( 15237 'input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select' 15238 ); 15239 for (const mutation of mutationsList) { 15240 if (mutation.type === 'childList') { 15241 inputElements.forEach((input) => { 15242 handleInputChange({currentTarget: input}); 15243 }); 15244 15245 inputElements.forEach((input) => { 15246 input.addEventListener('change', handleInputChange); 15247 }); 15248 } 15249 } 15250 15251 }; 15252 15253 const observer = new MutationObserver(callback); 15254 observer.observe(targetNode, config); 15255 15256 const handleInputChange = (event) => { 15257 const input = event.currentTarget; 15258 const classes = input.classList; 15259 15260 if (input.value) { 15261 classes.add('has-value'); 15262 } else { 15263 classes.remove('has-value'); 15264 } 15265 }; 15266 15267 inputElements.forEach((input) => { 15268 input.addEventListener('change', handleInputChange); 15269 }); 15270 15271 inputElements.forEach((input) => { 15272 handleInputChange({ currentTarget: input }); 15273 15274 setTimeout(() => { 15275 const supportsSelector = (sel) => { 15276 try { 15277 return window.CSS && typeof CSS.supports === 'function' && CSS.supports(`selector(${sel})`); 15278 } catch (e) { 15279 return false; 15280 } 15281 }; 15282 15283 let isAutofilled = false; 15284 15285 // Chrome, Edge, Safari 15286 if (!isAutofilled && supportsSelector(':-webkit-autofill')) { 15287 try { isAutofilled = input.matches(':-webkit-autofill'); } catch (e) { /* ignore */ } 15288 } 15289 // Firefox 15290 if (!isAutofilled && supportsSelector(':-moz-autofill')) { 15291 try { isAutofilled = input.matches(':-moz-autofill'); } catch (e) { /* ignore */ } 15292 } 15293 15294 if (isAutofilled) { 15295 input.setAttribute('value', '*'); 15296 input.classList.add('has-value'); 15297 } 15298 }, 200); 15299 }); 15300 15301 const inputEmailElements = document.querySelectorAll('input[type="email"]'); 15302 15303 const handleInputEmailChange = (event) => { 15304 const input = event.currentTarget; 15305 15306 if (input.value) { 15307 input.value = input.value.toLowerCase(); 15308 } 15309 }; 15310 15311 inputEmailElements.forEach((input) => { 15312 input.addEventListener('change', handleInputEmailChange); 15313 }); 15314 }); 15315 })(); 15316</script>
15316 15317</main><footer class="page-footer"><div class="footer content"><style>::backdrop { 15318--tw-border-spacing-x: 0; 15319--tw-border-spacing-y: 0; 15320--tw-translate-x: 0; 15321--tw-translate-y: 0; 15322--tw-rotate: 0; 15323--tw-skew-x: 0; 15324--tw-skew-y: 0; 15325--tw-scale-x: 1; 15326--tw-scale-y: 1; 15327--tw-pan-x: ; 15328--tw-pan-y: ; 15329--tw-pinch-zoom: ; 15330--tw-scroll-snap-strictness: proximity; 15331--tw-gradient-from-position: ; 15332--tw-gradient-via-position: ; 15333--tw-gradient-to-position: ; 15334--tw-ordinal: ; 15335--tw-slashed-zero: ; 15336--tw-numeric-figure: ; 15337--tw-numeric-spacing: ; 15338--tw-numeric-fraction: ; 15339--tw-ring-inset: ; 15340--tw-ring-offset-width: 0px; 15341--tw-ring-offset-color: #fff; 15342--tw-ring-color: rgb(59 130 246 / 0.5); 15343--tw-ring-offset-shadow: 0 0 #0000; 15344--tw-ring-shadow: 0 0 #0000; 15345--tw-shadow: 0 0 #0000; 15346--tw-shadow-colored: 0 0 #0000; 15347--tw-blur: ; 15348--tw-brightness: ; 15349--tw-contrast: ; 15350--tw-grayscale: ; 15351--tw-hue-rotate: ; 15352--tw-invert: ; 15353--tw-saturate: ; 15354--tw-sepia: ; 15355--tw-drop-shadow: ; 15356--tw-backdrop-blur: ; 15357--tw-backdrop-brightness: ; 15358--tw-backdrop-contrast: ; 15359--tw-backdrop-grayscale: ; 15360--tw-backdrop-hue-rotate: ; 15361--tw-backdrop-invert: ; 15362--tw-backdrop-opacity: ; 15363--tw-backdrop-saturate: ; 15364--tw-backdrop-sepia: 15365} 15366.cmsb1812-block { 15367display: block 15368} 15369.cmsb1812-\!justify-center { 15370justify-content: center !important 15371} 15372.cmsb1812-gap-4 { 15373gap: 1rem 15374} 15375.cmsb1812-px-6 { 15376padding-left: 1.5rem; 15377padding-right: 1.5rem 15378} 15379.cmsb1812-text-sm { 15380font-size: 0.875rem; 15381line-height: 1.25rem 15382} 15383.cmsb1812-font-medium { 15384font-weight: 500 15385} 15386.cmsb1812-uppercase { 15387text-transform: uppercase 15388} 15389@media (min-width: 768px) { 15390.cmsb1812-md\:basis-1\/4 { 15391flex-basis: 25% 15392} 15393.cmsb1812-md\:px-0 { 15394padding-left: 0px; 15395padding-right: 0px 15396} 15397} 15398@media (min-width: 1024px) { 15399.cmsb1812-lg\:basis-auto { 15400flex-basis: auto 15401} 15402}</style> 15403<style>#html-body [data-pb-style=IA8L6KK],#html-body [data-pb-style=MMHH7DN]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=MMHH7DN]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#f8f8f8;margin-left:0;margin-right:0;margin-bottom:0;padding:48px 0}#html-body [data-pb-style=IA8L6KK]{align-self:stretch}#html-body [data-pb-style=YF81FMP]{display:flex;width:100%}#html-body [data-pb-style=D57CSO4],#html-body [data-pb-style=GADPY8F],#html-body [data-pb-style=ODYOTMP],#html-body [data-pb-style=V9R4YVE],#html-body [data-pb-style=WPR8NTL]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:20%;align-self:stretch}#html-body [data-pb-style=L864MDH]{text-align:center}</style><div data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="MMHH7DN"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group footer-reassurance cmsb1812-px-6 cmsb1812-md:px-0" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="15" data-element="main" data-pb-style="IA8L6KK"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="YF81FMP"><div class="pagebuilder-column cmsb1812-gap-4" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="D57CSO4"><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto; width: 64px; height: 64px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/responsabilite.svg" alt="" width="64" height="64" loading="lazy"></p></div><div class="cmsb1812-font-medium cmsb1812-text-sm cmsb1812-uppercase cmsb1812-gap-4" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><span id="TXUVBUF" style="color: #171717;"> 15404 Reparierbarkeit 15405 <br> 15406 10 Jahre lang garantiert 15407 <br></span></p></div></div><div class="pagebuilder-column cmsb1812-gap-4" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="GADPY8F"><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><img id="RUCRO4I" style="display: block; margin-left: auto; margin-right: auto; width: 64px; height: 64px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/garantie.svg" alt="" width="64" height="64" loading="lazy"></p></div><div class="cmsb1812-font-medium cmsb1812-text-sm cmsb1812-uppercase" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><span style="color: #171717;">5 Jahre Herstellergarantie
 </span><br><span style="color: #171717; font-size: 10px;">Außer Accessoires und Pro</span></p></div></div><div class="pagebuilder-column cmsb1812-gap-4" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="V9R4YVE"><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto; width: 64px; height: 64px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/livraison.svg" alt="" width="64" height="64" loading="lazy"></p></div><div class="cmsb1812-font-medium cmsb1812-text-sm cmsb1812-uppercase" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center;">Kostenlose Lieferung <br>ab einem Bestellwert von 100€</p></div></div><div class="pagebuilder-column cmsb1812-gap-4" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="WPR8NTL"><div data-content-type="text" data-appearance="default" data-element="main"><p id="UYYQRUT" style="text-align: center;"><img style="display: block; margin-left: auto; margin-right: auto; width: 64px; height: 64px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/paiement.svg" alt="" width="64" height="64" loading="lazy"></p></div><div class="cmsb1812-font-medium cmsb1812-text-sm cmsb1812-uppercase" data-content-type="text" data-appearance="default" data-element="main"><p id="GT26Q5J" style="text-align: center;">Sicher Einkaufen</p></div></div><div class="pagebuilder-column cmsb1812-!justify-center cmsb1812-gap-4 cmsb1812-md:basis-1/4 cmsb1812-lg:basis-auto" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="ODYOTMP"><div class="cmsb1812-text-sm cmsb1812-uppercase trustbadge-div" data-content-type="html" data-appearance="default" data-element="main" data-pb-style="L864MDH" data-decoded="true"><div id="trustbadgeCustomContainer"></div><div id="trustbadgeCustomMobileContainer"></div> 15408 </div></div></div></div></div></div><div class="w-full inline-block"> 15409 <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"> 15410 <div style=" 15411 background:#000; 15412 width:100vw; 15413 margin-left:calc(50% - 50vw); 15414 margin-right:calc(50% - 50vw); 15415 padding:40px 0; 15416 "> 15417 <div class="klaviyo-form-V3fRTn"></div> 15418 </div> 15419</div></div> 15420<div x-data="initFooter()" x-init="transformInAccordion()" 15421 class="text-gray-700 body-font bg-container-lighter border-t border-container-darker pb-16 pt-8 max-w-9xl-padding mx-auto"> 15422 <div class="flex flex-wrap order-first gap-y-6"> 15423 <style>::backdrop { 15424--tw-border-spacing-x: 0; 15425--tw-border-spacing-y: 0; 15426--tw-translate-x: 0; 15427--tw-translate-y: 0; 15428--tw-rotate: 0; 15429--tw-skew-x: 0; 15430--tw-skew-y: 0; 15431--tw-scale-x: 1; 15432--tw-scale-y: 1; 15433--tw-pan-x: ; 15434--tw-pan-y: ; 15435--tw-pinch-zoom: ; 15436--tw-scroll-snap-strictness: proximity; 15437--tw-gradient-from-position: ;
15438--tw-gradient-via-position: ; 15439--tw-gradient-to-position: ; 15440--tw-ordinal: ; 15441--tw-slashed-zero: ; 15442--tw-numeric-figure: ; 15443--tw-numeric-spacing: ; 15444--tw-numeric-fraction: ; 15445--tw-ring-inset: ; 15446--tw-ring-offset-width: 0px; 15447--tw-ring-offset-color: #fff; 15448--tw-ring-color: rgb(59 130 246 / 0.5); 15449--tw-ring-offset-shadow: 0 0 #0000; 15450--tw-ring-shadow: 0 0 #0000; 15451--tw-shadow: 0 0 #0000; 15452--tw-shadow-colored: 0 0 #0000; 15453--tw-blur: ; 15454--tw-brightness: ; 15455--tw-contrast: ; 15456--tw-grayscale: ; 15457--tw-hue-rotate: ; 15458--tw-invert: ; 15459--tw-saturate: ; 15460--tw-sepia: ; 15461--tw-drop-shadow: ; 15462--tw-backdrop-blur: ; 15463--tw-backdrop-brightness: ; 15464--tw-backdrop-contrast: ; 15465--tw-backdrop-grayscale: ; 15466--tw-backdrop-hue-rotate: ; 15467--tw-backdrop-invert: ; 15468--tw-backdrop-opacity: ; 15469--tw-backdrop-saturate: ; 15470--tw-backdrop-sepia: 15471} 15472.cmsb1009-pb-4 { 15473padding-bottom: 1rem 15474} 15475.cmsb1009-text-center { 15476text-align: center 15477} 15478.cmsb1009-font-normal { 15479font-weight: 400 15480} 15481@media (min-width: 768px) { 15482.cmsb1009-md\:pb-2 { 15483padding-bottom: 0.5rem 15484} 15485.cmsb1009-md\:text-left { 15486text-align: left 15487} 15488}</style> 15489<style>#html-body [data-pb-style=WSQHH53]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="WSQHH53"><div class="cmsb1009-font-normal font-primary-lighter cmsb1009-text-center cmsb1009-pb-4 cmsb1009-md:pb-2 cmsb1009-md:text-left" data-content-type="text" data-appearance="default" data-element="main"><p><span style="color: #171717;"><em><span style="font-family: CrimsonPro; font-size: 18px;">Folgen Sie uns</span></em></span></p></div><div class="container-flex" data-content-type="text" data-appearance="default" data-element="main"><p><a tabindex="-1" href="https://www.instagram.com/lafuma_mobilier/" target="_blank" rel="noopener"><img id="LRB2OXG" style="width: 24px; height: 24px;" src="https://www.lafuma-mobilier.fr/media/wysiwyg/icons/instagram.svg" alt="" width="24" height="24" loading="lazy"></a><a tabindex="-1" href="https://www.pinterest.fr/lafumamobilier/" target="_blank" rel="noopener"><img style="width: 24px; height: 24px;" src="https://www.lafuma-mobilier.fr/media/wysiwyg/icons/pinterest.svg" alt="" width="24" height="24" loading="lazy"></a><a tabindex="-1" href="https://www.youtube.com/channel/UCTsdiGi-blcmBWrFbtXO7aA/videos" target="_blank" rel="noopener"><img style="width: 24px; height: 24px;" src="https://www.lafuma-mobilier.fr/media/wysiwyg/icons/youtube.svg" alt="" width="24" height="24" loading="lazy"></a><a tabindex="-1" href="https://www.linkedin.com/company/lafuma-mobilier/" target="_blank" rel="noopener"><img style="width: 24px; height: 24px;" src="https://www.lafuma-mobilier.fr/media/wysiwyg/icons/linkedin.svg" alt="" width="24" height="24" loading="lazy"></a><a tabindex="-1" href="https://www.facebook.com/LafumaMobilierDE" target="_blank" rel="noopener"><img style="width: 24px; height: 24px;" src="https://www.lafuma-mobilier.fr/media/wysiwyg/icons/facebook.svg" alt="" width="24" height="24" loading="lazy"></a></p></div></div></div> <style>::backdrop { 15490--tw-border-spacing-x: 0; 15491--tw-border-spacing-y: 0; 15492--tw-translate-x: 0; 15493--tw-translate-y: 0; 15494--tw-rotate: 0; 15495--tw-skew-x: 0; 15496--tw-skew-y: 0; 15497--tw-scale-x: 1; 15498--tw-scale-y: 1; 15499--tw-pan-x: ; 15500--tw-pan-y: ; 15501--tw-pinch-zoom: ; 15502--tw-scroll-snap-strictness: proximity; 15503--tw-gradient-from-position: ; 15504--tw-gradient-via-position: ; 15505--tw-gradient-to-position: ; 15506--tw-ordinal: ; 15507--tw-slashed-zero: ; 15508--tw-numeric-figure: ; 15509--tw-numeric-spacing: ; 15510--tw-numeric-fraction: ; 15511--tw-ring-inset: ; 15512--tw-ring-offset-width: 0px; 15513--tw-ring-offset-color: #fff; 15514--tw-ring-color: rgb(59 130 246 / 0.5); 15515--tw-ring-offset-shadow: 0 0 #0000; 15516--tw-ring-shadow: 0 0 #0000;
15517--tw-shadow: 0 0 #0000; 15518--tw-shadow-colored: 0 0 #0000; 15519--tw-blur: ; 15520--tw-brightness: ; 15521--tw-contrast: ; 15522--tw-grayscale: ; 15523--tw-hue-rotate: ; 15524--tw-invert: ; 15525--tw-saturate: ; 15526--tw-sepia: ; 15527--tw-drop-shadow: ; 15528--tw-backdrop-blur: ; 15529--tw-backdrop-brightness: ; 15530--tw-backdrop-contrast: ; 15531--tw-backdrop-grayscale: ; 15532--tw-backdrop-hue-rotate: ; 15533--tw-backdrop-invert: ; 15534--tw-backdrop-opacity: ; 15535--tw-backdrop-saturate: ; 15536--tw-backdrop-sepia: 15537} 15538.cmsb1501-gap-4 { 15539gap: 1rem 15540} 15541.cmsb1501-border-b { 15542border-bottom-width: 1px 15543} 15544.cmsb1501-border-t { 15545border-top-width: 1px 15546} 15547.cmsb1501-border-primary-300 { 15548--tw-border-opacity: 1; 15549border-color: rgb(224 224 224 / var(--tw-border-opacity)) 15550} 15551.cmsb1501-pt-4 { 15552padding-top: 1rem 15553} 15554.cmsb1501-font-medium { 15555font-weight: 500 15556} 15557.cmsb1501-text-primary-lighter { 15558--tw-text-opacity: 1; 15559color: rgb(23 23 23 / var(--tw-text-opacity)) 15560} 15561@media (min-width: 768px) { 15562.cmsb1501-md\:gap-8 { 15563gap: 2rem 15564} 15565.cmsb1501-md\:border-0 { 15566border-width: 0px 15567} 15568.cmsb1501-md\:border-t { 15569border-top-width: 1px 15570} 15571.cmsb1501-md\:border-primary-300 { 15572--tw-border-opacity: 1; 15573border-color: rgb(224 224 224 / var(--tw-border-opacity)) 15574} 15575.cmsb1501-md\:pt-0 { 15576padding-top: 0px 15577} 15578.cmsb1501-md\:uppercase { 15579text-transform: uppercase 15580} 15581.cmsb1501-md\:text-primary-500 { 15582--tw-text-opacity: 1; 15583color: rgb(158 158 158 / var(--tw-text-opacity)) 15584} 15585}</style> 15586<style>#html-body [data-pb-style=RBIGHOL],#html-body [data-pb-style=YU3XXN2]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=RBIGHOL]{justify-content:flex-start;display:flex;flex-direction:column;padding-top:24px}#html-body [data-pb-style=YU3XXN2]{align-self:stretch}#html-body [data-pb-style=DXORC4T]{display:flex;width:100%}#html-body [data-pb-style=LQPSN8R],#html-body [data-pb-style=OLY5BUY],#html-body [data-pb-style=WQGBBV0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:25%;align-self:stretch}#html-body [data-pb-style=LQPSN8R]{width:50%}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div class="cmsb1501-md:border-t cmsb1501-md:border-primary-300" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="RBIGHOL"><div class="pagebuilder-column-group mobile-accordion" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="YU3XXN2"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="DXORC4T"><div class="pagebuilder-column cmsb1501-border-b cmsb1501-border-t cmsb1501-border-primary-300 cmsb1501-pt-4 cmsb1501-gap-4 cmsb1501-md:border-0 cmsb1501-md:pt-0 cmsb1501-md:gap-8 mobile-accordion-content" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="OLY5BUY"><div class="cmsb1501-text-primary-lighter cmsb1501-md:uppercase cmsb1501-md:text-primary-500 cmsb1501-font-medium accordion-title" data-content-type="text" data-appearance="default" data-element="main"><p>Kontakt</p></div><div class="list-style-none accordion-content" data-content-type="text" data-appearance="default" data-element="main"><ul style="list-style-type: circle;"> 15587<li style="text-align: left;"><a tabindex="0" href="/retailer/retailer">Storefinder</a></li> 15588<li id="XXT47YJ" style="text-align: left;"><a tabindex="0" href="https://faq.lafuma-mobilier.fr/hc/de/requests/new">Kundenservice</a></li> 15589<li style="text-align: left;"><a tabindex="0" href="https://faq.lafuma-mobilier.fr/hc/de/requests/new">Pressekontakt</a></li> 15590</ul></div></div><div class="pagebuilder-column cmsb1501-border-b cmsb1501-border-primary-300 cmsb1501-pt-4 cmsb1501-gap-4 cmsb1501-md:border-0 cmsb1501-md:pt-0 cmsb1501-md:gap-8 mobile-accordion-content" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="WQGBBV0"><div class="cmsb1501-text-primary-lighter cmsb1501-md:uppercase cmsb1501-md:text-primary-500 cmsb1501-font-medium accordion-title" data-content-type="text" data-appearance="default" data-element="main"><p>Hilfe</p></div><div class="list-style-none accordion-content" data-content-type="text" data-appearance="default" data-element="main"><ul style="list-style-type: circle;"> 15591<li><a tabindex="0" href="https://www.lafuma-moebel.de/lieferung.html" target="_blank" rel="noopener">Lieferung</a></li> 15592<li><a tabindex="0" href="https://lafuma-mobilier.shipup.co" target="_blank" rel="noopener">Paketverfolgung</a></li> 15593<li><a tabindex="0" href="https://faq.lafuma-mobilier.fr/hc/de">FAQ</a></li> 15594<li>
15594<a tabindex="0" href="/blog/unsere-leitfaeden-und-tipps-auswahlhilfe.html">Auswahlhilfe</a></li> 15595<li><a tabindex="0" href="/blog/unsere-leitfaeden-und-tipps-pflege-und-reparatur.html">Pflege und Reparatur</a></li> 15596<li><a tabindex="0" href="/blog/unsere-leitfaeden-und-tipps-bezug-wechseln.html">Bezug wechseln</a></li> 15597<li><a tabindex="0" href="/blog.html">Blog</a></li> 15598</ul></div></div><div class="pagebuilder-column cmsb1501-border-b cmsb1501-border-primary-300 cmsb1501-pt-4 cmsb1501-gap-4 cmsb1501-md:border-0 cmsb1501-md:pt-0 cmsb1501-md:gap-8 mobile-accordion-content" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="LQPSN8R"><div class="cmsb1501-text-primary-lighter cmsb1501-md:uppercase cmsb1501-md:text-primary-500 cmsb1501-font-medium accordion-title" data-content-type="text" data-appearance="default" data-element="main"><p>Unsere Zertifizierungen und Partner</p></div><div class="container-flex-partners accordion-content" data-content-type="text" data-appearance="default" data-element="main"><p><img style="width: 112px; height: 40px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/group.svg" loading="lazy" alt="" width="112" height="40"><img style="width: 68px; height: 68px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/entreprise-du-patrimoine-vivant.svg" loading="lazy" alt="" width="68" height="68"><img id="OA0JW77" style="width: 96px; height: 40px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/ameublement-france.svg" loading="lazy" alt="" width="96" height="40"><img style="width: 56px; height: 56px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/charte-fevad.svg" loading="lazy" alt="" width="56" height="56"><img style="width: 56px; height: 56px;" src="https://www.lafuma-moebel.de/media/wysiwyg/icons/ecommerce-europe.svg" loading="lazy" alt="" width="56" height="56"></p></div><div class="cmsb1501-text-primary-lighter cmsb1501-md:uppercase cmsb1501-md:text-primary-500 cmsb1501-font-medium accordion-title" data-content-type="text" data-appearance="default" data-element="main"><p>Developed by Peugeot</p></div><div class="container-flex-peugeot accordion-content" data-content-type="text" data-appearance="default" data-element="main"><p><img src="https://www.lafuma-moebel.de/media/.renditions/wysiwyg/home-page/logo-dbp-header.png" alt="" width="66" height="66"></p></div></div></div></div></div></div> <style>::backdrop { 15599--tw-border-spacing-x: 0; 15600--tw-border-spacing-y: 0; 15601--tw-translate-x: 0; 15602--tw-translate-y: 0; 15603--tw-rotate: 0; 15604--tw-skew-x: 0; 15605--tw-skew-y: 0; 15606--tw-scale-x: 1; 15607--tw-scale-y: 1; 15608--tw-pan-x: ; 15609--tw-pan-y: ; 15610--tw-pinch-zoom: ; 15611--tw-scroll-snap-strictness: proximity; 15612--tw-gradient-from-position: ; 15613--tw-gradient-via-position: ; 15614--tw-gradient-to-position: ; 15615--tw-ordinal: ; 15616--tw-slashed-zero: ; 15617--tw-numeric-figure: ; 15618--tw-numeric-spacing: ; 15619--tw-numeric-fraction: ; 15620--tw-ring-inset: ; 15621--tw-ring-offset-width: 0px; 15622--tw-ring-offset-color: #fff; 15623--tw-ring-color: rgb(59 130 246 / 0.5); 15624--tw-ring-offset-shadow: 0 0 #0000; 15625--tw-ring-shadow: 0 0 #0000; 15626--tw-shadow: 0 0 #0000; 15627--tw-shadow-colored: 0 0 #0000; 15628--tw-blur: ; 15629--tw-brightness: ; 15630--tw-contrast: ; 15631--tw-grayscale: ; 15632--tw-hue-rotate: ; 15633--tw-invert: ; 15634--tw-saturate: ; 15635--tw-sepia: ; 15636--tw-drop-shadow: ; 15637--tw-backdrop-blur: ; 15638--tw-backdrop-brightness: ; 15639--tw-backdrop-contrast: ; 15640--tw-backdrop-grayscale: ; 15641--tw-backdrop-hue-rotate: ; 15642--tw-backdrop-invert: ; 15643--tw-backdrop-opacity: ; 15644--tw-backdrop-saturate: ; 15645--tw-backdrop-sepia: 15646} 15647.cmsb955-flex { 15648display: flex 15649} 15650.cmsb955-flex-wrap { 15651flex-wrap: wrap 15652} 15653.cmsb955-justify-center { 15654justify-content: center 15655} 15656.cmsb955-gap-y-4 { 15657row-gap: 1rem 15658} 15659.cmsb955-font-normal { 15660font-weight: 400 15661} 15662.cmsb955-text-primary-lighter { 15663--tw-text-opacity: 1; 15664color: rgb(23 23 23 / var(--tw-text-opacity)) 15665} 15666@media (min-width: 768px) { 15667.cmsb955-md\:border-t { 15668border-top-width: 1px 15669} 15670.cmsb955-md\:border-primary-300 { 15671--tw-border-opacity: 1; 15672border-color: rgb(224 224 224 / var(--tw-border-opacity)) 15673} 15674}</style> 15675<style>#html-body [data-pb-style=NVWPPTC]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin-bottom:48px;padding-top:24px}#html-body [data-pb-style=DFLY1NY]{padding-bottom:24px}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div class="cmsb955-md:border-t cmsb955-md:border-primary-300" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="NVWPPTC"><div class="container-flex-payment" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="DFLY1NY"><p><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/cb-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/visa-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/maestro-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/mastercard-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/amex-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/diners-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/applepay-color.svg" loading="lazy" alt="" width="50" height="32"><img src="https://www.lafuma-moebel.de/media/wysiwyg/icons/paypal-color.svg" loading="lazy" alt="" width="50" height="32"></p></div><div class="cmsb955-flex cmsb955-flex-wrap cmsb955-font-normal cmsb955-text-primary-lighter cmsb955-justify-center list-with-border-right cmsb955-gap-y-4" data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: left;"><a tabindex="0" title="Rabattbedingungen" href="/rabattbedingungen.html">Rabattbedingungen</a></p> 15676<p style="text-align: left;"><a tabindex="0" title="AGB" href="/agb.html">AGB</a></p> 15677<p style="text-align: left;"><a tabindex="0" title="Impressum" href="/impressum.html">Impressum</a></p> 15678<p style="text-align: left;"><a tabindex="0" title="Datenschutzerklärung" href="/datenschutzerklaerung.html">Datenschutzerklärung</a></p> 15679<p style="text-align: left;"><a tabindex="0" title="cookies" href="#">Cookie-Einstellungen</a></p> 15680<p style="text-align: left;"><a tabindex="0" title="Erklärung zur Barrierefreiheit" href="/erklarung-zur-barrierefreiheit" target="_blank" rel="noopener">Barrierefreiheit: teilweise konform</a></p></div></div></div> </div> 15681</div>
15682<script> 15683 function initFooter() { 15684 return { 15685 transformInAccordion() { 15686 document.querySelectorAll('.mobile-accordion-content').forEach(content => { 15687 function openAccordion() { 15688 if (window.innerWidth <= '768') { 15689 if (!content.classList.contains('accordion-open')) { 15690 content.classList.add('accordion-open'); 15691 } else { 15692 content.classList.remove('accordion-open'); 15693 } 15694 } 15695 } 15696 content.querySelectorAll('.accordion-title').forEach(title => { 15697 title.addEventListener('click', openAccordion) 15698 }); 15699 }); 15700 } 15701 } 15702 } 15703 15704 window.addEventListener('DOMContentLoaded', () => { 15705 document.querySelector('[title="cookies"]')?.addEventListener('click', () => { 15706 UC_UI.showSecondLayer(); 15707 }) 15708 15709 document 15710 ?.querySelector('.container-flex-peugeot') 15711 ?.querySelector('img') 15712 ?.addEventListener( 15713 'click', 15714 (event) => { 15715 window.open( 15716 atob('aHR0cHM6Ly9tYWlzb24tcGV1Z2VvdC5jb20v'), 15717 '_blank' 15718 ); 15719 } 15720 ) 15721 }) 15722</script>
vendor: 1 bytes, line 15722
15722
15723<script> 15724 'use strict'; 15725 15726 function amBrandsPopup() { 15727 let cached = false; 15728 15729 const displayError = (error) => { 15730 console.error(error); 15731 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 15732 [{ 15733 type: "error", 15734 text: "Es\u0020ist\u0020ein\u0020Fehler\u0020aufgetreten.\u0020Bitte\u0020versuchen\u0020Sie\u0020es\u0020erneut." 15735 }], 10000 15736 ); 15737 }; 15738 15739 let letters = [ 15740 "A","B","C","D", 15741 "E","F","G","H","I","J","K","L","M", 15742 "N","O","P","Q","R","S","T","U","V","W","X","Y","Z","#" 15743 ]; 15744 15745 return { 15746 hoverPanelActiveId: null, 15747 selectedLetter: null, 15748 items: [], 15749 letters: [], 15750 showCount: null, 15751 showFilter: null, 15752 showImages: true, 15753 showSearch: null, 15754 loading: false, 15755 label: 'Brands', 15756 isPopupEnabled: false, 15757 isTopMenuItemEnabled: false, 15758 cache: false, 15759 isMobile: false, 15760 15761 initErrorMessages(errors) { 15762 const messages = []; 15763 for (let error in Object.keys(errors)) { 15764 messages.push({type: 'error', text: errors[error].message}); 15765 } 15766 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(messages, 10000); 15767 }, 15768 15769 chooseLetter(letter) { 15770 this.selectedLetter = this.selectedLetter === letter ? null : letter; 15771 }, 15772 15773 getQuery() { 15774 return "query BrandsPopupQuery { ambrandlist(\n showCount: true\n displayZero: true\n ) {\n all_letters,\n items {\n alt\n brandId\n cnt\n image\n img\n label\n letter\n url\n }\n }\n storeConfig {\n amshopby_brand_general_brands_brands_popup,\n amshopby_brand_general_menu_item_label,\n amshopby_brand_general_brands_page,\n amshopby_brand_general_topmenu_enabled,\n amshopby_brand_general_brands_popup_config {\n show_images,\n display_zero,\n filter_display_all,\n image_width,\n image_height,\n show_filter,\n show_count\n }\n } }" }, 15775 15776 /** 15777 * Retrieve media url for given path 15778 * 15779 * @param path 15780 * @returns {string} 15781 */ 15782 getMediaUrl(path) { 15783 const baseUrl = BASE_URL.replace('index.php/', ''); 15784 if (path.includes('://')) { 15785 return path; 15786 } 15787 15788 let productImageUrl = `${baseUrl}${path}`; 15789 const regexDuplicateDomain = new RegExp(`^(https?:\/\/[^/]+).*\\1`); 15790 productImageUrl = productImageUrl.replace(regexDuplicateDomain, '$1'); 15791 15792 return productImageUrl.includes('/product/placeholder/') 15793 ? productImageUrl.replace(/\/media(?=\/static)/, '') 15794 : productImageUrl; 15795 }, 15796 15797 checkIsMobileResolution() { 15798 this.isMobile = window.matchMedia('(max-width: 1023px)').matches; 15799 }, 15800 15801 getBrandUrl(url){ 15802 return BASE_URL + url; 15803 }, 15804 15805 init() { 15806 this.checkIsMobileResolution(); 15807 15808 this.$watch('hoverPanelActiveId', (value) => { 15809 if (value === 'am-brand') { 15810 this.sendRequest(); 15811 } 15812 }); 15813 }, 15814 15815 /** 15816 * Get brands by letter 15817 * 15818 * @param result 15819 * @returns {{imageWidth: *, isTopMenuItemEnabled: *, showCount: *, displayAll: *, showFilter: *, showImages: *, isPopupEnabled: *, label: *, imageHeight: *, filterDisplayAll: *, brandsPage: *}} 15820 */ 15821 settingsMapper(result) { 15822 const config = result.data.storeConfig?.amshopby_brand_general_brands_popup_config; 15823 return { 15824 showImages: config.show_images, 15825 showCount: config.show_count, 15826 showFilter: config.show_filter, 15827 imageWidth: config.image_width, 15828 imageHeight: config.image_height, 15829 filterDisplayAll: config.filter_display_all, 15830 displayAll: config.display_zero, 15831 isPopupEnabled: result.data.storeConfig?.amshopby_brand_general_brands_brands_popup, 15832 label: result.data.storeConfig?.amshopby_brand_general_menu_item_label, 15833 isTopMenuItemEnabled: result.data.storeConfig?.amshopby_brand_general_topmenu_enabled, 15834 brandsPage: result.data.storeConfig?.amshopby_brand_general_brands_page, 15835 } 15836 }, 15837 15838 /** 15839 * Send request to graphql 15840 * 15841 * @returns {Promise<any>} 15842 */ 15843 async sendRequest() { 15844 if (this.isMobile) { 15845 return false;
15846 } 15847 15848 this.loading = true; 15849 15850 try { 15851 if (cached) { 15852 this.loading = false; 15853 return false; 15854 } 15855 15856 const response = await fetch('https://www.lafuma-moebel.de/graphql', { 15857 method: 'POST', 15858 headers: { 15859 'Content-Type': 'application/json', 15860 'Store': 'de_de' 15861 }, 15862 credentials: 'include', 15863 body: JSON.stringify({query: this.getQuery(), variables: {}}) 15864 }); 15865 15866 const result = await response.json(); 15867 15868 if (result?.errors) { 15869 this.initErrorMessages(result.errors); 15870 return; 15871 } 15872 15873 const data = result.data?.ambrandlist; 15874 const mapper = this.settingsMapper(result); 15875 15876 // Update component settings 15877 Object.keys(mapper).forEach(config => { 15878 this[config] = mapper[config]; 15879 }); 15880 15881 if (!this.filterDisplayAll) { 15882 letters = data.all_letters.split(','); 15883 } 15884 15885 const items = data.items.map(brand => { 15886 brand.image = brand.img 15887 ? this.getMediaUrl(brand.img) : (brand.image ? this.getMediaUrl(brand.image) : null); 15888 return brand; 15889 }); 15890 15891 this.letters = letters.map(letter => ({ 15892 letter, 15893 brands: this.getLetterItems(items, letter), 15894 })); 15895 15896 this.items = this.letters.filter(row => row.brands?.length > 0); 15897 15898 cached = true; 15899 } catch (error) { 15900 displayError(error); 15901 } finally { 15902 this.loading = false; 15903 } 15904 }, 15905 15906 /** 15907 * Get brands by letter 15908 * 15909 * @param items 15910 * @param letter 15911 * @returns {*} 15912 */ 15913 getLetterItems(items, letter) { 15914 return items.filter(row => row.letter === letter); 15915 }, 15916 15917 convertHtml(text) { 15918 let textField = document.createElement("textarea"); 15919 textField.innerHTML = text; 15920 return textField.value; 15921 } 15922 } 15923 } 15924 15925 function amBrandsPopupData() { 15926 return Object.assign( 15927 amBrandsPopup(), 15928 { 15929 brandPopupClass() { 15930 return { 15931 'hover:border-primary data-[active]:border-primary': !this.isPopupEnabled 15932 } 15933 }, 15934 labelPopupClass() { 15935 return {'w-14 opacity-0': this.label === ''} 15936 }, 15937 popupcontentClass() { 15938 return { 15939 'hidden' : this.hoverPanelActiveId !== 'am-brand', 15940 'left-0' : `${this.$el.dataset.first}`, 15941 'right-0' : `${this.$el.dataset.last}` 15942 } 15943 }, 15944 panelActiveMouseenterEvent() { 15945 return this.hoverPanelActiveId = 'am-brand' 15946 }, 15947 panelActiveMouseleaveEvent() { 15948 return this.hoverPanelActiveId = null 15949 }, 15950 isPopupShow() { 15951 return this.hoverPanelActiveId === 'am-brand' 15952 }, 15953 labelText(){ 15954 return this.label 15955 }, 15956 isEnabledPopup(){ 15957 return this.isPopupEnabled 15958 }, 15959 showExtMessage(){ 15960 return false 15961 }, 15962 notLoading() { 15963 return !this.loading 15964 }, 15965 brandLabel() { 15966 return this.brand.label 15967 }, 15968 letterClass() { 15969 return { 15970 'border-blue-400 text-blue-400 bg-blue-100': this.selectedLetter === this.letter.letter, 15971 'bg-gray-200 text-gray-700 cursor-default pointer-events-none': !this.letter.brands || this.letter.brands.length === 0 15972 } 15973 }, 15974 letterClickEvent(event) { 15975 return this.chooseLetter(this.letter.letter) 15976 }, 15977 letterBrands() { 15978 return this.letter.brands 15979 }, 15980 brandUrl() { 15981 return this.getBrandUrl(this.brand.url) 15982 }, 15983 brandImage() { 15984 return this.brand.image 15985 },
15986 notBrandImage() { 15987 return !this.brand.image 15988 }, 15989 letterLetter() { 15990 return this.letter.letter 15991 }, 15992 brandBrandId() { 15993 return this.brand.brandId 15994 }, 15995 isLetterShow() { 15996 return !this.selectedLetter || this.selectedLetter === this.letter.letter 15997 }, 15998 brandImageMediaUrl() { 15999 return this.getMediaUrl(this.brand.image) 16000 }, 16001 brandImageStyle() { 16002 return `max-width: ${this.imageWidth ? this.imageWidth + 'px' : '100px' };max-height: ${this.imageHeight ? this.imageHeight + 'px' : 'inherit'}` 16003 }, 16004 brandsLabelStyle() { 16005 return `min-width: ${this.imageWidth}px` 16006 }, 16007 brandLabelFilter() { 16008 return this.brand.label.charAt(0) 16009 }, 16010 brandCnt() { 16011 return '(' + this.brand.cnt + ')' 16012 } 16013 } 16014 ) 16015 } 16016 window.addEventListener('alpine:init', () => Alpine.data('amBrandsPopupData', amBrandsPopupData), {once: true}); 16017</script>
16017 16018</div></footer>
16019<script> 16020 function dataServicesShoppingCartContextData() { 16021 return { 16022 initContext() { 16023 const cartData = this.$event.detail.data.cart; 16024 let contextCartItems = []; 16025 16026 if (cartData && cartData.items) { 16027 cartData.items.forEach(function (item) { 16028 contextCartItems.push({ 16029 id: item.item_id, 16030 formattedPrice: parseFloat(item.product_price_value ? item.product_price_value : 0), 16031 quantity: item.qty, 16032 product: { 16033 productType: item.product_type, 16034 productId: item.product_id, 16035 name: item.product_name, 16036 sku: item.product_sku, 16037 mainImageUrl: item.product_image.src 16038 }, 16039 prices: { 16040 price: { 16041 value: parseFloat(item.product_price_value ? item.product_price_value : 0) 16042 } 16043 } 16044 }); 16045 }); 16046 16047 magentoStorefrontEvents.context.setShoppingCart({ 16048 id: cartData.dsCartId, 16049 totalQuantity: cartData.summary_count, 16050 prices: { 16051 subtotalExcludingTax: { 16052 value: parseFloat(cartData.subtotalAmountExclTax ? cartData.subtotalAmountExclTax : 0) 16053 }, 16054 subtotalIncludingTax: { 16055 value: parseFloat(cartData.subtotalAmount ? cartData.subtotalAmount : 0) 16056 } 16057 }, 16058 items: contextCartItems, 16059 possibleOnepageCheckout: cartData.possible_onepage_checkout, 16060 giftMessageSelected : false, 16061 giftWrappingSelected : false 16062 }); 16063 } 16064 16065 localStorage.setItem("ds-cart", JSON.stringify({ 16066 cart: { 16067 items: cartData.items 16068 } 16069 })); 16070 16071 window.dispatchEvent(new Event("shoppingCartContextSet")); 16072 } 16073 } 16074 } 16075 16076 window.addEventListener('alpine:init', () => Alpine.data('dataServicesShoppingCartContextData', dataServicesShoppingCartContextData), {once: true}); 16077</script>
16077 16078 16079<div x-data="dataServicesShoppingCartContextData" 16080 @private-content-loaded.window="initContext"></div> 16081<div data-role="aw-raf-friend-invited" data-bind="scope: 'friendInvited'"> 16082 16083</div>
16084<script type="text/x-magento-init"> 16085 { 16086 "[data-role=aw-raf-friend-invited]": { 16087 "Magento_Ui/js/core/app": { 16088 "components":{ 16089 "friendInvited":{ 16090 "component":"Aheadworks_Raf/js/view/friend/invited", 16091 "isSetPopupContent": false } 16092 } 16093 } 16094 } 16095 } 16096</script>
16096 16097
16098<script> 16099 const AmFinderNotification = function () { 16100 return { 16101 initialize() { 16102 const hasFinderParams = /find=/.test(window.location.href); 16103 const hasFinderBlocks = document.querySelector('input[type=hidden][name=finder_id]'); 16104 16105 if (hasFinderParams && !hasFinderBlocks) { 16106 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 16107 [{ 16108 type: "error", 16109 text: `Finder block should be present on the page for filtering to work. Please add finder block on this page. Check <a href="https://amasty.com/docs/doku.php?id=magento_2:product_parts_finder#how_to_add_finder_block_to_a_category">User Guide</a> for instructions.` 16110 }], 10000 16111 ); 16112 } 16113 } 16114 } 16115 } 16116</script>
16116 16117 16118
16119<script> 16120 let SnapSlider = class { 16121 constructor(el, { 16122 labelSepparator = 'von', 16123 autoPager, 16124 groupPager, 16125 loop 16126 } = {}) { 16127 this.el = el; 16128 this.track = this.el.querySelector("[data-track]"); 16129 if (!this.track) { 16130 console.warn( 16131 "No Slider track defined, reverting back to CSS slider.\nPlease create a wrapper for your slides with the attribute data-track", 16132 this.el 16133 ); 16134 return; 16135 } 16136 this.initialLoad = true; 16137 this.slides = []; 16138 this.inViewObserver; 16139 this.mutationObserver; 16140 this.resizeObserver; 16141 this.pager = this.el.querySelector("[data-pager]"); 16142 this.navBtns = Array.from( 16143 this.el.querySelectorAll("[data-next], [data-prev]") 16144 ); 16145 this.slideLabelSepparator = this.el.dataset.slideLabelSepparator || labelSepparator; 16146 this.useAutoPager = autoPager || this.el.hasAttribute("data-auto-pager") || false; 16147 this.useGroupPager = groupPager || this.el.hasAttribute("data-group-pager") || false; 16148 this.useLoop = loop || this.el.hasAttribute("data-loop") || false; 16149 this.sliderLabel = this.el.hasAttribute("aria-label") && this.el.getAttribute("aria-label").toLowerCase().trim().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, ""); 16150 this.sliderId = this.el.id || this.sliderLabel || "slider"; 16151 this.markerIdName = "data-target-id"; 16152 this.pagerClasses = this.el.dataset.pagerClass || "snap-pager"; 16153 this.markerClasses = this.el.dataset.markerClass || "snap-marker"; 16154 this.init(); 16155 } 16156 init() { 16157 this.setupSlides(); 16158 this.setupNav(); 16159 if (this.useAutoPager) { 16160 this.createPager(); 16161 } else { 16162 this.setupPager(); 16163 } 16164 this.setupObservers(); 16165 this.setupMutationObserver(); 16166 this.setupResizeObserver(); 16167 this.el.addEventListener("click", this.eventHandler.bind(this)); 16168 this.el.addEventListener("keydown", this.eventHandler.bind(this)); 16169 if ("onscrollend" in window) { 16170 this.track.addEventListener("scrollend", () => { 16171 this.isNavigating = false; 16172 }); 16173 } else { 16174 this.track.addEventListener("scroll", () => { 16175 clearTimeout(this.scrollEndTimer); 16176 this.scrollEndTimer = setTimeout(() => { 16177 this.isNavigating = false; 16178 }, 100); 16179 }); 16180 } 16181 } 16182 destroy() { 16183 this.inViewObserver?.disconnect(); 16184 this.mutationObserver?.disconnect(); 16185 this.resizeObserver?.disconnect(); 16186 this.el.removeEventListener("click", this.eventHandler.bind(this)); 16187 this.el.removeEventListener("keydown", this.eventHandler.bind(this)); 16188 } 16189 roundUpIfGreaterThan(number, min = 8) { 16190 const decimalPart = number - Math.floor(number); 16191 return decimalPart >= min ? Math.ceil(number) : Math.floor(number); 16192 } 16193 getInViewItems() { 16194 const inViewSlides = Array.from(this.track.querySelectorAll("[data-in-view]")).filter((el) => this.slides.includes(el)); 16195 const firstInViewSlide = inViewSlides[0] || null; 16196 const lastInViewSlide = inViewSlides[inViewSlides.length - 1] || null; 16197 const isAtStart = firstInViewSlide === this.slides[0]; 16198 const isAtEnd = lastInViewSlide === this.slides[this.slides.length - 1]; 16199 return { 16200 inViewSlides, 16201 totalInViewSlides: inViewSlides.length, 16202 firstInViewSlide, 16203 lastInViewSlide, 16204 isAtStart, 16205 isAtEnd, 16206 hasNoOverflow: isAtStart && isAtEnd 16207 }; 16208 } 16209 groupPagerMarkers() { 16210 if (this.slides.length === 0 || !this.pager || !this.useGroupPager) return; 16211 const totalVisibleSlides = this.roundUpIfGreaterThan( 16212 this.track.offsetWidth / this.slides[0].offsetWidth 16213 ); 16214 const markers = Array.from(this.pager.querySelectorAll("a, button"));
16215 markers.forEach((marker, index) => { 16216 marker.style.display = index % totalVisibleSlides === 0 ? null : "none"; 16217 }); 16218 } 16219 handleInView(entries) { 16220 entries.forEach((entry) => { 16221 const marker = this.pager && (this.pager.querySelector(`[href="#${entry.target.id}"]`) || this.pager.querySelector( 16222 `[${this.markerIdName}="${entry.target.id}"]` 16223 )); 16224 entry.target.toggleAttribute("data-in-view", entry.isIntersecting); 16225 entry.target.toggleAttribute("inert", !entry.isIntersecting); 16226 marker?.setAttribute("aria-current", entry.isIntersecting); 16227 marker?.setAttribute("tabindex", entry.isIntersecting ? "0" : "-1"); 16228 }); 16229 const { isAtStart, isAtEnd, hasNoOverflow } = this.getInViewItems(); 16230 this.navBtns.forEach((btn) => { 16231 if (btn.hasAttribute("data-next")) { 16232 btn.style.visibility = hasNoOverflow ? "hidden" : null; 16233 isAtEnd && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 16234 } 16235 if (btn.hasAttribute("data-prev")) { 16236 btn.style.visibility = hasNoOverflow ? "hidden" : null; 16237 isAtStart && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 16238 } 16239 }); 16240 if (this.pager) { 16241 this.pager.style.visibility = hasNoOverflow ? "hidden" : null; 16242 this.pager.toggleAttribute("inert", hasNoOverflow); 16243 } 16244 if (!this.initialLoad) { 16245 this.el.dispatchEvent( 16246 new CustomEvent("slideChange", { 16247 detail: this.getInViewItems() 16248 }) 16249 ); 16250 } else { 16251 this.initialLoad = false; 16252 } 16253 if (document.activeElement.parentElement.hasAttribute("data-pager")) { 16254 const activeItems = this.pager.querySelectorAll('[tabindex="0"]'); 16255 if (activeItems.length) { 16256 activeItems[0].focus({ preventScroll: true }); 16257 } 16258 } 16259 } 16260 getSlides() { 16261 if (!this.track) return []; 16262 return Array.from(this.track.children).filter( 16263 (child) => child.tagName.toLowerCase() !== "template" && child.tagName.toLowerCase() !== "style" && child.tagName.toLowerCase() !== "script" && child.style.display !== "none" 16264 ); 16265 } 16266 refreshSlides() { 16267 this.initialLoad = true; 16268 this.slides = this.getSlides(); 16269 this.setupSlides(); 16270 if (this.useAutoPager) { 16271 this.createPager(); 16272 } else { 16273 this.setupPager(); 16274 } 16275 this.groupPagerMarkers(); 16276 this.setupObservers(); 16277 } 16278 setupSlides() { 16279 this.slides = this.getSlides(); 16280 this.slides.forEach((slide, index) => { 16281 const totalSlides = this.slides.length; 16282 const currentSlide = index + 1; 16283 const existingLabel = slide.getAttribute("aria-label") || ""; 16284 const isImage = slide.tagName.toLowerCase() === "img" || slide.tagName.toLowerCase() === "picture"; 16285 const slideLabelTag = isImage ? "alt" : "aria-label"; 16286 const hasAutoLabel = existingLabel.startsWith( 16287 `${currentSlide} ${this.slideLabelSepparator} ` 16288 ); 16289 if (!slide.hasAttribute("id")) { 16290 slide.setAttribute( 16291 "id", 16292 `${this.sliderId}-item-${currentSlide}` 16293 ); 16294 } 16295 if (!slide.hasAttribute(slideLabelTag) || slide.getAttribute(slideLabelTag) === "" || hasAutoLabel) { 16296 slide.setAttribute( 16297 slideLabelTag, 16298 `${currentSlide} ${this.slideLabelSepparator} ${totalSlides}` 16299 ); 16300 } 16301 if (slide.tagName.toLowerCase() === "div" && !slide.hasAttribute("role")) { 16302 slide.setAttribute("role", "group"); 16303 } 16304 if (this.pager && !isImage) { 16305 slide.setAttribute("role", "tabpanel"); 16306 } 16307 if (slide.getAttribute("role") === "group") { 16308 slide.setAttribute("aria-roledescription", "item"); 16309 } 16310 }); 16311 if (!this.el.hasAttribute("role") && this.el.tagName !== "SECTION") { 16312 this.el.setAttribute("role", "region"); 16313 } 16314 if (!this.el.hasAttribute("aria-roledescription")) { 16315 this.el.setAttribute("aria-roledescription", "carousel"); 16316 } 16317 if (!this.track.hasAttribute("tabindex")) { 16318 this.track.setAttribute("tabindex", 0); 16319 } 16320 this.track.setAttribute("aria-live", "polite"); 16321 } 16322 setupNav() { 16323 this.navBtns.forEach((btn) => { 16324 btn.setAttribute("disabled", ""); 16325 btn.removeAttribute("hidden"); 16326 btn.classList.remove("invisible"); 16327 btn.style.visibility = null; 16328 }); 16329 } 16330 createPager() { 16331 const newPager = document.createElement("nav"); 16332 newPager.setAttribute("data-pager", ""); 16333 newPager.setAttribute("role", "tablist"); 16334 newPager.classList.add(...this.pagerClasses.split(" "));
16335 this.slides.forEach((slide, index) => { 16336 const marker = document.createElement("button"); 16337 const slideId = slide.id || `${this.sliderId}-item-${index + 1}`; 16338 marker.setAttribute(this.markerIdName, slideId); 16339 marker.classList.add(...this.markerClasses.split(" ")); 16340 this.setupPagerMarker(marker, index); 16341 newPager.appendChild(marker); 16342 if (slide.tagName.toLowerCase() !== "img" && slide.tagName.toLowerCase() !== "picture") { 16343 slide.removeAttribute("aria-roledescription"); 16344 slide.setAttribute("role", "tabpanel"); 16345 } 16346 }); 16347 if (this.pager) { 16348 this.pager.setAttribute("role", "tablist"); 16349 this.pager.replaceChildren(...newPager.children); 16350 } else { 16351 this.track.after(newPager); 16352 this.pager = this.el.querySelector("[data-pager]"); 16353 } 16354 } 16355 setupPager() { 16356 if (!this.pager) return; 16357 this.pager.setAttribute("role", "tablist"); 16358 const items = Array.from(this.pager.querySelectorAll("a, button")); 16359 items.forEach((marker, index) => this.setupPagerMarker(marker, index)); 16360 } 16361 setupPagerMarker(marker, index) { 16362 const markerId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 16363 const slideId = markerId || `${this.sliderId}-item-${index + 1}`; 16364 if (!markerId) { 16365 marker.setAttribute(this.markerIdName, slideId); 16366 } 16367 marker.setAttribute("role", "tab"); 16368 marker.setAttribute("aria-controls", slideId); 16369 marker.setAttribute("aria-posinset", index + 1); 16370 marker.setAttribute("aria-setsize", this.slides.length); 16371 marker.setAttribute("tabindex", "-1"); 16372 if (!marker.hasAttribute("aria-label")) { 16373 marker.setAttribute("aria-label", `Slide ${index + 1}`); 16374 } 16375 } 16376 setupObservers() { 16377 if (this.inViewObserver) { 16378 this.inViewObserver.disconnect(); 16379 } 16380 this.inViewObserver = new IntersectionObserver( 16381 this.handleInView.bind(this), { 16382 root: this.track, 16383 threshold: 0.8 16384 } 16385 ); 16386 this.slides.forEach((slide) => this.inViewObserver.observe(slide)); 16387 } 16388 setupMutationObserver() { 16389 this.mutationObserver = new MutationObserver((mutations) => { 16390 if (mutations.some((m) => m.type === "childList" || m.target.parentElement === this.track)) { 16391 this.refreshSlides(); 16392 } 16393 }); 16394 this.mutationObserver.observe(this.track, { 16395 childList: true, 16396 subtree: true, 16397 attributeFilter: ["style"] 16398 }); 16399 } 16400 setupResizeObserver() { 16401 this.resizeObserver = new ResizeObserver( 16402 this.groupPagerMarkers.bind(this) 16403 ); 16404 this.resizeObserver.observe(this.el); 16405 } 16406 goToSlideDir(dir = "next") { 16407 if (this.isNavigating) return; 16408 const { firstInViewSlide, lastInViewSlide } = this.getInViewItems(); 16409 const isPrev = dir === "prev"; 16410 const referenceSlide = isPrev ? firstInViewSlide : lastInViewSlide; 16411 const currentIndex = this.slides.indexOf(referenceSlide); 16412 let targetIndex = isPrev ? currentIndex - 1 : currentIndex + 1; 16413 if (targetIndex < 0 || targetIndex >= this.slides.length) { 16414 if (!this.useLoop) return; 16415 targetIndex = isPrev ? this.slides.length - 1 : 0; 16416 } 16417 const targetSlide = this.slides[targetIndex]; 16418 if (!targetSlide) return; 16419 this.isNavigating = true; 16420 targetSlide.scrollIntoView({ 16421 block: "nearest", 16422 inline: isPrev ? "end" : "start" 16423 }); 16424 } 16425 pagerToSlide(event) { 16426 if (!event.target.closest("[data-pager]")) return; 16427 const marker = event.target.closest("a, button"); 16428 if (!marker) return; 16429 event.preventDefault(); 16430 const slideId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 16431 const targetSlide = this.track.querySelector(`#${slideId}`);
16432 targetSlide?.scrollIntoView({ block: "nearest", inline: "start" }); 16433 } 16434 eventHandler(event) { 16435 const target = event.target.closest( 16436 "[data-next], [data-prev], [data-pager]" 16437 ); 16438 if (!target) return; 16439 if (event.type === "click") { 16440 if (target.hasAttribute("data-next")) { 16441 this.goToSlideDir("next"); 16442 } else if (target.hasAttribute("data-prev")) { 16443 this.goToSlideDir("prev"); 16444 } else if (target.closest("[data-pager]")) { 16445 this.pagerToSlide(event); 16446 } 16447 } 16448 if (event.type === "keydown" && target.closest("[data-pager]")) { 16449 if (event.key === "ArrowRight" || event.key === "ArrowDown") { 16450 event.preventDefault(); 16451 this.goToSlideDir("next"); 16452 } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") { 16453 event.preventDefault(); 16454 this.goToSlideDir("prev"); 16455 } 16456 } 16457 } 16458 }; 16459 16460 (() => { 16461 function alpineSnapSlider(Alpine) { 16462 Alpine.directive("snap-slider", (el, { 16463 modifiers 16464 }, { 16465 cleanup 16466 }) => { 16467 const slider = new SnapSlider(el, { 16468 autoPager: modifiers.includes("auto-pager"), 16469 groupPager: modifiers.includes("group-pager"), 16470 loop: modifiers.includes("loop") 16471 }); 16472 cleanup(() => { 16473 slider.destroy(); 16474 }); 16475 }); 16476 } 16477 16478 document.addEventListener("alpine:init", () => { 16479 window.Alpine.plugin(alpineSnapSlider); 16480 }); 16481 })(); 16482 //# sourceURL=alpine-snap-slider.js 16483</script>
vendor: 1 bytes, line 16483
16483
16484<script> 16485 (() => { 16486 // src/dialog.js 16487 function dialog_default(Alpine) { 16488 Alpine.directive("htmldialog", fylgjaAlpineDialog); 16489 function fylgjaAlpineDialog(el, { expression, modifiers }, { evaluateLater, cleanup }) { 16490 const evaluate = expression.length ? evaluateLater(expression) : () => {}; 16491 const lockPageScroll = modifiers.includes("noscroll"); 16492 const isModeless = modifiers.includes("modeless"); 16493 const closeBy = el.getAttribute("closeby") || modifierValue(modifiers, "closeby", "closerequest"); 16494 el.style.display = null; 16495 el.style.length === 0 && el.removeAttribute("style"); 16496 if (el._x_isShown) { 16497 open(); 16498 } 16499 const closeBySupported = (() => { 16500 return "closedBy" in HTMLDialogElement.prototype; 16501 })(); 16502 function scrollLock(use = true) { 16503 document.body.style.overflow = use ? "hidden" : ""; 16504 } 16505 function dialogSubmit(event) { 16506 if (event.target.getAttribute("method") === "dialog" || event.submitter?.getAttribute("formmethod") === "dialog") { 16507 event.preventDefault(); 16508 evaluate(); 16509 } 16510 } 16511 function escapeDialog(event) { 16512 if (event.key !== "Escape") return; 16513 event.preventDefault(); 16514 if (closeBy === "none") return; 16515 evaluate(); 16516 } 16517 function handleCloseByEvent(event) { 16518 if (event.target !== el) return; 16519 const rect = el.getBoundingClientRect(); 16520 const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width; 16521 if (!isInDialog) { 16522 if (closeBy === "any") { 16523 if (closeBySupported) { 16524 event.preventDefault(); 16525 } 16526 evaluate(); 16527 } 16528 } 16529 } 16530 function handleCloseEvent() { 16531 evaluate(); 16532 } 16533 function open() { 16534 if (el.hasAttribute("open")) return; 16535 isModeless ? el.show() : el.showModal(); 16536 scrollLock(lockPageScroll); 16537 } 16538 function close() { 16539 if (!el.hasAttribute("open")) return; 16540 el.close(); 16541 scrollLock(false); 16542 } 16543 el._x_doShow = () => open(); 16544 el._x_doHide = () => close(); 16545 el.addEventListener("keydown", escapeDialog); 16546 el.addEventListener("submit", dialogSubmit); 16547 el.addEventListener("click", handleCloseByEvent); 16548 el.addEventListener("cancel", handleCloseEvent); 16549 cleanup(() => { 16550 el.removeEventListener("keydown", escapeDialog); 16551 el.removeEventListener("submit", dialogSubmit); 16552 el.removeEventListener("click", handleCloseByEvent); 16553 el.removeEventListener("cancel", handleCloseEvent); 16554 scrollLock(false); 16555 }); 16556 } 16557 } 16558 function modifierValue(modifiers, key, fallback) { 16559 if (modifiers.indexOf(key) === -1) return fallback; 16560 const rawValue = modifiers[modifiers.indexOf(key) + 1]; 16561 if (!rawValue) return fallback; 16562 if (key === "closeby") { 16563 const allowedValues = ["auto", "none", "closerequest", "any"]; 16564 const options = allowedValues.join(", "); 16565 if (!allowedValues.includes(rawValue)) { 16566 console.warn( 16567 `"${rawValue}" is not one of the allowed values for closeby: ${options}` 16568 ); 16569 return fallback; 16570 } 16571 } 16572 return rawValue; 16573 } 16574 16575 // src/cdn.js 16576 document.addEventListener("alpine:init", () => { 16577 window.Alpine.plugin(dialog_default); 16578 }); 16579 })(); 16580 //# sourceURL=alpine-htmldialog.js 16581</script>
vendor: 1 bytes, line 16581
16581
16582<script> 16583 (() => { 16584 function src_default(Alpine) { 16585 Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { 16586 let evaluate = evaluateLater(expression); 16587 let options = { 16588 rootMargin: getRootMargin(modifiers), 16589 threshold: getThreshold(modifiers) 16590 }; 16591 let observer = new IntersectionObserver((entries) => { 16592 entries.forEach((entry) => { 16593 if (entry.isIntersecting === (value === "leave")) 16594 return; 16595 evaluate(); 16596 modifiers.includes("once") && observer.disconnect(); 16597 }); 16598 }, options); 16599 observer.observe(el); 16600 cleanup(() => { 16601 observer.disconnect(); 16602 }); 16603 })); 16604 } 16605 function getThreshold(modifiers) { 16606 if (modifiers.includes("full")) 16607 return 0.99; 16608 if (modifiers.includes("half")) 16609 return 0.5; 16610 if (!modifiers.includes("threshold")) 16611 return 0; 16612 let threshold = modifiers[modifiers.indexOf("threshold") + 1]; 16613 if (threshold === "100") 16614 return 1; 16615 if (threshold === "0") 16616 return 0; 16617 return Number(`.${threshold}`); 16618 } 16619 function getLengthValue(rawValue) { 16620 let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); 16621 return match ? match[1] + (match[2] || "px") : void 0; 16622 } 16623 function getRootMargin(modifiers) { 16624 const key = "margin"; 16625 const fallback = "0px 0px 0px 0px"; 16626 const index = modifiers.indexOf(key); 16627 if (index === -1) 16628 return fallback; 16629 let values = []; 16630 for (let i = 1; i < 5; i++) { 16631 values.push(getLengthValue(modifiers[index + i] || "")); 16632 } 16633 values = values.filter((v) => v !== void 0); 16634 return values.length ? values.join(" ").trim() : fallback; 16635 } 16636 16637 document.addEventListener("alpine:init", () => { 16638 window.Alpine.plugin(src_default); 16639 }); 16640 })(); 16641 //# sourceURL=alpine-intersect.js 16642</script>
16642 16643
16644<script> 16645 for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]:not([x-data] [x-data])":"intersect",".product-info [x-data]:not([x-data] [x-data])":"intersect","#filters-content [x-data]:not([x-data] [x-data])":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]:not([x-data] [x-data])":"intersect","#notice-cookie-block":"idle"})) { 16646 document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`)); 16647 } 16648 //# sourceURL=alpine-defer-rules.js 16649</script>
vendor: 1 bytes, line 16649
16649
16650<script> 16651 (() => { 16652 const hasAlpine = new Promise(resolve => { 16653 window.addEventListener('alpine:initialized', resolve, {once: true, passive: true}); 16654 }); 16655 16656 const hasInteract = new Promise(resolve => { 16657 (events => { 16658 const onInteract = () => { 16659 resolve(); 16660 events.forEach(type => window.removeEventListener(type, onInteract)); 16661 } 16662 events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true})) 16663 })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) 16664 }); 16665 16666 const onIntersect = (el) => { 16667 return new Promise(resolve => { 16668 const observer = new IntersectionObserver(entries => { 16669 for (const entry of entries) { 16670 if (entry.isIntersecting) { 16671 observer.disconnect() 16672 resolve(); 16673 } 16674 } 16675 }, {}); 16676 observer.observe(el); 16677 }); 16678 } 16679 16680 function runComponent(el) { 16681 hasAlpine.then(() => { 16682 el.removeAttribute('x-ignore'); 16683 queueMicrotask(() => Alpine.initTree(el)); 16684 }); 16685 } 16686 16687 function initDeferredComponents() { 16688 document.querySelectorAll('[x-data][x-defer]').forEach(el => { 16689 el.setAttribute('x-ignore', ''); 16690 const deferUntil = (el.getAttribute('x-defer') || '').trim(); 16691 switch (deferUntil) { 16692 case 'interact': 16693 hasInteract.then(() => runComponent(el)); 16694 break; 16695 case 'intersect': 16696 onIntersect(el).then(() => runComponent(el)) 16697 break; 16698 case 'idle': 16699 window.requestIdleCallback 16700 ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000}) 16701 : setTimeout(() => runComponent(el), 4000); 16702 break; 16703 case 'eager': 16704 runComponent(el); 16705 break; 16706 default: 16707 if (deferUntil.startsWith('event:') && deferUntil.length > 6) { 16708 window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true}); 16709 } 16710 } 16711 }); 16712 } 16713 16714 window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true}); 16715 })(); 16716 //# sourceURL=alpine-defer.js 16717</script>
16717 16718
16719<script> 16720// x-teleport implementation 16721(_ => { 16722 document.addEventListener('DOMContentLoaded', event => { 16723 // x-teleport available only for template 16724 if (!Alpine.version.startsWith('2')) { 16725 return; 16726 } 16727 16728 const teleportDirective = (el, expression) => { 16729 let target = document.querySelector(expression) 16730 let clone = el.content.cloneNode(true).firstElementChild; 16731 16732 target.appendChild(clone); 16733 setTimeout(() => { 16734 target.querySelectorAll('[x-data]') 16735 .forEach(el => Alpine.initializeComponent(el)); 16736 }, 0) 16737 }; 16738 16739 document.querySelectorAll('template').forEach(el => { 16740 if (!el.hasAttribute('x-teleport')) { 16741 return; 16742 } 16743 16744 teleportDirective(el, el.getAttribute('x-teleport')); 16745 }); 16746 16747 document.querySelectorAll('[x-data]').forEach(el => { 16748 if (el.hasAttribute('x-init')) { 16749 return; 16750 } 16751 16752 setTimeout(() => { 16753 Alpine.initializeComponent(el); 16754 }, 0); 16755 }); 16756 }); 16757})() 16758</script>
16758 16759
16760<script type="module" 16761 src="https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Hyva_Theme/js/alpine3.min.js" 16762 defer 16763 crossorigin 16764></script>
vendor: 1 bytes, line 16764
16764
16765<script> 16766 function dispatchMessages(messages, hideAfter) { 16767 const messagesEvent = new CustomEvent("messages-loaded", { 16768 detail: { 16769 messages: messages, 16770 hideAfter: hideAfter 16771 } 16772 }); 16773 window.dispatchEvent(messagesEvent); 16774 } 16775 16776 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 16777 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 16778 } 16779 16780 (function( hyva, undefined ) { 16781 16782 hyva.initFormKey = () => { 16783 if (typeof hyva.getFormKey !== 'function') return; 16784 16785 const formKey = hyva.getFormKey(); 16786 if (!formKey) return; 16787 16788 document.querySelectorAll('input[name="form_key"]').forEach((input) => { 16789 input.value = formKey; 16790 }); 16791 } 16792 16793 hyva.initMessages = () => { 16794 try { 16795 const messages = hyva.getCookie('mage-messages'); 16796 window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; 16797 16798 dispatchMessages(window.mageMessages); 16799 16800 // empty `mage-messages` cookie 16801 const skipSetDomain = true; 16802 hyva.setCookie('mage-messages','', -1, skipSetDomain); 16803 16804 } catch (error) { 16805 console.warn('Error parsing Cookie Messages:', error); 16806 } 16807 } 16808 16809 window.addEventListener('DOMContentLoaded', hyva.initFormKey); 16810 16811 window.addEventListener('pageshow', (event) => { 16812 if (event.persisted) { 16813 hyva.initFormKey(); 16814 } 16815 }); 16816 16817 hyva.alpineInitialized(hyva.initMessages) 16818 }( window.hyva = window.hyva || {} )); 16819 //# sourceURL=hyva-cookies.js 16820</script>
vendor: 1 bytes, line 16820
16820
16821<script> 16822 (() => { 16823 const private_content_key = 'mage-cache-storage'; 16824 const private_content_expire_key = 'mage-cache-timeout'; 16825 const private_content_version_key = 'private_content_version'; 16826 const section_data_ids_key = 'section_data_ids'; 16827 const mage_cache_session_id_key = 'mage-cache-sessid'; 16828 const last_visited_store_key = 'last_visited_store'; 16829 16830 const ttl = 3600; 16831 16832 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 16833 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 16834 } 16835 16836 function loadSectionData () { 16837 const browserStorage = hyva.getBrowserStorage(); 16838 if (!browserStorage) { 16839 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 16840 [{ 16841 type: "warning", 16842 text: "Please enable LocalStorage in your browser." 16843 }] 16844 ); 16845 return; 16846 } 16847 try { 16848 let isInvalid = false; 16849 16850 if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { 16851 isInvalid = true; 16852 } 16853 hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); 16854 16855 if (!hyva.getCookie(mage_cache_session_id_key)) { 16856 isInvalid = true; 16857 browserStorage.removeItem(private_content_key); 16858 const skipSetDomain = true; 16859 const days = false; 16860 hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) 16861 } 16862 16863 const cookieVersion = hyva.getCookie(private_content_version_key); 16864 const storageVersion = browserStorage.getItem(private_content_version_key); 16865 16866 if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { 16867 isInvalid = true; 16868 } 16869 16870 const privateContentExpires = browserStorage.getItem(private_content_expire_key); 16871 if (privateContentExpires && new Date(privateContentExpires) < new Date()) { 16872 browserStorage.removeItem(private_content_key); 16873 } 16874 16875 if (isInvalid && cookieVersion) { 16876 fetchPrivateContent([]); 16877 } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { 16878 const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); 16879 if ( 16880 privateContent && 16881 privateContentExpires && 16882 privateContent.cart && 16883 privateContent.customer 16884 ) { 16885 dispatchPrivateContent(privateContent); 16886 } else { 16887 fetchPrivateContent([]); 16888 } 16889 } else { 16890 if (document.getElementById('default-section-data')) { 16891 const privateContent = JSON.parse(document.getElementById('default-section-data').textContent.trim()); 16892 dispatchPrivateContent(privateContent); 16893 } else { 16894 dispatchPrivateContent({}); 16895 } 16896 } 16897 16898 } catch (error) { 16899 console.warn('Error retrieving Private Content:', error); 16900 } 16901 } 16902 16903 hyva.alpineInitialized(loadSectionData) 16904 window.addEventListener('reload-customer-section-data', loadSectionData); 16905 16906 window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data); 16907 16908 function dispatchPrivateContent(data) { 16909 16910 const privateContentEvent = new CustomEvent("private-content-loaded", { 16911 detail: { 16912 data: window.processSectionDataBeforeDispatch(data) 16913 } 16914 }); 16915 window.dispatchEvent(privateContentEvent); 16916 } 16917 16918 function fetchPrivateContent(sections) { 16919 fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { 16920 method: 'GET', 16921 headers: { 16922 'Content-Type': 'application/json', 16923 'X-Requested-With': 'XMLHttpRequest' 16924 } 16925 }) 16926 .then(response => response.ok && response.json()) 16927 .then( 16928 data => { 16929 if (data) { 16930 try { 16931 const browserStorage = hyva.getBrowserStorage(); 16932 16933 // merge new data preserving non-invalidated sections 16934 const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; 16935 16936 if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { 16937 delete oldSectionData['checkout-data']; 16938 } 16939 const newSectionData = Object.assign(oldSectionData, data); 16940 16941 dispatchPrivateContent(newSectionData); 16942 16943 // don't persist messages, they've been dispatched already 16944 if (newSectionData.messages && newSectionData.messages.messages ) { 16945 newSectionData.messages.messages = []; 16946 } 16947 16948 browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); 16949 16950 const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); 16951 browserStorage.setItem(private_content_expire_key, expiresAt); 16952 16953 const newCookieVersion = hyva.getCookie(private_content_version_key); 16954 browserStorage.setItem(private_content_version_key, newCookieVersion); 16955 16956 // We don't need the section_data_ids in Hyvä, but we store them for compatibility 16957 // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout 16958 hyva.setCookie( 16959 section_data_ids_key, 16960 JSON.stringify( 16961 Object.keys(data).reduce((sectionDataIds, sectionKey) => { 16962 sectionDataIds[sectionKey] = data[sectionKey]['data_id']; 16963 return sectionDataIds; 16964 }, {}) 16965 ), 16966 false, 16967 true 16968 ); 16969 } catch (error) { 16970 console.warn("Couldn't store privateContent", error); 16971 } 16972 } 16973 } 16974 ) 16975 .catch(error => { 16976 console.warn("Couldn't fetch privateContent", error); 16977 }); 16978 } 16979 })(); 16980 //# sourceURL=hyva-private-content.js 16981</script>
vendor: 1 bytes, line 16981
16981
16982<script> 16983 (() => { 16984 document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); 16985 })() 16986</script>
vendor: 1 bytes, line 16986
16986
16987<script> 16988 (events => { 16989 const dispatchUserInteractionEvent = () => { 16990 events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) 16991 window.dispatchEvent(new Event('init-external-scripts')) 16992 }; 16993 events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) 16994 })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown']); 16995 //# sourceURL=hyva-init-external-scripts.js 16996</script>
vendor: 1 bytes, line 16996
16996
16997<script> 16998 function initWishlist() { 16999 return { 17000 addToWishlist(productId) { 17001 const formKey = hyva.getFormKey(); 17002 const postUrl = BASE_URL + 'wishlist/index/add/'; 17003 17004 fetch(postUrl, { 17005 "headers": { 17006 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 17007 }, 17008 "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(), 17009 "method": "POST", 17010 "mode": "cors", 17011 "credentials": "include" 17012 }).then(function (response) { 17013 if (response.redirected) { 17014 window.location.href = response.url; 17015 } else if (response.ok) { 17016 return response.json(); 17017 } else { 17018 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 17019 [{ 17020 type: "warning", 17021 text: "Artikel\u0020konnte\u0020nicht\u0020zur\u0020Wunschliste\u0020hinzugef\u00FCgt\u0020werden." 17022 }], 5000 17023 ); 17024 } 17025 }).then(function (response) { 17026 if (!response) { return } 17027 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 17028 [{ 17029 type: (response.success) ? "success" : "error", 17030 text: (response.success) 17031 ? "Produkt\u0020wurde\u0020zu\u0020Ihrer\u0020Wunschliste\u0020hinzugef\u00FCgt." 17032 : response.error_message 17033 }], 5000 17034 ); 17035 const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); 17036 window.dispatchEvent(reloadCustomerDataEvent); 17037 }).catch(function (error) { 17038 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 17039 [{ 17040 type: "error", 17041 text: error 17042 }], 5000 17043 ); 17044 }); 17045 } 17046 } 17047 } 17048</script>
vendor: 1 bytes, line 17048
17048
17049<script> 17050 'use strict'; 17051 17052 (() => { 17053 const initCarousels = (elements) => { 17054 if (!Glider) { 17055 return; 17056 } 17057 17058 const initProductCarousel = (carousel) => { 17059 const gliderElement = carousel.querySelector('[data-role="glider-content"]'); 17060 17061 if (!gliderElement) { 17062 return; 17063 } 17064 17065 const gliderDots = carousel.querySelector('.glider-dots'); 17066 const gliderPrev = carousel.querySelector('.glider-prev'); 17067 const gliderNext = carousel.querySelector('.glider-next'); 17068 17069 if (!carousel.classList.contains('glider-initialized')) { 17070 const glider = new Glider(gliderElement, { 17071 slidesToShow: 1.1, 17072 slidesToScroll: 1, 17073 scrollLock: true, 17074 draggable: true, 17075 dragVelocity: 2.5, 17076 dots: gliderDots, 17077 arrows: { 17078 prev: gliderPrev, 17079 next: gliderNext, 17080 }, 17081 responsive: [ 17082 { 17083 breakpoint: 640, 17084 settings: { 17085 slidesToShow: 2.5, 17086 slidesToScroll: 1, 17087 scrollLock: false 17088 } 17089 }, 17090 { 17091 breakpoint: 1024, 17092 settings: { 17093 slidesToShow: 4, 17094 slidesToScroll: 1, 17095 scrollLock: false 17096 } 17097 }, 17098 { 17099 breakpoint: 1440, 17100 settings: { 17101 slidesToShow: 5, 17102 slidesToScroll: 1, 17103 scrollLock: false 17104 } 17105 }, 17106 ], 17107 }); 17108 17109 carousel.classList.remove('overflow-x-scroll'); 17110 carousel.classList.add('glider-initialized'); 17111 gliderPrev.classList.remove('hidden'); 17112 gliderNext.classList.remove('hidden'); 17113 17114 if (carousel.dataset.autoplay !== 'false') { 17115 gliderAutoplay( 17116 glider, 17117 carousel.dataset.autoplaySpeed, 17118 carousel.dataset.infiniteLoop 17119 ); 17120 } 17121 } 17122 }; 17123 17124 const initSliderCarousel = (slider) => { 17125 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 17126 slider.classList.add('glider-contain'); 17127 const isDottedBackground = (slider.dataset.appearance === 'dotted_background'); 17128 17129 slider.insertAdjacentHTML( 17130 'beforeend', 17131 '\u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dbetween\u0020flex\u002D1\u0020gap\u002D12\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Zur\u00FCck\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020flex\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020w\u002D8\u0020h\u002D8\u0020bg\u002Dblack\u0020text\u002Dwhite\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0020rotate\u002D180\u0020md\u003Aabsolute\u0020md\u003Aleft\u002D0\u0020md\u003Aw\u002D9\u0020md\u003Ah\u002D9\u0020md\u003A\u002Dtranslate\u002Dy\u002D1\u002F2\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020width\u003D\u002210\u0022\u0020height\u003D\u002210\u0022\u0020viewBox\u003D\u00220\u00200\u002025\u002024\u0022\u0020fill\u003D\u0022none\u0022\u0020class\u003D\u0022w\u002D2.5\u0020h\u002D2.5\u0022\u0020role\u
17131003D\u0022img\u0022\u003E\u000A\u003Cpath\u0020d\u003D\u0022M9.30005\u00200.75L20.02\u002011.47C20.0897\u002011.5396\u002020.145\u002011.6222\u002020.1827\u002011.7131C20.2204\u002011.8041\u002020.2398\u002011.9016\u002020.2398\u002012C20.2398\u002012.0984\u002020.2204\u002012.1959\u002020.1827\u002012.2869C20.145\u002012.3778\u002020.0897\u002012.4604\u002020.02\u002012.53L9.30005\u002023.25\u0022\u0020stroke\u003D\u0022\u0023ffffff\u0022\u0020stroke\u002Dwidth\u003D\u00221.5\u0022\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u002F\u003E\u000A\u003Ctitle\u003Enext\u002Dwhite\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022tablist\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D1\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Weiter\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020flex\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020w\u002D8\u0020h\u002D8\u0020bg\u002Dblack\u0020text\u002Dwhite\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0020md\u003Aabsolute\u0020md\u003Aright\u002D0\u0020md\u003Aw\u002D9\u0020md\u003Ah\u002D9\u0020md\u003A\u002Dtranslate\u002Dy\u002D1\u002F2\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020width\u003D\u002210\u0022\u0020height\u003D\u002210\u0022\u0020viewBox\u003D\u00220\u00200\u002025\u002024\u0022\u0020fill\u003D\u0022none\u0022\u0020class\u003D\u0022w\u002D2.5\u0020h\u002D2.5\u0022\u0020role\u
17131003D\u0022img\u0022\u003E\u000A\u003Cpath\u0020d\u003D\u0022M9.30005\u00200.75L20.02\u002011.47C20.0897\u002011.5396\u002020.145\u002011.6222\u002020.1827\u002011.7131C20.2204\u002011.8041\u002020.2398\u002011.9016\u002020.2398\u002012C20.2398\u002012.0984\u002020.2204\u002012.1959\u002020.1827\u002012.2869C20.145\u002012.3778\u002020.0897\u002012.4604\u002020.02\u002012.53L9.30005\u002023.25\u0022\u0020stroke\u003D\u0022\u0023ffffff\u0022\u0020stroke\u002Dwidth\u003D\u00221.5\u0022\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u002F\u003E\u000A\u003Ctitle\u003Enext\u002Dwhite\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 17132 ); 17133 17134 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 17135 const gliderDots = slider.querySelector('.glider-dots'); 17136 const gliderPrev = slider.querySelector('.glider-prev'); 17137 const gliderNext = slider.querySelector('.glider-next'); 17138 17139 if (!slider.classList.contains('glider-initialized')) { 17140 if (!isDottedBackground) { 17141 const glider = new Glider(gliderElement, { 17142 slidesToShow: slider.dataset.slidesToShowMobile, 17143 slidesToScroll: 1, 17144 scrollLock: true, 17145 scrollLockDelay: 250, 17146 draggable: true, 17147 dragVelocity: 2.5, 17148 dots: gliderDots, 17149 arrows: { 17150 prev: gliderPrev, 17151 next: gliderNext, 17152 }, 17153 responsive: [ 17154 { 17155 breakpoint: 768, 17156 settings: { 17157 slidesToShow: slider.dataset.slidesToShow, 17158 scrollLock: false 17159 } 17160 } 17161 ] 17162 }); 17163 } else { 17164 // Custom Slider as Dotted Background element 17165 const slides = slider.querySelectorAll('[data-content-type="slide"]'), 17166 gliderContent = slider.querySelector('[data-role="glider-content"]'), 17167 next = slider.querySelector('.glider-next'), 17168 prev = slider.querySelector('.glider-prev'); 17169 let translated = 0, 17170 slideWidth = 0, 17171 resetState = 0, 17172 swiped, 17173 activeSlide, 17174 mouseIsMoving; 17175 17176 const initVars = () => { 17177 activeSlide = slider.querySelector('.active'); 17178 } 17179 17180 // init Slides to set mid-slide active. Works with odd number of slides only. 17181 const initSlides = () => { 17182 translated = 0; 17183 const slides = slider.querySelectorAll('[data-content-type="slide"]'); 17184 [].slice.call(slides).forEach((slide, index) => { 17185 slide.classList.remove('active'); 17186 slideWidth = slide.offsetLeft; 17187 if (slides.length >= 5) { 17188 if (index === Math.round(slides.length / 2) - 1) { 17189 slide.classList.add('active'); 17190 } 17191 } 17192 }) 17193 prev.disabled = false; 17194 next.disabled = false; 17195 initVars(); 17196 }; 17197 17198 initSlides(); 17199 17200 const animateSlider = (event) => { 17201 // using getBoundingClientRect to animate the element as a carousel. 17202 17203 if (event.currentTarget.classList.contains('glider-prev')) { 17204 17205 activeSlide = slider.querySelector('.active'); 17206 const prevSlide = activeSlide.previousElementSibling; 17207 if (slider.dataset.infiniteLoop === 'true') { 17208 cloneNextToPrev(); 17209 } else { 17210 const prevRect = prevSlide.getBoundingClientRect(); 17211 const actualRect = activeSlide.getBoundingClientRect(); 17212 translated = (translated - ((prevRect.x - actualRect.x))); 17213 } 17214 translate(translated, activeSlide, prevSlide); 17215 if (slider.dataset.infiniteLoop === 'true') { 17216 setTimeout( 17217 () => { 17218 gliderContent.querySelector('[data-content-type="slide"]:first-of-type') 17219 .classList.remove('cloned-slide','next-to-prev') 17220 } 17221 ); 17222 } 17223 } 17224 17225 if (event.currentTarget.classList.contains('glider-next')) { 17226 17227 activeSlide = slider.querySelector('.active'); 17228 const nextSlide = activeSlide.nextElementSibling; 17229 17230 if (slider.dataset.infiniteLoop === 'true') { 17231 clonePrevToNext(); 17232 } else { 17233 const nextRect = nextSlide.getBoundingClientRect(); 17234 const actualRect = activeSlide.getBoundingClientRect(); 17235 const widthToMinus = actualRect.width - nextRect.width; 17236 translated = (translated - ((nextRect.x - actualRect.x) - widthToMinus)); 17237 } 17238 translate(translated, activeSlide, nextSlide); 17239 if (slider.dataset.infiniteLoop === 'true') { 17240 setTimeout( 17241 () => { 17242 gliderContent.querySelector('[data-content-type="slide"]:last-of-type') 17243 .classList.remove('cloned-slide','next-to-prev'); 17244 } 17245 ); 17246 } 17247 } 17248 17249 const newSlide = slider.querySelector('.active'); 17250
17251 prev.disabled = !newSlide.previousElementSibling; 17252 next.disabled = !newSlide.nextElementSibling; 17253 } 17254 17255 // Swipe functionnality start 17256 let touchstartX = 0; 17257 let touchendX = 0; 17258 17259 gliderContent.addEventListener('touchstart', function (event) { 17260 document.querySelector('.page-wrapper').classList.add('overflow-hidden'); 17261 touchstartX = event.changedTouches[0].screenX; 17262 17263 gliderContent.addEventListener('touchmove', handleTouchMove); 17264 }, false); 17265 17266 const handleTouchMove = (event) => { 17267 event.stopPropagation(); 17268 gliderContent.classList.add('draggable'); 17269 let deltaX = event.touches[0].clientX - touchstartX; 17270 gliderContent.style.marginLeft = deltaX + 'px'; 17271 }; 17272 17273 gliderContent.addEventListener('touchend', function (event) { 17274 document.querySelector('.page-wrapper').classList.remove('overflow-hidden'); 17275 gliderContent.classList.remove('draggable'); 17276 gliderContent.style.marginLeft = 0; 17277 gliderContent.removeEventListener('touchmove', handleTouchMove); 17278 touchendX = event.changedTouches[0].screenX; 17279 handleGesture(); 17280 swipeContent(event); 17281 }); 17282 17283 let startClicX = 0; 17284 17285 const onMouseMove = (event) => { 17286 mouseIsMoving = true; 17287 let deltaX = event.clientX - startClicX; 17288 if (deltaX < -50) { 17289 swiped = 1; 17290 } else if (deltaX > 50) { 17291 swiped = 0; 17292 } 17293 if (deltaX < 0) { 17294 gliderContent.style.marginLeft = deltaX + 'px'; 17295 gliderContent.style.marginRight = 0; 17296 } else { 17297 gliderContent.style.marginLeft = 0; 17298 gliderContent.style.marginRight = (-deltaX) + 'px'; 17299 } 17300 17301 } 17302 17303 gliderContent.onmousedown = (event) => { 17304 startClicX = event.clientX; 17305 event.preventDefault(); 17306 event.stopPropagation(); 17307 gliderContent.addEventListener('mousemove', onMouseMove); 17308 17309 document.addEventListener('mouseup', swipeContent); 17310 } 17311 17312 const swipeContent = () => { 17313 document.removeEventListener('mouseup', swipeContent); 17314 gliderContent.removeEventListener('mousemove', onMouseMove); 17315 gliderContent.style.marginLeft = 0; 17316 gliderContent.style.marginRight = 0; 17317 17318 if (swiped !== undefined && mouseIsMoving) { 17319 if (swiped) { 17320 next.click(); 17321 } else { 17322 prev.click(); 17323 } 17324 } 17325 17326 mouseIsMoving = false; 17327 } 17328 17329 const handleGesture = () => { 17330 mouseIsMoving = true; 17331 if (touchendX < touchstartX) { 17332 swiped = 1; 17333 } 17334 17335 if (touchendX > touchstartX) { 17336 swiped = 0; 17337 } 17338 17339 if (touchendX === touchstartX) { 17340 swiped = undefined; 17341 } 17342 } 17343 //Swipe functionnality end 17344 17345 //infinite slider functionnality start 17346 const clonePrevToNext = () => { 17347 const slideToAdd = gliderContent.querySelector('[data-content-type="slide"]:first-of-type').cloneNode(true); 17348 slideToAdd.classList.add('cloned-slide'); 17349 gliderContent.appendChild(slideToAdd); 17350 gliderContent.querySelector('[data-content-type="slide"]:first-of-type').remove(); 17351 } 17352 17353 const cloneNextToPrev = () => { 17354 const slideToAdd = gliderContent.querySelector('[data-content-type="slide"]:last-of-type').cloneNode(true); 17355 slideToAdd.classList.add('cloned-slide','next-to-prev');
17356 gliderContent.prepend(slideToAdd); 17357 gliderContent.querySelector('[data-content-type="slide"]:last-of-type').remove(); 17358 } 17359 //infinite slider functionnality end 17360 17361 prev.addEventListener('click', animateSlider); 17362 next.addEventListener('click', animateSlider); 17363 17364 const translate = (translated = 0, activeSlide, nextSlide) => { 17365 resetState = 0; 17366 if (slider.dataset.infiniteLoop === 'false') { 17367 gliderContent.style.transform = 'translateX(' + translated + 'px)'; 17368 } 17369 activeSlide?.classList.remove('active'); 17370 nextSlide?.classList.add('active'); 17371 } 17372 17373 // resetSlider when resize to avoid non-centered arrows/slides 17374 const resetSlider = () => { 17375 if (!resetState) { 17376 resetState = 1; 17377 initSlides(); 17378 translate(0); 17379 } 17380 } 17381 if (slider.dataset.infiniteLoop === 'false') { 17382 window.addEventListener('resize', resetSlider); 17383 } 17384 } 17385 17386 slider.classList.add('glider-initialized'); 17387 if (slider.dataset.showArrows === 'true') { 17388 gliderPrev.classList.remove('hidden'); 17389 gliderNext.classList.remove('hidden'); 17390 } 17391 17392 if (slider.dataset.showDots === 'false') { 17393 gliderDots.classList.add('hidden'); 17394 } 17395 17396 if (slider.dataset.autoplay !== 'false') { 17397 gliderAutoplay( 17398 glider, 17399 slider.dataset.autoplaySpeed, 17400 slider.dataset.infiniteLoop 17401 ); 17402 } 17403 } 17404 }; 17405 17406 const gliderAutoplay = (glider, milliseconds, loop) => { 17407 const pagesCount = glider.track.childElementCount; 17408 let slideTimeout = null; 17409 let nextIndex = 1; 17410 let paused = false; 17411 17412 const slide = () => { 17413 slideTimeout = setTimeout( 17414 () => { 17415 if (loop && nextIndex >= pagesCount) { 17416 nextIndex = 0; 17417 } 17418 glider.scrollItem(nextIndex); 17419 }, 17420 parseInt(milliseconds) 17421 ); 17422 }; 17423 17424 glider.ele.addEventListener('glider-animated', () => { 17425 nextIndex = glider.slide + glider.opt.slidesToScroll; 17426 window.clearInterval(slideTimeout); 17427 if (!paused && (loop || nextIndex < pagesCount)) { 17428 slide(); 17429 } 17430 }); 17431 17432 const pause = () => { 17433 if (!paused) { 17434 clearInterval(slideTimeout); 17435 paused = true; 17436 } 17437 }; 17438 17439 const unpause = () => { 17440 if (paused) { 17441 slide(); 17442 paused = false; 17443 } 17444 }; 17445 17446 glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true}); 17447 glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true}); 17448 glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true}); 17449 glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true}); 17450 17451 slide(); 17452 }; 17453
17454 elements.forEach(element => { 17455 if (element.dataset.contentType === 'products') { 17456 initProductCarousel(element); 17457 } 17458 if (element.dataset.contentType === 'slider') { 17459 initSliderCarousel(element); 17460 } 17461 }); 17462 }; 17463 17464 const initSlidersFunction = (carouselElements) => { 17465 if (carouselElements.length > 0) { 17466 const script = document.createElement('script'); 17467 script.type = 'text/javascript'; 17468 script.id = 'glider-script'; 17469 17470 script.addEventListener('load', () => { 17471 initCarousels(carouselElements); 17472 }); 17473 17474 if (!document.getElementById('glider-script')) { 17475 script.src = 'https\u003A\u002F\u002Fwww.lafuma\u002Dmoebel.de\u002Fstatic\u002Fversion1788873043\u002Ffrontend\u002FSynolia\u002Flafumamobilier\u002Fde_DE\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js'; 17476 document.head.appendChild(script); 17477 } 17478 } 17479 } 17480 17481 const initCarouselsEvent = () => { 17482 const carouselElements = document.querySelectorAll( 17483 `[data-content-type="products"][data-appearance="carousel"], 17484 [data-content-type="slider"]` 17485 ); 17486 17487 const callback = (entries, observer) => { 17488 entries.forEach((entry) => { 17489 if (entry.isIntersecting) { 17490 initSlidersFunction(carouselElements) 17491 } 17492 }); 17493 }; 17494 17495 const options = { 17496 rootMargin: '400px', 17497 threshold: 0.25, 17498 }; 17499 17500 carouselElements.forEach((carouselElement) => { 17501 lazyLoad(callback, options, carouselElement); 17502 }); 17503 } 17504 17505 window.addEventListener('DOMContentLoaded', initCarouselsEvent); 17506 })(); 17507</script>
vendor: 1 bytes, line 17507
17507
17508<script> 17509 // Overridden for exception handling 17510 function initPriceBox() { 17511 return { 17512 updatePrice(priceData) { 17513 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 17514 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 17515 // Ensure regularPriceLabel exists before accessing classList 17516 if (regularPriceLabel) { 17517 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 17518 regularPriceLabel.classList.add('hidden'); 17519 } else { 17520 regularPriceLabel.classList.remove('hidden'); 17521 } 17522 } 17523 17524 // Ensure regularPriceElement exists before setting innerText 17525 if (regularPriceElement) { 17526 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 17527 } 17528 17529 // Ensure basePriceElement exists before setting innerText 17530 if (basePriceElement) { 17531 basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount); 17532 } 17533 } 17534 } 17535 } 17536</script>
vendor: 1 bytes, line 17536
17536
17537<script> 17538 const lazyLoad = (callback, option, target) => { 17539 const observer = new IntersectionObserver(callback, option); 17540 observer.observe(target); 17541 } 17542</script>
17542<script> 17543 function initConfigurableOptions(productId, optionConfig) { 17544 17545 function findPathParam(key) { 17546 const baseUrl = (BASE_URL.substring(0, 2) === '//' ? 'http:' : '') + BASE_URL; 17547 const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/'); 17548 const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3); 17549 for (let i = 0; i < pathParts.length; i += 2) { 17550 if (pathParts[i] === key && pathParts.length > i) { 17551 return pathParts[i + 1]; 17552 } 17553 } 17554 } 17555 17556 return { 17557 optionConfig, 17558 productId, 17559 itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'), 17560 allowedAttributeOptions: [], 17561 selectedValues: [], 17562 init() { 17563 this.findAllowedAttributeOptions(); 17564 this.$nextTick(() => { 17565 if (typeof this.optionConfig.defaultValues === 'object') { 17566 for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) { 17567 this.changeOption(attributeId, value + ''); 17568 } 17569 } 17570 this.preselectQuerystringItems(); 17571 this.preselectLocationHashItems(); 17572 }); 17573 }, 17574 productIndex: 0, 17575 productIndexForPrice: 0, 17576 optionIsActive(attributeId, optionId) { 17577 return !!this.getAllowedAttributeOptions(attributeId).find( 17578 option => option.id === optionId 17579 ) 17580 }, 17581 optionIsEnabled(attributeId, optionId) { 17582 for (const productId in this.optionConfig.index) { 17583 if (this.optionConfig.index[productId][attributeId] === optionId) { 17584 return true; 17585 } 17586 } 17587 return false; 17588 }, 17589 findSimpleIndex() { 17590 this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues); 17591 this.productIndexForPrice = this.findCheapestProductForPartialSelection(this.selectedValues); 17592 }, 17593 calculateSimpleIndexForPartialSelection(selectedValues) { 17594 if (selectedValues.length === 0) return 0; 17595 return this.findProductIdsForPartialSelection(selectedValues)[0]; 17596 }, 17597 calculateSimpleIndexForFullSelection(selectedValues) { 17598 if (! this.isFullSelection(selectedValues)) return false; 17599 17600 const productIndexes = this.optionConfig.index; 17601 return Object.keys(productIndexes).find(productIndex => { 17602 const productCandidateOptions = productIndexes[productIndex]; 17603 17604 for (const productOption in productCandidateOptions) { 17605 if ( 17606 !selectedValues[productOption] || 17607 selectedValues[productOption] !== productCandidateOptions[productOption] 17608 ) { 17609 return false; 17610 } 17611 } 17612 return productIndex; 17613 }); 17614 }, 17615 findAllowedAttributeOptions() { 17616 this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues); 17617 }, 17618 calculateAllowedAttributeOptions(selectedValues) { 17619 const allAttributes = this.optionConfig.attributes; 17620 const allAttributesSorted = Object.values(allAttributes).sort((a,b) => { 17621 return a.position - b.position 17622 }); 17623 17624 const newAllowedAttributeOptions = []; 17625 17626 allAttributesSorted.forEach(attribute => { 17627 const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); 17628 const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr); 17629 newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => { 17630 return !!option.products.find(product => { 17631 return availableIndexes.includes(product); 17632 }) 17633 }); 17634 }); 17635 return newAllowedAttributeOptions; 17636 }, 17637 calculateAvailableProductIndexes(selectedOptions) { 17638 if (Object.keys(selectedOptions).length === 0) { 17639 if (Object.values(this.optionConfig.salable || {}).length) { 17640 return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i) 17641 } 17642 return Object.keys(this.optionConfig.index); 17643 } 17644 17645 const selectedIds = Object.keys(selectedOptions); 17646 if (Object.values(this.optionConfig.salable || {}).length) { 17647 const selectedOptionIndexes = selectedIds.map(attrId => { 17648 const optionValue = selectedOptions[attrId]; 17649 return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || [] 17650 }) 17651 return selectedOptionIndexes.reduce((acc, optionIndexes) => { 17652 return acc.filter(index => optionIndexes.includes(index)); 17653 }); 17654 } else { 17655 const productIndexes = this.optionConfig.index; 17656 return Object.keys(productIndexes).filter(index => { 17657 for (const attrId of selectedIds) { 17658 if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false 17659 } 17660 return true 17661 }); 17662 } 17663 }, 17664 findAttributeByOptionId(optionId) { 17665 for (const attributeId in this.optionConfig.attributes) { 17666 const attributeOptions = this.optionConfig.attributes[attributeId].options || []; 17667 if (attributeOptions.find(option => option.id === optionId)) { 17668 return attributeId; 17669 } 17670 } 17671 }, 17672 getAllowedAttributeOptions(attributeId) { 17673 return this.allowedAttributeOptions[attributeId] || [] 17674 }, 17675 getAllAttributeOptions(attributeId) { 17676 return ( 17677 this.optionConfig.attributes[attributeId] && 17678 this.optionConfig.attributes[attributeId].options 17679 ) || [] 17680 }, 17681 getProductIdsForOption(option) { 17682 const attributeId = this.findAttributeByOptionId(option.id); 17683 const allOptions = this.optionConfig.attributes[attributeId]; 17684 const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id); 17685 return opt && opt.products 17686 ? opt.products 17687 : []; 17688 }, 17689 findProductIdsForPartialSelection(optionSelection) { 17690 const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => { 17691 const newCandidates = this.getProductIdsForOption({id: optionId}); 17692 return candidates === null 17693 ? newCandidates 17694 : candidates.filter(productId => newCandidates.includes(productId)); 17695 }, null); 17696 return candidateProducts || []; 17697 },
17698 findCheapestProductForPartialSelection(optionSelection) { 17699 const candidateProducts = this.findProductIdsForPartialSelection(optionSelection); 17700 return candidateProducts.reduce((cheapest, simpleIdx) => { 17701 // in the first iteration we start with simpleIdx as the currently cheapest product 17702 if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx; 17703 const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount; 17704 return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount 17705 ? simpleIdx 17706 : cheapest; 17707 }, 0) 17708 }, 17709 findProductIdToUseForOptionPrice(option) { 17710 // try to find a product for a complete selection 17711 const attributeId = this.findAttributeByOptionId(option.id); 17712 const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id}); 17713 const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection); 17714 // if there is no complete selection, use the cheapest product for the option 17715 return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); 17716 }, 17717 getAttributeOptionLabel(option) { 17718 const optionProduct = this.findProductIdToUseForOptionPrice(option); 17719 17720 if ((! optionProduct) || (optionProduct === this.productIndexForPrice)) { 17721 return option.label; 17722 } 17723 17724 const currentPrice = this.getOptionPriceAdjustmentBasePrice(); 17725 17726 if (this.optionConfig.optionPrices[optionProduct]) { 17727 const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount; 17728 if (optionPrice !== currentPrice){ 17729 return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true); 17730 } 17731 } 17732 return option.label; 17733 }, 17734 getOptionPriceAdjustmentBasePrice() { 17735 if (this.optionConfig.optionPrices[this.productIndexForPrice]) { 17736 return this.optionConfig.optionPrices[this.productIndexForPrice].finalPrice.amount 17737 } 17738 return this.optionConfig.prices.finalPrice.amount; // default price if no option selection 17739 }, 17740 clearOptionIfActive(optionId, value) { 17741 if (this.selectedValues[optionId] === value) { 17742 this.blurLabel() 17743 this.changeOption(optionId, '') 17744 } 17745 }, 17746 removeAttrFromSelection(selectedValues, attributeId) { 17747 attributeId = parseInt(attributeId); 17748 return selectedValues.reduce((newSelection, val, attr) => { 17749 if (attr !== attributeId) { 17750 newSelection[attr] = val; 17751 } 17752 return newSelection; 17753 }, []); 17754 }, 17755 changeOption(attributeId, value) { 17756 if (value === '') { 17757 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId) 17758 } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) { 17759 this.selectedValues[attributeId] = value; 17760 } 17761 this.findSimpleIndex(); 17762 this.findAllowedAttributeOptions(); 17763 this.updatePrices(); 17764 this.updateGallery(); 17765 17766 const candidates = this.findProductIdsForPartialSelection(this.selectedValues); 17767 17768 window.dispatchEvent( 17769 new CustomEvent( 17770 'configurable-selection-changed', 17771 { 17772 detail: { 17773 productId: this.productId, 17774 optionId: attributeId, 17775 value: value, 17776 productIndex: this.productIndex, 17777 selectedValues: this.selectedValues, 17778 candidates: candidates, 17779 skuCandidates: Object.values(candidates).map(id =>
17779 this.optionConfig.sku?.[id] ?? null).filter(Boolean), 17780 } 17781 } 17782 ) 17783 ); 17784 }, 17785 calculateIsMinimalPrice() { 17786 return ! this.isFullSelection(this.selectedValues); 17787 }, 17788 isFullSelection(selectedValues) { 17789 return Object.values(selectedValues).length === Object.keys(this.optionConfig.attributes).length; 17790 }, 17791 updatePrices() { 17792 const value = this.optionConfig.optionPrices[this.productIndexForPrice] || this.optionConfig.prices; 17793 window.dispatchEvent( 17794 new CustomEvent( 17795 "update-prices-" + this.productId, 17796 { 17797 detail: Object.assign( 17798 value, 17799 { isMinimalPrice: this.calculateIsMinimalPrice() } 17800 ) 17801 } 17802 ) 17803 ); 17804 }, 17805 updateGallery () { 17806 if (this.productIndex) { 17807 const images = this.optionConfig.images[this.productIndex]; 17808 images && window.dispatchEvent(new CustomEvent( 17809 "update-gallery", 17810 { detail: this.sortImagesByPosition(images) } 17811 )); 17812 } else { 17813 window.dispatchEvent(new Event("reset-gallery")); 17814 } 17815 }, 17816 sortImagesByPosition(images) { 17817 return images.sort((x, y) => { 17818 return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) 17819 }); 17820 }, 17821 onGetCartData(data) { 17822 }, 17823 preselectCartItems(data) { 17824 // pre-select options based on cart data for current (quote) itemId 17825 const cart = data && data.cart; 17826 if (cart && cart.items) { 17827 const cartItem = cart.items.find((item) => { 17828 return ( 17829 item.item_id === this.itemId 17830 && item.product_id === this.productId 17831 ) 17832 }); 17833 if (cartItem && cartItem.options && cartItem.options.length) { 17834 cartItem.options.map(option => { 17835 this.changeOption(option.option_id, option.option_value); 17836 }) 17837 } 17838 } 17839 }, 17840 preselectQuerystringItems() { 17841 // pre-select option like ?size=167 17842 const urlQueryParams = new URLSearchParams(window.location.search.replace('?','')); 17843 this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code)); 17844 }, 17845 preselectLocationHashItems() { 17846 // pre-select option like #144=167 17847 const urlHashParams = new URLSearchParams(window.location.hash.replace('#','')); 17848 this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id)); 17849 }, 17850 preselectItemsBasedOnLocation(getLocationValue) { 17851 Object.values(this.optionConfig.attributes).map(attribute => { 17852 const v = getLocationValue(attribute); 17853 v && this.changeOption(attribute.id, v) 17854 }); 17855 } 17856 } 17857 } 17858</script>
vendor: 1 bytes, line 17858
17858
17859<script> 17860 function initSwatchOptions(swatchConfig) { 17861 return { 17862 swatchConfig, 17863 getAttributeSwatchData(attributeId) { 17864 const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]); 17865 swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']); 17866 17867 return swatchConfig; 17868 }, 17869 mapSwatchTypeNumberToTypeCode(typeNumber) { 17870 switch ("" + typeNumber) { 17871 case "1": 17872 return "color" 17873 case "2": 17874 return "image" 17875 case "3": 17876 return "empty" 17877 case "0": 17878 default: 17879 return "text" 17880 } 17881 }, 17882 getTypeOfFirstOption(attributeId) { 17883 for (const optionId in this.swatchConfig[attributeId]) { 17884 const option = this.swatchConfig[attributeId][optionId]; 17885 if (typeof option.type !== 'undefined') { 17886 return this.mapSwatchTypeNumberToTypeCode(option.type); 17887 } 17888 } 17889 }, 17890 getVisualSwatchType(attributeId, targetOptionId) { 17891 // If a type configuration is present for the given option id, use it 17892 const config = this.swatchConfig[attributeId]; 17893 if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') { 17894 return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type); 17895 } 17896 17897 // Otherwise - if no config is present for the target option - use the type of the first option 17898 // with a type property from the attribute, thus assuming its the same type as the target option. 17899 // (This edge case condition can occur on single swatch products if some options are not salable) 17900 return this.getTypeOfFirstOption(attributeId); 17901 }, 17902 getSwatchType(attributeId, optionId) { 17903 // Deserialize the attribute details the first time they are used 17904 if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) { 17905 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 17906 } 17907 const type = this.swatchConfig[attributeId] && 17908 this.swatchConfig[attributeId].details && 17909 this.swatchConfig[attributeId].details.swatch_input_type || 17910 "empty"; 17911 return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type; 17912 }, 17913 isTextSwatch(attributeId, optionId) { 17914 return this.getSwatchType(attributeId, optionId) === 'text'; 17915 }, 17916 isVisualSwatch(attributeId, optionId) { 17917 const type = this.getSwatchType(attributeId, optionId); 17918 17919 return ['image', 'color'].includes(type); 17920 }, 17921 getSwatchBackgroundStyle(attributeId, optionId) { 17922 const config = this.getSwatchConfig(attributeId, optionId); 17923 const type = this.getSwatchType(attributeId, optionId); 17924 17925 if (type === "color") { 17926 return 'background-color:' + config.value; 17927 } else if (type === "image") { 17928 return "background: #fff url('" + config.value + "') no-repeat center"; 17929 } else { 17930 return ''; 17931 } 17932 }, 17933 getSwatchText(attributeId, optionId) { 17934 const config = this.getSwatchConfig(attributeId, optionId); 17935 return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); 17936 }, 17937 getOptionLabelFromOptionConfig(attributeId, optionId) { 17938 // Fallback if no value is present in swatchConfig data 17939 // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190 17940 const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId); 17941 return option && option[0] && option[0].label ||''; 17942 }, 17943 getSwatchConfig(attributeId, optionId) { 17944 return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId] 17945 ? this.swatchConfig[attributeId][optionId] 17946 : false;
17947 }, 17948 activeTooltipItem: false, 17949 tooltipPositionElement: false, 17950 isTooltipVisible() { 17951 return this.activeTooltipItem && 17952 this.getSwatchConfig( 17953 this.activeTooltipItem.attribute, 17954 this.activeTooltipItem.item 17955 ); 17956 }, 17957 isFirstItemCol() { 17958 return this.activeTooltipItem.index === 0; 17959 }, 17960 getTooltipImageStyle(attributeId, optionId) { 17961 const config = this.getSwatchConfig(attributeId, optionId); 17962 const type = this.getSwatchType(attributeId, optionId); 17963 17964 if (type === "color") { 17965 return 'background-color:' + config.value + '; width: 110px; height: 90px;'; 17966 } else if (type === "image") { 17967 return "background: #ffffff url('" + config.thumb + 17968 "') center center no-repeat; width: 110px; height: 90px;"; 17969 } else { 17970 return 'display:none'; 17971 } 17972 }, 17973 getTooltipPosition() { 17974 return this.tooltipPositionElement ? 17975 `top: ${this.tooltipPositionElement.offsetTop}px;` + 17976 `left: ${ 17977 this.tooltipPositionElement.offsetLeft - ( 17978 this.tooltipPositionElement.closest('.snap') && 17979 this.tooltipPositionElement.closest('.snap').scrollLeft || 17980 0 17981 ) 17982 }px;` : '' 17983 }, 17984 getTooltipLabel() { 17985 return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label 17986 }, 17987 focusedLabel: false, 17988 focusLabel(optionId) { 17989 this.focusedLabel = optionId; 17990 }, 17991 blurLabel() { 17992 this.focusedLabel = false; 17993 } 17994 } 17995 } 17996</script>
vendor: 1 bytes, line 17996
17996
17997<script> 17998 (function () { 17999 const modals = []; 18000 let lastHide = 0; 18001 18002 function resolveElement($refs, value) { 18003 if (!value) return null; 18004 if (value instanceof Element) return value; 18005 if (typeof value === 'string') { 18006 try { 18007 return ($refs && $refs[value]) || document.querySelector(value) || null; 18008 } catch (e) {} 18009 } 18010 return null; 18011 } 18012 18013 function determineTrigger($refs, dialog, trigger) { 18014 if (!trigger && dialog?.target instanceof HTMLElement) { 18015 return dialog.target; 18016 } 18017 18018 if (typeof dialog === 'string' && trigger?.target instanceof HTMLElement) { 18019 return trigger.target; 18020 } 18021 18022 return resolveElement($refs, trigger); 18023 } 18024 18025 function setFocusFirstElement(dialogElement) { 18026 if (!dialogElement) return; 18027 18028 window.setTimeout(() => { 18029 const candidates = dialogElement.querySelectorAll('[x-focus-first]'); 18030 for (const candidate of candidates) { 18031 if (candidate.closest('dialog') === dialogElement) { 18032 candidate.focus(); 18033 return; 18034 } 18035 } 18036 }, 50); 18037 } 18038 18039 window.hyva.modal = function(options = {}) { 18040 if (this.$el && this.$el.dataset && this.$el.dataset.options) { 18041 try { 18042 options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}')); 18043 } catch (e) { 18044 throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON'); 18045 } 18046 } 18047 18048 const config = Object.assign({ 18049 dialog: 'dialog', duration: 300, transitionEnter: 'transition ease-out duration-300', 18050 transitionEnterStart: 'opacity-0', 18051 transitionEnterEnd: 'opacity-100', 18052 transitionLeave: 'transition ease-in duration-300', 18053 transitionLeaveStart: 'opacity-100', 18054 transitionLeaveEnd: 'opacity-0', 18055 }, options); 18056 18057 return { 18058 opened: {}, 18059 show(dialog, trigger) { 18060 const name = typeof dialog === 'string' ? dialog : config.dialog; 18061 if (!name || this.opened[name]) return; 18062 18063 this.opened[name] = true; 18064 const focusTarget = determineTrigger(this.$refs, dialog, trigger); 18065 const dialogEl = this.$refs && this.$refs[name]; 18066 const frame = { name, instance: this, focusTarget, time: Date.now() }; 18067 modals.push(frame); 18068 setFocusFirstElement(dialogEl); 18069 return new Promise(resolve => { frame.resolve = resolve; }); 18070 }, 18071 cancel() { 18072 this.hide(false); 18073 }, 18074 ok() { 18075 this.hide(true); 18076 }, 18077 hide(value) { 18078 if (Date.now() - lastHide < config.duration) return; 18079 lastHide = Date.now(); 18080 18081 const modal = modals.pop(); 18082 if (!modal) return; 18083 18084 modal.instance.opened[modal.name] = false; 18085 18086 const focusTarget = modal.focusTarget; 18087 focusTarget && window.setTimeout(() => focusTarget.focus(), config.duration + 50); 18088 modal.resolve && modal.resolve(value); 18089 }, 18090 /** 18091 * @deprecated Use dialogConfig() instead, which is used by the default modal-container.phtml template. 18092 * This method is kept for backwards compatibility with custom container templates. 18093 */ 18094 overlay(dialog) { 18095 dialog = this.$el.dataset.dialogRefName || dialog; 18096 const name = typeof dialog === 'string' ? dialog : config.dialog; 18097 if (this.$el.tagName !== 'DIALOG' && ! window.hyva.modal.legacyModalCompatibility) { 18098 console.warn( 18099 '[hyva] Deprecated modal markup detected (x-bind="overlay" on a non-dialog element' + 18100 (name ? ` for "${name}"` : '') + ').\n' + 18101 'Escape and click-outside closing are not available for such dialogs anymore.\n' + 18102 'Install hyva-themes/magento2-legacy-modal-compatibility or migrate to the native <dialog> markup.' 18103 ); 18104 } 18105 return Object.assign({}, this.dialogConfig(name), { 18106 ['@hyva-modal-show.window'](event) { 18107 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide) 18108 } 18109 }); 18110 }, 18111 dialogConfig(name) { 18112 name = name || this.$el.dataset.dialogRefName || config.dialog; 18113 return { 18114 ['x-show']: () => name ? this.opened[name] : false, 18115 ['x-transition:enter']: config.transitionEnter, 18116 ['x-transition:enter-start']: config.transitionEnterStart, 18117 ['x-transition:enter-end']: config.transitionEnterEnd, 18118 ['x-transition:leave']: config.transitionLeave, 18119 ['x-transition:leave-start']: config.transitionLeaveStart, 18120 ['x-transition:leave-end']: config.transitionLeaveEnd, 18121 ['@hyva-modal-show.window'](event) { 18122 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide); 18123 }, 18124 }; 18125 },
18126 showDialogOnInit() { 18127 const name = this.$el.dataset.dialogRefName; 18128 if (name) { 18129 this.show(name); 18130 } 18131 } 18132 }; 18133 } 18134 18135 window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length - 1] 18136 18137 window.hyva.modal.pop = function () { 18138 if (modals.length > 0) { 18139 modals[modals.length - 1].instance.hide(); 18140 } 18141 } 18142 18143 /** 18144 * @deprecated Native <dialog> handles focus trapping automatically. 18145 * Calling this function has no effect. Kept for backwards compatibility. 18146 */ 18147 window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {} 18148 18149 /** 18150 * @deprecated Native <dialog> with x-htmldialog handles ESC key and click-outside events. 18151 * These functions have no effect. Kept for backwards compatibility. 18152 */ 18153 window.hyva.modal.eventListeners = { 18154 keydown: event => {}, 18155 click: event => {} 18156 }; 18157 })(); 18158 18159 window.addEventListener('alpine:init', () => { 18160 Alpine.data('hyvaModal', window.hyva.modal); 18161 }, {once: true}); 18162</script>
vendor: 1 bytes, line 18162
18162
18163<script> 18164 'use strict'; 18165 18166 const grecaptchaV2LoadCallbacks = []; 18167 18168 function executeRecaptchaLoadCallbacks () { 18169 while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { 18170 const callback = grecaptchaV2LoadCallbacks.pop(); 18171 typeof callback === 'string' ? window[callback]() : callback(); 18172 } 18173 } 18174 18175 (function() { 18176 const loadRecaptchaScript = (event) => { 18177 18178 if (window.grecaptcha || !event.target.form) { 18179 return; 18180 } 18181 18182 const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; 18183 const siteKey = '6Ldv69kZAAAAAHtMgygqH0x8doe_6572W7\u002DzpVm3'; 18184 const script = document.createElement('script'); 18185 script.type = 'text/javascript'; 18186 script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; 18187 script.async = true; 18188 document.head.appendChild(script); 18189 18190 script.addEventListener('load', () => { 18191 Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); 18192 }); 18193 } 18194 18195 window.forceLoadRecaptchaScript = (form) => { 18196 loadRecaptchaScript({target: {form: form || 'dummy'}}); 18197 executeRecaptchaLoadCallbacks(); 18198 }; 18199 18200 document.body.addEventListener('input', loadRecaptchaScript, { once: true }); 18201 document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); 18202 18203 }()); 18204 18205</script>
18205 18206
18207<script> 18208 window.addEventListener('DOMContentLoaded', () => { 18209 const callback = (entries, observer) => { 18210 entries.forEach((entry) => { 18211 if (entry.isIntersecting) { 18212 const node = document.createElement('script'); 18213 node.setAttribute('src', '//widgets.trustedshops.com/js/XC5195686FA33B15D59DB1400D3F58583.js'); 18214 node.setAttribute('data-desktop-y-offset', '0'); 18215 node.setAttribute('data-mobile-y-offset', '0'); 18216 node.setAttribute('data-desktop-disable-reviews', 'false'); 18217 node.setAttribute('data-desktop-enable-custom', 'true'); 18218 node.setAttribute('data-desktop-position', 'right'); 18219 node.setAttribute('data-desktop-custom-width', '165'); 18220 node.setAttribute('data-desktop-enable-fadeout', 'false'); 18221 node.setAttribute('data-disable-mobile', 'false'); 18222 node.setAttribute('data-disable-trustbadge', 'false'); 18223 node.setAttribute('data-mobile-custom-width', '200'); 18224 node.setAttribute('data-mobile-disable-reviews', 'false'); 18225 node.setAttribute('data-mobile-enable-custom', 'true'); 18226 node.setAttribute('data-mobile-position', 'left'); 18227 node.setAttribute('data-mobile-enable-topbar', 'false'); 18228 node.setAttribute('data-mobile-enable-fadeout', 'true'); 18229 node.setAttribute('data-color-scheme', 'light'); 18230 node.setAttribute('charset', 'UTF-8'); 18231 document.querySelector('.trustbadge-div').appendChild(node); 18232 observer.disconnect(); 18233 } 18234 }); 18235 } 18236 18237 const options = { 18238 rootMargin: '200px', 18239 threshold: 1.0, 18240 } 18241 18242 const trustedDiv = document.querySelector('.trustbadge-div'), 18243 target = trustedDiv?.parentNode, 18244 trustedBadgeContent = trustedDiv.querySelector('#trustbadgeCustomContainer').innerHTML, 18245 trustedBadgeMobileContent = trustedDiv.querySelector('#trustbadgeCustomMobileContainer').innerHTML; 18246 18247 if (target && !trustedBadgeContent && !trustedBadgeMobileContent) { 18248 lazyLoad(callback, options, target); 18249 } 18250 }); 18251</script>
vendor: 1 bytes, line 18251
18251
18252<script> 18253 window.addEventListener('DOMContentLoaded', () => { 18254 const scriptToLoad = document.createElement('script'); 18255 scriptToLoad.setAttribute('src', 'https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js'); 18256 scriptToLoad.setAttribute('id', 'lottie-file'); 18257 document.querySelector('head').appendChild(scriptToLoad); 18258 }); 18259</script>
vendor: 1 bytes, line 18259
18259
18260<script> 18261 window.addEventListener('init-external-scripts', async () => { 18262 const scriptToLoad = document.createElement('script'); 18263 scriptToLoad.setAttribute('src', 'https://app.usercentrics.eu/browser-ui/latest/loader.js'); 18264 scriptToLoad.setAttribute('id', 'usercentrics-cmp'); 18265 scriptToLoad.setAttribute('data-version', 'preview'); 18266 scriptToLoad.setAttribute('data-settings-id', 'uO2sTw1Y5'); 18267 document.querySelector('head').appendChild(scriptToLoad); 18268 18269 const scriptToLoadShare = document.createElement('script'); 18270 scriptToLoadShare.setAttribute('src', "https://platform-api.sharethis.com/js/sharethis.js#property=685161d052cb3a001af4054c&product=sop"); 18271 scriptToLoadShare.setAttribute('id', 'script-aw-raf'); 18272 document.querySelector('head').appendChild(scriptToLoadShare); 18273 18274 try { 18275 await addScript('https://static.zdassets.com/ekr/snippet.js?key=297a9039-ddd5-45f2-9a9f-6caec0685f9f', 'ze-snippet'); 18276 zE('webWidget', 'setLocale', window.current_zendesk_locale_code); 18277 } catch (e) { 18278 //catch 18279 } 18280 }, {once: true}); 18281 18282 function addScript(src, id = null) { 18283 return new Promise((resolve, reject) => { 18284 const script = document.createElement('script'); 18285 18286 if (id) { 18287 script.setAttribute('id', id); 18288 } 18289 18290 script.setAttribute('src', src); 18291 script.addEventListener('load', resolve); 18292 script.addEventListener('error', reject); 18293 18294 document.body.appendChild(script); 18295 }); 18296 } 18297</script>
vendor: 1 bytes, line 18297
18297
18298<script> 18299 'use strict'; 18300 18301 (() => { 18302 const applyAnimationOnText = (element) => { 18303 const animatedTime = element.getAttribute('data-animated-time'), 18304 animatedType = element.getAttribute('data-animated-type'), 18305 18306 translate3 = [ 18307 {transform: 'translateY(0%)'}, 18308 {transform: 'translateY(0%)', offset: 0.15}, 18309 {transform: 'translateY(-100%)', offset: 0.4}, 18310 {transform: 'translateY(-100%)', offset: 0.65}, 18311 {transform: 'translateY(-200%)', offset: 0.9}, 18312 {transform: 'translateY(-200%)', offset: 1} 18313 ], 18314 translate4 = [ 18315 {transform: 'translateY(0%)'}, 18316 {transform: 'translateY(0%)', offset: 0.19}, 18317 {transform: 'translateY(-100%)', offset: 0.33}, 18318 {transform: 'translateY(-100%)', offset: 0.53}, 18319 {transform: 'translateY(-200%)', offset: 0.68}, 18320 {transform: 'translateY(-200%)', offset: 0.88}, 18321 {transform: 'translateY(-300%)', offset: 0.99}, 18322 {transform: 'translateY(-300%)', offset: 1} 18323 ], 18324 translate5 = [ 18325 {transform: 'translateY(0%)'}, 18326 {transform: 'translateY(0%)', offset: 0.1}, 18327 {transform: 'translateY(-100%)', offset: 0.15}, 18328 {transform: 'translateY(-100%)', offset: 0.35}, 18329 {transform: 'translateY(-200%)', offset: 0.4}, 18330 {transform: 'translateY(-200%)', offset: 0.6}, 18331 {transform: 'translateY(-300%)', offset: 0.65}, 18332 {transform: 'translateY(-300%)', offset: 0.85}, 18333 {transform: 'translateY(-400%)', offset: 0.9}, 18334 {transform: 'translateY(-400%)', offset: 1} 18335 ]; 18336 18337 const options = { 18338 duration: parseInt(animatedTime), 18339 delay: 2000, 18340 easing: animatedType, 18341 iterations: Infinity 18342 } 18343 18344 const content = element.querySelector('.animated-text-content'), 18345 titles = [].slice.call(content.children); 18346 18347 if (titles.length === 3) {
18348 titles.forEach((title) => { 18349 title.animate(translate3, options) 18350 }) 18351 } else if (titles.length === 4) { 18352 titles.forEach((title) => { 18353 title.animate(translate4, options) 18354 }) 18355 } else if (titles.length === 5) { 18356 titles.forEach((title) => { 18357 title.animate(translate5, options) 18358 }) 18359 } 18360 }; 18361 18362 window.addEventListener('DOMContentLoaded', () => { 18363 document.querySelectorAll('[data-content-type="animated_text"]').forEach(element => { 18364 applyAnimationOnText(element); 18365 }); 18366 }); 18367 })(); 18368</script>
18368 18369
18370<script> 18371 'use strict'; 18372 18373 (() => { 18374 const initPostCarousels = (elements) => { 18375 if (!Glider) { 18376 return; 18377 } 18378 18379 const initPostSlider = (slider) => { 18380 18381 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 18382 slider.classList.add('glider-contain'); 18383 18384 slider.insertAdjacentHTML( 18385 'beforeend', 18386 '\u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dbetween\u0020flex\u002D1\u0020gap\u002D12\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Zur\u00FCck\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020flex\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020w\u002D8\u0020h\u002D8\u0020bg\u002Dblack\u0020text\u002Dwhite\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0020rotate\u002D180\u0020md\u003Aabsolute\u0020md\u003Aleft\u002D0\u0020md\u003Aw\u002D9\u0020md\u003Ah\u002D9\u0020md\u003A\u002Dtranslate\u002Dy\u002D1\u002F2\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020width\u003D\u002210\u0022\u0020height\u003D\u002210\u0022\u0020viewBox\u003D\u00220\u00200\u002025\u002024\u0022\u0020fill\u003D\u0022none\u0022\u0020class\u003D\u0022w\u002D2.5\u0020h\u002D2.5\u0022\u0020role\u
18386003D\u0022img\u0022\u003E\u000A\u003Cpath\u0020d\u003D\u0022M9.30005\u00200.75L20.02\u002011.47C20.0897\u002011.5396\u002020.145\u002011.6222\u002020.1827\u002011.7131C20.2204\u002011.8041\u002020.2398\u002011.9016\u002020.2398\u002012C20.2398\u002012.0984\u002020.2204\u002012.1959\u002020.1827\u002012.2869C20.145\u002012.3778\u002020.0897\u002012.4604\u002020.02\u002012.53L9.30005\u002023.25\u0022\u0020stroke\u003D\u0022\u0023ffffff\u0022\u0020stroke\u002Dwidth\u003D\u00221.5\u0022\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u002F\u003E\u000A\u003Ctitle\u003Enext\u002Dwhite\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022tablist\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D1\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Weiter\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020flex\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020w\u002D8\u0020h\u002D8\u0020bg\u002Dblack\u0020text\u002Dwhite\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0020md\u003Aabsolute\u0020md\u003Aright\u002D0\u0020md\u003Aw\u002D9\u0020md\u003Ah\u002D9\u0020md\u003A\u002Dtranslate\u002Dy\u002D1\u002F2\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020width\u003D\u002210\u0022\u0020height\u003D\u002210\u0022\u0020viewBox\u003D\u00220\u00200\u002025\u002024\u0022\u0020fill\u003D\u0022none\u0022\u0020class\u003D\u0022w\u002D2.5\u0020h\u002D2.5\u0022\u0020role\u
18386003D\u0022img\u0022\u003E\u000A\u003Cpath\u0020d\u003D\u0022M9.30005\u00200.75L20.02\u002011.47C20.0897\u002011.5396\u002020.145\u002011.6222\u002020.1827\u002011.7131C20.2204\u002011.8041\u002020.2398\u002011.9016\u002020.2398\u002012C20.2398\u002012.0984\u002020.2204\u002012.1959\u002020.1827\u002012.2869C20.145\u002012.3778\u002020.0897\u002012.4604\u002020.02\u002012.53L9.30005\u002023.25\u0022\u0020stroke\u003D\u0022\u0023ffffff\u0022\u0020stroke\u002Dwidth\u003D\u00221.5\u0022\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u002F\u003E\u000A\u003Ctitle\u003Enext\u002Dwhite\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 18387 ); 18388 18389 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 18390 const gliderPrev = slider.querySelector('.glider-prev'); 18391 const gliderNext = slider.querySelector('.glider-next'); 18392 18393 const glider = new Glider(gliderElement, { 18394 slidesToShow: 1.25, 18395 slidesToScroll: 1, 18396 scrollLock: true, 18397 scrollLockDelay: 250, 18398 draggable: true, 18399 dragVelocity: 2.5, 18400 arrows: { 18401 prev: gliderPrev, 18402 next: gliderNext, 18403 }, 18404 responsive: [ 18405 { 18406 breakpoint: 768, 18407 settings: { 18408 slidesToShow: 3.25, 18409 scrollLock: false 18410 } 18411 } 18412 ] 18413 }); 18414 18415 slider.classList.add('glider-initialized'); 18416 18417 gliderPrev.classList.remove('hidden'); 18418 gliderNext.classList.remove('hidden'); 18419 } 18420 18421 elements.forEach(element => { 18422 initPostSlider(element); 18423 }); 18424 } 18425 18426 window.addEventListener('DOMContentLoaded', () => { 18427 const carouselElements = document.querySelectorAll( 18428 `[data-widget-type="blog-post-slider"]` 18429 ); 18430 18431 if (carouselElements.length > 0) { 18432 const script = document.createElement('script'); 18433 script.type = 'text/javascript'; 18434 18435 script.addEventListener('load', () => { 18436 initPostCarousels(carouselElements); 18437 }); 18438 18439 script.src = 'https\u003A\u002F\u002Fwww.lafuma\u002Dmoebel.de\u002Fstatic\u002Fversion1788873043\u002Ffrontend\u002FSynolia\u002Flafumamobilier\u002Fde_DE\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js'; 18440 document.head.appendChild(script); 18441 } 18442 }); 18443 })(); 18444</script>
18444 18445
18446<script data-cfasync="false"> 18447 'use strict'; 18448 18449 /** 18450 * @typedef {Object} CookieGroupData 18451 * @prop {Boolean} checked 18452 * @prop {[{description: string, lifetime: number|null, name: string, provider: string, type: string}]} cookies 18453 * @prop {String} description 18454 * @prop {string|null} groupId 18455 * @prop {Boolean} isEssential 18456 * @prop {String} name 18457 */ 18458 18459 function initAmastyCookieGroupsStorage() { 18460 return { 18461 /** 18462 * @type {[CookieGroupData]} 18463 */ 18464 groupData: [], 18465 cookiePolicy: undefined, 18466 lastUpdate: undefined, 18467 18468 /** 18469 * @returns {string|number[]} 18470 */ 18471 getEssentialGroupIds: function () { 18472 return this.groupData.reduce(function (essentialGroupIds, group) { 18473 if (group.isEssential) { 18474 essentialGroupIds.push(group.groupId) 18475 } 18476 18477 return essentialGroupIds; 18478 }, []); 18479 }, 18480 18481 /** 18482 * @returns {string|number[]} 18483 */ 18484 getCheckedGroupIds: function () { 18485 return this.groupData.reduce(function (checkedGroupIds, group) { 18486 if (group.checked) { 18487 checkedGroupIds.push(group.groupId); 18488 } 18489 18490 return checkedGroupIds; 18491 }, []); 18492 }, 18493 18494 /** 18495 * @param {string} cookieName 18496 * @returns {boolean} 18497 */ 18498 isCookieEssential: function (cookieName) { 18499 const allEssentialCookies = this.getEssentialCookies(); 18500 18501 return !!allEssentialCookies.find(cookie => cookie.name === cookieName); 18502 }, 18503 18504 /** 18505 * @returns {array} 18506 */ 18507 getEssentialCookies: function () { 18508 return this.groupData 18509 .filter(group => group.isEssential) 18510 .map(group => group.cookies) 18511 .flat(); 18512 }, 18513 18514 /** 18515 * @returns {boolean} 18516 */ 18517 hasGroupData: function () { 18518 return !!this.groupData.length; 18519 }, 18520 18521 /** 18522 * @param {string} cookieName 18523 * @param {string} pattern 18524 * @returns {boolean} 18525 */ 18526 isEssentialByPattern: function (cookieName, pattern) { 18527 const essentialCookiePatterns = this.getEssentialCookiesPattern(pattern); 18528 18529 return essentialCookiePatterns.some((pattern) => !!cookieName.match(this.getCookiePattern(pattern))); 18530 }, 18531 18532 /** 18533 * @param {string} pattern 18534 * @return {Array} 18535 */ 18536 getEssentialCookiesPattern: function (pattern) { 18537 return this.getCookiesByPattern(pattern, this.getEssentialCookies()); 18538 }, 18539 18540 /** 18541 * @param {string} pattern 18542 * @param {Array|undefined} cookies 18543 * @return {Array} 18544 */ 18545 getCookiesByPattern: function (pattern, cookies) { 18546 if (typeof cookie === 'undefined') { 18547 cookies = this.getAllCookies(); 18548 } 18549 18550 return cookies
18551 .map((cookie) => typeof cookie === 'object' ? cookie.name : cookie.split('=')[0].trim()) 18552 .filter((cookie) => cookie.match(pattern) !== null); 18553 }, 18554 18555 /** 18556 * @returns {array} 18557 */ 18558 getDisallowedCookies: function () { 18559 const disallowedCookie = decodeURIComponent(hyva.getCookie('amcookie_disallowed') ?? ''); 18560 if (!disallowedCookie) { 18561 return []; 18562 } 18563 18564 return disallowedCookie.split(','); 18565 }, 18566 18567 /** 18568 * @returns {string} 18569 */ 18570 getCookiePattern: function (pattern) { 18571 return `^${pattern.replaceAll('*', '.*')}$`; 18572 }, 18573 18574 /** 18575 * @returns {array} 18576 */ 18577 getAllCookies: function () { 18578 return document.cookie.split(';'); 18579 }, 18580 18581 /** 18582 * @param {boolean} setAcceptance 18583 * @returns {Promise} 18584 */ 18585 updateGroupData: function (setAcceptance = false) { 18586 const cookieFetchUrl = `${BASE_URL}amcookie/cookie/cookies`; 18587 return fetch(cookieFetchUrl, { 18588 method: "POST", 18589 headers: { 18590 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 18591 'X-Requested-With': 'XMLHttpRequest' 18592 }, 18593 body: new URLSearchParams({ 18594 allowed: hyva.getCookie('amcookie_allowed'), 18595 restriction: hyva.getCookie('amcookie_policy_restriction') 18596 }) 18597 }).then(response => { 18598 if (response.ok) { 18599 return response.json(); 18600 } 18601 18602 return Promise.reject(`${response.status} ${response.statusText}`); 18603 }).then(data => { 18604 this.cookiePolicy = data.cookiePolicy ?? 'allowed'; 18605 this.lastUpdate = data.lastUpdate ?? 0; 18606 this.groupData = [...data.groupData]; 18607 18608 hyva.setCookie('amcookie_policy_restriction', this.cookiePolicy, 10); 18609 if (setAcceptance) { 18610 amastyCookieManager.setLastCookieAcceptance(this.lastUpdate); 18611 } 18612 18613 return data; 18614 }).catch(error => { 18615 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 18616 { 18617 type: "error", 18618 text: error 18619 } 18620 ]); 18621 }).finally(() => window.dispatchEvent(new CustomEvent('amasty-cookie-group-updated'))); 18622 } 18623 } 18624 } 18625 18626 window.addEventListener( 18627 'alpine:init', 18628 () => Alpine.store('AmastyCookieGroups', initAmastyCookieGroupsStorage()), 18629 { once: true } 18630 ); 18631</script>
18631 18632
18633<script data-cfasync="false"> 18634 (function (amastyCookieManager) { 18635 'use strict'; 18636 18637 amastyCookieManager.pattern = '{(?<cookiePattern>.*)}'; 18638 18639 amastyCookieManager.getAmastyCookieGroupStorage = function () { 18640 return Alpine.store('AmastyCookieGroups') ?? {}; 18641 }; 18642 18643 amastyCookieManager.deleteDisallowedCookie = function () { 18644 const amastyCookieGroupStorage = this.getAmastyCookieGroupStorage(); 18645 const disallowedCookies = amastyCookieGroupStorage?.getDisallowedCookies() ?? []; 18646 18647 disallowedCookies.forEach((name) => { 18648 const pattern = name.match(this.pattern); 18649 if (!!pattern && !!amastyCookieGroupStorage) { 18650 const cookiePattern = amastyCookieGroupStorage.getCookiePattern(pattern.groups.cookiePattern) ?? ''; 18651 18652 amastyCookieGroupStorage.getCookiesByPattern(cookiePattern).forEach((cookieName) => { 18653 this.deleteNotEssentialCookie(cookieName); 18654 }); 18655 } else { 18656 this.deleteNotEssentialCookie(name); 18657 } 18658 }); 18659 }; 18660 18661 amastyCookieManager.isCookieAllowed = function (cookieName) { 18662 const allowedGroups = hyva.getCookie('amcookie_allowed'); 18663 const disallowedCookie = this.getAmastyCookieGroupStorage()?.getDisallowedCookies() ?? []; 18664 const isCookiePolicyAllowed = hyva.getCookie('amcookie_policy_restriction') === 'allowed'; 18665 const isCookieEssential = this.getAmastyCookieGroupStorage()?.isCookieEssential(cookieName); 18666 const isCookieEssentialByPattern = this.getAmastyCookieGroupStorage()?.isEssentialByPattern(cookieName, this.pattern); 18667 18668 if (!isCookiePolicyAllowed || isCookieEssential || isCookieEssentialByPattern) { 18669 return true; 18670 } 18671 18672 return !((!allowedGroups && !disallowedCookie) || this.isCookieDisallowed(cookieName)); 18673 }; 18674 18675 amastyCookieManager.isCookieDisallowed = function (cookieName) { 18676 const amastyCookieGroupStorage = this.getAmastyCookieGroupStorage(); 18677 const disallowedCookies = amastyCookieGroupStorage?.getDisallowedCookies() ?? []; 18678 18679 return disallowedCookies.some((cookie) => { 18680 const pattern = cookie.match(this.pattern); 18681 18682 return !!pattern && !!cookieName.match(amastyCookieGroupStorage?.getCookiePattern(pattern.groups.cookiePattern)); 18683 }) || disallowedCookies.indexOf(cookieName) !== -1; 18684 }; 18685 18686 amastyCookieManager.processManageableCookies = function () { 18687 let cookieScripts = document.querySelectorAll('script[data-amcookie-groupid][type="text/plain"]'); 18688 18689 cookieScripts.forEach((elem) => { 18690 if (this.isChecked(elem.dataset['amcookie-groupid'])) { 18691 let elClone = elem.cloneNode(true).setAttribute('type', 'text/javascript'); 18692 18693 elem.remove(); 18694 document.body.appendChild(elClone); 18695 } 18696 }); 18697 }; 18698 18699 amastyCookieManager.deleteNotEssentialCookie = function (cookieName) { 18700 if (!this.getAmastyCookieGroupStorage()?.isCookieEssential(cookieName)) { 18701 hyva.setCookie(cookieName, '', -1, true); 18702 } 18703 }; 18704 18705 amastyCookieManager.setLastCookieAcceptance = function (lastUpdate) { 18706 localStorage.setItem('am-last-cookie-acceptance', lastUpdate); 18707 }; 18708 18709 window.addEventListener('amasty-cookie-group-updated', () => { 18710 amastyCookieManager.deleteDisallowedCookie(); 18711 }); 18712 18713 window.addEventListener('private-content-loaded', () => { 18714 amastyCookieManager.getAmastyCookieGroupStorage()?.hasGroupData() && amastyCookieManager.deleteDisallowedCookie(); 18715 }); 18716 }(window.amastyCookieManager = window.amastyCookieManager || {})); 18717</script>
18717 18718
18719<script data-cfasync="false"> 18720 (function () { 18721 'use strict'; 18722 18723 window.addEventListener('cookiebar-action-accept', (event) => { 18724 const groups = event.detail?.include_checked_groups ? Alpine.store('AmastyCookieGroups').getCheckedGroupIds() : []; 18725 const url = `${BASE_URL}amcookie/cookie/savegroups`; 18726 const contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; 18727 const body = new URLSearchParams({ 18728 form_key: hyva.getFormKey() 18729 }); 18730 groups.length && groups.map(groupId => body.append('groups[]', groupId)); 18731 18732 fetch(url, {method: 'POST', body, headers: {'Content-Type': contentType}}) 18733 .then(response => { 18734 if (response.ok) { 18735 return response.json(); 18736 } 18737 18738 return Promise.reject(`${response.status} ${response.statusText}`); 18739 }) 18740 .then(data => { 18741 !!data.success && Alpine.store('AmastyCookieGroups').updateGroupData(true); 18742 }) 18743 .catch(error => { 18744 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 18745 { 18746 type: "error", 18747 text: error 18748 } 18749 ]); 18750 }) 18751 .finally(() => { 18752 amastyCookieManager.processManageableCookies(); 18753 window.dispatchEvent(new CustomEvent('cookiebar-action-accept-finish')); 18754 window.dispatchEvent(new CustomEvent('amasty-cookie-group-updated')); 18755 // Wait cookiebar close animation 18756 setTimeout(() => { 18757 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 18758 }, 100); 18759 }); 18760 }); 18761 })(); 18762</script>
18762 18763
18764<script data-cfasync="false"> 18765 (function () { 18766 'use strict'; 18767 18768 window.addEventListener('cookiebar-action-allow', () => { 18769 const url = `${BASE_URL}amcookie/cookie/allow`; 18770 const contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; 18771 const body = new URLSearchParams({ 18772 form_key: hyva.getFormKey() 18773 }); 18774 fetch(url, {method: 'POST', body, headers: {'Content-Type': contentType}}) 18775 .then(response => { 18776 if (response.ok) { 18777 return response; 18778 } 18779 18780 return Promise.reject(`${response.status} ${response.statusText}`); 18781 }) 18782 .then(() => { 18783 Alpine.store('AmastyCookieGroups').updateGroupData(true); 18784 }) 18785 .catch(error => { 18786 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 18787 { 18788 type: "error", 18789 text: error 18790 } 18791 ]); 18792 }) 18793 .finally(() => { 18794 amastyCookieManager.processManageableCookies(); 18795 window.dispatchEvent(new CustomEvent('cookiebar-action-allow-finish')); 18796 // Wait cookiebar close animation 18797 setTimeout(() => { 18798 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 18799 }, 100); 18800 }); 18801 }); 18802 })(); 18803</script>
18803 18804 18805<style> 18806 :root { 18807 /* Bar Color Settings */ 18808 --ambar-background: #fff; 18809 --ambar-links-color: #326ed1; 18810 --ambar-policy-text: #374151; 18811 --ambar-toggle-active-color: #2563eb; 18812 --ambar-toggle-inactive-color: #fff; 18813 18814 /* Buttons Color Settings */ 18815 --ambar-button-accept-color: #337ab7; 18816 --ambar-button-accept-hover-color: #337ab7; 18817 --ambar-button-accept-text: #fff; 18818 --ambar-button-accept-hover-text: #fff; 18819 18820 --ambar-button-allow-color: #337ab7; 18821 --ambar-button-allow-hover-color: #337ab7; 18822 --ambar-button-allow-text: #fff; 18823 --ambar-button-allow-hover-text: #fff; 18824 18825 --ambar-button-decline-color: #337ab7; 18826 --ambar-button-decline-hover-color: #337ab7; 18827 --ambar-button-decline-text: #fff; 18828 --ambar-button-decline-hover-text: #fff; 18829 18830 --ambar-button-settings-color: #337ab7; 18831 --ambar-button-settings-hover-color: #337ab7; 18832 --ambar-button-settings-text: #fff; 18833 --ambar-button-settings-hover-text: #fff; 18834 18835 /* Buttons Order Settings */ 18836 --ambar-button-accept-order: 0; 18837 --ambar-button-allow-order: 0; 18838 --ambar-button-settings-order: 0; 18839 --ambar-button-decline-order: 0; 18840 18841 /* Cookie Information Bar Color Settings */ 18842 --ambar-information-background: #fff; 18843 --ambar-information-title: #374151; 18844 --ambar-information-description: #374151; 18845 --ambar-information-table-header: #374151; 18846 --ambar-information-table-content: #374151; 18847 18848 /* Cookie Information Bar Done Button Settings */ 18849 --ambar-information-button-color: #1d4ed8; 18850 --ambar-information-button-hover-color: #1d4ed8; 18851 --ambar-information-button-text: #fff; 18852 --ambar-information-button-hover-text: #fff; 18853 18854 /* Settings Bar Done Button Settings */ 18855 --ambar-setting-button-color: #1d4ed8; 18856 --ambar-setting-button-hover-color: #1d4ed8; 18857 --ambar-setting-button-text: #fff; 18858 --ambar-setting-button-hover-text: #fff; 18859 18860 /* cookie_settings_bar_customisation */ 18861 --ambar-setting-bar-group-background: #fff; 18862 --ambar-setting-bar-group-title: #000; 18863 --ambar-setting-bar-group-description: #000; 18864 --ambar-setting-bar-group-links: #326ed1; 18865 } 18866</style> 18867
18868<script data-cfasync="false"> 18869 'use strict'; 18870 18871 function initAmCookieActionDispatcherBtn() { 18872 return { 18873 actiondispatchHandler: function (event) { 18874 const { dispatchAction, dispatchPayload } = event.currentTarget.dataset; 18875 this.$dispatch(dispatchAction, this.parsePayload(dispatchPayload)); 18876 }, 18877 parsePayload: function (payload) { 18878 try { 18879 return JSON.parse(payload); 18880 } catch (e) { 18881 return null; 18882 } 18883 } 18884 }; 18885 } 18886 18887 window.addEventListener( 18888 'alpine:init', 18889 () => Alpine.data('initAmCookieActionDispatcherBtn', initAmCookieActionDispatcherBtn), 18890 { once: true } 18891 ); 18892</script>
18892 18893
18894<script data-cfasync="false"> 18895 'use strict'; 18896 18897 function initAmCookieGroups() { 18898 return { 18899 /** 18900 * @withContext x-for: $store.AmastyCookieGroups.groupData 18901 * @returns {string} 18902 */ 18903 getInputGroupId: function () { 18904 return `amcookie-${this.$el.dataset.groupPrefix}group-${this.group.groupId}` 18905 }, 18906 18907 /** 18908 * @withContext x-for: $store.AmastyCookieGroups.groupData 18909 * @returns {{"!bg-gray-400": boolean}} 18910 */ 18911 getInputStyles: function () { 18912 return { 18913 '!bg-gray-400': this.group.isEssential 18914 } 18915 }, 18916 18917 /** 18918 * @withContext x-for: $store.AmastyCookieGroups.groupData 18919 * @returns {void} 18920 */ 18921 toggleGroup: function () { 18922 this.group.checked = !this.group.checked; 18923 }, 18924 18925 /** 18926 * @withContext x-for: $store.AmastyCookieGroups.groupData 18927 * @returns {void} 18928 */ 18929 moreInfoClickHandler: function () { 18930 this.$dispatch(this.$el.dataset.dispatchAction, this.group); 18931 }, 18932 18933 moreInformationAboutCookieGroup: function () { 18934 return hyva.str('About\u0020\u0022\u00251\u0022\u0020Cookie\u0020Group', this.group.name); 18935 } 18936 } 18937 } 18938 18939 window.addEventListener( 18940 'alpine:init', 18941 () => Alpine.data('initAmCookieGroups', initAmCookieGroups), 18942 {once: true} 18943 ); 18944</script>
18944 18945 18946<section x-data="initAmGdprLoader" 18947 @amgdpr-loading-start.window="showLoader" 18948 @amgdpr-loading-stop.window="hideLoader" 18949> 18950 <div 18951 class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-slate-800" 18952 x-cloak 18953 x-show="isLoading" 18954 x-transition.opacity.duration.200ms 18955> 18956 <div class="flex gap-10 items-center p-4"> 18957 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> 18958 <style> 18959 @keyframes spinner-ball-triangle1 { 18960 0% { transform: translate(0%, 0%); } 18961 33% { transform: translate(38%, -79%); } 18962 66% { transform: translate(77%, 0%); } 18963 100% { transform: translate(0%, 0%); } 18964 } 18965 18966 @keyframes spinner-ball-triangle2 { 18967 0% { transform: translate(0%, 0%); } 18968 33% { transform: translate(38%, 79%); } 18969 66% { transform: translate(-38%, 79%); } 18970 100% { transform: translate(0%, 0%); } 18971 } 18972 18973 @keyframes spinner-ball-triangle3 { 18974 0% { transform: translate(0%, 0%); } 18975 33% { transform: translate(-77%, 0%); } 18976 66% { transform: translate(-38%, -79%); } 18977 100% { transform: translate(0%, 0%); } 18978 } 18979 </style> 18980 <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/> 18981 <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/> 18982 <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/> 18983</svg> 18984 <span class="text-xl select-none"> 18985 Wird geladen ⦠</span> 18986 </div> 18987</div> 18988</section> 18989
18990<script data-cfasync="false"> 18991 'use strict'; 18992 18993 function initAmGdprLoader() { 18994 return { 18995 isLoading: false, 18996 18997 /** 18998 * @returns {void} 18999 */ 19000 showLoader: function () { 19001 this.isLoading = true; 19002 }, 19003 19004 /** 19005 * @returns {void} 19006 */ 19007 hideLoader: function () { 19008 this.isLoading = false; 19009 } 19010 } 19011 } 19012 19013 window.addEventListener( 19014 'alpine:init', 19015 () => Alpine.data('initAmGdprLoader', initAmGdprLoader), 19016 { once: true } 19017 ); 19018</script>
vendor: 1 bytes, line 19018
19018
19019<script> 19020 function initAmBundlePackGallery() { 19021 return { 19022 "active": 0, 19023 "initialImages": [], 19024 "images": [], 19025 "isSelected" : false, 19026 "currentElement": false, 19027 "appendOnReceiveImages": false, 19028 receiveImages(images) { 19029 if (this.appendOnReceiveImages) { 19030 const initialUrls = this.initialImages.map(image => image.full); 19031 const newImages = images.filter(image => ! initialUrls.includes(image.full)); 19032 this.images = [].concat(this.initialImages, newImages); 19033 this.setActive(newImages.length ? this.initialImages.length : 0); 19034 } else { 19035 this.images = images; 19036 } 19037 }, 19038 init() { 19039 this.appendOnReceiveImages = this.$el.dataset.appendOnReceiveImages; 19040 this.currentElement = this.$el; 19041 let active = this.images.findIndex(function(image) { 19042 return image.isMain === true 19043 }); 19044 if (active === -1) { 19045 active = 0; 19046 } 19047 this.setActive(active); 19048 },
19049 setActive(index) { 19050 this.active = index; 19051 }, 19052 resetGallery() { 19053 this.images = this.initialImages; 19054 this.setActive(0); 19055 }, 19056 imageCaption() { 19057 return this.image.caption || this.$el.dataset.productName; 19058 }, 19059 imageSrc() { 19060 return this.image.img; 19061 }, 19062 typeLoading() { 19063 return this.active !== this.index ? 'lazy' : 'eager'; 19064 }, 19065 showImg() { 19066 return this.active === this.index; 19067 }, 19068 eventListeners: { 19069 ['@update-gallery.window'](event) { 19070 setTimeout(() => { 19071 if (this.isSelected) { 19072 this.receiveImages(event.detail); 19073 } 19074 this.isSelected = false; 19075 }, 0) 19076 }, 19077 ['@bundle-popup-gallery-option-selected.window'](event) { 19078 let product = this.currentElement.closest('.amrelated-product-info'); 19079 let currentId = event.detail.getAttribute('id'); 19080 if (product.querySelector('#' + currentId)){ 19081 this.isSelected = true; 19082 } 19083 }, 19084 ['@reset-gallery.window'](event) { 19085 this.resetGallery(); 19086 } 19087 } 19088 } 19089 } 19090 19091 window.addEventListener( 19092 'alpine:init', 19093 () => Alpine.data('initAmBundlePackGallery', initAmBundlePackGallery), 19094 { once: true } 19095 ); 19096</script>
19096 19097
19097<script> 19098 function amBundlePackAddPopupData() { 19099 return { 19100 popupData: '', 19101 forms: false, 19102 formsData: '', 19103 popupWrapper: '', 19104 selectors: { 19105 forms: '.amrelated-product-info form.info-container-form', 19106 innerForm: 'form[id*="product_addtocart_form"]', 19107 body: 'body', 19108 productPageClass: 'catalog-product-view', 19109 cartPageClass: 'checkout-cart-index', 19110 popupWrapper: '[x-ref="bundlePopup"]', 19111 hidePopupButtonClass: '.hide-bundle-popup', 19112 swatchInputs: '.amrelated-product-info.configurable .product-option-value-input, .amrelated-product-info.configurable select' 19113 }, 19114 19115 init() { 19116 this.popupData = JSON.parse(this.$el.dataset.config); 19117 this.isOsnHyvaEnabled = Boolean(Number(this.$el.dataset.isOsnHyvaEnabled)); 19118 this.forms = this.$el.querySelectorAll(this.selectors.forms); 19119 this.popupWrapper = this.$el.closest(this.selectors.popupWrapper); 19120 this.$nextTick(() => { 19121 this.$el.addEventListener('change', (event) => { 19122 if (event.target.closest(this.selectors.swatchInputs)) { 19123 window.dispatchEvent(new CustomEvent('bundle-popup-gallery-option-selected', { detail: event.target })); 19124 } 19125 }); 19126 }) 19127 }, 19128 19129 serializeForm(form) { 19130 const data = new FormData(form) 19131 let array = []; 19132 this._setInputsToArray(data, array); 19133 19134 if (this.isOsnHyvaEnabled) { 19135 if (form.querySelector(this.selectors.innerForm)) { 19136 const data = new FormData(form.querySelector(this.selectors.innerForm)); 19137 this._setInputsToArray(data, array); 19138 } 19139 } 19140 19141 return array; 19142 }, 19143 19144 _setInputsToArray(data, arrayToSet) { 19145 for (let [key, value] of data) { 19146 arrayToSet.push({ 19147 name: key, 19148 value: value 19149 }); 19150 } 19151 }, 19152 19153 getIsProductPage() { 19154 return !!document.querySelector(this.selectors.body) 19155 .classList.contains(this.selectors.productPageClass); 19156 }, 19157 19158 getIsCartPage() { 19159 return !!document.querySelector(this.selectors.body) 19160 .classList.contains(this.selectors.cartPageClass); 19161 }, 19162 19163 scrollToElement(el) { 19164 el.scrollIntoView({ 19165 behavior: "smooth", 19166 block: "start" 19167 }); 19168 }, 19169 19170 scrollToTop() { 19171 window.scrollTo({ top: 0, behavior: 'smooth' }); 19172 }, 19173 19174 validateProductForm(form) { 19175 let flag = false; 19176 let isValid = form.reportValidity(); 19177 if (isValid) { 19178 flag = true; 19179 } else { 19180 this.scrollToElement(form); 19181 } 19182 return flag; 19183 }, 19184 19185 prepareData() { 19186 const inCartResponse = this.popupData.productsInCart; 19187 let data = false; 19188 let serializedForms = []; 19189 let formsData = ''; 19190 let isFormsValid = true; 19191 19192 this.forms.forEach((form) => { 19193 if (this.isOsnHyvaEnabled) { 19194 if (form.querySelector(this.selectors.innerForm)) { 19195 if (!this.validateProductForm(form.querySelector(this.selectors.innerForm))) { 19196 isFormsValid = false;
19197 return false; 19198 } 19199 } 19200 } 19201 19202 if (!this.validateProductForm(form)) { 19203 isFormsValid = false; 19204 return false; 19205 } 19206 }); 19207 19208 if (isFormsValid) { 19209 //forms data collect 19210 this.forms.forEach((form) => { 19211 serializedForms.push(this.serializeForm(form)); 19212 }); 19213 19214 serializedForms.forEach((form) => { 19215 formsData += 'amrelated_products_popup[]='; 19216 form.forEach((fileld, index, currentForm) => { 19217 formsData += fileld.name + '=' + fileld.value 19218 + (currentForm.length > (index + 1) ? encodeURIComponent('&') : ''); 19219 }) 19220 formsData += '&'; 19221 }) 19222 19223 data = formsData; 19224 19225 //product in cart data 19226 for (let productId in inCartResponse) { 19227 data += 'products_in_cart[' + productId + '][qty]=' + inCartResponse[productId]['qty'] + '&'; 19228 } 19229 19230 data += 'ajax_cart=' + this.popupData.isAjaxCartEnabled; 19231 data += '&form_key=' + hyva.getFormKey(); 19232 data += '&product_page=' + this.getIsProductPage(); 19233 data += '&pack_id=' + this.popupData.packId; 19234 } 19235 19236 return data; 19237 }, 19238 19239 addToCart() { 19240 const data = this.prepareData(); 19241 if (!data) { 19242 return; 19243 } 19244 this.isLoading = true; 19245 fetch(this.popupData.url, { 19246 headers: { 19247 "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 19248 }, 19249 body: new URLSearchParams(data), 19250 method: "POST", 19251 mode: "cors", 19252 credentials: "include" 19253 }).then( 19254 response => response.json() 19255 ).then((result) => { 19256 if (result.backUrl) { 19257 window.location.href = result.backUrl; 19258 } else { 19259 window.dispatchEvent(new CustomEvent('mostviewed-items-added')); 19260 const ref = this.$el.closest('[x-ref]').getAttribute('x-ref'); 19261 if (ref) { 19262 window.dispatchEvent(new CustomEvent('amrelated-modal-hide', {detail: ref})); 19263 } 19264 } 19265 }).catch(() => { 19266 dispatchMessages([{ 19267 type: "error", 19268 text: "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." 19269 }], 2000); 19270 const ref = this.$el.closest('[x-ref]').getAttribute('x-ref'); 19271 if (ref) { 19272 window.dispatchEvent(new CustomEvent('amrelated-modal-hide', {detail: ref})); 19273 } 19274 }).finally(() => { 19275 this.isLoading = false; 19276 this.scrollToTop(); 19277 }) 19278 } 19279 } 19280 } 19281 19282 window.addEventListener( 19283 'alpine:init', 19284 () => Alpine.data('amBundlePackAddPopupData', amBundlePackAddPopupData), 19285 { once: true } 19286 ); 19287 </script>
vendor: 1 bytes, line 19287
19287
19288<script> 19289 function initAmBundlePackWishlist() { 19290 return { 19291 addToWishlist() { 19292 const productId = this.$el.dataset.productId; 19293 const postParams = { 19294 action: BASE_URL + "wishlist/index/add/", 19295 data: { 19296 product: productId, 19297 uenc: hyva.getUenc() 19298 } 19299 } 19300 19301 postParams.data['form_key'] = hyva.getFormKey(); 19302 postParams.data['qty'] = document.getElementById(`qty[${productId}]`) 19303 ? document.getElementById(`qty[${productId}]`).value || 1 19304 : 1; 19305 19306 let postData = Object.keys(postParams.data).map(key => { 19307 return `${key}=${postParams.data[key]}`; 19308 }).join('&'); 19309 19310 // take the all the input fields that configure this product 19311 // includes custom, configurable, grouped and bundled options 19312 Array.from(document.querySelectorAll( 19313 '[name^=options], [name^=super_attribute], [name^=bundle_option], [name^=super_group], [name^=links]') 19314 ).map(input => { 19315 if (input.type === "select-multiple") { 19316 Array.from(input.selectedOptions).forEach(option => { 19317 postData += `&${input.name}=${option.value}` 19318 }) 19319 } else { 19320 // skip "checkable inputs" that are not checked 19321 if(!(['radio', 'checkbox', 'select'].includes(input.type) && !input.checked)) { 19322 postData += `&${input.name}=${input.value}` 19323 } 19324 } 19325 }); 19326 fetch(postParams.action, { 19327 "headers": { 19328 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 19329 }, 19330 "body": postData, 19331 "method": "POST", 19332 "mode": "cors", 19333 "credentials": "include" 19334 }).then((response) => { 19335 if (response.redirected) { 19336 window.location.href = response.url; 19337 } else if (response.ok) { 19338 return response.json(); 19339 } else { 19340 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 19341 [{ 19342 type: "warning", 19343 text: "Artikel konnte nicht zur Wunschliste hinzugefügt werden." 19344 }], 5000 19345 ); 19346 } 19347 }).then((response) => { 19348 if (!response) { 19349 return; 19350 } 19351 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 19352 [{ 19353 type: (response.success) ? "success" : "error", 19354 text: (response.success) 19355 ? "Produkt wurde zu Ihrer Wunschliste hinzugefügt." 19356 : response.error_message 19357 }], 5000 19358 ); 19359 const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); 19360 window.dispatchEvent(reloadCustomerDataEvent); 19361 }).catch((error) => { 19362 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 19363 [{ 19364 type: "error", 19365 text: error 19366 }], 5000 19367 ); 19368 }); 19369 } 19370 } 19371 } 19372 window.addEventListener('alpine:init', () => Alpine.data('initAmBundlePackWishlist', initAmBundlePackWishlist), {once: true}) 19373</script>
19373 19374
19374<script> 19375 function initAmBundlePackCompareOnProductView() { 19376 return { 19377 addToCompare: function () { 19378 const productId = 1; 19379 const formKey = hyva.getFormKey(); 19380 const postUrl = BASE_URL + 'catalog/product_compare/add/'; 19381 19382 fetch(postUrl, { 19383 "headers": { 19384 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 19385 }, 19386 "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(), 19387 "method": "POST", 19388 "mode": "cors", 19389 "credentials": "include" 19390 }).then(function (response) { 19391 if (response.redirected) { 19392 window.location.href = response.url; 19393 } 19394 }).catch(function (error) { 19395 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 19396 [{ 19397 type: "error", 19398 text: error 19399 }], 5000 19400 ); 19401 }); 19402 } 19403 }; 19404 } 19405 window.addEventListener('alpine:init', () => Alpine.data('initAmBundlePackCompareOnProductView', initAmBundlePackCompareOnProductView), {once: true}) 19406 </script>
vendor: 1 bytes, line 19406
19406
19407<script> 19408 'use strict'; 19409 19410 function initParentContainerProcessor() { 19411 const selectors = { 19412 labelContainer: '.amasty-label-container', 19413 galleryImg: '#gallery img:not(.amasty-label-image)' 19414 } 19415 19416 return { 19417 /** 19418 * @param {AmlabelComponent} label 19419 * @return {void} 19420 */ 19421 process: function (label) { 19422 this.moveLabelToParent(label); 19423 this.setParentStyles(label); 19424 }, 19425 19426 /** 19427 * @param {AmlabelComponent} label 19428 * @return {void} 19429 */ 19430 moveLabelToParent: function (label) { 19431 const newParent = this.getNewParent(label); 19432 19433 if (!newParent) { 19434 return; 19435 } 19436 19437 const wrapperElement = newParent.querySelector(label.wrapperClass); 19438 label.parent = newParent; 19439 19440 // if same wrapper already exists - move label there 19441 if (wrapperElement && !wrapperElement.isSameNode(label.element)) { 19442 this.insertLabelByPriority(label, wrapperElement); 19443 } else { 19444 newParent.prepend(label.element); 19445 } 19446 }, 19447 19448 /** 19449 * @param {AmlabelComponent} label 19450 * @return {HTMLElement|undefined} 19451 */ 19452 getNewParent: function (label) { 19453 // move label to container from settings 19454 let newParent = label.element.closest(label.config.path) 19455 || this.findPreviousNodeExcludingScriptsAndDifferentLabels(label.element)?.querySelector(label.config.path) 19456 || label.parent.querySelector(label.config.path); 19457 19458 if (!newParent) { 19459 newParent = this.fallbackParentSearch(label); 19460 } 19461 19462 return newParent; 19463 }, 19464 19465 fallbackParentSearch: function (label) { 19466 switch (true) { 19467 case label.config.move !== 1 && label.config.mode === 'prod': 19468 // Try to find default gallery container on product page if none of the config selectors found 19469 return document.querySelector(selectors.galleryImg)?.parentElement; 19470 case label.config.mode === 'cart': 19471 const potentialParent 19472 = label.element.closest(':not([data-teleport-target]):not(.amlabel-position-wrapper)'); 19473 19474 // If label parent node has an img 19475 return potentialParent?.querySelector(':scope > img') 19476 ? potentialParent 19477 : undefined; 19478 default: 19479 return undefined; 19480 } 19481 }, 19482 19483 /** 19484 * @param {HTMLElement} element 19485 * @return {HTMLElement|null} 19486 */ 19487 findPreviousNodeExcludingScriptsAndDifferentLabels: function (element) { 19488 const previousElement = element?.previousElementSibling; 19489 if (!previousElement) { 19490 return null; 19491 } 19492 19493 if (previousElement?.tagName !== 'SCRIPT' 19494 && !previousElement?.className?.includes?.('amlabel-position-wrapper') 19495 ) { 19496 return previousElement; 19497 } 19498 19499 return this.findPreviousNodeExcludingScriptsAndDifferentLabels(previousElement); 19500 }, 19501 19502 /** 19503 * @param {AmlabelComponent} label 19504 * @param {HTMLElement} wrapperElement 19505 * @return {void} 19506 */ 19507 insertLabelByPriority: function (label, wrapperElement) { 19508 const labelContainers = wrapperElement.querySelectorAll(selectors.labelContainer); 19509 const currentLabelOrder = label.labelContainer.dataset.amlabelOrder; 19510 let insertAfterContainer = null; 19511 19512 // find the label behind which we want to insert current one by priority
19513 labelContainers.forEach(labelContainer => { 19514 if (labelContainer.dataset.amlabelOrder < currentLabelOrder) { 19515 insertAfterContainer = labelContainer; 19516 } 19517 }); 19518 19519 insertAfterContainer === null 19520 ? wrapperElement.prepend(label.labelContainer) 19521 : insertAfterContainer.after(label.labelContainer); 19522 19523 label.labelContainer.removeAttribute('x-cloak'); 19524 label.element.remove(); 19525 label.element = wrapperElement; 19526 }, 19527 19528 /** 19529 * @param {AmlabelComponent} label 19530 * @return {void} 19531 */ 19532 setParentStyles: function (label) { 19533 const parent = label.parent.hasAttribute('data-teleport-target') 19534 ? label.parent.parentElement 19535 : label.parent; 19536 19537 /* required for child position absolute */ 19538 !(parent.style.position === 'absolute') && (parent.style.position = 'relative'); 19539 !parent.style.width && parent.classList.add('w-fit-content'); 19540 !parent.style.marginLeft && parent.classList.add('ml-auto'); 19541 !parent.style.marginRight && parent.classList.add('mr-auto'); 19542 }, 19543 } 19544 } 19545</script>
vendor: 1 bytes, line 19545
19545
19546<script> 19547 'use strict'; 19548 19549 function initLabelItemProcessor() { 19550 /** 19551 * @typedef {Object} AmlabelComponent 19552 * 19553 * @property {HTMLElement} element Label wrapper element 19554 * @property {HTMLElement} parent Element where label should be placed 19555 * @property {boolean} initialized Is label initialized 19556 * @property {string} wrapperClass Dynamic class for label wrapper to place multiple labels properly by position 19557 * @property {HTMLElement} labelContainer Container for label text image and tooltip 19558 * @property {Config} config Label Configuration 19559 * @property {Object} parentContainerProcessor 19560 * @property {Object} labelItemProcessor 19561 */ 19562 19563 /** 19564 * @typedef {Object} AmLabelConfig 19565 * 19566 * @property {0|1} alignment Labels Alignment config value (0 - Horizontal| 1 - Vertical) 19567 * @property {number} label Label Id 19568 * @property {number} margin Margin between labels config value 19569 * @property {('cat'|'prod')} mode Label mode 19570 * @property {number} move 19571 * @property {number} order Label order 19572 * @property {string} path The css selector to which label should place 19573 * @property {string} position Label position 19574 * @property {string} product Product Id 19575 * @property {string} redirect_url 19576 * @property {string} size Label size 19577 * @property {{ 19578 * backgroundColor: string, 19579 * color: string, 19580 * content: string, 19581 * status: 1|2|3 19582 * }} tooltip 19583 */ 19584 19585 return { 19586 /** 19587 * @param {AmlabelComponent} label 19588 * @return {void} 19589 */ 19590 process: function(label) { 19591 this.setLabelSize(label); 19592 this.setLinkProps(label); 19593 }, 19594 19595 /** 19596 * @param {AmlabelComponent} label 19597 * @return {void} 19598 */ 19599 setLabelSize: function (label) { 19600 if (!label.config.size) { 19601 return; 19602 } 19603 19604 label.labelContainer.style.width = label.parent.offsetWidth * label.config.size / 100 + 'px'; 19605 }, 19606 19607 /** 19608 * 19609 * @param {Object} $event 19610 * @param {HTMLElement} tooltipNode 19611 */ 19612 placeTooltip: function() { 19613 const labelNode = this.$event.target; 19614 const tooltipNode = document.getElementById(`label-tooltip-${this.$el.dataset.labelId}-${this.$el.dataset.productId}`); 19615 const labelNodeRect = labelNode.getBoundingClientRect(); 19616 19617 tooltipNode.style.bottom = (window.innerHeight - labelNodeRect.top) + 'px'; 19618 tooltipNode.style.left = (labelNodeRect.left + labelNode.offsetWidth / 2 ) + 'px'; 19619 }, 19620 19621 /** 19622 * @param {AmlabelComponent} label 19623 * @return {void} 19624 */ 19625 setLinkProps: function (label) { 19626 !!label.config.redirect_url && label.labelContainer.classList.add('-link', 'cursor-pointer'); 19627 }, 19628 19629 /** 19630 * @param {Object} $event Click event 19631 * @param {string} redirectUrl 19632 */ 19633 openLink: function($event, redirectUrl) { 19634 if (redirectUrl.length === 0) { 19635 return; 19636 } 19637 19638 $event.preventDefault(); 19639 window.open(redirectUrl, '_blank'); 19640 } 19641 } 19642 } 19643</script>
19643 19644 19645 <style> 19646 :root { 19647 --amlabel-margin-between: 2px; 19648 } 19649 </style>
19650<script> 19651 (function () { 19652 'use strict'; 19653 19654 const observedEvent = 'amlabel-swatch-product-changed'; 19655 const selectors = { 19656 swatchOptions: 'div[x-data^=initConfigurable][x-data*=Options]', 19657 addToCartFormOnListing: 'form.product_addtocart_form', 19658 galleryImage: '#gallery img:not(.amasty-label-image)', 19659 labelWrapper: '.amlabel-position-wrapper' 19660 } 19661 19662 /** 19663 * @return {void} 19664 */ 19665 const injectLabelObserver = function () { 19666 const swatches = document.querySelectorAll(selectors.swatchOptions); 19667 19668 swatches.forEach(swatch => { 19669 const isListing = !!swatch.closest(selectors.addToCartFormOnListing); 19670 const injectedDispatch = `$dispatch('${observedEvent}', ` 19671 + `{productIndex: productIndex, element: $el, optionConfig: optionConfig, isListing: ${isListing ? 1 : 0}})`; 19672 19673 let mutatedInitAttribute = swatch.getAttribute('x-init'); 19674 mutatedInitAttribute += `; $watch('productIndex', (productIndex) => { ${injectedDispatch} });`; 19675 swatch.setAttribute('x-init', mutatedInitAttribute); 19676 }); 19677 } 19678 19679 /** 19680 * @param {{ 19681 * productIndex: number, 19682 * element: HTMLElement, 19683 * optionConfig: Object, 19684 * isListing: 0|1 19685 * }} payload 19686 * @return {void} 19687 */ 19688 const updateLabel = function ({detail: payload}) { 19689 const {productIndex, element, optionConfig, isListing} = payload; 19690 19691 if (!productIndex) { 19692 return; 19693 } 19694 19695 const reloadUrl = optionConfig.label_reload; 19696 const headers = { 19697 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 19698 }; 19699 const body = new URLSearchParams({ 19700 product_ids: productIndex, 19701 in_product_list: isListing 19702 }); 19703 const labelContainerSelector = isListing ? optionConfig.label_category : optionConfig.label_product; 19704 19705 fetch(`${reloadUrl}?${body.toString()}`, {headers: headers, method: 'GET'}).then((response) => { 19706 if (response.ok) { 19707 return response.json(); 19708 } 19709 }).then((result) => { 19710 const labelHtml = result.labels && result.labels[productIndex]; 19711 let labelContainer = findClosest(element, labelContainerSelector); 19712 19713 // Try to find default gallery container on product page if none of the config selectors found 19714 if (labelContainer === null && isListing === 0) { 19715 labelContainer = document.querySelector(selectors.galleryImage)?.parentElement; 19716 } 19717 19718 if (!!labelContainer) { 19719 !!labelHtml ? replaceLabels(labelContainer, labelHtml) : clearLabelWrapper(labelContainer); 19720 } 19721 }).catch((error) => { 19722 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 19723 [{ 19724 type: 'error', 19725 text: error 19726 }], 19727 5000 19728 ); 19729 }); 19730 } 19731 19732 /** 19733 * @param {HTMLElement} labelContainer 19734 * @param {string} labelHtml 19735 * @return {void} 19736 */ 19737 function replaceLabels(labelContainer, labelHtml) { 19738 const parser = new DOMParser(); 19739 const doc = parser.parseFromString(labelHtml, 'text/html'); 19740 const nodes = doc.querySelectorAll(selectors.labelWrapper); 19741 19742 if (!nodes) { 19743 return; 19744 } 19745 19746 clearLabelWrapper(labelContainer); 19747 labelContainer.append(...nodes); 19748 } 19749 19750 /** 19751 * @param {HTMLElement} labelContainer 19752 * @return {void} 19753 */ 19754 function clearLabelWrapper(labelContainer) { 19755 labelContainer.querySelectorAll(selectors.labelWrapper).forEach(wrapper => wrapper.remove()); 19756 } 19757 19758 /** 19759 * @param {HTMLElement} currentElement 19760 * @param {string} selector 19761 * @return {HTMLElement|null} 19762 */ 19763 function findClosest(currentElement, selector) { 19764 // We need to limit parent searches to prevent labels from being associated with the wrong product. 19765 const maxDepth = 3; 19766 let counter = 0; 19767 let closest = null; 19768 19769 while (currentElement.parentNode && closest === null && counter < maxDepth) { 19770 ++counter; 19771 currentElement = currentElement.parentNode; 19772 closest = currentElement.querySelector(selector); 19773 } 19774 19775 return closest; 19776 } 19777 19778 injectLabelObserver(); 19779 window.addEventListener(observedEvent, updateLabel); 19780 })(); 19781</script>
vendor: 1 bytes, line 19781
19781
19782<script> 19783 'use strict'; 19784 19785 (function () { 19786 window.amLabels = { 19787 productLabelsUrl: 'amasty_label/ajax/label', 19788 19789 /** 19790 * @param {Array} productKeys 19791 * @param {string} queryParam 19792 * @returns {URLSearchParams} 19793 */ 19794 getBody: function (productKeys, queryParam) { 19795 const baseParams = { 19796 in_product_list: true 19797 }; 19798 19799 return new URLSearchParams({ 19800 ...baseParams, 19801 [queryParam]: productKeys 19802 }) 19803 }, 19804 19805 /** 19806 * @param {Array} productKeys 19807 * @param {string} [queryParam='product_ids'] 19808 * @return {Promise<any>} 19809 */ 19810 getLabelsHtml: function (productKeys, queryParam = 'product_ids') { 19811 const headers = { 19812 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 19813 }; 19814 const body = this.getBody(productKeys, queryParam); 19815 19816 return fetch(BASE_URL + this.productLabelsUrl + '?' + body.toString(), { 19817 headers: headers, 19818 method: 'GET' 19819 }).then((response) => { 19820 if (response.ok) { 19821 return response.json(); 19822 } 19823 }).then((result) => { 19824 return result.labels; 19825 }).catch((error) => { 19826 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 19827 [{ 19828 type: 'error', 19829 text: error 19830 }], 19831 5000 19832 ); 19833 }); 19834 } 19835 }; 19836 })(); 19837</script>
vendor: 1 bytes, line 19837
19837
19838<script> 19839 'use strict'; 19840 19841 (function () { 19842 window.initAmRecentlyViewedLabels = window.initAmRecentlyViewedLabels || { 19843 selectors: { 19844 recentlyViewedContainer: '[x-data^=initRecentlyViewedProductsComponent]', 19845 productPhoto: '.product-item-photo' 19846 }, 19847 recentlyViewedProductsKey: 'recently_viewed_products', 19848 itemIdentifierType: 'id', 19849 queryParam: 'product_ids', 19850 recentlyViewedProducts: [], 19851 19852 /** 19853 * @return number[] 19854 */ 19855 getProductIds: function () { 19856 const startIndex = '' === '' ? 0 : 1; 19857 19858 return JSON.parse(hyva.getBrowserStorage().getItem(this.recentlyViewedProductsKey) ?? '[]') 19859 .slice(startIndex) 19860 .map((item) => item[this.itemIdentifierType]); 19861 }, 19862 19863 /** 19864 * @return {void} 19865 */ 19866 mutationObserver: function () { 19867 const recentlyViewedContainers = document.querySelectorAll(this.selectors.recentlyViewedContainer); 19868 19869 recentlyViewedContainers.forEach(recentlyViewedContainer => { 19870 const mutationObserver = new MutationObserver((mutationsList, observer) => { 19871 for(let mutation of mutationsList) { 19872 if (mutation.type === 'childList') { 19873 this.addLabels(recentlyViewedContainer, this.getProductIds()); 19874 observer.disconnect(); 19875 } 19876 } 19877 }); 19878 19879 mutationObserver.observe(recentlyViewedContainer, {childList: true}); 19880 }) 19881 }, 19882 19883 /** 19884 * @param {HTMLElement} element 19885 * @param {Array} productIds 19886 * @return {void} 19887 */ 19888 addLabels: function (element, productIds) { 19889 if (!productIds.length) { 19890 return; 19891 } 19892 19893 const productPhotos = element.querySelectorAll(this.selectors.productPhoto); 19894 const productPhotosById = [] 19895 19896 this.recentlyViewedProducts.forEach((product, index) => { 19897 if (productPhotos[index]) { 19898 productPhotosById[product.id] = productPhotos[index]; 19899 } 19900 }); 19901 19902 window.amLabels.getLabelsHtml(productIds, this.queryParam).then( 19903 (result) => { 19904 Object.keys(result).length && productPhotosById?.forEach((productPhoto, index) => { 19905 !!result[index] && this.appendLabel({ 19906 productPhoto: productPhoto, 19907 labelHtml: result[index], 19908 productId: index 19909 }); 19910 }) 19911 } 19912 ); 19913 }, 19914 19915 /** 19916 * @param {{ 19917 * productContainer: Element, 19918 * labelHtml: string, 19919 * productId: number, 19920 * }} labelConfig 19921 * @return {void} 19922 */ 19923 appendLabel: function (labelConfig) { 19924 const {productPhoto, labelHtml, productId} = labelConfig; 19925 const labelClass = 'am-label-product-id-' + productId; 19926 19927 productPhoto.innerHTML += labelHtml; 19928 productPhoto.classList.add(labelClass); 19929 this.overrideParentLabelStyle(productPhoto); 19930 hyva.replaceDomElement( 19931 '.' + labelClass, 19932 productPhoto.outerHTML 19933 ); 19934 }, 19935 19936 /** 19937 * @param {HTMLElement} productPhoto 19938 * @return {void} 19939 */ 19940 overrideParentLabelStyle: function (productPhoto) { 19941 productPhoto.classList.add('!w-auto'); 19942 }, 19943 19944 /** 19945 * The Recently Viewed Products block on the page doesn't include product IDs, 19946 * so we need to capture them here for matching with product photos in productPhotosById. 19947 * 19948 * @return {void} 19949 */ 19950 initComponentInterceptor: function () { 19951 const componentName = this.getRecentlyViewedComponentName(); 19952 19953 if (!componentName) { 19954 return; 19955 } 19956 19957 const originInitRecentlyViewedProductsComponent = window[componentName]; 19958 19959 window[componentName] = function () { 19960 const instance = originInitRecentlyViewedProductsComponent.apply(this, arguments) 19961 const originalRender = instance.renderRecentlyViewedProducts; 19962 19963 instance.renderRecentlyViewedProducts = function(products) { 19964 window.initAmRecentlyViewedLabels.recentlyViewedProducts = products; 19965 19966 return originalRender.call(this, products); 19967 } 19968 19969 return instance; 19970 } 19971 }, 19972 19973 getRecentlyViewedComponentName: function () { 19974 if (window.initRecentlyViewedProductsComponent) { 19975 return 'initRecentlyViewedProductsComponent'; 19976 } 19977 19978 // In Hyvä 1.3+ the component name may get a dynamic suffix, so we extract it from x-data. 19979 const xData = document.querySelector('[x-data^="initRecentlyViewedProductsComponent"]') 19980 ?.getAttribute('x-data'); 19981 19982 return xData?.match(/initRecentlyViewedProductsComponent(_[a-zA-Z0-9]+)/)?.[0] ?? null; 19983 } 19984 }; 19985 19986 window.initAmRecentlyViewedLabels.mutationObserver(); 19987 window.initAmRecentlyViewedLabels.initComponentInterceptor(); 19988 })(); 19989</script>
vendor: 1 bytes, line 19989
19989
19990<script> 19991 (function () { 19992 'use strict'; 19993 19994 const selectors = { 19995 body: '.catalog-product-view', 19996 productItem: 'product-item', 19997 productGalleryImage: '#gallery img' 19998 } 19999 20000 window.addEventListener('alpine:init', () => { 20001 Alpine.directive('amintersect', (el, { expression }, { evaluate, cleanup }) => { 20002 const observer = new IntersectionObserver(entries => { 20003 entries.forEach(entry => { 20004 if (entry.isIntersecting) { 20005 evaluate(expression); 20006 observer.disconnect(); 20007 } 20008 }) 20009 }, { threshold: 0.5 }); 20010 20011 const observeElement = getElement(); 20012 if (observeElement) { 20013 observer.observe(observeElement); 20014 } 20015 20016 cleanup(() => { 20017 observer.disconnect() 20018 }); 20019 20020 function getElement() { 20021 const isProductView = !!document.querySelector(selectors.body); 20022 return isProductView ? getImageProductBlock(el) : getCategoryProductBlock(el); 20023 } 20024 20025 function getCategoryProductBlock(el) { 20026 if (!el) { 20027 return null; 20028 } 20029 20030 if (el.previousElementSibling === null) { 20031 return el; 20032 } 20033 20034 if (!el.previousElementSibling.classList.contains(selectors.productItem)) { 20035 return getCategoryProductBlock(el.previousElementSibling); 20036 } 20037 20038 return el.previousElementSibling; 20039 } 20040 20041 function getImageProductBlock(el) { 20042 if (!el || !el.parentNode) { 20043 return el; 20044 } 20045 return el.parentNode.querySelector(selectors.productGalleryImage)?.parentNode ?? el.parentNode; 20046 } 20047 }); 20048 }); 20049 })(); 20050</script>
vendor: 1 bytes, line 20050
20050
20051<script> 20052 'use strict'; 20053 20054 function initAmlabel() { 20055 return { 20056 element: null, 20057 parent: null, 20058 initialized: true, 20059 wrapperClass: '', 20060 labelContainer: null, 20061 config: '', 20062 parentContainerProcessor: initParentContainerProcessor(), 20063 labelItemProcessor: initLabelItemProcessor(), 20064 20065 /** 20066 * @return {void} 20067 */ 20068 init() { 20069 this.config = JSON.parse(this.$el.dataset.amlabelConfig); 20070 20071 if (this.hasGliderParent(this.$el)) { 20072 this.$el.removeAttribute('x-amintersect'); 20073 } 20074 }, 20075 20076 /** 20077 * @return {void} 20078 */ 20079 initLabel: function () { 20080 this.element = this.$el; 20081 this.labelContainer = this.$refs.amLabel; 20082 this.parent = this.$el.parentElement; 20083 this.wrapperClass = `.amlabel-position-${this.config.position}-${this.config.product}-${this.config.mode}`; 20084 this.render(this.$el); 20085 }, 20086 20087 /** 20088 * @return {void} 20089 */ 20090 render: function (el) { 20091 if (el) { 20092 this.element = el; 20093 } 20094 20095 if (this.element.dataset.amlabelObserved) { 20096 return; 20097 } 20098 20099 this.element.dataset.amlabelObserved = true; 20100 this.parentContainerProcessor.process(this); 20101 this.labelItemProcessor.process(this); 20102 this.initialized = true; 20103 this.$nextTick(() => { 20104 this.labelContainer.removeAttribute('x-cloak'); 20105 }); 20106 }, 20107 20108 /** 20109 * @return {void} 20110 */ 20111 resize: function () { 20112 this.config.size && this.labelItemProcessor.setLabelSize(this); 20113 }, 20114 20115 /** 20116 * @return {Object} 20117 */ 20118 labelClasses() { 20119 return { 20120 'top-0': this.config.position.includes('top'), 20121 'top-0 bottom-0': this.config.position.includes('middle'), 20122 'bottom-0': this.config.position.includes('bottom'), 20123 'left-0': this.config.position.includes('left'), 20124 'left-0 right-0': this.config.position.includes('center'), 20125 'right-0': this.config.position.includes('right') 20126 } 20127 }, 20128 20129 /** 20130 * @return {void} 20131 */ 20132 labelClick: function () { 20133 this.labelItemProcessor.openLink(this.$event, this.config.redirect_url); 20134 }, 20135 20136 /** 20137 * @param {Object} el 20138 * @return {boolean} 20139 */ 20140 hasGliderParent: function (el) { 20141 return !!el.closest('[data-role="glider-content"]'); 20142 } 20143 } 20144 } 20145 (() => { 20146 const initFn = () => Alpine.data('initAmlabel', initAmlabel); 20147 window.Alpine ? initFn() : window.addEventListener('alpine:init', initFn, {once: true}) 20148 })() 20149</script>
vendor: 1 bytes, line 20149
20149
20150<script> 20151 'use strict'; 20152 20153 let isAmlabelGliderLoad = false; 20154 20155 window.addEventListener('glider-loaded', (e) => { 20156 if (isAmlabelGliderLoad) { 20157 return; 20158 } 20159 20160 let gliderPrototype = Glider.prototype; 20161 let originalInit = gliderPrototype.init; 20162 let originalRemoveItem = gliderPrototype.removeItem; 20163 let originalAddItem = gliderPrototype.addItem; 20164 let originalUpdateControls = gliderPrototype.updateControls; 20165 20166 document.querySelectorAll('.glider-track .amlabel-position-wrapper').forEach((el) => { 20167 el.classList.remove('glider-slide'); 20168 el.removeAttribute('style'); 20169 }) 20170 20171 gliderPrototype.init = function (refresh, paging) { 20172 let _ = this; 20173 let track = this.track; 20174 20175 _.track = { 20176 children: Array.from(_.track.children).filter( 20177 (el) => { return !el.classList.contains('amlabel-position-wrapper') } 20178 ), 20179 style: { width: '' } 20180 } 20181 originalInit.call(_, refresh, paging); 20182 track.style.width = _.track.style.width; 20183 }; 20184 20185 gliderPrototype.removeItem = function (index) { 20186 let _ = this; 20187 20188 _.track = _.ele.querySelector('.glider-track'); 20189 originalRemoveItem.call(_, index); 20190 } 20191 20192 gliderPrototype.addItem = function (ele) { 20193 let _ = this; 20194 20195 _.track = _.ele.querySelector('.glider-track'); 20196 originalAddItem.call(_, ele); 20197 } 20198 20199 gliderPrototype.updateControls = function (event) { 20200 let _ = this; 20201 20202 _.slides = Array.from(_.slides).filter( 20203 (el) => { return !el.classList.contains('amlabel-position-wrapper') } 20204 ); 20205 originalUpdateControls.call(_, event); 20206 } 20207 20208 isAmlabelGliderLoad = true; 20209 }) 20210 20211 window.addEventListener('glider-loaded', (e) => { 20212 Glider(e.srcElement).refresh(true); 20213 }) 20214 20215</script>
20215 20216
20217<script> 20218 'use strict'; 20219 20220 (() => { 20221 const browserStorage = hyva.getBrowserStorage(); 20222 const storageKey = 'mage-banners-cache-storage'; 20223 const cacheTimeoutKey = 'mage-banners-cache-timeout'; 20224 const storeIdKey = 'mage-banners-storeId'; 20225 const cartIdKey = 'mage-banners-cartDataId'; 20226 const options = { 20227 cacheTtl: 30000, 20228 sectionLoadUrl: 'https://www.lafuma-moebel.de/banner/ajax/load/' 20229 }; 20230 20231 if (browserStorage && browserStorage.getItem(storageKey) === null) { 20232 browserStorage.setItem(storageKey, "{}"); 20233 } 20234 20235 async function initBanners(elements) { 20236 invalidateCacheBySessionTimeOut(); 20237 20238 const storageData = JSON.parse(browserStorage.getItem(storageKey)); 20239 let items = []; 20240 20241 if (storageData.data) { 20242 items = getFromStorage(); 20243 } else { 20244 items = await getFromServer(); 20245 } 20246 20247 populateDynamicBlocks(elements, items); 20248 } 20249 20250 // Cache invalidation. Banner cache ttl is 30 sec by default.
20251 function invalidateCacheBySessionTimeOut() { 20252 const cacheEol = new Date(browserStorage.getItem(cacheTimeoutKey)) 20253 const dateTo = new Date(Date.now() + options.cacheTtl); 20254 const globalStoreId = hyva.getCookie('store') || 'default'; 20255 const mageCacheStorage = JSON.parse(browserStorage.getItem('mage-cache-storage')); 20256 let cartDataId = null; 20257 20258 if (browserStorage.getItem(storeIdKey) === null) { 20259 browserStorage.setItem(storeIdKey, globalStoreId); 20260 } 20261 20262 if (mageCacheStorage !== null && 20263 mageCacheStorage.hasOwnProperty('cart')) { 20264 cartDataId = mageCacheStorage.cart['data_id']; 20265 } 20266 20267 if (cacheEol < new Date() || 20268 browserStorage.getItem(storeIdKey) !== globalStoreId || 20269 Number(browserStorage.getItem(cartIdKey)) !== cartDataId) 20270 { 20271 browserStorage.setItem(storageKey, "{}"); 20272 browserStorage.setItem(cacheTimeoutKey, dateTo); 20273 browserStorage.setItem(storeIdKey, globalStoreId); 20274 20275 if (cartDataId) { 20276 browserStorage.setItem(cartIdKey, cartDataId); 20277 } 20278 } 20279 } 20280 20281 async function getFromServer() { 20282 try { 20283 const url = new URL(options.sectionLoadUrl); 20284 url.searchParams.append('requesting_page_url', url.origin); 20285 url.searchParams.append('_', Date.now()); 20286 20287 const response = await fetch(url.href, { 20288 headers: { 20289 'Content-Type': 'application/json', 20290 'X-Requested-With': 'XMLHttpRequest' 20291 } 20292 }); 20293 const storageData = await response.json(); 20294 20295 browserStorage.setItem(storageKey, JSON.stringify(storageData)); 20296 20297 if (storageData.data && storageData.data.items) { 20298 return storageData.data.items.fixed ? storageData.data.items.fixed : []; 20299 } 20300 } catch (error) { 20301 console.warn(error); 20302 20303 return []; 20304 } 20305 } 20306 20307 function getFromStorage() { 20308 const storageData = JSON.parse(browserStorage.getItem(storageKey)); 20309 if (storageData.data && storageData.data.items) { 20310 return storageData.data.items.fixed || []; 20311 } 20312 } 20313 20314 function populateDynamicBlocks(elements, items) { 20315 if (!items || items.length === 0) { 20316 console.log(`No\u0020banners\u0020found`); 20317 20318 return; 20319 } 20320 20321 for (const element of elements) { 20322 // Filter IDs by those allowed for current customer segment 20323 const ids = element.getAttribute('data-ids').split(',').filter((id) => items.hasOwnProperty(id)); 20324 const config = { 20325 type: element.getAttribute('data-rotate'), 20326 dynamicBlockId: element.getAttribute('data-banner-id'), 20327 }; 20328 20329 getByType(config, element, items, ids); 20330 } 20331 } 20332 20333 function getByType(config = null, element, items, ids) { 20334 if (!config) return; 20335 20336 if (config.type === 'random') { 20337 ids = [ids[Math.floor(Math.random() * ids.length)]]; 20338 } 20339 20340 if (config.type === 'series' || config.type === 'shuffle') { 20341 ids = [getNextInOrder(config, ids)]; 20342 } 20343 20344 for (const id of ids) { 20345 if (items[id]) { 20346 element.insertAdjacentHTML('beforeend', items[id].content); 20347 } 20348 } 20349 } 20350 20351 function getNextInOrder(config, ids) { 20352 const dynamicBlockId = config.dynamicBlockId; 20353 const localStorageKey = 'dynamic-block-banner-rotator'; 20354 let localStorageData = JSON.parse(localStorage.getItem(localStorageKey)) || {}; 20355 let nextId; 20356 20357 if (localStorageData[dynamicBlockId] && localStorageData[dynamicBlockId].length > 0) { 20358 nextId = localStorageData[dynamicBlockId].shift(0); 20359 } else { 20360 if (config.type === 'shuffle') { 20361 ids.sort(() => Math.random() - 0.5); 20362 } 20363 nextId = ids.shift(0); 20364 localStorageData[dynamicBlockId] = ids; 20365 } 20366 20367 localStorage.setItem( 20368 localStorageKey, 20369 JSON.stringify(localStorageData) 20370 ); 20371 20372 return nextId; 20373 } 20374 20375 const elements = document.querySelectorAll('[data-banner-id][data-ids]'); 20376 if (elements.length > 0) { 20377 initBanners(elements); 20378 } 20379 })(); 20380</script>
vendor: 1 bytes, line 20380
20380
20381<script type="text/json" id="default-section-data"> 20382 {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"AT":{"name":"\u00d6sterreich","regions":{"304":{"code":"BL","name":"Burgenland"},"295":{"code":"KN","name":"K\u00e4rnten"},"286":{"code":"NO","name":"Nieder\u00f6sterreich"},"289":{"code":"OO","name":"Ober\u00f6sterreich"},"292":{"code":"SB","name":"Salzburg"},"298":{"code":"ST","name":"Steiermark"},"301":{"code":"TI","name":"Tirol"},"307":{"code":"VB","name":"Vorarlberg"},"283":{"code":"WI","name":"Wien"}}},"DE":{"name":"Deutschland","regions":{"238":{"code":"BAW","name":"Baden-W\u00fcrttemberg"},"241":{"code":"BAY","name":"Bayern"},"244":{"code":"BER","name":"Berlin"},"247":{"code":"BRG","name":"Brandenburg"},"250":{"code":"BRE","name":"Bremen"},"253":{"code":"HAM","name":"Hamburg"},"256":{"code":"HES","name":"Hessen"},"259":{"code":"MEC","name":"Mecklenburg-Vorpommern"},"235":{"code":"NDS","name":"Niedersachsen"},"262":{"code":"NRW","name":"Nordrhein-Westfalen"},"265":{"code":"RHE","name":"Rheinland-Pfalz"},"268":{"code":"SAR","name":"Saarland"},"271":{"code":"SAS","name":"Sachsen"},"274":{"code":"SAC","name":"Sachsen-Anhalt"},"277":{"code":"SCN","name":"Schleswig-Holstein"},"280":{"code":"THE","name":"Th\u00fcringen"}}},"data_id":1791433638},"captcha":[],"wishlist":{"items":[]},"instant-purchase":[],"loggedAsCustomer":[],"multiplewishlist":[],"persistent":[],"review":[],"payments":[],"faq":[],"ammessages":[],"hyva_enterprise":[],"wp_ga4":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[],"paypal-buyer-country":[]}</script>
20382 20383<div x-data="amMessage()" x-bind="eventListeners"></div> 20384
20385<script> 20386 function amMessage() { 20387 let lastProcessedDataId = null; 20388 const processedMessageHashes = new Set(); 20389 let debounceTimer; 20390 20391 return { 20392 init() { 20393 this.processStoredMessages(); 20394 20395 window.addEventListener('beforeunload', () => { 20396 processedMessageHashes.clear(); 20397 lastProcessedDataId = null; 20398 }); 20399 }, 20400 20401 eventListeners: { 20402 ['@private-content-loaded.window'](event) { 20403 const { ammessages } = event.detail.data; 20404 20405 clearTimeout(debounceTimer); 20406 debounceTimer = setTimeout(() => { 20407 if (ammessages?.data_id && ammessages.data_id === lastProcessedDataId) { 20408 return; 20409 } 20410 20411 lastProcessedDataId = ammessages?.data_id; 20412 20413 // Checking hash message 20414 if (ammessages?.messages) { 20415 const messageHash = JSON.stringify(ammessages.messages); 20416 if (processedMessageHashes.has(messageHash)) { 20417 return; 20418 } 20419 processedMessageHashes.add(messageHash); 20420 } 20421 20422 const isCartPage = document.body.classList.contains('checkout-cart-index'); 20423 const isCheckoutPage = document.body.classList.contains('hyva_checkout-index-index'); 20424 const onePageSuccessPage = document.body.classList.contains('hyva_checkout_onepage_success'); 20425 20426 if (!isCartPage && !isCheckoutPage && !onePageSuccessPage && ammessages?.messages) { 20427 this.processMessages(ammessages.messages); 20428 } 20429 }, 500); 20430 }, 20431 ['@am-promo:initialized.window']() { 20432 this.processStoredMessages(); 20433 }, 20434 ['@am-promo-products-recollect.window']() { 20435 this.processStoredMessages(); 20436 } 20437 }, 20438 20439 processStoredMessages() { 20440 try { 20441 const messages = JSON.parse(localStorage.getItem('amFreeGiftCartMessages')); 20442 if (messages?.length) { 20443 messages.forEach(message => dispatchMessages([message], 5000)); 20444 localStorage.removeItem('amFreeGiftCartMessages'); 20445 } 20446 } catch (e) { 20447 console.error('Error processing stored messages:', e); 20448 } 20449 }, 20450 20451 processMessages(messages) { 20452 if (messages?.notice) { 20453 this.handleNoticeMessage(messages.notice); 20454 } 20455 }, 20456 20457 handleNoticeMessage(notice) { 20458 if (!notice) return; 20459 dispatchMessages([{ type: notice.type, text: notice.text }]); 20460 } 20461 } 20462 } 20463</script>
20463 20464<div 20465 class="am-loader-wrapper" 20466 x-data="amXnotifLoaderPlP" 20467 x-bind="eventListeners" 20468> 20469 <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" 20470 style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" 20471 x-show="isLoading" 20472 x-transition:enter="ease-out duration-200" 20473 x-transition:enter-start="opacity-0" 20474 x-transition:enter-end="opacity-100" 20475 x-transition:leave="ease-in duration-200" 20476 x-transition:leave-start="opacity-100" 20477 x-transition:leave-end="opacity-0"> 20478 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" class="text-primary animate-spin" role="img"> 20479 <style> 20480 @keyframes spinner-ball-triangle1 { 20481 0% { transform: translate(0%, 0%); } 20482 33% { transform: translate(38%, -79%); } 20483 66% { transform: translate(77%, 0%); } 20484 100% { transform: translate(0%, 0%); } 20485 } 20486 20487 @keyframes spinner-ball-triangle2 { 20488 0% { transform: translate(0%, 0%); } 20489 33% { transform: translate(38%, 79%); } 20490 66% { transform: translate(-38%, 79%); } 20491 100% { transform: translate(0%, 0%); } 20492 } 20493 20494 @keyframes spinner-ball-triangle3 { 20495 0% { transform: translate(0%, 0%); } 20496 33% { transform: translate(-77%, 0%); } 20497 66% { transform: translate(-38%, -79%); } 20498 100% { transform: translate(0%, 0%); } 20499 } 20500 </style> 20501 <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/> 20502 <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/> 20503 <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/> 20504<title>loader</title></svg> 20505 <div class="ml-10 text-primary text-xl"> 20506 Wird geladen ⦠</div> 20507 </div> 20508</div>
20509<script> 20510 function amXnotifLoaderPlP() { 20511 return { 20512 isLoading: false, 20513 eventListeners : { 20514 ['@showAmLoader.window']() { 20515 this.isLoading = true; 20516 }, 20517 ['@hideAmLoader.window']() { 20518 this.isLoading = false; 20519 } 20520 } 20521 } 20522 } 20523 20524 window.addEventListener( 20525 'alpine:init', 20526 () => Alpine.data('amXnotifLoaderPlP', amXnotifLoaderPlP), 20527 {once: true} 20528 ); 20529</script>
vendor: 1 bytes, line 20529
20529
20530<script> 20531 'use strict'; 20532 20533 function initStockSubscribe() { 20534 return { 20535 config: null, 20536 stock: null, 20537 emailInput: '', 20538 isGdprChecked: false, 20539 isValid: true, 20540 buttonDisabled: false, 20541 showModal: false, 20542 20543 emailRegex: /^[^\s@]+@[^\s@]+\.[^\s@]+$/, 20544 base64Support: typeof btoa !== 'undefined', 20545 20546 init() { 20547 this.config = JSON.parse(this.$el.dataset.config); 20548 20549 if (this.config.isConfigurable) { 20550 this.stock = amXnotifSubscribeComponentFactory(this.config[0]); 20551 this.stock.isAvailable = this.config.isAvailable; 20552 this.stock.isShowAlert = this.config.isShowAlert; 20553 this.stock.isProductSalable = this.config.isProductSalable; 20554 } 20555 }, 20556 20557 isGdprCheckedChangeEvent() { 20558 return this.isGdprChecked = this.$el.checked; 20559 }, 20560 20561 get isAvailable() { 20562 return this.stock ? this.stock.isAvailable : this.config?.isAvailable ?? false; 20563 }, 20564 20565 get isProductSalable() { 20566 return this.stock ? this.stock.isProductSalable : this.config?.isProductSalable ?? false; 20567 }, 20568 20569 get containerVisible() { 20570 return this.stock ? this.stock.isShowAlert : this.config?.isShowAlert ?? false; 20571 }, 20572 20573 containerClasses() { 20574 return { 20575 'text-center': this.config?.isGridMode, 20576 'text-left': this.config?.isListMode 20577 }; 20578 }, 20579 20580 get currentProductId() { 20581 return this.config.isConfigurable ? this.stock?.productIndex : this.config.productIdentifier; 20582 }, 20583 20584 get popupModalTitleId() { 20585 return 'modal-title-' + this.config.productIdentifier; 20586 }, 20587 20588 get popupGuestEmailId() { 20589 return 'amxnotif-guest-email-popup-' + this.config.productIdentifier; 20590 }, 20591 20592 get popupValidationId() { 20593 return 'email-validation-popup-' + this.config.productIdentifier; 20594 }, 20595 20596 get popupGdprId() { 20597 return 'amxnotif-stock-gdrp-popup-' + this.config.productIdentifier; 20598 }, 20599 20600 get inlineGuestEmailId() { 20601 return 'amxnotif-guest-email-' + this.config.productIdentifier; 20602 }, 20603 20604 get inlineValidationId() { 20605 return 'email-validation-' + this.config.productIdentifier; 20606 }, 20607 20608 get inlineGdprId() { 20609 return 'amxnotif-stock-gdrp-' + this.config.productIdentifier; 20610 }, 20611 20612 get validationMessage() { 20613 return this.isValid ? '' : this.config.validationLabel; 20614 }, 20615 20616 get isSubmitDisabled() { 20617 return this.buttonDisabled || !this.isValid; 20618 }, 20619 20620 handleConfigurableSelectChanged(event) { 20621 if (!this.stock.isEventFromSameProduct(event, this.$el)) { 20622 return; 20623 } 20624 this.stock.getSimpleProduct(event.detail, this.$el); 20625 }, 20626 20627 openModal() { 20628 this.showModal = true; 20629 }, 20630 20631 submitSubscribe() { 20632 const form = this.$el.closest('form'); 20633 if (form && !form.checkValidity()) { 20634 form.reportValidity(); 20635 return; 20636 } 20637 20638 return this.fetchSubscribe(this.currentProductId); 20639 }, 20640 20641 emailInputChangeEvent() { 20642 return this.emailInput = this.$el.value 20643 }, 20644 20645 checkValidation() { 20646 this.isValid = this.validateEmail(this.emailInput); 20647 20648 return this.isValid; 20649 }, 20650 20651 validateEmail(email) { 20652 const emails = email.split(/[\s\n,]+/g).map(e => e.trim()).filter(e => e); 20653 return emails.every(e => this.emailRegex.test(e)); 20654 }, 20655 20656 validateForm() { 20657 this.checkValidation(); 20658 20659 if (!this.isValid) { 20660 this.showMessage('error', this.config.validationLabel); 20661 } 20662 20663 return this.isValid; 20664 }, 20665 20666 showMessage(type, message) { 20667 if (typeof window.dispatchMessages !== 'undefined') { 20668 window.dispatchMessages([{ type, text: message }]); 20669 } else { 20670 console[type === 'error' ? 'error' : 'log'](message); 20671 } 20672 }, 20673 20674 getProductUid(productId) { 20675 return this.base64Support ? btoa(productId) : productId; 20676 }, 20677
20678 async fetchSubscribe(productId) { 20679 // Validation 20680 if (!this.validateForm()) { 20681 return; 20682 } 20683 20684 if (this.config.isGDPREnabled && !this.isGdprChecked) { 20685 this.showMessage('error', 'Please\u0020accept\u0020GDPR\u0020agreement'); 20686 return; 20687 } 20688 20689 this.buttonDisabled = true; 20690 window.dispatchEvent(new Event('showAmLoader')); 20691 20692 try { 20693 const variables = { 20694 input: { 20695 product_uid: this.getProductUid(productId), 20696 parent_uid: this.config.isConfigurable ? this.getProductUid(this.config.productIdentifier) : '', 20697 email: String(this.emailInput).trim(), 20698 gdpr_agreement: this.config.isGDPREnabled 20699 } 20700 }; 20701 20702 const controller = new AbortController(); 20703 const timeoutId = setTimeout(() => controller.abort(), 10000); 20704 20705 const response = await fetch(`${BASE_URL}graphql`, { 20706 method: 'POST', 20707 headers: { 20708 'Store': 'de_de', 20709 'Content-Type': 'application/json', 20710 'X-Requested-With': 'XMLHttpRequest' 20711 }, 20712 body: JSON.stringify({ 20713 query: this.config.mutationStockSubscription, 20714 variables: variables 20715 }), 20716 signal: controller.signal 20717 }); 20718 20719 clearTimeout(timeoutId); 20720 20721 if (!response.ok) { 20722 throw new Error(`HTTP error! status: ${response.status}`); 20723 } 20724 20725 const result = await response.json(); 20726 20727 if (result?.data?.AmxnotifStockSubscribe) { 20728 this.showMessage('success', result.data.AmxnotifStockSubscribe.response_message); 20729 this.resetForm(); 20730 this.hideModal(); 20731 } else { 20732 const errorMessage = result?.errors?.[0]?.message || 'Es\u0020ist\u0020ein\u0020Fehler\u0020aufgetreten.'; 20733 throw new Error(errorMessage); 20734 } 20735 20736 } catch (error) { 20737 console.error('Subscription Error:', error); 20738 const message = error.name === 'AbortError' 20739 ? 'Request\u0020timeout.\u0020Please\u0020try\u0020again.' 20740 : error.message; 20741 this.showMessage('error', message); 20742 } finally { 20743 this.buttonDisabled = false; 20744 window.dispatchEvent(new Event('hideAmLoader')); 20745 } 20746 }, 20747 20748 resetForm() { 20749 this.emailInput = ''; 20750 this.isGdprChecked = false; 20751 this.isValid = true; 20752 }, 20753 20754 hideModal() { 20755 this.showModal = false; 20756 this.resetForm(); 20757 } 20758 } 20759 } 20760 window.addEventListener( 20761 'alpine:init', 20762 () => Alpine.data('initStockSubscribe', initStockSubscribe), 20763 { once: true } 20764 ); 20765</script>
20765 20766 20767
20768<script> 20769 'use strict'; 20770 20771 function amXnotifSubscribeComponentList(config) { 20772 return { 20773 isValid: true, 20774 buttonDisabled: false, 20775 20776 getMessages(type, message) { 20777 return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 20778 [{ 20779 type: type, 20780 text: message 20781 }] 20782 ); 20783 }, 20784 fetchSubscribe(productId) { 20785 let variables = { 20786 input: { 20787 product_uid: btoa(productId), 20788 parent_uid: config.isConfigurable ? btoa(config.productIdentifier) : '', 20789 } 20790 }; 20791 this.buttonDisabled = true; 20792 window.dispatchEvent(new Event('showAmLoader')); 20793 20794 fetch(BASE_URL + 'graphql', { 20795 method: 'POST', 20796 headers: { 20797 'Store': 'de_de', 20798 'Content-Type': 'application/json', 20799 }, 20800 body: JSON.stringify({query: config.mutationStockSubscription, variables}), 20801 mode: "cors", 20802 credentials: "include" 20803 }) 20804 .then((response) => response.json()) 20805 .then((result) => { 20806 if (result?.data?.AmxnotifStockSubscribe) { 20807 this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message); 20808 } else { 20809 let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten."; 20810 this.getMessages("error", message) 20811 } 20812 }) 20813 .finally(() => { 20814 this.buttonDisabled = false; 20815 window.dispatchEvent(new Event('hideAmLoader')); 20816 }) 20817 } 20818 } 20819 } 20820 20821 function stockStatusCategoryData() { 20822 const config = JSON.parse(this.$el.dataset.config); 20823 20824 return Object.assign( 20825 { 20826 ...amXnotifSubscribeComponentFactory({ 20827 productId: config.productId, 20828 isAvailable: config.isAvailable, 20829 isShowAlert: config.isShowAlert, 20830 isOutofstockConfigurable: config.isOutOfStockConfigurable, 20831 attributesCount: config.attributesCount, 20832 encodedUrl: config.encodedUrl, 20833 childProducts: config.childProducts, 20834 childProductsAlertStatus: config.childProductsAlertStatus, 20835 indexMapping: config.indexMapping 20836 }), 20837 ...amXnotifSubscribeComponentList(config), 20838 20839 modeListClass() { 20840 return { 20841 'flex justify-start': `${this.$el.dataset.mode}`, 20842 } 20843 }, 20844 modeClass() { 20845 return { 20846 'justify-center': `${this.$el.dataset.grid}`, 20847 'justify-start': `${this.$el.dataset.list}` 20848 } 20849 }, 20850 optionsAdditionalClass() { 20851 return this.options.additionalClass 20852 }, 20853 fetchSubscribeClickEvent() { 20854 return this.fetchSubscribe(this.productIndex) 20855 }, 20856 configurableSelectChanged(event) { 20857 if (!this.isEventFromSameProduct(event, this.$el)) { 20858 return; 20859 } 20860 return this.getSimpleProduct(event.detail, this.$el) 20861 }, 20862 isCategoryNotificationLabel() { 20863 return this.options.categoryNotificationLabel 20864 }, 20865 optionsLabelText() { 20866 return this.options.label 20867 }, 20868 optionsCategoryNotificationLabel() { 20869 return this.options.categoryNotificationLabel 20870 } 20871 } 20872 ) 20873 } 20874 20875 window.addEventListener( 20876 'alpine:init', 20877 () => Alpine.data( 20878 'stockStatusCategoryData', 20879 stockStatusCategoryData 20880 ), 20881 {once: true} 20882 ); 20883</script>
20883 20884 20885 20886
20887<script> 20888 window.addEventListener('init-external-scripts', () => { 20889 const mobileAsideSelector = '#amblog-mobile-aside-wrapper'; 20890 20891 if (window._amswipedEvents) { 20892 return; 20893 } 20894 20895 if (!document.querySelector(mobileAsideSelector)) { 20896 return; 20897 } 20898 20899 // load swiped events 20900 const script = document.createElement('script'); 20901 script.src = 'https://www.lafuma-moebel.de/static/version1788873043/frontend/Synolia/lafumamobilier/de_DE/Amasty_BlogHyva/js/swiped-events.min.js'; 20902 script.defer = true; 20903 document.body.appendChild(script); 20904 20905 window._amswipedEvents = true; 20906 }, { once: true, passive: true }); 20907</script>
20907 20908 </div>
20908<script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-f27923ed7a687545e4a","applicationID":"1075037183","transactionName":"YgdSYhQADUJYABFfXFtNcVUSCAxfFgIIVF9aBR9fCAUGSRYTCkVH","queueTime":0,"applicationTime":4200,"atts":"TkBRFFwaHkw=","errorBeacon":"bam.nr-data.net","agent":""}</script>
20908
20908<script> 20909 const wpGA4ServerSide = { 20910 pushClick: function(productId, listId, listName, index, elm) { 20911 if (elm && elm.hasAttribute('onclick')) { 20912 var requestUrl = 'https://www.lafuma-moebel.de/weltpixel_ga4/track/productclick/'; 20913 if (productId && listId && listName) { 20914 fetch(requestUrl, { 20915 method: 'POST', 20916 headers: { 20917 'Content-Type': 'application/x-www-form-urlencoded', 20918 'X-Requested-With': 'XMLHttpRequest' 20919 }, 20920 body: 'product_id=' + productId + '&list_id=' + listId +'&list_name=' + listName + '&index=' + index 20921 }) 20922 .then(res => res.json()) 20923 .then(data => { 20924 }); 20925 } 20926 } 20927 }, 20928 20929 pushViewItemList: function(hashId) { 20930 if (hashId && document.getElementById('wp_ga4_server_side_view_item_list')) { 20931 var requestUrl = 'https://www.lafuma-moebel.de/weltpixel_ga4/track/viewitemlist/'; 20932 fetch(requestUrl, { 20933 method: 'POST', 20934 headers: { 20935 'Content-Type': 'application/x-www-form-urlencoded', 20936 'X-Requested-With': 'XMLHttpRequest' 20937 }, 20938 20939 body: 'hash_id='+hashId 20940 }) 20941 .then(res => res.json()) 20942 .then(data => { 20943 }); 20944 } 20945 } 20946 }; 20947 20948 window.wpGA4ServerSide = wpGA4ServerSide; 20949 20950 let allowGa4Services = window.ga4AllowServices ?? true; 20951 20952 if (allowGa4Services) { 20953 const {fetch: originalFetch} = window; 20954 window.fetch = async (...args) => { 20955 let [resource, config] = args; 20956 let response = await originalFetch(resource, config); 20957 20958 if (resource.search('/customer\/section\/load/') > 0) { 20959 response.clone().json().then(data => { 20960 if (data.wp_ga4.datalayer) { 20961 const dataLayerData = JSON.parse(data.wp_ga4.datalayer); 20962 dataLayerData.forEach((dataLayerItem) => { 20963 window.dataLayer.push({ecommerce: null}); 20964 window.dataLayer.push(dataLayerItem); 20965 }); 20966 } 20967 }); 20968 } 20969 return response; 20970 }; 20971 } 20972 20973 </script>
20973 20974</body> 20975</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.