{"id":8242,"date":"2026-10-30T07:54:50","date_gmt":"2026-10-30T07:54:50","guid":{"rendered":"https:\/\/rosevilleconfinement.com\/?page_id=8242"},"modified":"2026-11-03T06:52:37","modified_gmt":"2026-11-03T06:52:37","slug":"pakej-penutup-pantang","status":"publish","type":"page","link":"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/","title":{"rendered":"Postnatal Package"},"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=\"\/pakej-penutup-pantang\/\" 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\"><header class=\"kepala\"><div class=\"wrap\"><p class=\"eye\">Closing Confinement package<\/p><h1>Closing Confinement Package in Bangi. <span class=\"grad\">End your confinement with rest.<\/span><\/h1>\n<p class=\"lead\">One long session at Roseville Muslimah Spa: full-body massage, warm compress, body scrub, herbal bath and sauna, by female therapists in a private space. For mothers who spent their confinement at home or at a confinement centre. For comfort, not medical treatment.<\/p><div class=\"cta-baris\"><a class=\"btn btn-utama-wa\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Closing%20Confinement%20Package%22%20page.%20I%20would%20like%20to%20ask%20about%20the%20Closing%20Confinement%20package.%0A%0ARef%3A%20RV-EN-CLOSING-HERO\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-CLOSING-HERO\" data-wa-topik=\"the Closing Confinement package\" 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>Book Closing Confinement<\/span><\/a><a class=\"btn btn-kedua\" href=\"\/en\/penutup-pantang-hari-ke-berapa\/\">When to do closing confinement?<\/a><\/div><\/div><i class=\"blob b1\"><\/i><i class=\"blob b2\"><\/i><\/header><\/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 dua-lajur atas\"><div><p class=\"eye\">Included in the package<\/p><h2>Eight treatments in one session<\/h2>\n<ul class=\"senarai-ikon\"><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><b>Far-infrared sauna<\/b>A short dry-heat session.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><b>Foot spa<\/b>A foot soak and care.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Full-body massage<\/b>Traditional massage, with pressure to your comfort.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Sengkak<\/b>Traditional abdominal massage.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Postnatal breast massage<\/b>A gentle massage for comfort while breastfeeding.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Full-body warm compress<\/b>A warm compress for the whole body.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Full-body scrub<\/b>A body scrub.<\/span><\/li><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Herbal bath<\/b>A warm herbal bath.<\/span><\/li><\/ul><\/div>\n<div><div class=\"bingkai\"><img loading=\"lazy\" class=\"foto\" src=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-spa-1024.webp\" width=\"1024\" height=\"576\" alt=\"Roseville Muslimah Spa room in Bangi Gateway\" srcset=\"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-spa-1024-300x169.webp 300w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-spa-1024-768x432.webp 768w, https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-bilik-spa-1024.webp 1024w\" sizes=\"auto, (max-width: 620px) calc(100vw - 80px), (max-width: 900px) calc(100vw - 100px), 560px\" decoding=\"async\"><\/div>\n<div class=\"kad-panduan\"><h3>Suits<\/h3><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>Mothers who spent confinement at home<\/li>\n<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>Mothers near the end of confinement<\/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>A gift from a husband or family<\/li><\/ul>\n<p>Roseville Muslimah Spa is open to all women, with no need to stay at the villa.<\/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\"><div class=\"wrap\"><p class=\"eye\">Timing<\/p><h2>When can you do closing confinement?<\/h2>\n<div class=\"rawatan-grid tiga\"><div class=\"kad-rawatan\"><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>Normal delivery<\/h3><p>Many mothers schedule it towards the end of their confinement. Choose a date that fits your confinement period.<\/p><\/div>\n<div class=\"kad-rawatan\"><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><h3>Caesarean birth<\/h3><p>Wait until your wound has healed and your doctor clears you for massage, warm compress and sauna. Let us know if you had a caesarean.<\/p><\/div>\n<div class=\"kad-rawatan\"><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=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg><h3>Not sure?<\/h3><p>Send us your birth date and type of birth on WhatsApp. We will help you choose a date.<\/p><\/div><\/div>\n<p class=\"kecil-sub\">Read more: <a href=\"\/en\/penutup-pantang-hari-ke-berapa\/\">when to do closing confinement<\/a> \u00b7 <a href=\"\/en\/pantang-czer\/\">confinement after a caesarean<\/a><\/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\"><div class=\"kenyataan\"><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>Ask your doctor first if you<\/h3>\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>still have heavy or smelly bleeding<\/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>have a fever<\/li>\n<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>have stitches or a caesarean wound that has not healed<\/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>had high blood pressure during or after pregnancy<\/li>\n<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>have pain or swelling in one leg<\/li><\/ul>\n<p>Roseville is a care centre and women&#8217;s spa, not a clinic or hospital.<\/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\"><div class=\"wrap dua-lajur atas\"><div><p class=\"eye\">How to book<\/p><h2>Three simple steps<\/h2>\n<ul class=\"senarai-ikon\"><li><svg class=\"ik\" width=\"22\" height=\"22\" 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><b>WhatsApp us<\/b>Tell us your birth date, type of birth (normal or caesarean) and preferred date.<\/span><\/li>\n<li><svg class=\"ik\" width=\"22\" height=\"22\" 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><b>We confirm a slot<\/b>We reply with the slots available.<\/span><\/li>\n<li><svg class=\"ik\" width=\"22\" height=\"22\" 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><span><b>Come to the spa<\/b>Plaza Bangi Perdana, Bangi Gateway, Seksyen 15, Bandar Baru Bangi.<\/span><\/li><\/ul><\/div>\n<div class=\"kad-panduan\"><h3>Related guides<\/h3><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><a href=\"\/en\/urut-selepas-bersalin\/\">Postnatal massage<\/a><\/li>\n<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><a href=\"\/en\/mandian-herba-selepas-bersalin\/\">Herbal bath after birth<\/a><\/li>\n<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><a href=\"\/en\/bertungku-selepas-bersalin\/\">Bertungku after birth<\/a><\/li>\n<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><a href=\"\/en\/sauna-untuk-apa\/\">Sauna after giving birth<\/a><\/li>\n<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><a href=\"\/en\/hadiah-untuk-ibu-bersalin\/\">Gifts for new mothers<\/a><\/li><\/ul><\/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\" id=\"closing-location\"><div class=\"wrap\"><p class=\"eye\">Spa location<\/p><h2>At Plaza Bangi Perdana, Bangi Gateway<\/h2><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%22Closing%20Confinement%20Package%22%20page.%20I%20would%20like%20to%20ask%20about%20location%20and%20visits.%0A%0ARef%3A%20RV-EN-CLOSING-LOCATION\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-CLOSING-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><\/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 faq-wrap\"><h2>FAQ: the spa<\/h2><details class=\"faq\"><summary>Can I book the spa without staying?<\/summary><p>Yes. All spa treatments can be booked on their own, including the Closing Confinement package.<\/p><\/details><details class=\"faq\"><summary>Are these spa treatments medical treatments?<\/summary><p>No. Spa treatments are for comfort and wellbeing, not for treating illness.<\/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><p class=\"kecil-sub\"><a href=\"\/en\/soalan-lazim\/\">See all FAQs<\/a><\/p><\/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>Give a closing confinement session to your wife or mother.<\/h2><p>Ask about dates and slots on WhatsApp.<\/p>\n<div class=\"cta-baris tengah\"><a class=\"btn btn-wa\" href=\"https:\/\/wa.me\/601155599174?text=Hi%20Roseville%2C%20I%20am%20on%20your%20%22Closing%20Confinement%20Package%22%20page.%20I%20would%20like%20to%20ask%20about%20the%20Closing%20Confinement%20package.%0A%0ARef%3A%20RV-EN-CLOSING-END\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-CLOSING-END\" data-wa-topik=\"the Closing Confinement package\" 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>Book Closing Confinement<\/span><\/a><a class=\"btn btn-utama\" href=\"\/en\/spa-wanita-bangi\/\">See the spa menu<\/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%22Closing%20Confinement%20Package%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-CLOSING-FOOTER\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-CLOSING-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%22Closing%20Confinement%20Package%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-CLOSING-FLOAT\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-CLOSING-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%22Closing%20Confinement%20Package%22%20page.%20I%20would%20like%20to%20ask%3A%0A%0ARef%3A%20RV-EN-CLOSING-BAR\" target=\"_blank\" rel=\"noopener\" data-wa-kod=\"RV-EN-CLOSING-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\": [{\"@type\": [\"LocalBusiness\", \"Organization\"], \"@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\"}], \"name\": \"Roseville Confinement Villa & Spa\", \"alternateName\": \"Roseville\", \"legalName\": \"Rose Omnicare Sdn Bhd\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/\", \"description\": \"A Shariah-friendly confinement centre and women's spa in Bangi Gateway. A postnatal care centre, not a clinic or hospital.\", \"email\": \"villaroseville@gmail.com\", \"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\", \"logo\": {\"@type\": \"ImageObject\", \"url\": \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2023\/07\/512.png\", \"width\": 468, \"height\": 512}, \"image\": {\"@type\": \"ImageObject\", \"url\": \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-bilik-rose.jpg\", \"width\": 1200, \"height\": 630}, \"contactPoint\": [{\"@type\": \"ContactPoint\", \"telephone\": \"+601155599174\", \"contactType\": \"reservations\", \"availableLanguage\": [\"ms\", \"en\"]}, {\"@type\": \"ContactPoint\", \"telephone\": \"+60389259174\", \"contactType\": \"customer service\", \"availableLanguage\": [\"ms\", \"en\"]}]}, {\"@type\": \"WebSite\", \"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#website\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/\", \"name\": \"Roseville Confinement Villa & Spa\", \"alternateName\": \"Roseville\", \"publisher\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#organization\"}, \"inLanguage\": \"en-US\"}, {\"@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\"}]}, {\"@type\": \"Service\", \"@id\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/#service\", \"name\": \"Closing Confinement Package\", \"serviceType\": \"Postnatal spa package\", \"description\": \"Closing confinement in Bangi Gateway: full-body massage, warm compress, body scrub, herbal bath and sauna by female therapists. Enquire about dates.\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/\", \"provider\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#spa\"}, \"areaServed\": {\"@type\": \"City\", \"name\": \"Bandar Baru Bangi\"}, \"image\": {\"@type\": \"ImageObject\", \"url\": \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-spa.jpg\", \"width\": 1200, \"height\": 630}, \"hasOfferCatalog\": {\"@type\": \"OfferCatalog\", \"name\": \"Included\", \"itemListElement\": [{\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Far-infrared sauna\", \"description\": \"A short dry-heat session.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Foot spa\", \"description\": \"A foot soak and care.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Full-body massage\", \"description\": \"Traditional massage, with pressure to your comfort.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Sengkak\", \"description\": \"Traditional abdominal massage.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Postnatal breast massage\", \"description\": \"A gentle massage for comfort while breastfeeding.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Full-body warm compress\", \"description\": \"A warm compress for the whole body.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Full-body scrub\", \"description\": \"A body scrub.\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Herbal bath\", \"description\": \"A warm herbal bath.\"}}]}}, {\"@type\": \"WebPage\", \"@id\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/#webpage\", \"url\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/\", \"name\": \"Closing Confinement Package in Bangi | Roseville Spa\", \"description\": \"Closing confinement in Bangi Gateway: full-body massage, warm compress, body scrub, herbal bath and sauna by female therapists. Enquire about dates.\", \"isPartOf\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#website\"}, \"about\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#spa\"}, \"publisher\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/#organization\"}, \"primaryImageOfPage\": {\"@type\": \"ImageObject\", \"url\": \"https:\/\/rosevilleconfinement.com\/wp-content\/uploads\/2026\/10\/roseville-og-spa.jpg\", \"width\": 1200, \"height\": 630}, \"inLanguage\": \"en-US\", \"datePublished\": \"2026-10-23\", \"dateModified\": \"2026-11-03\", \"breadcrumb\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/#breadcrumb\"}, \"mainEntity\": {\"@id\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/#service\"}}, {\"@type\": \"BreadcrumbList\", \"@id\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/#breadcrumb\", \"itemListElement\": [{\"@type\": \"ListItem\", \"position\": 1, \"name\": \"Home\", \"item\": \"https:\/\/rosevilleconfinement.com\/en\/\"}, {\"@type\": \"ListItem\", \"position\": 2, \"name\": \"Closing Confinement Package\", \"item\": \"https:\/\/rosevilleconfinement.com\/en\/pakej-penutup-pantang\/\"}]}]}<\/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  $$('.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":7747,"parent":0,"menu_order":11,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-8242","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages\/8242","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=8242"}],"version-history":[{"count":3,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages\/8242\/revisions"}],"predecessor-version":[{"id":8283,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/pages\/8242\/revisions\/8283"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/media\/7747"}],"wp:attachment":[{"href":"https:\/\/rosevilleconfinement.com\/en\/wp-json\/wp\/v2\/media?parent=8242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}