{"id":2618,"date":"2026-10-18T17:22:24","date_gmt":"2026-10-18T10:22:24","guid":{"rendered":"https:\/\/www.slimthailand.com\/?page_id=2618"},"modified":"2026-11-02T12:47:23","modified_gmt":"2026-11-02T05:47:23","slug":"page-2618","status":"publish","type":"page","link":"https:\/\/www.slimthailand.com\/en\/page-2618\/","title":{"rendered":"\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2618\" class=\"elementor elementor-2618\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc79481 e-con-full e-flex e-con e-parent\" data-id=\"dc79481\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d59f7d3 elementor-widget elementor-widget-html\" data-id=\"d59f7d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\r\n     SLIM | BLANKET SAUNA PRODUCT HERO\r\n     READY TO PASTE\r\n========================================================= -->\r\n\r\n<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600&display=swap');\r\n\r\n\r\n\/* =========================================================\r\n   BASE\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero,\r\n#slim-blanket-hero * {\r\n    box-sizing: border-box;\r\n    font-family: 'Montserrat', sans-serif !important;\r\n}\r\n\r\n#slim-blanket-hero {\r\n    position: relative;\r\n\r\n    width: 100%;\r\n    height: 560px;\r\n    min-height: 500px;\r\n\r\n    overflow: hidden;\r\n\r\n    background: #f5f1eb;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BACKGROUND IMAGE\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-bg {\r\n    position: absolute;\r\n    inset: 0;\r\n\r\n    z-index: 1;\r\n\r\n    background-image:\r\n        url('https:\/\/www.slimthailand.com\/wp-content\/uploads\/2026\/10\/media-20261019-021612.png');\r\n\r\n    background-size: cover;\r\n    background-position: center right;\r\n    background-repeat: no-repeat;\r\n\r\n    transform: scale(1.001);\r\n\r\n    transition: transform 1.8s cubic-bezier(.2,.7,.2,1);\r\n}\r\n\r\n\r\n\/* subtle zoom *\/\r\n#slim-blanket-hero:hover .sbh-bg {\r\n    transform: scale(1.015);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   LEFT GRADIENT\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-overlay {\r\n    position: absolute;\r\n    inset: 0;\r\n\r\n    z-index: 2;\r\n\r\n    pointer-events: none;\r\n\r\n    background:\r\n        linear-gradient(\r\n            90deg,\r\n\r\n            rgba(247,244,238,1) 0%,\r\n            rgba(247,244,238,1) 23%,\r\n\r\n            rgba(247,244,238,.98) 31%,\r\n            rgba(247,244,238,.92) 38%,\r\n            rgba(247,244,238,.73) 44%,\r\n            rgba(247,244,238,.42) 50%,\r\n            rgba(247,244,238,.15) 57%,\r\n            rgba(247,244,238,0) 65%\r\n        );\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CONTENT WRAPPER\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-inner {\r\n    position: relative;\r\n    z-index: 3;\r\n\r\n    width: 100%;\r\n    max-width: 1600px;\r\n    height: 100%;\r\n\r\n    margin: 0 auto;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n\r\n    padding:\r\n        55px\r\n        clamp(40px, 6vw, 95px);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TEXT CONTENT\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-content {\r\n    width: 46%;\r\n    max-width: 650px;\r\n\r\n    transform: translateY(-5px);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BREADCRUMB\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-breadcrumb {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 9px;\r\n\r\n    margin: 0 0 18px;\r\n\r\n    color: #66615b;\r\n\r\n    font-size: 11px;\r\n    font-weight: 500;\r\n\r\n    line-height: 1;\r\n\r\n    letter-spacing: .12em;\r\n\r\n    text-transform: uppercase;\r\n}\r\n\r\n\r\n#slim-blanket-hero .sbh-breadcrumb-separator {\r\n    opacity: .45;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TITLE\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-title {\r\n    margin: 0;\r\n\r\n    color: #262522;\r\n\r\n    font-size: clamp(46px, 4.5vw, 70px);\r\n    font-weight: 300;\r\n\r\n    line-height: 1.03;\r\n\r\n    letter-spacing: -0.045em;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   SUBTITLE\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-subtitle {\r\n    margin: 13px 0 0;\r\n\r\n    color: #5f5a55;\r\n\r\n    font-size: clamp(20px, 1.65vw, 27px);\r\n    font-weight: 300;\r\n\r\n    line-height: 1.35;\r\n\r\n    letter-spacing: -0.025em;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   DESCRIPTION\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-description {\r\n    max-width: 500px;\r\n\r\n    margin: 24px 0 0;\r\n\r\n    color: #7f7972;\r\n\r\n    font-size: clamp(14px, 1.05vw, 17px);\r\n    font-weight: 300;\r\n\r\n    line-height: 1.55;\r\n\r\n    letter-spacing: -0.015em;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   INTRO ANIMATION\r\n========================================================= *\/\r\n\r\n#slim-blanket-hero .sbh-breadcrumb,\r\n#slim-blanket-hero .sbh-title,\r\n#slim-blanket-hero .sbh-subtitle,\r\n#slim-blanket-hero .sbh-description {\r\n    opacity: 0;\r\n    transform: translateY(18px);\r\n\r\n    animation: sbhFadeUp .8s ease forwards;\r\n}\r\n\r\n#slim-blanket-hero .sbh-title {\r\n    animation-delay: .08s;\r\n}\r\n\r\n#slim-blanket-hero .sbh-subtitle {\r\n    animation-delay: .16s;\r\n}\r\n\r\n#slim-blanket-hero .sbh-description {\r\n    animation-delay: .24s;\r\n}\r\n\r\n\r\n@keyframes sbhFadeUp {\r\n\r\n    to {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TABLET\r\n========================================================= *\/\r\n\r\n@media (max-width: 1100px) {\r\n\r\n    #slim-blanket-hero {\r\n        height: 520px;\r\n    }\r\n\r\n    #slim-blanket-hero .sbh-inner {\r\n        padding:\r\n            45px\r\n            45px;\r\n    }\r\n\r\n    #slim-blanket-hero .sbh-content {\r\n        width: 52%;\r\n    }\r\n\r\n    #slim-blanket-hero .sbh-bg {\r\n        background-position: 58% center;\r\n    }\r\n\r\n    #slim-blanket-hero .sbh-overlay {\r\n\r\n        background:\r\n            linear-gradient(\r\n                90deg,\r\n\r\n                rgba(247,244,238,1) 0%,\r\n                rgba(247,244,238,.99) 30%,\r\n                rgba(247,244,238,.90) 42%,\r\n                rgba(247,244,238,.65) 53%,\r\n                rgba(247,244,238,.25) 68%,\r\n                rgba(247,244,238,0) 84%\r\n            );\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MOBILE\r\n========================================================= *\/\r\n\r\n@media (max-width: 767px) {\r\n\r\n    #slim-blanket-hero {\r\n        height: 690px;\r\n        min-height: 690px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-bg {\r\n        background-size: cover;\r\n        background-position: 68% center;\r\n    }\r\n\r\n\r\n    \/* \u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 Gradient \u0e40\u0e1b\u0e47\u0e19\u0e1a\u0e19\u0e25\u0e07\u0e25\u0e48\u0e32\u0e07 *\/\r\n    #slim-blanket-hero .sbh-overlay {\r\n\r\n        background:\r\n            linear-gradient(\r\n                180deg,\r\n\r\n                rgba(247,244,238,1) 0%,\r\n                rgba(247,244,238,.99) 25%,\r\n                rgba(247,244,238,.94) 39%,\r\n                rgba(247,244,238,.72) 51%,\r\n                rgba(247,244,238,.28) 65%,\r\n                rgba(247,244,238,.04) 79%,\r\n                rgba(247,244,238,0) 100%\r\n            );\r\n\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-inner {\r\n        align-items: flex-start;\r\n\r\n        padding:\r\n            55px\r\n            24px\r\n            30px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-content {\r\n        width: 100%;\r\n        max-width: 520px;\r\n\r\n        transform: none;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-breadcrumb {\r\n        margin-bottom: 15px;\r\n\r\n        font-size: 9px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-title {\r\n        font-size: clamp(40px, 11vw, 54px);\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-subtitle {\r\n        margin-top: 10px;\r\n\r\n        font-size: 19px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-description {\r\n        max-width: 340px;\r\n\r\n        margin-top: 20px;\r\n\r\n        font-size: 13px;\r\n\r\n        line-height: 1.55;\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   SMALL MOBILE\r\n========================================================= *\/\r\n\r\n@media (max-width: 420px) {\r\n\r\n    #slim-blanket-hero {\r\n        height: 650px;\r\n        min-height: 650px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-inner {\r\n        padding:\r\n            45px\r\n            20px\r\n            25px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-title {\r\n        font-size: 39px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-subtitle {\r\n        font-size: 17px;\r\n    }\r\n\r\n\r\n    #slim-blanket-hero .sbh-description {\r\n        max-width: 310px;\r\n\r\n        font-size: 12.5px;\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   REDUCE MOTION\r\n========================================================= *\/\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n\r\n    #slim-blanket-hero *,\r\n    #slim-blanket-hero *::before,\r\n    #slim-blanket-hero *::after {\r\n\r\n        animation: none !important;\r\n        transition: none !important;\r\n\r\n    }\r\n\r\n    #slim-blanket-hero .sbh-breadcrumb,\r\n    #slim-blanket-hero .sbh-title,\r\n    #slim-blanket-hero .sbh-subtitle,\r\n    #slim-blanket-hero .sbh-description {\r\n\r\n        opacity: 1;\r\n        transform: none;\r\n\r\n    }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<!-- =========================================================\r\n     HTML\r\n========================================================= -->\r\n\r\n<section id=\"slim-blanket-hero\">\r\n\r\n    <!-- BACKGROUND -->\r\n    <div class=\"sbh-bg\"><\/div>\r\n\r\n    <!-- GRADIENT -->\r\n    <div class=\"sbh-overlay\"><\/div>\r\n\r\n\r\n    <!-- CONTENT -->\r\n    <div class=\"sbh-inner\">\r\n\r\n        <div class=\"sbh-content\">\r\n\r\n\r\n            <!-- BREADCRUMB -->\r\n            <div class=\"sbh-breadcrumb\">\r\n\r\n                <span>PRODUCTS<\/span>\r\n\r\n                <span class=\"sbh-breadcrumb-separator\">\r\n                    \/\r\n                <\/span>\r\n\r\n                <span>Sauna Equipment<\/span>\r\n\r\n            <\/div>\r\n\r\n\r\n            <!-- TITLE -->\r\n            <h1 class=\"sbh-title\">\r\n                Sauna Equipment\r\n            <\/h1>\r\n\r\n\r\n            <!-- SUBTITLE -->\r\n            <p class=\"sbh-subtitle\">\r\n                Warmth for a healthier you.\r\n            <\/p>\r\n\r\n\r\n            <!-- DESCRIPTION -->\r\n            <p class=\"sbh-description\">\r\n                Experience deep relaxation, detox and better\r\n                wellbeing \u2014 anytime, anywhere.<br>\r\n\r\n                Our blanket sauna combines. gentle, consistent\r\n                heat with a comfortable, easy-to-use design\r\n                for your everyday wellness routine.\r\n            <\/p>\r\n\r\n\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2456dc8 e-con-full e-flex e-con e-parent\" data-id=\"2456dc8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b55a6ca elementor-widget elementor-widget-html\" data-id=\"b55a6ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600&family=Prompt:wght@300;400;500&display=swap');\n\n\/* =========================================================\n   SLIM \u2014 SAUNA EQUIPMENT PRODUCT GRID\n   READY TO PASTE (fast-load version)\n========================================================= *\/\n\n#slim-sauna-equipment-products{\n  width:100%;\n  max-width:none;\n  margin:0;\n  padding:0 30px 30px;\n  box-sizing:border-box;\n  font-family:\"Montserrat\",\"Prompt\",sans-serif;\n  color:#342e29;\n  background:#f8f5ef;\n}\n\n#slim-sauna-equipment-products *,\n#slim-sauna-equipment-products *::before,\n#slim-sauna-equipment-products *::after{\n  box-sizing:border-box;\n}\n\n\/* =========================\n   FILTER\n========================= *\/\n\n#slim-sauna-equipment-products .slim-filter{\n  width:100%;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:flex-start !important;\n\n  margin:0 0 24px !important;\n  padding:0 !important;\n\n  background:transparent !important;\n  border:0 !important;\n  border-bottom:1px solid #ded8cf !important;\n\n  overflow-x:auto;\n  scrollbar-width:none;\n}\n\n#slim-sauna-equipment-products .slim-filter::-webkit-scrollbar{\n  display:none;\n}\n\n#slim-sauna-equipment-products .slim-filter-btn{\n  all:unset !important;\n\n  position:relative !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n\n  height:44px !important;\n  padding:0 28px !important;\n  margin:0 !important;\n\n  background:transparent !important;\n  border:0 !important;\n  border-radius:0 !important;\n  box-shadow:none !important;\n\n  font-family:\"Montserrat\",sans-serif !important;\n  font-size:10px !important;\n  line-height:1 !important;\n  font-weight:500 !important;\n  letter-spacing:.045em !important;\n\n  color:#806f60 !important;\n  cursor:pointer !important;\n  white-space:nowrap !important;\n}\n\n#slim-sauna-equipment-products .slim-filter-btn:first-child{\n  padding-left:18px !important;\n}\n\n#slim-sauna-equipment-products .slim-filter-btn:not(:last-child)::after{\n  content:\"\" !important;\n  position:absolute !important;\n  right:0 !important;\n  top:50% !important;\n  transform:translateY(-50%) !important;\n\n  width:1px !important;\n  height:18px !important;\n  background:#ddd7ce !important;\n}\n\n#slim-sauna-equipment-products .slim-filter-btn.active,\n#slim-sauna-equipment-products .slim-filter-btn:hover,\n#slim-sauna-equipment-products .slim-filter-btn:focus{\n  color:#342e29 !important;\n  background:transparent !important;\n}\n\n\/* =========================\n   GRID\n========================= *\/\n\n#slim-sauna-equipment-products .slim-products-grid{\n  width:100%;\n  display:grid !important;\n  grid-template-columns:repeat(3,minmax(0,1fr)) !important;\n  gap:14px !important;\n  margin:0 !important;\n  padding:0 !important;\n}\n\n\/* =========================\n   CARD\n========================= *\/\n\n#slim-sauna-equipment-products .slim-product-card{\n  width:100%;\n  min-width:0;\n  margin:0 !important;\n  padding:0 !important;\n\n  display:flex;\n  flex-direction:column;\n\n  background:#f8f5ef !important;\n  border:1px solid #e3ddd4 !important;\n  border-radius:0 !important;\n  box-shadow:none !important;\n  overflow:hidden;\n}\n\n\/* =========================\n   IMAGE\n========================= *\/\n\n#slim-sauna-equipment-products .slim-product-image{\n  display:block !important;\n  width:100% !important;\n  margin:0 !important;\n  padding:0 !important;\n\n  overflow:hidden;\n  background:#f5f1e9 !important;\n  text-decoration:none !important;\n  aspect-ratio:1.085 \/ 1;\n}\n\n#slim-sauna-equipment-products .slim-product-image img{\n  display:block !important;\n  width:100% !important;\n  height:auto !important;\n\n  \/* closer to the reference: slightly landscape, not a tall square *\/\n  aspect-ratio:1.085 \/ 1 !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  object-fit:cover !important;\n  object-position:center !important;\n\n  border:0 !important;\n  border-radius:0 !important;\n\n  transition:transform .45s ease;\n}\n\n#slim-sauna-equipment-products .slim-product-card:hover .slim-product-image img{\n  transform:scale(1.018);\n}\n\n\/* =========================\n   CONTENT\n========================= *\/\n\n#slim-sauna-equipment-products .slim-product-body{\n  display:flex;\n  flex:1;\n  flex-direction:column;\n\n  min-height:170px;\n  margin:0 !important;\n  padding:17px 23px 18px !important;\n\n  background:#f8f5ef !important;\n}\n\n#slim-sauna-equipment-products .slim-product-type{\n  margin:0 0 7px !important;\n  padding:0 !important;\n\n  font-family:\"Montserrat\",sans-serif !important;\n  font-size:9px !important;\n  line-height:1.2 !important;\n  font-weight:500 !important;\n  letter-spacing:.055em !important;\n\n  color:#9c8d80 !important;\n}\n\n#slim-sauna-equipment-products .slim-product-title{\n  margin:0 !important;\n  padding:0 !important;\n\n  font-family:\"Montserrat\",sans-serif !important;\n  font-size:18px !important;\n  line-height:1.28 !important;\n  font-weight:400 !important;\n  letter-spacing:-.015em !important;\n}\n\n#slim-sauna-equipment-products .slim-product-title a{\n  color:#332d28 !important;\n  text-decoration:none !important;\n  font-weight:400 !important;\n}\n\n#slim-sauna-equipment-products .slim-product-description{\n  min-height:30px;\n  margin:5px 0 0 !important;\n  padding:0 !important;\n\n  font-family:\"Montserrat\",sans-serif !important;\n  font-size:10px !important;\n  line-height:1.55 !important;\n  font-weight:300 !important;\n\n  color:#a3968a !important;\n}\n\n#slim-sauna-equipment-products .slim-product-divider{\n  width:100% !important;\n  height:1px !important;\n\n  margin:13px 0 0 !important;\n  padding:0 !important;\n\n  background:#ded8cf !important;\n  border:0 !important;\n}\n\n\/* =========================\n   PRICE \/ ARROW\n========================= *\/\n\n#slim-sauna-equipment-products .slim-product-footer{\n  display:flex !important;\n  align-items:center !important;\n  justify-content:space-between !important;\n\n  width:100% !important;\n\n  margin-top:auto !important;\n  padding-top:18px !important;\n\n  color:inherit !important;\n  text-decoration:none !important;\n}\n\n#slim-sauna-equipment-products .slim-product-price{\n  display:flex !important;\n  align-items:baseline !important;\n  gap:3px !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  white-space:nowrap !important;\n}\n\n#slim-sauna-equipment-products .slim-from{\n  font-family:\"Montserrat\",sans-serif !important;\n  font-size:10px !important;\n  line-height:1 !important;\n  font-weight:300 !important;\n\n  color:#a29488 !important;\n}\n\n#slim-sauna-equipment-products .slim-price-value{\n  font-family:\"Montserrat\",sans-serif !important;\n  font-size:11px !important;\n  line-height:1 !important;\n  font-weight:500 !important;\n\n  color:#332d28 !important;\n}\n\n#slim-sauna-equipment-products .slim-arrow{\n  display:inline-block !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  font-size:17px !important;\n  line-height:1 !important;\n  font-weight:300 !important;\n\n  color:#433a33 !important;\n\n  transition:transform .25s ease;\n}\n\n#slim-sauna-equipment-products .slim-product-footer:hover .slim-arrow{\n  transform:translateX(3px);\n}\n\n\/* =========================\n   SKELETON (shown instantly while loading)\n========================= *\/\n\n#slim-sauna-equipment-products .slim-skeleton .slim-product-image,\n#slim-sauna-equipment-products .slim-skeleton .slim-sk-line{\n  background:linear-gradient(90deg,#efe9df 25%,#f6f2eb 50%,#efe9df 75%) !important;\n  background-size:200% 100% !important;\n  animation:slimEquipShimmer 1.2s ease-in-out infinite;\n}\n\n#slim-sauna-equipment-products .slim-sk-line{\n  display:block;\n  height:10px;\n  margin:0 0 10px;\n}\n\n@keyframes slimEquipShimmer{\n  0%{background-position:200% 0}\n  100%{background-position:-200% 0}\n}\n\n\/* =========================\n   STATUS\n========================= *\/\n\n#slim-sauna-equipment-products .slim-loading,\n#slim-sauna-equipment-products .slim-no-products,\n#slim-sauna-equipment-products .slim-error{\n  grid-column:1\/-1;\n  padding:50px 20px;\n  text-align:center;\n\n  font-size:12px;\n  color:#8f8174;\n}\n\n\/* =========================\n   TABLET\n========================= *\/\n\n@media (max-width:1024px){\n\n  #slim-sauna-equipment-products{\n    padding-left:20px;\n    padding-right:20px;\n  }\n\n  #slim-sauna-equipment-products .slim-products-grid{\n    grid-template-columns:repeat(2,minmax(0,1fr)) !important;\n    gap:12px !important;\n  }\n}\n\n\/* =========================\n   MOBILE\n========================= *\/\n\n@media (max-width:767px){\n\n  #slim-sauna-equipment-products{\n    padding:0 12px 20px;\n  }\n\n  #slim-sauna-equipment-products .slim-filter{\n    margin-bottom:14px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-filter-btn{\n    height:40px !important;\n    padding:0 14px !important;\n    font-size:8px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-filter-btn:first-child{\n    padding-left:8px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-products-grid{\n    grid-template-columns:repeat(2,minmax(0,1fr)) !important;\n    gap:8px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-product-body{\n    min-height:145px;\n    padding:11px 11px 12px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-product-type{\n    font-size:7px !important;\n    margin-bottom:5px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-product-title{\n    font-size:13px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-product-description{\n    min-height:26px;\n    margin-top:4px !important;\n    font-size:8px !important;\n    line-height:1.45 !important;\n  }\n\n  #slim-sauna-equipment-products .slim-product-divider{\n    margin-top:9px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-product-footer{\n    padding-top:11px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-from{\n    font-size:7px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-price-value{\n    font-size:8px !important;\n  }\n\n  #slim-sauna-equipment-products .slim-arrow{\n    font-size:14px !important;\n  }\n}\n<\/style>\n\n<style id=\"slim-sauna-equipment-extra-style\">\n\/* =========================================================\n   SAUNA EQUIPMENT \u2014 THAI FILTER \/ TYPE\n========================================================= *\/\n\n#slim-sauna-equipment-products .slim-filter-btn{\n  font-family:\"Prompt\",\"Montserrat\",sans-serif !important;\n  font-weight:300 !important;\n  letter-spacing:0 !important;\n}\n\n#slim-sauna-equipment-products .slim-product-type{\n  font-family:\"Prompt\",\"Montserrat\",sans-serif !important;\n  font-weight:300 !important;\n  letter-spacing:0 !important;\n}\n\n#slim-sauna-equipment-products .slim-filter-btn::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  bottom:-1px !important;\n\n  width:0 !important;\n  height:1px !important;\n\n  background:#342e29 !important;\n\n  transform:translateX(-50%) !important;\n\n  transition:width .28s ease !important;\n}\n\n#slim-sauna-equipment-products .slim-filter-btn.active::before{\n  width:28px !important;\n}\n\n#slim-sauna-equipment-products .slim-filter-empty{\n  grid-column:1\/-1;\n\n  padding:54px 20px;\n\n  text-align:center;\n\n  font-family:\"Prompt\",\"Montserrat\",sans-serif;\n  font-size:12px;\n  font-weight:300;\n\n  color:#8f8174;\n}\n<\/style>\n\n\n\n<section id=\"slim-sauna-equipment-products\">\n\n  <div class=\"slim-filter\">\n\n    <button\n      class=\"slim-filter-btn active\"\n      type=\"button\"\n      data-filter=\"all\"\n    >\n      \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      type=\"button\"\n      data-filter=\"accessories\"\n    >\n      \u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e40\u0e2a\u0e23\u0e34\u0e21\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      type=\"button\"\n      data-filter=\"sauna-stones\"\n    >\n      \u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      type=\"button\"\n      data-filter=\"stone-system\"\n    >\n      \u0e23\u0e30\u0e1a\u0e1a\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      type=\"button\"\n      data-filter=\"infrared-system\"\n    >\n      \u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e17\n    <\/button>\n\n  <\/div>\n\n\n  <div\n    class=\"slim-products-grid\"\n    id=\"slimSaunaEquipmentGrid\"\n  >\n\n    <!-- skeleton cards: visible instantly, replaced when products arrive -->\n    <article class=\"slim-product-card slim-skeleton\"><div class=\"slim-product-image\"><\/div><div class=\"slim-product-body\"><span class=\"slim-sk-line\" style=\"width:30%\"><\/span><span class=\"slim-sk-line\" style=\"width:70%;height:16px\"><\/span><span class=\"slim-sk-line\" style=\"width:90%\"><\/span><\/div><\/article>\n    <article class=\"slim-product-card slim-skeleton\"><div class=\"slim-product-image\"><\/div><div class=\"slim-product-body\"><span class=\"slim-sk-line\" style=\"width:30%\"><\/span><span class=\"slim-sk-line\" style=\"width:70%;height:16px\"><\/span><span class=\"slim-sk-line\" style=\"width:90%\"><\/span><\/div><\/article>\n    <article class=\"slim-product-card slim-skeleton\"><div class=\"slim-product-image\"><\/div><div class=\"slim-product-body\"><span class=\"slim-sk-line\" style=\"width:30%\"><\/span><span class=\"slim-sk-line\" style=\"width:70%;height:16px\"><\/span><span class=\"slim-sk-line\" style=\"width:90%\"><\/span><\/div><\/article>\n\n  <\/div>\n\n<\/section>\n\n\n<script data-no-optimize=\"1\" data-no-defer=\"1\" data-no-minify=\"1\">\n(function () {\n\n  'use strict';\n\n\n  \/* =========================================================\n     API\n  ========================================================= *\/\n\n  const API_BASE =\n    window.location.origin +\n    '\/wp-json\/wc\/store\/v1';\n\n\n  \/*\n   * ID \u0e02\u0e2d\u0e07\u0e2b\u0e21\u0e27\u0e14 \"\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32\" \u0e43\u0e19 WooCommerce\n   * \u0e43\u0e2a\u0e48\u0e44\u0e27\u0e49\u0e15\u0e23\u0e07 \u0e46 -> \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e42\u0e2b\u0e25\u0e14\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e21\u0e27\u0e14\u0e01\u0e48\u0e2d\u0e19 (\u0e40\u0e23\u0e47\u0e27\u0e02\u0e36\u0e49\u0e19 1 \u0e23\u0e2d\u0e1a)\n   * \u0e16\u0e49\u0e32\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2b\u0e21\u0e27\u0e14\u0e43\u0e2b\u0e21\u0e48 \u0e43\u0e2b\u0e49\u0e41\u0e01\u0e49\u0e40\u0e25\u0e02\u0e19\u0e35\u0e49 \u0e2b\u0e23\u0e37\u0e2d\u0e43\u0e2a\u0e48 null \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e49\u0e19\u0e08\u0e32\u0e01\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e17\u0e19\n   *\/\n  const CATEGORY_ID = 76;\n\n  const CACHE_KEY = 'slim_products_sauna_equipment_v1';\n\n  \/\/ Only request the fields the card uses -> much smaller response\n  const FIELDS =\n    'id,name,permalink,short_description,prices,images,categories';\n\n\n  \/*\n   * \u0e43\u0e0a\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d CATEGORY_ID = null \u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\n   * \u0e43\u0e0a\u0e49 NAME \u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e44\u0e21\u0e48\u0e43\u0e2b\u0e49\u0e1e\u0e31\u0e07\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\n   * WooCommerce \u0e2a\u0e23\u0e49\u0e32\u0e07 slug \u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e15\u0e34\u0e21 -2 \/ -3\n   *\/\n  const PARENT_CATEGORY_NAMES = [\n    '\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32',\n    'sauna equipment',\n    'sauna equipments'\n  ];\n\n\n  const PARENT_CATEGORY_SLUG_HINTS = [\n    'sauna-equipment',\n    'sauna-accessories'\n  ];\n\n\n  \/*\n   * FILTER \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\n   *\/\n  const FILTER_RULES = {\n\n    'accessories': {\n      label: '\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e40\u0e2a\u0e23\u0e34\u0e21',\n      names: [\n        '\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e40\u0e2a\u0e23\u0e34\u0e21',\n        'accessories',\n        'sauna accessories'\n      ],\n      slugHints: [\n        'accessories',\n        'sauna-accessories'\n      ]\n    },\n\n\n    'sauna-stones': {\n      label: '\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19',\n      names: [\n        '\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19'\n      ],\n      slugHints: [\n        '\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19',\n        'sauna-stone',\n        'sauna-stones'\n      ]\n    },\n\n\n    'stone-system': {\n      label: '\u0e23\u0e30\u0e1a\u0e1a\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19',\n      names: [\n        '\u0e23\u0e30\u0e1a\u0e1a\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19'\n      ],\n      slugHints: [\n        '\u0e23\u0e30\u0e1a\u0e1a\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19',\n        'stone-system',\n        'sauna-heater',\n        'heater-system'\n      ]\n    },\n\n\n    'infrared-system': {\n      label: '\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e17',\n      names: [\n        '\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e17',\n        '\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e14',\n        'infrared',\n        'infrared system'\n      ],\n      slugHints: [\n        'infrared',\n        'infrared-system',\n        'infrared-sauna'\n      ]\n    }\n\n  };\n\n\n  const section =\n    document.getElementById(\n      'slim-sauna-equipment-products'\n    );\n\n  const grid =\n    document.getElementById(\n      'slimSaunaEquipmentGrid'\n    );\n\n\n  if (!grid || !section) return;\n\n\n  let activeFilter = 'all';\n\n\n\n  \/* =========================================================\n     HELPERS\n  ========================================================= *\/\n\n  function normalizeText(value) {\n\n    return String(value || '')\n      .trim()\n      .toLowerCase()\n      .replace(\/[_\u2013\u2014]+\/g, '-')\n      .replace(\/\\s+\/g, ' ');\n\n  }\n\n\n  function cleanHTML(html) {\n\n    if (!html) return '';\n\n    const div =\n      document.createElement('div');\n\n    div.innerHTML = html;\n\n    return (\n      div.textContent ||\n      div.innerText ||\n      ''\n    )\n      .replace(\/\\s+\/g, ' ')\n      .trim();\n\n  }\n\n\n  function escapeHTML(value) {\n\n    return String(value || '')\n      .replace(\/&\/g, '&amp;')\n      .replace(\/<\/g, '&lt;')\n      .replace(\/>\/g, '&gt;')\n      .replace(\/\"\/g, '&quot;')\n      .replace(\/'\/g, '&#039;');\n\n  }\n\n\n\n  \/* =========================================================\n     PRICE\n  ========================================================= *\/\n\n  function formatPrice(product) {\n\n    if (\n      !product.prices ||\n      product.prices.price === undefined ||\n      product.prices.price === null\n    ) {\n      return '';\n    }\n\n    const minorUnit =\n      Number(product.prices.currency_minor_unit || 0);\n\n    const divisor =\n      Math.pow(10, minorUnit);\n\n    const number =\n      Number(product.prices.price) \/ divisor;\n\n    if (!Number.isFinite(number)) {\n      return '';\n    }\n\n    return new Intl.NumberFormat(\n      'en-US',\n      { maximumFractionDigits: 0 }\n    ).format(number);\n\n  }\n\n\n\n  \/* =========================================================\n     CACHE (localStorage)\n  ========================================================= *\/\n\n  function readCache() {\n\n    try {\n      const raw = localStorage.getItem(CACHE_KEY);\n      return raw ? JSON.parse(raw) : null;\n    } catch (e) {\n      return null;\n    }\n\n  }\n\n  function writeCache(items) {\n\n    try {\n      localStorage.setItem(CACHE_KEY, JSON.stringify(items));\n    } catch (e) {}\n\n  }\n\n\n\n  \/* =========================================================\n     CATEGORY API (fallback only)\n  ========================================================= *\/\n\n  async function getCategories() {\n\n    const response =\n      await fetch(\n        API_BASE +\n        '\/products\/categories?per_page=100&_fields=id,slug,name'\n      );\n\n    if (!response.ok) {\n      throw new Error(\n        'Cannot load WooCommerce categories'\n      );\n    }\n\n    return await response.json();\n\n  }\n\n\n\n  \/* =========================================================\n     PRODUCT API\n  ========================================================= *\/\n\n  async function fetchProducts(categoryId) {\n\n    const url =\n      API_BASE +\n      '\/products' +\n      '?category=' +\n      encodeURIComponent(categoryId) +\n      '&per_page=100' +\n      '&_fields=' + FIELDS;\n\n    const response =\n      await fetch(url);\n\n    if (!response.ok) {\n      throw new Error(\n        'Cannot load sauna equipment products'\n      );\n    }\n\n    return await response.json();\n\n  }\n\n\n\n  \/* =========================================================\n     CATEGORY MATCHING\n  ========================================================= *\/\n\n  function categoryMatchesRule(category, rule) {\n\n    const slug =\n      normalizeText(category.slug);\n\n    const name =\n      normalizeText(category.name);\n\n    const exactNameMatch =\n      rule.names.some(\n        value => name === normalizeText(value)\n      );\n\n    const slugMatch =\n      rule.slugHints.some(value => {\n\n        const hint =\n          normalizeText(value);\n\n        return (\n          slug === hint ||\n          slug.startsWith(hint + '-') ||\n          slug.includes(hint)\n        );\n\n      });\n\n    return (\n      exactNameMatch ||\n      slugMatch\n    );\n\n  }\n\n\n\n  function getProductFilters(product) {\n\n    if (!Array.isArray(product.categories)) {\n      return [];\n    }\n\n    const matches = [];\n\n    Object.entries(FILTER_RULES)\n      .forEach(([filterKey, rule]) => {\n\n        const matched =\n          product.categories.some(\n            category =>\n              categoryMatchesRule(category, rule)\n          );\n\n        if (matched) {\n          matches.push(filterKey);\n        }\n\n      });\n\n    return [...new Set(matches)];\n\n  }\n\n\n\n  function getProductType(filters) {\n\n    if (filters.length) {\n\n      const rule =\n        FILTER_RULES[filters[0]];\n\n      if (rule && rule.label) {\n        return rule.label;\n      }\n\n    }\n\n    return '\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32';\n\n  }\n\n\n\n  \/* =========================================================\n     SLIM DOWN DATA FOR CACHE\n  ========================================================= *\/\n\n  function simplify(product) {\n\n    const image =\n      Array.isArray(product.images) && product.images[0]\n        ? product.images[0]\n        : null;\n\n    const filters =\n      getProductFilters(product);\n\n    return {\n      name: product.name || '',\n      url: product.permalink || '#',\n      description: cleanHTML(product.short_description),\n      price: formatPrice(product),\n      image: image ? image.src : '',\n      srcset: image ? image.srcset || '' : '',\n      filters: filters,\n      type: getProductType(filters)\n    };\n\n  }\n\n\n\n  \/* =========================================================\n     CREATE PRODUCT CARD\n  ========================================================= *\/\n\n  function createCard(item, index) {\n\n    const name = escapeHTML(item.name);\n    const url = escapeHTML(item.url);\n\n    \/\/ first row loads immediately, the rest lazily\n    const loading =\n      index < 3\n        ? 'loading=\"eager\" fetchpriority=\"high\"'\n        : 'loading=\"lazy\"';\n\n    return `\n      <article class=\"slim-product-card ${item.filters.join(' ')}\">\n\n        <a class=\"slim-product-image\" href=\"${url}\" aria-label=\"${name}\">\n          ${\n            item.image\n              ? `<img\n                  src=\"${escapeHTML(item.image)}\"\n                  ${item.srcset ? `srcset=\"${escapeHTML(item.srcset)}\"` : ''}\n                  sizes=\"(max-width:1024px) 50vw, 33vw\"\n                  alt=\"${name}\"\n                  ${loading}\n                  decoding=\"async\"\n                >`\n              : ''\n          }\n        <\/a>\n\n        <div class=\"slim-product-body\">\n\n          <div class=\"slim-product-type\">\n            ${escapeHTML(item.type)}\n          <\/div>\n\n          <h3 class=\"slim-product-title\">\n            <a href=\"${url}\">${name}<\/a>\n          <\/h3>\n\n          <div class=\"slim-product-description\">\n            ${escapeHTML(item.description)}\n          <\/div>\n\n          <div class=\"slim-product-divider\"><\/div>\n\n          <a class=\"slim-product-footer\" href=\"${url}\">\n\n            <div class=\"slim-product-price\">\n              ${\n                item.price\n                  ? `<span class=\"slim-from\">From<\/span>\n                     <span class=\"slim-price-value\">THB ${item.price}<\/span>`\n                  : `<span class=\"slim-from\">View product<\/span>`\n              }\n            <\/div>\n\n            <span class=\"slim-arrow\">\u2192<\/span>\n\n          <\/a>\n\n        <\/div>\n\n      <\/article>\n    `;\n\n  }\n\n\n\n  \/* =========================================================\n     FILTER (show \/ hide + empty message)\n  ========================================================= *\/\n\n  function applyFilter() {\n\n    const cards =\n      grid.querySelectorAll('.slim-product-card');\n\n    let visibleCount = 0;\n\n    cards.forEach(card => {\n\n      const show =\n        activeFilter === 'all' ||\n        card.classList.contains(activeFilter);\n\n      card.style.display = show ? '' : 'none';\n\n      if (show) {\n        visibleCount++;\n      }\n\n    });\n\n    const oldEmpty =\n      grid.querySelector('.slim-filter-empty');\n\n    if (oldEmpty) {\n      oldEmpty.remove();\n    }\n\n    if (cards.length && !visibleCount) {\n\n      const empty =\n        document.createElement('div');\n\n      empty.className = 'slim-filter-empty';\n      empty.textContent = '\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e19\u0e2b\u0e21\u0e27\u0e14\u0e19\u0e35\u0e49';\n\n      grid.appendChild(empty);\n\n    }\n\n  }\n\n\n  function setupFilters() {\n\n    const buttons =\n      section.querySelectorAll('.slim-filter-btn');\n\n    buttons.forEach(button => {\n\n      button.addEventListener('click', function () {\n\n        buttons.forEach(btn =>\n          btn.classList.remove('active')\n        );\n\n        this.classList.add('active');\n\n        activeFilter = this.dataset.filter;\n\n        applyFilter();\n\n        if (window.matchMedia('(max-width:767px)').matches) {\n\n          this.scrollIntoView({\n            behavior:'smooth',\n            block:'nearest',\n            inline:'center'\n          });\n\n        }\n\n      });\n\n    });\n\n  }\n\n\n\n  \/* =========================================================\n     RENDER\n  ========================================================= *\/\n\n  function renderProducts(items) {\n\n    if (!items.length) {\n\n      grid.innerHTML = `\n        <div class=\"slim-no-products\">\n          \u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e19\u0e2b\u0e21\u0e27\u0e14\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32\n        <\/div>\n      `;\n\n      return;\n    }\n\n    grid.innerHTML =\n      items.map(createCard).join('');\n\n    applyFilter();\n\n  }\n\n\n\n  \/* =========================================================\n     FIND PARENT CATEGORY (fallback only)\n  ========================================================= *\/\n\n  function findSaunaEquipmentCategory(categories) {\n\n    return categories.find(category => {\n\n      const name =\n        normalizeText(category.name);\n\n      const slug =\n        normalizeText(category.slug);\n\n      const nameMatch =\n        PARENT_CATEGORY_NAMES.some(\n          value => name === normalizeText(value)\n        );\n\n      const slugMatch =\n        PARENT_CATEGORY_SLUG_HINTS.some(value => {\n\n          const hint =\n            normalizeText(value);\n\n          return (\n            slug === hint ||\n            slug.startsWith(hint + '-')\n          );\n\n        });\n\n      return (\n        nameMatch ||\n        slugMatch\n      );\n\n    });\n\n  }\n\n\n  async function getProducts() {\n\n    if (CATEGORY_ID) {\n      return fetchProducts(CATEGORY_ID);\n    }\n\n    const category =\n      findSaunaEquipmentCategory(await getCategories());\n\n    if (!category) {\n      throw new Error(\n        '\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2b\u0e21\u0e27\u0e14 WooCommerce: \u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32'\n      );\n    }\n\n    return fetchProducts(category.id);\n\n  }\n\n\n\n  \/* =========================================================\n     INIT\n     1) show cached products instantly (if any)\n     2) fetch fresh data in background\n     3) re-render only if something changed\n  ========================================================= *\/\n\n  async function init() {\n\n    setupFilters();\n\n    const cached = readCache();\n\n    if (Array.isArray(cached) && cached.length) {\n      renderProducts(cached);\n    }\n\n    try {\n\n      const products = await getProducts();\n\n      const items = products.map(simplify);\n\n      if (JSON.stringify(items) !== JSON.stringify(cached)) {\n        renderProducts(items);\n        writeCache(items);\n      }\n\n    } catch (error) {\n\n      console.error(\n        'SLIM Sauna Equipment:',\n        error\n      );\n\n      if (!cached || !cached.length) {\n        grid.innerHTML = `\n          <div class=\"slim-error\">\n            \u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32\u0e44\u0e14\u0e49\n          <\/div>\n        `;\n      }\n\n    }\n\n  }\n\n\n  init();\n\n\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PRODUCTS \/ Sauna Equipment Sauna Equipment Warmth for a healthier you. Experience deep relaxation, detox and better wellbeing \u2014 anytime, anywhere. Our blanket sauna combines. gentle, consistent heat with a comfortable, easy-to-use design for your everyday wellness routine. \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 \u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e40\u0e2a\u0e23\u0e34\u0e21 \u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19 \u0e23\u0e30\u0e1a\u0e1a\u0e16\u0e48\u0e32\u0e19\u0e2b\u0e34\u0e19 \u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e17<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2618","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages\/2618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/comments?post=2618"}],"version-history":[{"count":19,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages\/2618\/revisions"}],"predecessor-version":[{"id":4086,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages\/2618\/revisions\/4086"}],"wp:attachment":[{"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/media?parent=2618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}