{"id":7537,"date":"2026-10-23T11:34:45","date_gmt":"2026-10-23T11:34:45","guid":{"rendered":"https:\/\/rosevilleconfinement.com\/?page_id=7537"},"modified":"2026-11-05T03:52:03","modified_gmt":"2026-11-05T03:52:03","slug":"laman-utama","status":"publish","type":"page","link":"https:\/\/rosevilleconfinement.com\/en\/","title":{"rendered":"Laman Utama"},"content":{"rendered":"<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700;800&amp;display=swap\"><style>.rv2{--latar:#FBF8F4;--kad:#fff;--blush:#F3DCD7;--blush2:#F9ECE8;--mawar:#C27C7A;--mawar-tua:#9A5654;--sage:#DCE8DF;--sage2:#EEF4EF;--euc:#2F6B5E;--euc-tua:#24564B;--emas:#C9A46A;--teks:#2E2A2B;--sub:#5F5658;--garis:#EDE3DD;--wa:#25D366;--wa-tua:#0F7A3F;--serif:\"Montserrat\",system-ui,-apple-system,\"Segoe UI\",sans-serif;--sans:\"Montserrat\",system-ui,-apple-system,\"Segoe UI\",sans-serif;--r:22px;--rk:14px;--bayang:0 12px 34px rgba(46,42,43,.08);--grad:linear-gradient(100deg,#C27C7A 0%,#B58B5E 45%,#2F6B5E 100%)}.rv2,.rv2 *,.rv2 *::before,.rv2 *::after{box-sizing:border-box}.rv2{color:var(--teks);font:16.5px\/1.72 var(--sans);-webkit-font-smoothing:antialiased}.rv2 img{max-width:100%;display:block}.rv2 a{color:var(--euc)}.rv2 h1,.rv2 h2,.rv2 h3{line-height:1.15;margin:0 0 .4em}.rv2 h1,.rv2 h2{font-family:var(--serif);font-weight:700;letter-spacing:-.025em}.rv2 h1{font-size:clamp(32px,4.5vw,54px);line-height:1.12}.rv2 h2{font-size:clamp(25px,2.9vw,36px)}.rv2 h3{font-size:18px;font-weight:700;letter-spacing:-.01em}.rv2 .wrap{max-width:1180px;margin:0 auto;padding:0 20px;position:relative}.rv2 .eye{font-size:12.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--mawar-tua);margin:0 0 10px}.rv2 .lead{font-size:19px;color:var(--sub);max-width:58ch}.rv2 .pengantar{color:var(--sub);max-width:68ch}.rv2 .tengah{text-align:center;margin-left:auto;margin-right:auto}.rv2 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.rv2 .ik{flex:0 0 auto;vertical-align:middle}.rv2 .kecil-sub{font-size:13.5px;color:var(--sub)}.rv2 .kepala-laman{position:sticky;top:44px;z-index:50;padding:12px 20px 0}.rv2 .nav-pil{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.74);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 30px rgba(46,42,43,.08);border-radius:999px;padding:8px 8px 8px 16px}.rv2 .logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--teks);margin-right:auto}.rv2 .logo img{width:30px;height:auto}.rv2 .logo b{font-family:var(--serif);font-size:21px;font-weight:600;color:var(--mawar-tua)}.rv2 .logo small{display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sub);margin-top:-3px}.rv2 .nav-pil nav{display:flex;gap:2px}.rv2 .nav-pil nav a{font-size:14.5px;font-weight:600;color:var(--teks);text-decoration:none;padding:8px 13px;border-radius:999px}.rv2 .nav-pil nav a:hover,.rv2 .nav-pil nav a.aktif{background:var(--blush2);color:var(--mawar-tua)}.rv2 .bahasa{font-size:13px;font-weight:700;color:var(--sub);padding:0 8px;text-decoration:none}.rv2 .menu-btn{display:none;background:none;border:0;padding:8px;color:var(--teks);cursor:pointer}.rv2 .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 15.5px\/1 var(--sans);border-radius:999px;padding:14px 22px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}.rv2 .btn:hover{transform:translateY(-1px)}.rv2 .btn:focus-visible,.rv2 a:focus-visible,.rv2 button:focus-visible,.rv2 input:focus-visible,.rv2 select:focus-visible{outline:3px solid var(--emas);outline-offset:2px}.rv2 .btn-utama{background:var(--euc);color:#fff;box-shadow:0 8px 20px rgba(47,107,94,.25)}.rv2 .btn-utama:hover{background:var(--euc-tua)}.rv2 .btn-kedua{background:#fff;color:var(--teks);border-color:var(--garis)}.rv2 .btn-garis{background:transparent;color:var(--euc);border-color:var(--euc)}.rv2 .btn-wa{background:var(--wa);color:#063D1E}.rv2 .btn-wa:hover{background:#1FBF5B}.rv2 .btn-utama-wa{background:var(--wa);color:#063D1E;box-shadow:0 8px 20px rgba(37,211,102,.28)}.rv2 .btn.kecil{padding:10px 15px;font-size:14px}.rv2 .btn.penuh{width:100%}.rv2 .cta-baris{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0}.rv2 .cta-baris.tengah{justify-content:center}.rv2 .pautan-anak{font-weight:700;text-decoration:none;color:var(--euc)}.rv2 .wa-teks{color:var(--wa-tua)}.rv2 .wa-teks .ik{display:none}.rv2 .hero{position:relative;overflow:hidden;padding:46px 0 70px}.rv2 .hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:46px;align-items:center}.rv2 .hero h1{max-width:15ch}.rv2 .bukti{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14.5px;color:var(--sub);font-weight:600}.rv2 .bukti li{display:flex;gap:6px;align-items:center}.rv2 .bukti .ik{color:var(--euc)}.rv2 .hero-vis{position:relative}.rv2 .bingkai{border-radius:var(--r);overflow:hidden;background:var(--blush2);box-shadow:var(--bayang)}.rv2 .bingkai.besar{border-radius:34px;aspect-ratio:4\/3.3}.rv2 .bingkai.besar img{width:100%;height:100%;object-fit:cover}.rv2 .bingkai img.foto{width:100%;height:100%;object-fit:cover;aspect-ratio:3\/2}.rv2 .kaca{position:absolute;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid #fff;border-radius:18px;padding:12px 16px;box-shadow:var(--bayang);display:flex;flex-direction:column;font-size:13px;color:var(--sub)}.rv2 .kaca b{font-size:20px;color:var(--teks);display:flex;align-items:center;gap:4px}.rv2 .kaca .ik{color:var(--emas)}.rv2 .k1{left:-22px;bottom:34px}.rv2 .k2{right:-14px;top:26px}.rv2 .blob{position:absolute;border-radius:50%;filter:blur(8px);z-index:-1;opacity:.85}.rv2 .hero .b1,.rv2 .kepala .b1{width:420px;height:420px;background:var(--blush);right:-120px;top:-80px}.rv2 .hero .b2,.rv2 .kepala .b2{width:300px;height:300px;background:var(--sage);left:-110px;bottom:-120px}.rv2 .ganti{display:grid;place-items:center;text-align:center;color:var(--mawar-tua);background:repeating-linear-gradient(135deg,var(--blush2),var(--blush2) 12px,#fff 12px,#fff 24px);aspect-ratio:3\/2;font-weight:700;font-size:14px}.rv2 .ganti small{font-weight:600;color:var(--sub)}.rv2 .kepala{position:relative;overflow:hidden;padding:56px 0 46px}.rv2 .kepala h1{max-width:18ch}.rv2 .stat{padding:0 0 30px}.rv2 .stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.rv2 .stat-grid div{background:var(--kad);border:1px solid var(--garis);border-radius:20px;padding:18px;text-align:center;box-shadow:0 6px 18px rgba(46,42,43,.04)}.rv2 .stat-grid b{display:block;font:600 36px\/1.1 var(--serif);color:var(--euc)}.rv2 .stat-grid span{font-size:13.5px;color:var(--sub)}.rv2 .blok{padding:64px 0}.rv2 .blok.lembut{background:linear-gradient(180deg,var(--blush2),var(--latar))}.rv2 .tajuk-baris{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:26px;flex-wrap:wrap}.rv2 .niat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}.rv2 .niat-kad{background:var(--kad);border:1px solid var(--garis);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 22px rgba(46,42,43,.05);transition:transform .2s}.rv2 .niat-kad:hover{transform:translateY(-3px)}.rv2 .niat-kad h3{font-family:var(--serif);font-weight:600;font-size:21px}.rv2 .niat-kad p{color:var(--sub);margin:0 0 6px;font-size:15px;flex:1}.rv2 .empati{background:var(--euc);color:#F4F8F5;padding:70px 0;position:relative;overflow:hidden}.rv2 .empati .ungkap{font:500 clamp(26px,3.6vw,44px)\/1.25 var(--serif);max-width:26ch;margin:0 auto;text-align:center}.rv2 .ungkap span{opacity:.18;transition:opacity .5s}.rv2 .ungkap span.nampak{opacity:1}.rv2 .ciri-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}.rv2 .ciri{background:var(--kad);border:1px solid var(--garis);border-radius:var(--r);padding:22px}.rv2 .ciri .ik{color:var(--mawar);margin-bottom:10px}.rv2 .ciri p{color:var(--sub);margin:0;font-size:15px}.rv2 .ciri.kecil{display:flex;gap:12px;align-items:flex-start}.rv2 .ciri.kecil h3{font-size:16px;margin-bottom:2px}@media (max-width:420px){.rv2 .ciri.kecil{padding:16px}}.rv2 .tab-pil{display:inline-flex;gap:4px;background:#fff;border:1px solid var(--garis);border-radius:999px;padding:5px;margin:0 0 22px;flex-wrap:wrap}.rv2 .tab-pil button{font:700 14.5px var(--sans);border:0;background:none;border-radius:999px;padding:10px 16px;cursor:pointer;color:var(--sub)}.rv2 .tab-pil button[aria-selected=\"true\"]{background:var(--euc);color:#fff}.rv2 .tab-pil.gulung{display:flex;overflow-x:auto;flex-wrap:nowrap;max-width:100%}.rv2 .tab-panel{display:none}.rv2 .tab-panel.aktif{display:block;animation:muncul .35s ease}@keyframes muncul{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.rv2 .bilik-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.rv2 .kad-bilik{text-decoration:none;color:inherit;background:#fff;border:1px solid var(--garis);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s}.rv2 .kad-bilik:hover{transform:translateY(-4px);box-shadow:var(--bayang)}.rv2 .kad-bilik .bingkai{border-radius:0;box-shadow:none}.rv2 .isi{padding:18px 20px 22px}.rv2 .isi p{color:var(--sub);margin:0;font-size:15px}.rv2 .cip{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--sage);color:var(--euc);border-radius:999px;padding:4px 10px;margin-bottom:8px}.rv2 .langkah{list-style:none;padding:0;margin:28px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:l}.rv2 .langkah li{counter-increment:l;background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:22px 20px 20px;position:relative}.rv2 .langkah li::before{content:counter(l);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blush);color:var(--mawar-tua);font:700 18px var(--serif);margin-bottom:10px}.rv2 .langkah b{display:block;font-size:17px}.rv2 .langkah span{color:var(--sub);font-size:15px}.rv2 .pelan-promo{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;align-items:center;background:linear-gradient(135deg,var(--sage2),var(--blush2));border-radius:32px;padding:34px}.rv2 .pelan-promo p{color:var(--sub)}.rv2 .pelan-mini{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:#fff;border-radius:22px;padding:18px}.rv2 .pelan-mini label{flex:1;min-width:180px;font-weight:700;font-size:14px;display:flex;flex-direction:column;gap:6px}.rv2 input:not([type=checkbox]):not([type=radio]),.rv2 select{font:16px var(--sans);border:1.5px solid var(--garis);border-radius:14px;padding:12px 14px;background:#fff;color:var(--teks);width:100%}.rv2 .ulasan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.rv2 .ulasan{margin:0;background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:22px}.rv2 .ulasan .bintang{color:var(--emas);display:flex;gap:2px}.rv2 .ulasan blockquote{margin:12px 0;font:500 18px\/1.5 var(--serif);color:var(--teks)}.rv2 .ulasan figcaption{font-size:14px;color:var(--sub)}.rv2 .art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.rv2 .art-grid.satu{grid-template-columns:1fr}.rv2 .kad-art{text-decoration:none;color:inherit;background:#fff;border:1px solid var(--garis);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.rv2 .kad-art:hover{transform:translateY(-3px);box-shadow:var(--bayang)}.rv2 .kad-art .bingkai{border-radius:0;box-shadow:none}.rv2 .kad-art h3{font-family:var(--serif);font-weight:600;font-size:20px}.rv2 .kad-art .meta{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--euc);font-weight:700;margin-top:10px}.rv2 .sampul{aspect-ratio:3\/2;height:100%;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;padding:20px;color:var(--euc)}.rv2 .sampul b{font:600 clamp(22px,2.4vw,30px)\/1.15 var(--serif);color:var(--teks)}.rv2 .sampul span{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mawar-tua)}.rv2 .s0{background:linear-gradient(135deg,var(--blush),var(--sage2))}.rv2 .s1{background:linear-gradient(135deg,var(--sage),var(--latar))}.rv2 .s2{background:linear-gradient(135deg,var(--blush2),#EBD9BC)}.rv2 .s3{background:linear-gradient(135deg,var(--sage2),var(--blush))}.rv2 .kad-art.besar{display:grid;grid-template-columns:1.2fr 1fr;margin-bottom:18px}.rv2 .kad-art.besar h3{font-size:28px}.rv2 .art-grid.satu .kad-art{display:grid;grid-template-columns:150px 1fr}.rv2 .art-grid.satu .kad-art p{display:none}.rv2 .akhir{padding:70px 0;text-align:center;background:linear-gradient(135deg,var(--blush),var(--sage));}.rv2 .akhir h2{max-width:20ch;margin:0 auto 8px}.rv2 .akhir p{color:var(--sub);margin:0}.rv2 .jadual-bungkus{overflow-x:auto;background:#fff;border:1px solid var(--garis);border-radius:var(--r)}.rv2 .jadual{width:100%;border-collapse:collapse;font-size:15.5px}.rv2 .jadual th{text-align:left;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--sub);padding:14px 18px;background:var(--sage2)}.rv2 .jadual td{padding:14px 18px;border-top:1px solid var(--garis);vertical-align:middle}.rv2 .jadual td small{display:block;color:var(--sub);font-size:13px}.rv2 .jadual td.h{font:600 20px var(--serif);color:var(--euc);white-space:nowrap}.rv2 .jadual.banding td:not(:first-child){text-align:center;color:var(--euc)}.rv2 .sahkan{font:600 13px var(--sans);color:var(--mawar-tua);background:var(--blush2);border:1px dashed var(--mawar);border-radius:8px;padding:3px 7px;white-space:normal}.rv2 .dua-lajur{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.rv2 .dua-lajur.atas{align-items:start}.rv2 .senarai-harga{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}.rv2 .senarai-harga li{display:flex;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--garis);border-radius:14px;padding:12px 16px}.rv2 .senarai-harga b{color:var(--euc)}.rv2 .kad-panduan{background:#fff;border:1px solid var(--garis);border-radius:28px;padding:26px;box-shadow:0 8px 24px rgba(46,42,43,.05)}.rv2 .kad-panduan p{color:var(--sub)}.rv2 .kad-panduan hr{border:0;border-top:1px solid var(--garis);margin:22px 0}.rv2 .bilik-senarai{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.rv2 .bilik{background:#fff;border:1px solid var(--garis);border-radius:26px;overflow:hidden}.rv2 .bilik .bingkai{border-radius:0;box-shadow:none}.rv2 .bilik h3{font-family:var(--serif);font-weight:600;font-size:28px}.rv2 .bilik[hidden]{display:none}.rv2 .kem{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:14.5px;color:var(--sub)}.rv2 .kem li{display:flex;gap:6px;align-items:center}.rv2 .kem .ik{color:var(--euc)}.rv2 .kem li.sub{grid-column:1\/-1;font-weight:700;color:var(--teks)}.rv2 .video-kad{display:grid;grid-template-columns:1fr 1.1fr;gap:30px;align-items:center}.rv2 .video-ganti{aspect-ratio:16\/9;border-radius:26px;background:linear-gradient(135deg,var(--blush),var(--sage));display:grid;place-items:center;align-content:center;gap:8px;color:var(--euc);font-weight:700}.rv2 .menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.rv2 .menu-kump h3{font-family:var(--serif);font-weight:600;font-size:23px}.rv2 .rawatan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.rv2 .kad-rawatan{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:6px}.rv2 .kad-rawatan .ik{color:var(--mawar)}.rv2 .kad-rawatan p{color:var(--sub);flex:1;font-size:15px}.rv2 .ahli-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}.rv2 .ahli{background:#fff;border:1px solid var(--garis);border-radius:28px;padding:28px;position:relative;display:flex;flex-direction:column}.rv2 .ahli.pilihan{border:2px solid var(--euc);box-shadow:var(--bayang)}.rv2 .lencana{position:absolute;top:-13px;left:28px;background:var(--euc);color:#fff;font-size:12px;font-weight:800;border-radius:999px;padding:5px 12px}.rv2 .ahli h3{font-family:var(--serif);font-weight:600;font-size:30px;margin:0}.rv2 .ahli .tag{color:var(--sub);margin:0}.rv2 .ahli .harga{margin:14px 0 0}.rv2 .ahli .harga b{font:600 44px var(--serif);color:var(--euc)}.rv2 .ahli .harga span{color:var(--sub)}.rv2 .ahli .jum{font-weight:700;color:var(--mawar-tua);margin:0 0 10px}.rv2 .ahli .kem{grid-template-columns:1fr;flex:1;margin-bottom:20px}.rv2 .pasukan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.rv2 .ahli-pasukan{margin:0;text-align:center}.rv2 .potret{aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,var(--blush),var(--sage));display:grid;place-items:center;align-content:center;color:var(--mawar-tua);max-width:190px;margin:0 auto 12px}.rv2 .potret small{font-size:12px;color:var(--sub)}.rv2 .ahli-pasukan figcaption b{display:block}.rv2 .ahli-pasukan figcaption span{display:block;color:var(--euc);font-weight:700;font-size:14px}.rv2 .ahli-pasukan figcaption small{color:var(--sub)}.rv2 .kenyataan{display:flex;gap:16px;background:#fff;border:1px solid var(--garis);border-left:6px solid var(--euc);border-radius:22px;padding:24px}.rv2 .kenyataan .ik{color:var(--euc)}.rv2 .kenyataan p{color:var(--sub);margin:.3em 0}.rv2 .senarai-ikon{list-style:none;padding:0;margin:18px 0 26px;display:grid;gap:14px}.rv2 .senarai-ikon li{display:flex;gap:14px;align-items:flex-start}.rv2 .senarai-ikon .ik{color:var(--mawar);margin-top:3px}.rv2 .senarai-ikon b{display:block}.rv2 .senarai-ikon span{color:var(--sub);font-size:15.5px}.rv2 .borang{background:#fff;border:1px solid var(--garis);border-radius:30px;padding:28px;box-shadow:var(--bayang);display:grid;gap:14px}.rv2 .borang label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14.5px}.rv2 fieldset{border:0;padding:0;margin:0}.rv2 legend{font-weight:700;font-size:14.5px;margin-bottom:8px}.rv2 legend small{font-weight:600;color:var(--mawar-tua)}.rv2 .cip-pilih{display:flex;gap:8px;flex-wrap:wrap}.rv2 .cip-pilih button{font:600 14px var(--sans);border:1.5px solid var(--garis);background:#fff;border-radius:14px;padding:9px 12px;cursor:pointer;line-height:1.25}.rv2 .cip-pilih button small{display:block;color:var(--sub);font-size:12px}.rv2 .cip-pilih button[aria-pressed=\"true\"]{border-color:var(--euc);background:var(--sage2);color:var(--euc)}.rv2 .pelan-borang{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:#fff;border:1px solid var(--garis);border-radius:28px;padding:24px;box-shadow:var(--bayang)}.rv2 .pelan-borang label{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14.5px}.rv2 .pelan-hasil{margin-top:28px}.rv2 .pelan-kepala{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-end}.rv2 .garis-masa{list-style:none;padding:0;margin:24px 0 0;position:relative;display:grid;gap:12px}.rv2 .garis-masa li{display:grid;grid-template-columns:150px 1fr;gap:18px;background:#fff;border:1px solid var(--garis);border-radius:20px;padding:18px 20px;position:relative}.rv2 .garis-masa li.utama{border:2px solid var(--euc);background:var(--sage2)}.rv2 .garis-masa .tarikh{font:600 18px\/1.3 var(--serif);color:var(--euc)}.rv2 .garis-masa b{display:block;font-size:17px}.rv2 .garis-masa span{color:var(--sub);font-size:15px}.rv2 .semak-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.rv2 .semak-kump{background:#fff;border:1px solid var(--garis);border-radius:24px;padding:20px}.rv2 .semak-kump h3{font-family:var(--serif);font-weight:600;font-size:22px}.rv2 .semak{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--garis);font-size:15px;cursor:pointer}.rv2 .semak input{width:20px;height:20px;accent-color:var(--euc);margin-top:3px;flex:0 0 auto}.rv2 .semak input:checked+span{text-decoration:line-through;color:var(--sub)}.rv2 .kemajuan{font-weight:800;color:var(--euc);background:var(--sage);border-radius:999px;padding:6px 14px}.rv2 .penafian{display:flex;gap:10px;align-items:flex-start;color:var(--sub);font-size:14.5px;background:#fff;border:1px dashed var(--garis);border-radius:18px;padding:16px}.rv2 .hubungi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.rv2 .hubungi-kad{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.rv2 .hubungi-kad .ik{color:var(--mawar)}.rv2 .hubungi-kad p{margin:0 0 6px;color:var(--sub);flex:1}.rv2 .cari{display:flex;gap:8px;max-width:560px;margin-top:22px}.rv2 .topik{margin-bottom:22px}.rv2 .faq-wrap{max-width:860px}.rv2 .faq-kump{margin-bottom:34px}.rv2 .faq-kump h2{font-size:28px}.rv2 .faq{background:#fff;border:1px solid var(--garis);border-radius:18px;padding:16px 20px;margin:10px 0}.rv2 .faq summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:10px}.rv2 .faq summary::after{content:\"+\";color:var(--euc);font-size:22px;line-height:1}.rv2 .faq[open] summary::after{content:\"\u2212\"}.rv2 .faq p{color:var(--sub);margin:10px 0 0}.rv2 footer.kaki{background:#fff;border-top:1px solid var(--garis);padding:46px 0 110px;font-size:14.5px;color:var(--sub)}.rv2 .kaki-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:26px}.rv2 .kaki-grid b{color:var(--teks);display:block;margin-bottom:8px}.rv2 .kaki-grid a{display:block;color:var(--sub);text-decoration:none;padding:3px 0}.rv2 .kaki-grid a:hover{color:var(--euc)}.rv2 .kaki-bawah{border-top:1px solid var(--garis);margin-top:26px;padding-top:16px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}.rv2 .wa-terapung{position:fixed;right:20px;bottom:22px;z-index:55;display:flex;align-items:center;gap:8px;background:var(--wa);color:#063D1E;font-weight:800;text-decoration:none;border-radius:999px;padding:14px 18px;box-shadow:0 12px 30px rgba(15,122,63,.35)}.rv2 .wa-terapung .ik{width:24px;height:24px}.rv2 .bar-telefon{display:none}.rv2 .hero h1{max-width:none;font-size:clamp(30px,3.7vw,48px)}.rv2 .pautan-bintang{color:inherit;text-decoration:none;display:inline-flex;gap:6px;align-items:center;border-bottom:1px dashed var(--emas)}.rv2 .bukti .pautan-bintang .ik{color:var(--emas)}.rv2 a.kaca{text-decoration:none}.rv2 .art-grid.satu .sampul{aspect-ratio:auto;width:100%;height:100%;min-height:96px}.rv2 .dua-pintu{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px;position:relative;z-index:1}.rv2 .pintu{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--teks);border-radius:26px;padding:22px 24px;border:1px solid var(--garis);box-shadow:var(--bayang);transition:transform .2s}.rv2 .pintu:hover{transform:translateY(-3px)}.rv2 .pintu.villa{background:linear-gradient(135deg,#fff,var(--blush2))}.rv2 .pintu.spa{background:linear-gradient(135deg,#fff,var(--sage2))}.rv2 .pintu b{font:700 22px\/1.25 var(--serif);letter-spacing:-.015em}.rv2 .pintu span:not(.eye){color:var(--sub);font-size:15px}.rv2 .pintu em{font-style:normal;font-weight:700;color:var(--euc);margin-top:8px}.rv2 .blok-nipis{padding:6px 0 34px}.rv2 .bukti-jalur{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.rv2 .bukti-jalur div{background:#fff;border:1px solid var(--garis);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}.rv2 .bukti-jalur b{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--euc)}.rv2 .bukti-jalur span{font-size:14.5px;color:var(--sub);line-height:1.5}.rv2 .harga3 th small{display:block;font-size:11.5px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--sub);margin-top:2px}.rv2 .harga3 td:first-child b{display:block;white-space:nowrap}.rv2 .tt-tajuk{margin:30px 0 12px}.rv2 .tt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.rv2 .tt{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:18px}.rv2 .tt ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:8px;font-size:14.5px;color:var(--sub);line-height:1.5}.rv2 .tt li{display:flex;gap:7px;align-items:flex-start}.rv2 .tt .ik{color:var(--euc);flex:none;margin-top:3px}.rv2 .kenyataan.kopetro{margin-top:22px}.rv2 .kenyataan.kopetro .btn{margin-top:10px}.rv2 .kenyataan.klinik{margin-top:22px;border-left-color:var(--mawar)}.rv2 .kenyataan.klinik .ik{color:var(--mawar)}.rv2 .spa-pakej-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.rv2 .spa-pakej{background:#fff;border:1px solid var(--garis);border-radius:26px;padding:24px;display:flex;flex-direction:column}.rv2 .spa-pakej.pilihan{border:2px solid var(--euc);box-shadow:var(--bayang)}.rv2 .spa-pakej h3{font:700 26px var(--serif);margin:0}.rv2 .spa-pakej .eye{margin:0 0 4px}.rv2 .spa-pakej .harga{margin:8px 0 6px}.rv2 .spa-pakej .harga b{font:700 38px var(--serif);color:var(--euc)}.rv2 .kem.satu{grid-template-columns:1fr;gap:10px}.rv2 .kem.satu li{align-items:flex-start}.rv2 .kem.satu .ik{flex:none;margin-top:5px}.rv2 .spa-pakej .kem{grid-template-columns:1fr;flex:1;margin-bottom:18px;align-content:start}.rv2 .spa-pakej .kem li{align-items:flex-start}.rv2 .spa-pakej .kem .ik{flex:none;margin-top:4px}.rv2 .lokasi-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-top:22px;align-items:stretch}.rv2 .peta-bingkai{border-radius:var(--r);overflow:hidden;border:1px solid var(--garis);background:var(--sage2);min-height:400px}.rv2 .peta-bingkai iframe{width:100%;height:100%;min-height:400px;border:0;display:block}.rv2 .nap-kotak{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:16px}.rv2 .nap{margin:0;display:grid;gap:12px}.rv2 .nap div{display:grid;grid-template-columns:86px 1fr;gap:10px}.rv2 .nap dt{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mawar-tua);padding-top:3px}.rv2 .nap dd{margin:0;font-size:15px;line-height:1.55}.rv2 .nap-cta{display:flex;flex-wrap:wrap;gap:10px}.rv2 .ringkasan-ulasan{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--teks);background:#fff;border:1px solid var(--garis);border-radius:20px;padding:12px 18px}.rv2 .ringkasan-ulasan b{font:700 42px\/1 var(--serif);color:var(--euc)}.rv2 .ringkasan-ulasan span{font-size:13.5px;color:var(--sub);line-height:1.55}.rv2 .ringkasan-ulasan .ik{color:var(--emas)}.rv2 .ringkasan-ulasan u{color:var(--euc);font-weight:700}.rv2 .senarai-ikon.dua{grid-template-columns:1fr 1fr;margin-top:22px}@media (max-width:1000px){.rv2 .tt-grid,.rv2 .bukti-jalur{grid-template-columns:repeat(2,1fr)}.rv2 .spa-pakej-grid,.rv2 .lokasi-grid{grid-template-columns:1fr}}@media (max-width:620px){.rv2 .dua-pintu,.rv2 .senarai-ikon.dua,.rv2 .tt-grid{grid-template-columns:1fr}.rv2 .bukti-jalur{grid-template-columns:1fr 1fr}.rv2 .jadual.harga3 thead{display:none}.rv2 .jadual.harga3,.rv2 .jadual.harga3 tbody{display:block}.rv2 .jadual.harga3 tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;align-items:center;padding:14px 16px;border-top:1px solid var(--garis)}.rv2 .jadual.harga3 tr:first-child{border-top:0}.rv2 .jadual.harga3 td{display:block;border:0;padding:0}.rv2 .jadual.harga3 td:first-child{grid-column:1\/3;grid-row:1}.rv2 .jadual.harga3 td:last-child{grid-column:3;grid-row:1;justify-self:end}.rv2 .jadual.harga3 td.h{font-size:17px;background:var(--sage2);border-radius:12px;padding:8px 10px}.rv2 .jadual.harga3 td.h::before{content:attr(data-label);display:block;font:800 10px\/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--sub)}.rv2 .nap-cta .btn{width:100%;justify-content:center}.rv2 .art-grid.satu .kad-art{grid-template-columns:96px minmax(0,1fr)}.rv2 .art-grid.satu .sampul{padding:10px}.rv2 .art-grid.satu .sampul b{font-size:13px}.rv2 .art-grid.satu .sampul span{display:none}.rv2 .peta-bingkai,.rv2 .peta-bingkai iframe{min-height:300px}.rv2 .nap div{grid-template-columns:1fr;gap:2px}.rv2 .ringkasan-ulasan b{font-size:34px}}@media (max-width:1000px){.rv2 .nav-pil nav{display:none}.rv2 .menu-btn{display:block}.rv2 .nav-pil.buka nav{display:flex;position:absolute;top:66px;left:20px;right:20px;flex-direction:column;background:#fff;border-radius:22px;padding:10px;box-shadow:var(--bayang)}.rv2 .hero-grid,.rv2 .dua-lajur,.rv2 .pelan-promo,.rv2 .video-kad,.rv2 .kad-art.besar{grid-template-columns:1fr}.rv2 .stat-grid{grid-template-columns:repeat(3,1fr)}.rv2 .niat-grid,.rv2 .ciri-grid,.rv2 .rawatan-grid,.rv2 .hubungi-grid,.rv2 .pasukan-grid,.rv2 .langkah{grid-template-columns:repeat(2,1fr)}.rv2 .bilik-grid,.rv2 .art-grid,.rv2 .ulasan-grid,.rv2 .menu-grid,.rv2 .ahli-grid,.rv2 .semak-grid,.rv2 .bilik-senarai{grid-template-columns:1fr}.rv2 .kaki-grid{grid-template-columns:1fr 1fr}.rv2 .k1{left:10px}.rv2 .k2{right:10px}}@media (max-width:620px){.rv2{font-size:16.5px}.rv2 .niat-grid,.rv2 .ciri-grid,.rv2 .rawatan-grid,.rv2 .hubungi-grid,.rv2 .pasukan-grid,.rv2 .langkah,.rv2 .stat-grid{grid-template-columns:1fr 1fr}.rv2 .niat-grid,.rv2 .langkah{grid-template-columns:1fr}.rv2 .hero{padding-top:26px}.rv2 .wa-terapung{display:none}.rv2 .bar-telefon{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--garis)}.rv2 .bar-telefon .btn{padding:13px 10px;font-size:14.5px}.rv2 .nav-pil>.btn-utama,.rv2 .bahasa{display:none}.rv2 .logo small{white-space:nowrap;font-size:8.5px}.rv2 .stat-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.rv2 .stat-grid div{flex:0 0 46%;scroll-snap-align:start}.rv2 .garis-masa li{grid-template-columns:1fr}.rv2 .kem{grid-template-columns:1fr}.rv2 .kepala-laman{top:40px}.rv2 .jadual td,.rv2 .jadual th{padding:12px}.rv2 .kaki-grid{grid-template-columns:1fr}}.rv2 .harga3 td.h s{display:block;font:600 12.5px\/1.3 var(--sans);color:var(--sub);opacity:.85}.rv2 .pasukan-grid.lima{grid-template-columns:repeat(5,1fr)}.rv2 .potret.ada-foto{background:none;overflow:hidden;padding:0}.rv2 .potret.ada-foto img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}.rv2 .bukti-jalur.tiga{grid-template-columns:repeat(3,1fr)}.rv2 .manfaat-ahli{margin-bottom:26px}@media (max-width:1000px){.rv2 .pasukan-grid.lima{grid-template-columns:repeat(3,1fr)}}@media (max-width:620px){.rv2 .pasukan-grid.lima{grid-template-columns:1fr 1fr}.rv2 .bukti-jalur.tiga{grid-template-columns:1fr}}.rv2 .bahasa{cursor:pointer}.rv2 .bahasa b{color:var(--mawar-tua)}.rv2 .langkah.satu-lajur{grid-template-columns:1fr}@media print{.rv2 .kepala-laman,.rv2 footer.kaki,.rv2 .wa-terapung,.rv2 .bar-telefon,.rv2 .pelan-borang,.rv2 .cta-baris{display:none!important}.rv2{}}.rv2 .rawatan-grid.tiga{grid-template-columns:repeat(3,1fr)}@media (max-width:700px){.rv2 .rawatan-grid.tiga{grid-template-columns:1fr}}@font-face{font-family:\"Montserrat Fallback\";font-weight:100 550;src:local(\"Arial\"),local(\"ArialMT\"),local(\"Roboto\"),local(\"Roboto-Regular\");size-adjust:111.98%;ascent-override:86.44%;descent-override:22.41%;line-gap-override:0%}@font-face{font-family:\"Montserrat Fallback\";font-weight:551 900;src:local(\"Arial Bold\"),local(\"Arial-BoldMT\"),local(\"Roboto Bold\"),local(\"Roboto-Bold\");size-adjust:111%;ascent-override:87.21%;descent-override:22.62%;line-gap-override:0%}.rv2{--serif:\"Montserrat\",\"Montserrat Fallback\",system-ui,-apple-system,\"Segoe UI\",sans-serif;--sans:\"Montserrat\",\"Montserrat Fallback\",system-ui,-apple-system,\"Segoe UI\",sans-serif}.rv2 .lead{max-width:38.4em}.rv2 .pengantar{max-width:45em}.rv2 .kepala h1{max-width:12.22em}.rv2 .akhir h2{max-width:13.58em}.rv2 .empati .ungkap{max-width:17.34em}body:has(.rv2){background:#FBF8F4;margin:0}body:has(.rv2) #qlwapp{display:none!important}.rv2-kepala{position:sticky;top:0;z-index:50}.admin-bar .rv2-kepala{top:32px}@media (max-width:782px){.admin-bar .rv2-kepala{top:46px}}.rv2 .kepala-laman{position:relative;top:auto}.rv2 [hidden]{display:none!important}.rv2 .hero,.rv2 .kepala{isolation:isolate}.rv2 h1,.rv2 h2,.rv2 h3,.rv2 h4{color:inherit;text-transform:none;font-style:normal}.rv2 p{margin-top:1em;margin-bottom:1em}.rv2 button{text-transform:none;letter-spacing:normal;box-shadow:none;min-height:0}.rv2 blockquote{border:0;padding:0;quotes:none;font-style:normal;background:none}.rv2 blockquote::before,.rv2 blockquote::after{content:none}.rv2 svg.ik{fill:none}.rv2 a:hover{color:var(--euc-tua)}.rv2 a.btn-utama:hover,.rv2 a.btn-utama:focus{color:#fff}.rv2 a.btn-wa:hover,.rv2 a.btn-utama-wa:hover,.rv2 a.wa-terapung:hover{color:#063D1E}.rv2 a.btn-kedua:hover{color:var(--teks)}.rv2 a.btn-garis:hover{color:var(--euc)}.rv2 .kaki-grid a:hover{color:var(--euc)}.rv2 .video-lawatan{display:block;width:100%;height:auto;max-height:72vh;border-radius:26px;background:#2E2A2B;box-shadow:var(--bayang)}.rv2 .ralat{color:#9A3412;font-weight:700;margin:0}.rv2-sembunyi{position:absolute;left:-9999px}.rv2{overflow-wrap:break-word}.rv2 .hubungi-grid>*{min-width:0}.rv2 .hubungi-kad p{overflow-wrap:anywhere}.rv2 .no-tel{white-space:nowrap}@media (min-width:1001px){.rv2 .hero-grid{grid-template-columns:1fr 1.1fr;gap:44px}.rv2 .hero-vis{margin-right:calc(-20px - max(0px, (100vw - 1180px) \/ 2))}.rv2 .hero .bingkai.besar{aspect-ratio:1.12;max-height:72vh;border-radius:34px 0 0 34px}.rv2 .hero .k2{right:28px}}@media (max-width:1000px){.rv2 .hero .hero-vis{width:100vw;max-width:none;margin-left:calc(50% - 50vw)}.rv2 .hero .bingkai.besar{border-radius:0;aspect-ratio:16\/11}}@media (max-width:620px){.rv2 .hero{padding-top:0}.rv2 .hero .hero-vis{order:-1}.rv2 .hero .bingkai.besar{aspect-ratio:4\/3.2}.rv2 .hero .kaca{padding:7px 11px;border-radius:14px;font-size:11.5px}.rv2 .hero .kaca b{font-size:15px}.rv2 .hero .k1{bottom:12px}.rv2 .hero .k2{top:12px}}@media (max-width:480px){.rv2 .hubungi-grid{grid-template-columns:1fr}}@media (max-width:620px){.rv2 .kepala-laman{top:auto}}\/* 28 Okt 2026 (Halim: telefon tiada pilihan English): pemilih BM \u00b7 EN kekal nampak di kepala laman telefon, sebelah butang menu *\/@media (max-width:620px){.rv2 .nav-pil>.bahasa{display:inline-block;line-height:34px;padding:0 11px;margin-right:2px;font-size:12.5px;color:var(--teks);border:1px solid var(--garis);border-radius:999px;background:rgba(255,255,255,.9);white-space:nowrap}}@media (max-width:380px){.rv2 .logo small{letter-spacing:.08em}.rv2 .nav-pil>.bahasa{padding:0 9px}}\/* 29 Okt 2026 (Halim: susunan topik Panduan di telefon tak profesional): cip topik jadi satu baris boleh leret, setiap cip berbingkai sendiri *\/@media (max-width:1100px){.rv2 .tab-pil.topik{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;background:none;border:0;border-radius:0;padding:2px 20px 8px;margin:0 -20px 18px;scroll-snap-type:x proximity;scroll-padding:0 20px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 36px),transparent)}.rv2 .tab-pil.topik::-webkit-scrollbar{display:none}.rv2 .tab-pil.topik button{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start;background:#fff;border:1px solid var(--garis);padding:9px 15px;font-size:14px;line-height:1.2}.rv2 .tab-pil.topik button[aria-selected=\"true\"]{background:var(--euc);border-color:var(--euc);color:#fff}.rv2 .tab-pil.topik::after{content:\"\";flex:0 0 16px}}\/* 28 Okt 2026: bar tab bawah telefon (nav_bawah, RV_NAVBAWAH=1) *\/.rv2 .nav-bawah{display:none}@media (max-width:620px){.rv2 .nav-bawah{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--garis);box-shadow:0 -6px 20px rgba(46,42,43,.07);padding:4px 2px calc(4px + env(safe-area-inset-bottom))}.rv2 .nav-bawah a{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;min-height:52px;min-width:0;padding:6px 0;font:600 10.5px\/1.2 var(--sans);letter-spacing:-.01em;color:var(--sub);text-decoration:none;text-align:center;white-space:nowrap}.rv2 .nav-bawah a .ik{color:var(--mawar-tua)}.rv2 .nav-bawah a[aria-current]{color:var(--mawar-tua);font-weight:800}.rv2 .nav-bawah a.nb-wa{color:var(--wa-tua);font-weight:800}.rv2 .nav-bawah .nb-bulat{display:flex;align-items:center;justify-content:center;width:50px;height:50px;margin-top:-24px;border-radius:999px;background:var(--wa);color:#063D1E;border:3px solid #fff;box-shadow:0 6px 16px rgba(37,211,102,.35)}.rv2 .nav-bawah .nb-bulat .ik{width:26px;height:26px;color:#fff}body:has(.nav-bawah){padding-bottom:calc(64px + env(safe-area-inset-bottom))!important}}@media (max-width:380px){.rv2 .nav-bawah a{font-size:9.5px}.rv2 .nav-bawah a .ik{width:19px;height:19px}.rv2 .nav-bawah .nb-bulat{width:46px;height:46px}}<\/style>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2 rv2-kepala\" data-bahasa=\"en\"><div class=\"kepala-laman\"><div class=\"nav-pil\"><a class=\"logo\" href=\"\/en\/\"><img decoding=\"async\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-logo-90.webp\" width=\"30\" height=\"33\" alt=\"Roseville\"><span><b>Roseville<\/b><small>Confinement Villa &amp; Spa<\/small><\/span><\/a><nav aria-label=\"Main\"><a href=\"\/en\/harga-pakej-berpantang\/\">Packages<\/a><a href=\"\/en\/bilik\/\">Rooms<\/a><a href=\"\/en\/spa-wanita-bangi\/\">Spa<\/a><a href=\"\/en\/panduan-berpantang\/\">Guides<\/a><a href=\"\/en\/tentang-kami\/\">About<\/a><a href=\"\/en\/hubungi\/\">Contact<\/a><\/nav><a class=\"bahasa\" href=\"\/\" hreflang=\"ms\" lang=\"ms\" title=\"Bahasa Melayu\">BM \u00b7 <b>EN<\/b><\/a><a class=\"btn btn-utama kecil\" href=\"\/en\/tempah-lawatan\/\"><svg class=\"ik\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"\/><path d=\"M3 10h18M8 3v4M16 3v4\"\/><\/svg><span>Book a Visit<\/span><\/a><button class=\"menu-btn\" type=\"button\" aria-label=\"Menu\" aria-expanded=\"false\"><svg class=\"ik\" width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\"\/><\/svg><\/button><\/div><\/div><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"hero\"><div class=\"wrap hero-grid\"><div>\n<p class=\"eye\">Roseville Confinement Villa \u00b7 Bandar Baru Bangi<\/p>\n<h1>A Shariah-friendly confinement centre in Bangi. <span class=\"grad\">Rest well, go home confident.<\/span><\/h1>\n<p class=\"lead\">Seven private rooms, four confinement meals a day and carers who look after your baby around the clock, so you can truly rest after giving birth.<\/p>\n<div class=\"cta-baris\"><a class=\"btn btn-utama\" href=\"\/en\/tempah-lawatan\/\"><svg class=\"ik\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"\/><path d=\"M3 10h18M8 3v4M16 3v4\"\/><\/svg><span>Book a villa visit<\/span><\/a><a class=\"btn btn-kedua\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20room%20availability.%0A%0ARef%3A%20RV-EN-HOME-HERO\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-HERO\" data-wa-topik=\"room availability\" data-wa-kedudukan=\"hero\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Check availability<\/span><\/a><\/div>\n<ul class=\"bukti\"><li><a class=\"pautan-bintang\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&#038;query=Roseville%20Confinement%20Villa%20Bangi\" target=\"_blank\" rel=\"noopener\"><svg class=\"ik\" width=\"15\" height=\"15\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg> 4.8 \u00b7 85 Google reviews<\/a><\/li><li><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg>7 private rooms<\/li><li><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg>Female carers &#038; therapists<\/li><\/ul>\n\n<\/div><div class=\"hero-vis\"><div class=\"bingkai besar\"><img fetchpriority=\"high\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-luas.webp\" width=\"1600\" height=\"1066\" alt=\"Dahlia room, Premium category, at Roseville Confinement Villa, Bangi\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-luas-768x512.webp 768w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-luas-1024x682.webp 1024w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-luas-1536x1023.webp 1536w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-luas.webp 1600w\" sizes=\"(max-width: 620px) 75vw, (max-width: 1000px) 100vw, 780px\" decoding=\"async\"><\/div>\n<a class=\"kaca k1\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&#038;query=Roseville%20Confinement%20Villa%20Bangi\" target=\"_blank\" rel=\"noopener\"><b>4.8 <svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg><\/b><span>85 reviews \u00b7 Google Maps<\/span><\/a>\n<div class=\"kaca k2\"><b>Premium room<\/b><span>real photo<\/span><\/div><\/div><\/div>\n<div class=\"wrap\"><div class=\"dua-pintu\"><a class=\"pintu villa\" href=\"\/en\/harga-pakej-berpantang\/\"><span class=\"eye\">Roseville Confinement Villa<\/span><b>Shariah-friendly confinement centre<\/b><span>7 rooms \u00b7 3 to 44 days<\/span><em>See packages \u2192<\/em><\/a>\n<a class=\"pintu spa\" href=\"\/en\/spa-wanita-bangi\/\"><span class=\"eye\">Roseville Muslimah Spa<\/span><b>A women&#8217;s spa, open to all women<\/b><span>From RM25<\/span><em>See the spa \u2192<\/em><\/a><\/div>\n<\/div>\n<i class=\"blob b1\"><\/i><i class=\"blob b2\"><\/i><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"stat\"><div class=\"wrap stat-grid\">\n<div><b class=\"kira\" data-n=\"4.8\" data-p=\"1\">4.8<\/b><span>stars on Google<\/span><\/div>\n<div><b class=\"kira\" data-n=\"85\">85<\/b><span>Google reviews<\/span><\/div>\n<div><b class=\"kira\" data-n=\"7\">7<\/b><span>private rooms<\/span><\/div>\n<div><b class=\"kira\" data-n=\"24\">24<\/b><span>hours of baby care<\/span><\/div>\n<div><b class=\"kira\" data-n=\"44\">44<\/b><span>days, full confinement<\/span><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok-nipis\"><div class=\"wrap\"><div class=\"bukti-jalur tiga\"><div><b>Registered company<\/b><span>Rose Omnicare Sdn Bhd (1361290-T)<\/span><\/div><div><b>Kitchen<\/b><span>Food handlers trained and vaccinated against typhoid (TY2)<\/span><\/div><div><b>Villa visit<\/b><span>See the real rooms first, free by appointment<\/span><\/div><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok\"><div class=\"wrap\"><p class=\"eye tengah\">Start here<\/p><h2 class=\"tengah\">Where are you right now?<\/h2>\n<p class=\"pengantar tengah\">Choose your situation and we will show you the next step.<\/p>\n<div class=\"niat-grid\"><div class=\"niat-kad\"><h3>I&#x27;m pregnant and planning my confinement<\/h3><p>Get a plan based on your due date.<\/p><a class=\"pautan-anak\" href=\"\/en\/pelan-pantang\/\">Free Confinement Plan \u2192<\/a><\/div><div class=\"niat-kad\"><h3>I just gave birth and need a room now<\/h3><p>Check room availability directly with our team.<\/p><a class=\"pautan-anak wa-teks\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20an%20urgent%20room.%0A%0ARef%3A%20RV-EN-INTENT-URGENT\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-INTENT-URGENT\" data-wa-topik=\"an urgent room\" data-wa-kedudukan=\"intent-picker\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Check availability<\/span><\/a><\/div><div class=\"niat-kad\"><h3>I only want a spa treatment<\/h3><p>A women&#x27;s spa, open to all women.<\/p><a class=\"pautan-anak\" href=\"\/en\/spa-wanita-bangi\/\">See the spa menu \u2192<\/a><\/div><div class=\"niat-kad\"><h3>I&#x27;m looking for a gift for my wife or daughter<\/h3><p>A 6-month spa membership, one treatment every month.<\/p><a class=\"pautan-anak\" href=\"\/en\/keahlian-spa\/\">See membership \u2192<\/a><\/div><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok lembut\"><div class=\"wrap\"><p class=\"eye tengah\">What Shariah-friendly means at Roseville<\/p><h2 class=\"tengah\">We define it, not just label it.<\/h2>\n<div class=\"ciri-grid\"><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"6\" r=\"3\"\/><path d=\"M6 21v-2a6 6 0 0 1 12 0v2M9 15c1 1 5 1 6 0\"\/><\/svg><h3>Female carers &amp; therapists<\/h3><p>Only female staff enter the mother&#x27;s room and the spa.<\/p><\/div><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.5-7 10-7 10z\"\/><\/svg><h3>Prayer space &amp; qibla direction<\/h3><p>A qibla marker and prayer mat in every room.<\/p><\/div><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"\/><path d=\"M3 10h18M8 3v4M16 3v4\"\/><\/svg><h3>Visits by appointment<\/h3><p>To ensure the privacy and modesty (aurat) of all our guests, visits are strictly by appointment only, from 2.00 pm to 4.00 pm and 8.00 pm to 10.00 pm.<\/p><\/div><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 3v8M5 3v5a2 2 0 0 0 4 0V3M7 11v10M17 3c-2 2-2 6 0 8v10\"\/><\/svg><h3>Ingredients from certified suppliers<\/h3><p>Raw ingredients come from Malaysian halal-certified suppliers. The list is available on request.<\/p><\/div><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"empati\"><div class=\"wrap\"><p class=\"ungkap\">Everyone asks when the baby is due. We ask the question people forget: after the birth, who looks after the mother?<\/p><\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok\"><div class=\"wrap\"><p class=\"eye tengah\">In every package<\/p><h2 class=\"tengah\">What you get at Roseville<\/h2>\n<div class=\"ciri-grid\"><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 18V8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10M3 14h18M7 10h4\"\/><\/svg><h3>Private room<\/h3><p>With your own bathroom and a baby cot.<\/p><\/div><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 3v8M5 3v5a2 2 0 0 0 4 0V3M7 11v10M17 3c-2 2-2 6 0 8v10\"\/><\/svg><h3>4 confinement meals a day<\/h3><p>Planned for mothers in confinement. Tell us about any allergies.<\/p><\/div><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 19c8 0 14-6 14-14C11 5 5 11 5 19zM5 19l8-8\"\/><\/svg><h3>Daily traditional care<\/h3><p>Bengkung, herbal baths and hot compress (tuam), following tradition.<\/p><\/div><div class=\"ciri\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"6\" r=\"3\"\/><path d=\"M6 21v-2a6 6 0 0 1 12 0v2M9 15c1 1 5 1 6 0\"\/><\/svg><h3>24-hour mother &amp; baby care<\/h3><p>By a female team.<\/p><\/div><\/div><\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok lembut\" id=\"price-table\"><div class=\"wrap\"><p class=\"eye\">Confinement packages<\/p><h2>All package prices in one table.<\/h2>\n<div class=\"jadual-bungkus\"><table class=\"jadual harga3\"><thead><tr><th>Duration<\/th><th>Standard<small>Lily, Orchid<\/small><\/th><th>Exclusive<small>Daisy, Hydrangea, Rose<\/small><\/th><th>Premium<small>Jasmine, Dahlia<\/small><\/th><th><\/th><\/tr><\/thead><tbody><tr><td><b>3 days 2 nights<\/b><small>Short rest<\/small><\/td><td class=\"h\" data-label=\"Standard\"><s title=\"Normal price\">RM2,500<\/s>RM2,000<\/td><td class=\"h\" data-label=\"Exclusive\"><s title=\"Normal price\">RM2,800<\/s>RM2,300<\/td><td class=\"h\" data-label=\"Premium\"><s title=\"Normal price\">RM3,200<\/s>RM2,700<\/td><td><a class=\"btn btn-wa kecil\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%203-day%202-night%20package.%0A%0ARef%3A%20RV-EN-HOME-PRICE-3D\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-PRICE-3D\" data-wa-topik=\"the 3-day 2-night package\" data-wa-kedudukan=\"price-table\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask<\/span><\/a><\/td><\/tr><tr><td><b>7 days 6 nights<\/b><small>First week<\/small><\/td><td class=\"h\" data-label=\"Standard\"><s title=\"Normal price\">RM6,900<\/s>RM6,100<\/td><td class=\"h\" data-label=\"Exclusive\"><s title=\"Normal price\">RM7,200<\/s>RM6,400<\/td><td class=\"h\" data-label=\"Premium\"><s title=\"Normal price\">RM7,500<\/s>RM6,700<\/td><td><a class=\"btn btn-wa kecil\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%207-day%206-night%20package.%0A%0ARef%3A%20RV-EN-HOME-PRICE-7D\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-PRICE-7D\" data-wa-topik=\"the 7-day 6-night package\" data-wa-kedudukan=\"price-table\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask<\/span><\/a><\/td><\/tr><tr><td><b>14 days 13 nights<\/b><small>Two weeks<\/small><\/td><td class=\"h\" data-label=\"Standard\"><s title=\"Normal price\">RM13,300<\/s>RM10,300<\/td><td class=\"h\" data-label=\"Exclusive\"><s title=\"Normal price\">RM13,900<\/s>RM10,900<\/td><td class=\"h\" data-label=\"Premium\"><s title=\"Normal price\">RM14,600<\/s>RM11,600<\/td><td><a class=\"btn btn-wa kecil\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%2014-day%2013-night%20package.%0A%0ARef%3A%20RV-EN-HOME-PRICE-14D\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-PRICE-14D\" data-wa-topik=\"the 14-day 13-night package\" data-wa-kedudukan=\"price-table\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask<\/span><\/a><\/td><\/tr><tr><td><b>21 days 20 nights<\/b><small>Three weeks<\/small><\/td><td class=\"h\" data-label=\"Standard\"><s title=\"Normal price\">RM18,900<\/s>RM14,400<\/td><td class=\"h\" data-label=\"Exclusive\"><s title=\"Normal price\">RM19,900<\/s>RM15,400<\/td><td class=\"h\" data-label=\"Premium\"><s title=\"Normal price\">RM20,900<\/s>RM16,400<\/td><td><a class=\"btn btn-wa kecil\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%2021-day%2020-night%20package.%0A%0ARef%3A%20RV-EN-HOME-PRICE-21D\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-PRICE-21D\" data-wa-topik=\"the 21-day 20-night package\" data-wa-kedudukan=\"price-table\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask<\/span><\/a><\/td><\/tr><tr><td><b>28 days 27 nights<\/b><small>Four weeks<\/small><\/td><td class=\"h\" data-label=\"Standard\"><s title=\"Normal price\">RM24,000<\/s>RM18,000<\/td><td class=\"h\" data-label=\"Exclusive\"><s title=\"Normal price\">RM25,300<\/s>RM19,300<\/td><td class=\"h\" data-label=\"Premium\"><s title=\"Normal price\">RM26,600<\/s>RM20,600<\/td><td><a class=\"btn btn-wa kecil\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%2028-day%2027-night%20package.%0A%0ARef%3A%20RV-EN-HOME-PRICE-28D\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-PRICE-28D\" data-wa-topik=\"the 28-day 27-night package\" data-wa-kedudukan=\"price-table\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask<\/span><\/a><\/td><\/tr><tr><td><b>44 days 43 nights<\/b><small>Full confinement<\/small><\/td><td class=\"h\" data-label=\"Standard\"><s title=\"Normal price\">RM39,600<\/s>RM32,100<\/td><td class=\"h\" data-label=\"Exclusive\"><s title=\"Normal price\">RM41,600<\/s>RM34,100<\/td><td class=\"h\" data-label=\"Premium\"><s title=\"Normal price\">RM43,700<\/s>RM36,200<\/td><td><a class=\"btn btn-wa kecil\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%2044-day%2043-night%20package.%0A%0ARef%3A%20RV-EN-HOME-PRICE-44D\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-PRICE-44D\" data-wa-topik=\"the 44-day 43-night package\" data-wa-kedudukan=\"price-table\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask<\/span><\/a><\/td><\/tr><\/tbody><\/table><\/div>\n<p class=\"kecil-sub\">Promotional prices valid until 31 December 2026 (normal prices struck through). Payment: RM1,000 deposit to secure your dates, 50% of the balance 30 days before check-in, and the rest 7 days before check-in. Credit cards are accepted at the Roseville counter. The deposit is non-refundable if you cancel; <a href=\"\/en\/soalan-lazim\/\">see the full policy<\/a>.<\/p>\n\n<h3 class=\"tt-tajuk\">What&#8217;s included<\/h3><div class=\"tt-grid\"><div class=\"tt\"><span class=\"cip\">All packages<\/span><ul><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Four confinement meals a day<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Herbal &amp; flower baths, and warm sitz baths<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>24-hour baby care by trained staff: bonding time, swaddling, baby bath demo<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Gift basket for mother and baby<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Laundry (charged at standard rates)<\/span><\/li><\/ul><\/div><div class=\"tt\"><span class=\"cip\">7 days or longer<\/span><ul><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Traditional full-body massage<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Foot spa, tungku, param, pilis, tapel, bengkung<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Body scrub or sauna<\/span><\/li><\/ul><\/div><div class=\"tt\"><span class=\"cip\">14 days or longer<\/span><ul><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Hair wash<\/span><\/li><\/ul><\/div><div class=\"tt\"><span class=\"cip\">21 days or longer<\/span><ul><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Facial<\/span><\/li><\/ul><\/div><\/div>\n<div class=\"kenyataan klinik\"><svg class=\"ik\" width=\"26\" height=\"26\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\"\/><\/svg><div><h3>Need a doctor or nurse?<\/h3><p>Roseville is a postnatal care centre, <b>not a clinic<\/b>, and does not provide medical treatment.<\/p>\n<p>If you or your baby needs a check-up, including a jaundice test, we can help arrange an appointment at the clinic or hospital of your choice. Treatment and payment are directly with that licensed provider.<\/p><\/div><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok\"><div class=\"wrap\"><div class=\"tajuk-baris\"><div><p class=\"eye\">Choose your room<\/p><h2>Seven rooms, named after flowers<\/h2><\/div><a class=\"btn btn-garis\" href=\"\/en\/bilik\/\">See all rooms<\/a><\/div>\n<div class=\"bilik-grid\"><a class=\"kad-bilik\" href=\"\/en\/bilik\/\"><div class=\"bingkai\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-lily.webp\" width=\"1024\" height=\"682\" alt=\"Lily room, Standard category, at Roseville Bangi\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-lily-300x200.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-lily-768x512.webp 768w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-lily.webp 1024w\" sizes=\"auto, (max-width: 620px) calc(100vw - 80px), (max-width: 900px) calc(100vw - 100px), 560px\" decoding=\"async\"><\/div>\n<div class=\"isi\"><span class=\"cip\">Standard<\/span><h3>Lily, Orchid<\/h3><p>Comfortable and complete, a private space for your confinement.<\/p><\/div><\/a><a class=\"kad-bilik\" href=\"\/en\/bilik\/\"><div class=\"bingkai\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-rose-1024.webp\" width=\"1024\" height=\"682\" alt=\"Rose room, Exclusive category, at Roseville Bangi\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-rose-1024-300x200.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-rose-1024-768x512.webp 768w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-rose-1024.webp 1024w\" sizes=\"auto, (max-width: 620px) calc(100vw - 80px), (max-width: 900px) calc(100vw - 100px), 560px\" decoding=\"async\"><\/div>\n<div class=\"isi\"><span class=\"cip\">Exclusive<\/span><h3>Daisy, Hydrangea, Rose<\/h3><p>More room to rest, recover and look after yourself.<\/p><\/div><\/a><a class=\"kad-bilik\" href=\"\/en\/bilik\/\"><div class=\"bingkai\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-1024.webp\" width=\"1024\" height=\"682\" alt=\"Dahlia room, Premium category, at Roseville Bangi\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-1024-300x200.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-1024-768x512.webp 768w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-dahlia-1024.webp 1024w\" sizes=\"auto, (max-width: 620px) calc(100vw - 80px), (max-width: 900px) calc(100vw - 100px), 560px\" decoding=\"async\"><\/div>\n<div class=\"isi\"><span class=\"cip\">Premium<\/span><h3>Jasmine, Dahlia<\/h3><p>Our largest rooms, for long and peaceful stays.<\/p><\/div><\/a><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok lembut\"><div class=\"wrap\"><p class=\"eye\">Roseville Muslimah Spa \u00b7 a women&#8217;s spa, open to all women<\/p>\n<h2>Having your confinement at home, or just need a rest? Our spa is for you.<\/h2>\n<p class=\"pengantar\">Female therapists, a private space. Book a slot on WhatsApp.<\/p>\n<div class=\"spa-pakej-grid\"><article class=\"spa-pakej\"><p class=\"eye\">Simple relaxation session<\/p><h3>Essential<\/h3><p class=\"harga\"><b>RM150<\/b><\/p>\n<ul class=\"kem\"><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Back massage<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Head, neck &amp; shoulder massage<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Foot spa<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>+ 1 treatment of your choice: infrared sauna or herbal bath<\/span><\/li><\/ul><a class=\"btn btn-wa kecil penuh\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%20Essential%20spa%20package.%0A%0ARef%3A%20RV-EN-SPA-PKG-ESSENTIAL\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-SPA-PKG-ESSENTIAL\" data-wa-topik=\"the Essential spa package\" data-wa-kedudukan=\"spa-card\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Book Essential<\/span><\/a><\/article><article class=\"spa-pakej pilihan\"><p class=\"eye\">Full spa experience<\/p><h3>Signature<\/h3><p class=\"harga\"><b>RM250<\/b><\/p>\n<ul class=\"kem\"><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Full-body massage (front &amp; back)<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Head, neck &amp; shoulder massage<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Foot spa<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Face mask &amp; eye patches<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>+ 2 treatments of your choice: infrared sauna, herbal bath, hair wash, milk or flower bath<\/span><\/li><\/ul><a class=\"btn btn-wa kecil penuh\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%20Signature%20spa%20package.%0A%0ARef%3A%20RV-EN-SPA-PKG-SIGNATURE\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-SPA-PKG-SIGNATURE\" data-wa-topik=\"the Signature spa package\" data-wa-kedudukan=\"spa-card\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Book Signature<\/span><\/a><\/article><article class=\"spa-pakej\"><p class=\"eye\">Free hair wash +<\/p><h3>Facial Treatment<\/h3><p class=\"harga\"><b>RM90<\/b><\/p>\n<ul class=\"kem\"><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Make-up removal &amp; deep cleansing<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Facial steam, blackhead &amp; whitehead extraction<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Gentle scrub, peeling mask, nourishing mask<\/span><\/li><li><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12l4 4 10-10\"\/><\/svg><span>Toner, moisturiser &amp; sunscreen<\/span><\/li><\/ul><a class=\"btn btn-wa kecil penuh\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20the%20Facial%20Treatment%20spa%20package.%0A%0ARef%3A%20RV-EN-SPA-PKG-FACIAL\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-SPA-PKG-FACIAL\" data-wa-topik=\"the Facial Treatment spa package\" data-wa-kedudukan=\"spa-card\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Book Facial Treatment<\/span><\/a><\/article><\/div><div class=\"cta-baris\"><a class=\"btn btn-utama\" href=\"\/en\/spa-wanita-bangi\/\">Full spa menu<\/a><a class=\"btn btn-garis\" href=\"\/en\/keahlian-spa\/\">6-month membership from RM199<\/a><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok\"><div class=\"wrap\"><ol class=\"langkah\"><li><b>Visit the villa<\/b><span>See the rooms, meet the team and ask anything. It&#8217;s free.<\/span><\/li>\n<li><b>Choose your room &#038; dates<\/b><span>Based on your due date.<\/span><\/li>\n<li><b>Check in after delivery<\/b><span>Straight from the hospital, we are ready to welcome you.<\/span><\/li>\n<li><b>Go home confident<\/b><span>With a settled baby routine and a well-rested body.<\/span><\/li><\/ol>\n<div class=\"pelan-promo\"><div><p class=\"eye\">Free \u00b7 10 seconds<\/p><h2>Free Confinement Plan<\/h2>\n<p>Enter your due date to get your 44-day confinement dates, when to visit and book, and a packing checklist.<\/p><\/div>\n<form class=\"pelan-mini\" data-pelan-mini=\"\/en\/pelan-pantang\/\" action=\"\"><label>Due date<input type=\"date\" required><\/label><button class=\"btn btn-utama\" type=\"submit\">Create my plan<\/button><input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form><\/div><\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok lembut\"><div class=\"wrap\"><div class=\"tajuk-baris\"><div><p class=\"eye\">What mothers say<\/p><h2>Their words, not ours.<\/h2><\/div>\n<a class=\"ringkasan-ulasan\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&#038;query=Roseville%20Confinement%20Villa%20Bangi\" target=\"_blank\" rel=\"noopener\"><b>4.8<\/b><span><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg><svg class=\"ik\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z\"\/><\/svg><br>85 reviews on Google (23 October 2026)<br><u>Read them all on Google Maps \u2197<\/u><\/span><\/a><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok\"><div class=\"wrap\"><p class=\"eye tengah\">Our team<\/p><h2 class=\"tengah\">The people who will look after you<\/h2><div class=\"pasukan-grid lima\"><figure class=\"ahli-pasukan\"><div class=\"potret ada-foto\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-irdiana-binti-ahmad.webp\" width=\"480\" height=\"480\" alt=\"Photo of Irdiana binti Ahmad, Centre Manager at Roseville\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-irdiana-binti-ahmad-300x300.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-irdiana-binti-ahmad.webp 480w\" sizes=\"auto, 190px\" decoding=\"async\"><\/div>\n<figcaption><b>Irdiana binti Ahmad<\/b><span>Centre Manager<\/span><\/figcaption><\/figure><figure class=\"ahli-pasukan\"><div class=\"potret ada-foto\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-khairunisa-samsudin.webp\" width=\"480\" height=\"480\" alt=\"Photo of Khairunisa Samsudin, Head Caregiver at Roseville\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-khairunisa-samsudin-300x300.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-khairunisa-samsudin.webp 480w\" sizes=\"auto, 190px\" decoding=\"async\"><\/div>\n<figcaption><b>Khairunisa Samsudin<\/b><span>Head Caregiver<\/span><small>5 years of experience<\/small><\/figcaption><\/figure><figure class=\"ahli-pasukan\"><div class=\"potret ada-foto\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-wan-rania-batrisyia.webp\" width=\"480\" height=\"480\" alt=\"Photo of Wan Rania Batrisyia, Spa Therapist at Roseville\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-wan-rania-batrisyia-300x300.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-wan-rania-batrisyia.webp 480w\" sizes=\"auto, 190px\" decoding=\"async\"><\/div>\n<figcaption><b>Wan Rania Batrisyia<\/b><span>Spa Therapist<\/span><\/figcaption><\/figure><figure class=\"ahli-pasukan\"><div class=\"potret ada-foto\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-nazita-nanting.webp\" width=\"480\" height=\"480\" alt=\"Photo of Nazita Nanting, Care Lady at Roseville\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-nazita-nanting-300x300.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-nazita-nanting.webp 480w\" sizes=\"auto, 190px\" decoding=\"async\"><\/div>\n<figcaption><b>Nazita Nanting<\/b><span>Care Lady<\/span><small>5 years of experience<\/small><\/figcaption><\/figure><figure class=\"ahli-pasukan\"><div class=\"potret ada-foto\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-hafiumairah-abu-bakan.webp\" width=\"480\" height=\"480\" alt=\"Photo of Hafiumairah Abu Bakan, Care Lady at Roseville\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-hafiumairah-abu-bakan-300x300.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-pasukan-hafiumairah-abu-bakan.webp 480w\" sizes=\"auto, 190px\" decoding=\"async\"><\/div>\n<figcaption><b>Hafiumairah Abu Bakan<\/b><span>Care Lady<\/span><small>3 years of experience<\/small><\/figcaption><\/figure><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok lembut\" id=\"location\"><div class=\"wrap\"><p class=\"eye\">Location &#038; contact<\/p><h2>Visit first, then decide.<\/h2>\n<div class=\"lokasi-grid\"><div class=\"peta-bingkai\"><iframe title=\"Google Map: Roseville Confinement Villa, Bangi Gateway\" src=\"https:\/\/www.google.com\/maps?q=Roseville%20Confinement%20Villa%2C%20Plaza%20Bangi%20Perdana%2C%20Bangi%20Gateway%2C%20Bandar%20Baru%20Bangi&#038;output=embed\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\"><\/iframe><\/div>\n<div class=\"nap-kotak\"><dl class=\"nap\"><div><dt>Name<\/dt><dd>Roseville Confinement Villa<\/dd><\/div>\n<div><dt>Address<\/dt><dd>No. 2-17 &amp; 2-18, Plaza Bangi Perdana, Jalan Gerbang Wawasan 1, Bangi Gateway, Seksyen 15, 43650 Bandar Baru Bangi, Selangor<\/dd><\/div>\n<div><dt>Phone<\/dt><dd>Phone &#038; WhatsApp: <span class=\"no-tel\">011-5559 9174<\/span><br>Office line: <span class=\"no-tel\">03-8925 9174<\/span><\/dd><\/div>\n<div><dt>Social<\/dt><dd><a href=\"https:\/\/www.facebook.com\/rosevilleconfinement\" target=\"_blank\" rel=\"noopener\">Facebook \/rosevilleconfinement<\/a> \u00b7 <a href=\"https:\/\/www.instagram.com\/rosevilleconfinement\/\" target=\"_blank\" rel=\"noopener\">Instagram @rosevilleconfinement<\/a><\/dd><\/div>\n<div><dt>Hours<\/dt><dd>Villa visits 9.00 am to 6.00 pm, by appointment. 24-hour care for residents.<\/dd><\/div><\/dl>\n<div class=\"nap-cta\"><a class=\"btn btn-utama\" href=\"\/en\/tempah-lawatan\/\"><svg class=\"ik\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"\/><path d=\"M3 10h18M8 3v4M16 3v4\"\/><\/svg><span>Book a Villa Visit<\/span><\/a><a class=\"btn btn-garis\" href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&#038;destination=Roseville%20Confinement%20Villa%20Bangi\" target=\"_blank\" rel=\"noopener\"><svg class=\"ik\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 21s7-6.2 7-11a7 7 0 0 0-14 0c0 4.8 7 11 7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.5\"\/><\/svg> Directions on Google Maps<\/a><a class=\"btn btn-wa\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%20about%20location%20and%20visits.%0A%0ARef%3A%20RV-EN-HOME-LOCATION\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-LOCATION\" data-wa-topik=\"location and visits\" data-wa-kedudukan=\"location\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>WhatsApp<\/span><\/a><\/div><\/div><\/div>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok\"><div class=\"wrap faq-wrap\"><p class=\"eye\">FAQ<\/p><h2>Questions mothers often ask<\/h2><details class=\"faq\"><summary>How long are the confinement packages at Roseville?<\/summary><p>Packages run from 3 days 2 nights to 44 days 43 nights, in three room categories. Full prices are in the package table above.<\/p><\/details><details class=\"faq\"><summary>Does Roseville provide a doctor?<\/summary><p>No. Roseville is a postnatal care centre, not a clinic. If a check-up is needed, we can help arrange an appointment at the clinic or hospital of your choice.<\/p><\/details><details class=\"faq\"><summary>Can my husband or other children stay with me?<\/summary><p>Yes. Your husband and children may stay with you throughout your confinement at Roseville.<\/p><\/details><details class=\"faq\"><summary>I&#x27;m having my confinement at home. Can I just use the spa?<\/summary><p>Yes. Roseville Muslimah Spa is open to all women, including mothers having their confinement at home. Book a slot on WhatsApp.<\/p><\/details><details class=\"faq\"><summary>What does Shariah-friendly mean at Roseville?<\/summary><p>Female carers and therapists, a prayer space and qibla direction in every room, and ingredients from halal-certified suppliers.<\/p><\/details><details class=\"faq\"><summary>How do I book and pay?<\/summary><p>Book a visit or WhatsApp us to check availability. An RM1,000 deposit secures your dates; then 50% of the balance is due 30 days before check-in and the rest 7 days before check-in. You can pay by instant bank transfer or by credit card at the Roseville counter.<\/p><\/details>\n<\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"blok lembut\"><div class=\"wrap\"><div class=\"tajuk-baris\"><div><p class=\"eye\">Confinement guides<\/p><h2>Read first, plan calmly<\/h2><\/div><a class=\"btn btn-garis\" href=\"\/en\/panduan-berpantang\/\">All guides<\/a><\/div>\n<div class=\"art-grid\"><a class=\"kad-art\" href=\"\/en\/berpantang-berapa-hari\/\"><div class=\"bingkai\"><div class=\"sampul s0\"><svg class=\"ik\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg><b>Confinement length<\/b><span>Roseville guide<\/span><\/div><\/div>\n<div class=\"isi\"><span class=\"cip\">Confinement length<\/span><h3>How Long Is Confinement After Birth? The 44-Day Tradition, 14 or 28 Days, and When to See a Doctor<\/h3><p>Understand the 44-day custom, when 14 or 28 days may suit you, and when to see a doctor.<\/p>\n<span class=\"meta\"><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\"\/><\/svg> Reviewed by Dr Fatimah Mustafah, O&amp;G \u00b7 8 min read<\/span><\/div><\/a><a class=\"kad-art\" href=\"\/en\/pusat-berpantang-atau-berpantang-di-rumah\/\"><div class=\"bingkai\"><div class=\"sampul s1\"><svg class=\"ik\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 18V8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10M3 14h18M7 10h4\"\/><\/svg><b>Choosing a centre<\/b><span>Roseville guide<\/span><\/div><\/div>\n<div class=\"isi\"><span class=\"cip\">Choosing a centre<\/span><h3>Confinement Centre, Confinement Lady or Home: Which Suits You?<\/h3><p>Compare cost, privacy, rest and support before you choose.<\/p>\n<span class=\"meta\"><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\"\/><\/svg> Reviewed by Dr Fatimah Mustafah, O&amp;G \u00b7 8 min read<\/span><\/div><\/a><a class=\"kad-art\" href=\"\/en\/penutup-pantang-hari-ke-berapa\/\"><div class=\"bingkai\"><div class=\"sampul s2\"><svg class=\"ik\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 21c-4 0-7-3-7-7 3 0 5 1 7 4 2-3 4-4 7-4 0 4-3 7-7 7zM12 14c-2-3-2-7 0-10 2 3 2 7 0 10z\"\/><\/svg><b>Closing confinement<\/b><span>Roseville guide<\/span><\/div><\/div>\n<div class=\"isi\"><span class=\"cip\">Closing confinement<\/span><h3>Closing Confinement (Penutup Pantang): When to Do It and What Happens<\/h3><p>When families usually hold it, what a session includes, and when to speak to a doctor.<\/p>\n<span class=\"meta\"><svg class=\"ik\" width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\"\/><\/svg> Reviewed by Dr Fatimah Mustafah, O&amp;G \u00b7 8 min read<\/span><\/div><\/a><\/div><\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2\" data-bahasa=\"en\"><section class=\"akhir\"><div class=\"wrap\"><h2>See it for yourself before you choose.<\/h2><p>A free villa visit, by appointment. Bring your husband or mother along.<\/p>\n<div class=\"cta-baris tengah\"><a class=\"btn btn-utama\" href=\"\/en\/tempah-lawatan\/\"><svg class=\"ik\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"\/><path d=\"M3 10h18M8 3v4M16 3v4\"\/><\/svg><span>Book a Villa Visit<\/span><\/a><a class=\"btn btn-wa\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-HOME-END\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-END\" data-wa-topik=\"\" data-wa-kedudukan=\"closing\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>WhatsApp us<\/span><\/a><\/div><\/div><\/section><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2 rv2-kaki\" data-bahasa=\"en\"><footer class=\"kaki\"><div class=\"wrap\"><div class=\"kaki-grid\"><div><a class=\"logo\" href=\"\/en\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-logo-90.webp\" width=\"30\" height=\"33\" alt=\"\"><span><b>Roseville<\/b><small>Confinement Villa &amp; Spa<\/small><\/span><\/a><p>A Shariah-friendly confinement centre and women&#x27;s spa in Bangi Gateway. A postnatal care centre, not a clinic or hospital.<\/p><\/div><div><b>Confinement<\/b><a href=\"\/en\/harga-pakej-berpantang\/\">Packages &amp; prices<\/a><a href=\"\/en\/bilik\/\">Rooms &amp; villa<\/a><a href=\"\/en\/tempah-lawatan\/\">Book a visit<\/a><a href=\"\/en\/pelan-pantang\/\">Free Confinement Plan<\/a><\/div><div><b>Spa<\/b><a href=\"\/en\/spa-wanita-bangi\/\">Spa menu<\/a><a href=\"\/en\/keahlian-spa\/\">Membership<\/a><a href=\"\/en\/panduan-berpantang\/\">Confinement guides<\/a><a href=\"\/en\/soalan-lazim\/\">FAQ<\/a><\/div><div><b>Contact<\/b><a href=\"tel:+601155599174\">Call <span class=\"no-tel\">011-5559 9174<\/span><\/a><a href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-HOME-FOOTER\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-FOOTER\" data-wa-kedudukan=\"footer\">WhatsApp <span class=\"no-tel\">011-5559 9174<\/span><\/a><a href=\"tel:+60389259174\">Office line <span class=\"no-tel\">03-8925 9174<\/span><\/a><a href=\"mailto:villaroseville@gmail.com\">villaroseville@gmail.com<\/a><a href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&amp;destination=Roseville%20Confinement%20Villa%20Bangi\" target=\"_blank\" rel=\"noopener\">Plaza Bangi Perdana, Bangi Gateway<\/a><a href=\"\/en\/tentang-kami\/\">About Roseville<\/a><\/div><\/div><div class=\"kaki-bawah\"><span>\u00a9 2026 Rose Omnicare Sdn Bhd (1361290-T) \u00b7 Kajang Municipal Council licence LBUS-12972 \u00b7 Roseville Confinement Villa &amp; Spa<\/span><span><a href=\"https:\/\/www.facebook.com\/rosevilleconfinement\" target=\"_blank\" rel=\"noopener\">Facebook \/rosevilleconfinement<\/a> \u00b7 <a href=\"https:\/\/www.instagram.com\/rosevilleconfinement\/\" target=\"_blank\" rel=\"noopener\">Instagram @rosevilleconfinement<\/a><\/span><\/div><\/div><\/footer><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><div class=\"rv2 rv2-terapung\" data-bahasa=\"en\"><a class=\"wa-terapung\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-HOME-FLOAT\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-FLOAT\" data-wa-kedudukan=\"float\" aria-label=\"WhatsApp Roseville\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><span>Ask us<\/span><\/a><nav class=\"nav-bawah\" aria-label=\"Quick links\"><a href=\"\/en\/harga-pakej-berpantang\/\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12V4a1 1 0 0 1 1-1h8l9 9-9 9z\"\/><circle cx=\"7.5\" cy=\"7.5\" r=\"1.5\"\/><\/svg><span>Packages<\/span><\/a><a href=\"\/en\/bilik\/\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 18V8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10M3 14h18M7 10h4\"\/><\/svg><span>Rooms<\/span><\/a><a href=\"\/en\/spa-wanita-bangi\/\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 21c-4 0-7-3-7-7 3 0 5 1 7 4 2-3 4-4 7-4 0 4-3 7-7 7zM12 14c-2-3-2-7 0-10 2 3 2 7 0 10z\"\/><\/svg><span>Spa<\/span><\/a><a class=\"nb-wa\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Home%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-HOME-BAR\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-HOME-BAR\" data-wa-kedudukan=\"bar-telefon\"><span class=\"nb-bulat\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12 2a10 10 0 0 0-8.7 14.9L2 22l5.3-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.9 11.9 0 0 0 4.6 4 5.2 5.2 0 0 0 3.2.7 2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"\/><\/svg><\/span><span>WhatsApp<\/span><\/a><a href=\"\/en\/panduan-berpantang\/\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2zM4 21V5M8 7h7M8 11h5\"\/><\/svg><span>Guides<\/span><\/a><a href=\"\/en\/tempah-lawatan\/\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"\/><path d=\"M3 10h18M8 3v4M16 3v4\"\/><\/svg><span>Visit<\/span><\/a><a href=\"\/en\/hubungi\/\"><svg class=\"ik\" width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 4h4l2 5-3 2a11 11 0 0 0 5 5l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z\"\/><\/svg><span>Contact<\/span><\/a><\/nav><\/div><\/div>\n\n\n\n<div data-no-translation style=\"display:contents\"><script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@graph\": [{\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#organization\", \"identifier\": [{\"@type\": \"PropertyValue\", \"propertyID\": \"SSM\", \"value\": \"1361290-T\"}, {\"@type\": \"PropertyValue\", \"propertyID\": \"Lesen Majlis Perbandaran Kajang (MPKj)\", \"value\": \"LBUS-12972\"}], \"sameAs\": [\"https:\/\/www.facebook.com\/rosevilleconfinement\", \"https:\/\/www.instagram.com\/rosevilleconfinement\/\"], \"department\": [{\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#villa\"}, {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#spa\"}]}, {\"@type\": \"LodgingBusiness\", \"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#villa\", \"name\": \"Roseville Confinement Villa\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/\", \"description\": \"A Shariah-friendly confinement centre in Bandar Baru Bangi: 7 private rooms, confinement meals and 24-hour mother and baby care.\", \"image\": [\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-bilik-dahlia-luas.jpg\", \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-bilik-rose.jpg\", \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-bilik-hydrangea.jpg\"], \"telephone\": \"+601155599174\", \"address\": {\"@type\": \"PostalAddress\", \"streetAddress\": \"No 2-17 & 2-18, Plaza Bangi Perdana, Jalan Gerbang Wawasan 1, Bangi Gateway, Seksyen 15\", \"addressLocality\": \"Bandar Baru Bangi\", \"postalCode\": \"43650\", \"addressRegion\": \"Selangor\", \"addressCountry\": \"MY\"}, \"hasMap\": \"https:\/\/www.google.com\/maps\/search\/?api=1&query=Roseville%20Confinement%20Villa%20Bangi\", \"numberOfRooms\": 7, \"parentOrganization\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#organization\"}, \"areaServed\": [{\"@type\": \"City\", \"name\": \"Bandar Baru Bangi\"}, {\"@type\": \"City\", \"name\": \"Kajang\"}, {\"@type\": \"City\", \"name\": \"Putrajaya\"}, {\"@type\": \"City\", \"name\": \"Cyberjaya\"}, {\"@type\": \"City\", \"name\": \"Semenyih\"}, {\"@type\": \"City\", \"name\": \"Seri Kembangan\"}], \"priceRange\": \"RM2,000 to RM36,200\", \"makesOffer\": [{\"@type\": \"AggregateOffer\", \"name\": \"3-day 2-night confinement package\", \"priceCurrency\": \"MYR\", \"lowPrice\": \"2000\", \"highPrice\": \"2700\", \"offerCount\": 3, \"priceValidUntil\": \"2026-12-31\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/harga-pakej-berpantang\/\"}, {\"@type\": \"AggregateOffer\", \"name\": \"7-day 6-night confinement package\", \"priceCurrency\": \"MYR\", \"lowPrice\": \"6100\", \"highPrice\": \"6700\", \"offerCount\": 3, \"priceValidUntil\": \"2026-12-31\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/harga-pakej-berpantang\/\"}, {\"@type\": \"AggregateOffer\", \"name\": \"14-day 13-night confinement package\", \"priceCurrency\": \"MYR\", \"lowPrice\": \"10300\", \"highPrice\": \"11600\", \"offerCount\": 3, \"priceValidUntil\": \"2026-12-31\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/harga-pakej-berpantang\/\"}, {\"@type\": \"AggregateOffer\", \"name\": \"21-day 20-night confinement package\", \"priceCurrency\": \"MYR\", \"lowPrice\": \"14400\", \"highPrice\": \"16400\", \"offerCount\": 3, \"priceValidUntil\": \"2026-12-31\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/harga-pakej-berpantang\/\"}, {\"@type\": \"AggregateOffer\", \"name\": \"28-day 27-night confinement package\", \"priceCurrency\": \"MYR\", \"lowPrice\": \"18000\", \"highPrice\": \"20600\", \"offerCount\": 3, \"priceValidUntil\": \"2026-12-31\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/harga-pakej-berpantang\/\"}, {\"@type\": \"AggregateOffer\", \"name\": \"44-day 43-night confinement package\", \"priceCurrency\": \"MYR\", \"lowPrice\": \"32100\", \"highPrice\": \"36200\", \"offerCount\": 3, \"priceValidUntil\": \"2026-12-31\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/harga-pakej-berpantang\/\"}]}, {\"@type\": \"DaySpa\", \"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#spa\", \"name\": \"Roseville Muslimah Spa\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/spa-wanita-bangi\/\", \"telephone\": \"+601155599174\", \"address\": {\"@type\": \"PostalAddress\", \"streetAddress\": \"No 2-17 & 2-18, Plaza Bangi Perdana, Jalan Gerbang Wawasan 1, Bangi Gateway, Seksyen 15\", \"addressLocality\": \"Bandar Baru Bangi\", \"postalCode\": \"43650\", \"addressRegion\": \"Selangor\", \"addressCountry\": \"MY\"}, \"hasMap\": \"https:\/\/www.google.com\/maps\/search\/?api=1&query=Roseville%20Confinement%20Villa%20Bangi\", \"image\": {\"@type\": \"ImageObject\", \"url\": \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-spa.jpg\", \"width\": 1200, \"height\": 630}, \"parentOrganization\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#organization\"}, \"makesOffer\": [{\"@type\": \"Offer\", \"name\": \"Essential spa package\", \"price\": \"150\", \"priceCurrency\": \"MYR\"}, {\"@type\": \"Offer\", \"name\": \"Signature spa package\", \"price\": \"250\", \"priceCurrency\": \"MYR\"}, {\"@type\": \"Offer\", \"name\": \"Facial Treatment spa package\", \"price\": \"90\", \"priceCurrency\": \"MYR\"}]}]}<\/script><\/div>\n\n\n\n<script>(function () {\n  'use strict';\n  \/* Skrip interaksi redesign A Roseville (laman WordPress sebenar). Dijana bersama bina_wp.py; sumber: wp_interaksi.js.\n     Tiada penghala hash: setiap halaman WordPress berasingan. Butang WhatsApp = pautan wa.me biasa (GTM kira generate_lead);\n     skrip ini hanya untuk borang lawatan, Pelan Pantang Percuma, tab, penapis, senarai semak dan menu telefon. *\/\n  if (window.rv2Mula) return;\n  window.rv2Mula = true;\n  function $(s, r) { return (r || document).querySelector(s); }\n  function $$(s, r) { return Array.prototype.slice.call((r || document).querySelectorAll(s)); }\n  var akar = $('.rv2[data-bahasa]');\n  if (!akar) return;\n  var EN = akar.getAttribute('data-bahasa') === 'en' || \/^en\/i.test(document.documentElement.lang || '');\n  var NO = '601155599174';\n  var PETA = {};\n  var PRATONTON = \/[?&]preview=true\/.test(location.search);\n\n  var L = EN ? {\n    hari: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], hp: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    bulan: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    pilihDulu: 'Please choose one date and one time slot first.', semakTarikh: 'Enter a due date within the next 10 months.',\n    belumPasti: 'Not sure yet', ditanda: 'ticked', kodLawatan: 'RV-EN-VISIT', kodPelan: 'RV-EN-PLAN-SEND',\n    lawatan: function (t, m, n, edd, b, i) { return 'Hi Roseville, I would like to book a villa visit.\\nDate: ' + t + ', ' + m + '\\nName: ' + n + '\\nDue date: ' + edd + '\\nRoom of interest: ' + b + '\\nComing with: ' + i + '\\n\\nRef: RV-EN-VISIT'; },\n    pakej: function (m) { return (m + 1) + '-day, ' + m + '-night package'; },\n    hantar: function (edd, m, akhir) { return 'Hi Roseville, I have created a Free Confinement Plan. Due date: ' + edd + '. Planning a ' + (m + 1) + '-day, ' + m + '-night package (approx. ' + edd + ' to ' + akhir + '). Could you check room availability?\\n\\nRef: RV-EN-PLAN-SEND'; },\n    kongsi: function (edd, h44, url) { return 'Hi love, here is our confinement plan: estimated delivery ' + edd + ', day 44 of confinement ' + h44 + '. Shall we visit Roseville first? ' + url; },\n    tajuk: function (edd) { return 'Estimated delivery ' + edd; },\n    sub: function (m, h44) { return (m + 1) + '-day, ' + m + '-night package at Roseville. Day 44 of confinement falls on ' + h44 + '.'; },\n    garis: function (minggu, beza, lawatTeks, akhirLabel) {\n      return [['Now', 'About ' + minggu + ' weeks pregnant', beza > 0 ? beza + ' days to your due date.' : 'Your due date has arrived or passed.', ''],\n        [lawatTeks, 'Visit the villa', 'At around 28 to 34 weeks, before travelling gets less comfortable. Bring your husband or mother.', 'utama'],\n        [null, 'Book & confirm your dates', 'Rooms are limited (7 rooms). Book after your visit to secure your dates.', ''],\n        [null, 'Pack your confinement bag', 'Three weeks before your due date. Use the checklist below.', ''],\n        [null, 'Confinement begins (estimate)', 'Straight from the hospital after delivery. The actual date follows the day your baby is born.', 'utama'],\n        [null, akhirLabel, 'Go home with a settled baby routine.', ''],\n        [null, 'Day 44 after birth', 'The traditional full confinement period ends (estimate). Many mothers book a Closing Confinement session around this day.', '']];\n    },\n    akhir: function (m) { return 'End of your ' + (m + 1) + '-day, ' + m + '-night package'; },\n    secepat: 'As soon as possible (this week or next)', hingga: ' to '\n  } : {\n    hari: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'], hp: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'],\n    bulan: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogo', 'Sep', 'Okt', 'Nov', 'Dis'],\n    pilihDulu: 'Sila pilih satu tarikh dan satu slot masa lawatan dahulu.', semakTarikh: 'Sila masukkan tarikh jangkaan bersalin dalam tempoh 10 bulan akan datang.',\n    belumPasti: 'Belum pasti', ditanda: 'ditanda', kodLawatan: 'RV-LAWATAN', kodPelan: 'RV-PELAN-HANTAR',\n    lawatan: function (t, m, n, edd, b, i) { return 'Salam Roseville, saya ingin menempah lawatan vila.\\nTarikh: ' + t + ', ' + m + '\\nNama: ' + n + '\\nTarikh jangkaan bersalin: ' + edd + '\\nBilik diminati: ' + b + '\\nDatang bersama: ' + i + '\\n\\nRuj: RV-LAWATAN'; },\n    pakej: function (m) { return 'pakej ' + (m + 1) + ' hari ' + m + ' malam'; },\n    hantar: function (edd, m, akhir) { return 'Salam Roseville, saya sudah membuat Pelan Pantang Percuma. Tarikh jangkaan bersalin: ' + edd + '. Rancang pakej ' + (m + 1) + ' hari ' + m + ' malam (anggaran ' + edd + ' hingga ' + akhir + '). Boleh semak kekosongan bilik?\\n\\nRuj: RV-PELAN-HANTAR'; },\n    kongsi: function (edd, h44, url) { return 'Sayang, ni pelan pantang kita: anggaran bersalin ' + edd + ', hari ke-44 pantang ' + h44 + '. Jom lawat Roseville dulu? ' + url; },\n    tajuk: function (edd) { return 'Anggaran bersalin: ' + edd; },\n    sub: function (m, h44) { return 'Pakej ' + (m + 1) + ' hari ' + m + ' malam di Roseville. Hari ke-44 pantang jatuh pada ' + h44 + '.'; },\n    garis: function (minggu, beza, lawatTeks, akhirLabel) {\n      return [['Sekarang', 'Kandungan sekitar ' + minggu + ' minggu', beza > 0 ? beza + ' hari lagi sebelum tarikh jangkaan bersalin.' : 'Tarikh jangkaan bersalin sudah tiba atau berlalu.', ''],\n        [lawatTeks, 'Lawat vila', 'Ketika kandungan sekitar 28 hingga 34 minggu, sebelum perjalanan menjadi kurang selesa. Bawa suami atau ibu.', 'utama'],\n        [null, 'Tempah & sahkan tarikh', 'Bilik terhad (7 bilik). Tempah selepas lawatan supaya tarikh anda terjamin.', ''],\n        [null, 'Kemas beg pantang', 'Tiga minggu sebelum tarikh jangkaan bersalin. Guna senarai semak di bawah.', ''],\n        [null, 'Mula berpantang (anggaran)', 'Terus dari hospital selepas bersalin. Tarikh sebenar mengikut hari bayi lahir.', 'utama'],\n        [null, akhirLabel, 'Pulang dengan rutin bayi yang sudah teratur.', ''],\n        [null, 'Hari ke-44 selepas bersalin', 'Tamat tempoh pantang penuh mengikut adat (anggaran). Ramai ibu memilih sesi Penutup Pantang sekitar hari ini.', '']];\n    },\n    akhir: function (m) { return 'Tamat pakej ' + (m + 1) + ' hari ' + m + ' malam'; },\n    secepat: 'Secepat mungkin (minggu ini atau minggu depan)', hingga: ' hingga '\n  };\n\n  function tarikh(d, pendek) { return (pendek ? '' : L.hari[d.getDay()] + ', ') + d.getDate() + ' ' + L.bulan[d.getMonth()] + ' ' + d.getFullYear(); }\n  function tambah(d, n) { var x = new Date(d.getTime()); x.setDate(x.getDate() + n); return x; }\n  function iso(d) { return d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2); }\n  function waUrl(teks) { return 'https:\/\/wa.me\/' + NO + '?text=' + encodeURIComponent(teks); }\n  function el(tag, kelas, teks) { var x = document.createElement(tag); if (kelas) x.className = kelas; if (teks != null) x.textContent = teks; return x; }\n\n  \/* ---------- pratonton draf: pautan dalaman ke halaman draf yang sepadan (hanya bila ?preview=true) *\/\n  function keDraf(href) {\n    try {\n      var u = new URL(href, location.origin);\n      if (u.origin !== location.origin) return null;\n      var id = PETA[u.pathname];\n      if (!id) return null;\n      var q = (typeof id === 'string' ? '\/?p=' + id.slice(1) : '\/?page_id=' + id) + '&preview=true';\n      u.searchParams.forEach(function (v, k) { q += '&' + encodeURIComponent(k) + '=' + encodeURIComponent(v); });\n      return q + u.hash;\n    } catch (err) { return null; }\n  }\n  if (PRATONTON) $$('.rv2 a[href]').forEach(function (a) { var d = keDraf(a.getAttribute('href')); if (d) a.setAttribute('href', d); });\n  function pergi(laluan) { location.href = (PRATONTON && keDraf(laluan)) || laluan; }\n  \/* buka WhatsApp melalui pautan sebenar supaya pencetus klik pautan GTM (generate_lead) tetap berjalan *\/\n  function bukaPautan(url, kod) {\n    var a = el('a', 'rv2-sembunyi', 'WhatsApp');\n    a.href = url; a.target = '_blank'; a.rel = 'noopener'; a.setAttribute('data-wa-kod', kod);\n    document.body.appendChild(a); a.click();\n    setTimeout(function () { if (a.parentNode) a.parentNode.removeChild(a); }, 1000);\n  }\n  function ralat(borang, mesej) {\n    var p = $('.ralat', borang);\n    if (!p) { p = el('p', 'ralat'); p.setAttribute('role', 'alert'); borang.appendChild(p); }\n    p.textContent = mesej; p.hidden = !mesej;\n  }\n\n  \/* ---------- menu telefon *\/\n  $$('.rv2 .menu-btn').forEach(function (b) {\n    b.addEventListener('click', function () {\n      var n = b.closest('.nav-pil'); var buka = n.classList.toggle('buka');\n      b.setAttribute('aria-expanded', buka ? 'true' : 'false');\n    });\n  });\n\n  \/* ---------- tab (spa) dan penapis bilik *\/\n  $$('.rv2 [data-tabs]').forEach(function (t) {\n    $$('[data-tab]', t).forEach(function (b) {\n      b.addEventListener('click', function () {\n        $$('[data-tab]', t).forEach(function (x) { x.setAttribute('aria-selected', x === b ? 'true' : 'false'); });\n        $$('[data-panel]', t).forEach(function (p) { p.classList.toggle('aktif', p.getAttribute('data-panel') === b.getAttribute('data-tab')); });\n      });\n    });\n  });\n  $$('.rv2 [data-tapis] button').forEach(function (b) {\n    b.addEventListener('click', function () {\n      $$('.rv2 [data-tapis] button').forEach(function (x) { x.setAttribute('aria-selected', x === b ? 'true' : 'false'); });\n      var k = b.getAttribute('data-k');\n      $$('.rv2 .bilik').forEach(function (c) { c.hidden = !(k === 'semua' || c.getAttribute('data-k') === k); });\n    });\n  });\n\n  \/* ---------- panduan: topik + carian (tapis kad) *\/\n  var topik = $$('.rv2 .topik button'), cari = $('.rv2 [data-cari] input'), pilih = 0;\n  function tapisPanduan() {\n    var q = (cari && cari.value || '').toLowerCase().trim(), t = pilih > 0 ? topik[pilih].textContent.toLowerCase().trim() : '', ada = 0;\n    $$('.rv2 .kad-art').forEach(function (k) {\n      var cip = ($('.cip', k) || {}).textContent || '';\n      var ok = (!t || cip.toLowerCase().trim() === t) && (!q || k.textContent.toLowerCase().indexOf(q) !== -1);\n      k.hidden = !ok; if (ok) ada++;\n    });\n    var m = $('.rv2 [data-cari-kosong]'); if (m) m.hidden = ada !== 0;\n  }\n  topik.forEach(function (b, i) {\n    b.setAttribute('aria-selected', i === 0 ? 'true' : 'false');\n    b.addEventListener('click', function () { pilih = i; topik.forEach(function (x) { x.setAttribute('aria-selected', x === b ? 'true' : 'false'); }); tapisPanduan(); });\n  });\n  var fc = $('.rv2 [data-cari]');\n  if (fc) { fc.addEventListener('submit', function (ev) { ev.preventDefault(); tapisPanduan(); }); if (cari) cari.addEventListener('input', tapisPanduan); }\n\n  \/* ---------- kiraan naik (statistik) dan ayat empati muncul perkataan demi perkataan *\/\n  $$('.rv2 .ungkap').forEach(function (u) {\n    var kata = u.textContent.split(' '); u.textContent = '';\n    kata.forEach(function (w, i) { u.appendChild(el('span', '', w)); if (i !== kata.length - 1) u.appendChild(document.createTextNode(' ')); });\n  });\n  var io = ('IntersectionObserver' in window) ? new IntersectionObserver(function (ent) {\n    ent.forEach(function (x) {\n      if (!x.isIntersecting) return;\n      var t = x.target; io.unobserve(t);\n      if (t.classList.contains('kira')) {\n        var n = parseFloat(t.getAttribute('data-n')), p = parseInt(t.getAttribute('data-p') || '0', 10), t0 = null;\n        var langkah = function (ms) { if (!t0) t0 = ms; var k = Math.min(1, (ms - t0) \/ 1100); t.textContent = (n * k).toFixed(p); if (k !== 1) requestAnimationFrame(langkah); };\n        requestAnimationFrame(langkah);\n      }\n      if (t.classList.contains('ungkap')) $$('span', t).forEach(function (s, i) { setTimeout(function () { s.classList.add('nampak'); }, i * 70); });\n    });\n  }, { threshold: 0.4 }) : null;\n  $$('.rv2 .kira, .rv2 .ungkap').forEach(function (t) { if (io) io.observe(t); else $$('span', t).forEach(function (s) { s.classList.add('nampak'); }); });\n\n  \/* ---------- borang tempah lawatan -> mesej WhatsApp siap ditulis *\/\n  var tb = $('.rv2 [data-tarikh]');\n  if (tb) {\n    var kini = new Date();\n    for (var i = 1; i !== 15; i++) {\n      var d = tambah(kini, i), b = el('button', '', L.hp[d.getDay()]);\n      b.type = 'button'; b.setAttribute('aria-pressed', 'false'); b.setAttribute('data-t', tarikh(d, true));\n      b.appendChild(el('small', '', d.getDate() + ' ' + L.bulan[d.getMonth()])); tb.appendChild(b);\n    }\n  }\n  $$('.rv2 .cip-pilih').forEach(function (g) {\n    g.addEventListener('click', function (ev) {\n      var b = ev.target.closest('button'); if (!b) return;\n      $$('button', g).forEach(function (x) { x.setAttribute('aria-pressed', x === b ? 'true' : 'false'); });\n    });\n  });\n  var qp = new URLSearchParams(location.search);\n  var fl = $('.rv2 [data-lawatan]');\n  if (fl) {\n    var bq = qp.get('bilik') || qp.get('room'), sb = fl.querySelector('select[name=bilik]');\n    if (bq && sb) $$('option', sb).forEach(function (o) { if (o.value === bq) sb.value = o.value; });\n    fl.addEventListener('submit', function (ev) {\n      ev.preventDefault();\n      var t = $('[data-tarikh] [aria-pressed=\"true\"]', fl), m = $('[data-masa] [aria-pressed=\"true\"]', fl);\n      if (!t || !m) { ralat(fl, L.pilihDulu); return; }\n      ralat(fl, '');\n      var f = new FormData(fl), eddV = f.get('edd'), edd = eddV ? tarikh(new Date(eddV + 'T00:00:00'), true) : '-';\n      bukaPautan(waUrl(L.lawatan(t.getAttribute('data-t'), m.textContent, f.get('nama'), edd, f.get('bilik') || L.belumPasti, f.get('ikut'))), L.kodLawatan);\n    });\n  }\n\n  \/* ---------- Pelan Pantang Percuma *\/\n  var fp = $('.rv2 [data-pelan]');\n  function jana(eddStr, malam) {\n    var edd = new Date(eddStr + 'T00:00:00'), kini2 = new Date(); kini2.setHours(0, 0, 0, 0);\n    var beza = Math.round((edd - kini2) \/ 864e5);\n    if (isNaN(beza) || beza < -21 || beza > 300) { ralat(fp, L.semakTarikh); return; }\n    ralat(fp, '');\n    var minggu = Math.max(0, Math.min(42, Math.round(40 - beza \/ 7)));\n    var lawatA = tambah(edd, -84), lawatB = tambah(edd, -42), tamat = tambah(edd, malam), h44 = tambah(edd, 43);\n    var lawatTeks = kini2 > lawatB ? L.secepat : tarikh(lawatA, true) + L.hingga + tarikh(lawatB, true);\n    var item = L.garis(minggu, beza, lawatTeks, L.akhir(malam));\n    var tarikhItem = [null, null, tambah(edd, -56), tambah(edd, -21), edd, tamat, h44];\n    var ol = $('.rv2 [data-garis-masa]'); ol.textContent = '';\n    item.forEach(function (x, i) {\n      var li = el('li', x[3]); li.appendChild(el('span', 'tarikh', x[0] != null ? x[0] : tarikh(tarikhItem[i])));\n      var div = el('div'); div.appendChild(el('b', '', x[1])); div.appendChild(el('span', '', x[2])); li.appendChild(div); ol.appendChild(li);\n    });\n    $('.rv2 [data-pelan-tajuk]').textContent = L.tajuk(tarikh(edd, true));\n    $('.rv2 [data-pelan-sub]').textContent = L.sub(malam, tarikh(h44, true));\n    var wa = $('.rv2 [data-wa-kod=\"' + L.kodPelan + '\"]');\n    if (wa) wa.href = waUrl(L.hantar(tarikh(edd, true), malam, tarikh(tamat, true)));\n    var ks = $('.rv2 [data-kongsi-suami]');\n    if (ks) ks.href = 'whatsapp:\/\/send?text=' + encodeURIComponent(L.kongsi(tarikh(edd, true), tarikh(h44, true), location.origin + (EN ? '\/en' : '') + '\/pelan-pantang\/?edd=' + iso(edd) + '&malam=' + malam));\n    var hasil = $('.rv2 [data-pelan-hasil]'); hasil.hidden = false; hasil.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    (window.dataLayer = window.dataLayer || []).push({ event: 'pelan_pantang_dijana', malam: malam });\n  }\n  if (fp) {\n    fp.addEventListener('submit', function (ev) { ev.preventDefault(); jana(fp.edd.value, parseInt(fp.malam.value, 10)); });\n    var e0 = qp.get('edd');\n    if (e0 && \/^[0-9]{4}-[0-9]{2}-[0-9]{2}$\/.test(e0)) {\n      fp.edd.value = e0;\n      var m0 = qp.get('malam') || qp.get('nights');\n      if (m0 && fp.malam.querySelector('option[value=\"' + parseInt(m0, 10) + '\"]')) fp.malam.value = String(parseInt(m0, 10));\n      setTimeout(function () { jana(e0, parseInt(fp.malam.value, 10)); }, 80);\n    }\n  }\n  $$('.rv2 [data-pelan-mini]').forEach(function (f) {\n    f.addEventListener('submit', function (ev) {\n      ev.preventDefault(); var v = $('input', f).value; if (!v) return;\n      pergi(f.getAttribute('data-pelan-mini') + '?edd=' + v + '&malam=13');\n    });\n  });\n  \/* ---------- Kalkulator Hari Pantang (2 Nov 2026): hari ke-N = tarikh bersalin + (N - 1), sama seperti Pelan Pantang (h44 = EDD + 43).\n     Fakta daripada artikel 01 (tempoh, pemeriksaan WHO), 03 (penutup pantang) dan 05 (czer). *\/\n  var fk = $('.rv2 [data-kira]');\n  if (fk) {\n    var K = EN ? {\n      semak: 'Enter a delivery date within the last 12 months or the next 10 months.', kod: 'RV-EN-CALC-CLOSING', hingga: ' to ',\n      lahir: 'Delivery day (day 1)', lahirD: 'Day 1 of your confinement.',\n      cek1: 'First postnatal check-up', cek1D: 'WHO recommends a check-up 48 to 72 hours after birth.',\n      cek2: 'Second postnatal check-up', cek2D: 'WHO recommends another check-up 7 to 14 days after birth.',\n      cek6: '6-week postnatal check-up', cek6D: 'The postnatal period lasts about six weeks (42 days). WHO recommends a check-up in week six.',\n      cek6Czer: ' After a C-section, recovery usually takes about six weeks.',\n      penutup: 'Closing confinement week', penutupD: 'No fixed day: many mothers choose the final week of their confinement.',\n      penutupCzer: \" After a C-section, get your doctor's approval first.\",\n      hari: function (n) { return 'Day ' + n + ' of confinement'; },\n      pilihan: function (n) { return 'End of a ' + n + '-day confinement.'; },\n      tamat: function (n) { return 'Your ' + n + '-day confinement ends.'; },\n      tajuk: function (n, t) { return 'Day ' + n + ' falls on ' + t; },\n      kini: function (h, n, baki) { return 'Today is day ' + h + ' of your confinement. ' + (baki > 0 ? baki + ' days to go until day ' + n + '.' : 'Your ' + n + '-day confinement ends today.'); },\n      lepas: function (n, t) { return 'Your ' + n + '-day confinement ended on ' + t + '.'; },\n      awal: function (b) { return 'This date is ' + b + ' days away, so the dates below are estimates.'; },\n      wa: function (lahir, n, a, b, czer) { return 'Hi Roseville, I used the Confinement Date Calculator. Delivery date: ' + lahir + (czer ? ' (C-section)' : '') + '. Planning a ' + n + '-day confinement; closing confinement week ' + a + ' to ' + b + '. Could you check availability for the Closing Confinement package?\\n\\nRef: RV-EN-CALC-CLOSING'; },\n      kongsi: function (lahir, n, t, url) { return 'Hi love, here are our confinement dates: delivery ' + lahir + ', day ' + n + ' falls on ' + t + '. ' + url; }\n    } : {\n      semak: 'Sila masukkan tarikh bersalin dalam tempoh 12 bulan lepas atau 10 bulan akan datang.', kod: 'RV-KIRA-PENUTUP', hingga: ' hingga ',\n      lahir: 'Hari bersalin (hari ke-1)', lahirD: 'Hari pertama pantang anda.',\n      cek1: 'Pemeriksaan pertama selepas bersalin', cek1D: 'WHO mengesyorkan pemeriksaan 48 hingga 72 jam selepas bersalin.',\n      cek2: 'Pemeriksaan kedua selepas bersalin', cek2D: 'WHO mengesyorkan pemeriksaan sekali lagi 7 hingga 14 hari selepas bersalin.',\n      cek6: 'Pemeriksaan 6 minggu', cek6D: 'Tempoh selepas bersalin kira-kira enam minggu (42 hari). WHO mengesyorkan pemeriksaan pada minggu keenam.',\n      cek6Czer: ' Selepas czer, pemulihan biasanya kira-kira enam minggu.',\n      penutup: 'Minggu penutup pantang', penutupD: 'Tiada hari tetap: ramai ibu memilih minggu terakhir tempoh pantang.',\n      penutupCzer: ' Bersalin czer: dapatkan kebenaran doktor dahulu.',\n      hari: function (n) { return 'Hari ke-' + n + ' pantang'; },\n      pilihan: function (n) { return 'Tamat jika anda memilih pantang ' + n + ' hari.'; },\n      tamat: function (n) { return 'Pantang ' + n + ' hari anda tamat.'; },\n      tajuk: function (n, t) { return 'Hari ke-' + n + ' jatuh pada ' + t; },\n      kini: function (h, n, baki) { return 'Hari ini hari ke-' + h + ' pantang anda. ' + (baki > 0 ? baki + ' hari lagi hingga hari ke-' + n + '.' : 'Pantang ' + n + ' hari anda tamat hari ini.'); },\n      lepas: function (n, t) { return 'Pantang ' + n + ' hari anda sudah tamat pada ' + t + '.'; },\n      awal: function (b) { return 'Tarikh ini ' + b + ' hari lagi, jadi tarikh di bawah ialah anggaran.'; },\n      wa: function (lahir, n, a, b, czer) { return 'Salam Roseville, saya guna Kalkulator Hari Pantang. Tarikh bersalin: ' + lahir + (czer ? ' (czer)' : '') + '. Rancang pantang ' + n + ' hari; minggu penutup pantang ' + a + ' hingga ' + b + '. Boleh semak kekosongan Pakej Penutup Pantang?\\n\\nRuj: RV-KIRA-PENUTUP'; },\n      kongsi: function (lahir, n, t, url) { return 'Sayang, ni tarikh pantang kita: bersalin ' + lahir + ', hari ke-' + n + ' jatuh pada ' + t + '. ' + url; }\n    };\n    var kira = function (lahirStr, T, czer) {\n      var lahir = new Date(lahirStr + 'T00:00:00'), kini3 = new Date(); kini3.setHours(0, 0, 0, 0);\n      var beza = Math.round((kini3 - lahir) \/ 864e5);\n      if (isNaN(beza) || beza < -300 || beza > 366) { ralat(fk, K.semak); return; }\n      ralat(fk, '');\n      var hk = function (n) { return tambah(lahir, n - 1); };\n      var julat = function (a, b) { return tarikh(a, true) + K.hingga + tarikh(b, true); };\n      var item = [[0, tarikh(lahir), K.lahir, K.lahirD, 'utama'], [2, julat(tambah(lahir, 2), tambah(lahir, 3)), K.cek1, K.cek1D, ''],\n        [7, julat(tambah(lahir, 7), tambah(lahir, 14)), K.cek2, K.cek2D, ''], [42, tarikh(tambah(lahir, 42)), K.cek6, K.cek6D + (czer ? K.cek6Czer : ''), ''],\n        [T - 6.9, julat(hk(T - 6), hk(T)), K.penutup, K.penutupD + (czer ? K.penutupCzer : ''), 'utama']];\n      [14, 28, 40, 44].forEach(function (n) { item.push([n - 1, tarikh(hk(n)), K.hari(n), n === T ? K.tamat(n) : K.pilihan(n), n === T ? 'utama' : '']); });\n      item.sort(function (a, b) { return a[0] - b[0]; });\n      var ol = $('.rv2 [data-kira-garis]'); ol.textContent = '';\n      item.forEach(function (x) {\n        var li = el('li', x[4]); li.appendChild(el('span', 'tarikh', x[1]));\n        var div = el('div'); div.appendChild(el('b', '', x[2])); div.appendChild(el('span', '', x[3])); li.appendChild(div); ol.appendChild(li);\n      });\n      $('.rv2 [data-kira-tajuk]').textContent = K.tajuk(T, tarikh(hk(T)));\n      $('.rv2 [data-kira-sub]').textContent = beza < 0 ? K.awal(-beza) : (beza <= T - 1 ? K.kini(beza + 1, T, T - beza - 1) : K.lepas(T, tarikh(hk(T), true)));\n      $('.rv2 [data-kira-czer]').hidden = !czer;\n      $('.rv2 [data-kira-awal]').hidden = beza >= 0;\n      var w = $('.rv2 [data-wa-kod=\"' + K.kod + '\"]');\n      if (w) w.href = waUrl(K.wa(tarikh(lahir, true), T, tarikh(hk(T - 6), true), tarikh(hk(T), true), czer));\n      var ks2 = $('.rv2 [data-kira-kongsi]');\n      if (ks2) ks2.href = 'whatsapp:\/\/send?text=' + encodeURIComponent(K.kongsi(tarikh(lahir, true), T, tarikh(hk(T), true),\n        location.origin + (EN ? '\/en' : '') + '\/kira-hari-pantang\/?lahir=' + iso(lahir) + '&tempoh=' + T + (czer ? '&cara=czer' : '')));\n      var hasil = $('.rv2 [data-kira-hasil]'); hasil.hidden = false; hasil.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      (window.dataLayer = window.dataLayer || []).push({ event: 'kira_pantang_dijana', tempoh: T, cara: czer ? 'czer' : 'normal' });\n    };\n    fk.addEventListener('submit', function (ev) { ev.preventDefault(); kira(fk.lahir.value, parseInt(fk.tempoh.value, 10), fk.cara.value === 'czer'); });\n    var l0 = qp.get('lahir');\n    if (l0 && \/^[0-9]{4}-[0-9]{2}-[0-9]{2}$\/.test(l0)) {\n      fk.lahir.value = l0;\n      var t0 = parseInt(qp.get('tempoh'), 10);\n      if ([14, 28, 40, 44].indexOf(t0) > -1) fk.tempoh.value = String(t0);\n      if (qp.get('cara') === 'czer') fk.cara.value = 'czer';\n      setTimeout(function () { kira(l0, parseInt(fk.tempoh.value, 10), fk.cara.value === 'czer'); }, 80);\n    }\n  }\n  \/* ---------- Kalkulator Cuti Bersalin (artikel 10, 3 Nov 2026): hari terakhir = tarikh mula + (N - 1), kembali bekerja = mula + N.\n     Fakta daripada artikel 10: Akta Kerja 1955 s.37, s.40(2), s.60FA; Ordinan Buruh Sabah dan Sarawak (98 hari, mula seawal 30 hari);\n     PPSM JPA SR.5.4.1 (60 hingga 90 hari, mula seawal 14 hari sebelum jangkaan) dan SR.5.7.1 (CTR Kelompok suami).\n     JANGAN guna aksara kurang-daripada dalam blok ini: wptexturize WordPress (kandungan post) menukar && kepada &#038;&#038; selepasnya (4 Nov 2026). *\/\n  var fc = $('.rv2 [data-cuti]');\n  if (fc) {\n    var C = EN ? {\n      semak: 'Enter a due date or delivery date within the last 12 months or the next 10 months.', semakTempoh: 'Civil servants choose between 60 and 90 days.',\n      hingga: ' to ', mulai: 'From ', sebelum: 'By ', segera: 'As soon as possible', kod: 'RV-ART-CUTI-BERSALIN-CALC',\n      notis: 'Tell your employer', notisD: 'Under the Employment Act 1955 (Peninsular Malaysia and Labuan), give notice within 60 days before your due date, including your leave start date. If you don\\u2019t, your allowance can be held back until you give notice.',\n      suamiNotis: 'Your husband tells his employer', suamiNotisD: 'For 7-day paternity leave in the private sector: at least 30 days before the due date, or as soon as possible after the birth.',\n      mula: 'Maternity leave starts', mulaD: function (n) { return 'Day 1 of ' + n + '. Each day taken before the birth is one day less after it.'; },\n      jangka: 'Due date', lahir: 'Delivery day',\n      lahirD: function (a) { return (a ? 'Day ' + (a + 1) + ' of maternity leave' : 'Day 1 of maternity leave') + ' and day 1 of confinement.'; },\n      paterniti: 'Husband\u2019s paternity leave (private sector)', paternitiD: '7 consecutive days from the delivery day, weekends and public holidays included. Civil servant husbands: CTR Kelompok of 1 to 20 days a year, with the head of department\u2019s approval.',\n      h44: 'Day 44 of confinement', h44D: function (h, b) { return 'Day ' + h + ' of your maternity leave. Leave left after confinement: ' + b + ' days.'; },\n      akhir: 'Last day of maternity leave', akhirD: function (n) { return 'Day ' + n + ' of your leave.'; },\n      balik: 'Back to work', balikD: 'Or your next working day if this falls on a rest day or public holiday.',\n      notaSwasta: 'If your baby arrives early or late, recalculate with the actual delivery date. Days taken more than 30 days before the birth do not count as maternity leave. Pay depends on the conditions explained below.',\n      notaAwam: 'Budget 2027 announced up to 98 days per birth for civil servants, but no start date has been set. Check with your department\u2019s HR unit.',\n      tajuk: function (n, t) { return 'Your ' + n + '-day leave ends on ' + t; },\n      kini: function (h, n) { return 'Today is day ' + h + ' of your ' + n + '-day leave. '; },\n      jadual: function (a, b) { return 'Leave starts ' + a + ' and you are back at work on ' + b + '.'; },\n      anggaran: ' These are estimates based on your due date.', lepas: function (t) { return 'Your maternity leave ended on ' + t + '.'; },\n      wa: function (belum, l, a, b, h) { return 'Hi Roseville, I used the Maternity Leave Calculator. ' + (belum ? 'Due date: ' : 'Delivery date: ') + l + '. My maternity leave: ' + a + ' to ' + b + '. I would like to plan my confinement at Roseville (day 44: ' + h + '). Could you check room availability?\\n\\nRef: RV-ART-CUTI-BERSALIN-CALC'; },\n      waLewat: function (l) { return 'Hi Roseville, I used the Maternity Leave Calculator. I gave birth on ' + l + ' and would like to ask about the Closing Confinement package or the spa.\\n\\nRef: RV-ART-CUTI-BERSALIN-CALC'; },\n      kongsi: function (belum, l, a, b, s, url) { return 'Hi love, here are our maternity leave dates: ' + (belum ? 'due date ' : 'delivery ') + l + ', my leave ' + a + ' to ' + b + '. Private-sector paternity leave is 7 days from the delivery day' + (s ? ', so tell your employer by ' + s : '') + '. ' + url; }\n    } : {\n      semak: 'Sila masukkan tarikh jangkaan bersalin atau tarikh bersalin dalam tempoh 12 bulan lepas atau 10 bulan akan datang.', semakTempoh: 'Penjawat awam memilih antara 60 hingga 90 hari.',\n      hingga: ' hingga ', mulai: 'Mulai ', sebelum: 'Sebelum ', segera: 'Secepat mungkin', kod: 'RV-ART-CUTI-BERSALIN-KIRA',\n      notis: 'Maklumkan majikan anda', notisD: 'Di bawah Akta Kerja 1955 (Semenanjung dan Labuan), beri notis dalam tempoh 60 hari sebelum tarikh jangkaan bersalin, termasuk tarikh mula cuti. Jika tidak, elaun boleh ditangguhkan sehingga notis diberi.',\n      suamiNotis: 'Suami maklumkan majikannya', suamiNotisD: 'Untuk cuti paterniti 7 hari di sektor swasta: sekurang-kurangnya 30 hari sebelum tarikh jangkaan bersalin, atau seawal mungkin selepas kelahiran.',\n      mula: 'Cuti bersalin bermula', mulaD: function (n) { return 'Hari ke-1 daripada ' + n + ' hari. Setiap hari cuti sebelum bersalin mengurangkan satu hari cuti selepas bersalin.'; },\n      jangka: 'Tarikh jangkaan bersalin', lahir: 'Hari bersalin',\n      lahirD: function (a) { return 'Hari ke-' + (a + 1) + ' cuti bersalin dan hari ke-1 pantang.'; },\n      paterniti: 'Cuti paterniti suami (swasta)', paternitiD: '7 hari berturut-turut bermula pada hari bersalin, termasuk hujung minggu dan cuti umum. Suami penjawat awam: CTR Kelompok 1 hingga 20 hari setahun, dengan kelulusan Ketua Jabatan.',\n      h44: 'Hari ke-44 pantang', h44D: function (h, b) { return 'Hari ke-' + h + ' cuti bersalin anda. Baki cuti selepas pantang: ' + b + ' hari.'; },\n      akhir: 'Hari terakhir cuti bersalin', akhirD: function (n) { return 'Hari ke-' + n + ' cuti anda.'; },\n      balik: 'Kembali bekerja', balikD: 'Atau hari bekerja anda yang berikutnya jika tarikh ini hari rehat atau cuti umum.',\n      notaSwasta: 'Jika bayi lahir lebih awal atau lewat, kira semula dengan tarikh bersalin sebenar. Hari cuti yang diambil lebih daripada 30 hari sebelum bersalin tidak dikira sebagai cuti bersalin. Elaun bergantung pada syarat yang diterangkan di bawah.',\n      notaAwam: 'Belanjawan 2027 mengumumkan maksimum 98 hari bagi setiap kelahiran untuk penjawat awam, tetapi tarikh kuat kuasa belum dinyatakan. Semak dengan unit sumber manusia jabatan anda.',\n      tajuk: function (n, t) { return 'Cuti ' + n + ' hari anda tamat pada ' + t; },\n      kini: function (h, n) { return 'Hari ini hari ke-' + h + ' daripada ' + n + ' hari cuti anda. '; },\n      jadual: function (a, b) { return 'Cuti bermula ' + a + ' dan anda kembali bekerja pada ' + b + '.'; },\n      anggaran: ' Tarikh ini ialah anggaran mengikut tarikh jangkaan bersalin.', lepas: function (t) { return 'Cuti bersalin anda sudah tamat pada ' + t + '.'; },\n      wa: function (belum, l, a, b, h) { return 'Salam Roseville, saya guna Kalkulator Cuti Bersalin. ' + (belum ? 'Tarikh jangkaan bersalin: ' : 'Tarikh bersalin: ') + l + '. Cuti bersalin saya ' + a + ' hingga ' + b + '. Saya nak rancang pantang di Roseville (hari ke-44: ' + h + '). Boleh semak kekosongan bilik?\\n\\nRuj: RV-ART-CUTI-BERSALIN-KIRA'; },\n      waLewat: function (l) { return 'Salam Roseville, saya guna Kalkulator Cuti Bersalin. Saya bersalin pada ' + l + ' dan nak tanya tentang Pakej Penutup Pantang atau spa.\\n\\nRuj: RV-ART-CUTI-BERSALIN-KIRA'; },\n      kongsi: function (belum, l, a, b, s, url) { return 'Sayang, ni tarikh cuti bersalin kita: ' + (belum ? 'jangkaan bersalin ' : 'bersalin ') + l + ', cuti saya ' + a + ' hingga ' + b + '. Cuti paterniti (swasta) 7 hari bermula hari bersalin' + (s ? ', jadi maklumkan majikan sebelum ' + s : '') + '. ' + url; }\n    };\n    var segerak = function () {  \/\/ penjawat awam: tempoh 60 hingga 90 hari, mula paling awal 14 hari sebelum jangkaan\n      var awam = fc.sektor.value === 'awam';\n      $('[data-cuti-tempoh]', fc).hidden = !awam;\n      $$('option[data-swasta]', fc.awal).forEach(function (o) { o.hidden = o.disabled = awam; });\n      if (awam && parseInt(fc.awal.value, 10) > 14) fc.awal.value = '14';\n    };\n    fc.sektor.addEventListener('change', segerak);\n    var kiraCuti = function (gulung) {\n      var lahir = new Date(fc.lahir.value + 'T00:00:00'), kini4 = new Date(); kini4.setHours(0, 0, 0, 0);\n      var beza = Math.round((lahir - kini4) \/ 864e5);\n      if (isNaN(beza) || -366 > beza || beza > 300) { ralat(fc, C.semak); return; }\n      var awam = fc.sektor.value === 'awam', N = awam ? parseInt(fc.tempoh.value, 10) : 98;\n      if (awam && !(N >= 60 && 90 >= N)) { ralat(fc, C.semakTempoh); return; }\n      ralat(fc, '');\n      var A = Math.min(parseInt(fc.awal.value, 10) || 0, awam ? 14 : 30), belum = beza > 0;\n      var mula = tambah(lahir, -A), akhir = tambah(mula, N - 1), balik = tambah(mula, N), h44 = tambah(lahir, 43);\n      var hadPada = function (d, awalan) { return kini4 > d ? C.segera : awalan + tarikh(d, true); };\n      var item = [];  \/\/ [kunci susunan (hari dari tarikh bersalin), teks tarikh, tajuk, huraian, kelas]\n      if (belum && !awam) item.push([-60.5, hadPada(tambah(lahir, -60), C.mulai), C.notis, C.notisD, '']);\n      if (belum) item.push([-30.5, hadPada(tambah(lahir, -30), C.sebelum), C.suamiNotis, C.suamiNotisD, '']);\n      if (A) item.push([-A, tarikh(mula), C.mula, C.mulaD(N), '']);\n      item.push([0, tarikh(lahir), belum ? C.jangka : C.lahir, C.lahirD(A), '']);\n      item.push([0.5, tarikh(lahir, true) + C.hingga + tarikh(tambah(lahir, 6), true), C.paterniti, C.paternitiD, '']);\n      item.push([43, tarikh(h44), C.h44, C.h44D(A + 44, N - A - 44), 'utama']);\n      item.push([N - A - 1, tarikh(akhir), C.akhir, C.akhirD(N), 'utama']);\n      item.push([N - A, tarikh(balik), C.balik, C.balikD, '']);\n      item.sort(function (a, b) { return a[0] - b[0]; });\n      var ol = $('.rv2 [data-cuti-garis]'); ol.textContent = '';\n      item.forEach(function (x) {\n        var li = el('li', x[4]); li.appendChild(el('span', 'tarikh', x[1]));\n        var div = el('div'); div.appendChild(el('b', '', x[2])); div.appendChild(el('span', '', x[3])); li.appendChild(div); ol.appendChild(li);\n      });\n      var hari = Math.round((kini4 - mula) \/ 864e5);\n      $('.rv2 [data-cuti-tajuk]').textContent = C.tajuk(N, tarikh(akhir));\n      $('.rv2 [data-cuti-sub]').textContent = hari >= N ? C.lepas(tarikh(akhir, true)) :\n        (hari >= 0 ? C.kini(hari + 1, N) : '') + C.jadual(tarikh(mula, true), tarikh(balik, true)) + (belum ? C.anggaran : '');\n      $('.rv2 [data-cuti-nota]').textContent = awam ? C.notaAwam : C.notaSwasta;\n      var l = tarikh(lahir, true), a = tarikh(mula, true), b = tarikh(akhir, true);\n      var w = $('.rv2 [data-wa-kod=\"' + C.kod + '\"]');\n      if (w) w.href = waUrl(-43 > beza ? C.waLewat(l) : C.wa(belum, l, a, b, tarikh(h44, true)));\n      var kp = $('.rv2 [data-cuti-pantang]');\n      if (kp) kp.href = (EN ? '\/en' : '') + '\/kira-hari-pantang\/?lahir=' + iso(lahir) + '&tempoh=44';\n      var ks3 = $('.rv2 [data-cuti-kongsi]'), sn = tambah(lahir, -30);\n      if (ks3) ks3.href = 'whatsapp:\/\/send?text=' + encodeURIComponent(C.kongsi(belum, l, a, b, belum && sn >= kini4 ? tarikh(sn, true) : '',\n        location.origin + location.pathname + '?lahir=' + iso(lahir) + '&sektor=' + fc.sektor.value + '&awal=' + A + (awam ? '&tempoh=' + N : '') + '#kalkulator'));\n      var hasil = $('.rv2 [data-cuti-hasil]'); hasil.hidden = false;\n      if (gulung) hasil.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      (window.dataLayer = window.dataLayer || []).push({ event: 'kalkulator_cuti_dijana', sektor: fc.sektor.value, awal: A, tempoh: N });\n    };\n    fc.addEventListener('submit', function (ev) { ev.preventDefault(); kiraCuti(true); });\n    var c0 = qp.get('lahir');\n    if (c0 && \/^[0-9]{4}-[0-9]{2}-[0-9]{2}$\/.test(c0)) {\n      fc.lahir.value = c0;\n      if (qp.get('sektor') === 'awam') fc.sektor.value = 'awam';\n      var tp = parseInt(qp.get('tempoh'), 10); if (tp >= 60 && 90 >= tp) fc.tempoh.value = String(tp);\n      var aw = qp.get('awal'); if (aw && fc.awal.querySelector('option[value=\"' + parseInt(aw, 10) + '\"]')) fc.awal.value = String(parseInt(aw, 10));\n      segerak();\n      setTimeout(function () { kiraCuti(true); }, 80);\n    } else segerak();\n  }\n  $$('.rv2 [data-cetak]').forEach(function (b) { b.addEventListener('click', function () { window.print(); }); });\n\n  \/* ---------- senarai semak barang pantang (disimpan dalam telefon sahaja) *\/\n  var KUNCI = EN ? 'rvSemakEN' : 'rvSemak', simpan = {};\n  try { simpan = JSON.parse(localStorage.getItem(KUNCI) || '{}'); } catch (err) { simpan = {}; }\n  function kiraSemak() {\n    var k = $('.rv2 [data-semak-kira]');\n    if (k) k.textContent = $$('.rv2 [data-semak]:checked').length + ' \/ ' + $$('.rv2 [data-semak]').length + ' ' + L.ditanda;\n  }\n  $$('.rv2 [data-semak]').forEach(function (c) {\n    c.checked = !!simpan[c.getAttribute('data-semak')];\n    c.addEventListener('change', function () {\n      simpan[c.getAttribute('data-semak')] = c.checked;\n      try { localStorage.setItem(KUNCI, JSON.stringify(simpan)); } catch (err) { \/* storan disekat: abaikan *\/ }\n      kiraSemak();\n    });\n  });\n  kiraSemak();\n})();\n<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":7878,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-7537","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages\/7537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/comments?post=7537"}],"version-history":[{"count":18,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages\/7537\/revisions"}],"predecessor-version":[{"id":8305,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages\/7537\/revisions\/8305"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/media\/7878"}],"wp:attachment":[{"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/media?parent=7537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}