{"id":1382,"date":"2026-09-30T22:58:58","date_gmt":"2026-09-30T15:58:58","guid":{"rendered":"https:\/\/slimthailand.com\/?page_id=1382"},"modified":"2026-11-02T12:34:39","modified_gmt":"2026-11-02T05:34:39","slug":"page-1382","status":"publish","type":"page","link":"https:\/\/www.slimthailand.com\/en\/page-1382\/","title":{"rendered":"Indoor Sauna"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1382\" class=\"elementor elementor-1382\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-59d162d e-con-full e-flex e-con e-parent\" data-id=\"59d162d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-692baef elementor-widget elementor-widget-html\" data-id=\"692baef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\r\n     SLIM | INDOOR SAUNA PRODUCT HERO\r\n     READY TO COPY & 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-indoor-hero,\r\n#slim-indoor-hero * {\r\n    box-sizing: border-box;\r\n    font-family: 'Montserrat', sans-serif !important;\r\n}\r\n\r\n#slim-indoor-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-indoor-hero .sih-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-20261029-111530.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:\r\n        transform 1.8s cubic-bezier(.2,.7,.2,1);\r\n}\r\n\r\n\r\n#slim-indoor-hero:hover .sih-bg {\r\n    transform: scale(1.015);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   LEFT CREAM GRADIENT\r\n========================================================= *\/\r\n\r\n#slim-indoor-hero .sih-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,.99) 30%,\r\n            rgba(247,244,238,.95) 36%,\r\n            rgba(247,244,238,.80) 43%,\r\n            rgba(247,244,238,.52) 50%,\r\n            rgba(247,244,238,.20) 57%,\r\n            rgba(247,244,238,0) 66%\r\n        );\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CONTENT WRAPPER\r\n========================================================= *\/\r\n\r\n#slim-indoor-hero .sih-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-indoor-hero .sih-content {\r\n    width: 46%;\r\n    max-width: 610px;\r\n\r\n    transform: translateY(-3px);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BREADCRUMB\r\n========================================================= *\/\r\n\r\n#slim-indoor-hero .sih-breadcrumb {\r\n    display: flex;\r\n    align-items: center;\r\n\r\n    gap: 9px;\r\n\r\n    margin:\r\n        0\r\n        0\r\n        18px;\r\n\r\n    color: #68635d;\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-indoor-hero .sih-breadcrumb-separator {\r\n    opacity: .45;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TITLE\r\n========================================================= *\/\r\n\r\n#slim-indoor-hero .sih-title {\r\n    margin: 0;\r\n\r\n    color: #252422;\r\n\r\n    font-size:\r\n        clamp(46px, 4.5vw, 70px);\r\n\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-indoor-hero .sih-subtitle {\r\n    max-width: 470px;\r\n\r\n    margin:\r\n        14px\r\n        0\r\n        0;\r\n\r\n    color: #625d57;\r\n\r\n    font-size:\r\n        clamp(20px, 1.55vw, 25px);\r\n\r\n    font-weight: 300;\r\n\r\n    line-height: 1.38;\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-indoor-hero .sih-description {\r\n    max-width: 500px;\r\n\r\n    margin:\r\n        24px\r\n        0\r\n        0;\r\n\r\n    color: #7f7972;\r\n\r\n    font-size:\r\n        clamp(14px, 1.05vw, 17px);\r\n\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-indoor-hero .sih-breadcrumb,\r\n#slim-indoor-hero .sih-title,\r\n#slim-indoor-hero .sih-subtitle,\r\n#slim-indoor-hero .sih-description {\r\n    opacity: 0;\r\n\r\n    transform:\r\n        translateY(18px);\r\n\r\n    animation:\r\n        sihFadeUp .8s ease forwards;\r\n}\r\n\r\n\r\n#slim-indoor-hero .sih-title {\r\n    animation-delay: .08s;\r\n}\r\n\r\n\r\n#slim-indoor-hero .sih-subtitle {\r\n    animation-delay: .16s;\r\n}\r\n\r\n\r\n#slim-indoor-hero .sih-description {\r\n    animation-delay: .24s;\r\n}\r\n\r\n\r\n@keyframes sihFadeUp {\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-indoor-hero {\r\n        height: 520px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-inner {\r\n        padding:\r\n            45px\r\n            45px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-content {\r\n        width: 52%;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-bg {\r\n        background-position:\r\n            63% center;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-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,.91) 42%,\r\n                rgba(247,244,238,.67) 54%,\r\n                rgba(247,244,238,.26) 69%,\r\n                rgba(247,244,238,0) 84%\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-indoor-hero {\r\n        height: 680px;\r\n        min-height: 680px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-bg {\r\n        background-image:\r\n            url('https:\/\/www.slimthailand.com\/wp-content\/uploads\/2026\/10\/media-20261030-123939.png');\r\n\r\n        background-size: cover;\r\n\r\n        background-position:\r\n            center center;\r\n\r\n        background-repeat: no-repeat;\r\n    }\r\n\r\n\r\n    \/* \u0e40\u0e1f\u0e14\u0e04\u0e23\u0e35\u0e21\u0e2a\u0e31\u0e49\u0e19\u0e25\u0e07 \u2014 \u0e44\u0e21\u0e48\u0e01\u0e34\u0e19\u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07 *\/\r\n\r\n    #slim-indoor-hero .sih-overlay {\r\n\r\n        background:\r\n            linear-gradient(\r\n                180deg,\r\n\r\n                rgba(247,244,238,.98) 0%,\r\n                rgba(247,244,238,.94) 14%,\r\n                rgba(247,244,238,.78) 24%,\r\n                rgba(247,244,238,.52) 32%,\r\n                rgba(247,244,238,.25) 40%,\r\n                rgba(247,244,238,.08) 46%,\r\n                rgba(247,244,238,0) 52%\r\n            );\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-inner {\r\n        align-items: flex-start;\r\n\r\n        padding:\r\n            48px\r\n            22px\r\n            28px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-content {\r\n        width: 100%;\r\n        max-width: 100%;\r\n\r\n        transform: none;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-breadcrumb {\r\n        margin-bottom: 14px;\r\n\r\n        font-size: 9px;\r\n\r\n        gap: 7px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-title {\r\n        max-width: 370px;\r\n\r\n        font-size:\r\n            clamp(39px, 10.5vw, 49px);\r\n\r\n        line-height: 1.03;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-subtitle {\r\n        max-width: 330px;\r\n\r\n        margin-top: 10px;\r\n\r\n        font-size: 17px;\r\n\r\n        line-height: 1.4;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-description {\r\n        max-width: 340px;\r\n\r\n        margin-top: 18px;\r\n\r\n        font-size: 12.5px;\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-indoor-hero {\r\n        height: 650px;\r\n        min-height: 650px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-bg {\r\n\r\n        background-image:\r\n            url('https:\/\/www.slimthailand.com\/wp-content\/uploads\/2026\/10\/media-20261030-123939.png');\r\n\r\n        background-position:\r\n            center center;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-inner {\r\n        padding:\r\n            40px\r\n            18px\r\n            24px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-title {\r\n        font-size: 37px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-subtitle {\r\n        max-width: 290px;\r\n\r\n        font-size: 16px;\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-description {\r\n        max-width: 310px;\r\n\r\n        margin-top: 15px;\r\n\r\n        font-size: 11.5px;\r\n\r\n        line-height: 1.5;\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-indoor-hero *,\r\n    #slim-indoor-hero *::before,\r\n    #slim-indoor-hero *::after {\r\n\r\n        animation: none !important;\r\n        transition: none !important;\r\n\r\n    }\r\n\r\n\r\n    #slim-indoor-hero .sih-breadcrumb,\r\n    #slim-indoor-hero .sih-title,\r\n    #slim-indoor-hero .sih-subtitle,\r\n    #slim-indoor-hero .sih-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<!-- =========================================================\r\n     HTML\r\n========================================================= -->\r\n\r\n<section id=\"slim-indoor-hero\">\r\n\r\n\r\n    <!-- BACKGROUND IMAGE -->\r\n    <div class=\"sih-bg\"><\/div>\r\n\r\n\r\n    <!-- CREAM FADE -->\r\n    <div class=\"sih-overlay\"><\/div>\r\n\r\n\r\n    <!-- CONTENT -->\r\n    <div class=\"sih-inner\">\r\n\r\n\r\n        <div class=\"sih-content\">\r\n\r\n\r\n            <div class=\"sih-breadcrumb\">\r\n\r\n                <span>\r\n                    PRODUCTS\r\n                <\/span>\r\n\r\n\r\n                <span class=\"sih-breadcrumb-separator\">\r\n                    \/\r\n                <\/span>\r\n\r\n\r\n                <span>\r\n                    INDOOR SAUNA\r\n                <\/span>\r\n\r\n            <\/div>\r\n\r\n\r\n            <h1 class=\"sih-title\">\r\n                Indoor Sauna\r\n            <\/h1>\r\n\r\n\r\n            <p class=\"sih-subtitle\">\r\n                A refined wellness experience<br>\r\n                for modern living.\r\n            <\/p>\r\n\r\n\r\n            <p class=\"sih-description\">\r\n\r\n                Bring the benefits of sauna into your home.<br>\r\n\r\n                Our indoor sauna collection combines\r\n                premium craftsmanship, modern design\r\n                and consistent heat therapy for your\r\n                everyday wellness routine.\r\n\r\n            <\/p>\r\n\r\n\r\n        <\/div>\r\n\r\n\r\n    <\/div>\r\n\r\n\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4a6f35 elementor-widget elementor-widget-html\" data-id=\"b4a6f35\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =========================================================\n   SLIM \u2014 INDOOR SAUNA\n   READY TO PASTE (fast-load version)\n========================================================= *\/\n\n#slim-indoor-products{\n  width:100%;\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-indoor-products *,\n#slim-indoor-products *::before,\n#slim-indoor-products *::after{\n  box-sizing:border-box;\n}\n\n\n\/* =========================================================\n   FILTER\n========================================================= *\/\n\n#slim-indoor-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-indoor-products .slim-filter::-webkit-scrollbar{\n  display:none;\n}\n\n#slim-indoor-products .slim-filter-btn{\n  all:unset !important;\n\n  position:relative !important;\n\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n\n  height:44px !important;\n\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\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\n  cursor:pointer !important;\n  white-space:nowrap !important;\n}\n\n#slim-indoor-products .slim-filter-btn:first-child{\n  padding-left:18px !important;\n}\n\n#slim-indoor-products .slim-filter-btn:not(:last-child)::after{\n  content:\"\";\n  position:absolute;\n  right:0;\n  top:50%;\n  transform:translateY(-50%);\n\n  width:1px;\n  height:18px;\n\n  background:#ddd7ce;\n}\n\n#slim-indoor-products .slim-filter-btn.active,\n#slim-indoor-products .slim-filter-btn:hover{\n  color:#342e29 !important;\n}\n\n\n\/* =========================================================\n   GRID\n========================================================= *\/\n\n#slim-indoor-products .slim-products-grid{\n  width:100%;\n\n  display:grid !important;\n\n  grid-template-columns:\n    repeat(3,minmax(0,1fr)) !important;\n\n  gap:14px !important;\n\n  margin:0 !important;\n  padding:0 !important;\n}\n\n\n\/* =========================================================\n   CARD\n========================================================= *\/\n\n#slim-indoor-products .slim-product-card{\n  width:100%;\n  min-width:0;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  display:flex;\n  flex-direction:column;\n\n  background:#f8f5ef !important;\n\n  border:1px solid #e3ddd4 !important;\n  border-radius:0 !important;\n  box-shadow:none !important;\n\n  overflow:hidden;\n}\n\n\n\/* =========================================================\n   IMAGE\n========================================================= *\/\n\n#slim-indoor-products .slim-product-image{\n  display:block !important;\n\n  width:100% !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  overflow:hidden;\n\n  background:#f5f1e9 !important;\n\n  text-decoration:none !important;\n}\n\n#slim-indoor-products .slim-product-image img{\n  display:block !important;\n\n  width:100% !important;\n  height:auto !important;\n\n  \/* \u0e40\u0e15\u0e47\u0e21\u0e04\u0e27\u0e32\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e4c\u0e14 \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e08\u0e23\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e20\u0e32\u0e1e *\/\n  aspect-ratio:auto !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  \/* \u0e44\u0e21\u0e48\u0e04\u0e23\u0e2d\u0e1b\u0e15\u0e31\u0e27\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 *\/\n  object-fit:contain !important;\n  object-position:center center !important;\n\n  border:0 !important;\n  border-radius:0 !important;\n\n  transform:none !important;\n  transition:none !important;\n}\n\n#slim-indoor-products\n.slim-product-card:hover\n.slim-product-image img{\n  transform:none !important;\n}\n\n\n\/* =========================================================\n   CONTENT\n========================================================= *\/\n\n#slim-indoor-products .slim-product-body{\n  display:flex;\n\n  flex:1;\n\n  flex-direction:column;\n\n  min-height:170px;\n\n  margin:0 !important;\n\n  padding:17px 23px 18px !important;\n\n  background:#f8f5ef !important;\n}\n\n\n\/* TYPE *\/\n\n#slim-indoor-products .slim-product-type{\n  margin:0 0 7px !important;\n  padding:0 !important;\n\n  font-size:9px !important;\n\n  line-height:1.2 !important;\n\n  font-weight:500 !important;\n\n  letter-spacing:.055em !important;\n\n  color:#9c8d80 !important;\n}\n\n\n\/* TITLE *\/\n\n#slim-indoor-products .slim-product-title{\n  margin:0 !important;\n  padding:0 !important;\n\n  font-size:18px !important;\n\n  line-height:1.28 !important;\n\n  font-weight:400 !important;\n\n  letter-spacing:-.015em !important;\n}\n\n#slim-indoor-products .slim-product-title a{\n  color:#332d28 !important;\n\n  text-decoration:none !important;\n\n  font-weight:400 !important;\n}\n\n\n\/* DESCRIPTION *\/\n\n#slim-indoor-products .slim-product-description{\n  min-height:30px;\n\n  margin:5px 0 0 !important;\n\n  padding:0 !important;\n\n  font-size:10px !important;\n\n  line-height:1.55 !important;\n\n  font-weight:300 !important;\n\n  color:#a3968a !important;\n}\n\n\n\/* DIVIDER *\/\n\n#slim-indoor-products .slim-product-divider{\n  width:100% !important;\n\n  height:1px !important;\n\n  margin:13px 0 0 !important;\n\n  padding:0 !important;\n\n  background:#ded8cf !important;\n\n  border:0 !important;\n}\n\n\n\/* =========================================================\n   FOOTER \/ PRICE\n========================================================= *\/\n\n#slim-indoor-products .slim-product-footer{\n  width:100% !important;\n\n  display:flex !important;\n\n  align-items:center !important;\n\n  justify-content:space-between !important;\n\n  margin-top:auto !important;\n\n  padding-top:18px !important;\n\n  color:inherit !important;\n\n  text-decoration:none !important;\n}\n\n#slim-indoor-products .slim-product-price{\n  display:flex !important;\n\n  align-items:baseline !important;\n\n  gap:3px !important;\n\n  white-space:nowrap !important;\n}\n\n#slim-indoor-products .slim-from{\n  font-size:10px !important;\n\n  line-height:1 !important;\n\n  font-weight:300 !important;\n\n  color:#a29488 !important;\n}\n\n#slim-indoor-products .slim-price-value{\n  font-size:11px !important;\n\n  line-height:1 !important;\n\n  font-weight:500 !important;\n\n  color:#332d28 !important;\n}\n\n#slim-indoor-products .slim-arrow{\n  display:inline-block !important;\n\n  font-size:17px !important;\n\n  line-height:1 !important;\n\n  font-weight:300 !important;\n\n  color:#433a33 !important;\n\n  transition:transform .25s ease;\n}\n\n#slim-indoor-products\n.slim-product-footer:hover\n.slim-arrow{\n  transform:translateX(3px);\n}\n\n\n\/* =========================================================\n   SKELETON (shown instantly while loading)\n========================================================= *\/\n\n#slim-indoor-products .slim-skeleton .slim-product-image{\n  aspect-ratio:1 \/ 1;\n}\n\n#slim-indoor-products .slim-skeleton .slim-product-image,\n#slim-indoor-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:slimIndoorShimmer 1.2s ease-in-out infinite;\n}\n\n#slim-indoor-products .slim-sk-line{\n  display:block;\n  height:10px;\n  margin:0 0 10px;\n}\n\n@keyframes slimIndoorShimmer{\n  0%{background-position:200% 0}\n  100%{background-position:-200% 0}\n}\n\n\n\/* =========================================================\n   STATUS\n========================================================= *\/\n\n#slim-indoor-products .slim-loading,\n#slim-indoor-products .slim-no-products,\n#slim-indoor-products .slim-error{\n  grid-column:1 \/ -1;\n\n  padding:50px 20px;\n\n  text-align:center;\n\n  font-size:12px;\n\n  color:#8f8174;\n}\n\n\n\/* =========================================================\n   TABLET\n========================================================= *\/\n\n@media (max-width:1024px){\n\n  #slim-indoor-products{\n    padding-left:20px;\n    padding-right:20px;\n  }\n\n  #slim-indoor-products .slim-products-grid{\n    grid-template-columns:\n      repeat(2,minmax(0,1fr)) !important;\n\n    gap:12px !important;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE \u2014 2 PRODUCTS \/ ROW\n========================================================= *\/\n\n@media (max-width:767px){\n\n  #slim-indoor-products{\n    width:100%;\n\n    padding:0 12px 20px;\n  }\n\n\n  \/* FILTER *\/\n\n  #slim-indoor-products .slim-filter{\n    margin-bottom:14px !important;\n  }\n\n  #slim-indoor-products .slim-filter-btn{\n    height:40px !important;\n\n    padding:0 14px !important;\n\n    font-size:8px !important;\n  }\n\n  #slim-indoor-products\n  .slim-filter-btn:first-child{\n    padding-left:8px !important;\n  }\n\n\n  \/* TWO COLUMNS *\/\n\n  #slim-indoor-products .slim-products-grid{\n    grid-template-columns:\n      repeat(2,minmax(0,1fr)) !important;\n\n    gap:8px !important;\n  }\n\n\n  \/* CARD *\/\n\n  #slim-indoor-products .slim-product-card{\n    min-width:0 !important;\n  }\n\n\n  \/* IMAGE *\/\n\n  #slim-indoor-products .slim-product-image img{\n    width:100% !important;\n    height:auto !important;\n\n    \/* \u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e43\u0e0a\u0e49\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e08\u0e23\u0e34\u0e07\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19 Desktop *\/\n    aspect-ratio:auto !important;\n\n    object-fit:contain !important;\n    object-position:center center !important;\n\n    transform:none !important;\n  }\n\n\n  \/* CONTENT *\/\n\n  #slim-indoor-products .slim-product-body{\n    min-height:145px;\n\n    padding:11px 11px 12px !important;\n  }\n\n  #slim-indoor-products .slim-product-type{\n    font-size:7px !important;\n\n    margin-bottom:5px !important;\n  }\n\n  #slim-indoor-products .slim-product-title{\n    font-size:13px !important;\n\n    line-height:1.3 !important;\n  }\n\n  #slim-indoor-products .slim-product-description{\n    min-height:26px;\n\n    margin-top:4px !important;\n\n    font-size:8px !important;\n\n    line-height:1.45 !important;\n\n    display:-webkit-box;\n\n    -webkit-line-clamp:2;\n\n    -webkit-box-orient:vertical;\n\n    overflow:hidden;\n  }\n\n  #slim-indoor-products .slim-product-divider{\n    margin-top:9px !important;\n  }\n\n  #slim-indoor-products .slim-product-footer{\n    padding-top:11px !important;\n  }\n\n  #slim-indoor-products .slim-from{\n    font-size:7px !important;\n  }\n\n  #slim-indoor-products .slim-price-value{\n    font-size:8px !important;\n  }\n\n  #slim-indoor-products .slim-arrow{\n    font-size:14px !important;\n  }\n\n}\n<\/style>\n\n\n<!-- =========================================================\n     HTML\n========================================================= -->\n\n<section id=\"slim-indoor-products\">\n\n  <div class=\"slim-filter\">\n\n    <button\n      class=\"slim-filter-btn active\"\n      data-filter=\"all\">\n      ALL\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      data-filter=\"one-person\">\n      1 PERSON\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      data-filter=\"two-person\">\n      2 PERSON\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      data-filter=\"three-person\">\n      3+ PERSON\n    <\/button>\n\n    <button\n      class=\"slim-filter-btn\"\n      data-filter=\"custom-size\">\n      CUSTOM SIZE\n    <\/button>\n\n  <\/div>\n\n\n  <div\n    class=\"slim-products-grid\"\n    id=\"slimIndoorGrid\">\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  const API_BASE =\n    window.location.origin +\n    '\/wp-json\/wc\/store\/v1';\n\n  const CATEGORY_SLUG =\n    'indoor-sauna';\n\n  \/\/ Optional: put the category ID here (e.g. 42) to skip slug lookup entirely\n  const CATEGORY_ID = null;\n\n  const CACHE_KEY =\n    'slim_products_' + CATEGORY_SLUG + '_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  const grid =\n    document.getElementById('slimIndoorGrid');\n\n  if(!grid){\n    return;\n  }\n\n  let activeFilter = 'all';\n\n\n\n  \/* ======================================================\n     CLEAN HTML\n  ====================================================== *\/\n\n  function cleanHTML(html){\n\n    if(!html){\n      return '';\n    }\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\n  \/* ======================================================\n     ESCAPE\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     PRODUCTS\n     (one request, category by slug or ID)\n  ====================================================== *\/\n\n  async function fetchProducts(category){\n\n    const response =\n      await fetch(\n        API_BASE +\n        '\/products?category=' +\n        encodeURIComponent(category) +\n        '&per_page=100' +\n        '&_fields=' + FIELDS\n      );\n\n    if(!response.ok){\n      throw new Error('Cannot load products');\n    }\n\n    return await response.json();\n\n  }\n\n  async function getCategoryIdBySlug(){\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('Cannot load categories');\n    }\n\n    const categories =\n      await response.json();\n\n    const found =\n      categories.find(function(category){\n\n        const slug =\n          String(category.slug || '').toLowerCase();\n\n        const name =\n          String(category.name || '').trim().toLowerCase();\n\n        return (\n          slug === CATEGORY_SLUG ||\n          name === 'indoor sauna'\n        );\n\n      });\n\n    if(!found){\n      throw new Error('Indoor Sauna category not found');\n    }\n\n    return found.id;\n\n  }\n\n  async function getProducts(){\n\n    if(CATEGORY_ID){\n      return fetchProducts(CATEGORY_ID);\n    }\n\n    \/\/ Store API accepts slugs directly -> skips the categories request\n    try{\n      const products = await fetchProducts(CATEGORY_SLUG);\n      if(Array.isArray(products) && products.length){\n        return products;\n      }\n    }catch(e){}\n\n    \/\/ Fallback: old behaviour (look up the ID first)\n    return fetchProducts(await getCategoryIdBySlug());\n\n  }\n\n\n\n  \/* ======================================================\n     FILTER CATEGORY DETECTION\n\n     \u0e43\u0e0a\u0e49\u0e17\u0e31\u0e49\u0e07 NAME + SLUG\n     \u0e08\u0e36\u0e07\u0e23\u0e2d\u0e07\u0e23\u0e31\u0e1a\u0e01\u0e23\u0e13\u0e35 WordPress \u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 slug\n     \u0e40\u0e0a\u0e48\u0e19 1-person-2\n  ====================================================== *\/\n\n  function getSeries(product){\n\n    if(!Array.isArray(product.categories)){\n      return [];\n    }\n\n    const classes = [];\n\n    product.categories.forEach(function(category){\n\n      const slug =\n        String(category.slug || '').toLowerCase();\n\n      const name =\n        String(category.name || '')\n        .trim()\n        .toLowerCase()\n        .replace(\/\\s+\/g,' ');\n\n\n      \/* 1 PERSON *\/\n      if(\n        slug === '1-person' ||\n        slug.startsWith('1-person-') ||\n        slug === 'one-person' ||\n        slug.startsWith('one-person-') ||\n        name === '1 person' ||\n        name === 'one person'\n      ){\n        classes.push('one-person');\n      }\n\n\n      \/* 2 PERSON *\/\n      if(\n        slug === '2-person' ||\n        slug.startsWith('2-person-') ||\n        slug === 'two-person' ||\n        slug.startsWith('two-person-') ||\n        name === '2 person' ||\n        name === '2 persons' ||\n        name === 'two person'\n      ){\n        classes.push('two-person');\n      }\n\n\n      \/* 3+ PERSON *\/\n      if(\n        slug === '3-person' ||\n        slug.startsWith('3-person-') ||\n        slug === '3-plus-person' ||\n        slug.startsWith('3-plus-person-') ||\n        slug === '3-person-plus' ||\n        slug.startsWith('3-person-plus-') ||\n        name === '3+ person' ||\n        name === '3+ persons' ||\n        name === '3 person' ||\n        name === '3+person'\n      ){\n        classes.push('three-person');\n      }\n\n\n      \/* CUSTOM SIZE *\/\n      if(\n        slug === 'custom-size' ||\n        slug.startsWith('custom-size-') ||\n        name === 'custom size'\n      ){\n        classes.push('custom-size');\n      }\n\n    });\n\n    return [...new Set(classes)];\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    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      series: getSeries(product)\n    };\n\n  }\n\n\n\n  \/* ======================================================\n     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    const hidden =\n      activeFilter !== 'all' && item.series.indexOf(activeFilter) === -1\n        ? ' style=\"display:none\"'\n        : '';\n\n    return `\n      <article class=\"slim-product-card ${item.series.join(' ')}\"${hidden}>\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            INDOOR SAUNA\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              <span class=\"slim-from\">From<\/span>\n              ${\n                item.price\n                  ? `<span class=\"slim-price-value\">THB ${item.price}<\/span>`\n                  : ''\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     RENDER\n  ====================================================== *\/\n\n  function renderProducts(items){\n\n    if(!items.length){\n\n      grid.innerHTML = `\n        <div class=\"slim-no-products\">\n          No products found.\n        <\/div>\n      `;\n\n      return;\n\n    }\n\n    grid.innerHTML =\n      items.map(createCard).join('');\n\n  }\n\n\n\n  \/* ======================================================\n     FILTER\n  ====================================================== *\/\n\n  function setupFilters(){\n\n    const buttons =\n      document.querySelectorAll(\n        '#slim-indoor-products .slim-filter-btn'\n      );\n\n    buttons.forEach(function(button){\n\n      button.addEventListener('click', function(){\n\n        buttons.forEach(function(btn){\n          btn.classList.remove('active');\n        });\n\n        this.classList.add('active');\n\n        activeFilter = this.dataset.filter;\n\n        document\n          .querySelectorAll(\n            '#slim-indoor-products .slim-product-card'\n          )\n          .forEach(function(card){\n\n            card.style.display =\n              activeFilter === 'all' ||\n              card.classList.contains(activeFilter)\n                ? ''\n                : 'none';\n\n          });\n\n      });\n\n    });\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('SLIM Indoor Sauna:', error);\n\n      if(!cached || !cached.length){\n        grid.innerHTML = `\n          <div class=\"slim-error\">\n            Unable to load products.\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 \/ INDOOR SAUNA Indoor Sauna A refined wellness experience for modern living. Bring the benefits of sauna into your home. Our indoor sauna collection combines premium craftsmanship, modern design and consistent heat therapy for your everyday wellness routine. ALL 1 PERSON 2 PERSON 3+ PERSON CUSTOM SIZE<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1382","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages\/1382","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/comments?post=1382"}],"version-history":[{"count":30,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages\/1382\/revisions"}],"predecessor-version":[{"id":4074,"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/pages\/1382\/revisions\/4074"}],"wp:attachment":[{"href":"https:\/\/www.slimthailand.com\/en\/wp-json\/wp\/v2\/media?parent=1382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}