{"product_id":"calentador-alimentos","title":"Riscaldatore per alimenti, scongelatore per alimenti, essiccatore per alimenti","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\u003e\u003c\/p\u003e\n\u003cstyle\u003ehtml,body{margin:0;padding:0}\u003c\/style\u003e\n\u003cdiv class=\"kwp\"\u003e\n\u003c!-- Font: link chạy sớm hơn @import. @import phía dưới chỉ là dự phòng nếu editor strip thẻ link (cùng URL nên trình duyệt chỉ tải 1 lần). --\u003e \u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e \u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\"\u003e \u003clink rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700\u0026amp;family=Manrope:wght@400;500;600;700\u0026amp;display=swap\"\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700\u0026family=Manrope:wght@400;500;600;700\u0026display=swap');\n\n    \/* ================= TOKENS ================= *\/\n    #kwp-warming-tray {\n      --kwp-ivory: #f5f0e7;\n      --kwp-paper: #fffdf8;\n      --kwp-sand: #ebe3d5;\n      --kwp-forest: #17382e;\n      --kwp-forest-2: #0e2b23;\n      --kwp-ink: #1b1a17;\n      --kwp-muted: #6d6a62;\n      --kwp-ember: #c9502d;\n      --kwp-honey: #efb44c;\n      --kwp-line: rgba(27, 26, 23, .16);\n      --kwp-line-soft: rgba(27, 26, 23, .08);\n      --kwp-radius: 22px;\n      --kwp-radius-sm: 16px;\n      --kwp-gap: clamp(12px, 1.4vw, 18px);\n      --kwp-u: 16px;\n      color: var(--kwp-ink);\n      background: var(--kwp-ivory);\n      font-family: Manrope, Arial, Helvetica, sans-serif;\n      font-size: var(--kwp-u);\n      line-height: 1.55;\n      position: relative;\n      isolation: isolate;\n      overflow-x: hidden;\n      overflow-x: clip;\n      -webkit-text-size-adjust: 100%;\n    }\n\n    #kwp-warming-tray *,\n    #kwp-warming-tray *::before,\n    #kwp-warming-tray *::after { box-sizing: border-box; }\n\n    #kwp-warming-tray .kwp-shell {\n      width: min(1180px, calc(100% - clamp(28px, 5vw, 56px)));\n      margin: 0 auto;\n    }\n\n    #kwp-warming-tray h1,\n    #kwp-warming-tray h2,\n    #kwp-warming-tray h3,\n    #kwp-warming-tray .kwp-display {\n      font-family: \"Bricolage Grotesque\", Manrope, Arial, sans-serif;\n      letter-spacing: -.042em;\n      line-height: 1;\n      margin: 0;\n    }\n\n    #kwp-warming-tray h1 { font-size: clamp(calc(2.9 * var(--kwp-u)), 5.9vw, calc(5.2 * var(--kwp-u))); max-width: 12ch; }\n    #kwp-warming-tray h2 { font-size: clamp(calc(2.15 * var(--kwp-u)), 4.3vw, calc(3.95 * var(--kwp-u))); max-width: 13ch; }\n    #kwp-warming-tray h3 { font-size: clamp(calc(1.18 * var(--kwp-u)), 1.8vw, calc(1.6 * var(--kwp-u))); letter-spacing: -.03em; }\n    #kwp-warming-tray p { margin: 0; }\n    #kwp-warming-tray a { color: inherit; }\n\n    #kwp-warming-tray img,\n    #kwp-warming-tray video { display: block; max-width: 100%; }\n\n    #kwp-warming-tray button {\n      font: inherit;\n      color: inherit;\n      background: none;\n      border: 0;\n      cursor: pointer;\n      text-align: left;\n    }\n\n    \/* ================= ATOMS ================= *\/\n    #kwp-warming-tray .kwp-btn {\n      align-items: center;\n      background: var(--kwp-ember);\n      border: 1px solid var(--kwp-ember);\n      border-radius: 999px;\n      color: #fff;\n      display: inline-flex;\n      font-size: calc(.95 * var(--kwp-u));\n      font-weight: 700;\n      gap: 12px;\n      justify-content: center;\n      min-height: 54px;\n      padding: 0 26px;\n      text-decoration: none;\n      transition: transform .22s ease, background .22s ease, box-shadow .22s ease;\n    }\n\n    #kwp-warming-tray .kwp-btn:hover {\n      background: #a93f22;\n      border-color: #a93f22;\n      transform: translateY(-2px);\n      box-shadow: 0 12px 26px rgba(27, 26, 23, .22);\n    }\n\n    #kwp-warming-tray .kwp-btn__arrow { font-size: calc(1.2 * var(--kwp-u)); line-height: 1; }\n\n    #kwp-warming-tray .kwp-btn:focus-visible,\n    #kwp-warming-tray button:focus-visible,\n    #kwp-warming-tray summary:focus-visible,\n    #kwp-warming-tray video:focus-visible {\n      outline: 3px solid var(--kwp-ember);\n      outline-offset: 3px;\n      border-radius: 10px;\n    }\n\n    #kwp-warming-tray .kwp-meta {\n      color: var(--kwp-muted);\n      font-size: calc(.76 * var(--kwp-u));\n      font-weight: 700;\n      letter-spacing: .1em;\n      text-transform: uppercase;\n    }\n\n    #kwp-warming-tray .kwp-section { padding: clamp(44px, 4.8vw, 76px) 0; }\n\n    #kwp-warming-tray .kwp-lead {\n      color: var(--kwp-muted);\n      font-size: clamp(calc(1.02 * var(--kwp-u)), 1.1vw, calc(1.15 * var(--kwp-u)));\n      max-width: 42ch;\n    }\n\n    #kwp-warming-tray .kwp-heading-row {\n      align-items: end;\n      display: flex;\n      flex-wrap: wrap;\n      gap: 16px 40px;\n      justify-content: space-between;\n      margin-bottom: clamp(18px, 2.2vw, 32px);\n    }\n\n    #kwp-warming-tray .kwp-heading-row .kwp-lead { max-width: 34ch; }\n\n    #kwp-warming-tray figure { margin: 0; }\n\n    #kwp-warming-tray .kwp-frame {\n      background: var(--kwp-sand);\n      border-radius: 18px;\n      min-height: 0;\n      overflow: hidden;\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-frame img {\n      height: 100%;\n      object-fit: cover;\n      transition: transform .6s cubic-bezier(.25, 1, .5, 1);\n      width: 100%;\n    }\n\n    #kwp-warming-tray figure:hover .kwp-frame img { transform: scale(1.03); }\n\n    #kwp-warming-tray figcaption {\n      align-items: baseline;\n      display: flex;\n      font-size: calc(.82 * var(--kwp-u));\n      font-weight: 600;\n      gap: 10px;\n      padding-top: 12px;\n    }\n\n    #kwp-warming-tray figcaption::before {\n      background: var(--kwp-ember);\n      border-radius: 50%;\n      content: \"\";\n      flex: 0 0 auto;\n      height: 6px;\n      transform: translateY(-2px);\n      width: 6px;\n    }\n\n    #kwp-warming-tray.kwp-anim-ready [data-kwp-reveal] {\n      opacity: 0;\n      transform: translateY(20px);\n      transition: opacity .75s cubic-bezier(.22, 1, .36, 1), transform .75s cubic-bezier(.22, 1, .36, 1);\n    }\n\n    #kwp-warming-tray.kwp-anim-ready [data-kwp-reveal].is-in { opacity: 1; transform: none; }\n\n    \/* ================= DRAG RAIL ================= *\/\n    #kwp-warming-tray .kwp-rail {\n      -ms-overflow-style: none;\n      cursor: grab;\n      display: flex;\n      gap: var(--kwp-gap);\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      scroll-snap-type: x mandatory;\n      scrollbar-width: none;\n      overscroll-behavior-x: contain;\n      padding-bottom: 2px;\n    }\n\n    #kwp-warming-tray .kwp-rail::-webkit-scrollbar { display: none; }\n    #kwp-warming-tray .kwp-rail \u003e * { flex: 0 0 auto; scroll-snap-align: start; }\n\n    #kwp-warming-tray .kwp-rail.is-drag {\n      cursor: grabbing;\n      scroll-behavior: auto;\n      scroll-snap-type: none;\n    }\n\n    #kwp-warming-tray .kwp-rail.is-drag * { pointer-events: none; }\n\n    #kwp-warming-tray .kwp-railbar {\n      align-items: center;\n      display: flex;\n      gap: 14px;\n      margin-top: 14px;\n    }\n\n    #kwp-warming-tray .kwp-railbar[hidden] { display: none; }\n\n    #kwp-warming-tray .kwp-railbar__track {\n      background: var(--kwp-line-soft);\n      border-radius: 999px;\n      flex: 1;\n      height: 3px;\n      overflow: hidden;\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-railbar__thumb {\n      background: var(--kwp-ember);\n      border-radius: 999px;\n      height: 100%;\n      left: 0;\n      position: absolute;\n      top: 0;\n      transition: transform .18s ease-out;\n      width: 30%;\n    }\n\n    #kwp-warming-tray .kwp-railbar__hint {\n      color: var(--kwp-muted);\n      font-size: calc(.74 * var(--kwp-u));\n      font-weight: 700;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      white-space: nowrap;\n    }\n\n    #kwp-warming-tray .kwp-railbtn {\n      align-items: center;\n      border: 1px solid var(--kwp-line);\n      border-radius: 50%;\n      display: flex;\n      flex: 0 0 auto;\n      height: 46px;\n      justify-content: center;\n      transition: background .2s ease, border-color .2s ease, opacity .2s ease;\n      width: 46px;\n    }\n\n    #kwp-warming-tray .kwp-railbtn:hover { background: var(--kwp-ink); border-color: var(--kwp-ink); color: var(--kwp-paper); }\n    #kwp-warming-tray .kwp-railbtn[disabled] { cursor: default; opacity: .28; }\n    #kwp-warming-tray .kwp-railbtn[disabled]:hover { background: none; border-color: var(--kwp-line); color: inherit; }\n\n    \/* ================= 1. HERO ================= *\/\n    #kwp-warming-tray .kwp-hero {\n      padding: clamp(18px, 2.4vh, 44px) 0 clamp(18px, 2vw, 28px);\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-hero::before {\n      background: var(--kwp-forest);\n      content: \"\";\n      height: 44%;\n      position: absolute;\n      right: 0;\n      top: 0;\n      width: 28%;\n      z-index: -1;\n    }\n\n    #kwp-warming-tray .kwp-hero__stage {\n      align-items: center;\n      display: grid;\n      gap: clamp(20px, 3vw, 52px) clamp(24px, 3.4vw, 56px);\n      grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);\n    }\n\n    #kwp-warming-tray .kwp-hero__copy { display: contents; }\n    #kwp-warming-tray .kwp-hero__head { align-self: end; display: grid; gap: 16px; grid-column: 1; grid-row: 1; }\n    #kwp-warming-tray .kwp-hero__tail { align-self: start; display: grid; gap: 20px; grid-column: 1; grid-row: 2; }\n    #kwp-warming-tray .kwp-hero__visual { grid-column: 2; grid-row: 1 \/ 3; }\n\n    #kwp-warming-tray .kwp-hero__head h1 span { color: var(--kwp-ember); display: block; }\n\n    #kwp-warming-tray .kwp-hero__visual {\n      border-radius: var(--kwp-radius);\n      box-shadow: 0 26px 62px rgba(27, 26, 23, .2);\n      height: clamp(390px, 52vh, 520px);\n      overflow: hidden;\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-hero__visual img {\n      height: 100%;\n      object-fit: cover;\n      object-position: 56% center;\n      width: 100%;\n    }\n\n    #kwp-warming-tray .kwp-power {\n      align-items: center;\n      background: var(--kwp-paper);\n      border-radius: 999px;\n      bottom: 16px;\n      box-shadow: 0 14px 32px rgba(27, 26, 23, .18);\n      display: flex;\n      gap: 12px;\n      padding: 9px 18px 9px 9px;\n      position: absolute;\n      right: 16px;\n    }\n\n    #kwp-warming-tray .kwp-power__dot {\n      background: var(--kwp-ember);\n      border: 5px solid #f5cbbd;\n      border-radius: 50%;\n      flex: 0 0 auto;\n      height: 36px;\n      position: relative;\n      width: 36px;\n    }\n\n    #kwp-warming-tray .kwp-power__dot::after {\n      animation: kwp-pulse 2.8s ease-out infinite;\n      border: 1px solid rgba(201, 80, 45, .55);\n      border-radius: 50%;\n      content: \"\";\n      inset: -11px;\n      position: absolute;\n    }\n\n    #kwp-warming-tray .kwp-power strong {\n      display: block;\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: calc(1.22 * var(--kwp-u));\n      line-height: 1.05;\n    }\n\n    #kwp-warming-tray .kwp-power small { color: var(--kwp-muted); font-size: calc(.72 * var(--kwp-u)); }\n\n    @keyframes kwp-pulse {\n      0% { opacity: .8; transform: scale(.82); }\n      70%, 100% { opacity: 0; transform: scale(1.45); }\n    }\n\n    #kwp-warming-tray .kwp-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px 20px; }\n    #kwp-warming-tray .kwp-hero__note { color: var(--kwp-muted); font-size: calc(.82 * var(--kwp-u)); font-weight: 600; }\n\n    #kwp-warming-tray .kwp-hero__promise {\n      border-top: 1px solid var(--kwp-line);\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      margin-top: clamp(18px, 2vw, 30px);\n    }\n\n    #kwp-warming-tray .kwp-hero__promise span {\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: clamp(calc(1.05 * var(--kwp-u)), 1.7vw, calc(1.5 * var(--kwp-u)));\n      font-weight: 600;\n      letter-spacing: -.03em;\n      line-height: 1.15;\n      padding: 18px 16px 0 0;\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-hero__promise span::before {\n      background: var(--kwp-ember);\n      content: \"\";\n      height: 3px;\n      left: 0;\n      position: absolute;\n      top: -2px;\n      width: 34px;\n    }\n\n    \/* ================= 2. GALLERY MOSAIC ================= *\/\n    #kwp-warming-tray .kwp-gallery {\n      display: grid;\n      gap: var(--kwp-gap);\n      grid-template-columns: 1.62fr 1fr 1fr;\n      grid-template-rows: 300px 400px;\n      cursor: auto;\n    }\n\n    #kwp-warming-tray .kwp-gallery figure {\n      display: grid;\n      grid-template-rows: 1fr auto;\n      min-height: 0;\n    }\n\n    #kwp-warming-tray .kwp-gallery figure:nth-child(1) { grid-column: 1; grid-row: 1 \/ 3; }\n    #kwp-warming-tray .kwp-gallery figure:nth-child(2) { grid-column: 2 \/ 4; grid-row: 1; }\n    #kwp-warming-tray .kwp-gallery figure:nth-child(3) { grid-column: 2; grid-row: 2; }\n    #kwp-warming-tray .kwp-gallery figure:nth-child(4) { grid-column: 3; grid-row: 2; }\n\n    #kwp-warming-tray .kwp-gallery .kwp-frame img { object-position: center; }\n    #kwp-warming-tray .kwp-gallery figure:nth-child(2) .kwp-frame img { object-position: 52% 46%; }\n\n    \/* ================= 3. DEMO + SWITCH ================= *\/\n    #kwp-warming-tray .kwp-demo {\n      background: var(--kwp-forest);\n      color: #fff;\n      padding: clamp(46px, 5.2vw, 82px) 0;\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-demo .kwp-meta { color: var(--kwp-honey); }\n    #kwp-warming-tray .kwp-demo .kwp-lead { color: rgba(255, 255, 255, .72); }\n    #kwp-warming-tray .kwp-demo h2 { color: #fff; }\n\n    #kwp-warming-tray .kwp-demo__grid {\n      align-items: center;\n      display: grid;\n      gap: clamp(28px, 4vw, 64px);\n      grid-template-columns: minmax(0, 4.6fr) minmax(0, 7.4fr);\n    }\n\n    #kwp-warming-tray .kwp-demo__copy { display: grid; gap: 18px; }\n\n    #kwp-warming-tray .kwp-switch__stage {\n      border-radius: var(--kwp-radius);\n      box-shadow: 0 30px 60px rgba(0, 0, 0, .3);\n      overflow: hidden;\n      position: relative;\n      aspect-ratio: 1672 \/ 941;\n    }\n\n    #kwp-warming-tray .kwp-switch__inner { inset: 0; position: absolute; }\n    #kwp-warming-tray .kwp-switch__inner img { height: 100%; object-fit: cover; width: 100%; }\n\n    #kwp-warming-tray .kwp-glow {\n      border-radius: 50%;\n      mix-blend-mode: screen;\n      opacity: 0;\n      pointer-events: none;\n      position: absolute;\n      transition: opacity .55s ease;\n      background: rgba(255, 196, 92, .32);\n    }\n\n    #kwp-warming-tray .kwp-glow::after {\n      border: 2px solid rgba(255, 214, 138, .75);\n      border-radius: 50%;\n      content: \"\";\n      inset: 22%;\n      position: absolute;\n    }\n\n    #kwp-warming-tray .kwp-glow--a { height: 30%; left: 24.5%; top: 44%; width: 25%; }\n    #kwp-warming-tray .kwp-glow--b { height: 29%; left: 57.5%; top: 43%; width: 22%; }\n\n    #kwp-warming-tray .kwp-switch.is-on .kwp-glow { animation: kwp-breathe 3.4s ease-in-out infinite; opacity: 1; }\n    #kwp-warming-tray .kwp-switch.is-on .kwp-glow--b { animation-delay: .5s; }\n\n    @keyframes kwp-breathe {\n      0%, 100% { opacity: .72; }\n      50% { opacity: 1; }\n    }\n\n    #kwp-warming-tray .kwp-switch__pin {\n      border: 2px solid var(--kwp-honey);\n      border-radius: 999px;\n      height: 8%;\n      left: 76%;\n      opacity: .85;\n      position: absolute;\n      top: 70%;\n      width: 8%;\n      transition: box-shadow .4s ease;\n      pointer-events: none;\n    }\n\n    #kwp-warming-tray .kwp-switch.is-on .kwp-switch__pin { box-shadow: 0 0 0 6px rgba(239, 180, 76, .22); }\n\n    #kwp-warming-tray .kwp-switch__bar {\n      align-items: center;\n      display: flex;\n      flex-wrap: wrap;\n      gap: 14px 20px;\n      margin-top: 16px;\n    }\n\n    #kwp-warming-tray .kwp-rocker {\n      align-items: center;\n      background: #1a1a1a;\n      border: 1px solid rgba(255, 255, 255, .18);\n      border-radius: 12px;\n      display: flex;\n      flex: 0 0 auto;\n      height: 56px;\n      padding: 6px;\n      width: 96px;\n    }\n\n    #kwp-warming-tray .kwp-rocker__cap {\n      align-items: center;\n      background: linear-gradient(180deg, #4a4a4a, #2a2a2a);\n      border-radius: 8px;\n      color: rgba(255, 255, 255, .8);\n      display: flex;\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: calc(1 * var(--kwp-u));\n      font-weight: 700;\n      height: 100%;\n      justify-content: center;\n      transition: transform .28s cubic-bezier(.22, 1, .36, 1), background .28s ease, color .28s ease;\n      width: 50%;\n    }\n\n    #kwp-warming-tray .kwp-rocker[aria-checked=\"true\"] .kwp-rocker__cap {\n      background: linear-gradient(180deg, #e4623c, #b8401f);\n      box-shadow: 0 8px 18px rgba(0, 0, 0, .24);\n      color: #fff;\n      transform: translateX(100%);\n    }\n\n    #kwp-warming-tray .kwp-switch__status {\n      display: grid;\n      gap: 4px;\n    }\n\n    #kwp-warming-tray .kwp-switch__state {\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: clamp(calc(1.05 * var(--kwp-u)), 1.5vw, calc(1.32 * var(--kwp-u)));\n      font-weight: 600;\n      letter-spacing: -.03em;\n    }\n\n    #kwp-warming-tray .kwp-switch__hint { color: rgba(255, 255, 255, .55); font-size: calc(.78 * var(--kwp-u)); }\n\n    #kwp-warming-tray .kwp-demo__side { display: grid; gap: 14px; }\n\n    #kwp-warming-tray .kwp-demo__side .kwp-frame {\n      aspect-ratio: 4 \/ 5;\n      background: rgba(255, 255, 255, .08);\n    }\n\n    \/* ================= 4. CONSTRUCTION ================= *\/\n    #kwp-warming-tray .kwp-tech { background: var(--kwp-paper); }\n\n    #kwp-warming-tray .kwp-tech__grid {\n      align-items: center;\n      display: grid;\n      gap: clamp(30px, 4vw, 66px);\n      grid-template-columns: minmax(0, 6.4fr) minmax(0, 5.6fr);\n    }\n\n    #kwp-warming-tray .kwp-tech__media {\n      aspect-ratio: 16 \/ 10;\n      background: #f4f1e8;\n      border-radius: var(--kwp-radius);\n      box-shadow: 0 24px 54px rgba(27, 26, 23, .13);\n      display: grid;\n      grid-template-rows: 1fr auto;\n      overflow: hidden;\n    }\n\n    #kwp-warming-tray .kwp-tech__crop { min-height: 0; overflow: hidden; }\n\n    #kwp-warming-tray .kwp-tech__crop img {\n      height: 100%;\n      object-fit: cover;\n      object-position: 70% center;\n      width: 100%;\n    }\n\n    #kwp-warming-tray .kwp-tech__media figcaption {\n      background: var(--kwp-paper);\n      color: var(--kwp-muted);\n      font-size: calc(.78 * var(--kwp-u));\n      padding: 11px 14px 13px;\n    }\n\n    #kwp-warming-tray .kwp-tech__head { display: grid; gap: 14px; }\n\n    #kwp-warming-tray .kwp-tech__note {\n      color: var(--kwp-muted);\n      font-size: calc(.8 * var(--kwp-u));\n      margin-top: 16px;\n      max-width: 46ch;\n    }\n\n    \/* ================= 5. OCCASIONS ================= *\/\n    #kwp-warming-tray .kwp-occasion \u003e figure { flex: 0 0 min(36%, 392px); }\n    #kwp-warming-tray .kwp-occasion .kwp-frame { aspect-ratio: 4 \/ 5; }\n    #kwp-warming-tray .kwp-occasion figure:nth-child(even) { padding-top: clamp(20px, 3vw, 46px); }\n\n    \/* ================= 6. COMPARE ================= *\/\n    #kwp-warming-tray .kwp-compare {\n      background: var(--kwp-forest-2);\n      color: #fff;\n      padding: clamp(46px, 5.2vw, 82px) 0;\n    }\n\n    #kwp-warming-tray .kwp-compare h2 { color: #fff; max-width: 14ch; }\n\n    #kwp-warming-tray .kwp-compare__switch {\n      background: rgba(255, 255, 255, .08);\n      border-radius: 999px;\n      display: none;\n      gap: 4px;\n      margin-top: 26px;\n      padding: 4px;\n    }\n\n    #kwp-warming-tray .kwp-compare__switch button {\n      border-radius: 999px;\n      flex: 1;\n      font-size: calc(.82 * var(--kwp-u));\n      font-weight: 700;\n      min-height: 44px;\n      padding: 0 10px;\n      text-align: center;\n      transition: background .2s ease, color .2s ease;\n    }\n\n    #kwp-warming-tray .kwp-compare__switch button[aria-pressed=\"true\"] { background: var(--kwp-paper); color: var(--kwp-ink); }\n\n    #kwp-warming-tray .kwp-compare__table {\n      border: 1px solid rgba(255, 255, 255, .16);\n      border-radius: 18px;\n      margin-top: 22px;\n      overflow: hidden;\n    }\n\n    #kwp-warming-tray .kwp-compare__row { display: grid; grid-template-columns: 1.05fr 1.15fr 1fr 1fr; }\n\n    #kwp-warming-tray .kwp-compare__row \u003e div {\n      border-bottom: 1px solid rgba(255, 255, 255, .12);\n      border-right: 1px solid rgba(255, 255, 255, .12);\n      min-width: 0;\n      padding: 18px 16px;\n      transition: background .25s ease;\n    }\n\n    #kwp-warming-tray .kwp-compare__row:last-child \u003e div { border-bottom: 0; }\n    #kwp-warming-tray .kwp-compare__row \u003e div:last-child { border-right: 0; }\n    #kwp-warming-tray .kwp-compare__row .c-tray { background: rgba(239, 180, 76, .12); }\n    #kwp-warming-tray .kwp-compare__row:hover .c-tray { background: rgba(239, 180, 76, .2); }\n\n    #kwp-warming-tray .kwp-compare__head {\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: calc(1 * var(--kwp-u));\n      font-weight: 700;\n    }\n\n    #kwp-warming-tray .kwp-compare__head .c-tray { color: var(--kwp-honey); }\n\n    #kwp-warming-tray .kwp-compare__label {\n      color: rgba(255, 255, 255, .62);\n      font-size: calc(.76 * var(--kwp-u));\n      font-weight: 700;\n      letter-spacing: .06em;\n      text-transform: uppercase;\n    }\n\n    #kwp-warming-tray .kwp-compare__value { align-items: flex-start; display: flex; font-size: calc(.88 * var(--kwp-u)); gap: 9px; }\n\n    #kwp-warming-tray .kwp-compare__value::before {\n      color: var(--kwp-honey);\n      content: \"\\2022\";\n      flex: 0 0 auto;\n      font-size: calc(1.2 * var(--kwp-u));\n      line-height: 1;\n    }\n\n    #kwp-warming-tray .kwp-compare__other::before { color: rgba(255, 255, 255, .32); }\n    #kwp-warming-tray .kwp-compare__other { color: rgba(255, 255, 255, .74); }\n\n    #kwp-warming-tray .kwp-compare__cta {\n      display: flex;\n      flex-wrap: wrap;\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: clamp(calc(1.3 * var(--kwp-u)), 3vw, calc(2.35 * var(--kwp-u)));\n      font-weight: 600;\n      gap: 8px 22px;\n      justify-content: center;\n      letter-spacing: -.035em;\n      margin-top: 30px;\n      text-align: center;\n    }\n\n    #kwp-warming-tray .kwp-compare__cta span:not(:last-child)::after {\n      color: var(--kwp-ember);\n      content: \" \/\";\n      margin-left: 18px;\n    }\n\n    \/* ================= 7. PROOF ================= *\/\n    #kwp-warming-tray .kwp-proof { background: #e9e1d4; }\n\n    #kwp-warming-tray .kwp-proof__strip {\n      display: grid;\n      gap: var(--kwp-gap);\n      grid-template-columns: repeat(3, 1fr);\n      cursor: auto;\n    }\n\n    #kwp-warming-tray .kwp-proof__item:nth-child(2) { padding-top: clamp(24px, 3vw, 54px); }\n\n    #kwp-warming-tray .kwp-proof__video {\n      aspect-ratio: 9 \/ 14;\n      background: #111;\n      border-radius: 18px;\n      object-fit: cover;\n      width: 100%;\n    }\n\n    #kwp-warming-tray .kwp-proof__caption {\n      display: flex;\n      font-size: calc(.8 * var(--kwp-u));\n      font-weight: 700;\n      justify-content: space-between;\n      padding-top: 11px;\n    }\n\n    #kwp-warming-tray .kwp-proof__caption span:last-child { color: var(--kwp-muted); }\n\n    \/* ================= 8. HOW TO + SPECS ================= *\/\n    #kwp-warming-tray .kwp-how__head { margin-bottom: clamp(24px, 3vw, 42px); }\n\n    #kwp-warming-tray .kwp-how__media {\n      display: grid;\n      gap: var(--kwp-gap);\n      grid-template-columns: 1.05fr 1fr 1fr;\n    }\n\n    #kwp-warming-tray .kwp-how__media figure {\n      aspect-ratio: 4 \/ 5;\n      background: var(--kwp-sand);\n      border-radius: var(--kwp-radius);\n      overflow: hidden;\n    }\n\n    #kwp-warming-tray .kwp-how__media img { height: 100%; object-fit: cover; width: 100%; }\n\n    #kwp-warming-tray .kwp-steps {\n      display: grid;\n      gap: var(--kwp-gap);\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n      margin-top: var(--kwp-gap);\n    }\n\n    #kwp-warming-tray .kwp-step {\n      border-top: 1px solid var(--kwp-ink);\n      display: grid;\n      gap: 14px;\n      grid-template-columns: 32px 1fr;\n      padding: 16px 4px 0 0;\n    }\n\n    #kwp-warming-tray .kwp-step i {\n      color: var(--kwp-ember);\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-style: normal;\n      font-weight: 700;\n    }\n\n    #kwp-warming-tray .kwp-step p { color: var(--kwp-ink); font-size: calc(.94 * var(--kwp-u)); }\n\n    #kwp-warming-tray .kwp-specs-wrap {\n      display: grid;\n      gap: clamp(20px, 3vw, 42px);\n      grid-template-columns: minmax(0, 3.4fr) minmax(0, 8.6fr);\n      margin-top: clamp(40px, 5vw, 74px);\n    }\n\n    #kwp-warming-tray .kwp-specs-wrap h3 {\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: clamp(calc(1.55 * var(--kwp-u)), 2.5vw, calc(2.35 * var(--kwp-u)));\n      letter-spacing: -.035em;\n      line-height: 1;\n      max-width: 8ch;\n    }\n\n    #kwp-warming-tray .kwp-specs { border-top: 1px solid var(--kwp-ink); }\n\n    #kwp-warming-tray .kwp-spec {\n      border-bottom: 1px solid var(--kwp-line-soft);\n      display: grid;\n      gap: 20px;\n      grid-template-columns: minmax(130px, 1fr) minmax(0, 1.6fr);\n      padding: 14px 0;\n    }\n\n    #kwp-warming-tray .kwp-spec \u003e span {\n      color: var(--kwp-muted);\n      font-size: calc(.78 * var(--kwp-u));\n      font-weight: 700;\n      letter-spacing: .06em;\n      text-transform: uppercase;\n    }\n\n    #kwp-warming-tray .kwp-spec \u003e strong { font-weight: 700; }\n\n    \/* ================= 9. FAQ ================= *\/\n    #kwp-warming-tray .kwp-faq { background: var(--kwp-paper); }\n\n    #kwp-warming-tray .kwp-faq__grid {\n      display: grid;\n      gap: clamp(28px, 6vw, 96px);\n      grid-template-columns: minmax(0, 4.6fr) minmax(0, 7.4fr);\n    }\n\n    #kwp-warming-tray .kwp-faq__grid \u003e div:first-child { align-content: start; display: grid; gap: 12px; }\n\n    #kwp-warming-tray .kwp-faq details { border-top: 1px solid var(--kwp-line-soft); }\n    #kwp-warming-tray .kwp-faq details:last-child { border-bottom: 1px solid var(--kwp-line-soft); }\n\n    #kwp-warming-tray .kwp-faq summary {\n      cursor: pointer;\n      font-family: \"Bricolage Grotesque\", Manrope, sans-serif;\n      font-size: clamp(calc(1.05 * var(--kwp-u)), 1.4vw, calc(1.22 * var(--kwp-u)));\n      font-weight: 600;\n      letter-spacing: -.02em;\n      list-style: none;\n      padding: 18px 46px 18px 0;\n      position: relative;\n      transition: color .2s ease;\n    }\n\n    #kwp-warming-tray .kwp-faq summary:hover { color: var(--kwp-ember); }\n    #kwp-warming-tray .kwp-faq summary::-webkit-details-marker { display: none; }\n\n    #kwp-warming-tray .kwp-faq summary::after {\n      content: \"\";\n      position: absolute;\n      right: 10px;\n      top: 50%;\n      width: 14px;\n      height: 2px;\n      background: currentColor;\n      transform: translateY(-50%);\n    }\n\n    #kwp-warming-tray .kwp-faq summary::before {\n      content: \"\";\n      position: absolute;\n      right: 16px;\n      top: 50%;\n      width: 2px;\n      height: 14px;\n      background: currentColor;\n      transform: translateY(-50%);\n      transition: transform .3s ease, opacity .3s ease;\n    }\n\n    #kwp-warming-tray .kwp-faq details[open] summary::before { opacity: 0; transform: translateY(-50%) rotate(90deg); }\n    #kwp-warming-tray .kwp-faq details p { color: var(--kwp-muted); font-size: calc(.95 * var(--kwp-u)); max-width: 60ch; padding: 0 30px 20px 0; }\n\n    \/* ================= 10. FINAL ================= *\/\n    #kwp-warming-tray .kwp-final {\n      background: var(--kwp-forest);\n      color: #fff;\n      overflow: hidden;\n      position: relative;\n    }\n\n    #kwp-warming-tray .kwp-final::before {\n      background: radial-gradient(circle at 78% 18%, rgba(239, 180, 76, .22) 0%, rgba(239, 180, 76, 0) 58%);\n      content: \"\";\n      inset: 0;\n      position: absolute;\n    }\n\n    #kwp-warming-tray .kwp-final__grid {\n      align-items: center;\n      display: grid;\n      gap: clamp(30px, 4vw, 66px);\n      grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);\n      padding: clamp(50px, 5.8vw, 88px) 0;\n      position: relative;\n      z-index: 1;\n    }\n\n    #kwp-warming-tray .kwp-final__content { display: grid; gap: 18px; }\n\n    #kwp-warming-tray .kwp-final__media {\n      aspect-ratio: 4 \/ 5;\n      border-radius: var(--kwp-radius);\n      box-shadow: 0 30px 60px rgba(0, 0, 0, .38);\n      overflow: hidden;\n    }\n\n    #kwp-warming-tray .kwp-final__media img { height: 100%; object-fit: cover; width: 100%; }\n\n    #kwp-warming-tray .kwp-final__content h2 { color: #fff; max-width: 11ch; }\n    #kwp-warming-tray .kwp-final__content p { color: rgba(255, 255, 255, .76); max-width: 40ch; }\n    #kwp-warming-tray .kwp-final .kwp-meta { color: var(--kwp-honey); }\n    #kwp-warming-tray .kwp-offer-status { color: rgba(255, 255, 255, .82); font-size: calc(.76 * var(--kwp-u)); min-height: 1.2em; }\n\n    \/* ================= STICKY CTA (mobile) ================= *\/\n    #kwp-warming-tray .kwp-sticky {\n      background: rgba(245, 240, 231, .94);\n      backdrop-filter: blur(10px);\n      border-top: 1px solid var(--kwp-line);\n      bottom: 0;\n      display: none;\n      left: 0;\n      padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));\n      position: fixed;\n      right: 0;\n      transform: translateY(120%);\n      transition: transform .35s cubic-bezier(.22, 1, .36, 1);\n      z-index: 40;\n    }\n\n    #kwp-warming-tray .kwp-sticky.is-show { transform: none; }\n\n    #kwp-warming-tray .kwp-sticky__row {\n      align-items: center;\n      display: flex;\n      gap: 14px;\n      justify-content: space-between;\n    }\n\n    #kwp-warming-tray .kwp-sticky__label { display: grid; line-height: 1.2; }\n    #kwp-warming-tray .kwp-sticky__label strong { font-family: \"Bricolage Grotesque\", Manrope, sans-serif; font-size: calc(1 * var(--kwp-u)); letter-spacing: -.02em; }\n    #kwp-warming-tray .kwp-sticky__label small { color: var(--kwp-muted); font-size: calc(.74 * var(--kwp-u)); }\n    #kwp-warming-tray .kwp-sticky .kwp-btn { flex: 0 0 auto; min-height: 48px; padding: 0 20px; }\n\n    \/* ================= TABLET \u003c= 900 ================= *\/\n    @media (max-width: 900px) {\n      #kwp-warming-tray .kwp-hero::before { display: none; }\n      #kwp-warming-tray .kwp-hero__stage { grid-template-columns: 1fr; gap: 18px; }\n      #kwp-warming-tray .kwp-hero__head { grid-column: 1; grid-row: auto; order: 1; }\n      #kwp-warming-tray .kwp-hero__visual { grid-column: 1; grid-row: auto; order: 2; height: auto; aspect-ratio: 16 \/ 10; }\n      #kwp-warming-tray .kwp-hero__tail { grid-column: 1; grid-row: auto; order: 3; gap: 16px; }\n      #kwp-warming-tray .kwp-hero__promise { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n      #kwp-warming-tray .kwp-hero__promise span { padding: 14px 8px 0 0; }\n      #kwp-warming-tray .kwp-hero__promise span::before { display: none; }\n\n      #kwp-warming-tray .kwp-gallery {\n        display: flex;\n        grid-template-columns: none;\n        grid-template-rows: none;\n        cursor: grab;\n        margin-right: calc(-1 * clamp(14px, 2.5vw, 28px));\n      }\n      #kwp-warming-tray .kwp-gallery figure { display: grid; flex: 0 0 58%; grid-column: auto !important; grid-row: auto !important; }\n      #kwp-warming-tray .kwp-gallery figure .kwp-frame { aspect-ratio: 4 \/ 5; }\n      #kwp-warming-tray .kwp-gallery figure:nth-child(2) { flex: 0 0 92%; }\n      #kwp-warming-tray .kwp-gallery figure:nth-child(2) .kwp-frame { aspect-ratio: 16 \/ 11; }\n      #kwp-warming-tray .kwp-gallery figure:nth-child(2) .kwp-frame img { object-position: 52% center; }\n\n      #kwp-warming-tray .kwp-demo__grid,\n      #kwp-warming-tray .kwp-tech__grid,\n      #kwp-warming-tray .kwp-faq__grid { grid-template-columns: 1fr; }\n\n      #kwp-warming-tray .kwp-demo__side { grid-template-columns: 1fr; }\n      #kwp-warming-tray .kwp-demo__side .kwp-frame { aspect-ratio: 4 \/ 5; width: min(100%, 380px); }\n      #kwp-warming-tray .kwp-tech__grid { gap: 22px; }\n      #kwp-warming-tray .kwp-tech__copy { display: contents; }\n      #kwp-warming-tray .kwp-tech__head { order: 1; }\n      #kwp-warming-tray .kwp-tech__media { order: 2; }\n      #kwp-warming-tray .kwp-tech__note { margin: 0; order: 3; }\n\n      #kwp-warming-tray .kwp-occasion { margin-right: calc(-1 * clamp(14px, 2.5vw, 28px)); }\n      #kwp-warming-tray .kwp-occasion \u003e figure { flex: 0 0 58%; }\n      #kwp-warming-tray .kwp-occasion figure:nth-child(even) { padding-top: 0; }\n\n      #kwp-warming-tray .kwp-compare__switch { display: flex; }\n      #kwp-warming-tray .kwp-compare__row { grid-template-columns: .95fr 1fr 1fr; }\n      #kwp-warming-tray .kwp-compare[data-active=\"mat\"] .c-inox { display: none; }\n      #kwp-warming-tray .kwp-compare[data-active=\"inox\"] .c-mat { display: none; }\n      #kwp-warming-tray .kwp-compare__row \u003e div { padding: 15px 13px; }\n      #kwp-warming-tray .kwp-compare__value { font-size: calc(.84 * var(--kwp-u)); }\n\n      #kwp-warming-tray .kwp-proof__strip {\n        display: flex;\n        grid-template-columns: none;\n        cursor: grab;\n        margin-right: calc(-1 * clamp(14px, 2.5vw, 28px));\n      }\n      #kwp-warming-tray .kwp-proof__item { flex: 0 0 62%; padding-top: 0 !important; }\n\n      #kwp-warming-tray .kwp-specs-wrap { grid-template-columns: 1fr; }\n      #kwp-warming-tray .kwp-specs-wrap h3 { max-width: none; }\n      #kwp-warming-tray .kwp-final__grid { grid-template-columns: 1fr; gap: 30px; }\n      #kwp-warming-tray .kwp-final__media { order: -1; aspect-ratio: 4 \/ 5; width: min(100%, 460px); margin-inline: auto; }\n      #kwp-warming-tray .kwp-sticky { display: block; }\n    }\n\n    \/* ================= MOBILE \u003c= 620 ================= *\/\n    @media (max-width: 620px) {\n      #kwp-warming-tray h1 { font-size: clamp(calc(2.55 * var(--kwp-u)), 12.5vw, calc(3.6 * var(--kwp-u))); max-width: 14ch; }\n      #kwp-warming-tray h2 { font-size: clamp(calc(2 * var(--kwp-u)), 9.6vw, calc(2.9 * var(--kwp-u))); max-width: 15ch; }\n      #kwp-warming-tray .kwp-heading-row { align-items: start; flex-direction: column; }\n      #kwp-warming-tray .kwp-hero__visual { aspect-ratio: 6 \/ 7; }\n      #kwp-warming-tray .kwp-hero__visual img { object-position: center; }\n      #kwp-warming-tray .kwp-power { bottom: 12px; right: 12px; padding: 8px 15px 8px 8px; }\n      #kwp-warming-tray .kwp-power__dot { height: 30px; width: 30px; border-width: 4px; }\n      #kwp-warming-tray .kwp-hero__actions .kwp-btn { flex: 1 1 auto; }\n      \/* CTA lên ngay dưới ảnh, câu phụ xuống sau -\u003e CTA nằm trong màn hình đầu kể cả máy 360x780 *\/\n      #kwp-warming-tray .kwp-hero__tail .kwp-hero__actions { order: 1; }\n      #kwp-warming-tray .kwp-hero__tail .kwp-lead { order: 2; }\n\n      #kwp-warming-tray .kwp-gallery figure { flex: 0 0 78%; }\n      #kwp-warming-tray .kwp-gallery figure:nth-child(2) { flex: 0 0 128%; }\n      #kwp-warming-tray .kwp-gallery figure:nth-child(2) .kwp-frame { aspect-ratio: 16 \/ 11; }\n      #kwp-warming-tray .kwp-gallery figure:nth-child(2) .kwp-frame img { object-position: 52% center; }\n\n      #kwp-warming-tray .kwp-occasion \u003e figure { flex: 0 0 76%; }\n      #kwp-warming-tray .kwp-proof__item { flex: 0 0 74%; }\n\n      #kwp-warming-tray .kwp-switch__stage { aspect-ratio: 5 \/ 4; }\n      #kwp-warming-tray .kwp-switch__inner {\n        height: 100%;\n        inset: auto;\n        left: 50%;\n        position: absolute;\n        top: 0;\n        transform: translateX(-56%);\n        width: auto;\n        aspect-ratio: 1672 \/ 941;\n      }\n      #kwp-warming-tray .kwp-switch__inner img { height: 100%; width: 100%; }\n\n      #kwp-warming-tray .kwp-compare__cta { font-size: clamp(calc(1.35 * var(--kwp-u)), 7.5vw, calc(2 * var(--kwp-u))); gap: 4px 16px; }\n      #kwp-warming-tray .kwp-compare__cta span:not(:last-child)::after { margin-left: 12px; }\n\n      #kwp-warming-tray .kwp-how__media { grid-template-columns: 1fr 1fr; }\n      #kwp-warming-tray .kwp-how__media figure:first-child { aspect-ratio: 5 \/ 4; grid-column: 1 \/ -1; }\n      #kwp-warming-tray .kwp-steps { grid-template-columns: 1fr; }\n      #kwp-warming-tray .kwp-demo__side { display: none; }\n      #kwp-warming-tray .kwp-spec { gap: 12px; grid-template-columns: minmax(105px, .8fr) minmax(0, 1.2fr); }\n\n      #kwp-warming-tray .kwp-final__media { aspect-ratio: 4 \/ 5; width: 100%; }\n    }\n\n    \/* ================= MOBILE-FIRST: TYPO LỚN + FOCUS (\u003c= 620) ================= *\/\n    @media (max-width: 620px) {\n      #kwp-warming-tray { line-height: 1.5; }\n\n      #kwp-warming-tray .kwp-lead,\n      #kwp-warming-tray .kwp-heading-row .kwp-lead { font-size: calc(1.1 * var(--kwp-u)); max-width: none; }\n      #kwp-warming-tray .kwp-meta { font-size: calc(.82 * var(--kwp-u)); letter-spacing: .12em; }\n      #kwp-warming-tray figcaption { font-size: calc(.98 * var(--kwp-u)); padding-top: 10px; }\n      #kwp-warming-tray .kwp-hero__note { font-size: calc(.92 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-btn { font-size: calc(1.02 * var(--kwp-u)); min-height: 56px; }\n      #kwp-warming-tray .kwp-hero__promise span { font-size: calc(.92 * var(--kwp-u)); line-height: 1.15; padding: 13px 7px 0 0; }\n      #kwp-warming-tray .kwp-power strong { font-size: calc(1.15 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-power small { font-size: calc(.74 * var(--kwp-u)); }\n\n      #kwp-warming-tray .kwp-railbar__hint { font-size: calc(.8 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-railbtn { height: 44px; width: 44px; }\n\n      #kwp-warming-tray .kwp-switch__state { font-size: calc(1.14 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-switch__hint { font-size: calc(.88 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-rocker { height: 60px; width: 104px; }\n\n      #kwp-warming-tray .kwp-tech__note { font-size: calc(.9 * var(--kwp-u)); max-width: none; }\n\n      #kwp-warming-tray .kwp-proof__caption { font-size: calc(.95 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-spec \u003e span { font-size: calc(.82 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-spec \u003e strong { font-size: calc(1.05 * var(--kwp-u)); }\n\n      #kwp-warming-tray .kwp-faq summary { font-size: calc(1.14 * var(--kwp-u)); padding: 18px 44px 18px 0; }\n      #kwp-warming-tray .kwp-faq details p { font-size: calc(1 * var(--kwp-u)); max-width: none; padding: 0 6px 20px 0; }\n      #kwp-warming-tray .kwp-final__content p { font-size: calc(1.08 * var(--kwp-u)); max-width: none; }\n\n      #kwp-warming-tray .kwp-sticky__label strong { font-size: calc(1.02 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-sticky__label small { font-size: calc(.8 * var(--kwp-u)); }\n\n      \/* ảnh trong rail to hơn để đọc được chi tiết *\/\n      #kwp-warming-tray .kwp-gallery figure { flex: 0 0 82%; }\n      #kwp-warming-tray .kwp-occasion \u003e figure { flex: 0 0 82%; }\n      #kwp-warming-tray .kwp-proof__item { flex: 0 0 78%; }\n\n      \/* SO SÁNH: card theo tiêu chí, bỏ lưới 3 cột chật *\/\n      #kwp-warming-tray .kwp-compare__table { border: 0; border-radius: 0; display: grid; gap: 10px; overflow: visible; }\n      #kwp-warming-tray .kwp-compare__head { display: none; }\n      #kwp-warming-tray .kwp-compare__row {\n        background: rgba(255, 255, 255, .04);\n        border: 1px solid rgba(255, 255, 255, .14);\n        border-radius: 16px;\n        grid-template-columns: 1fr;\n        overflow: hidden;\n      }\n      #kwp-warming-tray .kwp-compare__row \u003e div { border: 0; padding: 13px 16px; }\n      #kwp-warming-tray .kwp-compare__label {\n        background: rgba(255, 255, 255, .07);\n        color: #fff;\n        font-size: calc(.84 * var(--kwp-u));\n        letter-spacing: .1em;\n        padding: 11px 16px;\n      }\n      #kwp-warming-tray .kwp-compare__value { display: block; font-size: calc(1.02 * var(--kwp-u)); }\n      #kwp-warming-tray .kwp-compare__value::before {\n        color: rgba(255, 255, 255, .5);\n        content: attr(data-name);\n        display: block;\n        font-size: calc(.72 * var(--kwp-u));\n        font-weight: 700;\n        letter-spacing: .1em;\n        line-height: 1.2;\n        margin-bottom: 5px;\n        text-transform: uppercase;\n      }\n      #kwp-warming-tray .kwp-compare__row .c-tray { background: rgba(239, 180, 76, .12); }\n      #kwp-warming-tray .kwp-compare__value.c-tray::before { color: var(--kwp-honey); }\n      #kwp-warming-tray .kwp-compare__switch button { font-size: calc(.92 * var(--kwp-u)); min-height: 48px; }\n\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      #kwp-warming-tray *,\n      #kwp-warming-tray *::before,\n      #kwp-warming-tray *::after {\n        animation-duration: .001ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: .001ms !important;\n      }\n      #kwp-warming-tray [data-kwp-reveal] { opacity: 1; transform: none; }\n      #kwp-warming-tray .kwp-rail { scroll-behavior: auto; }\n    }\n  \u003c\/style\u003e\n\u003cdiv id=\"kwp-warming-tray\" class=\"kwp\"\u003e\n\u003c!-- ============ 1. HERO ============ --\u003e\n\u003csection class=\"kwp-hero\" id=\"kwp-landing-top\"\u003e\n\u003cdiv class=\"kwp-shell\"\u003e\n\u003cdiv class=\"kwp-hero__stage\"\u003e\n\u003cdiv class=\"kwp-hero__copy\"\u003e\n\u003cdiv class=\"kwp-hero__head\"\u003e\n\u003cp class=\"kwp-meta\"\u003eBandeja calentadora · 2 zonas · 220W\u003c\/p\u003e\n\u003ch1 id=\"kwp-hero-title\"\u003eSirve cada plato. \u003cspan\u003eConserva el calor.\u003c\/span\u003e\n\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-hero__tail\"\u003e\n\u003cdiv class=\"kwp-hero__actions\"\u003e\n\u003ca class=\"kwp-btn\" href=\"#product-offer\"\u003eVer la oferta \u003cspan class=\"kwp-btn__arrow\"\u003e↗\u003c\/span\u003e\u003c\/a\u003e \u003cspan class=\"kwp-hero__note\"\u003eComidas en familia · cenas · encuentros\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"kwp-hero__visual\"\u003e\u003cpicture\u003e \u003csource media=\"(max-width: 620px)\" srcset=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-hero-mobile-and-gallery.png?v=1787646208\"\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-hero-main.png?v=1787646208\" alt=\"Bandeja calentadora blanca con un plato de carne y un bol de sopa sobre una mesa luminosa\" width=\"1672\" height=\"941\" loading=\"eager\"\u003e\u003c\/picture\u003e\n\u003cdiv class=\"kwp-power\"\u003e\n\u003cspan class=\"kwp-power__dot\"\u003e\u003c\/span\u003e \u003cspan\u003e\u003cstrong\u003e220W\u003c\/strong\u003e\u003csmall\u003ePotencia\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-hero__promise\"\u003e\n\u003cspan\u003eCalor por más tiempo\u003c\/span\u003e \u003cspan\u003ePráctica\u003c\/span\u003e \u003cspan\u003eDuradera\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 2. GALLERY ============ --\u003e\n\u003csection class=\"kwp-section\"\u003e\n\u003cdiv class=\"kwp-shell\"\u003e\n\u003cdiv class=\"kwp-heading-row\"\u003e\n\u003ch2 id=\"kwp-gallery-title\"\u003eUna bandeja. Muchas formas de servir.\u003c\/h2\u003e\n\u003cp class=\"kwp-lead\"\u003eAsados, sopas, pasta o verduras: dos zonas y un centro de servicio claro en la mesa.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-rail kwp-gallery\"\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-hero-mobile-and-gallery.png?v=1787646208\" alt=\"Bandeja calentadora con un gratinado y un plato de costillas sobre una mesa de madera\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003ePrincipal y guarnición al mismo ritmo\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-gallery-asian-dishes.png?v=1787646209\" alt=\"Bandeja calentadora con dos platos de estilo asiático en una cocina luminosa\" width=\"1672\" height=\"941\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eVersátil para distintos tipos de comida\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-gallery-meat-and-soup.png?v=1787646208\" alt=\"Bandeja calentadora con un plato de carne y un bol de sopa\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eDos zonas bien definidas\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-occasion-serving.jpg?v=1787646207\" alt=\"Una familia sirve pescado y una cazuela sobre la bandeja calentadora\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eLista cuando todos se sientan\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-railbar\"\u003e\n\u003cspan class=\"kwp-railbar__hint\"\u003eDesliza\u003c\/span\u003e \u003cspan class=\"kwp-railbar__track\"\u003e\u003cspan class=\"kwp-railbar__thumb\"\u003e\u003c\/span\u003e\u003c\/span\u003e \u003cbutton class=\"kwp-railbtn\" type=\"button\"\u003e←\u003c\/button\u003e \u003cbutton class=\"kwp-railbtn\" type=\"button\"\u003e→\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 3. DEMO + INTERACTIVE SWITCH ============ --\u003e\n\u003csection class=\"kwp-demo\"\u003e\n\u003cdiv class=\"kwp-shell kwp-demo__grid\"\u003e\n\u003cdiv class=\"kwp-demo__copy\"\u003e\n\u003cp class=\"kwp-meta\"\u003eColoca · Enciende · Sirve\u003c\/p\u003e\n\u003ch2 id=\"kwp-demo-title\"\u003eTan sencillo como un gesto antes de servir.\u003c\/h2\u003e\n\u003cdiv class=\"kwp-demo__side\"\u003e\n\u003cfigure class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-howto-switch-closeup.png?v=1787646208\" alt=\"Un dedo acciona el interruptor rojo de la bandeja calentadora\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-switch\"\u003e\n\u003cdiv class=\"kwp-switch__stage\"\u003e\n\u003cdiv class=\"kwp-switch__inner\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-gallery-asian-dishes.png?v=1787646209\" alt=\"Bandeja calentadora con dos platos servidos sobre la mesa\" width=\"1672\" height=\"941\" loading=\"lazy\"\u003e \u003cspan class=\"kwp-glow kwp-glow--a\"\u003e\u003c\/span\u003e \u003cspan class=\"kwp-glow kwp-glow--b\"\u003e\u003c\/span\u003e \u003cspan class=\"kwp-switch__pin\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-switch__bar\"\u003e\n\u003cbutton class=\"kwp-rocker\" type=\"button\" role=\"switch\"\u003e \u003cspan class=\"kwp-rocker__cap\"\u003eO\u003c\/span\u003e \u003c\/button\u003e\n\u003cp class=\"kwp-switch__status\"\u003e\u003cspan class=\"kwp-switch__state\"\u003eInterruptor en O · bandeja en reposo\u003c\/span\u003e \u003cspan class=\"kwp-switch__hint\"\u003eSimulación visual del encendido. Toca el interruptor.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 4. CONSTRUCTION ============ --\u003e\n\u003csection class=\"kwp-section kwp-tech\"\u003e\n\u003cdiv class=\"kwp-shell kwp-tech__grid\"\u003e\n\u003cfigure class=\"kwp-tech__media\"\u003e\n\u003cdiv class=\"kwp-tech__crop\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-construction-es.png?v=1787646208\" alt=\"Vista de referencia del interior de una bandeja calentadora con el elemento térmico bajo la superficie\" width=\"1594\" height=\"987\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eVista de referencia del sistema térmico interno\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cdiv class=\"kwp-tech__copy\"\u003e\n\u003cdiv class=\"kwp-tech__head\"\u003e\n\u003ch2 id=\"kwp-tech-title\"\u003eEl calor llega a una superficie estable.\u003c\/h2\u003e\n\u003cp class=\"kwp-lead\"\u003eEl elemento térmico se distribuye bajo la superficie rígida para calentar las dos zonas y mantener cada recipiente bien apoyado.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 5. OCCASIONS ============ --\u003e\n\u003csection class=\"kwp-section\"\u003e\n\u003cdiv class=\"kwp-shell\"\u003e\n\u003cdiv class=\"kwp-heading-row\"\u003e\n\u003ch2 id=\"kwp-occasion-title\"\u003ePara esas ocasiones que merecen alargarse.\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-rail kwp-occasion\"\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-occasion-family-dinner.png?v=1787646208\" alt=\"Familia con una niña cenando junto a la bandeja calentadora\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eCenas en familia\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-occasion-demo.gif?v=1787646209\" alt=\"Demostración animada de platos servidos sobre una bandeja calentadora\" width=\"240\" height=\"320\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eEl servicio, en movimiento\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-occasion-multi-dishes.jpg?v=1787646207\" alt=\"Varios platos dispuestos sobre bandejas calentadoras durante una comida compartida\" width=\"1005\" height=\"847\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eComidas con varios platos\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\n\u003cdiv class=\"kwp-frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-occasion-serving.jpg?v=1787646207\" alt=\"Una persona sirve una mesa con varias bandejas calentadoras y platos preparados\" width=\"1005\" height=\"845\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cfigcaption\u003eCuando la mesa se llena\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-railbar\"\u003e\n\u003cspan class=\"kwp-railbar__hint\"\u003eArrastra\u003c\/span\u003e \u003cspan class=\"kwp-railbar__track\"\u003e\u003cspan class=\"kwp-railbar__thumb\"\u003e\u003c\/span\u003e\u003c\/span\u003e \u003cbutton class=\"kwp-railbtn\" type=\"button\"\u003e←\u003c\/button\u003e \u003cbutton class=\"kwp-railbtn\" type=\"button\"\u003e→\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 6. COMPARE ============ --\u003e\n\u003csection class=\"kwp-compare\"\u003e\n\u003cdiv class=\"kwp-shell\"\u003e\n\u003ch2 id=\"kwp-compare-title\"\u003e¿Por qué elegir una bandeja calentadora?\u003c\/h2\u003e\n\u003cdiv class=\"kwp-compare__switch\" role=\"group\"\u003e\n\u003cbutton type=\"button\"\u003evs. Manta enrollable\u003c\/button\u003e \u003cbutton type=\"button\"\u003evs. Calentador inox\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__table\" role=\"table\"\u003e\n\u003cdiv class=\"kwp-compare__row kwp-compare__head\" role=\"row\"\u003e\n\u003cdiv role=\"columnheader\"\u003eCriterio\u003c\/div\u003e\n\u003cdiv class=\"c-tray\" role=\"columnheader\"\u003eBandeja\u003c\/div\u003e\n\u003cdiv class=\"c-mat\" role=\"columnheader\"\u003eManta enrollable\u003c\/div\u003e\n\u003cdiv class=\"c-inox\" role=\"columnheader\"\u003eCalentador inox\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__row\" role=\"row\"\u003e\n\u003cdiv class=\"kwp-compare__label\" role=\"rowheader\"\u003ePotencia\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value c-tray\" role=\"cell\"\u003e\u003cstrong\u003e220W\u003c\/strong\u003e\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-mat\" role=\"cell\"\u003e110W\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-inox\" role=\"cell\"\u003e60W\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__row\" role=\"row\"\u003e\n\u003cdiv class=\"kwp-compare__label\" role=\"rowheader\"\u003eMantenimiento del calor\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value c-tray\" role=\"cell\"\u003eMayor potencia dentro de esta comparativa\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-mat\" role=\"cell\"\u003eMenor potencia; le cuesta más mantener el calor que a la bandeja\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-inox\" role=\"cell\"\u003eMenor potencia y recipientes específicos\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__row\" role=\"row\"\u003e\n\u003cdiv class=\"kwp-compare__label\" role=\"rowheader\"\u003eLimpieza\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value c-tray\" role=\"cell\"\u003eSuperficie rígida y fácil de limpiar\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-mat\" role=\"cell\"\u003eLos pliegues retienen suciedad y cuestan más de limpiar\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-inox\" role=\"cell\"\u003eMás piezas que lavar y ordenar\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__row\" role=\"row\"\u003e\n\u003cdiv class=\"kwp-compare__label\" role=\"rowheader\"\u003eExperiencia en la mesa\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value c-tray\" role=\"cell\"\u003eOrdenada, plana y lista para colocar los platos\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-mat\" role=\"cell\"\u003eHay que extenderla, enrollarla y estabilizarla\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__value kwp-compare__other c-inox\" role=\"cell\"\u003eMás voluminoso para una mesa familiar\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-compare__cta\"\u003e\n\u003cspan\u003eCalor por más tiempo\u003c\/span\u003e\u003cspan\u003ePráctica\u003c\/span\u003e\u003cspan\u003eDuradera\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 7. PROOF ============ --\u003e\n\u003csection class=\"kwp-section kwp-proof\"\u003e\n\u003cdiv class=\"kwp-shell\"\u003e\n\u003cdiv class=\"kwp-heading-row\"\u003e\n\u003ch2 id=\"kwp-proof-title\"\u003eMira cómo queda realmente en la mesa.\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-rail kwp-proof__strip\"\u003e\n\u003carticle class=\"kwp-proof__item\"\u003e\u003cvideo class=\"kwp-proof__video\" controls=\"controls\" playsinline=\"\" preload=\"metadata\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/97edb87245ab4db0a03889f723a1deaa.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n\u003cp class=\"kwp-proof__caption\"\u003e\u003cspan\u003eManejo real\u003c\/span\u003e\u003cspan\u003e01\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"kwp-proof__item\"\u003e\u003cvideo class=\"kwp-proof__video\" controls=\"controls\" playsinline=\"\" preload=\"metadata\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/61e0facea8ce4e3f9b09888402403ff0.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n\u003cp class=\"kwp-proof__caption\"\u003e\u003cspan\u003ePlatos en la mesa\u003c\/span\u003e\u003cspan\u003e02\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"kwp-proof__item\"\u003e\u003cvideo class=\"kwp-proof__video\" controls=\"controls\" playsinline=\"\" preload=\"metadata\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/5b5ba1476d6546baba0ed64bceaa222f.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n\u003cp class=\"kwp-proof__caption\"\u003e\u003cspan\u003eExperiencia al servir\u003c\/span\u003e\u003cspan\u003e03\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-railbar\"\u003e\n\u003cspan class=\"kwp-railbar__hint\"\u003eDesliza\u003c\/span\u003e \u003cspan class=\"kwp-railbar__track\"\u003e\u003cspan class=\"kwp-railbar__thumb\"\u003e\u003c\/span\u003e\u003c\/span\u003e \u003cbutton class=\"kwp-railbtn\" type=\"button\"\u003e←\u003c\/button\u003e \u003cbutton class=\"kwp-railbtn\" type=\"button\"\u003e→\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 8. HOW TO + SPECS ============ --\u003e\n\u003csection class=\"kwp-section\"\u003e\n\u003cdiv class=\"kwp-shell\"\u003e\n\u003cdiv class=\"kwp-how__head\"\u003e\n\u003ch2 id=\"kwp-how-title\"\u003eEnciende, sirve y limpia.\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-how__media\"\u003e\n\u003cfigure\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-howto-demo.gif?v=1787646209\" alt=\"Demostración animada de la bandeja calentadora antes de servir\" width=\"240\" height=\"320\" loading=\"lazy\"\u003e\u003c\/figure\u003e\n\u003cfigure\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-howto-switch-closeup.png?v=1787646208\" alt=\"Primer plano del interruptor mecánico rojo\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/figure\u003e\n\u003cfigure\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-howto-cleaning.png?v=1787646208\" alt=\"Limpieza de la superficie de la bandeja con un paño\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-steps\"\u003e\n\u003carticle class=\"kwp-step\"\u003e\u003ci\u003e01\u003c\/i\u003e\n\u003cp\u003eColócala sobre una superficie plana y seca.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"kwp-step\"\u003e\u003ci\u003e02\u003c\/i\u003e\n\u003cp\u003eConéctala y acciona el interruptor.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"kwp-step\"\u003e\u003ci\u003e03\u003c\/i\u003e\n\u003cp\u003eDesenchúfala, deja que se enfríe y límpiala con un paño.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-specs-wrap\"\u003e\n\u003ch3\u003eEspecificaciones técnicas\u003c\/h3\u003e\n\u003cdiv class=\"kwp-specs\" role=\"table\"\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eTipo\u003c\/span\u003e\u003cstrong role=\"cell\"\u003eBandeja calentadora rígida · 2 zonas\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eAlimentación\u003c\/span\u003e\u003cstrong role=\"cell\"\u003eEléctrica con cable\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eVoltaje\u003c\/span\u003e\u003cstrong role=\"cell\"\u003e220V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003ePotencia\u003c\/span\u003e\u003cstrong role=\"cell\"\u003e220W\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eControl\u003c\/span\u003e\u003cstrong role=\"cell\"\u003eInterruptor mecánico de encendido \/ apagado\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eColor\u003c\/span\u003e\u003cstrong role=\"cell\"\u003eBlanco\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003ePeso\u003c\/span\u003e\u003cstrong role=\"cell\"\u003e654 g\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eModelo\u003c\/span\u003e\u003cstrong role=\"cell\"\u003eMRC70131326\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eContenido\u003c\/span\u003e\u003cstrong role=\"cell\"\u003e1 bandeja calentadora\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kwp-spec\" role=\"row\"\u003e\n\u003cspan role=\"rowheader\"\u003eOrigen\u003c\/span\u003e\u003cstrong role=\"cell\"\u003eAlemania\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 9. FAQ ============ --\u003e\n\u003csection class=\"kwp-section kwp-faq\"\u003e\n\u003cdiv class=\"kwp-shell kwp-faq__grid\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"kwp-meta\"\u003eLo que conviene saber\u003c\/p\u003e\n\u003ch2 id=\"kwp-faq-title\"\u003ePreguntas antes de llevarla a la mesa.\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Para qué tipo de platos es adecuada?\u003c\/summary\u003e\n\u003cp\u003eEstá pensada para recipientes resistentes al calor y con una base estable. La compatibilidad exacta con cada tipo de olla, fuente o bol debe confirmarse en las instrucciones del SKU.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Se puede colocar comida directamente sobre la superficie?\u003c\/summary\u003e\n\u003cp\u003eEs preferible mantener la comida en un recipiente adecuado, sin contacto directo con la superficie. Así resulta más fácil servir y limpiar.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Cómo se limpia?\u003c\/summary\u003e\n\u003cp\u003eDesenchúfala y espera hasta que la superficie sea segura antes de pasar un paño suave. No sumerjas el producto ni permitas que entren líquidos en los componentes eléctricos.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Incluye control de temperatura o temporizador?\u003c\/summary\u003e\n\u003cp\u003eLas imágenes del SKU actual muestran un interruptor mecánico de encendido y apagado. No hay confirmación de pantalla, temporizador ni varios niveles de temperatura.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Qué precauciones hay que tomar?\u003c\/summary\u003e\n\u003cp\u003eColocála sobre una superficie plana, mantén el cable recogido, evita tocar las zonas que puedan calentarse y sigue siempre las instrucciones oficiales incluidas con el producto.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ 10. FINAL ============ --\u003e\n\u003csection class=\"kwp-final\"\u003e\n\u003cdiv class=\"kwp-shell kwp-final__grid\"\u003e\n\u003cdiv class=\"kwp-final__content\"\u003e\n\u003ch2 id=\"kwp-final-title\"\u003eDale a cada plato su lugar en la mesa.\u003c\/h2\u003e\n\u003cp\u003eCuerpo rígido, dos zonas de apoyo y un interruptor sencillo: 220W para una forma más ordenada de servir.\u003c\/p\u003e\n\u003cdiv\u003e\u003ca class=\"kwp-btn\" href=\"#product-offer\"\u003eQuiero la oferta \u003cspan class=\"kwp-btn__arrow\"\u003e↑\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\n\u003cp class=\"kwp-offer-status\"\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"kwp-final__media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/warm-tray-final-friends-dinner.png?v=1787646208\" alt=\"Amigos reunidos alrededor de una mesa con la bandeja calentadora\" width=\"1122\" height=\"1402\" loading=\"lazy\"\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ============ STICKY CTA ============ --\u003e\n\u003cdiv class=\"kwp-sticky\"\u003e\n\u003cdiv class=\"kwp-sticky__row\"\u003e\n\u003cspan class=\"kwp-sticky__label\"\u003e\u003cstrong\u003eBandeja calentadora 220W\u003c\/strong\u003e\u003csmall\u003e2 zonas · interruptor mecánico\u003c\/small\u003e\u003c\/span\u003e \u003ca class=\"kwp-btn\" href=\"#product-offer\" tabindex=\"-1\"\u003eVer la oferta\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function () {\n      var ownScript = document.currentScript;\n      var root = ownScript \u0026\u0026 ownScript.closest\n        ? ownScript.closest('#kwp-warming-tray')\n        : document.getElementById('kwp-warming-tray');\n      if (!root) return;\n\n      var reduce = window.matchMedia \u0026\u0026 window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n      \/* ---------- Shopify host placement ----------\n         Dawn renders the product description inside the right-hand product-info\n         column on desktop. Move this complete landing after the main product\n         section only above 900px; keep its original DOM position on mobile. *\/\n      (function () {\n        if (!root.parentNode) return;\n\n        var mobileHome = document.createComment('kwp-mobile-home');\n        root.parentNode.insertBefore(mobileHome, root);\n\n        var productSection = root.closest('.shopify-section') || root.closest('[id^=\"MainProduct-\"]');\n        if (!productSection || !productSection.parentNode) return;\n\n        var resizeFrame = 0;\n\n        function placeLanding() {\n          if (window.innerWidth \u003e 900) {\n            if (productSection.nextSibling !== root) {\n              productSection.parentNode.insertBefore(root, productSection.nextSibling);\n            }\n            root.classList.add('kwp-is-desktop-detached');\n          } else if (mobileHome.parentNode) {\n            if (mobileHome.nextSibling !== root) {\n              mobileHome.parentNode.insertBefore(root, mobileHome.nextSibling);\n            }\n            root.classList.remove('kwp-is-desktop-detached');\n          }\n        }\n\n        function onResize() {\n          if (resizeFrame) window.cancelAnimationFrame(resizeFrame);\n          resizeFrame = window.requestAnimationFrame(placeLanding);\n        }\n\n        placeLanding();\n        window.addEventListener('resize', onResize, { passive: true });\n      })();\n\n      \/* ---------- reveal on scroll ---------- *\/\n      (function () {\n        var items = root.querySelectorAll('[data-kwp-reveal]');\n        if (!items.length) return;\n\n        function revealAll() {\n          Array.prototype.forEach.call(items, function (el) { el.classList.add('is-in'); });\n        }\n\n        if (!('IntersectionObserver' in window) || reduce) { revealAll(); return; }\n\n        \/\/ Chỉ bật trạng thái ẩn khi chắc chắn có JS chạy được.\n        root.classList.add('kwp-anim-ready');\n\n        var io = new IntersectionObserver(function (entries) {\n          entries.forEach(function (entry) {\n            if (entry.isIntersecting) { entry.target.classList.add('is-in'); io.unobserve(entry.target); }\n          });\n        }, { rootMargin: '0px 0px -12% 0px', threshold: 0.08 });\n        Array.prototype.forEach.call(items, function (el) { io.observe(el); });\n\n        \/\/ Lưới an toàn: nếu IntersectionObserver không kích hoạt (tab nền, prerender,\n        \/\/ trình duyệt lạ) thì sau 2.5s hiện hết — thà mất animation còn hơn mất nội dung.\n        setTimeout(function () {\n          var stuck = root.querySelectorAll('[data-kwp-reveal]:not(.is-in)');\n          if (stuck.length === items.length) { io.disconnect(); root.classList.remove('kwp-anim-ready'); revealAll(); }\n        }, 2500);\n      })();\n\n      \/* ---------- drag rails ---------- *\/\n      Array.prototype.forEach.call(root.querySelectorAll('[data-kwp-rail]'), function (rail) {\n        var key = rail.getAttribute('data-kwp-rail');\n        var bar = root.querySelector('[data-kwp-railbar=\"' + key + '\"]');\n        var thumb = bar ? bar.querySelector('.kwp-railbar__thumb') : null;\n        var prev = bar ? bar.querySelector('[data-kwp-rail-prev]') : null;\n        var next = bar ? bar.querySelector('[data-kwp-rail-next]') : null;\n\n        function maxScroll() { return rail.scrollWidth - rail.clientWidth; }\n\n        function sync() {\n          var max = maxScroll();\n          if (bar) bar.hidden = max \u003c= 4;\n          if (max \u003c= 4) return;\n          var ratio = rail.scrollLeft \/ max;\n          if (thumb) {\n            var size = Math.max(18, (rail.clientWidth \/ rail.scrollWidth) * 100);\n            thumb.style.width = size + '%';\n            thumb.style.transform = 'translateX(' + (ratio * (100 - size) \/ size * 100) + '%)';\n          }\n          if (prev) prev.disabled = rail.scrollLeft \u003c 4;\n          if (next) next.disabled = rail.scrollLeft \u003e max - 4;\n        }\n\n        function step(dir) {\n          var first = rail.firstElementChild;\n          var amount = first ? first.getBoundingClientRect().width + 16 : rail.clientWidth * 0.8;\n          rail.scrollBy({ left: dir * amount, behavior: reduce ? 'auto' : 'smooth' });\n          setTimeout(sync, 420);\n        }\n\n        if (prev) prev.addEventListener('click', function () { step(-1); });\n        if (next) next.addEventListener('click', function () { step(1); });\n        rail.addEventListener('scroll', sync, { passive: true });\n        window.addEventListener('resize', sync);\n\n        \/* pointer drag *\/\n        var down = false, moved = false, startX = 0, startLeft = 0;\n\n        rail.addEventListener('pointerdown', function (e) {\n          if (e.pointerType === 'touch') return;          \/* touch keeps native momentum *\/\n          if (e.target.closest('video')) return;\n          down = true; moved = false;\n          startX = e.clientX;\n          startLeft = rail.scrollLeft;\n        });\n\n        rail.addEventListener('pointermove', function (e) {\n          if (!down) return;\n          var dx = e.clientX - startX;\n          if (!moved \u0026\u0026 Math.abs(dx) \u003e 5) {\n            moved = true;\n            rail.classList.add('is-drag');\n            try { rail.setPointerCapture(e.pointerId); } catch (err) {}\n          }\n          if (moved) { rail.scrollLeft = startLeft - dx; e.preventDefault(); }\n        });\n\n        function release(e) {\n          if (!down) return;\n          down = false;\n          if (moved) {\n            rail.classList.remove('is-drag');\n            try { rail.releasePointerCapture(e.pointerId); } catch (err) {}\n            setTimeout(sync, 60);\n          }\n        }\n\n        rail.addEventListener('pointerup', release);\n        rail.addEventListener('pointercancel', release);\n        rail.addEventListener('dragstart', function (e) { e.preventDefault(); });\n\n        sync();\n        setTimeout(sync, 120);\n        window.addEventListener('load', sync);\n        if (window.ResizeObserver) { var ro = new ResizeObserver(sync); ro.observe(rail); if (rail.firstElementChild) ro.observe(rail.firstElementChild); }\n      });\n\n      \/* ---------- interactive switch ---------- *\/\n      (function () {\n        var box = root.querySelector('[data-kwp-switch]');\n        if (!box) return;\n        var rocker = box.querySelector('.kwp-rocker');\n        var cap = box.querySelector('.kwp-rocker__cap');\n        var state = box.querySelector('[data-kwp-switch-state]');\n        var stage = box.querySelector('.kwp-switch__stage');\n\n        function set(on) {\n          box.classList.toggle('is-on', on);\n          rocker.setAttribute('aria-checked', on ? 'true' : 'false');\n          if (cap) cap.textContent = on ? 'I' : 'O';\n          if (state) state.textContent = on\n            ? 'Interruptor en I · las dos zonas en funcionamiento'\n            : 'Interruptor en O · bandeja en reposo';\n        }\n\n        rocker.addEventListener('click', function () { set(!box.classList.contains('is-on')); });\n        if (stage) stage.addEventListener('click', function () { set(!box.classList.contains('is-on')); });\n        set(false);\n      })();\n\n      \/* ---------- compare switcher ---------- *\/\n      (function () {\n        var wrap = root.querySelector('[data-kwp-compare]');\n        if (!wrap) return;\n        var buttons = wrap.querySelectorAll('[data-kwp-compare-btn]');\n        Array.prototype.forEach.call(buttons, function (b) {\n          b.addEventListener('click', function () {\n            var value = b.getAttribute('data-kwp-compare-btn');\n            wrap.setAttribute('data-active', value);\n            Array.prototype.forEach.call(buttons, function (o) {\n              o.setAttribute('aria-pressed', o === b ? 'true' : 'false');\n            });\n          });\n        });\n      })();\n\n      \/* ---------- sticky CTA ---------- *\/\n      (function () {\n        var sticky = root.querySelector('[data-kwp-sticky]');\n        var hero = root.querySelector('.kwp-hero');\n        var last = root.querySelector('[data-kwp-final]');\n        if (!sticky || !hero || !last) return;\n        var link = sticky.querySelector('a');\n        var shown = null;\n\n        function apply() {\n          var show = hero.getBoundingClientRect().bottom \u003c 0 \u0026\u0026\n                     last.getBoundingClientRect().top \u003e window.innerHeight * 0.85;\n          if (show === shown) return;\n          shown = show;\n          sticky.classList.toggle('is-show', show);\n          sticky.setAttribute('aria-hidden', show ? 'false' : 'true');\n          if (link) link.setAttribute('tabindex', show ? '0' : '-1');\n        }\n\n        window.addEventListener('scroll', apply, { passive: true });\n        window.addEventListener('resize', apply);\n        apply();\n      })();\n\n      \/* ---------- CTA scroll ---------- *\/\n      (function () {\n        var targetSelector = root.getAttribute('data-buy-target') || '#product-offer';\n        var links = root.querySelectorAll('[data-kwp-offer-link]');\n        var status = root.querySelector('[data-kwp-status]');\n\n        Array.prototype.forEach.call(links, function (link) {\n          link.setAttribute('href', targetSelector);\n          link.addEventListener('click', function (event) {\n            var target = document.querySelector(targetSelector);\n            event.preventDefault();\n            if (!target) {\n              if (status) status.textContent = 'Antes de publicar, conecta el CTA con el ID real de la oferta.';\n              return;\n            }\n            target.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'start' });\n          });\n        });\n      })();\n    })();\n  \u003c\/script\u003e\n\u003c\/div\u003e","brand":"NHATHUY","offers":[{"title":"Default Title","offer_id":50224241213697,"sku":"BOARD","price":59.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0715\/3385\/4977\/files\/exec-0751f7bc-553b-4ade-881a-c9cce8ab48eb.png?v=1787661599","url":"https:\/\/casahora.co\/products\/calentador-alimentos","provider":"CASAHORA","version":"1.0","type":"link"}