{"id":9669,"date":"2026-03-22T20:47:24","date_gmt":"2026-03-22T19:47:24","guid":{"rendered":"https:\/\/alpaka-appenzell.ch\/?page_id=9669"},"modified":"2026-05-13T15:23:20","modified_gmt":"2026-05-13T13:23:20","slug":"duvet-guide","status":"publish","type":"page","link":"https:\/\/alpaka-appenzell.ch\/en\/duvet-guide\/","title":{"rendered":"Duvet Guide"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9669\" class=\"elementor elementor-9669\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-798f56f e-flex e-con-boxed e-con e-parent\" data-id=\"798f56f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-c9df2a3 e-con-full e-flex e-con e-child\" data-id=\"c9df2a3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-6eb6fdc e-grid e-con-full e-con e-child\" data-id=\"6eb6fdc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d21ec1b elementor-widget elementor-widget-html\" data-id=\"d21ec1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"alpaka-berater-intro-box\">\r\n  <div class=\"alpaka-berater-intro-inner\">\r\n    <div class=\"alpaka-berater-kicker\">Quick recommendation<\/div>\r\n    <h2>Your personal duvet guide<\/h2>\r\n    <p>\r\n      With our short questionnaire, you will receive a personalised recommendation for the right duvet \u2013\r\n      based on your temperature sensitivity, sleeping habits and bedroom climate.\r\n    <\/p>\r\n    <p class=\"alpaka-berater-meta\">\r\n      Duration: approx. 1 minute \u2022 No data is stored\r\n    <\/p>\r\n\r\n    <!-- Internal link for SEO + UX -->\r\n    <p class=\"alpaka-berater-link\">\r\n      Discover the full range of our <a href=\"https:\/\/bestalpacabedding.payrexx.com\/de\/pay?tid=11746786\" target=\"_blank\" rel=\"noopener\">Best Alpaca Bedding\u2122 <\/a>  collection in the  \r\n      <a href=\"\/en\/products\/alpaka-duvets\/alpaka-bettdecke-vergleich\/\">\r\n        alpaca duvet comparison\r\n      <\/a>  and find the ideal solution for your sleeping needs.\r\n    <\/p>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .alpaka-berater-intro-box {\r\n    background: #f3f8f1;\r\n    border: 1px solid #d7e4d2;\r\n    border-radius: 20px;\r\n    padding: 28px;\r\n    margin: 20px 0 24px;\r\n  }\r\n\r\n  .alpaka-berater-intro-inner {\r\n    max-width: 900px;\r\n  }\r\n\r\n  .alpaka-berater-kicker {\r\n    display: inline-block;\r\n    margin-bottom: 10px;\r\n    padding: 6px 10px;\r\n    border-radius: 999px;\r\n    background: #dfead9;\r\n    color: #2f5d3a;\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    line-height: 1;\r\n  }\r\n\r\n  .alpaka-berater-intro-box h2 {\r\n    margin: 0 0 12px;\r\n    color: #2f5d3a;\r\n    font-size: 32px;\r\n    line-height: 1.2;\r\n  }\r\n\r\n  .alpaka-berater-intro-box p {\r\n    margin: 0 0 12px;\r\n    color: #334;\r\n    font-size: 17px;\r\n    line-height: 1.6;\r\n  }\r\n\r\n  .alpaka-berater-intro-box .alpaka-berater-meta {\r\n    margin: 4px 0 0;\r\n    color: #5c6b5f;\r\n    font-size: 14px;\r\n  }\r\n\r\n  \/* Link styling *\/\r\n  .alpaka-berater-link {\r\n    margin-top: 16px;\r\n    font-size: 15px;\r\n    color: #2f5d3a;\r\n  }\r\n\r\n  .alpaka-berater-link a {\r\n    color: #2f5d3a;\r\n    font-weight: 600;\r\n    text-decoration: underline;\r\n  }\r\n\r\n  .alpaka-berater-link a:hover {\r\n    color: #244a2f;\r\n  }\r\n\r\n  @media (max-width: 767px) {\r\n    .alpaka-berater-intro-box {\r\n      padding: 20px;\r\n      border-radius: 16px;\r\n    }\r\n\r\n    .alpaka-berater-intro-box h2 {\r\n      font-size: 26px;\r\n    }\r\n\r\n    .alpaka-berater-intro-box p {\r\n      font-size: 16px;\r\n    }\r\n  }\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c86e73 elementor-widget elementor-widget-image\" data-id=\"5c86e73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/alpaka-appenzell.ch\/wp-content\/uploads\/2026\/03\/Duvet-Guide.png\" class=\"attachment-large size-large wp-image-9714\" alt=\"Alpaka Duvet Guide - Pflegehinweise - Best Alpaka Bedding Duvet gefalten\" srcset=\"https:\/\/alpaka-appenzell.ch\/wp-content\/uploads\/2026\/03\/Duvet-Guide.png 800w, https:\/\/alpaka-appenzell.ch\/wp-content\/uploads\/2026\/03\/Duvet-Guide-300x225.png 300w, https:\/\/alpaka-appenzell.ch\/wp-content\/uploads\/2026\/03\/Duvet-Guide-768x576.png 768w, https:\/\/alpaka-appenzell.ch\/wp-content\/uploads\/2026\/03\/Duvet-Guide-16x12.png 16w, https:\/\/alpaka-appenzell.ch\/wp-content\/uploads\/2026\/03\/Duvet-Guide-600x450.png 600w\" sizes=\"(max-width: 800px) 100vw, 800px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37129bf elementor-widget elementor-widget-html\" data-id=\"37129bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"alpaka-berater\" class=\"alpaka-tool\">\r\n  <div class=\"alpaka-card\">\r\n    <div class=\"alpaka-header\">\r\n      <h2>Which duvet is right for you?<\/h2>\r\n      <p>Answer the questions step by step. At the end, you will receive our recommendation.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"alpaka-progress-wrap\">\r\n      <div class=\"alpaka-progress-bar\">\r\n        <div id=\"alpaka-progress\" class=\"alpaka-progress-fill\" style=\"width:0%;\"><\/div>\r\n      <\/div>\r\n      <div id=\"alpaka-progress-text\" class=\"alpaka-progress-text\">Step 1<\/div>\r\n    <\/div>\r\n\r\n    <div id=\"alpaka-questions\"><\/div>\r\n    <div id=\"alpaka-result\" class=\"alpaka-result\" style=\"display:none;\"><\/div>\r\n\r\n    <div class=\"alpaka-actions\">\r\n      <button type=\"button\" id=\"alpaka-back\" class=\"alpaka-btn alpaka-btn-secondary\" style=\"display:none;\">Back<\/button>\r\n      <button type=\"button\" id=\"alpaka-restart\" class=\"alpaka-btn alpaka-btn-secondary\" style=\"display:none;\">Restart<\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .alpaka-tool {\r\n    max-width: 860px;\r\n    margin: 0 auto;\r\n    font-family: inherit;\r\n  }\r\n\r\n  .alpaka-card {\r\n    border: 1px solid #ddd;\r\n    border-radius: 18px;\r\n    padding: 24px;\r\n    background: #fff;\r\n    box-shadow: 0 8px 30px rgba(0,0,0,0.05);\r\n  }\r\n\r\n  .alpaka-header h2 {\r\n    margin: 0 0 8px;\r\n    font-size: 30px;\r\n    line-height: 1.2;\r\n  }\r\n\r\n  .alpaka-header p {\r\n    margin: 0 0 18px;\r\n    color: #555;\r\n  }\r\n\r\n  .alpaka-progress-wrap {\r\n    margin-bottom: 24px;\r\n  }\r\n\r\n  .alpaka-progress-bar {\r\n    width: 100%;\r\n    height: 10px;\r\n    background: #eee;\r\n    border-radius: 999px;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .alpaka-progress-fill {\r\n    height: 100%;\r\n    border-radius: 999px;\r\n    background: #222;\r\n    transition: width 0.3s ease;\r\n  }\r\n\r\n  .alpaka-progress-text {\r\n    margin-top: 8px;\r\n    font-size: 14px;\r\n    color: #666;\r\n  }\r\n\r\n  .alpaka-step h3 {\r\n    margin: 0 0 8px;\r\n    font-size: 24px;\r\n    line-height: 1.3;\r\n  }\r\n\r\n  .alpaka-step p {\r\n    margin: 0 0 18px;\r\n    color: #666;\r\n  }\r\n\r\n  .alpaka-options {\r\n    display: grid;\r\n    grid-template-columns: 1fr;\r\n    gap: 12px;\r\n  }\r\n\r\n  .alpaka-option-btn,\r\n  .alpaka-multi-option {\r\n    width: 100%;\r\n    text-align: left;\r\n    border: 1px solid #d8d8d8;\r\n    background: #fff;\r\n    border-radius: 14px;\r\n    padding: 16px 18px;\r\n    cursor: pointer;\r\n    transition: all 0.2s ease;\r\n    font-size: 16px;\r\n    line-height: 1.4;\r\n  }\r\n\r\n  .alpaka-option-btn:hover,\r\n  .alpaka-multi-option:hover {\r\n    border-color: #999;\r\n    transform: translateY(-1px);\r\n  }\r\n\r\n  .alpaka-option-btn.active,\r\n  .alpaka-multi-option.active {\r\n    border-color: #222;\r\n    background: #f7f7f7;\r\n  }\r\n\r\n  .alpaka-note {\r\n    font-size: 14px;\r\n    color: #777;\r\n    margin-top: 8px;\r\n  }\r\n\r\n  .alpaka-actions {\r\n    display: flex;\r\n    gap: 10px;\r\n    margin-top: 24px;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  .alpaka-btn {\r\n    border: none;\r\n    border-radius: 12px;\r\n    padding: 12px 18px;\r\n    cursor: pointer;\r\n    font-size: 15px;\r\n  }\r\n\r\n  .alpaka-btn-primary {\r\n    background: #222;\r\n    color: #fff;\r\n  }\r\n\r\n  .alpaka-btn-secondary {\r\n    background: #f0f0f0;\r\n    color: #222;\r\n  }\r\n\r\n  .alpaka-result {\r\n    border-top: 1px solid #e6e6e6;\r\n    padding-top: 24px;\r\n  }\r\n\r\n  .alpaka-result-card {\r\n    border: 1px solid #ddd;\r\n    border-radius: 16px;\r\n    padding: 20px;\r\n    background: #fafafa;\r\n    margin-bottom: 16px;\r\n  }\r\n\r\n  .alpaka-result-card h3 {\r\n    margin: 0 0 10px;\r\n    font-size: 24px;\r\n  }\r\n\r\n  .alpaka-result-card h4 {\r\n    margin: 18px 0 8px;\r\n    font-size: 18px;\r\n  }\r\n\r\n  .alpaka-result-card p,\r\n  .alpaka-result-card li {\r\n    color: #444;\r\n  }\r\n\r\n  .alpaka-result-badge {\r\n    display: inline-block;\r\n    background: #222;\r\n    color: #fff;\r\n    font-size: 13px;\r\n    border-radius: 999px;\r\n    padding: 6px 10px;\r\n    margin-bottom: 12px;\r\n  }\r\n\r\n  .alpaka-cta-row {\r\n    display: flex;\r\n    gap: 10px;\r\n    flex-wrap: wrap;\r\n    margin-top: 16px;\r\n  }\r\n\r\n  .alpaka-link-btn {\r\n    display: inline-block;\r\n    text-decoration: none;\r\n    border-radius: 12px;\r\n    padding: 12px 16px;\r\n    background: #222;\r\n    color: #fff;\r\n  }\r\n\r\n  .alpaka-link-btn.secondary {\r\n    background: #e9e9e9;\r\n    color: #222;\r\n  }\r\n\r\n  @media (max-width: 767px) {\r\n    .alpaka-card {\r\n      padding: 18px;\r\n    }\r\n\r\n    .alpaka-header h2 {\r\n      font-size: 24px;\r\n    }\r\n\r\n    .alpaka-step h3 {\r\n      font-size: 21px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  const state = {\r\n    currentStep: 0,\r\n    history: [],\r\n    answers: {},\r\n    scores: {\r\n      waerme: 0,\r\n      atmung: 0,\r\n      flex: 0,\r\n      gefuehl: 0\r\n    },\r\n    flags: {\r\n      paarMismatch: false,\r\n      isChild: false,\r\n      isToddler: false,\r\n      isTeenager: false\r\n    },\r\n    reasons: []\r\n  };\r\n\r\n  const els = {\r\n    questions: document.getElementById('alpaka-questions'),\r\n    result: document.getElementById('alpaka-result'),\r\n    progress: document.getElementById('alpaka-progress'),\r\n    progressText: document.getElementById('alpaka-progress-text'),\r\n    back: document.getElementById('alpaka-back'),\r\n    restart: document.getElementById('alpaka-restart')\r\n  };\r\n\r\n  const productLinks = {\r\n    duvetLight: 'https:\/\/alpaka-appenzell.ch\/en\/product\/duvet-light\/',\r\n    duvetLightPlus: 'https:\/\/alpaka-appenzell.ch\/en\/product\/duvet-light-plus\/',\r\n    comfort: 'https:\/\/alpaka-appenzell.ch\/en\/product\/duvet-comfort\/',\r\n    comfortPlus: 'https:\/\/alpaka-appenzell.ch\/en\/product\/duvet-comfort-plus\/',\r\n    premium: 'https:\/\/alpaka-appenzell.ch\/en\/product\/best-alpaca-bedding-duvet-premium\/',\r\n    topper: 'https:\/\/alpaka-appenzell.ch\/en\/product\/alpaka-matratzen-topper\/',\r\n    vergleich: 'https:\/\/alpaka-appenzell.ch\/en\/products\/alpaka-duvets\/'\r\n  };\r\n\r\n  function addScores(delta) {\r\n    state.scores.waerme += delta.waerme || 0;\r\n    state.scores.atmung += delta.atmung || 0;\r\n    state.scores.flex += delta.flex || 0;\r\n    state.scores.gefuehl += delta.gefuehl || 0;\r\n  }\r\n\r\n  function setReason(text) {\r\n    if (!state.reasons.includes(text)) state.reasons.push(text);\r\n  }\r\n\r\n  function renderSingleChoice(step, selectedValue) {\r\n    const html = `\r\n      <div class=\"alpaka-step\">\r\n        <h3>${step.title}<\/h3>\r\n        ${step.description ? `<p>${step.description}<\/p>` : ''}\r\n        <div class=\"alpaka-options\">\r\n          ${step.options.map(opt => `\r\n            <button type=\"button\" class=\"alpaka-option-btn ${selectedValue === opt.value ? 'active' : ''}\">\r\n              ${opt.label}\r\n            <\/button>\r\n          `).join('')}\r\n        <\/div>\r\n        ${step.note ? `<div class=\"alpaka-note\">${step.note}<\/div>` : ''}\r\n      <\/div>\r\n    `;\r\n    els.questions.innerHTML = html;\r\n\r\n    const buttons = els.questions.querySelectorAll('.alpaka-option-btn');\r\n    buttons.forEach((btn, index) => {\r\n      btn.addEventListener('click', function () {\r\n        step.onAnswer(step.options[index]);\r\n      });\r\n    });\r\n  }\r\n\r\n  function renderMultiChoice(step) {\r\n    var selected = state.answers[step.key] || [];\r\n\r\n    if (!Array.isArray(selected)) {\r\n      selected = [];\r\n    }\r\n\r\n    var html = '<div class=\"alpaka-step\">';\r\n    html += '<h3>' + step.title + '<\/h3>';\r\n\r\n    if (step.description) {\r\n      html += '<p>' + step.description + '<\/p>';\r\n    }\r\n\r\n    html += '<div class=\"alpaka-options\">';\r\n\r\n    step.options.forEach(function (opt) {\r\n      var activeClass = selected.indexOf(opt.value) !== -1 ? 'active' : '';\r\n      html += '<button type=\"button\" class=\"alpaka-multi-option ' + activeClass + '\" data-value=\"' + opt.value + '\">';\r\n      html += opt.label;\r\n      html += '<\/button>';\r\n    });\r\n\r\n    html += '<\/div>';\r\n\r\n    if (step.note) {\r\n      html += '<div class=\"alpaka-note\">' + step.note + '<\/div>';\r\n    }\r\n\r\n    html += '<div class=\"alpaka-actions\">';\r\n    html += '<button type=\"button\" class=\"alpaka-btn alpaka-btn-primary\" id=\"alpaka-multi-continue\">Continue<\/button>';\r\n    html += '<\/div>';\r\n    html += '<\/div>';\r\n\r\n    els.questions.innerHTML = html;\r\n\r\n    var optionButtons = els.questions.querySelectorAll('.alpaka-multi-option');\r\n    var continueBtn = document.getElementById('alpaka-multi-continue');\r\n\r\n    optionButtons.forEach(function (btn) {\r\n      btn.addEventListener('click', function () {\r\n        var value = btn.getAttribute('data-value');\r\n        var arr = state.answers[step.key] || [];\r\n\r\n        if (!Array.isArray(arr)) {\r\n          arr = [];\r\n        } else {\r\n          arr = arr.slice();\r\n        }\r\n\r\n        if (value === 'none') {\r\n          if (arr.indexOf('none') !== -1) {\r\n            arr = [];\r\n            btn.classList.remove('active');\r\n          } else {\r\n            arr = ['none'];\r\n            optionButtons.forEach(function (b) {\r\n              b.classList.remove('active');\r\n            });\r\n            btn.classList.add('active');\r\n          }\r\n        } else {\r\n          arr = arr.filter(function (v) {\r\n            return v !== 'none';\r\n          });\r\n\r\n          if (arr.indexOf(value) !== -1) {\r\n            arr = arr.filter(function (v) {\r\n              return v !== value;\r\n            });\r\n            btn.classList.remove('active');\r\n          } else {\r\n            arr.push(value);\r\n            btn.classList.add('active');\r\n          }\r\n\r\n          var noneBtn = els.questions.querySelector('.alpaka-multi-option[data-value=\"none\"]');\r\n          if (noneBtn) {\r\n            noneBtn.classList.remove('active');\r\n          }\r\n        }\r\n\r\n        state.answers[step.key] = arr;\r\n      });\r\n    });\r\n\r\n    continueBtn.addEventListener('click', function () {\r\n      var values = state.answers[step.key] || [];\r\n      if (!Array.isArray(values)) {\r\n        values = [];\r\n      }\r\n      step.onAnswer(values);\r\n    });\r\n  }\r\n\r\n  function updateProgress() {\r\n    const visibleSteps = getFlow();\r\n    const total = visibleSteps.length || 1;\r\n    const current = Math.min(state.currentStep + 1, total);\r\n    const percent = (current \/ total) * 100;\r\n    els.progress.style.width = percent + '%';\r\n    els.progressText.textContent = `Step ${current} of ${total}`;\r\n  }\r\n\r\n  function goToNext() {\r\n    state.history.push(state.currentStep);\r\n    state.currentStep++;\r\n    render();\r\n  }\r\n\r\n  function goBack() {\r\n    if (!state.history.length) return;\r\n    state.currentStep = state.history.pop();\r\n    rebuildStateFromAnswers();\r\n    render();\r\n  }\r\n\r\n  function restartAll() {\r\n    state.currentStep = 0;\r\n    state.history = [];\r\n    state.answers = {};\r\n    state.scores = { waerme: 0, atmung: 0, flex: 0, gefuehl: 0 };\r\n    state.flags = { paarMismatch: false, isChild: false, isToddler: false, isTeenager: false };\r\n    state.reasons = [];\r\n    els.result.style.display = 'none';\r\n    render();\r\n  }\r\n\r\n  function rebuildStateFromAnswers() {\r\n    state.scores = { waerme: 0, atmung: 0, flex: 0, gefuehl: 0 };\r\n    state.flags = { paarMismatch: false, isChild: false, isToddler: false, isTeenager: false };\r\n    state.reasons = [];\r\n\r\n    const replaySteps = getAllBaseSteps();\r\n    replaySteps.forEach(step => {\r\n      const stored = state.answers[step.key];\r\n      if (stored === undefined) return;\r\n\r\n      if (step.type === 'single') {\r\n        const found = step.options.find(o => o.value === stored);\r\n        if (found && typeof step.apply === 'function') step.apply(found);\r\n      }\r\n\r\n      if (step.type === 'multi') {\r\n        if (Array.isArray(stored) && typeof step.apply === 'function') {\r\n          step.apply(stored);\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  function getAllBaseSteps() {\r\n    return [\r\n      stepForWhom(),\r\n      stepChildAge(),\r\n      stepSleepSituation(),\r\n      stepSharedWarmth(),\r\n      stepTempFeeling(),\r\n      stepSweating(),\r\n      stepSensitivity(),\r\n      stepBedroomTemp(),\r\n      stepWindowOpen(),\r\n      stepUsage(),\r\n      stepWeightPreference(),\r\n      stepSleepFeeling()\r\n    ];\r\n  }\r\n\r\n  function getFlow() {\r\n    const flow = [];\r\n    flow.push(stepForWhom());\r\n\r\n    if (state.answers.forWhom === 'child') {\r\n      flow.push(stepChildAge());\r\n      if (state.answers.childAge === 'toddler') return flow;\r\n    }\r\n\r\n    flow.push(stepSleepSituation());\r\n\r\n    if (state.answers.sleepSituation === 'sharedOne') {\r\n      flow.push(stepSharedWarmth());\r\n    }\r\n\r\n    flow.push(stepTempFeeling());\r\n    flow.push(stepSweating());\r\n    flow.push(stepSensitivity());\r\n    flow.push(stepBedroomTemp());\r\n    flow.push(stepWindowOpen());\r\n    flow.push(stepUsage());\r\n    flow.push(stepWeightPreference());\r\n    flow.push(stepSleepFeeling());\r\n\r\n    return flow;\r\n  }\r\n\r\n  function stepForWhom() {\r\n    return {\r\n      key: 'forWhom',\r\n      type: 'single',\r\n      title: 'Who are you looking for a duvet for?',\r\n      description: 'This helps us build the most suitable recommendation.',\r\n      options: [\r\n        { label: 'For myself \/ for an adult', value: 'adult' },\r\n        { label: 'For a child', value: 'child' },\r\n        { label: 'For two people \/ as a couple', value: 'couple' }\r\n      ],\r\n      apply: function (opt) {\r\n        state.flags.isChild = opt.value === 'child';\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.forWhom = opt.value;\r\n        this.apply(opt);\r\n\r\n        if (opt.value === 'couple' && !state.answers.sleepSituation) {\r\n          state.answers.sleepSituation = 'sharedOne';\r\n        }\r\n\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepChildAge() {\r\n    return {\r\n      key: 'childAge',\r\n      type: 'single',\r\n      title: 'How old is the child?',\r\n      description: 'For toddlers, we consciously recommend lighter solutions.',\r\n      options: [\r\n        { label: 'Toddler', value: 'toddler' },\r\n        { label: 'Child \/ teenager', value: 'teen' }\r\n      ],\r\n      apply: function (opt) {\r\n        state.flags.isToddler = opt.value === 'toddler';\r\n        state.flags.isTeenager = opt.value === 'teen';\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.childAge = opt.value;\r\n        this.apply(opt);\r\n\r\n        if (opt.value === 'toddler') {\r\n          showResult();\r\n          return;\r\n        }\r\n\r\n        if (opt.value === 'teen') {\r\n          addScores({ waerme: -1, atmung: 1 });\r\n          setReason('this recommendation is for a child or teenager');\r\n        }\r\n\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepSleepSituation() {\r\n    return {\r\n      key: 'sleepSituation',\r\n      type: 'single',\r\n      title: 'What is your sleeping situation?',\r\n      description: 'This plays a central role in the recommendation.',\r\n      options: [\r\n        { label: 'I sleep alone', value: 'alone' },\r\n        { label: 'We share one duvet', value: 'sharedOne' },\r\n        { label: 'We sleep as a couple with separate duvets', value: 'separate' }\r\n      ],\r\n      apply: function (opt) {\r\n        if (opt.value === 'sharedOne') {\r\n          addScores({ flex: 2 });\r\n          setReason('you share one duvet');\r\n        }\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.sleepSituation = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepSharedWarmth() {\r\n    return {\r\n      key: 'sharedWarmth',\r\n      type: 'single',\r\n      title: 'Do you have a similar warmth preference?',\r\n      description: 'If two people feel temperature very differently, an individual solution is often better.',\r\n      options: [\r\n        { label: 'Yes, quite similar', value: 'similar' },\r\n        { label: 'No, rather different', value: 'different' }\r\n      ],\r\n      apply: function (opt) {\r\n        if (opt.value === 'different') {\r\n          state.flags.paarMismatch = true;\r\n          addScores({ flex: 3 });\r\n          setReason('you have different warmth needs');\r\n        }\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.sharedWarmth = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepTempFeeling() {\r\n    return {\r\n      key: 'tempFeeling',\r\n      type: 'single',\r\n      title: 'How do you usually feel at night?',\r\n      options: [\r\n        { label: 'I get cold easily', value: 'cold', score: { waerme: 3 } },\r\n        { label: 'Usually comfortable', value: 'neutral', score: { waerme: 1 } },\r\n        { label: 'I tend to feel warm', value: 'warm', score: { waerme: -1, atmung: 1 } },\r\n        { label: 'I overheat quickly \/ sweat', value: 'hot', score: { waerme: -3, atmung: 3 } }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n        if (opt.value === 'cold') setReason('you tend to feel cold at night');\r\n        if (opt.value === 'warm' || opt.value === 'hot') setReason('you tend to sleep warm');\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.tempFeeling = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepSweating() {\r\n    return {\r\n      key: 'sweating',\r\n      type: 'single',\r\n      title: 'How much do you sweat at night?',\r\n      options: [\r\n        { label: 'Hardly at all', value: 'none', score: {} },\r\n        { label: 'Occasionally', value: 'sometimes', score: { atmung: 1 } },\r\n        { label: 'Frequently', value: 'often', score: { waerme: -1, atmung: 3 } },\r\n        { label: 'Very heavily', value: 'heavy', score: { waerme: -2, atmung: 5 } }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n        if (opt.value === 'often' || opt.value === 'heavy') {\r\n          setReason('breathability is especially important for you');\r\n        }\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.sweating = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepSensitivity() {\r\n    return {\r\n      key: 'sensitivity',\r\n      type: 'single',\r\n      title: 'Is there anything that affects how warm or cool you feel at night?',\r\n      description: 'Optional.',\r\n      note: 'For example: hot flashes, feeling cold easily, or strongly fluctuating temperature sensitivity.',\r\n      options: [\r\n        { label: 'I often feel cold', value: 'oftenCold', score: { waerme: 2 }, reason: 'you tend to feel cold easily' },\r\n        { label: 'I often feel warm \/ have hot flashes', value: 'hotFlashes', score: { waerme: -2, atmung: 3 }, reason: 'you need a well-regulated sleeping climate' },\r\n        { label: 'I sweat heavily at night', value: 'nightSweat', score: { waerme: -1, atmung: 3 }, reason: 'moisture management is especially relevant for you' },\r\n        { label: 'My temperature sensitivity fluctuates strongly', value: 'fluctuating', score: { flex: 2 }, reason: 'your warmth needs fluctuate' },\r\n        { label: 'No special factors', value: 'none', score: {}, reason: '' }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score || {});\r\n        if (opt.reason) setReason(opt.reason);\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.sensitivity = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepBedroomTemp() {\r\n    return {\r\n      key: 'bedroomTemp',\r\n      type: 'single',\r\n      title: 'How warm is your bedroom in winter?',\r\n      options: [\r\n        { label: 'Below 16\u00b0C', value: 'under16', score: { waerme: 4, flex: 1 } },\r\n        { label: '16\u201318\u00b0C', value: '16to18', score: { waerme: 2 } },\r\n        { label: '18\u201320\u00b0C', value: '18to20', score: {} },\r\n        { label: 'Above 20\u00b0C', value: 'over20', score: { waerme: -2, atmung: 1 } }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n        if (opt.value === 'under16' || opt.value === '16to18') {\r\n          setReason('your bedroom is rather cool');\r\n        }\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.bedroomTemp = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepWindowOpen() {\r\n    return {\r\n      key: 'windowOpen',\r\n      type: 'single',\r\n      title: 'Do you sleep with the window open?',\r\n      options: [\r\n        { label: 'Always', value: 'always', score: { waerme: 2, flex: 1 } },\r\n        { label: 'Often', value: 'often', score: { waerme: 1 } },\r\n        { label: 'Rarely', value: 'rarely', score: {} },\r\n        { label: 'Never', value: 'never', score: {} }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.windowOpen = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepUsage() {\r\n    return {\r\n      key: 'usage',\r\n      type: 'single',\r\n      title: 'What are you mainly looking for?',\r\n      options: [\r\n        { label: 'A light summer solution', value: 'summer', score: { waerme: -4, gefuehl: -1 } },\r\n        { label: 'A year-round solution', value: 'year', score: { flex: 2 } },\r\n        { label: 'A warm winter solution', value: 'winter', score: { waerme: 4, gefuehl: 1 } },\r\n        { label: 'A flexible system for multiple seasons', value: 'system', score: { flex: 5 } }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n        if (opt.value === 'system') setReason('you want maximum flexibility');\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.usage = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepWeightPreference() {\r\n    return {\r\n      key: 'weightPreference',\r\n      type: 'single',\r\n      title: 'What matters more to you?',\r\n      options: [\r\n        { label: 'As light as possible', value: 'veryLight', score: { atmung: 1, gefuehl: -4 } },\r\n        { label: 'Light, but still warm', value: 'lightWarm', score: { waerme: 1, gefuehl: -2 } },\r\n        { label: 'Balanced', value: 'balanced', score: {} },\r\n        { label: 'Nicely warm and cosy', value: 'cozy', score: { waerme: 1, gefuehl: 3 } }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.weightPreference = opt.value;\r\n        this.apply(opt);\r\n        goToNext();\r\n      }\r\n    };\r\n  }\r\n\r\n  function stepSleepFeeling() {\r\n    return {\r\n      key: 'sleepFeeling',\r\n      type: 'single',\r\n      title: 'Which sleeping feel do you prefer?',\r\n      options: [\r\n        { label: 'Cool and airy', value: 'airy', score: { waerme: -1, atmung: 2, gefuehl: -3 } },\r\n        { label: 'Neutral and balanced', value: 'neutral', score: {} },\r\n        { label: 'Warm and cosy', value: 'warm', score: { waerme: 1, gefuehl: 3 } }\r\n      ],\r\n      apply: function (opt) {\r\n        addScores(opt.score);\r\n      },\r\n      onAnswer: function (opt) {\r\n        state.answers.sleepFeeling = opt.value;\r\n        this.apply(opt);\r\n        showResult();\r\n      }\r\n    };\r\n  }\r\n\r\n  function buildReasons(defaults) {\r\n    const picks = [...state.reasons].slice(0, 3);\r\n    const merged = [...picks, ...defaults].filter(Boolean);\r\n    return [...new Set(merged)].slice(0, 4);\r\n  }\r\n\r\n  function classify() {\r\n    if (state.flags.isToddler) {\r\n      return {\r\n        badge: 'Special case: toddler',\r\n        title: 'Our recommendation for toddlers',\r\n        product: 'Duvet Light',\r\n        primaryUrl: productLinks.duvetLight,\r\n        alternative: 'Duvet Light Plus for cooler winter conditions',\r\n        alternativeUrl: productLinks.duvetLightPlus,\r\n        reasonBullets: [\r\n          'For toddlers, we consciously recommend a light and breathable solution.',\r\n          'This helps maintain a balanced and comfortable sleeping climate.',\r\n          'For winter, Duvet Light Plus is a sensible warmer alternative.'\r\n        ]\r\n      };\r\n    }\r\n\r\n    let waerme = state.scores.waerme;\r\n    let atmung = state.scores.atmung;\r\n    let flex = state.scores.flex;\r\n    let gefuehl = state.scores.gefuehl;\r\n\r\n    let waermeKategorie = 'medium';\r\n    if (waerme <= -3) waermeKategorie = 'low';\r\n    if (waerme >= 3 && waerme <= 5) waermeKategorie = 'high';\r\n    if (waerme >= 6) waermeKategorie = 'veryHigh';\r\n\r\n    let atmungKategorie = 'normal';\r\n    if (atmung >= 2 && atmung <= 4) atmungKategorie = 'elevated';\r\n    if (atmung >= 5) atmungKategorie = 'veryHigh';\r\n\r\n    let systemRelevant = flex >= 5 || state.flags.paarMismatch;\r\n    let veryAiry = gefuehl <= -3;\r\n    let veryCozy = gefuehl >= 3;\r\n\r\n    if (systemRelevant) {\r\n      return {\r\n        badge: 'Flexible system',\r\n        title: 'Our recommendation: a flexible combination',\r\n        product: 'Duvet Comfort + Alpaca Mattress Topper',\r\n        primaryUrl: productLinks.comfort,\r\n        secondaryLabel: 'View topper',\r\n        secondaryUrl: productLinks.topper,\r\n        alternative: state.flags.paarMismatch\r\n          ? 'If you have different warmth needs, two individually suitable duvets are often better than one shared duvet.'\r\n          : 'As a simpler alternative, a balanced year-round duvet is often a good fit.',\r\n        reasonBullets: buildReasons([\r\n          'Your profile points to a need for more flexibility throughout the year.',\r\n          'This is especially useful if your warmth needs fluctuate or your sleeping situation is more complex.',\r\n          state.flags.paarMismatch ? 'For couples with different warmth needs, we often recommend two individual solutions.' : ''\r\n        ])\r\n      };\r\n    }\r\n\r\n    if (waermeKategorie === 'low' && (atmungKategorie === 'elevated' || atmungKategorie === 'veryHigh' || veryAiry)) {\r\n      return {\r\n        badge: 'Light & airy',\r\n        title: 'Our recommendation: Duvet Light',\r\n        product: 'Duvet Light',\r\n        primaryUrl: productLinks.duvetLight,\r\n        alternative: 'If you would like a little more warmth, Duvet Light Plus is often the better fit.',\r\n        alternativeUrl: productLinks.duvetLightPlus,\r\n        reasonBullets: buildReasons([\r\n          'You tend to sleep warm or prefer a very airy sleeping feel.',\r\n          'Breathability is especially important for you.',\r\n          'A light solution supports a balanced sleeping climate.'\r\n        ])\r\n      };\r\n    }\r\n\r\n    if (waermeKategorie === 'medium' && atmungKategorie === 'normal' && !veryCozy) {\r\n      return {\r\n        badge: 'Balanced',\r\n        title: 'Our recommendation: Duvet Comfort',\r\n        product: 'Duvet Comfort',\r\n        primaryUrl: productLinks.comfort,\r\n        alternative: 'If you prefer something a little lighter, check Duvet Light Plus.',\r\n        alternativeUrl: productLinks.duvetLightPlus,\r\n        reasonBullets: buildReasons([\r\n          'Your profile suggests balanced warmth needs.',\r\n          'A year-round solution is often best when your temperature sensitivity is moderate.',\r\n          'Duvet Comfort is a very suitable option for that.'\r\n        ])\r\n      };\r\n    }\r\n\r\n    if (waermeKategorie === 'high' && atmungKategorie !== 'veryHigh' && !veryCozy) {\r\n      return {\r\n        badge: 'Higher warmth needs',\r\n        title: 'Our recommendation: Duvet Comfort Plus',\r\n        product: 'Duvet Comfort Plus',\r\n        primaryUrl: productLinks.comfortPlus,\r\n        alternative: 'If you need even more winter warmth, check Duvet Premium.',\r\n        alternativeUrl: productLinks.premium,\r\n        reasonBullets: buildReasons([\r\n          'You have increased warmth needs.',\r\n          'A cool bedroom or sleeping with the window open also points toward a warmer duvet.',\r\n          'Duvet Comfort Plus is usually the better fit here.'\r\n        ])\r\n      };\r\n    }\r\n\r\n    if (waermeKategorie === 'veryHigh' || (waermeKategorie === 'high' && veryCozy)) {\r\n      return {\r\n        badge: 'Very high warmth needs',\r\n        title: 'Our recommendation: Duvet Premium',\r\n        product: 'Duvet Premium',\r\n        primaryUrl: productLinks.premium,\r\n        alternative: 'If you want more flexibility, combine a balanced duvet with a topper instead.',\r\n        alternativeUrl: productLinks.topper,\r\n        reasonBullets: buildReasons([\r\n          'Your profile suggests very high warmth needs.',\r\n          'You prefer a warm and cosy sleeping feel.',\r\n          'Duvet Premium is particularly suitable for very cool conditions.'\r\n        ])\r\n      };\r\n    }\r\n\r\n    if (waermeKategorie === 'medium' && (veryAiry || atmungKategorie === 'elevated')) {\r\n      return {\r\n        badge: 'Light, with a little more reserve',\r\n        title: 'Our recommendation: Duvet Light Plus',\r\n        product: 'Duvet Light Plus',\r\n        primaryUrl: productLinks.duvetLightPlus,\r\n        alternative: 'If you prefer a more classically balanced option, check Duvet Comfort.',\r\n        alternativeUrl: productLinks.comfort,\r\n        reasonBullets: buildReasons([\r\n          'You want a lighter and climate-regulating solution.',\r\n          'At the same time, you would like a little more reserve than a pure summer duvet.',\r\n          'Duvet Light Plus is often an excellent middle ground.'\r\n        ])\r\n      };\r\n    }\r\n\r\n    return {\r\n      badge: 'Recommendation',\r\n      title: 'Our recommendation: Duvet Comfort',\r\n      product: 'Duvet Comfort',\r\n      primaryUrl: productLinks.comfort,\r\n      alternative: 'For more orientation, you can also view the duvet comparison.',\r\n      alternativeUrl: productLinks.vergleich,\r\n      reasonBullets: buildReasons([\r\n        'Overall, your profile points to a balanced solution.',\r\n        'Duvet Comfort is often the most suitable recommendation for medium warmth needs.',\r\n        'This gives you a versatile and practical duvet for everyday use.'\r\n      ])\r\n    };\r\n  }\r\n\r\n  function showResult() {\r\n    const result = classify();\r\n\r\n    let pairHint = '';\r\n    if (state.flags.paarMismatch) {\r\n      pairHint = `\r\n        <div class=\"alpaka-result-card\">\r\n          <h4>Note for couples<\/h4>\r\n          <p>If your warmth needs differ, two individually suitable duvets are often more comfortable than one shared solution.<\/p>\r\n        <\/div>\r\n      `;\r\n    }\r\n\r\n    let secondaryCta = '';\r\n    if (result.secondaryLabel && result.secondaryUrl) {\r\n      secondaryCta += `<a class=\"alpaka-link-btn secondary\" href=\"${result.secondaryUrl}\">${result.secondaryLabel}<\/a>`;\r\n    }\r\n    if (result.alternativeUrl) {\r\n      secondaryCta += `<a class=\"alpaka-link-btn secondary\" href=\"${result.alternativeUrl}\">View alternative<\/a>`;\r\n    }\r\n\r\n    els.questions.innerHTML = '';\r\n    els.result.style.display = 'block';\r\n    els.result.innerHTML = `\r\n      <div class=\"alpaka-result-card\">\r\n        <div class=\"alpaka-result-badge\">${result.badge}<\/div>\r\n        <h3>${result.title}<\/h3>\r\n        <p><strong>Recommended:<\/strong> ${result.product}<\/p>\r\n\r\n        <h4>Why this recommendation?<\/h4>\r\n        <ul>\r\n          ${result.reasonBullets.map(item => `<li>${item}<\/li>`).join('')}\r\n        <\/ul>\r\n\r\n        <h4>Alternative<\/h4>\r\n        <p>${result.alternative}<\/p>\r\n\r\n        <div class=\"alpaka-cta-row\">\r\n          <a class=\"alpaka-link-btn\" href=\"${result.primaryUrl}\">View recommended product<\/a>\r\n          ${secondaryCta}\r\n          <a class=\"alpaka-link-btn secondary\" href=\"${productLinks.vergleich}\">View duvet overview<\/a>\r\n        <\/div>\r\n      <\/div>\r\n      ${pairHint}\r\n    `;\r\n\r\n    els.back.style.display = 'inline-block';\r\n    els.restart.style.display = 'inline-block';\r\n    els.progress.style.width = '100%';\r\n    els.progressText.textContent = 'Recommendation';\r\n  }\r\n\r\n  function render() {\r\n    els.result.style.display = 'none';\r\n    const flow = getFlow();\r\n    const step = flow[state.currentStep] || flow[flow.length - 1];\r\n    updateProgress();\r\n\r\n    if (!step) return;\r\n\r\n    els.back.style.display = state.history.length ? 'inline-block' : 'none';\r\n    els.restart.style.display = 'inline-block';\r\n\r\n    if (step.type === 'single') {\r\n      renderSingleChoice(step, state.answers[step.key]);\r\n    } else {\r\n      renderMultiChoice(step);\r\n    }\r\n  }\r\n\r\n  els.back.addEventListener('click', goBack);\r\n  els.restart.addEventListener('click', restartAll);\r\n\r\n  render();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Quick recommendation Your personal duvet guide With our short questionnaire, you will receive a personalised recommendation for the right duvet \u2013 based on your temperature sensitivity, sleeping habits and bedroom climate. Duration: approx. 1 minute \u2022 No data is stored Discover the full range of our Best Alpaca Bedding\u2122 collection in the alpaca duvet comparison [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":9714,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9669","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/pages\/9669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/comments?post=9669"}],"version-history":[{"count":51,"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/pages\/9669\/revisions"}],"predecessor-version":[{"id":11196,"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/pages\/9669\/revisions\/11196"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/media\/9714"}],"wp:attachment":[{"href":"https:\/\/alpaka-appenzell.ch\/en\/wp-json\/wp\/v2\/media?parent=9669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}