{"id":17317,"date":"2026-05-13T17:30:15","date_gmt":"2026-05-13T17:30:15","guid":{"rendered":"https:\/\/interpoolspa.com\/?page_id=17317"},"modified":"2026-05-13T17:30:38","modified_gmt":"2026-05-13T17:30:38","slug":"estimator-tool-th","status":"publish","type":"page","link":"https:\/\/interpoolspa.com\/th\/estimator-tool-th\/","title":{"rendered":"\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e23\u0e32\u0e04\u0e32 Th"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17317\" class=\"elementor elementor-17317\">\n\t\t\t\t<div class=\"elementor-element elementor-element-957fbf1 e-con-full e-flex e-con e-parent\" data-id=\"957fbf1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70aaaee elementor-widget elementor-widget-html\" data-id=\"70aaaee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\n<!DOCTYPE html>\n<html lang=\"th\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Interpool Spa \u2014 \u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e23\u0e32\u0e04\u0e32\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 Wellness<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Sarabun:wght@300;400;600;700;800&family=Trirong:ital,wght@0,300;0,400;0,600;1,300&display=swap\" rel=\"stylesheet\">\n<style>\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   Interpool Spa - Guided Estimator v21 \u2014 Thai\n   All styles scoped under `.ips-estimator` so the tool can be\n   dropped into an Elementor HTML widget without leaking CSS.\n   No html\/body resets \u2014 host page styles are untouched.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n\n\n.ips-estimator{\n  --ips-gold:#d0b476;\n  --ips-gold-2:#8b7b4d;\n  --ips-gold-soft:rgba(208,180,118,.16);\n  --ips-ink:#1c1208;\n  --ips-text:#211810;\n  --ips-muted:#6e5c4e;\n  --ips-line:rgba(60,42,28,.12);\n  --ips-card-bg:rgba(28,20,13,.52);\n  --ips-card-border:rgba(255,255,255,.10);\n  --ips-card-shadow:0 40px 120px rgba(0,0,0,.45),0 4px 16px rgba(0,0,0,.25);\n  --ips-pad:28px;\n  font-family:'Sarabun', Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif !important;\n  color:#fff;\n  background:#120c08;\n  position:relative;\n  width:100%;\n  min-height:100vh;\n  overflow:visible;\n  isolation:isolate;\n  -webkit-font-smoothing:antialiased;\n  line-height:1.65;\n}\n.ips-estimator *,\n.ips-estimator *::before,\n.ips-estimator *::after{box-sizing:border-box}\n.ips-estimator img{display:block;max-width:100%}\n.ips-estimator button{background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit}\n.ips-estimator input,\n.ips-estimator textarea,\n.ips-estimator select{font:inherit !important;color:inherit !important}\n.ips-estimator a{color:inherit;text-decoration:none}\n\n\/* \u2500\u2500 Stage background \u2500\u2500 *\/\n.ips-stage{position:fixed;inset:0;z-index:0;pointer-events:none}\n.ips-stage-bg{\n  position:absolute;inset:0;\n  background-size:cover;\n  background-position:center center;\n}\n.ips-stage-bg-next{\n  position:absolute;inset:0;\n  background-size:cover;\n  background-position:center center;\n  opacity:0;\n  animation:none;\n}\n@keyframes ips-bg-in{\n  from{opacity:0}\n  to{opacity:1}\n}\n.ips-stage-mask{\n  position:absolute;inset:0;\n  background:linear-gradient(180deg,rgba(10,5,2,.25) 0%,rgba(10,5,2,.50) 45%,rgba(10,5,2,.80) 100%);\n}\n\n\/* \u2500\u2500 Top pills (brand + back-to-site) float above card \u2500\u2500 *\/\n.ips-topbar{\n  position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:4;\n  width:min(1120px,calc(100% - 48px));\n  display:flex;justify-content:space-between;align-items:center;\n  padding:18px 0;gap:12px;pointer-events:none;\n}\n.ips-brand,\n.ips-return{\n  display:inline-flex;align-items:center;gap:8px;\n  padding:9px 14px;border-radius:999px;\n  background:rgba(20,13,8,.55);\n  border:1px solid rgba(255,255,255,.12);\n  backdrop-filter:blur(10px);\n  -webkit-backdrop-filter:blur(10px);\n  font-size:.82rem;font-weight:700;letter-spacing:.01em;\n  pointer-events:auto;\n  color:#fff;\n}\n.ips-brand{\n  padding:10px 16px 10px 14px;\n  gap:12px;\n}\n.ips-brand-logo{\n  display:block;\n  height:42px;\n  width:auto;\n  flex-shrink:0;\n}\n.ips-brand-label{\n  display:inline-flex;align-items:center;\n  padding:8px 12px;border-radius:999px;\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.10);\n  font-size:.82rem;font-weight:800;letter-spacing:.02em;\n  color:#fff;\n  white-space:nowrap;\n}\n.ips-return{font-weight:600;transition:background .18s}\n.ips-return:hover{background:rgba(40,28,18,.75)}\n\n\/* \u2500\u2500 Outer shell centres the glass card \u2500\u2500 *\/\n.ips-shell{\n  position:relative;z-index:2;\n  min-height:100vh;\n  display:flex;align-items:center;justify-content:center;\n  padding:56px 24px 28px;\n}\n\n\/* \u2500\u2500 The glass card \u2500\u2500 *\/\n.ips-card{\n  width:100%;\n  max-width:1120px;\n  height:auto;min-height:0;\n  display:flex;flex-direction:column;\n  background:var(--ips-card-bg);\n  backdrop-filter:blur(24px) saturate(115%);\n  -webkit-backdrop-filter:blur(24px) saturate(115%);\n  border:1px solid var(--ips-card-border);\n  border-radius:28px;\n  box-shadow:var(--ips-card-shadow);\n  overflow:hidden;\n}\n\/* Intro step is short on content \u2014 shrink the card so it doesn't\n   leave a wide dead zone next to the 680px intro column on desktop.\n   Other steps keep the full 1120px for their 3-col grids\/galleries. *\/\n.ips-estimator.ips-at-intro .ips-card{max-width:760px}\n\n\/* Card head holds progress label + bar *\/\n.ips-card-head{\n  flex-shrink:0;\n  display:flex;align-items:center;justify-content:space-between;gap:20px;\n  padding:22px var(--ips-pad) 0;\n}\n.ips-prog-label strong{display:block;font-size:.95rem;font-weight:700;letter-spacing:.005em}\n.ips-prog-label span{display:block;font-size:.76rem;color:rgba(255,255,255,.58);margin-top:2px}\n.ips-prog-track{\n  flex:0 1 320px;max-width:320px;min-width:160px;\n  height:4px;border-radius:999px;\n  background:rgba(255,255,255,.14);overflow:hidden;\n}\n.ips-prog-fill{\n  height:100%;border-radius:999px;\n  background:linear-gradient(90deg,#e2c686,#a08855);\n  transition:width .4s ease;\n}\n\n\/* Slide viewport *\/\n.ips-viewport{flex:0 0 auto;min-height:0;overflow:visible;position:relative}\n.ips-view{\n  min-width:100%;height:auto;\n  padding:26px var(--ips-pad) 24px;\n  overflow:visible;display:flex;flex-direction:column;\n  scrollbar-width:none;\n}\n.ips-view::-webkit-scrollbar{display:none}\n\n\/* \u2500\u2500 Shared typography \u2500\u2500 *\/\n.ips-eyebrow{\n  font-size:.84rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;\n  color:var(--ips-gold);margin-bottom:12px;\n}\n.ips-title{\n  font-family:'Trirong', Georgia, \"Times New Roman\", serif !important;\n  font-size:clamp(2.0rem,3.3vw,2.6rem);line-height:1.18;\n  margin-bottom:12px;text-wrap:balance;\n  color:#fff !important;\n}\n.ips-lead{\n  font-size:1.08rem;color:rgba(255,255,255,.88);line-height:1.7;\n  max-width:58ch;margin-bottom:4px;\n}\n.ips-step-head{margin-bottom:22px;flex-shrink:0}\n\n\/* \u2500\u2500 Action buttons \u2500\u2500 *\/\n.ips-actions{\n  display:flex;gap:16px;flex-wrap:wrap;flex-shrink:0;\n  margin-top:28px;padding-top:20px;align-items:center;\n  border-top:1px solid rgba(255,255,255,.08);\n}\n.ips-actions .ips-btn{min-width:180px}\n.ips-btn{\n  appearance:none;cursor:pointer;\n  min-height:58px;\n  padding:14px 34px;\n  border-radius:999px;\n  font-weight:700;font-size:1rem;letter-spacing:.005em;\n  display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;\n  transition:transform .18s ease,box-shadow .18s ease,background .18s,opacity .18s,border-color .18s,color .18s;\n}\n.ips-btn:hover:not(:disabled){transform:translateY(-1px)}\n.ips-btn:active:not(:disabled){transform:translateY(0)}\n.ips-btn:disabled{opacity:.45;cursor:not-allowed}\n.ips-btn-primary{\n  background:#cfb36f;\n  color:#20150b;\n  border:1px solid rgba(231,213,165,.52);\n  box-shadow:0 14px 30px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.18);\n}\n.ips-btn-primary:hover:not(:disabled){background:#d5bb79;box-shadow:0 16px 34px rgba(0,0,0,.24)}\n.ips-btn-ghost{\n  background:rgba(255,255,255,.04);\n  color:#fff;\n  border:1.5px solid rgba(255,255,255,.18);\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);\n}\n.ips-btn-ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.26)}\n.ips-btn-wa{background:#25d366;color:#fff;box-shadow:0 10px 24px rgba(37,211,102,.25);border:0}\n\n\/* \u2500\u2500\u2500 Step: intro \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-intro{display:flex;flex-direction:column;justify-content:flex-start;max-width:680px}\n.ips-intro .ips-eyebrow{margin-bottom:16px}\n.ips-display{\n  font-family:'Trirong', Georgia, \"Times New Roman\", serif !important;\n  font-size:clamp(2.4rem,4.6vw,3.7rem);line-height:1.12;\n  margin-bottom:18px;text-wrap:balance;\n  color:#fff !important;\n}\n.ips-pills{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 26px}\n.ips-pill{\n  display:inline-flex;align-items:center;gap:9px;\n  padding:9px 14px;border-radius:999px;\n  background:rgba(20,13,8,.55);\n  border:1px solid rgba(255,255,255,.12);\n  font-size:.85rem;\n  backdrop-filter:blur(6px);\n  -webkit-backdrop-filter:blur(6px);\n}\n.ips-pill-dot{width:6px;height:6px;border-radius:50%;background:var(--ips-gold);flex-shrink:0}\n\n\/* \u2500\u2500\u2500 Step: setting (3 image cards) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-choice-grid{\n  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;\n  flex:1;min-height:0;\n}\n.ips-choice{\n  position:relative;border-radius:22px;overflow:hidden;cursor:pointer;\n  min-height:240px;\n  border:2px solid rgba(255,255,255,.10);\n  background:rgba(255,255,255,.04);\n  transition:transform .22s ease,border-color .22s,box-shadow .22s;\n  text-align:left;\n}\n.ips-choice:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.22)}\n.ips-choice.sel{\n  border-color:rgba(208,180,118,.85);\n  box-shadow:0 0 0 3px rgba(208,180,118,.15),0 18px 40px rgba(0,0,0,.25);\n}\n.ips-choice-bg{\n  position:absolute;inset:0;background-size:cover;background-position:center;\n  transform:scale(1.03);transition:transform .4s ease;\n}\n.ips-choice:hover .ips-choice-bg{transform:scale(1.07)}\n.ips-choice::after{\n  content:\"\";position:absolute;inset:0;\n  background:linear-gradient(180deg,rgba(10,5,2,.05) 40%,rgba(10,5,2,.78) 100%);\n}\n.ips-choice-overlay{\n  position:absolute;inset:0;pointer-events:none;\n  background:linear-gradient(180deg,rgba(10,5,2,.05) 40%,rgba(10,5,2,.78) 100%);\n  z-index:0;\n}\n.ips-choice-body{\n  position:absolute;left:0;right:0;bottom:0;z-index:1;padding:16px 18px 18px;\n}\n.ips-choice-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}\n.ips-choice-name{font-size:1.2rem;font-weight:700}\n.ips-choice-desc{font-size:.96rem;color:rgba(255,255,255,.82);line-height:1.6}\n.ips-check{\n  width:26px;height:26px;border-radius:50%;\n  display:grid;place-items:center;\n  border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);\n  font-size:.78rem;font-weight:900;color:transparent;flex-shrink:0;\n  transition:.18s;\n}\n.ips-choice.sel .ips-check{background:var(--ips-gold);border-color:var(--ips-gold);color:var(--ips-ink)}\n\n\/* \u2500\u2500\u2500 Step: build type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-build-wrap{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}\n.ips-build-tabs{\n  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;\n  flex-shrink:0;\n}\n.ips-build-tab{\n  padding:15px 12px;border-radius:14px;\n  background:rgba(255,255,255,.08);\n  border:1.5px solid rgba(255,255,255,.16);\n  color:rgba(255,255,255,.78);\n  font-family:'Sarabun', 'Trirong', Georgia, sans-serif !important;\n  font-weight:600;font-size:clamp(.95rem,1.2vw,1.1rem);letter-spacing:.01em;text-align:center;\n  transition:.18s;\n}\n.ips-build-tab:hover{background:rgba(255,255,255,.14);color:#fff}\n.ips-build-tab.sel{\n  background:var(--ips-gold-soft);\n  border-color:var(--ips-gold);\n  color:#fff;\n  box-shadow:0 6px 18px rgba(0,0,0,.18);\n}\n.ips-build-panel{\n  flex:1;min-height:260px;\n  display:grid;grid-template-columns:.92fr 1.08fr;gap:18px;\n  padding:18px;border-radius:22px;\n  background:rgba(255,255,255,.04);\n  border:1px solid rgba(255,255,255,.09);\n}\n.ips-build-info{display:flex;flex-direction:column;justify-content:center}\n.ips-build-info-eyebrow{\n  font-size:clamp(.72rem,1vw,.82rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;\n  color:var(--ips-gold);margin-bottom:10px;\n}\n.ips-build-info-name{\n  font-family:'Trirong', Georgia, serif !important;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.2;\n  margin-bottom:10px;\n}\n.ips-build-info-desc{\n  font-size:clamp(.9rem,1.2vw,1.04rem);color:rgba(255,255,255,.76);line-height:1.65;margin-bottom:16px;\n}\n.ips-build-info-action{\n  display:inline-flex;align-items:center;gap:8px;\n  padding:10px 14px;border-radius:999px;\n  background:rgba(255,255,255,.10);\n  border:1px solid rgba(255,255,255,.16);\n  color:#fff;font-size:clamp(.85rem,1vw,.96rem);font-weight:700;\n  width:fit-content;transition:.18s;\n}\n.ips-build-info-action:hover{background:rgba(255,255,255,.18)}\n.ips-gallery-icon{display:grid;grid-template-columns:1fr 1fr;gap:2px;width:14px;flex-shrink:0}\n.ips-gallery-icon span{display:block;height:6px;border-radius:2px;background:currentColor}\n\n.ips-build-gallery{\n  display:grid;\n  grid-template-columns:1.1fr 1fr;\n  grid-template-rows:1fr 1fr;\n  gap:10px;min-height:0;\n}\n.ips-gallery-tile{\n  border-radius:16px;overflow:hidden;\n  background-size:cover;background-position:center;\n  min-height:100px;\n  transition:transform .28s ease,box-shadow .28s ease;\n  cursor:pointer;\n  position:relative;\n}\n.ips-gallery-tile:hover{transform:scale(1.02);box-shadow:0 14px 30px rgba(0,0,0,.25)}\n.ips-gallery-tile.tall{grid-row:span 2}\n.ips-gallery-more{\n  position:absolute;inset:0;\n  display:grid;place-items:center;\n  background:linear-gradient(180deg,rgba(10,5,2,.20),rgba(10,5,2,.72));\n  color:#fff;font-size:.9rem;font-weight:700;\n  opacity:0;transition:opacity .2s;\n}\n.ips-gallery-tile.more-overlay .ips-gallery-more{opacity:1}\n.ips-gallery-tile:hover .ips-gallery-more{opacity:1}\n\n\/* \u2500\u2500\u2500 Step: style (3 cards) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-style-grid{\n  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;\n  flex:1;min-height:0;\n}\n.ips-style-card{\n  position:relative;border-radius:24px;overflow:hidden;cursor:pointer;\n  border:2px solid rgba(255,255,255,.10);\n  transition:transform .22s,border-color .22s,box-shadow .22s;\n  min-height:210px;text-align:left;\n}\n.ips-style-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.2)}\n.ips-style-card.sel{\n  border-color:rgba(208,180,118,.85);\n  box-shadow:0 0 0 3px rgba(208,180,118,.15);\n}\n.ips-style-bg{\n  position:absolute;inset:0;background-size:cover;background-position:center;\n  transition:transform .4s ease;\n}\n.ips-style-card:hover .ips-style-bg{transform:scale(1.04)}\n.ips-style-card::after{\n  content:\"\";position:absolute;inset:0;\n  background:linear-gradient(180deg,rgba(8,4,2,.08),rgba(8,4,2,.72));\n}\n.ips-style-check{\n  position:absolute;top:14px;right:14px;z-index:2;\n  width:28px;height:28px;border-radius:50%;\n  display:grid;place-items:center;\n  border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);\n  font-weight:900;font-size:.84rem;color:transparent;transition:.18s;\n}\n.ips-style-card.sel .ips-style-check{background:var(--ips-gold);border-color:var(--ips-gold);color:var(--ips-ink)}\n.ips-style-overlay{\n  position:absolute;inset:0;pointer-events:none;\n  background:linear-gradient(180deg,rgba(8,4,2,.08),rgba(8,4,2,.72));\n  z-index:0;\n}\n.ips-style-body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:22px}\n.ips-style-name{font-family:'Trirong', Georgia, serif !important;font-size:1.4rem;margin-bottom:6px;line-height:1.3}\n.ips-style-desc{font-size:.88rem;color:rgba(255,255,255,.78);line-height:1.6}\n.ips-style-card:last-child{grid-column:auto}\n\n\/* \u2500\u2500\u2500 Step: scale (slider + photo) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-scale-grid{\n  display:grid;grid-template-columns:1fr 1fr;gap:16px;\n  flex:1;min-height:240px;align-items:stretch;\n}\n.ips-scale-panel{\n  border-radius:24px;\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.10);\n  padding:20px;display:flex;flex-direction:column;justify-content:flex-start;\n}\n.ips-scale-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:8px}\n.ips-scale-row h3{font-size:clamp(.75rem,1vw,.88rem);font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ips-gold)}\n.ips-scale-val{font-family:'Trirong', Georgia, \"Times New Roman\", serif !important;font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:400;color:#fff;line-height:1.2}\n.ips-scale-slider{\n  width:100%;accent-color:#d2b973;\n  height:6px;margin:8px 0 8px;cursor:pointer;\n}\n.ips-scale-ticks{display:flex;justify-content:space-between;color:rgba(255,255,255,.58);font-size:clamp(.8rem,1vw,.92rem)}\n.ips-scale-desc{\n  margin-top:12px;padding-top:0;\n  font-size:clamp(.92rem,1.2vw,1.04rem);color:rgba(255,255,255,.74);line-height:1.65;\n}\n.ips-scale-photo{\n  border-radius:24px;overflow:hidden;position:relative;min-height:220px;\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.10);\n}\n.ips-scale-photo img{width:100%;height:100%;object-fit:cover;transition:opacity .28s}\n.ips-scale-photo::after{\n  content:\"\";position:absolute;inset:0;\n  background:linear-gradient(180deg,transparent 50%,rgba(8,4,2,.45));\n}\n\n\/* \u2500\u2500\u2500 Step: timing \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-timing-view .ips-step-head{margin-bottom:12px}\n.ips-timing-view .ips-timing-grid{flex:0 0 auto}\n.ips-timing-view .ips-actions{margin-top:20px !important;padding-top:16px !important}\n.ips-timing-grid{\n  display:grid;grid-template-columns:1fr;gap:12px;\n  flex:0 0 auto;min-height:auto;align-content:start;\n}\n.ips-timing-card{\n  text-align:left;padding:0;border-radius:20px;overflow:hidden;\n  background:rgba(255,255,255,.10);\n  border:1.5px solid rgba(255,255,255,.18);\n  transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;\n}\n.ips-timing-card-inner{\n  display:flex;align-items:center;justify-content:space-between;gap:20px;\n  padding:26px 30px;\n}\n.ips-timing-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.14);box-shadow:0 10px 28px rgba(0,0,0,.18)}\n.ips-timing-card.sel{\n  border-color:rgba(208,180,118,.90);\n  background:rgba(208,180,118,.13);\n  box-shadow:0 0 0 2px rgba(208,180,118,.22),0 10px 28px rgba(0,0,0,.18);\n}\n.ips-timing-copy{display:flex;flex-direction:column;gap:5px;flex:1 1 auto}\n.ips-timing-label{\n  display:block;\n  font-family:'Trirong', Georgia, \"Times New Roman\", serif !important;\n  font-size:clamp(1.18rem,2.2vw,1.9rem);font-weight:400;line-height:1.2;\n  color:var(--ips-gold);\n}\n.ips-timing-copy span{display:block;font-size:clamp(.88rem,1.4vw,1.1rem);line-height:1.6;color:rgba(255,255,255,.80)}\n.ips-timing-radio{\n  width:28px;height:28px;border-radius:50%;flex-shrink:0;\n  border:2px solid rgba(255,255,255,.30);\n  background:transparent;\n  transition:border-color .18s,background .18s;\n}\n.ips-timing-card.sel .ips-timing-radio{\n  border-color:var(--ips-gold);\n  background:var(--ips-gold);\n  box-shadow:0 0 0 3px rgba(208,180,118,.20);\n}\n\n\/* \u2500\u2500\u2500 Step: contact \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-contact-grid{\n  display:grid;grid-template-columns:.85fr 1.15fr;gap:14px;\n  flex:1;min-height:0;align-items:start;\n}\n.ips-summary{\n  border-radius:18px;\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.10);\n  padding:20px;position:sticky;top:0;\n}\n.ips-summary-title{\n  font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;\n  color:rgba(255,255,255,.58);margin-bottom:10px;\n}\n.ips-form{\n  border-radius:18px;\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.10);\n  padding:20px;\n}\n.ips-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}\n.ips-field{display:grid;gap:4px}\n.ips-field.full{grid-column:1\/-1}\n.ips-field-label{font-size:clamp(.78rem,1vw,.9rem);font-weight:700;color:rgba(255,255,255,.82)}\n.ips-input,\n.ips-select,\n.ips-textarea{\n  width:100%;border-radius:10px;\n  border:1px solid rgba(255,255,255,.14);\n  background:rgba(255,255,255,.08);\n  color:#fff;padding:9px 12px;outline:none;\n  transition:border-color .16s,box-shadow .16s,background .16s;\n}\n.ips-input::placeholder,\n.ips-textarea::placeholder{color:rgba(255,255,255,.38)}\n.ips-input:focus,\n.ips-select:focus,\n.ips-textarea:focus{\n  border-color:rgba(208,180,118,.85);\n  box-shadow:0 0 0 3px rgba(208,180,118,.14);\n  background:rgba(255,255,255,.12);\n}\n.ips-select option{color:#111;background:#fff}\n.ips-textarea{min-height:86px;resize:vertical}\n\n.ips-contact-view{padding-top:10px}\n.ips-contact-view .ips-step-head{margin-bottom:8px}\n.ips-contact-view .ips-title{font-size:clamp(1.8rem,2.45vw,2.2rem);line-height:1.12;margin-bottom:6px}\n.ips-contact-view .ips-lead{font-size:.95rem;max-width:48ch;margin-bottom:0}\n.ips-contact-grid.compact{grid-template-columns:.76fr 1.24fr;gap:10px;align-items:stretch}\n.ips-summary-compact{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n.ips-summary-chip{\n  padding:9px 11px;border-radius:14px;\n  background:rgba(255,255,255,.05);\n  border:1px solid rgba(255,255,255,.08);\n}\n.ips-summary-chip span{display:block}\n.ips-summary-chip span:first-child{font-size:clamp(.66rem,.9vw,.76rem);letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.54);margin-bottom:4px}\n.ips-summary-chip span:last-child{font-size:clamp(.86rem,1.1vw,1rem);font-weight:700;line-height:1.35}\n.ips-form.compact{padding:12px}\n.ips-form.compact .ips-form-grid{gap:6px}\n.ips-form.compact .ips-input,\n.ips-form.compact .ips-select,\n.ips-form.compact .ips-textarea{padding:9px 12px}\n.ips-contact-actions{\n  display:flex;gap:10px;align-items:center;flex-wrap:nowrap;\n  margin-top:6px;padding-top:6px;\n}\n.ips-contact-actions .ips-btn{min-width:150px}\n.ips-contact-submit{\n  min-width:220px;\n  padding-left:26px;padding-right:26px;\n  box-shadow:0 18px 40px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.24);\n}\n.ips-privacy{margin-top:4px;font-size:.72rem;color:rgba(255,255,255,.50);line-height:1.4}\n\n\/* \u2500\u2500\u2500 Lightbox (expanded gallery) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-lightbox{\n  position:fixed;inset:0;z-index:9998;display:none;\n  background:rgba(8,4,2,.88);\n  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);\n  padding:24px;align-items:center;justify-content:center;\n}\n.ips-lightbox.open{display:flex}\n.ips-lightbox-inner{\n  width:min(1100px,100%);\n  height:92vh;\n  display:flex;\n  flex-direction:column;\n  overflow:hidden;\n}\n.ips-lightbox-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-shrink:0}\n.ips-lightbox-name{font-family:'Trirong', Georgia, serif !important;font-size:2rem;line-height:1.2}\n.ips-lightbox-desc{margin-top:6px;font-size:.92rem;color:rgba(255,255,255,.72);max-width:58ch;line-height:1.65}\n.ips-lightbox-close{\n  width:40px;height:40px;border-radius:50%;\n  background:rgba(255,255,255,.10);\n  border:1px solid rgba(255,255,255,.14);\n  color:#fff;font-size:1.05rem;flex-shrink:0;\n  display:grid;place-items:center;transition:.18s;\n}\n.ips-lightbox-close:hover{background:rgba(255,255,255,.20)}\n.ips-lightbox-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;flex:1;min-height:0}\n.ips-lb-tile{border-radius:18px;overflow:hidden;background:rgba(255,255,255,.06)}\n.ips-lb-tile.tall{grid-row:span 2}\n.ips-lb-tile img{width:100%;height:100%;object-fit:cover}\n.ips-lightbox-footer{\n  margin-top:20px;\n  padding-top:18px;\n  border-top:1px solid rgba(255,255,255,.14);\n  background:rgba(8,4,2,.88);\n  display:flex;\n  gap:12px;\n  flex-shrink:0;\n}\n.ips-lb-back-btn{\n  flex:1;\n  background:rgba(255,255,255,.13);\n  color:#fff;\n  border:none;\n}\n.ips-lb-back-btn:hover:not(:disabled){background:rgba(255,255,255,.20)}\n.ips-lb-select-btn{\n  flex:1;\n  background:#cfb36f;\n  color:#20150b;\n  border:none;\n  box-shadow:0 14px 30px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.18);\n  font-weight:800;\n}\n.ips-lb-select-btn:hover:not(:disabled){background:#d5bb79}\n\n\/* \u2500\u2500\u2500 Result modal \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-result{\n  position:fixed;inset:0;z-index:9999;display:none;\n  background:rgba(8,4,2,.72);\n  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);\n  padding:20px;align-items:center;justify-content:center;\n}\n.ips-result.open{display:flex}\n.ips-result-card{\n  width:min(1120px,100%);max-height:94vh;overflow:auto;\n  background:linear-gradient(160deg,#f8f1e7,#ecdfd0);\n  color:var(--ips-text);border-radius:28px;\n  border:1px solid var(--ips-line);\n  box-shadow:0 44px 120px rgba(8,4,2,.32);\n  padding:24px;scrollbar-width:none;\n}\n.ips-result-card::-webkit-scrollbar{display:none}\n.ips-result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}\n.ips-result-eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ips-muted);margin-bottom:8px}\n.ips-result-head h3{font-family:'Trirong', Georgia, serif !important;font-size:clamp(1.45rem,2.4vw,2.1rem);line-height:1.18}\n.ips-result-sub{margin-top:6px;color:var(--ips-muted);font-size:.88rem;line-height:1.6;max-width:62ch}\n.ips-result-close{\n  width:40px;height:40px;border-radius:50%;\n  background:#fff;border:1px solid var(--ips-line);\n  font-size:1.05rem;cursor:pointer;\n  box-shadow:0 6px 16px rgba(0,0,0,.08);\n  flex-shrink:0;display:grid;place-items:center;transition:.18s;\n}\n.ips-result-close:hover{background:#f5ede1}\n.ips-result-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:14px;margin-bottom:14px}\n.ips-result-box{background:rgba(255,255,255,.64);border:1px solid var(--ips-line);border-radius:18px;padding:18px}\n.ips-result-box-label{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ips-muted);margin-bottom:10px}\n.ips-price{font-size:clamp(1.8rem,3.3vw,2.8rem);font-weight:900;line-height:1.02;color:var(--ips-text)}\n.ips-price-caveat{margin-top:8px;font-size:.82rem;color:var(--ips-muted);line-height:1.5}\n.ips-result-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--ips-line);font-size:.88rem}\n.ips-result-row:last-child{border-bottom:0}\n.ips-result-row span:first-child{color:var(--ips-muted)}\n.ips-result-row span:last-child{font-weight:700;text-align:right}\n.ips-next{border-radius:18px;background:rgba(138,122,76,.07);border:1px solid rgba(138,122,76,.16);padding:16px;margin-bottom:14px}\n.ips-next h4{font-size:.94rem;font-weight:800;margin-bottom:10px}\n.ips-next-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}\n.ips-next-item{display:flex;gap:12px;align-items:flex-start}\n.ips-next-num{\n  width:26px;height:26px;border-radius:50%;\n  background:var(--ips-gold-2);color:#fff;\n  font-size:.8rem;font-weight:800;\n  display:grid;place-items:center;flex-shrink:0;\n}\n.ips-next-item strong{display:block;font-size:.88rem;margin-bottom:2px}\n.ips-next-item span{font-size:.81rem;color:var(--ips-muted);line-height:1.5}\n.ips-result-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}\n\n@media (max-width:1180px){\n  .ips-shell{padding-top:56px}\n  .ips-brand{padding:8px 14px 8px 12px;gap:10px}\n  .ips-brand-logo{height:36px}\n  .ips-brand-label{font-size:.76rem;padding:7px 10px}\n}\n\/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width:960px){\n  .ips-estimator{min-height:100svh;overflow:visible}\n  .ips-intro,\n  .ips-choice-grid,\n  .ips-build-wrap,\n  .ips-style-grid,\n  .ips-scale-grid,\n  .ips-timing-grid,\n  .ips-contact-grid{flex:0 0 auto;min-height:auto}\n  .ips-shell{padding:78px 16px 20px;align-items:flex-start}\n  .ips-estimator.ips-at-intro .ips-shell{align-items:center;padding-top:78px;padding-bottom:78px}\n  .ips-card{\n    height:auto;min-height:0;\n    max-height:none;\n    border-radius:24px;\n  }\n  .ips-viewport{overflow:visible}\n  .ips-view{padding:22px 22px 18px;overflow:visible;height:auto}\n  .ips-card-head{padding:20px 22px 0}\n  .ips-choice-grid{grid-template-columns:1fr;gap:10px}\n  .ips-choice{min-height:185px}\n  .ips-build-tabs{\n    grid-auto-flow:row;\n    grid-auto-columns:unset;\n    grid-template-columns:repeat(2,1fr);\n    gap:8px;\n  }\n  .ips-build-panel{\n    grid-template-columns:1fr;\n    padding:12px;gap:10px;min-height:0;\n  }\n  .ips-build-gallery{\n    grid-template-columns:1fr 1fr;\n    grid-template-rows:repeat(2,120px);\n  }\n  .ips-gallery-tile.tall{grid-row:span 1}\n  .ips-style-grid{grid-template-columns:1fr;gap:10px}\n  .ips-style-card{min-height:200px}\n  .ips-scale-grid{grid-template-columns:1fr;gap:12px}\n  .ips-scale-panel{padding:18px}\n  .ips-scale-photo{min-height:180px}\n  .ips-timing-grid{grid-template-columns:1fr;gap:10px}\n  .ips-timing-card-inner{padding:18px 20px}\n  .ips-timing-label{font-size:1.18rem}\n  .ips-timing-copy span{font-size:.88rem}\n  .ips-contact-grid,\n  .ips-contact-grid.compact{grid-template-columns:1fr;gap:10px}\n  .ips-summary{display:none}\n  .ips-summary-compact{grid-template-columns:1fr 1fr}\n  .ips-textarea{display:none}\n  .ips-field:has(.ips-textarea){display:none}\n  .ips-actions{margin-top:16px !important;padding-top:14px !important}\n  .ips-lightbox-inner{height:auto;max-height:92vh;overflow:auto;scrollbar-width:none}\n  .ips-lightbox-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;flex:none}\n  .ips-lb-tile.tall{grid-row:span 1}\n  .ips-lb-tile{aspect-ratio:4\/3}\n  .ips-result-grid{grid-template-columns:1fr}\n  .ips-next-list{grid-template-columns:1fr}\n}\n@media (max-width:620px){\n  .ips-estimator{min-height:100svh}\n  .ips-intro,\n  .ips-choice-grid,\n  .ips-build-wrap,\n  .ips-style-grid,\n  .ips-scale-grid,\n  .ips-timing-grid,\n  .ips-contact-grid{flex:0 0 auto;min-height:auto}\n  .ips-shell{padding:72px 10px 16px;align-items:flex-start}\n  .ips-estimator.ips-at-intro .ips-shell{align-items:center;padding-top:72px;padding-bottom:72px}\n  .ips-card{border-radius:20px;min-height:auto}\n  .ips-card-head{padding:18px 18px 0;gap:12px}\n  .ips-prog-track{flex:0 1 140px;min-width:120px}\n  .ips-view{padding:18px 16px 14px;overflow:visible}\n  .ips-topbar{width:calc(100% - 20px);padding:14px 0;gap:8px}\n  .ips-brand,.ips-return{padding:8px 12px;font-size:.76rem}\n  .ips-brand{gap:8px;padding:8px 12px 8px 10px}\n  .ips-brand-logo{height:28px}\n  .ips-brand-label{font-size:.72rem;padding:6px 10px}\n  .ips-return span.ips-full{display:none}\n  .ips-display{font-size:2.4rem}\n  .ips-intro{justify-content:center;text-align:center;align-items:center}\n  .ips-step-head{margin-bottom:16px}\n  .ips-title{font-size:1.85rem}\n  .ips-pills{gap:10px;justify-content:center}\n  .ips-pill{padding:11px 16px;font-size:1rem}\n  .ips-form-grid{grid-template-columns:1fr}\n  .ips-scale-panel{padding:16px}\n  .ips-actions{flex-direction:row;gap:10px;justify-content:center;margin-top:14px !important;padding-top:12px !important}\n  .ips-timing-view .ips-actions{margin-top:14px !important;padding-top:12px !important}\n  .ips-summary{display:none}\n  .ips-textarea{display:none}\n  .ips-field:has(.ips-textarea){display:none}\n  .ips-summary-compact{grid-template-columns:1fr 1fr}\n  .ips-actions .ips-btn{width:auto;min-width:150px;justify-content:center}\n  .ips-contact-actions{flex-direction:column;align-items:stretch}\n  .ips-contact-actions .ips-btn,.ips-contact-submit{width:100%;min-width:0}\n  .ips-build-tabs{grid-template-columns:repeat(2,1fr)}\n  .ips-build-tab{font-size:.95rem;padding:14px 8px}\n  .ips-build-info-name{font-size:1.3rem}\n  .ips-build-info-desc{margin-bottom:10px}\n  .ips-result-card{padding:20px;border-radius:22px}\n  .ips-result-actions{flex-direction:column}\n  .ips-result-actions .ips-btn{width:100%;justify-content:center}\n  .ips-lightbox{padding:14px}\n  .ips-lightbox-name{font-size:1.5rem}\n  .ips-lightbox-desc{display:none}\n  .ips-lightbox-grid{grid-template-rows:130px 130px 130px}\n  .ips-lightbox-footer{margin-top:28px;padding-top:18px;gap:10px}\n}\n\n\/* \u2500\u2500\u2500 Live-site CSS bleed defence \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   Elementor's global stylesheet can override font-family and\n   text-transform on arbitrary descendants. \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ips-estimator .ips-title,\n.ips-estimator .ips-display,\n.ips-estimator .ips-lead,\n.ips-estimator .ips-choice-name,\n.ips-estimator .ips-choice-desc,\n.ips-estimator .ips-build-info-name,\n.ips-estimator .ips-build-info-desc,\n.ips-estimator .ips-build-tab,\n.ips-estimator .ips-style-name,\n.ips-estimator .ips-style-desc,\n.ips-estimator .ips-timing-label,\n.ips-estimator .ips-timing-copy span,\n.ips-estimator .ips-scale-val,\n.ips-estimator .ips-scale-desc,\n.ips-estimator .ips-lightbox-name,\n.ips-estimator .ips-lightbox-desc,\n.ips-estimator .ips-prog-label strong,\n.ips-estimator .ips-prog-label span,\n.ips-estimator .ips-pill,\n.ips-estimator .ips-btn,\n.ips-estimator .ips-field-label,\n.ips-estimator .ips-input,\n.ips-estimator .ips-select,\n.ips-estimator .ips-textarea,\n.ips-estimator .ips-privacy {\n  text-transform: none !important;\n}\n\n.ips-estimator .ips-choice-name,\n.ips-estimator .ips-style-name,\n.ips-estimator .ips-scale-val,\n.ips-estimator .ips-lightbox-name,\n.ips-estimator .ips-prog-label strong,\n.ips-estimator .ips-build-info-name {\n  color: #fff !important;\n}\n.ips-estimator .ips-choice-desc,\n.ips-estimator .ips-style-desc,\n.ips-estimator .ips-build-info-desc,\n.ips-estimator .ips-scale-desc,\n.ips-estimator .ips-lightbox-desc,\n.ips-estimator .ips-lead {\n  color: rgba(255,255,255,.82) !important;\n}\n\n.ips-estimator .ips-choice-body {\n  position: absolute !important;\n  z-index: 1 !important;\n}\n.ips-estimator .ips-style-body {\n  position: absolute !important;\n  z-index: 1 !important;\n}\n.ips-estimator .ips-choice-overlay,\n.ips-estimator .ips-style-overlay {\n  position: absolute !important;\n  inset: 0 !important;\n  pointer-events: none !important;\n  z-index: 0 !important;\n}\n.ips-estimator .ips-choice,\n.ips-estimator .ips-style-card {\n  position: relative !important;\n  overflow: hidden !important;\n}\n.ips-estimator .ips-choice-bg,\n.ips-estimator .ips-style-bg {\n  position: absolute !important;\n}\n.ips-estimator .ips-scale-photo {\n  position: relative !important;\n  overflow: hidden !important;\n}\n\n.ips-standalone,\n.ips-standalone body{\n  margin:0;padding:0;background:#120c08;\n  overflow-x:hidden;overflow-y:auto;min-height:100%;\n}\n<\/style>\n<\/head>\n<body class=\"ips-standalone\">\n\n<div class=\"ips-estimator\" id=\"ipsEstimator\">\n\n  <div class=\"ips-stage\" id=\"ipsStage\">\n    <div class=\"ips-stage-bg\" id=\"ipsStageBg\"><\/div>\n    <div class=\"ips-stage-bg-next\" id=\"ipsStageBgNext\"><\/div>\n    <div class=\"ips-stage-mask\"><\/div>\n  <\/div>\n\n  <div class=\"ips-topbar\">\n    <div class=\"ips-brand\"><span class=\"ips-brand-label\">INTERPOOL SPA<\/span><\/div>\n    <a class=\"ips-return\" href=\"\/\" aria-label=\"\u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e39\u0e48\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\">\u2190 <span class=\"ips-full\">\u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e39\u0e48\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c<\/span><\/a>\n  <\/div>\n\n  <div class=\"ips-shell\">\n    <div class=\"ips-card\">\n      <div class=\"ips-card-head\">\n        <div class=\"ips-prog-label\">\n          <strong id=\"ipsProgLabel\">\u0e22\u0e34\u0e19\u0e14\u0e35\u0e15\u0e49\u0e2d\u0e19\u0e23\u0e31\u0e1a<\/strong>\n          <span id=\"ipsProgMeta\">\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 1 \u0e08\u0e32\u0e01 7<\/span>\n        <\/div>\n        <div class=\"ips-prog-track\"><div class=\"ips-prog-fill\" id=\"ipsProgFill\"><\/div><\/div>\n      <\/div>\n      <div class=\"ips-viewport\">\n        <div class=\"ips-track\" id=\"ipsTrack\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Gallery lightbox -->\n  <div class=\"ips-lightbox\" id=\"ipsLightbox\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ipsLbName\">\n    <div class=\"ips-lightbox-inner\">\n      <div class=\"ips-lightbox-top\">\n        <div>\n          <div class=\"ips-lightbox-name\" id=\"ipsLbName\"><\/div>\n          <div class=\"ips-lightbox-desc\" id=\"ipsLbDesc\"><\/div>\n        <\/div>\n        <button class=\"ips-lightbox-close\" id=\"ipsLbClose\" aria-label=\"\u0e1b\u0e34\u0e14\u0e41\u0e01\u0e25\u0e40\u0e25\u0e2d\u0e23\u0e35\">\u2715<\/button>\n      <\/div>\n      <div class=\"ips-lightbox-grid\" id=\"ipsLbGrid\"><\/div>\n      <div class=\"ips-lightbox-footer\">\n        <button class=\"ips-btn ips-lb-back-btn\" id=\"ipsLbBack\" type=\"button\">\u2190 \u0e01\u0e25\u0e31\u0e1a<\/button>\n        <button class=\"ips-btn ips-lb-select-btn\" id=\"ipsLbSelect\" type=\"button\">\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Result modal -->\n  <div class=\"ips-result\" id=\"ipsResult\" role=\"dialog\" aria-modal=\"true\">\n    <div class=\"ips-result-card\">\n      <div class=\"ips-result-head\">\n        <div>\n          <div class=\"ips-result-eyebrow\">\u0e23\u0e32\u0e04\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/div>\n          <h3>Wellness Space \u0e43\u0e19\u0e1d\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e23\u0e34\u0e07\u0e44\u0e14\u0e49<\/h3>\n          <p class=\"ips-result-sub\">\u0e08\u0e32\u0e01\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e40\u0e25\u0e37\u0e2d\u0e01 \u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e0a\u0e48\u0e27\u0e07\u0e07\u0e1a\u0e25\u0e07\u0e17\u0e38\u0e19\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22 \u0e17\u0e35\u0e21\u0e07\u0e32\u0e19\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e17\u0e35\u0e48\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e27\u0e48\u0e32\u0e19\u0e35\u0e49<\/p>\n        <\/div>\n        <button class=\"ips-result-close\" id=\"ipsResultClose\" aria-label=\"\u0e1b\u0e34\u0e14\">\u2715<\/button>\n      <\/div>\n      <div class=\"ips-result-grid\">\n        <div class=\"ips-result-box\">\n          <div class=\"ips-result-box-label\">\u0e0a\u0e48\u0e27\u0e07\u0e07\u0e1a\u0e25\u0e07\u0e17\u0e38\u0e19\u0e42\u0e14\u0e22\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13<\/div>\n          <div class=\"ips-price\" id=\"ipsPrice\">\u2014<\/div>\n          <div class=\"ips-price-caveat\">\u0e19\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e19\u0e27\u0e17\u0e32\u0e07\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19 \u0e23\u0e32\u0e04\u0e32\u0e08\u0e23\u0e34\u0e07\u0e08\u0e30\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2b\u0e25\u0e31\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e33\u0e23\u0e27\u0e08\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e36\u0e01\u0e29\u0e32\u0e14\u0e49\u0e32\u0e19\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a<\/div>\n        <\/div>\n        <div class=\"ips-result-box\">\n          <div class=\"ips-result-box-label\">\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/div>\n          <div id=\"ipsResultSummary\"><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"ips-next\">\n        <h4>\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e16\u0e31\u0e14\u0e44\u0e1b<\/h4>\n        <div class=\"ips-next-list\">\n          <div class=\"ips-next-item\"><div class=\"ips-next-num\">1<\/div><div><strong>\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/strong><span>\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e41\u0e25\u0e30\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e15\u0e23\u0e07\u0e16\u0e36\u0e07\u0e17\u0e35\u0e21\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c Interpool<\/span><\/div><\/div>\n          <div class=\"ips-next-item\"><div class=\"ips-next-num\">2<\/div><div><strong>\u0e17\u0e35\u0e48\u0e1b\u0e23\u0e36\u0e01\u0e29\u0e32\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e25\u0e31\u0e1a\u0e20\u0e32\u0e22\u0e43\u0e19 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07<\/strong><span>\u0e40\u0e23\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e1e\u0e39\u0e14\u0e04\u0e38\u0e22\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e27\u0e34\u0e2a\u0e31\u0e22\u0e17\u0e31\u0e28\u0e19\u0e4c \u0e15\u0e2d\u0e1a\u0e17\u0e38\u0e01\u0e04\u0e33\u0e16\u0e32\u0e21 \u0e41\u0e25\u0e30\u0e27\u0e32\u0e07\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15\u0e07\u0e32\u0e19\u0e23\u0e48\u0e27\u0e21\u0e01\u0e31\u0e19<\/span><\/div><\/div>\n          <div class=\"ips-next-item\"><div class=\"ips-next-num\">3<\/div><div><strong>\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e09\u0e1a\u0e31\u0e1a\u0e40\u0e15\u0e47\u0e21 \u2014 \u0e1f\u0e23\u0e35<\/strong><span>\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14\u0e41\u0e25\u0e30\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e41\u0e1a\u0e1a\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 \u0e1b\u0e23\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e01\u0e31\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e2d\u0e2a\u0e31\u0e07\u0e2b\u0e32\u0e23\u0e34\u0e21\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/span><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"ips-result-actions\">\n        <button class=\"ips-btn ips-btn-ghost\" id=\"ipsResultClose2\" type=\"button\">\u0e1b\u0e34\u0e14<\/button>\n        <a class=\"ips-btn ips-btn-wa\" id=\"ipsWaLink\" href=\"#\" target=\"_blank\" rel=\"noopener\">\ud83d\udcac \u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e32\u0e40\u0e23\u0e32\u0e17\u0e32\u0e07 WhatsApp<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n(function(){\n\n\/\/ \u2500\u2500\u2500 Data \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst D = {\n  bg:{\n    intro:   'https:\/\/images.unsplash.com\/photo-1519823551278-64ac92734fb1?auto=format&fit=crop&w=1800&q=80',\n    setting: 'https:\/\/images.unsplash.com\/photo-1544161515-4ab6ce6db874?auto=format&fit=crop&w=1800&q=80',\n    build:   'https:\/\/images.unsplash.com\/photo-1505693416388-ac5ce068fe85?auto=format&fit=crop&w=1800&q=80',\n    style:   'https:\/\/images.unsplash.com\/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=80',\n    scale:   'https:\/\/images.unsplash.com\/photo-1512917774080-9991f1c4c750?auto=format&fit=crop&w=1800&q=80',\n    timing:  'https:\/\/images.unsplash.com\/photo-1507652313519-d4e9174996dd?auto=format&fit=crop&w=1800&q=80',\n    contact: 'https:\/\/images.unsplash.com\/photo-1507652313519-d4e9174996dd?auto=format&fit=crop&w=1800&q=80'\n  },\n  setting:[\n    {id:'home',     name:'\u0e1a\u0e49\u0e32\u0e19\u0e1e\u0e31\u0e01\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27',   desc:'\u0e27\u0e34\u0e25\u0e25\u0e48\u0e32 \u0e1a\u0e49\u0e32\u0e19\u0e1e\u0e31\u0e01 \u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 wellness \u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e17\u0e35\u0e48\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e21\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e42\u0e14\u0e22\u0e40\u0e09\u0e1e\u0e32\u0e30',              img:'https:\/\/images.unsplash.com\/photo-1564013799919-ab600027ffc6?auto=format&fit=crop&w=1200&q=80'},\n    {id:'hotel',    name:'Hotel & Resort',   desc:'\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c wellness \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e41\u0e02\u0e01\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e1e\u0e31\u0e01 \u0e14\u0e49\u0e27\u0e22\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e07\u0e32\u0e19\u0e08\u0e1a\u0e23\u0e30\u0e14\u0e31\u0e1a hospitality',            img:'https:\/\/images.unsplash.com\/photo-1520250497591-112f2f40a3f4?auto=format&fit=crop&w=1200&q=80'},\n    {id:'business', name:'\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08\u0e02\u0e2d\u0e07\u0e09\u0e31\u0e19',     desc:'\u0e2a\u0e1b\u0e32\u0e40\u0e0a\u0e34\u0e07\u0e1e\u0e32\u0e13\u0e34\u0e0a\u0e22\u0e4c \u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48 wellness \u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e04\u0e2d\u0e19\u0e40\u0e0b\u0e1b\u0e15\u0e4c\u0e20\u0e32\u0e22\u0e43\u0e15\u0e49\u0e41\u0e1a\u0e23\u0e19\u0e14\u0e4c',                      img:'https:\/\/images.unsplash.com\/photo-1571902943202-507ec2618e8f?auto=format&fit=crop&w=1200&q=80'}\n  ],\n  build:[\n    {id:'pool',  name:'\u0e2a\u0e23\u0e30\u0e27\u0e48\u0e32\u0e22\u0e19\u0e49\u0e33',   desc:'\u0e2a\u0e23\u0e30\u0e27\u0e48\u0e32\u0e22\u0e19\u0e49\u0e33\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e40\u0e09\u0e1e\u0e32\u0e30 \u0e02\u0e2d\u0e1a\u0e2d\u0e34\u0e19\u0e1f\u0e34\u0e19\u0e34\u0e15\u0e35\u0e49 \u0e41\u0e25\u0e30 swim spa \u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e22\u0e07\u0e32\u0e21\u0e17\u0e35\u0e48\u0e19\u0e48\u0e32\u0e1b\u0e23\u0e30\u0e17\u0e31\u0e1a\u0e43\u0e08\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e38\u0e02\u0e17\u0e35\u0e48\u0e22\u0e31\u0e48\u0e07\u0e22\u0e37\u0e19',\n     img:'https:\/\/images.unsplash.com\/photo-1576013551627-0ff7ae2f4fca?auto=format&fit=crop&w=1400&q=80',\n     gallery:['https:\/\/images.unsplash.com\/photo-1576013551627-0ff7ae2f4fca?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1519046904884-53103b34b206?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1494526585095-c41746248156?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1512917774080-9991f1c4c750?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1511818966892-d7d671e672a2?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1582268611958-ebfd161ef9cf?auto=format&fit=crop&w=1400&q=80']},\n    {id:'onsen', name:'\u0e2d\u0e2d\u0e19\u0e40\u0e0b\u0e47\u0e19',     desc:'\u0e2d\u0e48\u0e32\u0e07\u0e41\u0e0a\u0e48\u0e19\u0e49\u0e33\u0e23\u0e49\u0e2d\u0e19\u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19 \u0e15\u0e01\u0e41\u0e15\u0e48\u0e07\u0e14\u0e49\u0e27\u0e22\u0e2b\u0e34\u0e19 \u0e44\u0e21\u0e49 \u0e41\u0e25\u0e30\u0e23\u0e30\u0e1a\u0e1a\u0e19\u0e49\u0e33\u0e41\u0e23\u0e48\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e\u0e2a\u0e39\u0e07 \u0e2a\u0e23\u0e49\u0e32\u0e07\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e25\u0e36\u0e01\u0e0b\u0e36\u0e49\u0e07\u0e43\u0e19\u0e17\u0e38\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19',\n     img:'https:\/\/images.unsplash.com\/photo-1503594384566-461fe158e797?auto=format&fit=crop&w=1400&q=80',\n     gallery:['https:\/\/images.unsplash.com\/photo-1503594384566-461fe158e797?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1500375592092-40eb2168fd21?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1505693416388-ac5ce068fe85?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1521783988139-893ce435a1b4?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1570168007204-dfb528c6958f?auto=format&fit=crop&w=1400&q=80']},\n    {id:'sauna', name:'\u0e2b\u0e49\u0e2d\u0e07\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32',  desc:'\u0e2b\u0e49\u0e2d\u0e07\u0e0b\u0e32\u0e27\u0e19\u0e48\u0e32\u0e41\u0e1a\u0e1a Finnish \u0e14\u0e31\u0e49\u0e07\u0e40\u0e14\u0e34\u0e21\u0e2b\u0e23\u0e37\u0e2d Infrared \u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e07\u0e32\u0e19\u0e44\u0e21\u0e49\u0e1d\u0e35\u0e21\u0e37\u0e2d\u0e0a\u0e48\u0e32\u0e07 artisan \u0e41\u0e25\u0e30 cedar finish \u0e23\u0e30\u0e14\u0e31\u0e1a\u0e1e\u0e23\u0e35\u0e40\u0e21\u0e35\u0e22\u0e21',\n     img:'https:\/\/images.unsplash.com\/photo-1513694203232-719a280e022f?auto=format&fit=crop&w=1400&q=80',\n     gallery:['https:\/\/images.unsplash.com\/photo-1513694203232-719a280e022f?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1542423979-1f7f5a9cc625?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1593012100424-e48f75466572?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1556909045-0aef5da13f7f?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1510596991682-05a85a8d4062?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1605296867304-46d5465a13f1?auto=format&fit=crop&w=1400&q=80']},\n    {id:'steam', name:'\u0e2b\u0e49\u0e2d\u0e07\u0e2a\u0e15\u0e23\u0e35\u0e21',   desc:'\u0e2b\u0e49\u0e2d\u0e07\u0e19\u0e36\u0e48\u0e07\u0e41\u0e1a\u0e1a\u0e40\u0e1b\u0e35\u0e22\u0e01\u0e40\u0e15\u0e47\u0e21\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a \u0e15\u0e01\u0e41\u0e15\u0e48\u0e07\u0e14\u0e49\u0e27\u0e22 mosaic tile \u0e1b\u0e23\u0e30\u0e13\u0e35\u0e15\u0e17\u0e38\u0e01\u0e1e\u0e37\u0e49\u0e19\u0e1c\u0e34\u0e27 \u0e40\u0e2b\u0e21\u0e32\u0e30\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1a\u0e49\u0e32\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e41\u0e25\u0e30\u0e2a\u0e1b\u0e32\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e42\u0e23\u0e07\u0e41\u0e23\u0e21',\n     img:'https:\/\/images.unsplash.com\/photo-1544161515-4ab6ce6db874?auto=format&fit=crop&w=1400&q=80',\n     gallery:['https:\/\/images.unsplash.com\/photo-1544161515-4ab6ce6db874?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1570168007204-dfb528c6958f?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1505693416388-ac5ce068fe85?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1521783988139-893ce435a1b4?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1471922694854-ff1b63b20054?auto=format&fit=crop&w=1400&q=80']},\n    {id:'plunge',name:'\u0e1a\u0e33\u0e1a\u0e31\u0e14\u0e14\u0e49\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e40\u0e22\u0e47\u0e19', desc:'\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e1a\u0e31\u0e14\u0e14\u0e49\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e40\u0e22\u0e47\u0e19\u0e41\u0e25\u0e30\u0e2a\u0e23\u0e30 contrast recovery \u2014 \u0e01\u0e25\u0e32\u0e22\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e34\u0e48\u0e07\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a wellness space \u0e17\u0e35\u0e48\u0e40\u0e19\u0e49\u0e19\u0e2a\u0e21\u0e23\u0e23\u0e16\u0e20\u0e32\u0e1e\u0e23\u0e48\u0e32\u0e07\u0e01\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e1f\u0e37\u0e49\u0e19\u0e1f\u0e39',\n     img:'https:\/\/images.unsplash.com\/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1400&q=80',\n     gallery:['https:\/\/images.unsplash.com\/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1469796466635-455ede028aca?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1470770903676-69b98201ea1c?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1519046904884-53103b34b206?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1511818966892-d7d671e672a2?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1482938289607-e9573fc25ebb?auto=format&fit=crop&w=1400&q=80']},\n    {id:'hydro', name:'\u0e18\u0e32\u0e23\u0e32\u0e1a\u0e33\u0e1a\u0e31\u0e14',   desc:'\u0e2a\u0e23\u0e30\u0e19\u0e49\u0e33\u0e27\u0e19\u0e40\u0e0a\u0e34\u0e07\u0e1a\u0e33\u0e1a\u0e31\u0e14 \u0e27\u0e07\u0e08\u0e23 contrast \u0e41\u0e25\u0e30\u0e23\u0e30\u0e1a\u0e1a\u0e19\u0e27\u0e14\u0e14\u0e49\u0e27\u0e22\u0e19\u0e49\u0e33 \u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e21\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e1f\u0e37\u0e49\u0e19\u0e1f\u0e39\u0e23\u0e48\u0e32\u0e07\u0e01\u0e32\u0e22\u0e41\u0e25\u0e30 wellness \u0e40\u0e0a\u0e34\u0e07\u0e25\u0e36\u0e01',\n     img:'https:\/\/images.unsplash.com\/photo-1544551763-46a013bb70d5?auto=format&fit=crop&w=1400&q=80',\n     gallery:['https:\/\/images.unsplash.com\/photo-1544551763-46a013bb70d5?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1540555700478-4be289fbecef?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1571019613454-1cb2f99b2d8b?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1564501049412-61c2a3083791?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1528360983277-13d401cdc186?auto=format&fit=crop&w=1400&q=80','https:\/\/images.unsplash.com\/photo-1519823551278-64ac92734fb1?auto=format&fit=crop&w=1400&q=80']}\n  ],\n  style:[\n    {id:'natural',  name:'Natural & Organic',desc:'\u0e2b\u0e34\u0e19 \u0e44\u0e21\u0e49 \u0e41\u0e25\u0e30\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e08\u0e32\u0e01\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34 \u0e1a\u0e23\u0e23\u0e22\u0e32\u0e01\u0e32\u0e28\u0e2d\u0e1a\u0e2d\u0e38\u0e48\u0e19\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19 spa \u0e01\u0e25\u0e32\u0e07\u0e1b\u0e48\u0e32 \u0e17\u0e35\u0e48\u0e23\u0e39\u0e49\u0e2a\u0e36\u0e01\u0e2b\u0e22\u0e31\u0e48\u0e07\u0e23\u0e32\u0e01\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34\u0e23\u0e2d\u0e1a\u0e02\u0e49\u0e32\u0e07',    img:'https:\/\/images.unsplash.com\/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1400&q=80', mult:1.0},\n    {id:'modern',   name:'Modern & Minimal', desc:'\u0e40\u0e2a\u0e49\u0e19\u0e2a\u0e32\u0e22\u0e2a\u0e30\u0e2d\u0e32\u0e14\u0e15\u0e32 \u0e1e\u0e37\u0e49\u0e19\u0e1c\u0e34\u0e27\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e40\u0e19\u0e35\u0e22\u0e19 \u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e43\u0e19\u0e17\u0e38\u0e01\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 \u0e04\u0e27\u0e32\u0e21\u0e07\u0e32\u0e21\u0e41\u0e1a\u0e1a luxury \u0e2a\u0e21\u0e31\u0e22\u0e43\u0e2b\u0e21\u0e48',              img:'https:\/\/images.unsplash.com\/photo-1494526585095-c41746248156?auto=format&fit=crop&w=1400&q=80', mult:1.12},\n    {id:'bespoke',  name:'Bespoke',          desc:'\u0e44\u0e21\u0e48\u0e21\u0e35\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a \u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e35\u0e14\u0e08\u0e33\u0e01\u0e31\u0e14 \u0e27\u0e34\u0e2a\u0e31\u0e22\u0e17\u0e31\u0e28\u0e19\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u2014 \u0e27\u0e31\u0e2a\u0e14\u0e38 \u0e1a\u0e23\u0e23\u0e22\u0e32\u0e01\u0e32\u0e28 \u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49\u0e2a\u0e36\u0e01 \u2014 \u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e15\u0e31\u0e49\u0e07\u0e41\u0e15\u0e48\u0e15\u0e49\u0e19\u0e23\u0e48\u0e27\u0e21\u0e01\u0e31\u0e1a\u0e17\u0e35\u0e21\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32', img:'https:\/\/images.unsplash.com\/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=1800&q=80', mult:1.30}\n  ],\n  scale:{\n    1:{name:'\u0e40\u0e25\u0e47\u0e01',   desc:'\u0e02\u0e19\u0e32\u0e14\u0e01\u0e30\u0e17\u0e31\u0e14\u0e23\u0e31\u0e14\u0e19\u0e48\u0e32\u0e2d\u0e22\u0e39\u0e48 \u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e08\u0e33\u0e01\u0e31\u0e14\u0e2b\u0e23\u0e37\u0e2d\u0e27\u0e34\u0e2a\u0e31\u0e22\u0e17\u0e31\u0e28\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e23\u0e30\u0e13\u0e35\u0e15\u0e43\u0e19\u0e17\u0e38\u0e01\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14', img:'https:\/\/images.unsplash.com\/photo-1522708323590-d24dbb6b0267?auto=format&fit=crop&w=1400&q=80', mult:0.70},\n    2:{name:'\u0e01\u0e25\u0e32\u0e07',   desc:'\u0e02\u0e19\u0e32\u0e14\u0e1e\u0e23\u0e35\u0e40\u0e21\u0e35\u0e22\u0e21\u0e17\u0e35\u0e48\u0e2a\u0e1a\u0e32\u0e22\u0e15\u0e32 \u0e22\u0e2d\u0e14\u0e19\u0e34\u0e22\u0e21\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e1a\u0e49\u0e32\u0e19\u0e1e\u0e31\u0e01\u0e2d\u0e32\u0e28\u0e31\u0e22\u0e41\u0e25\u0e30 feature \u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07\u0e42\u0e23\u0e07\u0e41\u0e23\u0e21 boutique', img:'https:\/\/images.unsplash.com\/photo-1564013799919-ab600027ffc6?auto=format&fit=crop&w=1400&q=80', mult:1.00},\n    3:{name:'\u0e43\u0e2b\u0e0d\u0e48',   desc:'\u0e02\u0e19\u0e32\u0e14\u0e17\u0e35\u0e48\u0e01\u0e27\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19 \u0e04\u0e27\u0e32\u0e21\u0e42\u0e14\u0e14\u0e40\u0e14\u0e48\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19 \u0e1f\u0e35\u0e40\u0e08\u0e2d\u0e23\u0e4c\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e31\u0e49\u0e19 \u0e41\u0e25\u0e30\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e25\u0e36\u0e01\u0e41\u0e25\u0e30\u0e2b\u0e25\u0e32\u0e01\u0e2b\u0e25\u0e32\u0e22',              img:'https:\/\/images.unsplash.com\/photo-1512917774080-9991f1c4c750?auto=format&fit=crop&w=1400&q=80', mult:1.62},\n    4:{name:'Luxury', desc:'\u0e23\u0e30\u0e14\u0e31\u0e1a flagship \u0e40\u0e15\u0e47\u0e21\u0e15\u0e31\u0e27 \u0e04\u0e27\u0e32\u0e21\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 \u0e27\u0e31\u0e2a\u0e14\u0e38\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e1e\u0e23\u0e35\u0e40\u0e21\u0e35\u0e22\u0e21 \u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e42\u0e14\u0e14\u0e40\u0e14\u0e48\u0e19\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e38\u0e13\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07\u0e2d\u0e2a\u0e31\u0e07\u0e2b\u0e32\u0e23\u0e34\u0e21\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e4c', img:'https:\/\/images.unsplash.com\/photo-1494526585095-c41746248156?auto=format&fit=crop&w=1400&q=80', mult:2.45}\n  },\n  pricing:{\n    base:{pool:1450000, onsen:950000, sauna:480000, steam:420000, plunge:380000, hydro:1100000},\n    setting:{home:1.0, hotel:1.45, business:1.28}\n  },\n  timing:[\n    {id:'asap',     label:'\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e41\u0e25\u0e49\u0e27',   desc:'\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19 \u0e01\u0e33\u0e25\u0e31\u0e07\u0e21\u0e2d\u0e07\u0e2b\u0e32\u0e1e\u0e32\u0e23\u0e4c\u0e17\u0e40\u0e19\u0e2d\u0e23\u0e4c\u0e01\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e48'},\n    {id:'soon',     label:'\u0e40\u0e23\u0e47\u0e27\u0e46 \u0e19\u0e35\u0e49',   desc:'\u0e08\u0e23\u0e34\u0e07\u0e08\u0e31\u0e07\u0e01\u0e31\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c \u0e41\u0e15\u0e48\u0e22\u0e31\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14'},\n    {id:'planning', label:'\u0e20\u0e32\u0e22\u0e2b\u0e25\u0e31\u0e07',     desc:'\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2a\u0e33\u0e23\u0e27\u0e08\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01 \u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e2a\u0e39\u0e48\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e15\u0e31\u0e27\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15'}\n  ],\n  wa:'https:\/\/wa.me\/66818155934?text='\n};\n\nconst STEPS = ['intro','setting','build','style','scale','timing','contact'];\nconst STEP_LABELS = {\n  intro:   '\u0e22\u0e34\u0e19\u0e14\u0e35\u0e15\u0e49\u0e2d\u0e19\u0e23\u0e31\u0e1a',\n  setting: '\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c',\n  build:   '\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e07\u0e32\u0e19',\n  style:   '\u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e0a\u0e2d\u0e1a',\n  scale:   '\u0e02\u0e19\u0e32\u0e14\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c',\n  timing:  '\u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32\u0e01\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07',\n  contact: '\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13'\n};\n\nconst st = {step:0, setting:null, build:'pool', style:null, scale:2, timeline:null,\n            name:'', email:'', phone:'', location:'', notes:''};\n\nconst root       = document.getElementById('ipsEstimator');\nconst stageBg    = document.getElementById('ipsStageBg');\nconst stageBgNext= document.getElementById('ipsStageBgNext');\nconst track      = document.getElementById('ipsTrack');\nconst progLabel  = document.getElementById('ipsProgLabel');\nconst progMeta   = document.getElementById('ipsProgMeta');\nconst progFill   = document.getElementById('ipsProgFill');\n\nfunction thb(v){return '\u0e3f'+Math.round(v).toLocaleString('en-US')}\nfunction esc(s){return String(s||'').replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;').replace(\/\"\/g,'&quot;')}\nfunction buildById(id){return D.build.find(x=>x.id===id) || D.build[0]}\nfunction settingById(id){return D.setting.find(x=>x.id===id)}\n\nfunction calcRange(){\n  if(!st.setting || !st.build) return null;\n  const styleMult = st.style ? (D.style.find(x=>x.id===st.style)?.mult || 1.0) : 1.0;\n  const scaleMult = D.scale[st.scale].mult;\n  const mid = D.pricing.base[st.build] * D.pricing.setting[st.setting] * scaleMult * styleMult;\n  return { lo: Math.round(mid*0.84 \/ 10000) * 10000,\n           hi: Math.round(mid*1.30 \/ 10000) * 10000 };\n}\n\nfunction preloadAll(){\n  const urls = new Set();\n  Object.values(D.bg).forEach(u=>urls.add(u));\n  D.setting.forEach(s=>urls.add(s.img));\n  D.build.forEach(b=>{urls.add(b.img); b.gallery.forEach(g=>urls.add(g));});\n  D.style.forEach(s=>urls.add(s.img));\n  Object.values(D.scale).forEach(s=>urls.add(s.img));\n  urls.forEach(u=>{const i=new Image(); i.src=u;});\n}\n\nfunction setBg(key){\n  const url = D.bg[key] || D.bg.intro;\n  const current = stageBg.style.backgroundImage;\n  const incoming = `url('${url}')`;\n  if(current === incoming) return;\n  stageBgNext.style.backgroundImage = incoming;\n  stageBgNext.style.animation = 'none';\n  stageBgNext.offsetWidth;\n  stageBgNext.style.animation = 'ips-bg-in .7s ease forwards';\n  clearTimeout(setBg._t);\n  setBg._t = setTimeout(()=>{\n    stageBg.style.backgroundImage = incoming;\n    stageBgNext.style.animation = 'none';\n    stageBgNext.style.backgroundImage = '';\n  }, 720);\n}\n\n\/\/ \u2500\u2500\u2500 Templates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction tplIntro(){return `\n  <div class=\"ips-view\">\n    <div class=\"ips-intro\">\n      <div class=\"ips-eyebrow\">Luxury Wellness \u2014 \u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22<\/div>\n      <h1 class=\"ips-display\">\u0e2a\u0e23\u0e49\u0e32\u0e07 Wellness Space<br>\u0e43\u0e19\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e1d\u0e31\u0e19<\/h1>\n      <p class=\"ips-lead\">\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e02\u0e31\u0e49\u0e19 \u0e23\u0e39\u0e49\u0e0a\u0e48\u0e27\u0e07\u0e23\u0e32\u0e04\u0e32\u0e08\u0e23\u0e34\u0e07 \u0e43\u0e0a\u0e49\u0e40\u0e27\u0e25\u0e32\u0e44\u0e21\u0e48\u0e16\u0e36\u0e07 2 \u0e19\u0e32\u0e17\u0e35<\/p>\n      <div class=\"ips-pills\">\n        <div class=\"ips-pill\"><span class=\"ips-pill-dot\"><\/span>\u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e1c\u0e39\u0e01\u0e21\u0e31\u0e14<\/div>\n        <div class=\"ips-pill\"><span class=\"ips-pill-dot\"><\/span>\u0e0a\u0e48\u0e27\u0e07\u0e23\u0e32\u0e04\u0e32\u0e08\u0e23\u0e34\u0e07<\/div>\n        <div class=\"ips-pill\"><span class=\"ips-pill-dot\"><\/span>\u0e17\u0e35\u0e21\u0e07\u0e32\u0e19\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27<\/div>\n      <\/div>\n      <div class=\"ips-actions\"><button class=\"ips-btn ips-btn-primary\" data-next>\u0e40\u0e23\u0e34\u0e48\u0e21\u0e40\u0e25\u0e22<\/button><\/div>\n    <\/div>\n  <\/div>`}\n\nfunction tplSetting(){return `\n  <div class=\"ips-view\">\n    <div class=\"ips-step-head\">\n      <h2 class=\"ips-title\">\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e17\u0e35\u0e48\u0e44\u0e2b\u0e19<\/h2>\n      <p class=\"ips-lead\">\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/p>\n    <\/div>\n    <div class=\"ips-choice-grid\">\n      ${D.setting.map(s=>`\n        <button class=\"ips-choice${st.setting===s.id?' sel':''}\" type=\"button\" data-set=\"${s.id}\">\n          <div class=\"ips-choice-bg\" style=\"background-image:url('${s.img}')\"><\/div>\n          <div class=\"ips-choice-overlay\"><\/div>\n          <div class=\"ips-choice-body\">\n            <div class=\"ips-choice-header\">\n              <div class=\"ips-choice-name\">${s.name}<\/div>\n              <div class=\"ips-check\">\u2713<\/div>\n            <\/div>\n            <div class=\"ips-choice-desc\">${s.desc}<\/div>\n          <\/div>\n        <\/button>`).join('')}\n    <\/div>\n    <div class=\"ips-actions\">\n      <button class=\"ips-btn ips-btn-ghost\" data-back>\u0e01\u0e25\u0e31\u0e1a<\/button>\n      <button class=\"ips-btn ips-btn-primary\" data-next${st.setting?'':' disabled'}>\u0e15\u0e48\u0e2d\u0e44\u0e1b<\/button>\n    <\/div>\n  <\/div>`}\n\nfunction tplBuild(){\n  const b = buildById(st.build);\n  const tiles = b.gallery.slice(0,4).map((src,i)=>{\n    const isMore = (i===3 && b.gallery.length>4);\n    return `\n      <div class=\"ips-gallery-tile${i===0?' tall':''}${isMore?' more-overlay':''}\"\n           style=\"background-image:url('${src}')\"\n           data-gallery=\"${b.id}\"\n           role=\"button\"\n           tabindex=\"0\"\n           aria-label=\"${b.name} \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48 ${i+1}${isMore?' \u2014 \u0e14\u0e39\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14':''}\">\n        ${isMore?`<div class=\"ips-gallery-more\">+${b.gallery.length-4} \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21 \u2192<\/div>`:''}\n      <\/div>`;\n  }).join('');\n\n  return `\n  <div class=\"ips-view\">\n    <div class=\"ips-step-head\">\n      <h2 class=\"ips-title\">\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2d\u0e30\u0e44\u0e23<\/h2>\n      <p class=\"ips-lead\">\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e07\u0e32\u0e19 \u0e41\u0e15\u0e30\u0e23\u0e39\u0e1b\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07<\/p>\n    <\/div>\n    <div class=\"ips-build-wrap\">\n      <div class=\"ips-build-tabs\" role=\"tablist\">\n        ${D.build.map(item=>`\n          <button class=\"ips-build-tab${st.build===item.id?' sel':''}\"\n                  type=\"button\" role=\"tab\" aria-selected=\"${st.build===item.id}\"\n                  data-tab=\"${item.id}\">${item.name}<\/button>`).join('')}\n      <\/div>\n      <div class=\"ips-build-panel\">\n        <div class=\"ips-build-info\">\n          <div class=\"ips-build-info-eyebrow\">\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01<\/div>\n          <div class=\"ips-build-info-name\">${b.name}<\/div>\n          <div class=\"ips-build-info-desc\">${b.desc}<\/div>\n          <button class=\"ips-build-info-action\" type=\"button\" data-gallery=\"${b.id}\">\n            <span class=\"ips-gallery-icon\"><span><\/span><span><\/span><span><\/span><span><\/span><\/span>\n            \u0e14\u0e39\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 \u2192\n          <\/button>\n        <\/div>\n        <div class=\"ips-build-gallery\">${tiles}<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"ips-actions\">\n      <button class=\"ips-btn ips-btn-ghost\" data-back>\u0e01\u0e25\u0e31\u0e1a<\/button>\n      <button class=\"ips-btn ips-btn-primary\" data-next>\u0e15\u0e48\u0e2d\u0e44\u0e1b<\/button>\n    <\/div>\n  <\/div>`;\n}\n\nfunction tplStyle(){return `\n  <div class=\"ips-view\">\n    <div class=\"ips-step-head\">\n      <h2 class=\"ips-title\">\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e48<\/h2>\n      <p class=\"ips-lead\">\u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e08\u0e30\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e41\u0e25\u0e30\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e01\u0e32\u0e28\u0e42\u0e14\u0e22\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c<\/p>\n    <\/div>\n    <div class=\"ips-style-grid\">\n      ${D.style.map(s=>`\n        <button class=\"ips-style-card${st.style===s.id?' sel':''}\" type=\"button\" data-style=\"${s.id}\">\n          <div class=\"ips-style-bg\" style=\"background-image:url('${s.img}')\"><\/div>\n          <div class=\"ips-style-overlay\"><\/div>\n          <div class=\"ips-style-check\">\u2713<\/div>\n          <div class=\"ips-style-body\">\n            <div class=\"ips-style-name\">${s.name}<\/div>\n            <div class=\"ips-style-desc\">${s.desc}<\/div>\n          <\/div>\n        <\/button>`).join('')}\n    <\/div>\n    <div class=\"ips-actions\">\n      <button class=\"ips-btn ips-btn-ghost\" data-back>\u0e01\u0e25\u0e31\u0e1a<\/button>\n      <button class=\"ips-btn ips-btn-primary\" data-next${st.style?'':' disabled'}>\u0e15\u0e48\u0e2d\u0e44\u0e1b<\/button>\n    <\/div>\n  <\/div>`}\n\nfunction tplScale(){\n  const s = D.scale[st.scale];\n  return `\n  <div class=\"ips-view\">\n    <div class=\"ips-step-head\">\n      <h2 class=\"ips-title\">\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e02\u0e19\u0e32\u0e14\u0e43\u0e2b\u0e0d\u0e48\u0e41\u0e04\u0e48\u0e44\u0e2b\u0e19<\/h2>\n    <\/div>\n    <div class=\"ips-scale-grid\">\n      <div class=\"ips-scale-panel\">\n        <div class=\"ips-scale-row\">\n          <h3>\u0e02\u0e19\u0e32\u0e14\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c<\/h3>\n          <div class=\"ips-scale-val\" id=\"ipsScaleLabel\">${s.name}<\/div>\n        <\/div>\n        <input class=\"ips-scale-slider\" id=\"ipsScaleSlider\" type=\"range\" min=\"1\" max=\"4\" step=\"1\" value=\"${st.scale}\" aria-label=\"\u0e02\u0e19\u0e32\u0e14\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\">\n        <div class=\"ips-scale-ticks\"><span>\u0e40\u0e25\u0e47\u0e01<\/span><span>\u0e01\u0e25\u0e32\u0e07<\/span><span>\u0e43\u0e2b\u0e0d\u0e48<\/span><span>Luxury<\/span><\/div>\n        <div class=\"ips-scale-desc\" id=\"ipsScaleDesc\">${s.desc}<\/div>\n      <\/div>\n      <div class=\"ips-scale-photo\">\n        <img decoding=\"async\" id=\"ipsScaleImg\" src=\"${s.img}\" alt=\"${s.name}\">\n        <div class=\"ips-scale-badge\" id=\"ipsScaleBadge\">${s.name}<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"ips-actions\">\n      <button class=\"ips-btn ips-btn-ghost\" data-back>\u0e01\u0e25\u0e31\u0e1a<\/button>\n      <button class=\"ips-btn ips-btn-primary\" data-next>\u0e15\u0e48\u0e2d\u0e44\u0e1b<\/button>\n    <\/div>\n  <\/div>`;\n}\n\nfunction tplTiming(){return `\n  <div class=\"ips-view ips-timing-view\">\n    <div class=\"ips-step-head\">\n      <h2 class=\"ips-title\">\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e44\u0e2b\u0e23\u0e48<\/h2>\n    <\/div>\n    <div class=\"ips-timing-grid\">\n      ${D.timing.map(t=>`\n        <button class=\"ips-timing-card${st.timeline===t.id?' sel':''}\" type=\"button\" data-time=\"${t.id}\">\n          <div class=\"ips-timing-card-inner\">\n            <div class=\"ips-timing-copy\">\n              <strong class=\"ips-timing-label\">${t.label}<\/strong>\n              <span>${t.desc}<\/span>\n            <\/div>\n            <div class=\"ips-timing-radio\" aria-hidden=\"true\"><\/div>\n          <\/div>\n        <\/button>`).join('')}\n    <\/div>\n    <div class=\"ips-actions\">\n      <button class=\"ips-btn ips-btn-ghost\" data-back>\u0e01\u0e25\u0e31\u0e1a<\/button>\n      <button class=\"ips-btn ips-btn-primary\" data-next${st.timeline?'':' disabled'}>\u0e15\u0e48\u0e2d\u0e44\u0e1b<\/button>\n    <\/div>\n  <\/div>`}\n\nfunction tplContact(){\n  const b  = buildById(st.build);\n  const sv = settingById(st.setting);\n  const sc = D.scale[st.scale];\n  const sty= D.style.find(x=>x.id===st.style);\n  return `\n  <div class=\"ips-view ips-contact-view\">\n    <div class=\"ips-step-head\">\n      <div class=\"ips-eyebrow\">\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e2a\u0e38\u0e14\u0e17\u0e49\u0e32\u0e22<\/div>\n      <h2 class=\"ips-title\">\u0e23\u0e32\u0e04\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e41\u0e25\u0e49\u0e27<\/h2>\n      <p class=\"ips-lead\">\u0e01\u0e23\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e23\u0e32\u0e04\u0e32 \u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e1c\u0e39\u0e01\u0e21\u0e31\u0e14 \u0e17\u0e35\u0e21\u0e07\u0e32\u0e19\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e20\u0e32\u0e22\u0e43\u0e19 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07<\/p>\n    <\/div>\n    <div class=\"ips-contact-grid compact\">\n      <div class=\"ips-summary\">\n        <div class=\"ips-summary-title\">\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/div>\n        <div class=\"ips-summary-compact\">\n          <div class=\"ips-summary-chip\"><span>\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a<\/span><span>${sv?.name || '\u2014'}<\/span><\/div>\n          <div class=\"ips-summary-chip\"><span>\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e07\u0e32\u0e19<\/span><span>${b.name}<\/span><\/div>\n          <div class=\"ips-summary-chip\"><span>\u0e2a\u0e44\u0e15\u0e25\u0e4c<\/span><span>${sty?.name || '\u2014'}<\/span><\/div>\n          <div class=\"ips-summary-chip\"><span>\u0e02\u0e19\u0e32\u0e14<\/span><span>${sc.name}<\/span><\/div>\n          <div class=\"ips-summary-chip\"><span>\u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32<\/span><span>${D.timing.find(x=>x.id===st.timeline)?.label || '\u2014'}<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"ips-form compact\">\n        <div class=\"ips-form-grid\">\n          <div class=\"ips-field\">\n            <label class=\"ips-field-label\" for=\"ips-f-name\">\u0e0a\u0e37\u0e48\u0e2d-\u0e19\u0e32\u0e21\u0e2a\u0e01\u0e38\u0e25 *<\/label>\n            <input class=\"ips-input\" id=\"ips-f-name\" type=\"text\" placeholder=\"\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\" value=\"${esc(st.name)}\">\n          <\/div>\n          <div class=\"ips-field\">\n            <label class=\"ips-field-label\" for=\"ips-f-email\">\u0e2d\u0e35\u0e40\u0e21\u0e25 *<\/label>\n            <input class=\"ips-input\" id=\"ips-f-email\" type=\"email\" placeholder=\"you@example.com\" value=\"${esc(st.email)}\">\n          <\/div>\n          <div class=\"ips-field\">\n            <label class=\"ips-field-label\" for=\"ips-f-phone\">\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e42\u0e17\u0e23 \/ WhatsApp *<\/label>\n            <input class=\"ips-input\" id=\"ips-f-phone\" type=\"tel\" placeholder=\"+66...\" value=\"${esc(st.phone)}\">\n          <\/div>\n          <div class=\"ips-field\">\n            <label class=\"ips-field-label\" for=\"ips-f-loc\">\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e01\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07<\/label>\n            <select class=\"ips-select\" id=\"ips-f-loc\">\n              <option value=\"\">\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48<\/option>\n              ${['Bangkok','Chiang Mai','Chiang Rai','Phuket','Koh Samui','Pattaya','Hua Hin','Other']\n                .map(l=>`<option${st.location===l?' selected':''}>${l}<\/option>`).join('')}\n            <\/select>\n          <\/div>\n          <div class=\"ips-field full\">\n            <label class=\"ips-field-label\" for=\"ips-f-notes\">\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c <span style=\"font-weight:400;opacity:.7\">(\u0e44\u0e21\u0e48\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a)<\/span><\/label>\n            <textarea class=\"ips-textarea\" id=\"ips-f-notes\" placeholder=\"\u0e27\u0e34\u0e2a\u0e31\u0e22\u0e17\u0e31\u0e28\u0e19\u0e4c \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2d\u0e2a\u0e31\u0e07\u0e2b\u0e32\u0e23\u0e34\u0e21\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e4c \u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e40\u0e28\u0e29\u2026\">${esc(st.notes)}<\/textarea>\n          <\/div>\n        <\/div>\n        <div class=\"ips-privacy\">\ud83d\udd12 \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e27\u0e32\u0e21\u0e25\u0e31\u0e1a \u0e43\u0e0a\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e2a\u0e2d\u0e1a\u0e16\u0e32\u0e21\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19<\/div>\n        <div class=\"ips-contact-actions\">\n          <button class=\"ips-btn ips-btn-ghost\" data-back type=\"button\">\u0e01\u0e25\u0e31\u0e1a<\/button>\n          <button class=\"ips-btn ips-btn-primary ips-contact-submit\" data-submit type=\"button\">\u0e14\u0e39\u0e23\u0e32\u0e04\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>`;\n}\n\n\/\/ \u2500\u2500\u2500 Render loop \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction render(){\n  const key = STEPS[st.step];\n  setBg(key);\n  progLabel.textContent = STEP_LABELS[key];\n  progMeta.textContent  = `\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 ${st.step+1} \u0e08\u0e32\u0e01 ${STEPS.length}`;\n  progFill.style.width  = `${((st.step+1)\/STEPS.length)*100}%`;\n\n  const views = [tplIntro,tplSetting,tplBuild,tplStyle,tplScale,tplTiming,tplContact];\n  track.innerHTML = views[st.step]();\n  root.classList.toggle('ips-at-intro', key==='intro');\n  bind();\n}\n\n\/\/ \u2500\u2500\u2500 Event bindings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction bind(){\n  track.querySelectorAll('[data-next]').forEach(b=>b.addEventListener('click',()=>{if(validate())goTo(st.step+1)}));\n  track.querySelectorAll('[data-back]').forEach(b=>b.addEventListener('click',()=>goTo(st.step-1)));\n\n  track.querySelectorAll('[data-set]').forEach(b=>b.addEventListener('click',()=>{st.setting=b.dataset.set;render()}));\n  track.querySelectorAll('[data-tab]').forEach(b=>b.addEventListener('click',()=>{st.build=b.dataset.tab;render()}));\n  track.querySelectorAll('[data-style]').forEach(b=>b.addEventListener('click',()=>{st.style=b.dataset.style;render()}));\n  track.querySelectorAll('[data-time]').forEach(b=>b.addEventListener('click',()=>{st.timeline=b.dataset.time;render()}));\n  track.querySelectorAll('[data-gallery]').forEach(el=>{\n    el.addEventListener('click',()=>openGallery(el.dataset.gallery));\n    el.addEventListener('keydown',e=>{\n      if(e.key==='Enter' || e.key===' '){e.preventDefault(); openGallery(el.dataset.gallery);}\n    });\n  });\n  track.querySelector('[data-submit]')?.addEventListener('click',()=>{if(validate(true))showResult()});\n\n  const slider = document.getElementById('ipsScaleSlider');\n  if(slider){\n    slider.addEventListener('input',e=>{\n      st.scale = +e.target.value;\n      const s = D.scale[st.scale];\n      document.getElementById('ipsScaleLabel').textContent = s.name;\n      document.getElementById('ipsScaleDesc').textContent  = s.desc;\n      document.getElementById('ipsScaleBadge').textContent = s.name;\n      const img = document.getElementById('ipsScaleImg');\n      img.style.opacity='0';\n      setTimeout(()=>{img.src=s.img; img.alt=s.name; img.style.opacity='1';},180);\n    });\n  }\n  ['ips-f-name','ips-f-email','ips-f-phone','ips-f-loc','ips-f-notes'].forEach(id=>{\n    const el=document.getElementById(id);\n    const map={'ips-f-name':'name','ips-f-email':'email','ips-f-phone':'phone','ips-f-loc':'location','ips-f-notes':'notes'};\n    if(el) el.addEventListener('input',()=>st[map[id]]=el.value);\n  });\n}\n\nfunction goTo(n){\n  saveContactFields();\n  st.step = Math.max(0, Math.min(STEPS.length-1, n));\n  render();\n  requestAnimationFrame(()=>{\n    track.querySelectorAll('.ips-view').forEach(v=>v.scrollTop=0);\n    const top = root.getBoundingClientRect().top;\n    if(top < -40){\n      root.scrollIntoView({block:'start', behavior:'smooth'});\n    }\n  });\n}\nfunction saveContactFields(){\n  ['ips-f-name','ips-f-email','ips-f-phone','ips-f-loc','ips-f-notes'].forEach(id=>{\n    const el=document.getElementById(id);\n    const map={'ips-f-name':'name','ips-f-email':'email','ips-f-phone':'phone','ips-f-loc':'location','ips-f-notes':'notes'};\n    if(el) st[map[id]] = el.value;\n  });\n}\nfunction validate(isFinal=false){\n  const key=STEPS[st.step];\n  if(key==='setting' && !st.setting){alert('\u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c'); return false;}\n  if(key==='style'   && !st.style){  alert('\u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e0a\u0e2d\u0e1a'); return false;}\n  if(key==='timing'  && !st.timeline){alert('\u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32\u0e01\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07'); return false;}\n  if(isFinal || key==='contact'){\n    saveContactFields();\n    if(!st.name || !st.email || !st.phone){alert('\u0e01\u0e23\u0e38\u0e13\u0e32\u0e01\u0e23\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e2d\u0e35\u0e40\u0e21\u0e25 \u0e41\u0e25\u0e30\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c'); return false;}\n    if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(st.email)){alert('\u0e01\u0e23\u0e38\u0e13\u0e32\u0e01\u0e23\u0e2d\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07'); return false;}\n  }\n  return true;\n}\n\n\/\/ \u2500\u2500\u2500 Lightbox \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction openGallery(id){\n  const b = buildById(id);\n  document.getElementById('ipsLbName').textContent = b.name;\n  document.getElementById('ipsLbDesc').textContent = b.desc;\n  const grid = document.getElementById('ipsLbGrid');\n  grid.innerHTML = b.gallery.map((src,i)=>\n    `<div class=\"ips-lb-tile${i===0?' tall':''}\"><img decoding=\"async\" src=\"${src}\" alt=\"${b.name} \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48 ${i+1}\" loading=\"lazy\"><\/div>`\n  ).join('');\n  const selBtn = document.getElementById('ipsLbSelect');\n  selBtn.textContent = '\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49';\n  selBtn.onclick = ()=>{\n    st.build = id;\n    closeLightbox();\n    render();\n  };\n  document.getElementById('ipsLbBack').onclick = closeLightbox;\n  document.getElementById('ipsLightbox').classList.add('open');\n}\nfunction closeLightbox(){document.getElementById('ipsLightbox').classList.remove('open')}\ndocument.getElementById('ipsLbClose').addEventListener('click',closeLightbox);\ndocument.getElementById('ipsLightbox').addEventListener('click',e=>{\n  if(e.target.id==='ipsLightbox') closeLightbox();\n});\n\n\/\/ \u2500\u2500\u2500 Result modal \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction showResult(){\n  const r = calcRange();\n  if(!r) return;\n  const b  = buildById(st.build);\n  const sv = settingById(st.setting);\n  const sty= D.style.find(x=>x.id===st.style);\n  document.getElementById('ipsPrice').textContent = `${thb(r.lo)} \u2013 ${thb(r.hi)}`;\n  document.getElementById('ipsResultSummary').innerHTML = [\n    ['\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a',    sv?.name || '\u2014'],\n    ['\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e07\u0e32\u0e19', b.name],\n    ['\u0e2a\u0e44\u0e15\u0e25\u0e4c',     sty?.name || '\u2014'],\n    ['\u0e02\u0e19\u0e32\u0e14',      D.scale[st.scale].name],\n    ['\u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32',  D.timing.find(x=>x.id===st.timeline)?.label || '\u2014'],\n    ['\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48',   st.location || '\u0e44\u0e21\u0e48\u0e23\u0e30\u0e1a\u0e38']\n  ].map(row=>`<div class=\"ips-result-row\"><span>${row[0]}<\/span><span>${row[1]}<\/span><\/div>`).join('');\n  const msg = encodeURIComponent(`\u0e2a\u0e27\u0e31\u0e2a\u0e14\u0e35\u0e04\u0e23\u0e31\u0e1a\/\u0e04\u0e48\u0e30 \u0e40\u0e1e\u0e34\u0e48\u0e07\u0e01\u0e23\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e23\u0e32\u0e04\u0e32 Interpool Spa \u0e2a\u0e19\u0e43\u0e08 ${b.name} (${sty?.name || '\u0e2a\u0e44\u0e15\u0e25\u0e4c TBD'} \u0e02\u0e19\u0e32\u0e14 ${D.scale[st.scale].name}) \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a ${sv?.name || '\u0e2d\u0e2a\u0e31\u0e07\u0e2b\u0e32\u0e23\u0e34\u0e21\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e4c\u0e02\u0e2d\u0e07\u0e1c\u0e21\/\u0e2b\u0e19\u0e39'} \u0e43\u0e19 ${st.location || '\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22'} \u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32\u0e01\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07: ${D.timing.find(x=>x.id===st.timeline)?.label || '\u0e44\u0e21\u0e48\u0e23\u0e30\u0e1a\u0e38'} \u0e23\u0e32\u0e04\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49: ${thb(r.lo)}\u2013${thb(r.hi)} \u0e2d\u0e22\u0e32\u0e01\u0e1e\u0e39\u0e14\u0e04\u0e38\u0e22\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e04\u0e23\u0e31\u0e1a\/\u0e04\u0e48\u0e30`);\n  document.getElementById('ipsWaLink').href = D.wa + msg;\n  document.getElementById('ipsResult').classList.add('open');\n}\nfunction closeResult(){document.getElementById('ipsResult').classList.remove('open')}\ndocument.getElementById('ipsResultClose').addEventListener('click',closeResult);\ndocument.getElementById('ipsResultClose2').addEventListener('click',closeResult);\ndocument.getElementById('ipsResult').addEventListener('click',e=>{\n  if(e.target.id==='ipsResult') closeResult();\n});\ndocument.addEventListener('keydown',e=>{\n  if(e.key==='Escape'){closeLightbox(); closeResult();}\n});\n\n\/\/ \u2500\u2500\u2500 Boot \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\npreloadAll();\nstageBg.style.backgroundImage   = `url('${D.bg.intro}')`;\nstageBg.style.backgroundPosition= 'center center';\nrender();\n\n})();\n<\/script>\n<\/body>\n<\/html>\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>Interpool Spa \u2014 \u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e23\u0e32\u0e04\u0e32\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 Wellness INTERPOOL SPA \u2190 \u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e39\u0e48\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c \u0e22\u0e34\u0e19\u0e14\u0e35\u0e15\u0e49\u0e2d\u0e19\u0e23\u0e31\u0e1a \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 1 \u0e08\u0e32\u0e01 7 \u2715 \u2190 \u0e01\u0e25\u0e31\u0e1a \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49 \u0e23\u0e32\u0e04\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 Wellness Space \u0e43\u0e19\u0e1d\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e23\u0e34\u0e07\u0e44\u0e14\u0e49 \u0e08\u0e32\u0e01\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e40\u0e25\u0e37\u0e2d\u0e01 \u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e0a\u0e48\u0e27\u0e07\u0e07\u0e1a\u0e25\u0e07\u0e17\u0e38\u0e19\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22 \u0e17\u0e35\u0e21\u0e07\u0e32\u0e19\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e25\u0e31\u0e1a\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e17\u0e35\u0e48\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e27\u0e48\u0e32\u0e19\u0e35\u0e49 \u2715 \u0e0a\u0e48\u0e27\u0e07\u0e07\u0e1a\u0e25\u0e07\u0e17\u0e38\u0e19\u0e42\u0e14\u0e22\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13 \u2014 \u0e19\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e19\u0e27\u0e17\u0e32\u0e07\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19 \u0e23\u0e32\u0e04\u0e32\u0e08\u0e23\u0e34\u0e07\u0e08\u0e30\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2b\u0e25\u0e31\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e33\u0e23\u0e27\u0e08\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e36\u0e01\u0e29\u0e32\u0e14\u0e49\u0e32\u0e19\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a \u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e16\u0e31\u0e14\u0e44\u0e1b 1\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e41\u0e25\u0e30\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e15\u0e23\u0e07\u0e16\u0e36\u0e07\u0e17\u0e35\u0e21\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c Interpool 2\u0e17\u0e35\u0e48\u0e1b\u0e23\u0e36\u0e01\u0e29\u0e32\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e25\u0e31\u0e1a\u0e20\u0e32\u0e22\u0e43\u0e19 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e40\u0e23\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e1e\u0e39\u0e14\u0e04\u0e38\u0e22\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e27\u0e34\u0e2a\u0e31\u0e22\u0e17\u0e31\u0e28\u0e19\u0e4c \u0e15\u0e2d\u0e1a\u0e17\u0e38\u0e01\u0e04\u0e33\u0e16\u0e32\u0e21 \u0e41\u0e25\u0e30\u0e27\u0e32\u0e07\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15\u0e07\u0e32\u0e19\u0e23\u0e48\u0e27\u0e21\u0e01\u0e31\u0e19 3\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e09\u0e1a\u0e31\u0e1a\u0e40\u0e15\u0e47\u0e21 \u2014 \u0e1f\u0e23\u0e35\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14\u0e41\u0e25\u0e30\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e41\u0e1a\u0e1a\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 \u0e1b\u0e23\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e01\u0e31\u0e1a\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e01\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e2d\u0e2a\u0e31\u0e07\u0e2b\u0e32\u0e23\u0e34\u0e21\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e1b\u0e34\u0e14 \ud83d\udcac \u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e32\u0e40\u0e23\u0e32\u0e17\u0e32\u0e07 WhatsApp<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-17317","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/pages\/17317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/comments?post=17317"}],"version-history":[{"count":4,"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/pages\/17317\/revisions"}],"predecessor-version":[{"id":17321,"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/pages\/17317\/revisions\/17321"}],"wp:attachment":[{"href":"https:\/\/interpoolspa.com\/th\/wp-json\/wp\/v2\/media?parent=17317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}