{
  "version": 3,
  "sources": ["/cdn/shop/t/36/assets/zr-cart-ui.js?r=21340"],
  "sourcesContent": ["import * as cart from \"zr/cart.js\";\nimport { angebotB, formatCHF, TIERS, LINES, DISCOVERY, BEWERTUNG, KOLLEKTIONEN, findProdukt, findCombo, SEITEN, PFLEGE, FREE_SHIPPING_THRESHOLD } from \"zr/data.js\";\nimport { ikon } from \"zr/ikon.js\";\nimport { bild, hatBild } from \"zr/bild.js\";\nimport { getLinie, mitLinie } from \"zr/linie.js\";\nimport { sperre, entsperre } from \"zr/scroll-sperre.js\";\nexport const DEFAULT_LABELS = {\n  title: \"Warenkorb\",\n  close: \"Warenkorb schliessen\",\n  emptyTitle: \"Noch leer.\",\n  empty: \"Dein Duft fehlt noch.\",\n  emptyButton: \"D\u00FCfte ansehen\",\n  emptyDisc: \"Erst testen\",\n  decrease: \"Menge verringern\",\n  increase: \"Menge erh\u00F6hen\",\n  remove: \"Entfernen\",\n  removed: (name) => `Entfernt: ${name}.`,\n  undo: \"R\u00FCckg\u00E4ngig\",\n  edit: \"Set bearbeiten\",\n  editDone: \"Fertig\",\n  subtotal: \"Zwischensumme\",\n  savings: \"Ersparnis\",\n  subtotalSets: \"Einzelpreise zusammen\",\n  savingsSets: \"Set-Vorteil\",\n  shipping: \"Versand\",\n  shippingFree: \"Gratis\",\n  shippingOpen: \"an der Kasse berechnet\",\n  shippingFoot: (gratis) => gratis ? [\"Versand\", \"Gratis\"] : [\"Versand\", \"an der Kasse berechnet\"],\n  youSave: (n) => `Du sparst ${formatCHF(n)}`,\n  total: \"Total\",\n  checkout: \"Zur Kasse\",\n  done: \"Fertig\",\n  setCount: \"Anzahl Sets\",\n  freeShippingMore: (rest) => `Noch ${formatCHF(rest)} bis zum Gratis-Versand.`,\n  freeShippingDone: \"Der Versand geht auf uns.\",\n  freeShippingInfo: \"Ab 100 \u20AC ist der Versand gratis.\",\n  trust: (datum) => `Bei dir bis ${datum} \u00B7 30 Tage Geld zur\u00FCck, auch ge\u00F6ffnet`,\n  rating: `\u2605 ${BEWERTUNG.note} \u00B7 ${BEWERTUNG.kunden}`,\n  code: \"Rabattcode?\",\n  codeField: \"Rabattcode\",\n  codeApply: \"Anwenden\",\n  proben: \"Erst testen? Proben\",\n  probenAdd: (name) => `${name} in den Warenkorb`,\n  setBadge: (pct) => `Set-Vorteil \u2212${pct} %`,\n  kasseHref: \"/checkout\",\n  warenkorbHref: \"/cart\",\n  lineupHref: \"/\",\n  produktHref: (id) => window.ZR.routes.duft(id)\n};\nconst FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])';\nconst EASE = \"cubic-bezier(.22, 1, .36, 1)\";\nlet uid = 0;\nexport const el = (tag, cls, attrs = {}, text) => {\n  const n = document.createElement(tag);\n  if (cls) n.className = cls;\n  for (const [k, v] of Object.entries(attrs)) if (v != null) n.setAttribute(k, v);\n  if (text != null) n.textContent = text;\n  return n;\n};\nexport const SET_NAME = { get 3() {\n  return angebotB() ? \"3er-Set\" : \"2+1-Set\";\n}, get 5() {\n  return angebotB() ? \"5er-Set\" : \"3+2-Set\";\n} };\nconst ZAHLWORT = [\"\", \"Ein\", \"Zwei\", \"Drei\", \"Vier\", \"F\u00FCnf\"];\nconst ZAHLWORT_KLEIN = [\"\", \"einen\", \"zwei\", \"drei\", \"vier\", \"f\u00FCnf\"];\nexport const payIcon = (datei) => new URL(`https://cdn.shopify.com/s/files/1/0897/9614/9513/files/zr__pay__${datei}.svg`, import.meta.url).href;\nexport const ICON = {\n  wagen: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2.5 6.5h11v9h-11z\"/><path d=\"M13.5 9.5h4l3 3.2v2.8h-7\"/><circle cx=\"6.5\" cy=\"17\" r=\"1.8\"/><circle cx=\"17\" cy=\"17\" r=\"1.8\"/></svg>',\n  eimer: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 7h15\"/><path d=\"M9.5 7V4.8h5V7\"/><path d=\"M6.5 7l.9 12.2a1 1 0 0 0 1 .8h7.2a1 1 0 0 0 1-.8L17.5 7\"/><path d=\"M10 10.5v6M14 10.5v6\"/></svg>',\n  plus: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"/></svg>',\n  haken: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m5 12.5 4.5 4.5L19 7.5\"/></svg>',\n  etikett: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3.5 12.2V4.5a1 1 0 0 1 1-1h7.7l8.3 8.3a1 1 0 0 1 0 1.4l-7.1 7.1a1 1 0 0 1-1.4 0z\"/><circle cx=\"8\" cy=\"8\" r=\"1.4\"/></svg>',\n  lupe: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"10.5\" cy=\"10.5\" r=\"6\"/><path d=\"m15 15 5 5\"/></svg>'\n};\nexport function positionText(item) {\n  if (item.type === \"discovery\") {\n    const d = DISCOVERY.find((x) => x.id === item.id);\n    return { titel: d?.name ?? \"Discovery Set\", unter: d?.proben ? `${d.proben} Proben` : \"\", ids: [], disc: d };\n  }\n  if (item.type === \"produkt\") {\n    const pr = findProdukt(item.id);\n    return { titel: pr?.name ?? item.id, unter: item.plan ? (/membership/i.test(item.planName || \"\") ? item.planName : `Abo \u00B7 ${item.planName || \"jederzeit k\u00FCndbar\"}`) : pr?.zusatz ?? \"\", ids: [item.id] };\n  }\n  if (item.type === \"combo\") {\n    const c = findCombo(item.id);\n    return { titel: c?.name ?? item.id, unter: c?.zusatz ?? \"\", ids: item.ids };\n  }\n  const namen = item.scents.map((id) => findProdukt(id)?.name ?? id);\n  if (item.doppelt) {\n    const n = item.qty / 2;\n    const zahl = new Map();\n    namen.forEach((x) => zahl.set(x, (zahl.get(x) || 0) + 1));\n    return { titel: `${n} + ${n} gratis`, unter: [...zahl].map(([x, k]) => k > 1 ? `${k} \u00D7 ${x}` : x).join(\" \u00B7 \"), format: `${item.qty} \u00D7 50 ml \u00B7 Extrait de Parfum`, ids: [...new Set(item.scents)] };\n  }\n  if (item.qty === 1) return { titel: namen[0], unter: \"Extrait de Parfum \u00B7 50\u00A0ml\", ids: item.scents };\n  return { titel: SET_NAME[item.qty] ?? `${item.qty} Flakons`, unter: namen.join(\" \u00B7 \"), format: `${item.qty} \u00D7 50\u00A0ml \u00B7 Extrait de Parfum`, ids: item.scents };\n}\nexport function flakons(p, item, sizes = \"96px\") {\n  const t = positionText(item);\n  const ul = el(\"ul\", `${p}__thumbs${t.ids.length > 1 ? \"\" : ` ${p}__thumbs--einzel`}`, { \"aria-hidden\": \"true\" });\n  (t.ids.length ? t.ids : [null]).forEach((sid) => {\n    const pack = sid && hatBild(`a/packfrei-${sid}`);\n    const lux = sid && findProdukt(sid)?.kollektion === \"luxury\";\n    const li = el(\"li\", `${p}__thumb${sid ? pack ? \"\" : lux ? ` ${p}__thumb--lux` : ` ${p}__thumb--frei` : ` ${p}__thumb--disc`}`);\n    const img = el(\"img\", \"\", { alt: \"\", loading: \"lazy\", decoding: \"async\" });\n    const pf = sid && findProdukt(sid)?.kollektion === \"body-skin\" ? findProdukt(sid).img?.frontFrei?.replace(/^.*assets\\/img\\//, \"\") : null;\n    bild(img, sid ? pf || (pack ? `a/packfrei-${sid}` : `produkte/${sid}-front-frei`) : `produkte/${item.id}`, sizes);\n    li.append(img);\n    ul.append(li);\n  });\n  return ul;\n}\nexport function geschenkZeile(p, g, tag = \"li\") {\n  const pr = findProdukt(g.id);\n  const li = el(tag, `${p}__item ${p}__item--geschenk`);\n  const media = el(\"div\", `${p}__media ${p}__media--geschenk`);\n  const img = el(\"img\", \"\", { alt: \"\", loading: \"lazy\", decoding: \"async\", src: new URL(`https://cdn.shopify.com/s/files/1/0897/9614/9513/files/zr__img__a__geschenk-${g.id}-216.webp`, import.meta.url).href });\n  media.append(img);\n  const inhalt = el(\"div\", `${p}__inhalt ${p}__g-text`);\n  const kicker = el(\"p\", `${p}__g-kicker`);\n  kicker.innerHTML = `${ikon(\"geschenk\")}<span>Dein Geschenk</span>`;\n  const wert = el(\"p\", `${p}__g-wert`);\n  wert.innerHTML = `<strong>Geschenkt</strong> \u00B7 im Wert von ${formatCHF(g.wert * g.count)}`;\n  inhalt.append(kicker, el(\"p\", `${p}__line`, {}, `${pr?.name ?? g.id} ${pr?.typ === \"wash\" ? \"Wash\" : \"\"}${g.count > 1 ? ` \u00D7 ${g.count}` : \"\"}`.trim()), wert);\n  li.append(media, inhalt);\n  return li;\n}\nexport function zahlartenLogos(p) {\n  const ul = el(\"ul\", `${p}__pay`, { \"aria-label\": \"Zahlarten\" });\n  if (window.ZR?.zahlung) ul.innerHTML = window.ZR.zahlung;\n  else cart.ZAHLARTEN.forEach((z) => {\n    const li = el(\"li\");\n    li.append(el(\"img\", \"\", { src: payIcon(z.datei), alt: z.name, width: \"34\", height: \"22\" }));\n    ul.append(li);\n  });\n  return ul;\n}\nexport const vorteilProzent = (item) => {\n  const r = cart.regulaer(item);\n  return r > item.price ? Math.round((1 - item.price / r) * 100) : 0;\n};\nexport function hinweisText(h) {\n  if (!h) return null;\n  if (h.art === \"discovery\") return { text: `Erst testen? Das ${h.discovery.name} mit ${h.discovery.proben} Proben, ${formatCHF(h.discovery.price)}.`, knopf: \"Dazulegen\" };\n  const hat = h.qty - h.fehlt;\n  const ziel = SET_NAME[h.qty];\n  const anfang = h.fehlt ? `${ZAHLWORT[hat]} ${hat === 1 ? \"Duft\" : \"D\u00FCfte\"}, ${h.fehlt === 1 ? \"ein Platz\" : `${ZAHLWORT_KLEIN[h.fehlt]} Pl\u00E4tze`} frei.` : `${ZAHLWORT[hat]} D\u00FCfte im Warenkorb.`;\n  const endpreis = (KOLLEKTIONEN[h.kollektion]?.staffel || TIERS).find((t) => t.qty === h.qty)?.price ?? 0;\n  const gratis = cart.subtotal() + h.differenz >= 100 ? \", Versand gratis\" : \"\";\n  const preis = h.differenz > 0 ? `Dein ${ziel} f\u00FCr ${formatCHF(endpreis)}: nur ${formatCHF(h.differenz)} mehr${gratis}.` : `Als ${ziel} f\u00FCr ${formatCHF(endpreis)} zahlst du ${formatCHF(-h.differenz)} weniger als jetzt${gratis}.`;\n  const knopf = !h.fehlt ? `Zum ${ziel} zusammenlegen` : h.fehlt === 1 ? `${h.qty === 3 ? \"Dritten\" : \"F\u00FCnften\"} Duft w\u00E4hlen` : `${ZAHLWORT[h.fehlt]} D\u00FCfte w\u00E4hlen`;\n  return { text: `${anfang} ${preis}`, knopf };\n}\nfunction grundStil(p) {\n  if (document.querySelector(`style[data-cart-stil=\"${p}\"]`)) return;\n  const st = document.createElement(\"style\");\n  st.dataset.cartStil = p;\n  st.textContent = `\nhtml body .${p} { transition-duration: .28s; transition-timing-function: ${EASE}; }\n.${p} svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }\n.${p}__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n.${p}__head-text { display: grid; gap: 2px; min-width: 0; }\n.${p}__head-text h2, .${p}__bewertung { margin: 0; }\n.${p}__ok { display: flex; align-items: center; gap: 8px; margin: 0; }\n.${p}__ok svg { flex: none; width: 18px; height: 18px; stroke-width: 2; }\n.${p}__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; overflow-anchor: none; }\n.${p}__code summary { min-height: 44px; display: inline-flex; align-items: center; list-style: none; cursor: pointer; }\n.${p}__code summary::-webkit-details-marker { display: none; }\n.${p}__code form { display: flex; gap: 8px; }\n.${p}__code input { flex: 1 1 auto; min-width: 0; min-height: 44px; }\n.${p}__code-btn { min-height: 44px; }\n.${p}__code-msg { margin: 6px 0 0; }\n.${p}__code-msg:empty { display: none; }\n.${p}__ship { display: grid; gap: 8px; }\n.${p}__track { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }\n.${p}__bar { height: 6px; border-radius: 6px; background: rgb(128 128 128 / .22); overflow: hidden; }\n.${p}__bar > span { display: block; height: 100%; width: calc(var(--progress, 0) * 100%); background: currentColor; border-radius: inherit; }\n.${p}__ziel { display: grid; justify-items: center; font-size: 11px; line-height: 1.2; }\n.${p}__ziel svg { width: 26px; height: 26px; }\n.${p}__shipping { margin: 0; padding: 8px 12px; border-radius: 8px; background: rgb(128 128 128 / .1); }\n.${p}__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }\n.${p}__item { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 10px 14px; align-items: start; }\n.${p}__item--set { grid-template-columns: minmax(0, 1fr); }\n.${p}__item > .${p}__edit-panel { grid-column: 1 / -1; }\n.${p}__media { display: grid; justify-items: start; gap: 6px; }\n.${p}__item--einzel .${p}__media { justify-items: center; }\n.${p}__thumbs { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }\n.${p}__thumb { flex: none; width: 72px; height: 88px; display: grid; place-items: center; overflow: hidden; border-radius: 10px; background: rgb(128 128 128 / .1); }\n.${p}__thumb img { width: 116px; height: 116px; max-width: none; object-fit: contain; }\n.${p}__thumbs--einzel .${p}__thumb { width: 96px; height: 112px; }\n.${p}__thumbs--einzel .${p}__thumb img { width: 152px; height: 152px; }\n.${p}__thumb--disc img { width: 100%; height: 100%; object-fit: cover; }\n.${p}__badge { display: inline-block; font-size: 11px; line-height: 1.2; padding: 3px 7px; border-radius: 4px; }\n.${p}__inhalt { min-width: 0; display: grid; gap: 8px; align-content: start; }\n.${p}__zeile { display: flex; justify-content: space-between; align-items: start; gap: 10px; }\n.${p}__info { min-width: 0; }\n.${p}__info p { margin: 0; }\n.${p}__preis { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0; }\n.${p}__preis p, .${p}__preis s { margin: 0; }\n.${p}__compare { opacity: .6; }\n.${p}__aktionen { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n.${p}__stepper { display: inline-flex; align-items: center; }\n.${p}__step { min-width: 44px; min-height: 44px; }\n.${p}__qty { min-width: 28px; text-align: center; }\n.${p}__remove { flex: none; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; margin: -10px -10px 0 0; border: 0; background: none; color: inherit; cursor: pointer; }\n.${p}__remove svg { width: 20px; height: 20px; }\n.${p}__edit, .${p}__undo-btn { min-height: 44px; background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }\n.${p}__edit-panel { display: grid; gap: 10px; }\n.${p}__edit-panel p { margin: 0; }\n.${p}__slots, .${p}__wahl { display: flex; flex-wrap: wrap; gap: 6px; }\n.${p}__slot, .${p}__wahl-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 2px 12px 2px 2px; border: 1px solid rgb(128 128 128 / .35); border-radius: 999px; background: none; color: inherit; font: inherit; cursor: pointer; }\n.${p}__slot img, .${p}__wahl-btn img { width: 36px; height: 36px; object-fit: contain; }\n.${p}__slot[aria-pressed='true'] { border-color: currentColor; box-shadow: inset 0 0 0 1px currentColor; }\n.${p}__undo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n.${p}__tipp { display: grid; gap: 10px; }\n.${p}__tipp p { margin: 0; }\n.${p}__proben { display: grid; gap: 8px; }\n.${p}__proben-titel { margin: 0; }\n.${p}__probe { display: grid; grid-template-columns: 64px minmax(0, 1fr) 44px; gap: 12px; align-items: center; }\n.${p}__probe img { width: 64px; height: 64px; object-fit: cover; }\n.${p}__probe p { margin: 0; }\n.${p}__probe-add { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%; cursor: pointer; }\n.${p}__probe-add svg { width: 20px; height: 20px; stroke-width: 2; }\n.${p}__proben--kompakt .${p}__probe { grid-template-columns: 48px minmax(0, 1fr) 44px; }\n.${p}__proben--kompakt .${p}__probe img { width: 48px; height: 48px; }\n.${p}__sum { display: grid; gap: 6px; margin: 0; }\n.${p}__sum div { display: flex; justify-content: space-between; gap: 12px; }\n.${p}__sum dt, .${p}__sum dd { margin: 0; }\n.${p}__foot { flex: none; display: grid; gap: 8px; }\n.${p}__foot-zeile { display: flex; justify-content: space-between; gap: 12px; margin: 0; }\n.${p}__foot-extra { display: grid; gap: 8px; }\n.${p}.is-bearbeiten .${p}__foot-extra { display: none; }\n.${p}__checkout { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; text-decoration: none; }\n.${p}__pay { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }\n.${p}__pay li { display: grid; place-items: center; width: 40px; height: 26px; }\n.${p}__pay img { display: block; max-width: 30px; max-height: 18px; width: auto; height: auto; }\n.${p}__trust { margin: 0; text-align: center; }\n.${p}__leer { display: grid; gap: 14px; }\n.${p}__leer h3, .${p}__leer p { margin: 0; }\n.${p}__empty-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; text-decoration: none; }\n.${p}__leer-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }\n.${p}__leer-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) 44px; gap: 12px; align-items: center; }\n.${p}__leer-item img { width: 64px; height: 64px; object-fit: contain; }\n.${p}__leer-item--disc img { object-fit: cover; }\n.${p}__leer-add { width: 44px; height: 44px; }\n@media (prefers-reduced-motion: reduce) { html body .${p} { transition-duration: .01s; } }`;\n  document.head.prepend(st);\n}\nexport function mountCart({ root, classPrefix = \"zois\", labels = {}, seite = null } = {}) {\n  if (!root && !seite) throw new Error(\"mountCart: root fehlt\");\n  const L = { ...DEFAULT_LABELS, ...labels };\n  const kaufwegV2 = L.kaufwegV2 ?? classPrefix === \"a\";\n  const p = `${classPrefix}-cart`;\n  const id = `${p}-${++uid}`;\n  const reduce = () => globalThis.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;\n  const breit = () => globalThis.matchMedia?.(\"(min-width: 900px)\").matches;\n  const ziel = (href) => mitLinie(href);\n  const drawer = seite ? el(\"div\", `${p} ${p}--seite`) : el(\"aside\", p, { role: \"dialog\", \"aria-modal\": \"true\", \"aria-labelledby\": `${id}-title`, hidden: \"\", tabindex: \"-1\" });\n  const head = el(\"div\", `${p}__head`);\n  const headText = el(\"div\", `${p}__head-text`);\n  const title = el(\"h2\", `${p}__title`, { id: `${id}-title` });\n  headText.append(title, el(\"p\", `${p}__bewertung`, {}, L.rating));\n  const closeBtn = el(\"button\", `${p}__close`, { type: \"button\", \"aria-label\": L.close }, \"\u00D7\");\n  head.append(headText, closeBtn);\n  const ok = el(\"p\", `${p}__ok`, { hidden: \"\" });\n  const body = el(\"div\", `${p}__body`);\n  const foot = el(\"div\", `${p}__foot`);\n  const live = el(\"div\", `${p}__live visually-hidden`, { \"aria-live\": \"polite\", \"aria-atomic\": \"true\", role: \"status\" });\n  const schleier = seite ? null : el(\"div\", `${p}__schleier`, { hidden: \"\", \"aria-hidden\": \"true\" });\n  if (seite) {\n    drawer.append(ok, body);\n    seite.haupt.append(drawer, live);\n    seite.rechts.append(foot);\n  } else {\n    drawer.append(head, ok, body, foot);\n    root.append(schleier, drawer, live);\n  }\n  grundStil(p);\n  let opener = null;\n  let isOpen = false;\n  let closeTimer = null;\n  let inerted = [];\n  let prev = new Map(cart.getCart().map((i) => [i.key, i.count]));\n  let offen = null;\n  let slot = 0;\n  let undo = null;\n  let undoTimer = 0;\n  let wahl = null;\n  let stumm = false;\n  let codeText = \"\";\n  let codeMeldung = \"\";\n  function insBild(ziel2) {\n    if (!ziel2 || seite) return;\n    requestAnimationFrame(() => schiebe(ziel2));\n    const bilder = [...ziel2.querySelectorAll(\"img\")].map((i) => i.complete ? null : i.decode?.().catch(() => {\n    })).filter(Boolean);\n    if (bilder.length) Promise.race([Promise.all(bilder), new Promise((r) => setTimeout(r, 600))]).then(() => requestAnimationFrame(() => schiebe(ziel2)));\n  }\n  function schiebe(ziel2) {\n    if (!ziel2.isConnected) return;\n    const b = body.getBoundingClientRect();\n    const z = ziel2.getBoundingClientRect();\n    let dy = 0;\n    if (z.bottom > b.bottom - 12) dy = z.bottom - b.bottom + 12;\n    if (z.top - dy < b.top + 8) dy = z.top - b.top - 8;\n    if (Math.abs(dy) < 2) return;\n    body.scrollTo({ top: body.scrollTop + dy, behavior: reduce() ? \"auto\" : \"smooth\" });\n  }\n  function renderItem(item) {\n    const t = positionText(item);\n    const art = item.type === \"discovery\" ? \"disc\" : item.qty > 1 ? \"set\" : \"einzel\";\n    const li = el(\"li\", `${p}__item ${p}__item--${art}`, { \"data-key\": item.key });\n    const media = el(\"div\", `${p}__media`);\n    media.append(flakons(p, item));\n    const pct = art === \"set\" ? vorteilProzent(item) : 0;\n    if (pct) media.append(el(\"span\", `${p}__badge`, {}, item.doppelt ? \"Alles doppelt\" : L.setBadge(pct)));\n    const inhalt = el(\"div\", `${p}__inhalt`);\n    const zeile = el(\"div\", `${p}__zeile`);\n    const info = el(\"div\", `${p}__info`);\n    info.append(el(\"p\", `${p}__line`, {}, t.titel));\n    if (t.unter) info.append(el(\"p\", `${p}__scents`, {}, t.unter));\n    if (t.format) info.append(el(\"p\", `${p}__format`, {}, t.format));\n    if (item.abo) {\n      const a = el(\"p\", `${p}__abo`);\n      a.innerHTML = `${ikon(\"wieder\")}<span>${item.abo.monat ? \"ZO\u00CDS Membership Abo \u00B7 jeden Monat\" : `Abo \u00B7 alle ${item.abo.wochen} Wochen`} \u00B7 jederzeit k\u00FCndbar</span>`;\n      info.append(a);\n    }\n    const name = `${t.titel}${art === \"set\" ? ` (${t.unter})` : \"\"}`;\n    const rm = el(\"button\", `${p}__remove`, { type: \"button\", \"aria-label\": `${L.remove}: ${name}`, title: L.remove });\n    rm.innerHTML = ICON.eimer;\n    rm.addEventListener(\"click\", () => entfernen(item, t));\n    zeile.append(info, rm);\n    const preis = el(\"div\", `${p}__preis`);\n    const reg = cart.regulaer(item) * item.count;\n    const vorteil = reg > item.price * item.count + 1e-3;\n    if (vorteil) preis.append(el(\"span\", \"visually-hidden\", {}, \"statt \"), el(\"s\", `${p}__compare`, {}, formatCHF(reg)));\n    preis.append(el(\"p\", `${p}__price${vorteil ? ` ${p}__price--vorteil` : \"\"}`, {}, formatCHF(item.price * item.count)));\n    const akt = el(\"div\", `${p}__aktionen`);\n    const step = el(\"div\", `${p}__stepper`, { role: \"group\", \"aria-label\": art === \"set\" ? `${L.setCount}: ${name}` : `Menge ${name}` });\n    const minus = el(\"button\", `${p}__step ${p}__step--minus`, { type: \"button\", \"aria-label\": `${L.decrease}: ${name}` }, \"\u2212\");\n    const qty = el(\"span\", `${p}__qty`, {}, String(item.count));\n    const plus = el(\"button\", `${p}__step ${p}__step--plus`, { type: \"button\", \"aria-label\": `${L.increase}: ${name}` }, \"+\");\n    minus.addEventListener(\"click\", () => {\n      if (item.count <= 1) entfernen(item, t);\n      else cart.setCount(item.key, item.count - 1);\n    });\n    plus.addEventListener(\"click\", () => cart.setCount(item.key, item.count + 1));\n    step.append(minus, qty, plus);\n    akt.append(step);\n    if (art === \"set\" && !item.doppelt) {\n      const ed = el(\"button\", `${p}__edit`, { type: \"button\", \"aria-expanded\": String(offen === item.key) }, offen === item.key ? L.editDone : L.edit);\n      ed.addEventListener(\"click\", () => {\n        offen = offen === item.key ? null : item.key;\n        slot = 0;\n        render();\n        const n = [...drawer.querySelectorAll(\"[data-key]\")].find((x) => x.dataset.key === item.key);\n        n?.querySelector(`.${p}__edit`)?.focus({ preventScroll: true });\n        if (offen) insBild(n?.querySelector(`.${p}__edit-panel`));\n      });\n      akt.append(ed);\n    }\n    inhalt.append(zeile, preis, akt);\n    if (cart.rechnung().nichtVerfuegbar.includes(item.key)) {\n      li.classList.add(`${p}__item--weg`);\n      inhalt.append(el(\"p\", `${p}__weg`, { role: \"status\" }, \"Nicht mehr verf\u00FCgbar. Z\u00E4hlt nicht zur Summe, du kannst es entfernen.\"));\n    }\n    li.append(media, inhalt);\n    if (offen === item.key) li.append(editPanel(item));\n    return li;\n  }\n  function editPanel(item) {\n    const l = { scents: KOLLEKTIONEN[item.kollektion]?.duefte ?? LINES[item.line]?.scents ?? [] };\n    const panel = el(\"div\", `${p}__edit-panel`);\n    const frei = l.scents.filter((s) => s.available && !item.scents.includes(s.id));\n    const nurRaus = kaufwegV2 && !frei.length && item.count === 1;\n    panel.append(el(\"p\", `${p}__edit-hint`, {}, nurRaus ? \"Duft antippen, dann herausnehmen.\" : \"Platz w\u00E4hlen, dann den neuen Duft antippen.\"));\n    const slots = el(\"div\", `${p}__slots`, { role: \"group\", \"aria-label\": \"Pl\u00E4tze im Set\" });\n    item.scents.forEach((sid, i) => {\n      const s = l.scents.find((x) => x.id === sid);\n      const b = el(\"button\", `${p}__slot`, { type: \"button\", \"aria-pressed\": String(i === slot), \"aria-label\": `Platz ${i + 1}: ${s?.name}` });\n      const img = el(\"img\", \"\", { alt: \"\" });\n      bild(img, `produkte/${sid}-front-frei`, \"64px\");\n      b.append(el(\"span\", `${p}__slot-nr`, {}, `Platz ${i + 1}`), img, el(\"span\", `${p}__slot-name`, {}, s?.name ?? sid));\n      b.addEventListener(\"click\", () => {\n        slot = i;\n        render();\n        drawer.querySelectorAll(`.${p}__slot`)[i]?.focus({ preventScroll: true });\n      });\n      slots.append(b);\n    });\n    const titel = el(\"p\", `${p}__wahl-titel`, { id: `${id}-ersetzen` }, \"Ersetzen durch:\");\n    const reihe = el(\"div\", `${p}__wahl`, { role: \"group\", \"aria-labelledby\": `${id}-ersetzen` });\n    frei.forEach((s) => {\n      const b = el(\"button\", `${p}__wahl-btn`, { type: \"button\", \"aria-label\": `${s.name} auf Platz ${slot + 1}` });\n      const img = el(\"img\", \"\", { alt: \"\" });\n      bild(img, `produkte/${s.id}-front-frei`, \"40px\");\n      b.append(img, el(\"span\", \"\", {}, s.name));\n      b.addEventListener(\"click\", () => {\n        offen = cart.tauscheDuft(item.key, slot, s.id);\n        announce(`${s.name} auf Platz ${slot + 1}.`);\n        render();\n        const neu = [...drawer.querySelectorAll(\"[data-key]\")].find((x) => x.dataset.key === offen);\n        neu?.querySelectorAll(`.${p}__slot`)[slot]?.focus({ preventScroll: true });\n        insBild(neu?.querySelector(`.${p}__edit-panel`));\n      });\n      reihe.append(b);\n    });\n    panel.append(slots);\n    if (frei.length) panel.append(titel, reihe);\n    if (kaufwegV2 && item.count === 1) {\n      const name = l.scents.find((x) => x.id === item.scents[slot])?.name ?? item.scents[slot];\n      const raus = el(\"button\", `${p}__edit ${p}__raus`, { type: \"button\" }, `${name} herausnehmen`);\n      raus.addEventListener(\"click\", () => {\n        stumm = true;\n        cart.nimmDuftRaus(item.key, slot);\n        offen = null;\n        slot = 0;\n        undo = { name, bis: Date.now() + 5e3 };\n        clearTimeout(undoTimer);\n        undoTimer = setTimeout(() => {\n          undo = null;\n          render();\n        }, 5e3);\n        render();\n        drawer.querySelector(`.${p}__undo-btn`)?.focus({ preventScroll: true });\n      });\n      panel.append(raus);\n    }\n    return panel;\n  }\n  function entfernen(item, t) {\n    if (offen === item.key) offen = null;\n    undo = { name: t.titel, bis: Date.now() + 5e3 };\n    cart.entfernen(item.key);\n    clearTimeout(undoTimer);\n    undoTimer = setTimeout(() => {\n      undo = null;\n      render();\n    }, 5e3);\n    drawer.querySelector(`.${p}__undo-btn`)?.focus({ preventScroll: true });\n  }\n  function renderHinweis(h) {\n    if (!h || h.art === \"discovery\") return null;\n    const t = hinweisText(h);\n    const box = el(\"div\", `${p}__tipp`, { \"data-art\": h.art });\n    box.append(el(\"p\", `${p}__tipp-text`, {}, t.text));\n    if (!h.fehlt) {\n      const b = el(\"button\", `${p}__tipp-btn`, { type: \"button\" }, t.knopf);\n      b.addEventListener(\"click\", () => {\n        cart.zuSet({ kollektion: h.kollektion, qty: h.qty, scents: h.behalten, ersetzt: h.ersetzt });\n        announce(`Zusammengelegt zum ${SET_NAME[h.qty]}.`);\n      });\n      box.append(b);\n      return box;\n    }\n    if (!wahl) {\n      const b = el(\"button\", `${p}__tipp-btn`, { type: \"button\", \"aria-expanded\": \"false\" }, t.knopf);\n      b.addEventListener(\"click\", () => {\n        wahl = [];\n        render();\n        drawer.querySelector(`.${p}__tipp .${p}__wahl-btn`)?.focus({ preventScroll: true });\n        insBild(drawer.querySelector(`.${p}__tipp`));\n      });\n      box.append(b);\n      return box;\n    }\n    const rest = h.fehlt - wahl.length;\n    box.append(el(\"p\", `${p}__tipp-schritt`, {}, `W\u00E4hle noch ${rest === 1 ? \"einen Duft\" : `${ZAHLWORT_KLEIN[rest]} D\u00FCfte`}.`));\n    const reihe = el(\"div\", `${p}__wahl`, { role: \"group\", \"aria-label\": \"Duft f\u00FCr das Set w\u00E4hlen\" });\n    KOLLEKTIONEN[h.kollektion].duefte.filter((s) => s.available).forEach((s) => {\n      const b = el(\"button\", `${p}__wahl-btn`, { type: \"button\" });\n      const img = el(\"img\", \"\", { alt: \"\" });\n      bild(img, `produkte/${s.id}-front-frei`, \"40px\");\n      b.append(img, el(\"span\", \"\", {}, s.name));\n      b.addEventListener(\"click\", () => {\n        wahl.push(s.id);\n        if (wahl.length >= h.fehlt) {\n          const scents = [...h.behalten, ...wahl];\n          wahl = null;\n          cart.zuSet({ kollektion: h.kollektion, qty: h.qty, scents, ersetzt: h.ersetzt });\n          announce(`Jetzt ein ${SET_NAME[h.qty]}.`);\n        } else {\n          render();\n          drawer.querySelector(`.${p}__tipp .${p}__wahl-btn`)?.focus({ preventScroll: true });\n        }\n      });\n      reihe.append(b);\n    });\n    const ab = el(\"button\", `${p}__edit`, { type: \"button\" }, \"Abbrechen\");\n    ab.addEventListener(\"click\", () => {\n      wahl = null;\n      render();\n    });\n    box.append(reihe, ab);\n    return box;\n  }\n  const istPflege = (i) => i.type === \"combo\" || i.type === \"produkt\" && findProdukt(i.id)?.kollektion === \"body-skin\";\n  const pflegeIds = (items) => items.flatMap((i) => i.type === \"combo\" ? i.ids : istPflege(i) ? [i.id] : []);\n  function renderProben(items, kompakt) {\n    if (kompakt || items.some((i) => i.type === \"set\")) return null;\n    if (items.length && items.every(istPflege)) return null;\n    const d = DISCOVERY.find((x) => x.line === getLinie());\n    if (!d || items.some((i) => i.key === `discovery:${d.id}`)) return null;\n    const box = el(\"section\", `${p}__proben${kompakt ? ` ${p}__proben--kompakt` : \"\"}`, { \"aria-labelledby\": `${id}-proben` });\n    box.append(el(\"h3\", `${p}__proben-titel`, { id: `${id}-proben` }, L.proben));\n    const karte = el(\"div\", `${p}__probe`);\n    const img = el(\"img\", \"\", { alt: \"\" });\n    bild(img, `produkte/${d.id}`, \"64px\");\n    const txt = el(\"div\", `${p}__probe-text`);\n    txt.append(el(\"p\", `${p}__probe-name`, {}, d.name), el(\"p\", `${p}__probe-info`, {}, `${d.proben} Proben \u00B7 ${formatCHF(d.price)}`));\n    const add = el(\"button\", `${p}__probe-add`, { type: \"button\", \"aria-label\": L.probenAdd(d.name) });\n    add.innerHTML = ICON.plus;\n    add.addEventListener(\"click\", () => cart.addDiscovery(d.id));\n    karte.append(img, txt, add);\n    box.append(karte);\n    return box;\n  }\n  const ROUTINE = [\"wash\", \"serum\", \"mist\", \"maske\"];\n  let letzterAnteil = null;\n  let feierBis = 0;\n  let letzteErsparnis = null;\n  function konfetti(host) {\n    if (!host || !kaufwegV2 || reduce()) return;\n    konfettiAuf(host);\n  }\n  function renderShip5(s) {\n    const gratis = s.gratisFehlt <= 0;\n    const anteil = Math.min(1, s.total / FREE_SHIPPING_THRESHOLD);\n    const fast = !gratis && anteil >= 0.7;\n    const ship = el(\"div\", `${p}__ship a-ship5`);\n    ship.classList.toggle(`${p}__ship--erreicht`, gratis);\n    ship.classList.toggle(`${p}__ship--fast`, fast);\n    const kopf = el(\"p\", `${p}__ship-kopf`, { \"aria-live\": \"polite\" });\n    kopf.append(el(\"strong\", \"\", {}, gratis ? \"Geschafft: Der Versand geht auf uns\" : fast ? `Nur noch ${formatCHF(s.gratisFehlt)} bis zum Gratis-Versand` : `Noch ${formatCHF(s.gratisFehlt)} bis zum Gratis-Versand`));\n    const track = el(\"div\", `${p}__track`);\n    const bar = el(\"div\", `${p}__bar`, { role: \"progressbar\", \"aria-valuemin\": \"0\", \"aria-valuemax\": String(FREE_SHIPPING_THRESHOLD), \"aria-valuenow\": String(Math.min(FREE_SHIPPING_THRESHOLD, Math.round(s.total))), \"aria-label\": `Fortschritt bis Gratis-Versand ab ${formatCHF(FREE_SHIPPING_THRESHOLD)}` });\n    bar.append(el(\"span\"));\n    const ziel2 = el(\"span\", `${p}__ziel`);\n    ziel2.innerHTML = gratis ? ikon(\"feier\") : ikon(\"versand\");\n    ziel2.append(el(\"span\", `${p}__ziel-betrag`, {}, gratis ? \"Gratis\" : formatCHF(FREE_SHIPPING_THRESHOLD).replace(\",00\", \"\")));\n    track.append(bar, ziel2);\n    ship.append(kopf, track);\n    const von = letzterAnteil ?? anteil;\n    bar.style.setProperty(\"--progress\", String(von));\n    if (von !== anteil) requestAnimationFrame(() => requestAnimationFrame(() => bar.style.setProperty(\"--progress\", String(anteil))));\n    if (gratis && letzterAnteil !== null && letzterAnteil < 1) {\n      feierBis = Date.now() + 2600;\n      setTimeout(() => konfetti(drawer.querySelector(\".a-ship5 .a-cart__ziel\")), 1e3);\n    }\n    if (gratis && Date.now() < feierBis) {\n      ship.classList.add(\"is-feier\");\n      setTimeout(() => ship.classList.remove(\"is-feier\"), feierBis - Date.now());\n    }\n    letzterAnteil = anteil;\n    return ship;\n  }\n  function renderDazu(items) {\n    const imKorb = pflegeIds(items);\n    const pflegeImKorb = imKorb.map((id2) => findProdukt(id2));\n    const geschenkt = cart.geschenke().map((g) => g.id);\n    const linie = pflegeImKorb[0]?.linie || findProdukt(geschenkt[0])?.linie || (getLinie() === \"her\" ? \"her\" : \"him\");\n    const schritte = linie === \"him\" ? [\"wash\", \"serum\"] : ROUTINE;\n    const pf = pflegeImKorb.length || geschenkt.length ? schritte.map((t) => PFLEGE.find((x) => x.typ === t && x.available && (x.linie === linie || x.linie === \"beide\") && !geschenkt.includes(x.id))).find((x) => x && !imKorb.includes(x.id)) : PFLEGE.find((x) => x.linie === linie && x.typ === \"wash\" && x.available);\n    if (!pf) return null;\n    const box = el(\"section\", `${p}__dazu`, { \"aria-label\": \"Passt dazu\" });\n    const img = el(\"img\", \"\", { alt: \"\", loading: \"lazy\", decoding: \"async\" });\n    bild(img, pf.img.front.replace(/^.*assets\\/img\\//, \"\"), \"72px\");\n    const bildBox = el(\"span\", `${p}__dazu-bild`);\n    bildBox.append(img);\n    const txt = el(\"div\", `${p}__dazu-text`);\n    const preisZeile = el(\"p\", `${p}__dazu-preis`);\n    preisZeile.textContent = formatCHF(pf.price);\n    if (pf.compareAt) {\n      const st = document.createElement(\"s\");\n      st.textContent = formatCHF(pf.compareAt).replace(\" \u20AC\", \"\");\n      preisZeile.append(\" \", st);\n    }\n    txt.append(el(\"p\", `${p}__dazu-kicker`, {}, pflegeImKorb.length || geschenkt.length ? \"Passt in deine Routine\" : \"Passt dazu\"), el(\"p\", `${p}__dazu-name`, {}, `${pf.name} \u00B7 ${pf.zusatz}`), preisZeile);\n    const fehlt = cart.summen().gratisFehlt;\n    if (kaufwegV2 && fehlt > 0 && pf.price >= fehlt) {\n      box.classList.add(`${p}__dazu--ziel`);\n      txt.append(el(\"p\", `${p}__dazu-ziel`, {}, \"Damit ist der Versand gratis\"));\n    }\n    const add = el(\"button\", `${p}__dazu-add`, { type: \"button\", \"aria-label\": `${pf.name} in den Warenkorb` });\n    add.innerHTML = ICON.plus;\n    add.addEventListener(\"click\", () => {\n      try {\n        cart.addProdukt(pf.id);\n      } catch (e) {\n        announce(e.message);\n      }\n    });\n    box.append(bildBox, txt, add);\n    return box;\n  }\n  function renderVertrauen() {\n    const box = el(\"ul\", `${p}__vertrauen`, { \"aria-label\": \"Darauf kannst du z\u00E4hlen\" });\n    [[\"garantie\", \"30 Tage\", \"Geld zur\u00FCck, auch ge\u00F6ffnet\"], [\"lieferung\", `Bis ${cart.datumKurz(cart.lieferdatum(/* @__PURE__ */ new Date(), 3)).replace(/^[^,]+,\\s*/, \"\")}`, \"DHL\"], [\"swiss\", \"Swiss Made\", \"Extrait de Parfum\"]].forEach(([i, t, z]) => {\n      const li = el(\"li\");\n      li.innerHTML = `<span class=\"${p}__v-icon\">${ikon(i)}</span><strong>${t}</strong><small>${z}</small>`;\n      box.append(li);\n    });\n    return box;\n  }\n  function renderCode() {\n    const code = el(\"details\", `${p}__code`);\n    if (codeMeldung) code.open = true;\n    code.append(el(\"summary\", \"\", {}, L.code));\n    const f = el(\"form\", \"\", { novalidate: \"\" });\n    const inp = el(\"input\", `${p}__code-input`, { type: \"text\", name: \"code\", autocomplete: \"off\", \"aria-label\": L.codeField, placeholder: L.codeField });\n    inp.value = codeText;\n    const msg = el(\"p\", `${p}__code-msg`, { \"aria-live\": \"polite\" }, codeMeldung);\n    f.append(inp, el(\"button\", `${p}__code-btn`, { type: \"submit\" }, L.codeApply));\n    f.addEventListener(\"submit\", (e) => {\n      e.preventDefault();\n      codeText = inp.value;\n      codeMeldung = cart.pruefeCode(inp.value).meldung;\n      msg.textContent = codeMeldung;\n    });\n    inp.addEventListener(\"input\", () => {\n      codeText = inp.value;\n    });\n    code.append(f, msg);\n    return code;\n  }\n  function renderLeerKollektionen() {\n    const box = el(\"div\", `${p}__leer ${p}__leer--koll`);\n    box.append(el(\"h3\", `${p}__leer-title`, {}, L.emptyTitle), el(\"p\", `${p}__empty`, {}, \"W\u00E4hle zuerst deine Kollektion.\"));\n    const ul = el(\"ul\", `${p}__koll`);\n    [[\"eternal\", \"F\u00FCr Sie \u00B7 3 D\u00FCfte\", \"a/v3/k-eternal-code\"], [\"invisible\", \"F\u00FCr Ihn \u00B7 5 D\u00FCfte\", \"a/v3/k-invisible-code\"]].forEach(([k, zeile, b]) => {\n      const li = el(\"li\");\n      const a = el(\"a\", `${p}__koll-karte`, { href: ziel(SEITEN.kollektion(k)) });\n      const img = el(\"img\", \"\", { alt: \"\", loading: \"lazy\", decoding: \"async\" });\n      bild(img, b, \"(min-width: 900px) 200px, 45vw\");\n      const txt = el(\"span\", `${p}__koll-txt`);\n      txt.append(el(\"strong\", \"\", {}, KOLLEKTIONEN[k].name), el(\"small\", \"\", {}, zeile));\n      a.append(img, txt);\n      li.append(a);\n      ul.append(li);\n    });\n    box.append(ul);\n    const weitere = el(\"p\", `${p}__koll-weitere`);\n    [[\"Extreme\", SEITEN.kollektion(getLinie() === \"her\" ? \"eternal-extreme\" : \"invisible-extreme\")], [\"Luxury\", SEITEN.kollektion(\"luxury\")], [\"Limited\", SEITEN.kollektion(\"limited\")], [\"Body & Skin\", SEITEN.kollektion(\"body-skin\")]].forEach(([n, h]) => weitere.append(el(\"a\", \"\", { href: ziel(h) }, n)));\n    box.append(weitere);\n    const d = DISCOVERY.find((x) => x.line === getLinie());\n    if (d) {\n      const probe = el(\"a\", `${p}__koll-probe`, { href: ziel(SEITEN.discovery(d.line === \"her\" ? \"women\" : \"men\")) });\n      probe.append(el(\"span\", \"\", {}, \"Erst testen?\"), el(\"strong\", \"\", {}, `${d.name} \u00B7 ${d.proben} Proben \u00B7 ${formatCHF(d.price)}`));\n      box.append(probe);\n    }\n    return box;\n  }\n  function renderLeer() {\n    if (L.leerKollektionen ?? classPrefix === \"a\") return renderLeerKollektionen();\n    const linie = getLinie();\n    const box = el(\"div\", `${p}__leer`);\n    box.append(el(\"h3\", `${p}__leer-title`, {}, L.emptyTitle), el(\"p\", `${p}__empty`, {}, L.empty));\n    box.append(el(\"a\", `${p}__empty-button`, { href: ziel(L.lineupHref) }, L.emptyButton));\n    const ul = el(\"ul\", `${p}__leer-liste`);\n    const l = LINES[linie];\n    const zwei = [...l.scents].filter((s) => s.available).sort((a, b) => (b.bestseller ? 1 : 0) - (a.bestseller ? 1 : 0) || (b.id === l.lead) - (a.id === l.lead)).slice(0, 2);\n    zwei.forEach((s) => {\n      const li = el(\"li\", `${p}__leer-item`);\n      const img = el(\"img\", \"\", { alt: \"\" });\n      bild(img, `produkte/${s.id}-front-frei`, \"64px\");\n      const txt = el(\"div\", `${p}__leer-txt`);\n      txt.append(el(\"a\", `${p}__leer-name`, { href: ziel(L.produktHref(s.id)) }, s.name), el(\"p\", `${p}__leer-preis`, {}, `${s.keywords} \u00B7 ${formatCHF(TIERS[0].price)}`));\n      const add = el(\"button\", `${p}__leer-add`, { type: \"button\", \"aria-label\": `${s.name} in den Warenkorb` }, \"+\");\n      add.addEventListener(\"click\", () => cart.addSet({ line: linie, qty: 1, scents: [s.id] }));\n      li.append(img, txt, add);\n      ul.append(li);\n    });\n    const d = DISCOVERY.find((x) => x.line === linie);\n    if (d) {\n      const li = el(\"li\", `${p}__leer-item ${p}__leer-item--disc`);\n      const img = el(\"img\", \"\", { alt: \"\" });\n      bild(img, `produkte/${d.id}`, \"64px\");\n      const txt = el(\"div\", `${p}__leer-txt`);\n      txt.append(el(\"p\", `${p}__leer-name`, {}, `${L.emptyDisc}: ${d.name}`), el(\"p\", `${p}__leer-preis`, {}, `${d.proben} Proben \u00B7 ${formatCHF(d.price)}`));\n      const add = el(\"button\", `${p}__leer-add`, { type: \"button\", \"aria-label\": `${d.name} in den Warenkorb` }, \"+\");\n      add.addEventListener(\"click\", () => cart.addDiscovery(d.id));\n      li.append(img, txt, add);\n      ul.append(li);\n    }\n    box.append(ul);\n    return box;\n  }\n  function render() {\n    const y = body.scrollTop;\n    zeichneKoerper();\n    if (y) body.scrollTop = y;\n  }\n  function zeichneKoerper() {\n    const items = cart.getCart();\n    const active = document.activeElement;\n    const focusKey = active && drawer.contains(active) ? active.closest(\"[data-key]\")?.dataset.key : null;\n    const focusCls = focusKey ? [...active.classList].join(\".\") : null;\n    const n = cart.count();\n    title.textContent = n ? `${L.title} (${n})` : L.title;\n    body.replaceChildren();\n    foot.replaceChildren();\n    seite?.haupt.querySelector(`:scope > .${p}__ship`)?.remove();\n    if (undo && Date.now() > undo.bis) undo = null;\n    drawer.classList.toggle(\"is-empty\", !items.length);\n    if (!items.length && !undo) {\n      foot.hidden = true;\n      ok.hidden = true;\n      drawer.classList.remove(\"is-bearbeiten\");\n      body.append(renderLeer());\n      return;\n    }\n    const s = cart.summen();\n    head.querySelector(`.${p}__ship`)?.remove();\n    if (items.length && kaufwegV2) {\n      const ship = renderShip5(s);\n      if (seite) drawer.before(ship);\n      else head.append(ship);\n    } else if (items.length) {\n      const ship = el(\"div\", `${p}__ship`);\n      const klein = false;\n      ship.classList.toggle(`${p}__ship--erreicht`, s.gratisFehlt <= 0);\n      const fast = s.gratisFehlt > 0 && s.total / 100 >= 0.7;\n      ship.classList.toggle(`${p}__ship--fast`, fast);\n      ship.style.setProperty(\"--progress\", String(Math.min(1, s.total / 100)));\n      const track = el(\"div\", `${p}__track`);\n      const bar = el(\"div\", `${p}__bar`, { role: \"progressbar\", \"aria-valuemin\": \"0\", \"aria-valuemax\": \"100\", \"aria-valuenow\": String(Math.min(100, Math.round(s.total))), \"aria-label\": \"Fortschritt bis Gratis-Versand ab 100 \u20AC\" });\n      bar.append(el(\"span\"));\n      bar.style.setProperty(\"--progress\", String(Math.min(1, s.total / 100)));\n      const zielMarke = el(\"span\", `${p}__ziel`);\n      zielMarke.innerHTML = ICON.wagen;\n      zielMarke.append(el(\"span\", `${p}__ziel-betrag`, {}, \"100 \u20AC\"));\n      track.append(bar, zielMarke);\n      const kopfV = el(\"p\", `${p}__ship-kopf`);\n      kopfV.innerHTML = `<span class=\"${p}__ship-icon\">${ikon(\"versand\")}</span><strong>${s.gratisFehlt > 0 ? fast ? `Fast geschafft: noch ${formatCHF(s.gratisFehlt)}.` : L.freeShippingMore(s.gratisFehlt) : \"Gratis-Versand ist dabei.\"}</strong>`;\n      const unter = kaufwegV2 ? s.gratisFehlt > 0 ? \"Ab 100 \u20AC liefern wir gratis.\" : \"\" : s.gratisFehlt > 0 ? \"Ab 100 \u20AC liefern wir gratis, mit DHL.\" : \"Mit der DHL, in 2\u20133 Werktagen.\";\n      ship.append(kopfV, track);\n      if (unter) ship.append(el(\"p\", `${p}__shipping`, {}, unter));\n      if (seite && kaufwegV2) drawer.before(ship);\n      else body.append(ship);\n    }\n    const ul = el(\"ul\", `${p}__list`);\n    items.forEach((i) => ul.append(renderItem(i)));\n    cart.geschenke().forEach((g) => ul.append(geschenkZeile(p, g)));\n    if (undo) {\n      const li = el(\"li\", `${p}__undo`);\n      li.append(el(\"span\", \"\", {}, L.removed(undo.name)));\n      const b = el(\"button\", `${p}__undo-btn`, { type: \"button\" }, L.undo);\n      b.addEventListener(\"click\", () => {\n        clearTimeout(undoTimer);\n        undo = null;\n        stumm = true;\n        cart.rueckgaengig();\n        (drawer.querySelector(`.${p}__item .${p}__remove`) || closeBtn).focus({ preventScroll: true });\n      });\n      li.append(b);\n      ul.append(li);\n    }\n    body.append(ul);\n    if (!items.length) {\n      foot.hidden = true;\n      if (letzteErsparnis !== null) letzteErsparnis = 0;\n      return;\n    }\n    const h = renderHinweis(cart.hinweis(getLinie()));\n    if (h) body.append(h);\n    const pr = renderProben(items, Boolean(h));\n    if (pr) body.append(pr);\n    {\n      const dazu = renderDazu(items);\n      if (dazu) body.append(dazu);\n    }\n    if (!seite) body.append(renderCode());\n    if (!seite && !kaufwegV2) body.append(renderVertrauen());\n    const hatSet = items.some((i) => i.type === \"set\" && i.qty > 1);\n    foot.hidden = false;\n    const bearbeiten = !seite && (Boolean(offen) || wahl !== null);\n    drawer.classList.toggle(\"is-bearbeiten\", bearbeiten);\n    if (seite) {\n      const sum = el(\"dl\", `${p}__sum`);\n      const zeile = (dt, dd, cls) => {\n        const d = el(\"div\", cls ? `${p}__sum-${cls}` : \"\");\n        d.append(el(\"dt\", \"\", {}, dt), el(\"dd\", \"\", {}, dd));\n        sum.append(d);\n      };\n      zeile(hatSet ? L.subtotalSets : L.subtotal, formatCHF(s.zwischensumme));\n      if (s.ersparnis > 0) zeile(hatSet ? L.savingsSets : L.savings, `\u2212${formatCHF(s.ersparnis)}`, \"spar\");\n      zeile(L.shipping, s.versand === 0 ? L.shippingFree : L.shippingOpen, \"versand\");\n      zeile(L.total, formatCHF(s.total), \"total\");\n      foot.append(sum, renderCode());\n      if (!kaufwegV2 && !seite.rechts.querySelector(`.${p}__vertrauen`)) seite.rechts.append(renderVertrauen());\n    } else {\n      const [vl, vw] = L.shippingFoot(s.versand === 0);\n      const versand = el(\"p\", `${p}__foot-zeile ${p}__foot-versand`);\n      versand.append(el(\"span\", \"\", {}, vl), el(\"span\", \"\", {}, vw));\n      if (!kaufwegV2) foot.append(versand);\n      if (s.ersparnis > 0 && kaufwegV2) {\n        const spar = el(\"p\", `${p}__foot-zeile ${p}__foot-spar ${p}__spar5`);\n        spar.innerHTML = `<span class=\"${p}__spar-etikett\"><span class=\"${p}__spar-ico\">${ikon(\"feier\")}</span><span>Du sparst <strong>${formatCHF(s.ersparnis)}</strong> <span class=\"visually-hidden\">statt </span><s>${formatCHF(s.zwischensumme)}</s></span></span>`;\n        foot.append(spar);\n        if (letzteErsparnis !== null && s.ersparnis > letzteErsparnis + 1e-3) requestAnimationFrame(() => konfetti(foot.querySelector(`.${p}__spar-ico`)));\n      } else if (s.ersparnis > 0) foot.append(el(\"p\", `${p}__foot-zeile ${p}__foot-spar`, {}, L.youSave(s.ersparnis)));\n      letzteErsparnis = s.ersparnis;\n    }\n    let go;\n    if (bearbeiten) {\n      go = el(\"button\", `${p}__checkout ${p}__fertig`, { type: \"button\" }, L.done);\n      go.addEventListener(\"click\", () => {\n        offen = null;\n        wahl = null;\n        render();\n        drawer.querySelector(`.${p}__checkout`)?.focus({ preventScroll: true });\n      });\n    } else go = el(\"a\", `${p}__checkout`, { href: ziel(L.kasseHref) }, `${L.checkout} \u00B7 ${formatCHF(s.total)}`);\n    const extra = el(\"div\", `${p}__foot-extra`);\n    const bis = cart.datumKurz(cart.lieferdatum(/* @__PURE__ */ new Date(), 3));\n    if (kaufwegV2 && !bearbeiten) {\n      const lager = el(\"p\", \"a-lager a-cart__lager\");\n      lager.innerHTML = `<strong>Auf Lager</strong><span class=\"a-lager__route\" aria-hidden=\"true\"><span class=\"a-lager__punkt\"></span><span class=\"a-lager__weg\"></span><span class=\"a-lager__ring\"></span></span><span class=\"a-lager__ziel\">Bei dir bis <b>${bis}</b></span>`;\n      requestAnimationFrame(() => requestAnimationFrame(() => lager.classList.add(\"is-da\")));\n      const garantie = el(\"p\", `${p}__garantie-zeile`);\n      garantie.innerHTML = `<span class=\"${p}__garantie-ico\">${ikon(\"garantie\")}</span><span><strong>30 Tage Geld zur\u00FCck</strong>, auch ge\u00F6ffnet</span>`;\n      extra.append(zahlartenLogos(p), garantie);\n      foot.append(lager, go, extra);\n    } else {\n      extra.append(zahlartenLogos(p), el(\"p\", `${p}__trust`, {}, L.trust(bis)));\n      foot.append(go, extra);\n    }\n    if (focusKey) {\n      const target = [...drawer.querySelectorAll(\"[data-key]\")].find((x) => x.dataset.key === focusKey)?.querySelector(`.${focusCls}`);\n      if (target) target.focus({ preventScroll: true });\n      else if (isOpen) (drawer.querySelector(`.${p}__step--plus`) || closeBtn).focus({ preventScroll: true });\n    }\n  }\n  let liveTimer = null;\n  function announce(text) {\n    live.textContent = \"\";\n    clearTimeout(liveTimer);\n    liveTimer = setTimeout(() => {\n      live.textContent = text;\n    }, 30);\n  }\n  function meldeNeu(items, vorher) {\n    const neu = items.filter((i2) => (vorher.get(i2.key) || 0) < i2.count);\n    if (!neu.length) return;\n    const i = neu[neu.length - 1];\n    const text = kaufwegV2 && i.auto && i.type === \"set\" ? `Drin. Jetzt gilt das ${i.qty}er-Set f\u00FCr ${formatCHF(i.price)}.` : confirmAdded(i);\n    ok.innerHTML = ICON.haken;\n    ok.append(el(\"span\", \"\", {}, text));\n    ok.hidden = false;\n    announce(text);\n    if (reduce()) return;\n    const li = [...drawer.querySelectorAll(\"[data-key]\")].find((n) => n.dataset.key === i.key);\n    li?.querySelectorAll(`.${p}__thumb`).forEach((th, k) => th.animate?.([{ opacity: 0, transform: \"translateY(10px)\" }, { opacity: 1, transform: \"none\" }], { duration: 320, delay: 120 + k * 70, easing: EASE, fill: \"backwards\" }));\n    requestAnimationFrame(() => document.querySelectorAll(\"[data-cart-count]\").forEach((n) => {\n      if (n.getAnimations?.().some((x) => x instanceof CSSAnimation)) return;\n      n.animate?.([{ transform: \"scale(1)\" }, { transform: \"scale(1.2)\" }, { transform: \"scale(1)\" }], { duration: 360, easing: EASE });\n    }));\n  }\n  const unsub = cart.subscribe((items) => {\n    const vorher = prev;\n    prev = new Map(items.map((i) => [i.key, i.count]));\n    if (offen && !items.some((i) => i.key === offen)) offen = null;\n    const gebuendelt = kaufwegV2 && Boolean(cart.buendelung()) && items.reduce((n, i) => n + (i.qty || 1) * i.count, 0) > [...vorher].reduce((n, [k, c]) => n + (Number(k.split(\":\")[2]) || 1) * c, 0);\n    const umbau = !gebuendelt && [...vorher.keys()].some((k) => !prev.has(k));\n    render();\n    if (!umbau && !stumm) meldeNeu(items, vorher);\n    if (umbau || stumm || !items.some((i) => (vorher.get(i.key) || 0) < i.count)) {\n      ok.hidden = true;\n    }\n    stumm = false;\n  });\n  render();\n  function setBackgroundInert(on) {\n    if (on) {\n      inerted = [];\n      let node = root;\n      while (node && node !== document.body && node.parentElement) {\n        const parent = node.parentElement;\n        for (const sib of parent.children) {\n          if (sib !== node && !sib.inert && ![\"SCRIPT\", \"STYLE\", \"LINK\"].includes(sib.tagName)) {\n            sib.inert = true;\n            const had = sib.getAttribute(\"aria-hidden\");\n            sib.setAttribute(\"aria-hidden\", \"true\");\n            // Fremde Fenster (z. B. Alia-Popup) liegen sonst \u00FCber dem Warenkorb und lassen sich nicht schliessen\n            const fremd = !/(^|\\s)(a-|zr)/.test(sib.className || \"\") && getComputedStyle(sib).position === \"fixed\";\n            if (fremd) sib.style.setProperty(\"visibility\", \"hidden\", \"important\");\n            inerted.push([sib, had, fremd]);\n          }\n        }\n        node = parent;\n      }\n    } else {\n      for (const [n, had, fremd] of inerted) {\n        n.inert = false;\n        if (fremd) n.style.removeProperty(\"visibility\");\n        if (had == null) n.removeAttribute(\"aria-hidden\");\n        else n.setAttribute(\"aria-hidden\", had);\n      }\n      inerted = [];\n    }\n  }\n  function open() {\n    if (isOpen || seite) return;\n    // DE: Artikel von den alten Testseiten zeigt nur der normale Warenkorb\n    if (cart.fremd?.()) { location.href = \"/cart\"; return; }\n    isOpen = true;\n    opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n    clearTimeout(closeTimer);\n    drawer.classList.remove(\"is-closing\");\n    drawer.hidden = false;\n    if (schleier) schleier.hidden = false;\n    setBackgroundInert(true);\n    document.documentElement.classList.add(\"zr-wagen-offen\");\n    sperre(drawer);\n    void drawer.offsetWidth;\n    drawer.classList.add(\"is-open\");\n    schleier?.classList.add(\"is-open\");\n    render();\n    (drawer.querySelector(`.${p}__close`) || drawer).focus();\n  }\n  function finishClose() {\n    drawer.hidden = true;\n    if (schleier) schleier.hidden = true;\n    drawer.classList.remove(\"is-closing\");\n    drawer.style.animation = drawer.style.transform = drawer.style.transition = \"\";\n    if (schleier) schleier.style.opacity = schleier.style.transition = \"\";\n  }\n  function close(sofort = false) {\n    if (!isOpen) return;\n    isOpen = false;\n    ok.hidden = true;\n    wahl = null;\n    setBackgroundInert(false);\n    document.documentElement.classList.remove(\"zr-wagen-offen\");\n    entsperre(drawer);\n    drawer.classList.remove(\"is-open\");\n    schleier?.classList.remove(\"is-open\");\n    if (reduce() || sofort === true) finishClose();\n    else {\n      drawer.classList.add(\"is-closing\");\n      let done = false;\n      const end = () => {\n        if (done) return;\n        done = true;\n        drawer.removeEventListener(\"transitionend\", onEnd);\n        clearTimeout(closeTimer);\n        finishClose();\n      };\n      const onEnd = (e) => {\n        if (e.target === drawer) end();\n      };\n      drawer.addEventListener(\"transitionend\", onEnd);\n      closeTimer = setTimeout(end, 400);\n    }\n    if (opener && document.contains(opener)) opener.focus();\n    opener = null;\n  }\n  if (!seite) {\n    const handy = matchMedia(\"(max-width: 899px)\");\n    let zug = null;\n    drawer.addEventListener(\"touchstart\", (e) => {\n      if (!isOpen || !handy.matches || e.touches.length > 1 || drawer.classList.contains(\"is-bearbeiten\")) {\n        zug = null;\n        return;\n      }\n      const imKopf = head.contains(e.target);\n      const imKoerper = body.contains(e.target) && body.scrollTop <= 0;\n      if (!imKopf && !imKoerper) {\n        zug = null;\n        return;\n      }\n      const t = e.touches[0];\n      zug = { y0: t.clientY, x0: t.clientX, dy: 0, aktiv: false, t0: performance.now(), tLetzt: performance.now(), yLetzt: t.clientY, v: 0 };\n    }, { passive: true });\n    drawer.addEventListener(\"touchmove\", (e) => {\n      if (!zug) return;\n      const t = e.touches[0];\n      const dy = t.clientY - zug.y0, dx = t.clientX - zug.x0;\n      if (!zug.aktiv) {\n        if (Math.abs(dx) > Math.abs(dy) || dy < -4) {\n          zug = null;\n          return;\n        }\n        if (dy < 8) return;\n        zug.aktiv = true;\n        drawer.style.animation = \"none\";\n        drawer.style.transition = \"none\";\n        if (schleier) schleier.style.transition = \"none\";\n      }\n      const jetzt = performance.now();\n      zug.v = (t.clientY - zug.yLetzt) / Math.max(1, jetzt - zug.tLetzt);\n      zug.tLetzt = jetzt;\n      zug.yLetzt = t.clientY;\n      zug.dy = Math.max(0, dy - 8);\n      drawer.style.transform = `translateY(${zug.dy}px)`;\n      if (schleier) schleier.style.opacity = String(Math.max(0, 1 - zug.dy / drawer.offsetHeight));\n      if (e.cancelable) e.preventDefault();\n    }, { passive: false });\n    const loslassen = () => {\n      if (!zug) return;\n      const z = zug;\n      zug = null;\n      if (!z.aktiv) return;\n      const h = drawer.offsetHeight;\n      const zu = z.dy > h * 0.25 || z.v > 0.55 && z.dy > 24;\n      drawer.style.transition = `transform ${zu ? \".24s cubic-bezier(.4, 0, 1, 1)\" : \".36s cubic-bezier(.32, .72, 0, 1)\"}`;\n      if (schleier) schleier.style.transition = \"opacity .24s ease\";\n      requestAnimationFrame(() => {\n        drawer.style.transform = zu ? \"translateY(100%)\" : \"translateY(0)\";\n        if (schleier) schleier.style.opacity = zu ? \"0\" : \"\";\n      });\n      if (zu) setTimeout(() => close(true), 240);\n      else setTimeout(() => {\n        if (!zug) {\n          drawer.style.transition = \"\";\n          drawer.style.transform = \"\";\n          if (schleier) schleier.style.transition = \"\";\n        }\n      }, 380);\n    };\n    drawer.addEventListener(\"touchend\", loslassen);\n    drawer.addEventListener(\"touchcancel\", loslassen);\n  }\n  drawer.addEventListener(\"keydown\", (e) => {\n    if (seite) return;\n    if (e.key === \"Escape\") {\n      e.preventDefault();\n      close();\n      return;\n    }\n    if (e.key !== \"Tab\") return;\n    const f = [...drawer.querySelectorAll(FOCUSABLE)].filter((n) => !n.hidden && n.offsetParent !== null);\n    if (!f.length) {\n      e.preventDefault();\n      drawer.focus();\n      return;\n    }\n    const first = f[0], last = f[f.length - 1];\n    if (e.shiftKey && (document.activeElement === first || document.activeElement === drawer)) {\n      e.preventDefault();\n      last.focus();\n    } else if (!e.shiftKey && document.activeElement === last) {\n      e.preventDefault();\n      first.focus();\n    }\n  });\n  const onDocKey = (e) => {\n    if (e.key === \"Escape\" && isOpen) close();\n  };\n  document.addEventListener(\"keydown\", onDocKey);\n  closeBtn.addEventListener(\"click\", close);\n  schleier?.addEventListener(\"click\", close);\n  function destroy() {\n    unsub();\n    document.removeEventListener(\"keydown\", onDocKey);\n    if (isOpen) setBackgroundInert(false);\n    drawer.remove();\n    live.remove();\n  }\n  return { open, close, announce, destroy, render, elements: { drawer, live, body, foot }, get isOpen() {\n    return isOpen;\n  } };\n}\nexport function confirmAdded(item) {\n  const t = positionText(item);\n  if (item.type === \"discovery\") return \"Drin. Dein Discovery Set liegt im Warenkorb.\";\n  return item.qty > 1 ? `Drin. Dein ${t.titel} liegt im Warenkorb.` : `Drin. ${t.titel} liegt im Warenkorb.`;\n}\nexport { TIERS };\nexport function konfettiAuf(host) {\n  if (!host || matchMedia(\"(prefers-reduced-motion: reduce)\").matches) return;\n  const k = document.createElement(\"span\");\n  k.className = \"a-konfetti\";\n  k.setAttribute(\"aria-hidden\", \"true\");\n  const farben = [\"#c9a96a\", \"#2e9b57\", \"#a8834a\", \"#e3cf9f\", \"#5fb57f\"];\n  for (let i = 0; i < 10; i++) {\n    const w = (-150 + i * 13 + (i % 2 ? 6 : -4)) * Math.PI / 180;\n    const r = 20 + i * 7 % 16;\n    const t = document.createElement(\"i\");\n    t.style.cssText = `--dx:${(Math.cos(w) * r).toFixed(1)}px;--dy:${(Math.sin(w) * r).toFixed(1)}px;--rot:${i * 47 % 180 - 90}deg;--c:${farben[i % farben.length]};animation-delay:${i % 3 * 30}ms`;\n    k.append(t);\n  }\n  host.append(k);\n  setTimeout(() => k.remove(), 1100);\n}\n"],
  "mappings": "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",
  "names": []
}
