{"id":40877,"date":"2025-11-29T09:49:24","date_gmt":"2025-11-29T01:49:24","guid":{"rendered":"https:\/\/natureconcept.asia\/?page_id=40877"},"modified":"2026-10-08T07:45:50","modified_gmt":"2026-10-07T23:45:50","slug":"booking","status":"publish","type":"page","link":"https:\/\/natureconceptcm.com\/zh\/booking\/","title":{"rendered":"\u7f51\u7edc\u9884\u7ea6"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"40877\" class=\"elementor elementor-40877\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b2000001 e-con-full e-flex e-con e-parent\" data-id=\"b2000001\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b2000002 elementor-widget elementor-widget-html\" data-id=\"b2000002\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\n<div id=\"nc-booking-v23\" data-booking-environment=\"production\">\n<style>\n#nc-booking-v23{\n  --navy:#0B1470;--red:#6F0000;--ink:#172033;--muted:#6B7486;--line:#E3E8F0;--soft:#F7F9FC;--blue:#EEF2FF;--green:#147D64;\n  font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Noto Sans SC\",Arial,sans-serif;color:var(--ink);\n  background:radial-gradient(circle at 6% 0%,rgba(11,20,112,.07),transparent 31%),#fff;padding:26px 16px 72px\n}\n#nc-booking-v23 *{box-sizing:border-box} #nc-booking-v23 button,#nc-booking-v23 input{font:inherit}\n.nc-shell{max-width:1160px;margin:auto}.nc-preview{display:inline-flex;gap:8px;align-items:center;padding:7px 11px;border:1px solid #F0DB82;background:#FFF8D8;color:#6E5700;border-radius:999px;font-size:12px;font-weight:800}\n.nc-preview:before{content:\"\";width:8px;height:8px;border-radius:50%;background:#E4A400}\n.nc-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;padding:24px 0 26px}.nc-eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);font-weight:800;margin-bottom:12px}\n.nc-hero h1{margin:0 0 14px;font-size:clamp(34px,5vw,60px);line-height:1.04;letter-spacing:-.04em}.nc-hero h1 span{color:var(--navy)}.nc-hero p{margin:0;color:var(--muted);font-size:16px;line-height:1.7;max-width:700px}\n.nc-hero-card{background:linear-gradient(145deg,#101A76,#18248A 58%,#671421);color:#fff;border-radius:26px;padding:24px;box-shadow:0 22px 60px rgba(11,20,112,.2)}\n.nc-hero-card h3{color:#fff;margin:0 0 15px;font-size:19px}.nc-hero-point{display:flex;gap:11px;margin:12px 0}.nc-hero-point i{width:32px;height:32px;border-radius:11px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-style:normal}.nc-hero-point b{display:block;font-size:13px}.nc-hero-point span{font-size:12px;opacity:.8}\n.nc-progress-wrap{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:13px 15px;margin:14px 0 22px;box-shadow:0 8px 25px rgba(18,31,72,.05)}\n.nc-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.nc-step-item{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;color:#9AA2B0}.nc-step-dot{width:27px;height:27px;border-radius:50%;background:#F0F2F6;display:grid;place-items:center}.nc-step-item.active{color:var(--navy)}.nc-step-item.active .nc-step-dot{background:var(--navy);color:#fff}.nc-step-item.done{color:var(--green)}.nc-step-item.done .nc-step-dot{background:#E9F8F2}\n.nc-app{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.nc-main{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 18px 50px rgba(22,35,68,.08)}.nc-side{position:sticky;top:92px}\n.nc-summary{background:#11172E;color:#fff;border-radius:22px;padding:20px}.nc-summary h4{color:#fff;margin:0 0 12px}.nc-srow{padding:11px 0;border-top:1px solid rgba(255,255,255,.11)}.nc-srow:first-of-type{border-top:0}.nc-slabel{font-size:10px;text-transform:uppercase;letter-spacing:.09em;opacity:.58}.nc-sval{font-size:13px;font-weight:700;margin-top:4px;line-height:1.45}.nc-empty{opacity:.52;font-weight:500}\n.nc-sec-head h2{font-size:25px;margin:0 0 5px}.nc-sec-head p{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.55}\n.nc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.nc-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;color:#4A556B;font-weight:800;cursor:pointer}.nc-tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}\n.nc-featured{border:1px solid #D6DCF0;background:linear-gradient(135deg,#F7F8FF,#FFF9F7);border-radius:20px;padding:17px;margin-bottom:14px;display:grid;grid-template-columns:82px 1fr auto;gap:15px;align-items:center}\n.nc-featured img{width:82px;height:82px;border-radius:18px;object-fit:cover;background:#EEF1F7}.nc-featured .badge{display:inline-block;background:#ECEFFF;color:var(--navy);font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;margin-bottom:6px}.nc-featured h3{margin:0 0 3px;font-size:18px}.nc-featured p{margin:0 0 5px;color:var(--muted);font-size:12px}.nc-featured-fast{font-size:12px;color:#3B4762;font-weight:700}.nc-featured button{border:0;background:var(--navy);color:#fff;border-radius:13px;padding:11px 13px;font-weight:800;cursor:pointer}\n.nc-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.nc-category{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center;text-align:left;cursor:pointer}.nc-cat-icon{width:38px;height:38px;border-radius:12px;background:#F1F4FB;color:var(--navy);display:grid;place-items:center;font-weight:900}.nc-cat-copy b{display:block;font-size:14px;margin-bottom:2px}.nc-cat-copy small{display:block;color:var(--muted);font-size:11px;line-height:1.35}.nc-arrow{font-size:22px;color:#929BAD}\n.nc-subback{border:0;background:transparent;color:var(--navy);font-weight:800;padding:0;margin-bottom:14px;cursor:pointer}.nc-subtitle2 h3{margin:0;font-size:22px}.nc-subtitle2 p{margin:4px 0 13px;color:var(--muted);font-size:12px}.nc-service-list{display:grid;gap:9px}.nc-service-row,.nc-clinic-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:15px;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.nc-service-row b,.nc-clinic-card b{display:block;font-size:14px}.nc-service-row small,.nc-clinic-card small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.nc-selectable.selected{border:2px solid var(--navy);background:var(--blue)}\n.nc-doctor-tools{display:flex;gap:9px;align-items:center;margin-bottom:11px}.nc-search{flex:1;height:46px;border:1px solid #D9DFE8;border-radius:14px;padding:0 13px;display:flex;align-items:center;gap:8px}.nc-search input{border:0;outline:0;width:100%;background:transparent}.nc-filter-row{display:flex;gap:7px;overflow:auto;padding:1px 0 8px;margin-bottom:8px;scrollbar-width:none}.nc-filter{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800;color:#566075;cursor:pointer}.nc-filter.active{background:#EEF2FF;color:var(--navy);border-color:#AAB5E0}.nc-doctor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.nc-doctor-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px;display:grid;grid-template-columns:60px 1fr 28px;gap:11px;align-items:center;text-align:left;cursor:pointer}.nc-doctor-card img{width:60px;height:60px;border-radius:14px;object-fit:cover;background:#EDF0F5}.nc-doctor-copy h3{margin:0 0 3px;font-size:14px}.nc-doctor-copy p{margin:0 0 4px;color:#566075;font-size:11px}.nc-doctor-copy small{color:#7B8393;font-size:10px;line-height:1.35}.nc-radio{width:26px;height:26px;border:1px solid #CFD6E3;border-radius:50%;display:grid;place-items:center;color:transparent}.selected .nc-radio{background:var(--navy);border-color:var(--navy);color:#fff}\n.nc-clinic-list{display:grid;gap:9px}.nc-clinic-card{display:grid;grid-template-columns:38px 1fr auto;gap:10px}.nc-clinic-icon{width:36px;height:36px;border-radius:12px;background:#F1F4FB;color:var(--navy);display:grid;place-items:center}\n.nc-actions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.nc-btn{border:0;border-radius:13px;padding:12px 16px;font-weight:850;cursor:pointer}.nc-btn.primary{background:var(--navy);color:#fff}.nc-btn.secondary{background:#F0F2F6;color:#3F4A60}.nc-btn:disabled{opacity:.45;cursor:not-allowed}\n.nc-selected-strip{background:#F7F8FC;border:1px solid var(--line);border-radius:14px;padding:12px 13px;margin-bottom:15px;font-size:12px;color:#4C5870}.nc-selected-strip b{color:var(--ink)}\n.nc-live-status{border:1px solid var(--line);border-radius:14px;background:#FAFBFD;padding:13px;color:#566075;font-size:12px;margin-bottom:13px}.nc-live-status strong{color:var(--ink)}\n.nc-date-row{display:flex;gap:8px;overflow:auto;padding-bottom:5px;scrollbar-width:none}.nc-date{min-width:92px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 10px;text-align:center;cursor:pointer}.nc-date b{display:block;font-size:13px}.nc-date span{font-size:11px;color:var(--muted)}.nc-date.selected{background:var(--blue);border-color:#98A6DE;color:var(--navy)}\n.nc-slot-tools{display:flex;gap:7px;overflow:auto;margin:14px 0 9px;scrollbar-width:none}.nc-branch-chip{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}.nc-branch-chip.active{background:#11172E;color:#fff;border-color:#11172E}.nc-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.nc-slot{border:1px solid var(--line);border-radius:14px;background:#fff;padding:11px;text-align:left;cursor:pointer}.nc-slot b{display:block;font-size:14px;margin-bottom:3px}.nc-slot small{display:block;color:var(--muted);font-size:10px;line-height:1.35}.nc-slot.selected{background:var(--navy);color:#fff;border-color:var(--navy)}.nc-slot.selected small{color:rgba(255,255,255,.78)}.nc-more{width:100%;margin-top:10px;border:1px dashed #C7CFDE;background:#fff;border-radius:12px;padding:10px;color:#566075;font-weight:800;cursor:pointer}\n.nc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nc-field{display:flex;flex-direction:column;gap:6px}.nc-field.full{grid-column:1\/-1}.nc-field label{font-size:11px;font-weight:850;color:#4C566D}.nc-field input{border:1px solid #D9DFE8;border-radius:12px;padding:12px 13px;outline:0}.nc-field input:focus{border-color:#8491C8;box-shadow:0 0 0 3px rgba(11,20,112,.07)}.nc-note{margin-top:13px;border:1px solid var(--line);background:#F8F9FC;border-radius:13px;padding:12px;color:#687286;font-size:11px;line-height:1.55}\n.nc-review{display:grid;gap:10px}.nc-review-card{border:1px solid var(--line);border-radius:16px;padding:15px}.nc-review-card h3{margin:0 0 10px;font-size:15px}.nc-review-row{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:8px 0;border-top:1px solid #EEF1F5}.nc-review-row:first-of-type{border-top:0}.nc-review-row span{font-size:11px;color:var(--muted)}.nc-review-row b{font-size:12px}.nc-submit-lock{background:#FFF8E8;border:1px solid #F1DDA3;color:#705A13;border-radius:14px;padding:12px;font-size:11px;line-height:1.5}.nc-confirm-btn{width:100%;margin-top:12px;background:#CDD2DE!important;color:#fff!important;cursor:not-allowed!important}\n.nc-hidden{display:none!important}.nc-mobile-summary{display:none;background:#F6F8FC;border:1px solid var(--line);border-radius:13px;padding:10px 12px;margin-bottom:12px;font-size:11px;color:#566075}\n@media(max-width:900px){.nc-hero{grid-template-columns:1fr}.nc-app{grid-template-columns:1fr}.nc-side{display:none}.nc-mobile-summary{display:block}}\n@media(max-width:650px){\n  #nc-booking-v23{padding:16px 9px 52px}.nc-hero{padding:16px 0 20px;gap:18px}.nc-hero h1{font-size:36px}.nc-hero p{font-size:14px}.nc-hero-card{padding:18px;border-radius:20px}.nc-main{padding:16px;border-radius:19px}\n  .nc-progress-wrap{padding:9px}.nc-step-item span{display:none}.nc-step-item{justify-content:center}.nc-category-grid{grid-template-columns:1fr}.nc-doctor-grid{grid-template-columns:1fr}.nc-doctor-card{grid-template-columns:54px 1fr 26px}.nc-doctor-card img{width:54px;height:54px}\n  .nc-featured{grid-template-columns:66px 1fr;gap:11px}.nc-featured img{width:66px;height:66px}.nc-featured button{grid-column:1\/-1;width:100%}.nc-slot-grid{grid-template-columns:repeat(2,1fr)}.nc-form-grid{grid-template-columns:1fr}.nc-actions{position:sticky;bottom:8px;background:#fff;border-radius:14px;padding:10px;box-shadow:0 -8px 24px rgba(18,31,72,.08);margin-left:-4px;margin-right:-4px}.nc-review-row{grid-template-columns:95px 1fr}\n}\n\n.nc-featured-carousel{margin-bottom:14px}\n.nc-featured-track{position:relative}\n.nc-featured-slide{margin-bottom:0;animation:ncFeaturedIn .3s ease}\n@keyframes ncFeaturedIn{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}\n.nc-featured-nav{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:9px}\n.nc-featured-arrow{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:20px;line-height:1;cursor:pointer}\n.nc-featured-dots{display:flex;gap:7px;align-items:center}\n.nc-featured-dots button{width:7px;height:7px;border:0;border-radius:999px;background:#CDD3E0;padding:0;cursor:pointer;transition:.2s}\n.nc-featured-dots button.active{width:22px;background:var(--navy)}\n.nc-slot{border-color:#D2D9E5;box-shadow:0 1px 0 rgba(17,23,46,.02)}\n.nc-slot-main{display:flex;align-items:center;gap:9px}\n.nc-slot-doctor-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:#EEF1F6;flex:0 0 32px;border:1px solid #E0E5ED}\n.nc-slot-copy{min-width:0;flex:1}\n.nc-slot-copy b{margin-bottom:3px}\n.nc-slot-doctor{display:block;font-size:10px;color:#566075;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.nc-slot.selected .nc-slot-doctor{color:rgba(255,255,255,.85)}\n@media(max-width:650px){\n  .nc-featured-nav{margin-top:8px}\n  .nc-featured-arrow{width:28px;height:28px}\n  .nc-slot-grid{grid-template-columns:1fr}\n  .nc-slot{border-color:#C8D1E0;padding:12px}\n  .nc-slot-doctor-avatar{width:34px;height:34px;flex-basis:34px}\n}\n@media(prefers-reduced-motion:reduce){.nc-featured-slide{animation:none}}\n\n\n\/* V2.4.1 \u2014 clearer availability cards on desktop + mobile *\/\n.nc-slot{\n  padding:14px 15px;\n  min-height:82px;\n  border-color:#C8D1E0;\n  border-radius:15px;\n  display:flex;\n  align-items:center;\n}\n.nc-slot-main{width:100%;gap:12px}\n.nc-slot-doctor-avatar{\n  width:46px;\n  height:46px;\n  flex:0 0 46px;\n  border:1px solid #D8DEE9;\n}\n.nc-slot-copy b{\n  font-size:16px;\n  line-height:1.2;\n  margin-bottom:5px;\n  font-weight:850;\n}\n.nc-slot-copy small{\n  font-size:12px;\n  line-height:1.4;\n}\n.nc-slot-doctor{\n  font-size:12px;\n  line-height:1.4;\n  margin-top:2px;\n  font-weight:650;\n}\n@media(max-width:650px){\n  .nc-slot{\n    min-height:92px;\n    padding:15px 14px;\n    border-color:#BFC9D9;\n    border-radius:15px;\n  }\n  .nc-slot-main{gap:13px}\n  .nc-slot-doctor-avatar{\n    width:50px;\n    height:50px;\n    flex-basis:50px;\n  }\n  .nc-slot-copy b{\n    font-size:17px;\n    margin-bottom:6px;\n  }\n  .nc-slot-copy small,\n  .nc-slot-doctor{\n    font-size:12.5px;\n    line-height:1.45;\n  }\n}\n\n\n\/* V2.4.2 \u2014 unified back placement + bold practitioner identity *\/\n.nc-top-back{\n  display:inline-flex;\n  align-items:center;\n  gap:6px;\n  border:0;\n  background:transparent;\n  color:var(--navy);\n  padding:0;\n  margin:0 0 14px;\n  font-weight:850;\n  font-size:14px;\n  cursor:pointer;\n}\n.nc-top-back:hover{text-decoration:underline}\n.nc-actions-forward{justify-content:space-between}\n\n\/* Availability card identity is intentionally prominent *\/\n.nc-slot{\n  min-height:104px;\n  padding:16px 17px;\n  border:1px solid #C3CDDC;\n  border-radius:16px;\n}\n.nc-slot-main{gap:15px}\n.nc-slot-doctor-avatar{\n  width:64px;\n  height:64px;\n  flex:0 0 64px;\n  border-radius:16px;\n  border:1px solid #D6DDE8;\n  object-fit:cover;\n  object-position:center top;\n  box-shadow:0 3px 10px rgba(18,31,72,.08);\n}\n.nc-slot-copy b{\n  font-size:18px;\n  line-height:1.15;\n  margin-bottom:7px;\n  font-weight:900;\n}\n.nc-slot-copy small{\n  font-size:13px;\n  line-height:1.45;\n}\n.nc-slot-doctor{\n  margin-top:3px;\n  font-size:13.5px;\n  line-height:1.4;\n  font-weight:800;\n  color:#26324A;\n}\n.nc-slot.selected .nc-slot-doctor{color:#fff}\n\n@media(max-width:650px){\n  .nc-top-back{\n    margin-bottom:13px;\n    font-size:15px;\n  }\n  .nc-slot{\n    min-height:116px;\n    padding:16px;\n    border-color:#B7C3D5;\n  }\n  .nc-slot-main{gap:15px}\n  .nc-slot-doctor-avatar{\n    width:68px;\n    height:68px;\n    flex-basis:68px;\n    border-radius:17px;\n  }\n  .nc-slot-copy b{\n    font-size:19px;\n    margin-bottom:7px;\n  }\n  .nc-slot-copy small{\n    font-size:13.5px;\n  }\n  .nc-slot-doctor{\n    font-size:14px;\n    margin-top:4px;\n  }\n}\n\n\n\/* V2.5 \u2014 readable at normal viewing distance; true mobile layout *\/\n#nc-booking-v23,\n#nc-booking-v23 .nc-shell,\n#nc-booking-v23 .nc-app,\n#nc-booking-v23 .nc-main,\n#nc-booking-v23 .nc-panel{\n  width:100%;\n  max-width:100%;\n  min-width:0;\n}\n#nc-booking-v23 .nc-main,\n#nc-booking-v23 .nc-panel{overflow-x:hidden}\n\n\/* Desktop readability *\/\n.nc-sec-head h2{font-size:32px;line-height:1.18;margin-bottom:8px}\n.nc-sec-head p{font-size:16px;line-height:1.6;margin-bottom:22px}\n.nc-tab{font-size:16px;padding:12px 17px}\n.nc-featured{padding:20px}\n.nc-featured img{width:94px;height:94px}\n.nc-featured .badge{font-size:12px;padding:6px 9px}\n.nc-featured h3{font-size:22px;margin-bottom:5px}\n.nc-featured p,.nc-featured-fast{font-size:14px;line-height:1.5}\n.nc-featured button{font-size:16px;padding:13px 16px}\n.nc-cat-copy b{font-size:17px}\n.nc-cat-copy small{font-size:14px;line-height:1.5}\n.nc-category{padding:17px}\n.nc-cat-icon{width:44px;height:44px;font-size:20px}\n.nc-subtitle2 h3{font-size:28px}\n.nc-subtitle2 p{font-size:15px}\n.nc-service-row,.nc-clinic-card{padding:16px 17px}\n.nc-service-row b,.nc-clinic-card b{font-size:17px}\n.nc-service-row small,.nc-clinic-card small{font-size:14px;line-height:1.45}\n.nc-search{height:52px;font-size:16px}\n.nc-search input{font-size:16px}\n.nc-filter{font-size:14px;padding:10px 14px}\n.nc-doctor-card{grid-template-columns:74px 1fr 30px;padding:15px}\n.nc-doctor-card img{width:74px;height:74px;border-radius:16px}\n.nc-doctor-copy h3{font-size:18px}\n.nc-doctor-copy p{font-size:14px}\n.nc-doctor-copy small{font-size:13px;line-height:1.45}\n.nc-clinic-icon{width:42px;height:42px}\n.nc-selected-strip,.nc-live-status{font-size:15px;line-height:1.55;padding:15px 16px}\n.nc-live-status strong{font-size:15px}\n.nc-date-row{\n  width:100%;max-width:100%;min-width:0;overflow-x:auto;\n  scroll-snap-type:x mandatory;overscroll-behavior-x:contain;\n  gap:10px;padding:0 0 9px;\n}\n.nc-date{\n  flex:0 0 104px;min-width:104px;scroll-snap-align:start;\n  padding:15px 11px;border-radius:15px;\n}\n.nc-date b{font-size:16px}\n.nc-date span{font-size:13px;margin-top:6px;display:block}\n.nc-slot-tools{font-size:14px}\n.nc-branch-chip{font-size:14px;padding:10px 14px}\n.nc-slot-grid{width:100%;min-width:0;gap:11px}\n.nc-slot{\n  min-width:0;width:100%;min-height:128px;padding:18px 19px;\n}\n.nc-slot-main{gap:16px;min-width:0}\n.nc-slot-doctor-avatar{\n  width:74px;height:74px;flex:0 0 74px;border-radius:18px;\n}\n.nc-slot-copy{min-width:0}\n.nc-slot-copy b{font-size:21px;margin-bottom:8px}\n.nc-slot-copy small{font-size:14px;line-height:1.5}\n.nc-slot-doctor{font-size:15px;line-height:1.45;margin-top:4px}\n.nc-more{font-size:16px;padding:13px}\n.nc-btn{font-size:16px;padding:14px 19px;min-height:50px}\n.nc-actions-paired{align-items:center}\n.nc-actions-paired .nc-btn{min-width:132px}\n.nc-field label{font-size:14px}\n.nc-field input{font-size:16px;padding:14px 15px}\n.nc-note{font-size:14px;line-height:1.6;padding:14px 15px}\n.nc-review-card h3{font-size:19px}\n.nc-review-row span{font-size:14px}\n.nc-review-row b{font-size:15px;line-height:1.5}\n.nc-submit-lock{font-size:14px;line-height:1.6}\n.nc-summary h4{font-size:19px}\n.nc-slabel{font-size:12px}\n.nc-sval{font-size:15px}\n.nc-mobile-summary{font-size:14px;line-height:1.5}\n\n\/* legacy top-back no longer appears *\/\n.nc-top-back,.nc-subback{display:none!important}\n\n@media(max-width:650px){\n  #nc-booking-v23{padding:14px 8px 56px;font-size:16px;overflow-x:hidden}\n  .nc-shell,.nc-app,.nc-main,.nc-panel{width:100%;max-width:100%;min-width:0}\n  .nc-main{padding:18px 16px;border-radius:20px;overflow:hidden}\n  .nc-hero h1{font-size:38px;line-height:1.08}\n  .nc-hero p{font-size:16px;line-height:1.65}\n  .nc-hero-card{font-size:15px}\n  .nc-hero-card h3{font-size:20px}\n  .nc-hero-point b{font-size:15px}.nc-hero-point span{font-size:14px;line-height:1.45}\n  .nc-sec-head h2{font-size:28px;line-height:1.2}\n  .nc-sec-head p{font-size:16px;line-height:1.6}\n  .nc-tabs{gap:7px}\n  .nc-tab{font-size:15px;padding:11px 14px}\n  .nc-featured{grid-template-columns:82px 1fr;gap:14px;padding:17px}\n  .nc-featured img{width:82px;height:82px}\n  .nc-featured .badge{font-size:12px}\n  .nc-featured h3{font-size:21px}\n  .nc-featured p,.nc-featured-fast{font-size:14px}\n  .nc-featured button{font-size:16px;min-height:50px}\n  .nc-category{padding:15px}\n  .nc-cat-icon{width:44px;height:44px;font-size:20px}\n  .nc-cat-copy b{font-size:17px}\n  .nc-cat-copy small{font-size:14px;line-height:1.45}\n  .nc-subtitle2 h3{font-size:26px}\n  .nc-subtitle2 p{font-size:15px}\n  .nc-service-row,.nc-clinic-card{padding:16px}\n  .nc-service-row b,.nc-clinic-card b{font-size:17px}\n  .nc-service-row small,.nc-clinic-card small{font-size:14px}\n  .nc-search{height:54px;font-size:16px}\n  .nc-search input{font-size:16px}\n  .nc-filter-row{gap:8px}\n  .nc-filter{font-size:14px;padding:10px 13px}\n  .nc-doctor-card{grid-template-columns:76px 1fr 30px;padding:14px;gap:13px}\n  .nc-doctor-card img{width:76px;height:76px;border-radius:17px}\n  .nc-doctor-copy h3{font-size:18px}\n  .nc-doctor-copy p{font-size:14px}\n  .nc-doctor-copy small{font-size:13.5px}\n  .nc-selected-strip,.nc-live-status{font-size:15px;padding:14px 15px}\n  .nc-date-row{gap:8px;padding:0 0 10px}\n  .nc-date{\n    flex:0 0 calc((100% - 16px)\/3);\n    min-width:calc((100% - 16px)\/3);\n    padding:15px 6px;\n  }\n  .nc-date b{font-size:16px}\n  .nc-date span{font-size:13px}\n  .nc-slot-tools{\n    width:100%;max-width:100%;overflow:visible;\n    display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 11px;\n  }\n  .nc-branch-chip{\n    white-space:normal;font-size:14px;line-height:1.25;padding:10px 13px;\n    max-width:100%;\n  }\n  .nc-slot-grid{grid-template-columns:1fr!important;gap:10px;width:100%;min-width:0}\n  .nc-slot{\n    width:100%;max-width:100%;min-width:0;min-height:136px;\n    padding:18px 16px;border-color:#B8C4D5;border-radius:17px;\n  }\n  .nc-slot-main{gap:16px;min-width:0}\n  .nc-slot-doctor-avatar{\n    width:80px;height:80px;flex:0 0 80px;border-radius:18px;\n  }\n  .nc-slot-copy b{font-size:22px;line-height:1.15;margin-bottom:9px}\n  .nc-slot-copy small{font-size:15px;line-height:1.5}\n  .nc-slot-doctor{font-size:16px;line-height:1.45;margin-top:4px}\n  .nc-more{font-size:16px;padding:14px}\n  .nc-actions{\n    position:sticky;bottom:8px;z-index:8;\n    display:flex;align-items:center;justify-content:space-between;gap:10px;\n    width:100%;max-width:100%;min-width:0;\n    padding:11px;background:rgba(255,255,255,.97);\n    border-radius:15px;box-shadow:0 -8px 24px rgba(18,31,72,.09);\n    margin:20px 0 0;\n  }\n  .nc-actions-paired .nc-btn{\n    flex:1;min-width:0;font-size:16px;min-height:52px;padding:13px 10px;\n  }\n  .nc-actions-paired .nc-btn.secondary{max-width:38%}\n  .nc-actions-paired .nc-btn.primary{max-width:62%}\n  .nc-form-grid{grid-template-columns:1fr;gap:14px}\n  .nc-field label{font-size:15px}\n  .nc-field input{font-size:16px;min-height:50px;padding:14px}\n  .nc-note{font-size:14px}\n  .nc-review-row{grid-template-columns:105px 1fr;gap:10px}\n  .nc-review-row span{font-size:14px}.nc-review-row b{font-size:15px}\n  .nc-mobile-summary{font-size:14px;padding:12px 13px}\n}\n\n\n\/* V2.5.1 \u2014 larger practitioner portrait + use horizontal card space *\/\n.nc-slot{\n  min-height:148px;\n  padding:18px 22px;\n}\n.nc-slot-main{\n  display:grid;\n  grid-template-columns:104px minmax(0,1fr);\n  align-items:center;\n  gap:22px;\n  width:100%;\n}\n.nc-slot-doctor-avatar{\n  width:104px;\n  height:104px;\n  flex:none;\n  border-radius:20px;\n  object-fit:contain;\n  object-position:center bottom;\n  background:#F4F6FA;\n  border:1px solid #D6DDE8;\n  box-shadow:0 4px 14px rgba(18,31,72,.08);\n}\n.nc-slot-copy{\n  min-width:0;\n  padding-right:10px;\n}\n.nc-slot-copy b{\n  font-size:24px;\n  line-height:1.1;\n  margin-bottom:10px;\n}\n.nc-slot-copy small{\n  font-size:15px;\n  line-height:1.5;\n}\n.nc-slot-doctor{\n  font-size:17px;\n  line-height:1.45;\n  margin-top:5px;\n  font-weight:850;\n}\n\n@media(max-width:650px){\n  .nc-slot{\n    min-height:156px;\n    padding:18px 18px;\n  }\n  .nc-slot-main{\n    grid-template-columns:112px minmax(0,1fr);\n    gap:20px;\n  }\n  .nc-slot-doctor-avatar{\n    width:112px;\n    height:112px;\n    border-radius:20px;\n  }\n  .nc-slot-copy{\n    padding-right:0;\n  }\n  .nc-slot-copy b{\n    font-size:25px;\n    margin-bottom:9px;\n  }\n  .nc-slot-copy small{\n    font-size:15.5px;\n  }\n  .nc-slot-doctor{\n    font-size:17px;\n    margin-top:5px;\n  }\n}\n\n\n\/* V2.5.2 \u2014 face-first practitioner crop *\/\n.nc-slot-doctor-avatar{\n  object-fit:cover;\n  object-position:center 14%;\n  background:#F2F4F8;\n}\n@media(max-width:650px){\n  .nc-slot-doctor-avatar{\n    object-fit:cover;\n    object-position:center 12%;\n  }\n}\n\n\n\/* V2.5.3 \u2014 true face crop + 3-slot default *\/\n.nc-slot-avatar-frame{\n  width:104px;\n  height:104px;\n  border-radius:20px;\n  overflow:hidden;\n  display:block;\n  background:#F4F6FA;\n  border:1px solid #D6DDE8;\n  box-shadow:0 4px 14px rgba(18,31,72,.08);\n}\n.nc-slot-doctor-avatar{\n  width:100%;\n  height:100%;\n  border:0;\n  border-radius:0;\n  object-fit:cover;\n  object-position:center top;\n  transform:scale(1.72);\n  transform-origin:50% 22%;\n  box-shadow:none;\n}\n@media(max-width:650px){\n  .nc-slot-avatar-frame{\n    width:112px;\n    height:112px;\n    border-radius:20px;\n  }\n  .nc-slot-doctor-avatar{\n    transform:scale(1.82);\n    transform-origin:50% 20%;\n  }\n}\n\n\n\/* V2.5.4 \u2014 universal practitioner card + top-preserving crop *\/\n.nc-slot-doctor-avatar{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:center top;\n  transform:scale(1.72);\n  transform-origin:50% 0%;\n}\n@media(max-width:650px){\n  .nc-slot-doctor-avatar{\n    transform:scale(1.82);\n    transform-origin:50% 0%;\n  }\n}\n\n\n\/* V2.5.5 \u2014 desktop breathing room + unified practitioner portrait system *\/\n@media(min-width:901px){\n  #nc-booking-v23{\n    padding:34px 28px 84px;\n  }\n  #nc-booking-v23 .nc-shell{\n    width:min(1240px,100%);\n    max-width:1240px;\n    margin:0 auto;\n  }\n  .nc-hero{\n    gap:42px;\n    padding:26px 0 34px;\n  }\n  .nc-progress-wrap{\n    margin:18px 0 26px;\n  }\n  .nc-app{\n    grid-template-columns:minmax(0,1fr) 280px;\n    gap:26px;\n  }\n  .nc-main{\n    padding:28px;\n  }\n  .nc-category-grid{\n    gap:12px;\n  }\n  .nc-category,\n  .nc-service-row,\n  .nc-clinic-card{\n    max-width:100%;\n  }\n  .nc-slot-grid{\n    grid-template-columns:repeat(3,minmax(0,1fr));\n  }\n}\n\n\/* Same portrait crop logic everywhere: preserve top, crop sides + lower body *\/\n.nc-practitioner-photo-frame{\n  overflow:hidden;\n  display:block;\n  background:#F4F6FA;\n  border:1px solid #D6DDE8;\n  box-shadow:0 4px 14px rgba(18,31,72,.08);\n}\n.nc-practitioner-photo{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:center top;\n  transform:scale(1.72);\n  transform-origin:50% 0%;\n  border:0!important;\n  border-radius:0!important;\n  box-shadow:none!important;\n}\n.nc-featured-photo{\n  width:94px;\n  height:94px;\n  border-radius:18px;\n}\n.nc-doctor-card-photo{\n  width:74px;\n  height:74px;\n  border-radius:16px;\n}\n.nc-slot-avatar-frame{\n  width:104px;\n  height:104px;\n  border-radius:20px;\n}\n@media(max-width:650px){\n  .nc-practitioner-photo{\n    transform:scale(1.82);\n    transform-origin:50% 0%;\n  }\n  .nc-featured-photo{\n    width:82px;\n    height:82px;\n    border-radius:17px;\n  }\n  .nc-doctor-card-photo{\n    width:76px;\n    height:76px;\n    border-radius:17px;\n  }\n  .nc-slot-avatar-frame{\n    width:112px;\n    height:112px;\n    border-radius:20px;\n  }\n}\n\n\n\/* V2.6 \u2014 clearer starting choices + featured-card spacing *\/\n.nc-entry-grid{\n  display:grid;\n  grid-template-columns:1.25fr 1fr 1fr;\n  gap:12px;\n  margin-bottom:20px;\n}\n.nc-entry-card{\n  border-radius:18px;\n  min-height:112px;\n  padding:16px 18px;\n  display:flex;\n  flex-direction:column;\n  align-items:flex-start;\n  justify-content:center;\n  text-align:left;\n  white-space:normal;\n}\n.nc-entry-card strong{\n  font-size:17px;\n  line-height:1.25;\n}\n.nc-entry-card small{\n  display:block;\n  margin-top:6px;\n  font-size:13px;\n  line-height:1.45;\n  color:#6B7486;\n  font-weight:500;\n}\n.nc-entry-card.active small,\n.nc-entry-card.primary.active small{color:rgba(255,255,255,.82)}\n.nc-entry-kicker{\n  display:inline-flex;\n  margin-bottom:7px;\n  padding:4px 7px;\n  border-radius:999px;\n  background:#EEF2FF;\n  color:var(--navy);\n  font-size:10px;\n  font-weight:900;\n  letter-spacing:.03em;\n}\n.nc-entry-card.primary.active .nc-entry-kicker{\n  background:rgba(255,255,255,.16);\n  color:#fff;\n}\n.nc-featured{\n  column-gap:28px;\n}\n.nc-featured > div{\n  padding-left:2px;\n}\n@media(max-width:650px){\n  .nc-entry-grid{\n    grid-template-columns:1fr 1fr;\n    gap:9px;\n  }\n  .nc-entry-card{\n    min-height:104px;\n    padding:14px;\n  }\n  .nc-entry-card.primary{\n    grid-column:1\/-1;\n    min-height:116px;\n  }\n  .nc-entry-card strong{font-size:17px}\n  .nc-entry-card small{font-size:14px}\n  .nc-featured{column-gap:18px}\n}\n\n\n\/* V2.7 \u2014 production-facing cleanup + stronger stepper *\/\n.nc-preview,.nc-hero-card{display:none!important}\n.nc-hero-clean{\n  display:block!important;\n  grid-template-columns:none!important;\n  padding:34px 0 30px!important;\n  max-width:880px;\n}\n.nc-hero-clean h1{max-width:760px}\n.nc-hero-clean p{max-width:780px}\n\n.nc-progress-wrap{\n  padding:16px 20px;\n  margin:10px 0 26px;\n  border:1px solid #D8DFEA;\n  border-radius:20px;\n  box-shadow:0 10px 30px rgba(18,31,72,.06);\n}\n.nc-progress{\n  grid-template-columns:repeat(4,minmax(0,1fr));\n  gap:14px;\n}\n.nc-step-item{\n  position:relative;\n  gap:12px;\n  font-size:15px;\n  font-weight:800;\n  color:#8A94A6;\n  min-width:0;\n}\n.nc-step-dot{\n  width:38px;\n  height:38px;\n  flex:0 0 38px;\n  font-size:15px;\n  font-weight:900;\n  border:1px solid #DDE3EC;\n}\n.nc-step-item.active{\n  color:var(--navy);\n  font-weight:900;\n}\n.nc-step-item.active .nc-step-dot{\n  background:var(--navy);\n  border-color:var(--navy);\n  box-shadow:0 0 0 5px rgba(11,20,112,.08);\n}\n.nc-step-item.done{color:#147D64}\n.nc-step-item.done .nc-step-dot{background:#E5F5EF;border-color:#BDE3D5;color:#147D64}\n\n@media(max-width:650px){\n  .nc-hero-clean{padding:22px 0 22px!important}\n  .nc-progress-wrap{padding:12px 10px;margin:8px 0 18px}\n  .nc-progress{gap:6px}\n  .nc-step-item{\n    display:flex!important;\n    flex-direction:column;\n    justify-content:flex-start;\n    align-items:center;\n    gap:6px;\n    text-align:center;\n    font-size:12.5px;\n    line-height:1.2;\n  }\n  .nc-step-item span{display:block!important;white-space:normal}\n  .nc-step-dot{\n    width:34px;height:34px;flex-basis:34px;font-size:14px;\n  }\n}\n\n\n\/* V2.8 \u2014 public copy cleanup + readable names *\/\n.nc-slot-doctor{\n  white-space:normal!important;\n  overflow:visible!important;\n  text-overflow:clip!important;\n  word-break:normal;\n  line-height:1.3;\n}\n.nc-slot-copy{overflow:visible}\n.nc-date-more{\n  margin:10px 0 4px;\n  width:auto;\n  min-width:150px;\n  padding-left:18px;\n  padding-right:18px;\n}\n\n\n\/* V2.9 \u2014 deterministic date expansion + phone country code *\/\n.nc-actions .nc-btn.primary{margin-left:auto}\n\n.nc-date-row{\n  display:grid!important;\n  grid-template-columns:repeat(8,minmax(0,1fr));\n  gap:10px!important;\n  overflow:visible!important;\n  padding-bottom:0!important;\n}\n.nc-date{\n  width:100%;\n  min-width:0!important;\n  min-height:98px;\n}\n.nc-date-more{\n  display:block;\n  margin:12px 0 4px;\n  width:max-content;\n  min-width:150px;\n}\n\n.nc-phone-wrap{\n  display:grid;\n  grid-template-columns:minmax(150px,190px) minmax(0,1fr);\n  gap:8px;\n}\n.nc-country-code,\n.nc-other-code{\n  width:100%;\n  border:1px solid #D9DFE8;\n  border-radius:12px;\n  padding:12px 13px;\n  outline:0;\n  background:#fff;\n  color:var(--ink);\n}\n.nc-country-code:focus,\n.nc-other-code:focus{\n  border-color:#8491C8;\n  box-shadow:0 0 0 3px rgba(11,20,112,.07);\n}\n.nc-other-code{margin-top:8px}\n\n@media(max-width:900px) and (min-width:651px){\n  .nc-date-row{grid-template-columns:repeat(4,minmax(0,1fr))}\n}\n@media(max-width:650px){\n  .nc-date-row{\n    grid-template-columns:repeat(3,minmax(0,1fr))!important;\n    gap:8px!important;\n  }\n  .nc-date{min-height:92px}\n  .nc-date-more{\n    width:100%;\n    margin-top:10px;\n  }\n  .nc-phone-wrap{\n    grid-template-columns:145px minmax(0,1fr);\n    gap:8px;\n  }\n  .nc-country-code{font-size:14px;padding:13px 10px}\n}\n\n\n\/* V2.10 \u2014 identity verification UX *\/\n.nc-id-toggle{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:6px;\n  padding:4px;\n  background:#F3F5F9;\n  border-radius:12px;\n  margin-bottom:8px;\n}\n.nc-id-mode{\n  border:0;\n  background:transparent;\n  border-radius:9px;\n  min-height:40px;\n  padding:8px 10px;\n  color:#566075;\n  font-weight:800;\n  cursor:pointer;\n}\n.nc-id-mode.active{\n  background:#fff;\n  color:var(--navy);\n  box-shadow:0 2px 8px rgba(18,31,72,.08);\n}\n.nc-field-help{\n  min-height:18px;\n  margin-top:2px;\n  font-size:12px;\n  line-height:1.4;\n  color:#7B8393;\n}\n.nc-field-help.error{color:#A32132}\n.nc-field-help.hint{color:#66738A}\n.nc-field input.nc-invalid{\n  border-color:#C85B67!important;\n  box-shadow:0 0 0 3px rgba(180,52,69,.07)!important;\n}\n.nc-field input.nc-valid{border-color:#73A996}\n.nc-btn.primary:disabled{\n  opacity:.45;\n  cursor:not-allowed;\n}\n@media(max-width:650px){\n  .nc-id-toggle{gap:5px}\n  .nc-id-mode{font-size:14px;min-height:44px}\n  .nc-field-help{font-size:13px}\n}\n\n\n\/* V2.11 \u2014 Professional Clinical + Warm Premium visual polish *\/\n#nc-booking-v23{\n  --ink:#10192A;\n  --muted:#566276;\n  --line:#D5DDEA;\n  --line-strong:#C2CDDC;\n  --soft:#F4F6FA;\n  --soft-blue:#F1F4FF;\n  --soft-warm:#FBF8F6;\n  background:\n    radial-gradient(circle at 8% 0%,rgba(11,20,112,.075),transparent 30%),\n    linear-gradient(180deg,#F7F8FB 0%,#F2F4F8 100%);\n  color:var(--ink);\n}\n.nc-shell{filter:none}\n\n.nc-hero-clean{\n  position:relative;\n}\n.nc-eyebrow{\n  color:#101A78;\n  font-weight:900;\n  letter-spacing:.11em;\n}\n.nc-hero h1{\n  color:#10192A;\n  font-weight:900;\n  text-wrap:balance;\n}\n.nc-hero h1 span{color:#111E91}\n.nc-hero p{\n  color:#526078;\n  font-weight:520;\n}\n\n.nc-progress-wrap{\n  background:rgba(255,255,255,.97)!important;\n  border-color:#CFD8E6!important;\n  box-shadow:0 12px 34px rgba(18,31,72,.09)!important;\n}\n.nc-step-item{color:#7A8598!important}\n.nc-step-dot{\n  background:#EEF1F6!important;\n  border-color:#D2D9E4!important;\n  color:#657085;\n}\n.nc-step-item.active{\n  color:var(--navy)!important;\n}\n.nc-step-item.active .nc-step-dot{\n  background:var(--navy)!important;\n  color:#fff!important;\n  border-color:var(--navy)!important;\n  box-shadow:0 0 0 5px rgba(11,20,112,.10),0 5px 14px rgba(11,20,112,.18)!important;\n}\n.nc-step-item.done{color:#176E5C!important}\n.nc-step-item.done .nc-step-dot{\n  background:#E0F2EC!important;\n  border-color:#B9DDCF!important;\n  color:#176E5C!important;\n}\n\n.nc-main{\n  background:#FFFFFF!important;\n  border-color:#CDD6E4!important;\n  box-shadow:0 24px 60px rgba(21,33,64,.105)!important;\n}\n.nc-summary{\n  background:linear-gradient(160deg,#111831 0%,#171F43 100%)!important;\n  border:1px solid rgba(255,255,255,.08);\n  box-shadow:0 22px 45px rgba(17,24,49,.20);\n}\n.nc-summary h4{font-weight:900}\n.nc-slabel{opacity:.68!important}\n.nc-empty{opacity:.62!important}\n\n.nc-sec-head h2{\n  color:#10192A;\n  font-weight:900;\n}\n.nc-sec-head p{\n  color:#5C687B!important;\n}\n\n.nc-entry-card,\n.nc-category,\n.nc-service-row,\n.nc-clinic-card,\n.nc-doctor-card,\n.nc-date,\n.nc-slot,\n.nc-review-card{\n  border-color:#CFD8E6!important;\n  box-shadow:0 4px 14px rgba(18,31,72,.035);\n}\n.nc-entry-card,\n.nc-category,\n.nc-service-row,\n.nc-clinic-card,\n.nc-doctor-card,\n.nc-date,\n.nc-slot{\n  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;\n}\n@media(hover:hover){\n  .nc-entry-card:hover,\n  .nc-category:hover,\n  .nc-service-row:hover,\n  .nc-clinic-card:hover,\n  .nc-doctor-card:hover,\n  .nc-date:hover,\n  .nc-slot:hover{\n    border-color:#AAB7CC!important;\n    box-shadow:0 9px 22px rgba(18,31,72,.08);\n    transform:translateY(-1px);\n  }\n}\n\n.nc-entry-card:not(.active),\n.nc-category,\n.nc-service-row,\n.nc-clinic-card,\n.nc-doctor-card,\n.nc-date,\n.nc-slot,\n.nc-review-card{\n  background:#fff!important;\n}\n.nc-entry-card.active,\n.nc-tab.active{\n  background:linear-gradient(145deg,#0B1470,#17269A)!important;\n  border-color:#0B1470!important;\n  box-shadow:0 10px 26px rgba(11,20,112,.19)!important;\n}\n.nc-entry-card.active strong{color:#fff}\n.nc-entry-card.active small{color:rgba(255,255,255,.86)!important}\n\n.nc-featured{\n  background:\n    linear-gradient(135deg,rgba(238,242,255,.96),rgba(252,247,244,.97))!important;\n  border-color:#C8D2E4!important;\n  box-shadow:0 12px 28px rgba(18,31,72,.075);\n}\n.nc-featured .badge{\n  background:#E2E8FF!important;\n  color:#0B1470!important;\n  border:1px solid #CBD5FF;\n}\n.nc-featured-fast{color:#313D58!important}\n\n.nc-practitioner-photo-frame,\n.nc-slot-avatar-frame{\n  background:linear-gradient(180deg,#EEF2F7,#E8EDF5)!important;\n  border-color:#C8D2E1!important;\n  box-shadow:0 5px 16px rgba(18,31,72,.09)!important;\n}\n.nc-cat-icon,\n.nc-clinic-icon{\n  background:#EEF2FA!important;\n  border:1px solid #D9E0EC;\n}\n\n.nc-selectable.selected,\n.nc-doctor-card.selected,\n.nc-service-row.selected,\n.nc-clinic-card.selected{\n  background:#EEF2FF!important;\n  border:2px solid #2638A6!important;\n  box-shadow:0 0 0 3px rgba(38,56,166,.07),0 8px 18px rgba(18,31,72,.07)!important;\n}\n.nc-filter{\n  border-color:#D0D8E5!important;\n  color:#46536A!important;\n}\n.nc-filter.active{\n  background:#E9EEFF!important;\n  color:#0B1470!important;\n  border-color:#8FA0E0!important;\n  box-shadow:inset 0 0 0 1px rgba(11,20,112,.04);\n}\n.nc-radio{border-color:#BFC9D8!important}\n.selected .nc-radio{\n  background:#0B1470!important;\n  border-color:#0B1470!important;\n}\n\n.nc-selected-strip{\n  background:#F3F5F9!important;\n  border-color:#D5DDE8!important;\n  color:#41506A!important;\n}\n.nc-live-status{\n  background:#F8FAFD!important;\n  border-color:#D5DDEA!important;\n  color:#47556B!important;\n}\n.nc-date{\n  background:#fff!important;\n}\n.nc-date.selected{\n  background:#E8EDFF!important;\n  border:2px solid #5065C3!important;\n  color:#0B1470!important;\n  box-shadow:0 7px 17px rgba(11,20,112,.09)!important;\n}\n.nc-branch-chip{\n  border-color:#CDD6E3!important;\n  background:#fff!important;\n}\n.nc-branch-chip.active{\n  background:#151D3B!important;\n  border-color:#151D3B!important;\n  color:#fff!important;\n}\n.nc-slot.selected{\n  background:linear-gradient(145deg,#0B1470,#192898)!important;\n  border-color:#0B1470!important;\n  color:#fff!important;\n  box-shadow:0 11px 24px rgba(11,20,112,.18)!important;\n}\n.nc-slot.selected .nc-slot-doctor{color:#fff!important}\n\n.nc-btn{\n  min-height:50px;\n  border-radius:14px!important;\n  letter-spacing:.005em;\n}\n.nc-btn.primary,\n.nc-featured button{\n  background:linear-gradient(145deg,#0B1470,#18279A)!important;\n  color:#fff!important;\n  box-shadow:0 8px 18px rgba(11,20,112,.16);\n}\n@media(hover:hover){\n  .nc-btn.primary:not(:disabled):hover,\n  .nc-featured button:hover{\n    box-shadow:0 11px 24px rgba(11,20,112,.23);\n    transform:translateY(-1px);\n  }\n}\n.nc-btn.secondary{\n  background:#EDEFF4!important;\n  color:#334057!important;\n  border:1px solid #DCE2EA;\n}\n.nc-more{\n  background:#FAFBFD!important;\n  border-color:#BFC9D8!important;\n  color:#42506A!important;\n}\n.nc-date-more{\n  background:#fff!important;\n  border:1px solid #BCC7D7!important;\n  box-shadow:0 4px 12px rgba(18,31,72,.04);\n}\n\n.nc-search,\n.nc-field input,\n.nc-country-code,\n.nc-other-code{\n  background:#fff!important;\n  border-color:#CBD4E1!important;\n}\n.nc-search:focus-within,\n.nc-field input:focus,\n.nc-country-code:focus,\n.nc-other-code:focus{\n  border-color:#6172C5!important;\n  box-shadow:0 0 0 4px rgba(11,20,112,.08)!important;\n}\n.nc-field label{\n  color:#36445D!important;\n  font-weight:900!important;\n}\n.nc-field-help{color:#66748A!important}\n.nc-note{\n  background:#F5F7FA!important;\n  border-color:#D7DEE9!important;\n  color:#536078!important;\n}\n.nc-review-card{\n  background:#FBFCFE!important;\n}\n.nc-review-row{\n  border-color:#E1E6EE!important;\n}\n.nc-review-row span{color:#667287!important}\n.nc-review-row b{color:#172033!important}\n\n@media(max-width:650px){\n  #nc-booking-v23{\n    background:linear-gradient(180deg,#F5F7FA 0%,#EEF1F5 100%)!important;\n  }\n  .nc-main{\n    box-shadow:0 16px 38px rgba(21,33,64,.10)!important;\n  }\n  .nc-entry-card,\n  .nc-category,\n  .nc-service-row,\n  .nc-clinic-card,\n  .nc-doctor-card,\n  .nc-date,\n  .nc-slot{\n    box-shadow:0 3px 11px rgba(18,31,72,.045);\n  }\n}\n\n\n\/* Booking V2 production shell *\/\nbody.page-id-40877 #fancy-header,\nbody.page-id-40877 .fancy-header,\nbody.page-id-40877 #page-title,\nbody.page-id-40877 .page-title,\nbody.page-id-40877 .page-title-head,\n#fancy-header,\n.fancy-header,\n#page-title,\n.page-title-head{\n  display:none!important;\n  height:0!important;\n  min-height:0!important;\n  margin:0!important;\n  padding:0!important;\n  overflow:hidden!important;\n}\n.nc-confirm-status{min-height:22px;margin-top:10px;font-size:14px;line-height:1.5;font-weight:700;color:#536078}\n.nc-confirm-status.error{color:#A32132}\n.nc-confirm-status.success{color:#176E5C}\n.nc-confirm-btn:not(:disabled){background:linear-gradient(145deg,#0B1470,#18279A)!important;color:#fff!important;cursor:pointer!important;box-shadow:0 8px 18px rgba(11,20,112,.16)!important}.nc-confirm-btn:disabled{opacity:.58;cursor:not-allowed!important}\n\n<\/style>\n\n<div class=\"nc-shell\">\n  <section class=\"nc-hero nc-hero-clean\">\n    <div><div class=\"nc-eyebrow\">NATURE CONCEPT BOOKING SYSTEM<\/div><h1>A simpler way to book<br><span>care that fits your needs<\/span><\/h1><p>Choose your care, practitioner and preferred time in a few simple steps.<\/p><\/div>\n    <\/section>\n\n  <div class=\"nc-progress-wrap\"><div class=\"nc-progress\">\n    <div class=\"nc-step-item active\" data-pstep=\"1\"><div class=\"nc-step-dot\">1<\/div><span>Choose care<\/span><\/div>\n    <div class=\"nc-step-item\" data-pstep=\"2\"><div class=\"nc-step-dot\">2<\/div><span>Time & location<\/span><\/div>\n    <div class=\"nc-step-item\" data-pstep=\"3\"><div class=\"nc-step-dot\">3<\/div><span>Your details<\/span><\/div>\n    <div class=\"nc-step-item\" data-pstep=\"4\"><div class=\"nc-step-dot\">4<\/div><span>Review<\/span><\/div>\n  <\/div><\/div>\n\n  <div id=\"ncMobileSummary\" class=\"nc-mobile-summary\">Nothing selected yet<\/div>\n\n  <div class=\"nc-app\">\n    <main class=\"nc-main\">\n      <section class=\"nc-panel\" data-step=\"1\">\n        <div class=\"nc-sec-head\"><h2>How would you like to start?<\/h2><p>Choose the path that feels easiest for you.<\/p><\/div>\n        <div class=\"nc-tabs nc-entry-grid\">\n          <button type=\"button\" class=\"nc-tab nc-entry-card active primary\" data-mode=\"need\">\n            <span class=\"nc-entry-kicker\">Recommended<\/span>\n            <strong>Book by Health Concern<\/strong>\n            <small>Not sure which practitioner to choose? Start with your health needs.<\/small>\n          <\/button>\n          <button type=\"button\" class=\"nc-tab nc-entry-card\" data-mode=\"doctor\">\n            <strong>Choose a Practitioner<\/strong>\n            <small>Already know who you would like to see.<\/small>\n          <\/button>\n          <button type=\"button\" class=\"nc-tab nc-entry-card\" data-mode=\"clinic\">\n            <strong>Choose a Location<\/strong>\n            <small>Start with the location most convenient for you.<\/small>\n          <\/button>\n        <\/div>\n\n        <div id=\"ncModeNeed\" class=\"nc-mode\">\n          <div id=\"ncNeedHome\">\n\n            <div class=\"nc-featured-carousel\" id=\"ncFeaturedCarousel\">\n              <div class=\"nc-featured-track\">\n                <article class=\"nc-featured nc-featured-slide active\" data-findex=\"0\" data-service-key=\"oncology\" data-doctor-id=\"3907860\" data-doctor=\"Dr. Tan Hai Chyan\" data-service=\"TCM Oncology\">\n                  <span class=\"nc-practitioner-photo-frame nc-featured-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3907860.png?1773494463\" alt=\"Dr. Tan Hai Chyan\" title=\"\u2014 view more\"><\/span>\n                  <div><span class=\"badge\">Featured Specialist<\/span><h3>TCM Oncology<\/h3><p>Dr. Tan Hai Chyan \u00b7 Skudai Danga Utama \/ Adda Heights<\/p><div class=\"nc-featured-fast\" data-fast>Checking the next available slot\u2026<\/div><\/div>\n                  <button type=\"button\" class=\"nc-featured-cta\">View live availability \u2192<\/button>\n                <\/article>\n                <article class=\"nc-featured nc-featured-slide nc-hidden\" data-findex=\"1\" data-service-key=\"gynecology\" data-doctor-id=\"3907924\" data-doctor=\"Dr. Wu Ying Li\" data-service=\"TCM Gynecology\">\n                  <span class=\"nc-practitioner-photo-frame nc-featured-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3907924.png?1773494625\" alt=\"Dr. Wu Ying Li\" title=\"\u2014 view more\"><\/span>\n                  <div><span class=\"badge\">Featured Specialist<\/span><h3>TCM Gynecology<\/h3><p>Dr. Wu Ying Li \u00b7 Skudai Danga Utama \/ Bandar Dato Onn<\/p><div class=\"nc-featured-fast\" data-fast>Checking the next available slot\u2026<\/div><\/div>\n                  <button type=\"button\" class=\"nc-featured-cta\">View live availability \u2192<\/button>\n                <\/article>\n                <article class=\"nc-featured nc-featured-slide nc-hidden\" data-findex=\"2\" data-service-key=\"pediatrics\" data-doctor-id=\"3908068\" data-doctor=\"Low Wan Leon\" data-service=\"TCM Pediatrics\">\n                  <span class=\"nc-practitioner-photo-frame nc-featured-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3908068.png?1773494641\" alt=\"Low Wan Leon\" title=\"\u2014 view more\"><\/span>\n                  <div><span class=\"badge\">Featured Specialist<\/span><h3>TCM Pediatrics<\/h3><p>Low Wan Leon \u00b7 Skudai Danga Utama \/ Adda Heights<\/p><div class=\"nc-featured-fast\" data-fast>Checking the next available slot\u2026<\/div><\/div>\n                  <button type=\"button\" class=\"nc-featured-cta\">View live availability \u2192<\/button>\n                <\/article>\n                <article class=\"nc-featured nc-featured-slide nc-hidden\" data-findex=\"3\" data-service-key=\"pain\" data-doctor-id=\"3908090\" data-doctor=\"Tan Ricky\" data-service=\"Acupuncture \/ Tuina \/ Pain Management\">\n                  <span class=\"nc-practitioner-photo-frame nc-featured-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3908090.png?1773494651\" alt=\"Tan Ricky\" title=\"\u2014 view more\"><\/span>\n                  <div><span class=\"badge\">Featured Specialist<\/span><h3>Acupuncture & Tuina<\/h3><p>Tan Ricky \u00b7 Skudai Danga Utama \/ Adda Heights<\/p><div class=\"nc-featured-fast\" data-fast>Checking the next available slot\u2026<\/div><\/div>\n                  <button type=\"button\" class=\"nc-featured-cta\">View live availability \u2192<\/button>\n                <\/article>\n                <article class=\"nc-featured nc-featured-slide nc-hidden\" data-findex=\"4\" data-service-key=\"rse\" data-doctor-id=\"10119993\" data-doctor=\"Leow Kar Hon\" data-service=\"RSE Skeletal Balance\">\n                  <span class=\"nc-practitioner-photo-frame nc-featured-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-10119993.png?1773494818\" alt=\"Leow Kar Hon\" title=\"\u2014 view more\"><\/span>\n                  <div><span class=\"badge\">Featured Specialist<\/span><h3>Bone & Joint Care<\/h3><p>Leow Kar Hon \u00b7 Skudai Danga Utama \/ Masai Seri Alam<\/p><div class=\"nc-featured-fast\" data-fast>Checking the next available slot\u2026<\/div><\/div>\n                  <button type=\"button\" class=\"nc-featured-cta\">View live availability \u2192<\/button>\n                <\/article>\n              <\/div>\n              <div class=\"nc-featured-nav\">\n                <button type=\"button\" class=\"nc-featured-arrow\" data-dir=\"-1\" aria-label=\"Previous featured practitioner\">\u2039<\/button>\n                <div class=\"nc-featured-dots\" aria-label=\"Featured practitioner carousel\">\n                  <button type=\"button\" class=\"active\" data-fdot=\"0\" aria-label=\"Dr. Tan Hai Chyan\"><\/button>\n                  <button type=\"button\" data-fdot=\"1\" aria-label=\"Dr. Wu Ying Li\"><\/button>\n                  <button type=\"button\" data-fdot=\"2\" aria-label=\"Low Wan Leon\"><\/button>\n                  <button type=\"button\" data-fdot=\"3\" aria-label=\"Tan Ricky\"><\/button>\n                  <button type=\"button\" data-fdot=\"4\" aria-label=\"Leow Kar Hon\"><\/button>\n                <\/div>\n                <button type=\"button\" class=\"nc-featured-arrow\" data-dir=\"1\" aria-label=\"Next featured practitioner\">\u203a<\/button>\n              <\/div>\n            <\/div>\n            <div class=\"nc-category-grid\">\n<button type=\"button\" class=\"nc-category\" data-category=\"women\">\n  <span class=\"nc-cat-icon\">\u2640<\/span>\n  <span class=\"nc-cat-copy\"><b>Women\u2019s Health<\/b><small>Gynecology, fertility, postpartum and women\u2019s care<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-category\" data-category=\"child\">\n  <span class=\"nc-cat-icon\">\u2726<\/span>\n  <span class=\"nc-cat-copy\"><b>Children & Growth<\/b><small>Pediatrics, pediatric massage and growth support<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-category\" data-category=\"pain\">\n  <span class=\"nc-cat-icon\">\u25cc<\/span>\n  <span class=\"nc-cat-copy\"><b>Pain & Injury Care<\/b><small>Acupuncture, tuina, skeletal and posture care<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-category\" data-category=\"rehab\">\n  <span class=\"nc-cat-icon\">\u2197<\/span>\n  <span class=\"nc-cat-copy\"><b>Rehabilitation<\/b><small>Stroke, post-operative, senior and long-term rehabilitation<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-category\" data-category=\"special\">\n  <span class=\"nc-cat-icon\">\u271a<\/span>\n  <span class=\"nc-cat-copy\"><b>Other Specialist Care<\/b><small>Oncology, eye wellness and topical therapies<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-category\" data-category=\"general\">\n  <span class=\"nc-cat-icon\">\u25ce<\/span>\n  <span class=\"nc-cat-copy\"><b>General TCM Care<\/b><small>Not sure where to start, or book a new \/ return visit<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button><\/div>\n          <\/div>\n          <div class=\"nc-subpanel nc-hidden\" data-subpanel=\"women\">\n    \n    <div class=\"nc-subtitle2\"><h3>Women\u2019s Health<\/h3><p>Choose a service<\/p><\/div>\n    <div class=\"nc-service-list\"><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"gynecology\" data-service=\"TCM Gynecology\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>TCM Gynecology<\/b><small>TCM Gynecology<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"fertility\" data-service=\"Fertility & Postnatal Care\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>Fertility & Postnatal Care<\/b><small>Fertility support & recovery<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"posture\" data-service=\"Posture \/ Postpartum Rehabilitation\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"DO\">\n      <span><b>Posture \/ Postpartum Rehabilitation<\/b><small>Posture Correction<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"skin-weight\" data-service=\"Skin Wellness \/ Weight Management\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"DO\">\n      <span><b>Skin Wellness \/ Weight Management<\/b><small>Skin \/ Weight Management<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><\/div>\n  <\/div><div class=\"nc-subpanel nc-hidden\" data-subpanel=\"child\">\n    \n    <div class=\"nc-subtitle2\"><h3>Children & Growth<\/h3><p>Choose a service<\/p><\/div>\n    <div class=\"nc-service-list\"><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"pediatrics\" data-service=\"TCM Pediatrics\" data-doctor-id=\"3908068\" data-doctor=\"Low Wan Leon\" data-branch-code=\"\">\n      <span><b>TCM Pediatrics<\/b><small>TCM Pediatrics<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"pediatric-massage\" data-service=\"Pediatric Massage\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>Pediatric Massage<\/b><small>Pediatrics Massage<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"height\" data-service=\"Height Revive 365+\" data-doctor-id=\"3908068\" data-doctor=\"Low Wan Leon\" data-branch-code=\"\">\n      <span><b>Height Revive 365+<\/b><small>Height Revive 365+<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><\/div>\n  <\/div><div class=\"nc-subpanel nc-hidden\" data-subpanel=\"pain\">\n    \n    <div class=\"nc-subtitle2\"><h3>Pain & Injury Care<\/h3><p>Choose a service<\/p><\/div>\n    <div class=\"nc-service-list\"><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"pain\" data-service=\"Acupuncture \/ Tuina \/ Pain Management\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>Acupuncture \/ Tuina \/ Pain Management<\/b><small>Acupuncture \/ Tuina \/ Pain Management<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"rse\" data-service=\"RSE Skeletal Balance\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>RSE Skeletal Balance<\/b><small>RSE Skeletal Balance<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"posture\" data-service=\"Posture \/ Postpartum Rehabilitation\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"DO\">\n      <span><b>Posture \/ Postpartum Rehabilitation<\/b><small>Posture Correction<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><\/div>\n  <\/div><div class=\"nc-subpanel nc-hidden\" data-subpanel=\"rehab\">\n    \n    <div class=\"nc-subtitle2\"><h3>Rehabilitation<\/h3><p>Choose a service<\/p><\/div>\n    <div class=\"nc-service-list\"><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"rehab\" data-service=\"Rehabilitation \/ Rehabilitation\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>Rehabilitation<\/b><small>Rehabilitation<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><\/div>\n  <\/div><div class=\"nc-subpanel nc-hidden\" data-subpanel=\"special\">\n    \n    <div class=\"nc-subtitle2\"><h3>Other Specialist Care<\/h3><p>Choose a service<\/p><\/div>\n    <div class=\"nc-service-list\"><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"oncology\" data-service=\"TCM Oncology\" data-doctor-id=\"3907860\" data-doctor=\"Dr. Tan Hai Chyan\" data-branch-code=\"\">\n      <span><b>TCM Oncology<\/b><small>TCM Oncology<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"eye\" data-service=\"Eye Wellness \/ Eye Wellness\" data-doctor-id=\"11233878\" data-doctor=\"Law Teik Hwong\" data-branch-code=\"\">\n      <span><b>Eye Wellness<\/b><small>Eye Wellness<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"topical\" data-service=\"Topical Therapy \/ Topical Therapy\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>Topical Therapy<\/b><small>Topical Therapy<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><\/div>\n  <\/div><div class=\"nc-subpanel nc-hidden\" data-subpanel=\"general\">\n    \n    <div class=\"nc-subtitle2\"><h3>General TCM Care<\/h3><p>Choose a service<\/p><\/div>\n    <div class=\"nc-service-list\"><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>New Visit \/ Treatment<\/b><small>New \/ Treatment<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><button type=\"button\" class=\"nc-service-row nc-selectable\" data-service-key=\"general-return\" data-service=\"Return \/ General Care\" data-doctor-id=\"\" data-doctor=\"\" data-branch-code=\"\">\n      <span><b>Return \/ General Care<\/b><small>Return \/ General<\/small><\/span><span class=\"nc-arrow\">\u203a<\/span>\n    <\/button><\/div>\n  <\/div>\n        <\/div>\n\n        <div id=\"ncModeDoctor\" class=\"nc-mode nc-hidden\">\n          <div class=\"nc-doctor-tools\"><div class=\"nc-search\">\u2315 <input id=\"ncDoctorSearch\" type=\"search\" placeholder=\"Search practitioner or specialty\"><\/div><\/div>\n          <div class=\"nc-filter-row\">\n            <button type=\"button\" class=\"nc-filter active\" data-filter=\"all\">All<\/button>\n            <button type=\"button\" class=\"nc-filter\" data-filter=\"oncology\">Oncology<\/button>\n            <button type=\"button\" class=\"nc-filter\" data-filter=\"gyn\">Gynecology<\/button>\n            <button type=\"button\" class=\"nc-filter\" data-filter=\"ped\">Pediatrics<\/button>\n            <button type=\"button\" class=\"nc-filter\" data-filter=\"pain\">Acupuncture \/ Bone & Joint<\/button>\n            <button type=\"button\" class=\"nc-filter\" data-filter=\"general\">General TCM<\/button>\n          <\/div>\n          <div id=\"ncDoctorGrid\" class=\"nc-doctor-grid\">\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"3907860\" data-doctor=\"Dr. Tan Hai Chyan\" data-service-key=\"oncology\" data-service=\"TCM Oncology\" data-filter=\"oncology\" data-search=\"Dr. Tan Hai Chyan TCM Oncology Dr. Tan Hai Chyan\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3907860.png?1773494463\" alt=\"Dr. Tan Hai Chyan\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Dr. Tan Hai Chyan<\/h3>\n    <p>TCM Oncology<\/p>\n    <small>Skudai Danga Utama \u00b7 Adda Heights<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"3907924\" data-doctor=\"Dr. Wu Ying Li\" data-service-key=\"gynecology\" data-service=\"TCM Gynecology\" data-filter=\"gyn\" data-search=\"Dr. Wu Ying Li TCM Gynecology Dr. Wu Ying Li\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3907924.png?1773494625\" alt=\"Dr. Wu Ying Li\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Dr. Wu Ying Li<\/h3>\n    <p>TCM Gynecology<\/p>\n    <small>Skudai Danga Utama \u00b7 Bandar Dato Onn<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"3908068\" data-doctor=\"Low Wan Leon\" data-service-key=\"pediatrics\" data-service=\"TCM Pediatrics\" data-filter=\"ped\" data-search=\"Low Wan Leon TCM Pediatrics Low Wan Leon\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3908068.png?1773494641\" alt=\"Low Wan Leon\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Low Wan Leon<\/h3>\n    <p>TCM Pediatrics<\/p>\n    <small>Skudai Danga Utama \u00b7 Adda Heights<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"3908090\" data-doctor=\"Tan Ricky\" data-service-key=\"pain\" data-service=\"Acupuncture \/ Tuina \/ Pain Management\" data-filter=\"pain\" data-search=\"Tan Ricky Acupuncture & Tuina Tan Ricky\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-3908090.png?1773494651\" alt=\"Tan Ricky\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Tan Ricky<\/h3>\n    <p>Acupuncture & Tuina<\/p>\n    <small>Skudai Danga Utama \u00b7 Adda Heights<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"10119993\" data-doctor=\"Leow Kar Hon\" data-service-key=\"rse\" data-service=\"RSE Skeletal Balance\" data-filter=\"pain\" data-search=\"Leow Kar Hon Bone & Joint Care Leow Kar Hon\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-10119993.png?1773494818\" alt=\"Leow Kar Hon\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Leow Kar Hon<\/h3>\n    <p>Bone & Joint Care<\/p>\n    <small>Skudai Danga Utama \u00b7 Masai Seri Alam<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"11233878\" data-doctor=\"Law Teik Hwong\" data-service-key=\"pain\" data-service=\"Acupuncture \/ Tuina \/ Pain Management\" data-filter=\"pain\" data-search=\"Law Teik Hwong Acupuncture & Tuina Law Teik Hwong\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-11233878.png?1773494832\" alt=\"Law Teik Hwong\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Law Teik Hwong<\/h3>\n    <p>Acupuncture & Tuina<\/p>\n    <small>Skudai Danga Utama \u00b7 Adda Heights<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"4355140\" data-doctor=\"See Xiang Ying\" data-service-key=\"gynecology\" data-service=\"TCM Gynecology\" data-filter=\"gyn\" data-search=\"See Xiang Ying TCM Gynecology See Xiang Ying\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-4355140.png?1773494662\" alt=\"See Xiang Ying\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>See Xiang Ying<\/h3>\n    <p>TCM Gynecology<\/p>\n    <small>Adda Heights \u00b7 Masai Seri Alam<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"11281510\" data-doctor=\"Teh Hui Jia\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-filter=\"general\" data-search=\"Teh Hui Jia General TCM Teh Hui Jia\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-11281510.png?1773495080\" alt=\"Teh Hui Jia\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Teh Hui Jia<\/h3>\n    <p>General TCM<\/p>\n    <small>Masai Seri Alam \u00b7 Bandar Dato Onn<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"13219688\" data-doctor=\"Vivian Cheng Zhi Xin\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-filter=\"general\" data-search=\"Vivian Cheng Zhi Xin General TCM Vivian Cheng Zhi Xin\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-13219688.png?1773590740\" alt=\"Vivian Cheng Zhi Xin\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Vivian Cheng Zhi Xin<\/h3>\n    <p>General TCM<\/p>\n    <small>Bandar Dato Onn<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-doctor-card nc-selectable\" data-doctor-id=\"13717076\" data-doctor=\"Tey Yao Siong\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-filter=\"general\" data-search=\"Tey Yao Siong General TCM Tey Yao Siong\">\n  <span class=\"nc-practitioner-photo-frame nc-doctor-card-photo\"><img decoding=\"async\" class=\"nc-practitioner-photo\" src=\"https:\/\/cdn-s.acuityscheduling.com\/calendar-13717076.png?1773495145\" alt=\"Tey Yao Siong\" title=\"\u2014 view more\"><\/span>\n  <div class=\"nc-doctor-copy\">\n    <h3>Tey Yao Siong<\/h3>\n    <p>General TCM<\/p>\n    <small>Skudai Danga Utama \u00b7 Masai Seri Alam<\/small>\n  <\/div>\n  <span class=\"nc-radio\">\u2713<\/span>\n<\/button><\/div>\n        <\/div>\n\n        <div id=\"ncModeClinic\" class=\"nc-mode nc-hidden\"><div class=\"nc-clinic-list\">\n<button type=\"button\" class=\"nc-clinic-card nc-selectable\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-branch-code=\"DU\" data-clinic=\"Skudai Danga Utama\">\n  <span class=\"nc-clinic-icon\">\u2302<\/span>\n  <span><b>Skudai Danga Utama<\/b><small>Skudai Danga Utama \u00b7 View earliest new-visit availability<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-clinic-card nc-selectable\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-branch-code=\"AH\" data-clinic=\"Adda Heights\">\n  <span class=\"nc-clinic-icon\">\u2302<\/span>\n  <span><b>Adda Heights<\/b><small>Adda Heights \u00b7 View earliest new-visit availability<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-clinic-card nc-selectable\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-branch-code=\"SA\" data-clinic=\"Masai Seri Alam\">\n  <span class=\"nc-clinic-icon\">\u2302<\/span>\n  <span><b>Masai Seri Alam<\/b><small>Masai Seri Alam \u00b7 View earliest new-visit availability<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button>\n<button type=\"button\" class=\"nc-clinic-card nc-selectable\" data-service-key=\"general-new\" data-service=\"New Visit \/ Treatment\" data-branch-code=\"DO\" data-clinic=\"Bandar Dato Onn\">\n  <span class=\"nc-clinic-icon\">\u2302<\/span>\n  <span><b>Bandar Dato Onn<\/b><small>Bandar Dato Onn \u00b7 View earliest new-visit availability<\/small><\/span>\n  <span class=\"nc-arrow\">\u203a<\/span>\n<\/button><\/div><\/div>\n\n        <div class=\"nc-actions nc-actions-paired\"><button id=\"ncStep1Back\" class=\"nc-btn secondary nc-hidden\" type=\"button\">\u2190 Back<\/button><button id=\"ncNext1\" class=\"nc-btn primary\" type=\"button\" disabled>View live availability \u2192<\/button><\/div>\n      <\/section>\n\n      <section class=\"nc-panel nc-hidden\" data-step=\"2\">\n        <div class=\"nc-sec-head\"><h2>Choose a time & location<\/h2><p>Choose an available date, time and location.<\/p><\/div>\n        <div id=\"ncSelectionStrip\" class=\"nc-selected-strip\" data-no-dynamic-translation>\u2014<\/div>\n        <div id=\"ncLiveStatus\" class=\"nc-live-status\" data-no-dynamic-translation><strong>Ready to load live availability<\/strong><\/div>\n        <div id=\"ncDateRow\" class=\"nc-date-row\" data-no-dynamic-translation><\/div><button id=\"ncMoreDates\" class=\"nc-more nc-date-more nc-hidden\" type=\"button\" data-no-dynamic-translation>More dates \u2192<\/button>\n        <div id=\"ncBranchChips\" class=\"nc-slot-tools nc-hidden\" data-no-dynamic-translation><\/div>\n        <div id=\"ncSlotGrid\" class=\"nc-slot-grid\" data-no-dynamic-translation><\/div>\n        <button id=\"ncMoreTimes\" class=\"nc-more nc-hidden\" type=\"button\">Show more times<\/button>\n        <div class=\"nc-actions nc-actions-paired\"><button class=\"nc-btn secondary\" type=\"button\" data-back=\"1\">\u2190 Back<\/button><button id=\"ncNext2\" class=\"nc-btn primary\" type=\"button\" disabled>Continue \u2192<\/button><\/div>\n      <\/section>\n\n      <section class=\"nc-panel nc-hidden\" data-step=\"3\">\n        <div class=\"nc-sec-head\"><h2>Your details<\/h2><p>Enter your details so we can prepare your appointment.<\/p><\/div>\n        <div id=\"ncFormSummary\" class=\"nc-selected-strip\">\u2014<\/div>\n        <div class=\"nc-form-grid\">\n          <div class=\"nc-field\"><label>Patient Name (English only)<\/label><input id=\"ncName\" type=\"text\" autocomplete=\"name\" maxlength=\"120\" placeholder=\"e.g. Alex Tan\" aria-describedby=\"ncNameHelp\"><div id=\"ncNameHelp\" class=\"nc-field-help\">English letters only; spaces, - , ', . and @ are allowed.<\/div><\/div>\n          <div class=\"nc-field\">\n    <label>Mobile number<\/label>\n    <div class=\"nc-phone-wrap\">\n      <select id=\"ncCountryCode\" class=\"nc-country-code\" aria-label=\"Country code\"><\/select>\n      <input id=\"ncPhone\" type=\"tel\" inputmode=\"tel\" autocomplete=\"tel-national\" required placeholder=\"12 345 6789\">\n    <\/div>\n    <input id=\"ncOtherCountryCode\" class=\"nc-other-code nc-hidden\" type=\"text\" inputmode=\"tel\" placeholder=\"+Country code\" aria-label=\"Other country code\">\n  <\/div>\n          <div class=\"nc-field\">\n            <label>Email<\/label>\n            <input id=\"ncEmail\" type=\"email\" autocomplete=\"email\" placeholder=\"name@example.com\" aria-describedby=\"ncEmailHelp\">\n            <div id=\"ncEmailHelp\" class=\"nc-field-help\"><\/div>\n          <\/div>\n          <div class=\"nc-field nc-identity-field\">\n            <label>Identity<\/label>\n            <div class=\"nc-id-toggle\" role=\"group\" aria-label=\"Identity type\">\n              <button type=\"button\" class=\"nc-id-mode active\" data-id-mode=\"ic\">Malaysian IC<\/button>\n              <button type=\"button\" class=\"nc-id-mode\" data-id-mode=\"passport\">Passport<\/button>\n            <\/div>\n            <input id=\"ncId\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" maxlength=\"12\" placeholder=\"900101011234\" aria-describedby=\"ncIdHelp\">\n            <div id=\"ncIdHelp\" class=\"nc-field-help\">12 digits only \u2014 no dashes needed.<\/div>\n          <\/div>\n          <div class=\"nc-field full\"><label>Note for practitioner (optional)<\/label><input id=\"ncNote\" type=\"text\" placeholder=\"e.g. main concern or follow-up purpose\"><\/div>\n        <\/div>\n        <div class=\"nc-note\">Please make sure your contact details are correct so we can reach you about your appointment.<\/div>\n        <div class=\"nc-actions nc-actions-paired\"><button class=\"nc-btn secondary\" type=\"button\" data-back=\"2\">\u2190 Back<\/button><button id=\"ncNext3\" class=\"nc-btn primary\" type=\"button\">Review appointment \u2192<\/button><\/div>\n      <\/section>\n\n      <section class=\"nc-panel nc-hidden\" data-step=\"4\">\n        <div class=\"nc-sec-head\"><h2>Review<\/h2><p>Please review your appointment details before confirming.<\/p><\/div>\n        <div class=\"nc-review\">\n          <div class=\"nc-review-card\"><h3>Appointment Details<\/h3>\n            <div class=\"nc-review-row\"><span>Selected Care<\/span><b id=\"rvService\">\u2014<\/b><\/div>\n            <div class=\"nc-review-row\"><span>T&CM Practitioner<\/span><b id=\"rvDoctor\">\u2014<\/b><\/div>\n            <div class=\"nc-review-row\"><span>Appointment Date & Time<\/span><b id=\"rvTime\">\u2014<\/b><\/div>\n            <div class=\"nc-review-row\"><span>Appointment Location<\/span><b id=\"rvClinic\">\u2014<\/b><\/div>\n          <\/div>\n          <div class=\"nc-review-card\"><h3>Patient Details<\/h3>\n            <div class=\"nc-review-row\"><span>Patient Name<\/span><b id=\"rvName\">\u2014<\/b><\/div>\n            <div class=\"nc-review-row\"><span>Mobile Contact<\/span><b id=\"rvPhone\">\u2014<\/b><\/div>\n            <div class=\"nc-review-row\"><span>Email<\/span><b id=\"rvEmail\">\u2014<\/b><\/div>\n            <div class=\"nc-review-row\"><span>IC \/ Passport<\/span><b id=\"rvIdentity\">\u2014<\/b><\/div>\n          <\/div>\n          <button id=\"ncConfirm\" type=\"button\" class=\"nc-btn primary nc-confirm-btn\">Confirm appointment<\/button><div id=\"ncConfirmStatus\" class=\"nc-confirm-status\" role=\"status\" aria-live=\"polite\"><\/div>\n        <\/div>\n        <div class=\"nc-actions nc-actions-paired\"><button class=\"nc-btn secondary\" type=\"button\" data-back=\"3\">\u2190 Back<\/button><button id=\"ncRestart\" class=\"nc-btn primary\" type=\"button\">Start over<\/button><\/div>\n      <\/section>\n    <\/main>\n\n    <aside class=\"nc-side\"><div class=\"nc-summary\"><h4>Appointment summary<\/h4>\n      <div class=\"nc-srow\"><div class=\"nc-slabel\">Selected Care<\/div><div id=\"sumService\" class=\"nc-sval nc-empty\">Not selected yet<\/div><\/div>\n      <div class=\"nc-srow\"><div class=\"nc-slabel\">T&CM Practitioner<\/div><div id=\"sumDoctor\" class=\"nc-sval nc-empty\">Not selected yet<\/div><\/div>\n      <div class=\"nc-srow\"><div class=\"nc-slabel\">Appointment Date & Time<\/div><div id=\"sumTime\" class=\"nc-sval nc-empty\">Not selected yet<\/div><\/div>\n      <div class=\"nc-srow\"><div class=\"nc-slabel\">Appointment Location<\/div><div id=\"sumClinic\" class=\"nc-sval nc-empty\">Not selected yet<\/div><\/div>\n    <\/div><\/aside>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n\n  const root=document.getElementById('nc-booking-v23'); if(!root)return;\n  function hideLegacyBookingTitle(){\n    const candidates=[...document.querySelectorAll('h1,h2')].filter(el=>{\n      if(root.contains(el))return false;\n      const t=(el.textContent||'').trim();\n      return \/^(booking|\u7f51\u7edc\u9884\u7ea6)$\/i.test(t);\n    });\n    for(const title of candidates){\n      let target=null;\n      for(let n=title.parentElement;n&&n!==document.body&&!n.contains(root);n=n.parentElement){\n        const r=n.getBoundingClientRect();\n        if(r.width>=window.innerWidth*0.65&&r.height>=80&&r.height<=380)target=n;\n        if(r.height>380)break;\n      }\n      if(target){\n        target.style.setProperty('display','none','important');\n        target.style.setProperty('height','0','important');\n        target.style.setProperty('min-height','0','important');\n        target.style.setProperty('margin','0','important');\n        target.style.setProperty('padding','0','important');\n        target.style.setProperty('overflow','hidden','important');\n        target.setAttribute('data-nc-hidden-booking-title','true');\n        return true;\n      }\n    }\n    return false;\n  }\n  hideLegacyBookingTitle();\n  requestAnimationFrame(hideLegacyBookingTitle);\n  setTimeout(hideLegacyBookingTitle,120);\n  const titleObserver=new MutationObserver(()=>hideLegacyBookingTitle());\n  titleObserver.observe(document.body,{subtree:true,childList:true,characterData:true});\n  setTimeout(()=>titleObserver.disconnect(),5000);\n  const API=['https:\/\/booking-api.natureconceptcm.com'];\n  const htmlLang=(document.documentElement.lang||'').toLowerCase();\n  const pathZh=\/^\\\/zh(?:\\\/|$)\/i.test(location.pathname);\n  const cookieZh=\/(?:^|;\\s*)trp_language=zh(?:[_-]cn)?(?:;|$)\/i.test(document.cookie||'');\n  const uiSample=[...root.querySelectorAll('[data-back],#ncNext2,.nc-sec-head h2')].map(el=>(el.textContent||'').trim()).join(' ');\n  const renderedZh=\/\u8fd4\u56de|\u9009\u62e9\u65f6\u95f4|\u7ee7\u7eed\u586b\u5199\u8d44\u6599|\u9884\u7ea6\u6458\u8981|\u60a8\u7684\u8d44\u6599\/.test(uiSample);\n  const IS_ZH=htmlLang.startsWith('zh')||pathZh||cookieZh||renderedZh;\n  const DOCTOR_NAMES_ZH={3907860:'\u9648\u6d77\u4e7e\u535a\u58eb',3907924:'\u5434\u82f1\u4e3d\u535a\u58eb',3908068:'\u5218\u5b9b\u5a18\u7855\u58eb',3908090:'\u9648\u529b\u805a\u7855\u58eb',10119993:'\u5ed6\u5bb6\u6c49\u7855\u58eb',11233878:'\u7f57\u5fb7\u65fa\u7855\u58eb',4355140:'\u5f90\u5411\u76c8\u533b\u5e08',11281510:'\u90d1\u6167\u5609\u533b\u5e08',13219688:'\u5e84\u82b7\u6b23\u533b\u5e08',13717076:'\u90d1\u8000\u96c4\u533b\u5e08'};\n  const DOCTOR_NAMES_EN={3907860:'Dr. Tan Hai Chyan',3907924:'Dr. Wu Ying Li',3908068:'Low Wan Leon',3908090:'Tan Ricky',10119993:'Leow Kar Hon',11233878:'Law Teik Hwong',4355140:'See Xiang Ying',11281510:'Teh Hui Jia',13219688:'Vivian Cheng Zhi Xin',13717076:'Tey Yao Siong'};\n  const SERVICE_NAMES_ZH={'general-new':'\u521d\u8bca \/ \u8fdb\u884c\u7597\u7a0b','general-return':'\u590d\u8bca \/ \u4e00\u822c\u95e8\u8bca','oncology':'\u80bf\u7624\u4e13\u79d1','gynecology':'\u5987\u79d1\u4e13\u79d1','pediatrics':'\u513f\u79d1\u4e13\u79d1','pain':'\u9488\u7078 \/ \u9488\u63a8 \/ \u7b4b\u4f24\u75db\u75c7','rse':'\u79d1\u5b66\u9aa8\u67b6\u6574\u590d','pediatric-massage':'\u5c0f\u513f\u63a8\u62ff','fertility':'\u52a9\u5b55 \/ \u6708\u5b50','rehab':'\u5eb7\u590d\u8c03\u7406','height':'Height Revive 365+ \u8f6c\u9aa8\u589e\u9ad8','eye':'\u773c\u90e8\u62a4\u7406','topical':'\u8349\u672c\u8d34\u6577 \/ \u4e09\u4f0f\u8d34 \/ \u4e09\u4e5d\u8d34','posture':'\u4f53\u6001\u8c03\u7406 \/ \u4ea7\u540e\u5eb7\u590d','skin-weight':'\u7f8e\u989c\u7115\u80a4 \/ \u51cf\u91cd\u7ba1\u7406'};\n  const BRANCH_NAMES={\n    DU:{en:'Skudai Danga Utama',zh:'\u58eb\u59d1\u6765'},\n    AH:{en:'Adda Heights',zh:'\u827a\u8fbe\u56ed'},\n    SA:{en:'Masai Seri Alam',zh:'\u81f3\u8fbe\u57ce'},\n    DO:{en:'Bandar Dato Onn',zh:'\u62ff\u7763\u7fc1\u9547'}\n  };\n  const branchDisplay=(code,fallback)=>{const x=BRANCH_NAMES[code];return x?(IS_ZH?x.zh:x.en):(fallback||'');};\n  const SERVICE_NAMES_EN={'general-new':'New Visit \/ Treatment','general-return':'Return \/ General Care','oncology':'TCM Oncology','gynecology':'TCM Gynecology','pediatrics':'TCM Pediatrics','pain':'Acupuncture \/ Tuina \/ Pain Management','rse':'RSE Skeletal Balance','pediatric-massage':'Pediatric Massage','fertility':'Fertility & Postnatal Care','rehab':'Rehabilitation','height':'Height Revive 365+','eye':'Eye Wellness','topical':'Topical Therapy','posture':'Posture \/ Postpartum Rehabilitation','skin-weight':'Skin Wellness \/ Weight Management'};\n  const L={\n    notSelected:IS_ZH?'\u5c1a\u672a\u9009\u62e9':'Not selected',\n    nothingSelected:IS_ZH?'\u5c1a\u672a\u9009\u62e9\u9884\u7ea6\u5185\u5bb9':'Nothing selected yet',\n    today:IS_ZH?'\u4eca\u5929':'Today',tomorrow:IS_ZH?'\u660e\u5929':'Tomorrow',\n    loadingDates:IS_ZH?'\u6b63\u5728\u8bfb\u53d6\u53ef\u9884\u7ea6\u65e5\u671f\u2026':'Loading available dates\u2026',\n    datesReady:IS_ZH?'\u8bf7\u9009\u62e9\u53ef\u9884\u7ea6\u65e5\u671f':'Choose an available date',\n    noDates:IS_ZH?'\u76ee\u524d\u6ca1\u6709\u627e\u5230\u53ef\u9884\u7ea6\u65e5\u671f':'No available dates found',\n    loadFail:IS_ZH?'\u6682\u65f6\u65e0\u6cd5\u8bfb\u53d6\u53ef\u9884\u7ea6\u65e5\u671f \u00b7 \u8bf7\u7a0d\u540e\u91cd\u8bd5':'Available dates are temporarily unavailable \u00b7 Please try again',\n    loadingTimes:IS_ZH?'\u6b63\u5728\u8bfb\u53d6\u53ef\u9884\u7ea6\u65f6\u95f4\u2026':'Loading available times\u2026',\n    slotCount:n=>IS_ZH?(n+' \u4e2a\u53ef\u9884\u7ea6\u65f6\u6bb5'):(n+' available times'),\n    noTimes:IS_ZH?'\u5f53\u5929\u6ca1\u6709\u53ef\u9884\u7ea6\u65f6\u6bb5':'No available times on this date',\n    timesFail:IS_ZH?'\u65f6\u6bb5\u8bfb\u53d6\u5931\u8d25 \u00b7 \u8bf7\u8fd4\u56de\u91cd\u8bd5':'Unable to load times \u00b7 Please go back and try again',\n    allLocations:IS_ZH?'\u5168\u90e8\u9662\u6240':'All locations',\n    more:n=>IS_ZH?('\u663e\u793a\u66f4\u591a\u65f6\u95f4\uff08'+n+'\uff09'):('Show more times ('+n+')'),\n    recommended:IS_ZH?'\u7cfb\u7edf\u5339\u914d\u533b\u5e08':'Recommended practitioner',\n    earliest:(date,branch)=>IS_ZH?('\u6700\u5feb\u53ef\u7ea6\uff1a'+date+(branch?' \u00b7 '+branch:'')):('Earliest: '+date+(branch?' \u00b7 '+branch:'')),\n    noRecent:IS_ZH?'\u76ee\u524d\u6ca1\u6709\u627e\u5230\u8fd1\u671f\u7a7a\u6863':'No near-term availability found',\n    fastFail:IS_ZH?'\u6682\u65f6\u65e0\u6cd5\u8bfb\u53d6\u53ef\u9884\u7ea6\u65f6\u95f4':'Availability is temporarily unavailable',\n    moreDates:IS_ZH?'\u66f4\u591a\u65e5\u671f \u2192':'More dates \u2192',\n    emailInvalid:IS_ZH?'\u8bf7\u8f93\u5165\u6709\u6548\u7684\u7535\u90ae\u5730\u5740\u3002':'Enter a valid email address.',\n    emailSuggestion:d=>IS_ZH?('\u4f60\u662f\u4e0d\u662f\u8981\u8f93\u5165 '+d+'\uff1f'):('Did you mean '+d+'?'),\n    icHelp:IS_ZH?'12\u4f4d\u6570\u5b57\uff0c\u65e0\u9700\u8f93\u5165 -':'12 digits only \u2014 no dashes needed.',\n    icInvalid:IS_ZH?'\u8bf7\u8f93\u5165\u5b8c\u6574\u768412\u4f4d\u8eab\u4efd\u8bc1\u53f7\u7801\u3002':'Enter a complete 12-digit Malaysian IC.',\n    icDateInvalid:IS_ZH?'\u8eab\u4efd\u8bc1\u524d6\u4f4d\u4e0d\u662f\u6709\u6548\u65e5\u671f\uff0c\u8bf7\u68c0\u67e5\u53f7\u7801\u3002':'The first 6 digits do not form a valid date. Please check the IC.',\n    passportHelp:IS_ZH?'\u8bf7\u8f93\u5165\u62a4\u7167\u53f7\u7801\uff1b\u53ef\u4f7f\u7528\u82f1\u6587\u5b57\u6bcd\u53ca\u6570\u5b57\u3002':'Enter the passport number using letters and numbers.',\n    passportInvalid:IS_ZH?'\u8bf7\u8f93\u5165\u6709\u6548\u7684\u62a4\u7167\u53f7\u7801\u3002':'Enter a valid passport number.',\n    identityLabelIC:IS_ZH?'\u9a6c\u6765\u897f\u4e9a\u8eab\u4efd\u8bc1':'Malaysian IC',\n    identityLabelPassport:IS_ZH?'\u62a4\u7167':'Passport'\n  };\n  const doctorDisplay=(id,fallback)=> (IS_ZH?DOCTOR_NAMES_ZH[id]:DOCTOR_NAMES_EN[id])||fallback||'';\n  const serviceDisplay=(key,fallback)=> (IS_ZH?SERVICE_NAMES_ZH[key]:SERVICE_NAMES_EN[key])||fallback||'';\n  let state={step:1,serviceKey:'',service:'',doctor:'',doctorId:null,doctorExplicit:false,identityMode:'ic',identityCanonical:'',branchCode:null,clinic:'',date:'',time:'',slot:null,allTimes:[],allDates:[],dateVisibleCount:0,dateMonthCursor:'',dateMonthsLoaded:0,dateLoadingMore:false,branchFilter:'all',showAll:false};\n  const DOCTOR_BRANCHES={\n    3907860:['DU','AH'],3907924:['DU','DO'],3908068:['DU','AH'],3908090:['DU','AH'],\n    10119993:['DU','SA'],11233878:['DU','AH'],4355140:['AH','SA'],11281510:['SA','DO'],\n    13219688:['DO'],13717076:['DU','SA']\n  };\n  const DOC_IMAGES={\n    3907860:'https:\/\/cdn-s.acuityscheduling.com\/calendar-3907860.png?1773494463',\n    3907924:'https:\/\/cdn-s.acuityscheduling.com\/calendar-3907924.png?1773494625',\n    3908068:'https:\/\/cdn-s.acuityscheduling.com\/calendar-3908068.png?1773494641',\n    3908090:'https:\/\/cdn-s.acuityscheduling.com\/calendar-3908090.png?1773494651',\n    4355140:'https:\/\/cdn-s.acuityscheduling.com\/calendar-4355140.png?1773494662',\n    10119993:'https:\/\/cdn-s.acuityscheduling.com\/calendar-10119993.png?1773494818',\n    11233878:'https:\/\/cdn-s.acuityscheduling.com\/calendar-11233878.png?1773494832',\n    11281510:'https:\/\/cdn-s.acuityscheduling.com\/calendar-11281510.png?1773495080',\n    13219688:'https:\/\/cdn-s.acuityscheduling.com\/calendar-13219688.png?1773590740',\n    13717076:'https:\/\/cdn-s.acuityscheduling.com\/calendar-13717076.png?1773495145'\n  };\n  const COUNTRY_CODES=[\n    ['MY','+60','Malaysia','\u9a6c\u6765\u897f\u4e9a'],['SG','+65','Singapore','\u65b0\u52a0\u5761'],['ID','+62','Indonesia','\u5370\u5ea6\u5c3c\u897f\u4e9a'],\n    ['CN','+86','China','\u4e2d\u56fd'],['HK','+852','Hong Kong','\u9999\u6e2f'],['TW','+886','Taiwan','\u53f0\u6e7e'],\n    ['TH','+66','Thailand','\u6cf0\u56fd'],['BN','+673','Brunei','\u6587\u83b1'],['PH','+63','Philippines','\u83f2\u5f8b\u5bbe'],\n    ['VN','+84','Vietnam','\u8d8a\u5357'],['MM','+95','Myanmar','\u7f05\u7538'],['KH','+855','Cambodia','\u67ec\u57d4\u5be8'],\n    ['LA','+856','Laos','\u8001\u631d'],['IN','+91','India','\u5370\u5ea6'],['JP','+81','Japan','\u65e5\u672c'],\n    ['KR','+82','South Korea','\u97e9\u56fd'],['AU','+61','Australia','\u6fb3\u5927\u5229\u4e9a'],['NZ','+64','New Zealand','\u65b0\u897f\u5170'],\n    ['GB','+44','United Kingdom','\u82f1\u56fd'],['US','+1','United States \/ Canada','\u7f8e\u56fd \/ \u52a0\u62ff\u5927'],\n    ['AE','+971','United Arab Emirates','\u963f\u8054\u914b'],['SA','+966','Saudi Arabia','\u6c99\u7279\u963f\u62c9\u4f2f'],\n    ['QA','+974','Qatar','\u5361\u5854\u5c14'],['BH','+973','Bahrain','\u5df4\u6797']\n  ];\n  function initPhoneCountry(){\n    const sel=root.querySelector('#ncCountryCode'),other=root.querySelector('#ncOtherCountryCode');if(!sel)return;\n    sel.innerHTML=COUNTRY_CODES.map(x=>'<option value=\"'+x[1]+'\" '+(x[0]==='MY'?'selected':'')+'>'+x[1]+' \u00b7 '+(IS_ZH?x[3]:x[2])+'<\/option>').join('')\n      +'<option value=\"other\">'+(IS_ZH?'\u5176\u4ed6\u56fd\u7801':'Other country code')+'<\/option>';\n    sel.addEventListener('change',()=>{const isOther=sel.value==='other';other.classList.toggle('nc-hidden',!isOther);if(isOther)other.focus();});\n  }\n  function selectedCountryCode(){\n    const sel=root.querySelector('#ncCountryCode'),other=root.querySelector('#ncOtherCountryCode');\n    let code=sel&&sel.value==='other'?(other?.value||''):(sel?.value||'+60');\n    code=String(code).trim().replace(\/[^\\d+]\/g,'');if(code&&!code.startsWith('+'))code='+'+code.replace(\/^\\+\/,'');return code||'+60';\n  }\n  function fullPhone(){\n    const raw=String(root.querySelector('#ncPhone')?.value||'').trim();\n    if(!raw)return '';\n    if(raw.startsWith('+'))return '+'+raw.slice(1).replace(\/\\D\/g,'');\n    const local=raw.replace(\/\\D\/g,'').replace(\/^0+\/,'');\n    return selectedCountryCode()+local;\n  }\n    const panels=[...root.querySelectorAll('.nc-panel')], psteps=[...root.querySelectorAll('[data-pstep]')], tabs=[...root.querySelectorAll('.nc-tab')];\n  const oncologyFilter=root.querySelector('.nc-filter[data-filter=\"oncology\"]');if(oncologyFilter)oncologyFilter.textContent=IS_ZH?'\u80bf\u7624\u4e13\u79d1':'Oncology';\n  const generalFilter=root.querySelector('.nc-filter[data-filter=\"general\"]');if(generalFilter)generalFilter.textContent=IS_ZH?'\u4e2d\u533b\u5168\u79d1':'General TCM';\n    root.querySelectorAll('.nc-clinic-card').forEach(el=>{\n    const code=el.dataset.branchCode||'';\n    const name=branchDisplay(code,el.dataset.clinic||'');\n    const title=el.querySelector('b'); if(title)title.textContent=name;\n    const small=el.querySelector('small'); if(small)small.textContent=IS_ZH?'\u67e5\u770b\u6700\u8fd1\u521d\u8bca\u7a7a\u6863':'View earliest new-visit availability';\n    el.dataset.clinic=name;\n  });\n  const serviceSubtitleKeep=new Set(['fertility','posture','skin-weight']);\n  root.querySelectorAll('.nc-service-row').forEach(el=>{\n    const small=el.querySelector('small');if(!small)return;\n    if(!serviceSubtitleKeep.has(el.dataset.serviceKey||''))small.remove();\n  });\n    root.querySelectorAll('.nc-doctor-card').forEach(el=>{\n    const id=Number(el.dataset.doctorId||0),codes=DOCTOR_BRANCHES[id]||[];\n    const h=el.querySelector('h3'); if(h)h.textContent=doctorDisplay(id,el.dataset.doctor||'');\n    const small=el.querySelector('small'); if(small)small.textContent=codes.map(c=>branchDisplay(c,c)).join(' \u00b7 ');\n  });\n  initPhoneCountry();\n  root.querySelectorAll('.nc-featured-slide').forEach(el=>{\n    const id=Number(el.dataset.doctorId||0),codes=DOCTOR_BRANCHES[id]||[];\n    const p=el.querySelector('p'); if(p)p.textContent=doctorDisplay(id,el.dataset.doctor||'')+' \u00b7 '+codes.map(c=>branchDisplay(c,c)).join(' \/ ');\n  });\n\n  function setText(id,val){const el=root.querySelector('#'+id);if(!el)return;el.textContent=val||L.notSelected;el.classList.toggle('nc-empty',!val);}\n  function updateSummary(){\n    setText('sumService',state.service); setText('sumDoctor',state.doctor);\n    setText('sumTime',state.date&&state.time?state.date+' \u00b7 '+state.time:''); setText('sumClinic',state.clinic);\n    const m=root.querySelector('#ncMobileSummary'); const bits=[state.service,state.time?state.date+' '+state.time:'',state.clinic].filter(Boolean); if(m)m.textContent=bits.length?bits.join(' \u00b7 '):L.nothingSelected;\n  }\n  function myToday(){\n    const parts=new Intl.DateTimeFormat('en-CA',{timeZone:'Asia\/Kuala_Lumpur',year:'numeric',month:'2-digit',day:'2-digit'}).formatToParts(new Date());\n    const o={};parts.forEach(p=>o[p.type]=p.value);return o.year+'-'+o.month+'-'+o.day;\n  }\n  function ym(date){return date.slice(0,7);}\n  function addMonth(month){\n    const p=month.split('-').map(Number);let y=p[0],m=p[1]+1;if(m===13){m=1;y++}return y+'-'+String(m).padStart(2,'0');\n  }\n  function addDays(date,days){\n    const d=new Date(date+'T00:00:00Z');d.setUTCDate(d.getUTCDate()+days);\n    return d.toISOString().slice(0,10);\n  }\n  function dateLabel(d){\n    const today=myToday(); const base=new Date(today+'T00:00:00+08:00'); const dt=new Date(d+'T00:00:00+08:00'); const diff=Math.round((dt-base)\/86400000);\n    const locale=IS_ZH?'zh-CN':'en-MY';\n    const wd=new Intl.DateTimeFormat(locale,{weekday:'short',timeZone:'Asia\/Kuala_Lumpur'}).format(dt);\n    const md=new Intl.DateTimeFormat(locale,{month:IS_ZH?'numeric':'short',day:'numeric',timeZone:'Asia\/Kuala_Lumpur'}).format(dt);\n    return {top:diff===0?L.today:diff===1?L.tomorrow:wd,bottom:md};\n  }\n  function timeLabel(t){const m=String(t||'').match(\/T(\\d{2}:\\d{2})\/);return m?m[1]:t;}\n  async function api(path,payload){\n    let last=null;\n    for(const base of API){\n      try{\n        const r=await fetch(base+path,{method:'POST',headers:{'content-type':'application\/json'},body:JSON.stringify(payload)});\n        const j=await r.json(); if(r.ok&&j.ok!==false)return j; last=j;\n      }catch(e){last={error:String(e)}}\n    }\n    throw new Error((last&&last.error)||'availability_unavailable');\n  }\n  function choose(el){\n    root.querySelectorAll('.nc-selectable').forEach(x=>x.classList.remove('selected'));el.classList.add('selected');\n    state.serviceKey=el.dataset.serviceKey||'';state.service=serviceDisplay(state.serviceKey,el.dataset.service||'');\n    state.doctorId=el.dataset.doctorId?Number(el.dataset.doctorId):null;state.doctor=doctorDisplay(state.doctorId,el.dataset.doctor||'');state.doctorExplicit=el.classList.contains('nc-doctor-card');\n    state.branchCode=el.dataset.branchCode||null;state.clinic=state.branchCode?branchDisplay(state.branchCode,el.dataset.clinic||''):(el.dataset.clinic||'');\n    state.date='';state.time='';state.slot=null;state.allTimes=[];root.querySelector('#ncNext1').disabled=!state.serviceKey;updateSummary();\n  }\n  function go(step){\n    state.step=step; panels.forEach(p=>p.classList.toggle('nc-hidden',Number(p.dataset.step)!==step));\n    psteps.forEach(i=>{const n=Number(i.dataset.pstep);i.classList.toggle('active',n===step);i.classList.toggle('done',n<step)});\n    window.scrollTo({top:root.getBoundingClientRect().top+window.scrollY-18,behavior:'smooth'});updateSummary();\n    if(step===2)loadDates(); if(step===3)updateFormSummary(); if(step===4)updateReview();\n  }\n  async function loadDates(){\n    const status=root.querySelector('#ncLiveStatus'),row=root.querySelector('#ncDateRow'),slots=root.querySelector('#ncSlotGrid'),chips=root.querySelector('#ncBranchChips'),moreDates=root.querySelector('#ncMoreDates');\n    row.innerHTML='';slots.innerHTML='';chips.classList.add('nc-hidden');moreDates.classList.add('nc-hidden');root.querySelector('#ncNext2').disabled=true;\n    state.time='';state.slot=null;state.date='';state.allDates=[];state.dateMonthsLoaded=0;state.dateLoadingMore=false;\n    status.innerHTML='<strong>'+L.loadingDates+'<\/strong>';\n    const firstMonth=ym(myToday()),secondMonth=addMonth(firstMonth),thirdMonth=addMonth(secondMonth);\n    try{\n      const rows=await Promise.all([firstMonth,secondMonth,thirdMonth].map(m=>api('\/dates',{service_key:state.serviceKey,doctor_id:state.doctorId,branch_code:state.branchCode,month:m})));\n      const today=myToday(),maxDate=addDays(today,45),merged=rows.flatMap(r=>r.dates||[]);\n      state.allDates=[...new Map(merged.filter(x=>x&&x.date&&x.date>=today&&x.date<=maxDate).map(x=>[x.date,x])).values()].sort((a,b)=>a.date.localeCompare(b.date));\n      state.dateMonthCursor=thirdMonth;state.dateMonthsLoaded=3;\n      state.dateVisibleCount=window.matchMedia('(max-width:650px)').matches?6:8;\n      status.innerHTML='<strong>'+(state.allDates.length?L.datesReady:L.noDates)+'<\/strong>';\n      renderDates(true);\n    }catch(e){status.innerHTML='<strong>'+L.loadFail+'<\/strong>';}\n  }\n  function renderDates(autoSelect){\n    const row=root.querySelector('#ncDateRow'),moreDates=root.querySelector('#ncMoreDates');row.innerHTML='';\n    const shown=state.allDates.slice(0,state.dateVisibleCount);\n    shown.forEach(x=>{\n      const l=dateLabel(x.date),b=document.createElement('button');b.type='button';b.className='nc-date';b.dataset.date=x.date;b.innerHTML='<b>'+l.top+'<\/b><span>'+l.bottom+'<\/span>';\n      if(state.date===x.date)b.classList.add('selected');\n      b.addEventListener('click',()=>{row.querySelectorAll('.nc-date').forEach(n=>n.classList.remove('selected'));b.classList.add('selected');state.date=x.date;loadTimes(x.date)});\n      row.appendChild(b);\n    });\n    const canReveal=state.allDates.length>state.dateVisibleCount;\n    moreDates.classList.toggle('nc-hidden',!canReveal);moreDates.textContent=L.moreDates;\n    if(autoSelect&&!state.date&&shown[0])setTimeout(()=>row.querySelector('.nc-date')?.click(),0);\n  }\n  function showMoreDates(){\n    const pageSize=window.matchMedia('(max-width:650px)').matches?6:8;\n    if(state.allDates.length<=state.dateVisibleCount)return;\n    state.dateVisibleCount=Math.min(state.dateVisibleCount+pageSize,state.allDates.length);\n    renderDates(false);\n  }\n  async function loadTimes(date){\n    const status=root.querySelector('#ncLiveStatus'),grid=root.querySelector('#ncSlotGrid');grid.innerHTML='';root.querySelector('#ncNext2').disabled=true;state.time='';state.slot=null;state.showAll=false;\n    status.innerHTML='<strong>'+L.loadingTimes+'<\/strong>';\n    try{\n      const d=await api('\/times',{service_key:state.serviceKey,doctor_id:state.doctorId,branch_code:state.branchCode,date:date});state.allTimes=d.times||[];\n      status.innerHTML='<strong>'+(state.allTimes.length?L.slotCount(state.allTimes.length):L.noTimes)+'<\/strong>';\n      renderBranchChips();renderTimes();\n    }catch(e){status.innerHTML='<strong>'+L.timesFail+'<\/strong>';}\n  }\n  function renderBranchChips(){\n    const wrap=root.querySelector('#ncBranchChips');const names=[];state.allTimes.forEach(x=>{if(!names.some(n=>n.code===x.branch_code))names.push({code:x.branch_code,name:branchDisplay(x.branch_code,x.branch_name)})});\n    wrap.innerHTML=''; if(names.length<=1){wrap.classList.add('nc-hidden');state.branchFilter='all';return}\n    wrap.classList.remove('nc-hidden'); const all=document.createElement('button');all.type='button';all.className='nc-branch-chip active';all.textContent=L.allLocations;all.dataset.branch='all';wrap.appendChild(all);\n    names.forEach(n=>{const b=document.createElement('button');b.type='button';b.className='nc-branch-chip';b.textContent=n.name;b.dataset.branch=n.code;wrap.appendChild(b)});\n    wrap.querySelectorAll('.nc-branch-chip').forEach(b=>b.addEventListener('click',()=>{wrap.querySelectorAll('.nc-branch-chip').forEach(x=>x.classList.remove('active'));b.classList.add('active');state.branchFilter=b.dataset.branch;state.showAll=false;renderTimes()}));\n  }\n  function renderTimes(){\n    const grid=root.querySelector('#ncSlotGrid'),more=root.querySelector('#ncMoreTimes');grid.innerHTML='';\n    const filtered=state.allTimes.filter(x=>state.branchFilter==='all'||x.branch_code===state.branchFilter);\n    const showAvatar=true;\n    const visibleLimit=window.matchMedia('(max-width:650px)').matches?3:9;const show=state.showAll?filtered:filtered.slice(0,visibleLimit);\n    show.forEach(x=>{\n      const b=document.createElement('button');b.type='button';b.className='nc-slot';\n      const avatar=showAvatar&&DOC_IMAGES[Number(x.doctor_id)]?'<span class=\"nc-slot-avatar-frame\"><img class=\"nc-slot-doctor-avatar nc-practitioner-photo\" decoding=\"async\" src=\"'+DOC_IMAGES[Number(x.doctor_id)]+'\" alt=\"'+(x.doctor_name||'Practitioner')+'\"><\/span>':'';\n      const dn=doctorDisplay(Number(x.doctor_id),x.doctor_name);const doctor=dn?'<span class=\"nc-slot-doctor\">'+dn+'<\/span>':'';\n      const locationName=branchDisplay(x.branch_code,x.branch_name);b.innerHTML='<div class=\"nc-slot-main\">'+avatar+'<div class=\"nc-slot-copy\"><b>'+timeLabel(x.time)+'<\/b><small>'+locationName+'<\/small>'+doctor+'<\/div><\/div>';\n      b.addEventListener('click',()=>{grid.querySelectorAll('.nc-slot').forEach(s=>s.classList.remove('selected'));b.classList.add('selected');state.slot=x;state.time=timeLabel(x.time);state.clinic=branchDisplay(x.branch_code,x.branch_name);state.doctor=doctorDisplay(Number(x.doctor_id),x.doctor_name)||state.doctor;root.querySelector('#ncNext2').disabled=false;updateSummary()});\n      grid.appendChild(b)\n    });\n    more.classList.toggle('nc-hidden',state.showAll||filtered.length<=visibleLimit);more.textContent=L.more(Math.max(0,filtered.length-visibleLimit));\n  }\n  function updateFormSummary(){root.querySelector('#ncFormSummary').innerHTML='<b>'+state.service+'<\/b> \u00b7 '+(state.doctor||L.recommended)+' \u00b7 '+state.date+' '+state.time+' \u00b7 '+state.clinic}\n\n  const EMAIL_DOMAIN_FIXES={\n    'gmail.con':'gmail.com','gamil.com':'gmail.com','gmial.com':'gmail.com','gmail.co':'gmail.com',\n    'hotmail.con':'hotmail.com','hotnail.com':'hotmail.com','outlok.com':'outlook.com','outlook.con':'outlook.com',\n    'yahoo.con':'yahoo.com','yahho.com':'yahoo.com'\n  };\n  function validateEmail(showMessage){\n    const input=root.querySelector('#ncEmail'),help=root.querySelector('#ncEmailHelp');\n    const value=(input.value||'').trim().toLowerCase();\n    const ok=\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(value)&&!value.includes('..');\n    let msg='';\n    if(value){\n      const parts=value.split('@'),domain=parts[1]||'',fix=EMAIL_DOMAIN_FIXES[domain];\n      if(fix)msg=L.emailSuggestion(parts[0]+'@'+fix);\n      else if(!ok)msg=L.emailInvalid;\n    }else if(showMessage)msg=L.emailInvalid;\n    input.classList.toggle('nc-invalid',!!value&&!ok);\n    input.classList.toggle('nc-valid',ok);\n    help.textContent=msg;\n    help.classList.toggle('error',!!msg&&!EMAIL_DOMAIN_FIXES[(value.split('@')[1]||'')]);\n    help.classList.toggle('hint',!!msg&&!!EMAIL_DOMAIN_FIXES[(value.split('@')[1]||'')]);\n    return ok;\n  }\n  function isValidICDate(ic){\n    if(!\/^\\d{12}$\/.test(ic))return false;\n    const yy=Number(ic.slice(0,2)),mm=Number(ic.slice(2,4)),dd=Number(ic.slice(4,6));\n    const now=new Date(),currentYear=now.getFullYear();\n    let year=2000+yy;if(year>currentYear)year=1900+yy;\n    const dt=new Date(Date.UTC(year,mm-1,dd));\n    if(dt.getUTCFullYear()!==year||dt.getUTCMonth()!==mm-1||dt.getUTCDate()!==dd)return false;\n    const age=(Date.now()-dt.getTime())\/(365.2425*86400000);\n    return age>=0&&age<=120;\n  }\n  function normalizeIdentity(){\n    const input=root.querySelector('#ncId');\n    if(state.identityMode==='ic'){\n      const clean=(input.value||'').replace(\/\\D\/g,'').slice(0,12);\n      if(input.value!==clean)input.value=clean;\n      return clean;\n    }\n    const clean=(input.value||'').toUpperCase().replace(\/[^A-Z0-9]\/g,'').slice(0,20);\n    if(input.value!==clean)input.value=clean;\n    return clean;\n  }\n  function validateIdentity(showMessage){\n    const input=root.querySelector('#ncId'),help=root.querySelector('#ncIdHelp');\n    const value=normalizeIdentity();\n    let ok=false,msg='';\n    if(state.identityMode==='ic'){\n      ok=\/^\\d{12}$\/.test(value)&&isValidICDate(value);\n      if(value.length<12)msg=showMessage||value?L.icInvalid:L.icHelp;\n      else if(!isValidICDate(value))msg=L.icDateInvalid;\n      else msg='';\n    }else{\n      ok=\/^[A-Z0-9]{5,20}$\/.test(value);\n      msg=ok?'':(showMessage||value?L.passportInvalid:L.passportHelp);\n    }\n    state.identityCanonical=ok?value:'';\n    input.classList.toggle('nc-invalid',!!value&&!ok);\n    input.classList.toggle('nc-valid',ok);\n    help.textContent=msg;\n    help.classList.toggle('error',!!value&&!ok);\n    help.classList.toggle('hint',!value||ok);\n    return ok;\n  }\n  function updateDetailsGate(){\n    const emailOK=validateEmail(false),idOK=validateIdentity(false);\n    root.querySelector('#ncNext3').disabled=!(emailOK&&idOK);\n    return emailOK&&idOK;\n  }\n  function setIdentityMode(mode){\n    state.identityMode=mode==='passport'?'passport':'ic';state.identityCanonical='';\n    root.querySelectorAll('.nc-id-mode').forEach(b=>b.classList.toggle('active',b.dataset.idMode===state.identityMode));\n    const input=root.querySelector('#ncId');input.value='';input.classList.remove('nc-invalid','nc-valid');\n    if(state.identityMode==='ic'){\n      input.inputMode='numeric';input.maxLength=12;input.placeholder='900101011234';\n      root.querySelector('#ncIdHelp').textContent=L.icHelp;\n    }else{\n      input.inputMode='text';input.maxLength=20;input.placeholder='A12345678';\n      root.querySelector('#ncIdHelp').textContent=L.passportHelp;\n    }\n    updateDetailsGate();\n  }\n  function maskedIdentity(){\n    const v=state.identityCanonical||normalizeIdentity();if(!v)return '\u2014';\n    if(state.identityMode==='ic')return '\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022'+v.slice(-4);\n    if(v.length<=4)return '\u2022\u2022'+v.slice(-2);\n    return v.slice(0,2)+'\u2022\u2022\u2022\u2022'+v.slice(-3);\n  }\n\n  function validateBasicDetails(showMessage){\n    const name=root.querySelector('#ncName'),phone=root.querySelector('#ncPhone'),nameHelp=root.querySelector('#ncNameHelp');\n    const nameValue=String(name?.value||'').trim();\n    const allowedName=\/^[A-Za-z@.'\\- ]+$\/.test(nameValue);\n    const letterCount=(nameValue.match(\/[A-Za-z]\/g)||[]).length;\n    const nameOK=allowedName&&letterCount>=2;\n    const p=fullPhone(),digits=p.replace(\/\\D\/g,'');\n    const phoneOK=\/^\\+?\\d{8,15}$\/.test(p)&&digits.length>=8&&digits.length<=15;\n    if(name){\n      const msg=IS_ZH?'\u8bf7\u4f7f\u7528\u82f1\u6587\u586b\u5199\u59d3\u540d\uff1b\u53ef\u4f7f\u7528\u7a7a\u683c\u3001-\u3001\\'\u3001. \u548c @\u3002':'Please enter the patient\\'s name in English. Spaces, -, \\', . and @ are allowed.';\n      name.setCustomValidity(nameOK?'':msg);\n      name.classList.toggle('nc-invalid',!!showMessage&&!nameOK);\n      name.classList.toggle('nc-valid',nameOK);\n      if(nameHelp){\n        nameHelp.textContent=nameOK?'':(showMessage&&nameValue?msg:(IS_ZH?'\u4ec5\u9650\u82f1\u6587\u59d3\u540d\uff1b\u53ef\u4f7f\u7528\u7a7a\u683c\u3001-\u3001\\'\u3001. \u548c @\u3002':'English name only; spaces, -, \\', . and @ are allowed.'));\n        nameHelp.classList.toggle('error',!!showMessage&&!!nameValue&&!nameOK);\n      }\n    }\n    if(phone){\n      phone.setCustomValidity(phoneOK?'':(IS_ZH?'\u8bf7\u8f93\u5165\u6709\u6548\u7684\u624b\u673a\u53f7\u7801\u3002':'Enter a valid mobile number.'));\n      phone.classList.toggle('nc-invalid',!!showMessage&&!phoneOK);\n    }\n    if(showMessage&&!nameOK){name?.reportValidity();return false}\n    if(showMessage&&!phoneOK){phone?.reportValidity();return false}\n    return nameOK&&phoneOK;\n  }\n  function bookingTrackingSource(){\n    const u=new URL(location.href),parts=['Website Booking V2'];\n    ['utm_source','utm_medium','utm_campaign','utm_content','utm_term','gclid','fbclid'].forEach(k=>{\n      const v=(u.searchParams.get(k)||'').trim();if(v)parts.push(k+'='+v.slice(0,80));\n    });\n    try{if(document.referrer){const h=new URL(document.referrer).hostname;if(h&&h!==location.hostname)parts.push('ref='+h.slice(0,100));}}catch(e){}\n    return parts.join(' | ').slice(0,240);\n  }\n  async function confirmBooking(){\n    const btn=root.querySelector('#ncConfirm'),status=root.querySelector('#ncConfirmStatus');\n    if(!state.slot||!state.slot.time||!state.slot.appointment_type_id||!state.slot.doctor_id){\n      status.textContent=IS_ZH?'\u8bf7\u9009\u62e9\u6709\u6548\u7684\u9884\u7ea6\u65f6\u6bb5\u3002':'Please select an available appointment time.';\n      status.className='nc-confirm-status error';return;\n    }\n    const e=validateEmail(true),i=validateIdentity(true),b=validateBasicDetails(true);\n    if(!e||!i||!b)return;\n    const original=btn.textContent;\n    btn.disabled=true;btn.textContent=IS_ZH?'\u6b63\u5728\u786e\u8ba4\u9884\u7ea6\u2026':'Confirming appointment\u2026';\n    status.className='nc-confirm-status';status.textContent='';\n    const payload={\n      service_key:state.serviceKey,\n      branch_code:String(state.slot.branch_code||state.branchCode||''),\n      appointment_type_id:Number(state.slot.appointment_type_id),\n      calendar_id:Number(state.slot.doctor_id),\n      datetime:String(state.slot.time),\n      patient_name:String(root.querySelector('#ncName')?.value||'').trim(),\n      phone:fullPhone(),\n      email:String(root.querySelector('#ncEmail')?.value||'').trim(),\n      identity_type:state.identityMode==='passport'?'Passport':'Malaysian IC',\n      identity_canonical:state.identityCanonical||normalizeIdentity(),\n      tracking_source:bookingTrackingSource(),\n      note:String(root.querySelector('#ncNote')?.value||'').trim()\n    };\n    try{\n      const r=await fetch(API[0]+'\/confirm',{method:'POST',headers:{'content-type':'application\/json'},body:JSON.stringify(payload)});\n      const j=await r.json().catch(()=>({}));\n      if(!r.ok||j.ok===false)throw Object.assign(new Error(j.error||'booking_failed'),{code:j.error,status:r.status});\n      status.className='nc-confirm-status success';\n      status.textContent=IS_ZH?('\u9884\u7ea6\u5df2\u786e\u8ba4\u3002\u9884\u7ea6\u7f16\u53f7\uff1a'+j.appointment_id):('Appointment confirmed. Reference: '+j.appointment_id);\n      btn.textContent=IS_ZH?'\u9884\u7ea6\u5df2\u786e\u8ba4 \u2713':'Appointment confirmed \u2713';\n      btn.disabled=true;\n      root.querySelectorAll('[data-back]').forEach(x=>x.classList.add('nc-hidden'));\n      const idInput=root.querySelector('#ncId');if(idInput)idInput.value='';\n      state.identityCanonical='';\n    }catch(err){\n      const code=String(err?.code||'');\n      status.className='nc-confirm-status error';\n      if(code==='slot_no_longer_available'){\n        status.textContent=IS_ZH?'\u8fd9\u4e2a\u65f6\u6bb5\u521a\u521a\u5df2\u88ab\u9884\u7ea6\uff0c\u8bf7\u8fd4\u56de\u9009\u62e9\u5176\u4ed6\u65f6\u95f4\u3002':'This time was just taken. Please go back and choose another time.';\n      }else if(code==='booking_in_progress'){\n        status.textContent=IS_ZH?'\u9884\u7ea6\u6b63\u5728\u5904\u7406\u4e2d\uff0c\u8bf7\u7a0d\u5019\uff0c\u4e0d\u8981\u91cd\u590d\u63d0\u4ea4\u3002':'Your appointment is being processed. Please wait and do not submit again.';\n      }else{\n        status.textContent=IS_ZH?'\u6682\u65f6\u65e0\u6cd5\u5b8c\u6210\u9884\u7ea6\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002\u82e5\u95ee\u9898\u6301\u7eed\uff0c\u8bf7\u901a\u8fc7 WhatsApp \u8054\u7cfb\u6211\u4eec\u3002':'We could not complete the appointment right now. Please try again shortly or contact us on WhatsApp.';\n      }\n      btn.disabled=false;btn.textContent=original;\n    }\n  }\n\n  function updateReview(){\n    const v=id=>root.querySelector('#'+id);\n    v('rvService').textContent=state.service||'\u2014';v('rvDoctor').textContent=state.doctor||L.recommended;v('rvTime').textContent=(state.date||'')+(state.time?' \u00b7 '+state.time:'');v('rvClinic').textContent=state.clinic||'\u2014';\n    v('rvName').textContent=root.querySelector('#ncName').value||'\u2014';v('rvPhone').textContent=fullPhone()||'\u2014';v('rvEmail').textContent=(root.querySelector('#ncEmail').value||'').trim()||'\u2014';v('rvIdentity').textContent=maskedIdentity();\n  }\n\n  tabs.forEach(t=>t.addEventListener('click',()=>{\n    tabs.forEach(x=>x.classList.remove('active'));t.classList.add('active');root.querySelectorAll('.nc-mode').forEach(m=>m.classList.add('nc-hidden'));\n    root.querySelector('#ncMode'+(t.dataset.mode==='need'?'Need':t.dataset.mode==='doctor'?'Doctor':'Clinic')).classList.remove('nc-hidden');\n    root.querySelectorAll('.nc-selectable').forEach(x=>x.classList.remove('selected'));root.querySelectorAll('.nc-subpanel').forEach(x=>x.classList.add('nc-hidden'));const needHome=root.querySelector('#ncNeedHome');if(needHome)needHome.classList.remove('nc-hidden');const sb=root.querySelector('#ncStep1Back');if(sb)sb.classList.add('nc-hidden');state.serviceKey='';state.service='';state.doctor='';state.doctorId=null;state.doctorExplicit=false;state.branchCode=null;state.clinic='';root.querySelector('#ncNext1').disabled=true;updateSummary();\n  }));\n  root.querySelectorAll('.nc-category').forEach(c=>c.addEventListener('click',()=>{root.querySelector('#ncNeedHome').classList.add('nc-hidden');root.querySelector('[data-subpanel=\"'+c.dataset.category+'\"]').classList.remove('nc-hidden');const b=root.querySelector('#ncStep1Back');if(b)b.classList.remove('nc-hidden')}));\n  const step1Back=root.querySelector('#ncStep1Back');if(step1Back)step1Back.addEventListener('click',()=>{root.querySelectorAll('.nc-subpanel').forEach(x=>x.classList.add('nc-hidden'));root.querySelector('#ncNeedHome').classList.remove('nc-hidden');step1Back.classList.add('nc-hidden');root.querySelectorAll('#ncModeNeed .nc-selectable').forEach(x=>x.classList.remove('selected'));state.serviceKey='';state.service='';state.doctor='';state.doctorId=null;state.doctorExplicit=false;state.branchCode=null;state.clinic='';root.querySelector('#ncNext1').disabled=true;updateSummary()});\n  root.querySelectorAll('.nc-selectable').forEach(el=>el.addEventListener('click',()=>choose(el)));\n  root.querySelectorAll('.nc-featured-cta').forEach(btn=>btn.addEventListener('click',()=>{\n    const slide=btn.closest('.nc-featured-slide');\n    state.serviceKey=slide.dataset.serviceKey||'';state.service=serviceDisplay(state.serviceKey,slide.dataset.service||'');state.doctorId=Number(slide.dataset.doctorId)||null;state.doctor=doctorDisplay(state.doctorId,slide.dataset.doctor||'');state.doctorExplicit=true;state.branchCode=null;state.clinic='';go(2);\n  }));\n  root.querySelector('#ncNext1').addEventListener('click',()=>go(2));root.querySelector('#ncNext2').addEventListener('click',()=>go(3));root.querySelector('#ncNext3').addEventListener('click',()=>{const e=validateEmail(true),i=validateIdentity(true),b=validateBasicDetails(true);updateDetailsGate();if(e&&i&&b)go(4);});\n  root.querySelectorAll('[data-back]').forEach(b=>b.addEventListener('click',()=>go(Number(b.dataset.back))));\n  root.querySelector('#ncMoreTimes').addEventListener('click',()=>{state.showAll=true;renderTimes()});root.querySelector('#ncMoreDates').addEventListener('click',showMoreDates);\n  root.querySelector('#ncRestart').addEventListener('click',()=>location.reload());\n  root.querySelector('#ncConfirm').addEventListener('click',confirmBooking);\n  root.querySelector('#ncName').addEventListener('input',e=>{e.currentTarget.setCustomValidity('');e.currentTarget.classList.remove('nc-invalid');validateBasicDetails(false)});\n  root.querySelector('#ncPhone').addEventListener('input',e=>{e.currentTarget.setCustomValidity('');e.currentTarget.classList.remove('nc-invalid')});\n  root.querySelectorAll('.nc-id-mode').forEach(b=>b.addEventListener('click',()=>setIdentityMode(b.dataset.idMode)));\n  root.querySelector('#ncId').addEventListener('input',()=>{normalizeIdentity();updateDetailsGate()});\n  root.querySelector('#ncId').addEventListener('blur',()=>{validateIdentity(true);updateDetailsGate()});\n  root.querySelector('#ncEmail').addEventListener('input',updateDetailsGate);\n  root.querySelector('#ncEmail').addEventListener('blur',()=>{validateEmail(true);updateDetailsGate()});\n  setIdentityMode('ic');\n\n  let activeFilter='all';\n  function applyDoctorFilter(){const q=root.querySelector('#ncDoctorSearch').value.trim().toLowerCase();root.querySelectorAll('.nc-doctor-card').forEach(c=>{const okF=activeFilter==='all'||c.dataset.filter===activeFilter;const okQ=!q||(c.dataset.search||'').toLowerCase().includes(q);c.classList.toggle('nc-hidden',!(okF&&okQ))})}\n  root.querySelector('#ncDoctorSearch').addEventListener('input',applyDoctorFilter);\n  root.querySelectorAll('.nc-filter').forEach(f=>f.addEventListener('click',()=>{root.querySelectorAll('.nc-filter').forEach(x=>x.classList.remove('active'));f.classList.add('active');activeFilter=f.dataset.filter;applyDoctorFilter()}));\n\n  const fSlides=[...root.querySelectorAll('.nc-featured-slide')];\n  const fDots=[...root.querySelectorAll('[data-fdot]')];\n  let fIndex=0,fTimer=null,touchStartX=null;\n  function showFeatured(i){\n    if(!fSlides.length)return;\n    fIndex=(i+fSlides.length)%fSlides.length;\n    fSlides.forEach((s,n)=>{s.classList.toggle('nc-hidden',n!==fIndex);s.classList.toggle('active',n===fIndex)});\n    fDots.forEach((d,n)=>d.classList.toggle('active',n===fIndex));\n  }\n  function startFeatured(){\n    if(window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;\n    clearInterval(fTimer);fTimer=setInterval(()=>showFeatured(fIndex+1),5500);\n  }\n  function stopFeatured(){clearInterval(fTimer);fTimer=null;}\n  root.querySelectorAll('.nc-featured-arrow').forEach(b=>b.addEventListener('click',()=>{showFeatured(fIndex+Number(b.dataset.dir||1));startFeatured()}));\n  fDots.forEach(d=>d.addEventListener('click',()=>{showFeatured(Number(d.dataset.fdot));startFeatured()}));\n  const carousel=root.querySelector('#ncFeaturedCarousel');\n  if(carousel){\n    carousel.addEventListener('mouseenter',stopFeatured);carousel.addEventListener('mouseleave',startFeatured);\n    carousel.addEventListener('focusin',stopFeatured);carousel.addEventListener('focusout',startFeatured);\n    carousel.addEventListener('touchstart',e=>{touchStartX=e.touches&&e.touches[0]?e.touches[0].clientX:null;stopFeatured()},{passive:true});\n    carousel.addEventListener('touchend',e=>{if(touchStartX!==null&&e.changedTouches&&e.changedTouches[0]){const dx=e.changedTouches[0].clientX-touchStartX;if(Math.abs(dx)>40)showFeatured(fIndex+(dx<0?1:-1));}touchStartX=null;startFeatured()},{passive:true});\n  }\n  fSlides.forEach(async slide=>{\n    const fast=slide.querySelector('[data-fast]');if(!fast)return;\n    try{\n      let month=ym(myToday()),d=await api('\/dates',{service_key:slide.dataset.serviceKey,doctor_id:Number(slide.dataset.doctorId),month});\n      if(!d.dates||!d.dates.length)d=await api('\/dates',{service_key:slide.dataset.serviceKey,doctor_id:Number(slide.dataset.doctorId),month:addMonth(month)});\n      const first=(d.dates||[])[0];\n      if(first){\n        const l=dateLabel(first.date);\n        const branch=(first.branches||[]).map(x=>branchDisplay(x,x)).join(' \/ ');\n        fast.textContent=L.earliest(l.bottom,branch);\n      }else fast.textContent=L.noRecent;\n    }catch(e){fast.textContent=L.fastFail}\n  });\n  showFeatured(0);startFeatured();\n  updateSummary();\n})();\n<\/script>\n<\/div>\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>AllAcupunctureEye WellnessFertilityGeneral MedicineGynecologyMen&#8217;s HealthOncology SupportPain ManagementPediatricsPostpartum CareRehabilitationRSE Skeletal BalanceSenior CareSkin SolutionsStructural RestorationTuina TherapyWeight ManagementOther Check Official Portal of T&amp;CMD, MOH<\/p>","protected":false},"author":1,"featured_media":46056,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"rank_math_title":"Book TCM Appointment Johor Bahru | Nature Concept | 60s Online Booking","rank_math_description":"TCM appointment online booking in 60 seconds. Nature Concept T&amp;CM serves Johor Bahru &amp; Singapore with 5 branches. Expert acupuncture, gynecology, oncology, pediatrics &amp; RSE skeletal balance. Book now.","rank_math_focus_keyword":"book,book tcm appointment johor bahru,nature concept booking,tcm online booking malaysia,acupuncture appointment jb,\u8bda\u5fb7\u4e2d\u533b\u9884\u7ea6,\u65b0\u5c71\u4e2d\u533b\u9884\u7ea6,\u7f51\u4e0a\u9884\u7ea6\u4e2d\u533b,\u9488\u7078\u9884\u7ea6\u65b0\u5c71","footnotes":"","rank_math_canonical_url":""},"class_list":["post-40877","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/pages\/40877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/comments?post=40877"}],"version-history":[{"count":108,"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/pages\/40877\/revisions"}],"predecessor-version":[{"id":48745,"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/pages\/40877\/revisions\/48745"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/media\/46056"}],"wp:attachment":[{"href":"https:\/\/natureconceptcm.com\/zh\/wp-json\/wp\/v2\/media?parent=40877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}