1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <!-- Google Tag Manager --> 6
6<script type="203ab9795843d8aeeec027b7-text/javascript">
vendor: 347 bytes, lines 6-10
6(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 7 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 8 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 9 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 10 })(window,document,'script','dataLayer','
10GTM-TW42BW9
vendor: 3 bytes, line 10
10');
10</script>
10 11 <!-- End Google Tag Manager --> 12 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 13 <title>Book Griha Pravesh E-Puja for Remove Vastu Dosha - 99Pandit</title> 14 <meta name="description" 15 content="Moving into a new home? Book an authentic Griha Pravesh E-Puja with 99Pandit. Expert Vedic rituals, Vastu Shanti, and customized muhurats for your new beginning!"> 16 <meta name="keywords" 17 content="Griha Pravesh Puja E-puja,"> 18 <meta name="robots" content="index, follow"> 19 <meta name="csrf-token" content="E5YvQNflPDP4cXQaIS30goml42rewaH5tFbvHJeK"> 20 <meta http-equiv="Cache-Control" content="public, max-age=31536000, immutable"> 21
21<script src="https://cdn.99pandit.com/app/js/jquery-3.6.0.min.js" type="203ab9795843d8aeeec027b7-text/javascript"></script>
21 22 <link rel="icon" href="https://cdn.99pandit.com/app/img/cropped-99pandit-favi-32x32.png" sizes="32x32"/> 23 24 25 26 <link rel="canonical" href="https://99pandit.com/App/e-puja/griha-pravesh-puja" /> 27 <!-- Preload fonts first --> 28<link rel="preload" as="font" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-solid-900.woff2" type="font/woff2" crossorigin> 29 30<!-- Preload important images --> 31 32 33 34<link rel="preload" as="image" href="https://cdn.99pandit.com/app/img/epuja/new/Griha-Pravesh-e-puja-banner.webp" fetchpriority="high"> 35<link rel="preload" as="image" href="https://cdn.99pandit.com/app/img/epuja/new/satyanarayan-e-puja-banner.webp" fetchpriority="high"> 36 37 38<!-- â Top of <head>: Only 4 important preconnects --> 39<link rel="preconnect" href="https://cdn.99pandit.com" crossorigin> 40<link rel="dns-prefetch" href="https://cdn.99pandit.com"> 41 42 43<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin> 44 45<!-- â¡ Preload Critical JS --> 46<link rel="preload" href="https://cdn.99pandit.com/app/js/swiper-bundle.min.js" as="script"> 47<link rel="preload" href="https://99pandit.com/App/public/Epuja/css/bootstrap.min.css" as="script"> 48 49<!-- â¡ Preload Critical CSS --> 50<link rel="preload" href="https://99pandit.com/App/public/Epuja/css/bootstrap.min.css" as="style"> 51 52<!-- â Load Bootstrap Async -->
vendor: 138 bytes, lines 52-53
52 53<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
53<link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/bootstrap.min.css" 54 onload="this.onload=null;this.rel='stylesheet'"> 55<noscript> 56 <link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/bootstrap.min.css"> 57</noscript> 58 59<!-- â Font Awesome Async (no need to preconnect cdnjs) -->
vendor: 138 bytes, lines 59-60
59 60<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
60<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" 61 as="style" 62 onload="this.onload=null;this.rel='stylesheet'"> 63<noscript> 64 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> 65</noscript> 66 67<!-- â Google Fonts (preload + async apply) -->
vendor: 138 bytes, lines 67-68
67 68<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
68<link rel="preload" 69 as="style" 70 href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Noto+Sans:wght@400;500;700&family=El+Messiri:wght@400;500;700&display=swap" 71 onload="this.onload=null;this.rel='stylesheet'"> 72<noscript> 73 <link rel="stylesheet" 74 href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Noto+Sans:wght@400;500;700&family=El+Messiri:wght@400;500;700&display=swap"> 75</noscript> 76 77<!-- â Preload critical font file (optional if above already covers it) --> 78<link rel="preload" 79 as="font" 80 href="https://fonts.gstatic.com/s/notosans/v42/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a7duw.woff2" 81 type="font/woff2" 82 crossorigin> 83 84 85 86 87 88 89 90 91 <!-- 99Pandit WP Design Tokens / Variables --> 92 <link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/variables.css?v=1.0.5"> 93 94 <!--responsive.css-->
vendor: 141 bytes, lines 94-95
94 95 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
95<link rel="preload" href="https://99pandit.com/App/public/Epuja/css/responsive.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 96<noscript><link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/responsive.css"></noscript> 97 98 99 <!-- Swiper CSS -->
vendor: 140 bytes, lines 99-101
99 100 101<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
101<link rel="preload" href="https://cdn.99pandit.com/app/css/swiper-bundle.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 102<noscript><link rel="stylesheet" href="https://cdn.99pandit.com/app/css/swiper-bundle.min.css"></noscript>
vendor: 144 bytes, lines 102-104
102 103 104 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
104<link rel="preload" href="https://cdn.99pandit.com/app/css/flatpickr.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 105<noscript><link rel="stylesheet" href="https://cdn.99pandit.com/app/css/flatpickr.min.css"></noscript>
vendor: 146 bytes, lines 105-108
105 106 107 108 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49"></script>
108<link rel="preload" href="https://99pandit.com/App/public/Epuja/css/style.css?v=1.0.5" as="style" onload="this.onload=null;this.rel='stylesheet'"> 109<noscript> 110 <link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/style.css?v=1.0.5"> 111</noscript> 112 113<link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/new-footer.css?v=1.0.5"> 114<style type="text/css">@font-face {font-family:'Poppins';font-style:normal;font-weight:300;src:url(/cf-fonts/s/poppins/5.2.7/latin/300/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:300;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/300/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:300;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/300/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/400/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/500/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/500/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/latin/500/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/latin/600/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/600/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/600/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/latin/700/normal.woff2);
114unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/700/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}</style> 115 <!-- Google tag (gtag.js) --> 116 <!--
vendor: 63 bytes, line 116
116<script async src="https://www.googletagmanager.com/gtag/js?id=
116G-XFDQ8G3BJ6
vendor: 11 bytes, line 116
116"></script>
116--> 117
117<script type="203ab9795843d8aeeec027b7-text/javascript"> 118 // window.dataLayer = window.dataLayer || []; 119 120 // function gtag() { 121 // dataLayer.push(arguments); 122 // } 123 124 // gtag('js', new Date()); 125 // gtag('config', 'G-XFDQ8G3BJ6'); 126 </script>
126 127 128
128<script type="203ab9795843d8aeeec027b7-text/javascript"> 129 // (function (c, l, a, r, i, t, y) { 130 // c[a] = c[a] || function () { 131 // (c[a].q = c[a].q || []).push(arguments) 132 // }; 133 // t = l.createElement(r); 134 // t.async = 1; 135 // t.src = "https://www.clarity.ms/tag/" + i; 136 // y = l.getElementsByTagName(r)[0]; 137 // y.parentNode.insertBefore(t, y); 138 // })(window, document, "clarity", "script", "l0yts6kd2f"); 139 </script>
139 140 <!-- â Delay Google Tag Manager (gtag) -->
141<script type="203ab9795843d8aeeec027b7-text/javascript"> 142window.addEventListener('load', function() { 143 144 /* ð¹ Delay Google Tag Manager (Analytics) */ 145 setTimeout(function() { 146 var gtagScript = document.createElement('script'); 147 gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-XFDQ8G3BJ6"; 148 gtagScript.async = true; 149 document.head.appendChild(gtagScript); 150 151
vendor: 144 bytes, lines 151-154
151window.dataLayer = window.dataLayer || []; 152 function gtag(){ dataLayer.push(arguments); } 153 gtag('js', new Date()); 154 gtag('config', '
154G-XFDQ8G3BJ6
vendor: 7 bytes, lines 154-155
154'); 155
155}, 5000); // 3 seconds delay 156 157 /* ð¹ Delay Microsoft Clarity */ 158 setTimeout(function() { 159 (function(c, l, a, r, i, t, y) { 160 c[a] = c[a] || function() { 161 (c[a].q = c[a].q || []).push(arguments); 162 }; 163 t = l.createElement(r); 164 t.async = 1; 165 t.src = "https://www.clarity.ms/tag/" + i; 166 y = l.getElementsByTagName(r)[0]; 167 y.parentNode.insertBefore(t, y); 168 })(window, document, "clarity", "script", "l0yts6kd2f"); 169 }, 5000); // Clarity load after 4 seconds 170 171}); 172</script>
172
173<script type="203ab9795843d8aeeec027b7-text/javascript"> 174(function(n,i,t,r,o) { 175var a,m;n['NitroObject']=o;n[o]=n[o]||function(){ 176(n[o].q=n[o].q||[]).push(arguments)},n[o].l=1*new 177Date();n[o].h=r;a=i.createElement(t), 178m=i.getElementsByTagName(t)[0];a.async=1;a.src=r;m.parentNode. 179insertBefore(a,m) 180})(window,document,'script','https://x.nitrocommerce.ai/nitro.js','nitro'); 181nitro('configure', '43402e0c-6b82-4f99-88f9-5f71e64252c2'); 182</script>
182 183 184 185 186<style> 187 /*website loader css*/ 188.main-loader { 189 position: fixed; /* cover entire screen */ 190 top: 0; 191 left: 0; 192 height: 100%; 193 width: 100%; 194 margin: 0; 195 display: flex; 196 justify-content: center; 197 align-items: center; 198 background: rgba(0, 0, 0, 0.5); /* ðŸâÂ¥ Modal-style dark overlay */ 199 /* Adjust last value for transparency: 200 0.3 = lighter, 0.7 = darker */ 201 z-index: 9999999; 202 transition: opacity 0.5s ease; 203 } 204 205 .main-loader-item { 206 text-align: center; 207 } 208 209 /* Percentage text ABOVE the progress bar */ 210 .progress-percent { 211 font-size: 16px; 212 font-weight: bold; 213 color: #ffffff; /* White text for dark backdrop */ 214 margin-bottom: 6px; 215 display: block; 216 font-family: "Noto Sans", sans-serif; 217 margin-top: 6px; 218 } 219 220 /* Progress bar container */ 221 .loader-progressbar { 222 width: 180px; 223 height: 7px; 224 background: rgba(255,255,255,0.2); /* subtle bar background */ 225 border-radius: 10px; 226 overflow: hidden; 227 position: relative; 228 box-shadow: inset 0 0 5px rgba(0,0,0,0.3); 229 } 230 231 /* Progress fill */ 232 .progress-fill { 233 width: 0%; 234 height: 100%; 235 background: #7e1515; /* Progress color */ 236 transition: width 0.3s ease; 237 border-radius: 10px 0 0 10px; 238 } 239/* body {*/ 240/* overflow-y: hidden !important;*/ 241/*}*/ 242 243.mobile-swiper{ 244 display: none; 245} 246 247.banner-swiper .swiper-slide { 248 display: block; 249 250} 251 252/* Extra Small Mobile (320px and below) */ 253@media only screen and (max-width: 768px) { 254 /* Show only one slider depending on device */ 255.desktop-swiper { display: block; } 256.mobile-swiper { display: none; } 257 258@media (max-width: 768px) { 259 .desktop-swiper { display: none; } 260 .mobile-swiper { display: block; } 261} 262} 263 264@font-face { 265 font-family: "Font Awesome 6 Free"; 266 font-weight: 900; 267 font-display: swap; 268 src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-solid-900.woff2") format("woff2"); 269} 270 271/* WhatsApp float button â global so it works even on pages that exclude e-puja.css. 272 Icon-only by default; text pill slides in on hover. */ 273.whatsapp-float { 274 position: fixed; 275 bottom: 20px; 276 right: 20px; 277 z-index: 1000; 278 display: flex;
279 align-items: center; 280} 281 282.whatsapp-float img { 283 width: 50px; 284 height: 50px; 285 border-radius: 50%; 286 background: #25d366; 287 padding: 5px; 288 box-shadow: 0 4px 14px rgba(0, 0, 0, .25); 289 transition: transform .3s ease; 290 position: relative; 291 z-index: 1; 292} 293 294.whatsapp-text { 295 display: flex; 296 align-items: center; 297 font-size: 14px; 298 color: #fff; 299 background: #25d366; 300 padding: 8px 16px 8px 14px; 301 border-radius: 20px; 302 margin-right: -22px; 303 padding-right: 30px; 304 white-space: nowrap; 305 box-shadow: 0 4px 14px rgba(0, 0, 0, .2); 306 opacity: 0; 307 max-width: 0; 308 overflow: hidden; 309 transform: translateX(12px); 310 transition: opacity .35s ease, transform .35s ease, max-width .35s ease, margin-right .35s ease, padding .35s ease; 311 pointer-events: none; 312} 313 314.whatsapp-float:hover .whatsapp-text, 315.whatsapp-float.show-text .whatsapp-text { 316 opacity: 1; 317 max-width: 220px; 318 margin-right: 10px; 319 transform: translateX(0); 320 pointer-events: auto; 321} 322 323.whatsapp-float:hover img { 324 transform: scale(1.08); 325} 326 327.close-btn-2 { 328 margin-left: 8px; 329 cursor: pointer; 330 font-weight: 700; 331 background: rgba(0, 0, 0, .3); 332 border-radius: 50%; 333 width: 18px; 334 height: 18px; 335 display: flex;
336 align-items: center; 337 justify-content: center; 338 transition: background .3s ease; 339 flex-shrink: 0; 340} 341 342.close-btn-2:hover { 343 background: rgba(0, 0, 0, .6); 344} 345 346@media (max-width: 767px) { 347 .whatsapp-float { 348 bottom: 70px; 349 } 350} 351</style> 352 353 <link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/components/video-cta.css?v=1790249107"> 354 <link rel="stylesheet" href="https://99pandit.com/App/public/Epuja/css/pages/e-puja/show.css?v=1790249107"> 355 </head> 356<body> 357 <!-- Google Tag Manager (noscript) -->
vendor: 73 bytes, lines 357-358
357 358 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
358GTM-TW42BW9
vendor: 93 bytes, lines 358-360
358" 359 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 360
360<!-- End Google Tag Manager (noscript) --> 361 <div class="use-jquery"></div> 362 363<nav class="navbar navbar-expand-lg navbar-light fixed-top header"> 364 <div class="container-fluid"> 365 <a class="navbar-brand" href="https://99pandit.com"> 366 <img src="https://cdn.99pandit.com/99pandit_newhome/mobileimages/pandit-logo-mobile_2.webp" class="main_logo img-fluid" 367 loading="lazy" alt="99 Pandit" style="height:65px;" width="100%" height="100%"> 368 </a> 369 <div class="applogo-menubtn"> 370 <div class="playstore-apple-logo me-2"> 371 <a href="https://shop.99pandit.com/" target="_blank"><img width="30" height="100%" 372 src="https://cdn.99pandit.com/images/headerimg/cart_2.webp" 373 alt="Shop 99pandit"> </a> 374 <a href="https://play.google.com/store/search?q=99pandit+for+users&c=apps" target="_blank"><img 375 width="28" height="100%" class="ms-2" src="https://cdn.99pandit.com/images/headerimg/playstore_1.webp" 376 alt="Play Store Logo"> </a> 377 <a href="https://apps.apple.com/in/app/99pandit/id6473841676" target="_blank"> 378 <img width="27" height="100%" class="ms-2" src="https://cdn.99pandit.com/images/headerimg/apple_1.webp" 379 alt="App Store Logo" loading="eager" decoding="async" loading="lazy" fetchpriority="high"></a> 380 </div> 381 382 <div class="cart-icon mobile_cart me-2"> 383 <a href="https://99pandit.com/App/puja/cart" 384 class="btn btn-outline-primary position-relative header-cart"> 385 <i class="fas fa-shopping-cart" style="line-height:1.75!important"></i> 386 </a> 387 </div> 388 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" 389 data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" 390 aria-expanded="false" aria-label="Toggle navigation"> 391 <span class="navbar-toggler-icon"></span> 392 </button> 393 </div> 394 <div class="collapse navbar-collapse" id="navbarSupportedContent"> 395 <ul class="ms-auto"> 396 <!--<li class="nav-item ms-auto" style="list-style:none">--> 397 <!-- <a class="nav-link nav-color city-nav" aria-current="page" href="#" data-bs-toggle="modal" data-bs-target="#citiesmodal" style="color:#fff !important;background:#7e1515;border-radius:5px; font-size: 14px;">Cities</a>--> 398 <!--</li>--> 399 </ul> 400 <ul class="navbar-nav mb-2 mb-lg-0"> 401 <li class="nav-item e-puja-nav-item "> 402 <a href="https://99pandit.com/" class="nav-link nav-color">Home</a> 403 </li> 404 <li class="nav-item e-puja-nav-item "> 405 <a href="https://99pandit.com/App/celebration-pujas" class="nav-link nav-color">Celebration Pujas</a> 406 </li> 407 <li class="nav-item e-puja-nav-item "> 408 <a href="https://99pandit.com/App/group-puja" class="nav-link nav-color">Group Puja</a> 409 </li> 410 <li class="nav-item e-puja-nav-item "> 411 <a href="https://99pandit.com/App/chadhava" class="nav-link nav-color">Chadhava</a> 412 </li> 413 <li class="nav-item e-puja-nav-item active"> 414 <a href="https://99pandit.com/App/e-puja" class="nav-link nav-color">E-Puja</a> 415 </li> 416 <li class="nav-item e-puja-nav-item dropdown "> 417 <span class="nav-link nav-color nav-link nav-color dropdown-toggle">Astrology </span> 418 419 <ul class="sub-menu dropdown-menu"> 420 <li class="nav-item astrology-nav"> 421 <a href="https://99pandit.com/App/astrology" class="nav-link nav-color dropdown-item" target="_blank">Astrology</a> 422 </li> 423 <li class="nav-item astrology-nav"> 424 <a href="https://99pandit.com/App/numerology" 425 class="nav-link nav-color dropdown-item" 426 target="_blank"> 427 Numerology 428 </a> 429 </li> 430 431 <li class="nav-item astrology-nav"> 432 <a href="https://99pandit.com/App/horoscope" 433 class="nav-link nav-color dropdown-item" 434 target="_blank"> 435 Daily Horoscope 436 </a> 437 </li> 438 <li class="nav-item astrology-nav"> 439 <a href="https://99pandit.com/App/love-calculator" 440 class="nav-link nav-color dropdown-item" 441 target="_blank" 442 rel="noopener noreferrer"> 443 Love Calculator 444 </a> 445 </li> 446 447 <li class="nav-item astrology-nav"> 448 <a href="https://99pandit.com/App/age-calculator" 449 class="nav-link nav-color dropdown-item" 450 target="_blank" 451 rel="noopener noreferrer"> 452 Age Calculator 453 </a> 454 </li> 455 <li class="nav-item astrology-nav"> 456 <a href="https://99pandit.com/App/mulank-calculator" 457 class="nav-link nav-color dropdown-item" 458 target="_blank" 459 rel="noopener noreferrer"> 460 Mulank Calculator 461 </a> 462 </li> 463 <li class="nav-item astrology-nav"> 464 <a href="https://99pandit.com/App/destiny-number-calculator" 465 class="nav-link nav-color dropdown-item" 466 target="_blank" 467 rel="noopener noreferrer"> 468 Destiny Number Calculator 469 </a> 470 </li> 471 <li class="nav-item astrology-nav"> 472 <a href="https://99pandit.com/kundali" class="nav-link nav-color dropdown-item" target="_blank">Kundali 473 us</a> 474 </li> 475 <li class="nav-item astrology-nav"> 476 <a href="https://99pandit.com/match-making/" class="nav-link nav-color dropdown-item" target="_blank">Match Making 477 Us</a> 478 </li> 479 </ul> 480 481 </li> 482 483 484 <li class="nav-item e-puja-nav-item dropdown "> 485 <a href="https://99pandit.com/about-us/" class="nav-link nav-color dropdown-toggle">About us</a> 486 <ul class="sub-menu dropdown-menu"> 487 <li class="nav-item "> 488 <a href="https://99pandit.com/about-us/" class="nav-link nav-color dropdown-item" target="_blank">About 489 us</a> 490 </li> 491 <li class="nav-item "> 492 <a href="https://99pandit.com/contact-us/" class="nav-link nav-color dropdown-item" target="_blank">Contact 493 Us</a> 494 </li> 495 <li class="nav-item "> 496 <a href="https://99pandit.com/faq/" class="nav-link nav-color dropdown-item" target="_blank">FAQ</a> 497 </li> 498 </ul> 499 </li> 500 501 502 503 <!--<ul class="navbar-nav ms-auto">--> 504 <!-- User is not logged in --> 505 <li class="nav-item e-puja-nav-item me-3 "> 506 <a class="nav-link nav-color" href="https://99pandit.com/App/login"> 507 User Login 508 </a> 509 </li> 510 <!--</ul>--> 511 512 <div class="cart-icon desktop_cart"> 513 <a href="https://99pandit.com/App/puja/cart" 514 class="btn btn-outline-primary position-relative header-cart"> 515 <i class="fas fa-shopping-cart" style="line-height:1.75!important"></i> 516 </a> 517 </div> 518 519 <!--<div class="cart-icon">--> 520 <!-- <a href="https://widget.99pandit.com/App/puja/cart/c18a0fb6-7ca1-4474-be7b-600dcd45235d" class="btn btn-outline-primary position-relative header-cart">--> 521 <!-- <i class="fas fa-shopping-cart"></i>-->
522 <!-- <span>--> 523 <!-- 1--> 524 <!-- </span>--> 525 <!-- </a>--> 526 <!--</div>--> 527 </ul> 528 </div> 529 </div> 530</nav> 531 532 533<div class="whatsapp-float" id="whatsappBox"> 534 <span class="whatsapp-text" id="whatsappText"> 535 Need Help? Chat with us 536 <span class="close-btn-2" id="closeBtn">×</span> 537 </span> 538 <a href="https://wa.me/916378477971" target="_blank"> 539 <img width="50" height="100%" src="https://cdn.99pandit.com/app/css/WhatsApp.svg" alt="WhatsApp" /> 540 </a> 541 </div> 542 543 544 545 546 547 <section class="service-single leaf-bg ng-scope py-3" ng-controller="AppController"> 548 <div class="container"> 549 <!-- Breadcrumbs --> 550 <p class="puja-breadcrumbs mb-2"> 551 <a href="https://99pandit.com/App">Home</a> / 552 <a href="https://99pandit.com/App/e-puja">E-Puja</a> / 553 <span>Griha Pravesh Puja</span> 554 </p> 555 556 <div class="row g-4"> 557 <!-- Left Column: Image + Why e-Puja card --> 558 <div class="col-lg-5 col-md-6 text-center"> 559 <div class="px-lg-3"> 560 <!-- Main Banner Image --> 561 <div class="puja-image-gallery mb-3"> 562 <img src="https://cdn.99pandit.com/app/puja-images/99pandit-user-app-images/Griha-Pravesh-E-Puja-main.jpg" class="img-fluid rounded-3 shadow-sm square-image" alt="Griha Pravesh Puja"> 563 </div> 564 </div> 565 </div> 566 567 <!-- Right Column: Sticky Booking Details Card --> 568 <div class="col-lg-7 col-md-6"> 569 <div class="sticky-booking-card sticky-lg-top add_to_cart_item" style="top: 24px; z-index: 100;"> 570 <div class="mb-3 pb-2 border-bottom"> 571 <div class="d-flex justify-content-between align-items-start gap-2"> 572 <h5 class="fw-bold mb-0 text-dark" style="font-size: 1.1rem; line-height: 1.3;">Griha Pravesh Puja</h5> 573 <span class="badge-epuja-right" style="flex-shrink: 0;">e-Puja</span> 574 </div> 575 </div> 576 577 <!-- Booking pricing and form --> 578 <form id="puja-language-form"> 579 <input type="hidden" name="_token" value="E5YvQNflPDP4cXQaIS30goml42rewaH5tFbvHJeK" autocomplete="off"> <input type="hidden" name="cart_token" value="92efd2aa-1761-4aa1-a243-505534b585ac"> 580 <input type="hidden" name="service_id" value="7"> 581 <input type="hidden" name="usd_price" value="200"> 582 583 <!-- Overall Rating --> 584 <div class="d-flex align-items-center gap-2 mb-3"> 585 <div class="review-stars-wrap"> 586 <span class="star ">★</span> 587 <span class="star ">★</span> 588 <span class="star ">★</span> 589 <span class="star ">★</span> 590 <span class="star ">★</span> 591 </div> 592 <span class="fw-bold text-dark" style="font-size: 0.9rem;">4.8</span>
593 <span class="text-muted small">(4 ratings)</span> 594 <a href="#reviewsSection" class="see-all-reviews-link ms-1" onclick="if (!window.__cfRLUnblockHandlers) return false; event.preventDefault(); document.getElementById('reviewsSection')?.scrollIntoView({behavior: 'smooth'});" data-cf-modified-203ab9795843d8aeeec027b7-="">See all reviews</a> 595 </div> 596 597 <!-- Pricing box --> 598 <div class="pricing-container p-2.5 rounded-3 mb-3" style="background-color: #fafbfc; border: 1px solid #eef2f5;"> 599 <div class="d-flex align-items-baseline gap-2 flex-wrap"> 600 <span class="fs-4 fw-bold text-orange">$200.00</span> 601 <span class="text-decoration-line-through text-muted small">$699.00</span> 602 <span class="badge bg-success-subtle text-success ms-1" style="font-size: 0.72rem;">71% OFF</span> 603 </div> 604 </div> 605 606 <div class="row mb-3"> 607 <!-- Language Select Dropdown --> 608 <div class="col-sm-6"> 609 <label class="form-label fw-bold text-secondary mb-1" for="language" style="font-size: 0.82rem;">Select Language for puja</label> 610 <select class="form-select form-select-sm" name="language_id" id="language" required style="font-weight: 500;"> 611 <option value="5108" 612 selected> 613 Hindi 614 </option> 615 </select> 616 <span class="text-danger small mt-1 d-block" id="error-language_id" style="font-size: 0.75rem;"> 617 </span> 618 </div> 619 620 <!-- Preferred Date --> 621 <div class="col-sm-6 mt-3 mt-sm-0"> 622 <label class="form-label fw-bold text-secondary mb-1" for="calendarInput" style="font-size: 0.82rem;">Preferred Date</label> 623 <div class="position-relative select-date"> 624 <input type="text" 625 id="calendarInput" 626 class="form-control form-control-sm with-icon date-input" 627 placeholder="DD/MM/YYYY" 628 name="preferred_date" 629 value="" 630 > 631 <i class="fas fa-calendar-alt calendar-icon" onclick="if (!window.__cfRLUnblockHandlers) return false; (function(el){el._flatpickr && el._flatpickr.open()})(document.getElementById('calendarInput'))" data-cf-modified-203ab9795843d8aeeec027b7-=""></i> 632 </div> 633 <span class="text-danger small mt-1 d-block" id="error-date" style="font-size: 0.75rem;"></span> 634 </div> 635 </div> 636 637 <!-- Action button --> 638 <div class="booking-action-btn"> 639 <button type="button" id="add-to-cart-btn" class="btn btn-orange btn-sm w-100 py-2 fw-bold rounded-2 add-to-cart-btn text-white" onclick="if (!window.__cfRLUnblockHandlers) return false; submitCartForm()" style="font-size: 0.88rem;" data-cf-modified-203ab9795843d8aeeec027b7-=""> 640 <i class="fas fa-shopping-cart me-1"></i>Add to Cart 641 </button> 642 </div> 643 </form> 644 645 <!-- Features list --> 646 <div class="booking-features-wrap mt-3 mb-3"> 647 <div class="row g-0 booking-feature-table"> 648 <!-- Duration --> 649 <div class="col-6 booking-feature-cell text-center"> 650 <div class="d-flex align-items-center justify-content-center mb-1"> 651 <div class="booking-feature-icon me-1 flex-shrink-0"> 652 <i class="far fa-clock"></i> 653 </div>
654 <span class="text-secondary text-truncate" style="font-size: 0.85rem;">Duration</span> 655 </div> 656 <strong class="text-dark text-truncate d-block" style="font-size: 0.9rem;">30 Minutes</strong> 657 </div> 658 659 <!-- Mode --> 660 <div class="col-6 booking-feature-cell text-center"> 661 <div class="d-flex align-items-center justify-content-center mb-1"> 662 <div class="booking-feature-icon me-1 flex-shrink-0"> 663 <i class="fas fa-video"></i> 664 </div> 665 <span class="text-secondary text-truncate" style="font-size: 0.85rem;">Mode</span> 666 </div> 667 <strong class="text-dark text-truncate d-block" style="font-size: 0.9rem;">Online (Live)</strong> 668 </div> 669 </div> 670 </div> 671 672 <!-- Social links --> 673 <div class="mt-3 pt-2 border-top d-flex align-items-center justify-content-between"> 674 <span class="text-muted small fw-semibold" style="font-size: 0.75rem;">Share with family:</span> 675 <ul class="social-links d-flex list-unstyled gap-2 mb-0"> 676 <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/99pandit"> 677 <li class="ion-circle" style="background-color: #3b5998; color: white; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;"><i class="fab fa-facebook-f fa-xs"></i></li> 678 </a> 679 <a target="_blank" rel="noopener noreferrer" href="" class="pl-2"> 680 <li class="ion-circle" style="background-color: #1da1f2; color: white; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;"><i class="fab fa-twitter fa-xs"></i></li> 681 </a> 682 <a target="_blank" rel="noopener noreferrer" href="https://www.instagram.com/99panditpuja/"> 683 <li class="ion-circle" style="background-color: #e1306c; color: white; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;"><i class="fab fa-instagram fa-xs"></i></li> 684 </a> 685 <a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/channel/UCGH1GXsKjVIw-mD4Qvz1FsQ" class="pl-2"> 686 <li class="ion-circle" style="background-color: #ff0000; color: white; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;"><i class="fab fa-youtube fa-xs"></i></li> 687 </a> 688 </ul> 689 </div> 690 </div> 691 </div> 692 </div> 693 694 <!-- Video CTA: How e-Puja Works + Customer Video Reviews --> 695 696 697 <div class="vcta-bar mt-4"> 698 699 <div class="vcta-heading">See How e-Puja Works</div> 700 701 <div class="vcta-inner"> 702 703 704 <div class="vcta-col vcta-col-left"> 705 <div class="vcta-pill"> 706 <span class="vcta-pill-title">See How e-Puja Works</span> 707 <button type="button" class="vcta-watch-btn" onclick="if (!window.__cfRLUnblockHandlers) return false; openVideoModal('ZI1BIxS4M1M', 'How e-Puja Works')" data-cf-modified-203ab9795843d8aeeec027b7-="">
708 <span class="vcta-play-icon"><i class="fas fa-play"></i></span> 709 <span class="vcta-watch-label">Watch Video</span> 710 </button> 711 </div> 712 </div> 713 714 <div class="vcta-sep"></div> 715 716 717 <div class="vcta-col vcta-col-mid"> 718 <style> 719 .grb-badge { 720 display: inline-flex; 721 align-items: center; 722 gap: 8px; 723 background: #ffffff; 724 border: 1px solid rgba(26, 43, 60, 0.1); 725 border-radius: 8px; 726 padding: 6px 12px; 727 line-height: 1; 728 text-decoration: none; 729 color: inherit; 730 cursor: pointer; 731 transition: transform 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease; 732 } 733 .grb-badge:hover, 734 .grb-badge:focus { 735 text-decoration: none; 736 color: inherit; 737 opacity: 0.9; 738 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); 739 transform: translateY(-1px); 740 } 741 .grb-badge .grb-google-icon { 742 width: 28px; 743 height: 28px; 744 object-fit: contain; 745 flex-shrink: 0; 746 } 747 .grb-badge .grb-rating { 748 display: inline-flex; 749 align-items: center; 750 gap: 3px; 751 font-size: 0.95rem; 752 font-weight: 800; 753 color: #1a2b3c; 754 } 755 .grb-badge .grb-star-icon { 756 color: #fbbc04; 757 font-size: 0.8rem; 758 } 759 .grb-badge .grb-count { 760 font-size: 0.8rem; 761 color: #5f6368; 762 white-space: nowrap; 763 } 764 </style> 765<a href="https://local.google.com/place?placeid=ChIJhwj9AtsTrjsR3lpxCUvmgMk&utm_medium=noren&utm_source=gbp&utm_campaign=2026" target="_blank" rel="noopener noreferrer" class="grb-badge" aria-label="View 99Pandit Google Reviews (4.9 stars, 108 reviews)"> 766 <img src="https://cdn.99pandit.com/img/google.png" alt="Google" class="grb-google-icon"> 767 <span class="grb-rating"> 768 4.9 769 <i class="fas fa-star grb-star-icon" aria-hidden="true"></i> 770 </span> 771 <span class="grb-count">(108 reviews by devotees)</span> 772</a> 773 </div> 774 775 <div class="vcta-sep"></div> 776 777 778 <div class="vcta-col vcta-col-right"> 779 <span class="vcta-reviews-label">See what our customers are saying :</span> 780 <button type="button" class="vcta-avatars-btn" onclick="if (!window.__cfRLUnblockHandlers) return false; openVideoCarousel(0)" aria-label="Watch customer reviews" data-cf-modified-203ab9795843d8aeeec027b7-=""> 781 <span class="vcta-avatar-stack"> 782 <img src="https://cdn.99pandit.com/99pandit_newhome/e-puja-banner/reviewer/Deenesh-kumar.png" alt="Deenesh Kumar" class="vcta-avatar"> 783 <img src="https://cdn.99pandit.com/99pandit_newhome/e-puja-banner/reviewer/rudra.png" alt="Rudra" class="vcta-avatar"> 784 <img src="https://cdn.99pandit.com/99pandit_newhome/e-puja-banner/reviewer/Ganesh.png" alt="Ganesh" class="vcta-avatar"> 785 <img src="https://cdn.99pandit.com/99pandit_newhome/e-puja-banner/reviewer/nitin-goyal.png" alt="Nitin Goyal" class="vcta-avatar"> 786 </span> 787 <span class="vcta-arrow"><i class="fas fa-chevron-right"></i></span> 788 </button> 789 </div> 790 791 </div> 792 </div> 793 794 <!-- Video Modal --> 795 <div id="videoModal" class="video-modal-overlay" onclick="if (!window.__cfRLUnblockHandlers) return false; if(event.target === this) closeVideoModal()" data-cf-modified-203ab9795843d8aeeec027b7-=""> 796 <div class="video-modal-box"> 797 <button type="button" class="video-modal-close" onclick="if (!window.__cfRLUnblockHandlers) return false; closeVideoModal()" aria-label="Close" data-cf-modified-203ab9795843d8aeeec027b7-=""> 798 <i class="fas fa-times"></i> 799 </button> 800 <button type="button" class="video-modal-nav video-modal-prev" onclick="if (!window.__cfRLUnblockHandlers) return false; carouselPrev()" aria-label="Previous" data-cf-modified-203ab9795843d8aeeec027b7-=""> 801 <i class="fas fa-chevron-left"></i> 802 </button> 803 <button type="button" class="video-modal-nav video-modal-next" onclick="if (!window.__cfRLUnblockHandlers) return false; carouselNext()" aria-label="Next" data-cf-modified-203ab9795843d8aeeec027b7-=""> 804 <i class="fas fa-chevron-right"></i> 805 </button> 806 <h5 id="videoModalTitle" class="video-modal-title"></h5> 807 <div class="video-modal-frame-wrap"> 808 <iframe id="videoModalFrame" src="" title="Video player" frameborder="0" 809 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 810 allowfullscreen></iframe> 811 </div> 812 </div> 813 </div> 814 815 <!-- Info Row: Why Book e-Puja, Benefits, What is e-Puja --> 816 <div class="row g-4 mt-1"> 817 <!-- Why Book e-Puja Online --> 818 <div class="col-md-4"> 819 <div class="why-puja-card h-100">
820 <span class="why-puja-corner why-puja-corner-tl"></span> 821 <span class="why-puja-corner why-puja-corner-tr"></span> 822 <span class="why-puja-corner why-puja-corner-bl"></span> 823 <span class="why-puja-corner why-puja-corner-br"></span> 824 <div class="why-puja-inner"> 825 <div class="why-puja-icon"><i class="fas fa-om"></i></div> 826 <h5 class="why-puja-title">Why Book e-Puja Online?</h5> 827 <div class="why-puja-divider"></div> 828 <div class="why-puja-stat">Live 1-on-1 Puja</div> 829 <div class="why-puja-stat" style="font-size: 1rem; color: #198754;">Save up to <span style="color: #198754;">65%</span> on cost</div> 830 <p class="why-puja-text mb-0"> 831 Get your puja performed live over video call by a verified, experienced Vedic pandit â the same authentic rituals and mantras, from the comfort of your home, at a time that works for you. 832 </p> 833 </div> 834 </div> 835 </div> 836 837 <!-- What is e-Puja --> 838 <div class="col-md-4"> 839 <div class="why-puja-card h-100" style="max-width: 100%;"> 840 <span class="why-puja-corner why-puja-corner-tl"></span> 841 <span class="why-puja-corner why-puja-corner-tr"></span> 842 <span class="why-puja-corner why-puja-corner-bl"></span> 843 <span class="why-puja-corner why-puja-corner-br"></span> 844 <div class="why-puja-inner"> 845 <div class="why-puja-icon"><i class="fas fa-video"></i></div> 846 <h5 class="why-puja-title">What is e-Puja?</h5> 847 <div class="why-puja-divider"></div> 848 <p class="why-puja-text mb-0"> 849 e-Puja is a personalized ritual performed live by a verified Vedic pandit over video call, especially for you â the same authentic rituals and mantras as an in-person puja, at your chosen date and time. 850 </p> 851 </div> 852 </div> 853 </div> 854 855 <!-- Benefits --> 856 </div> 857 858 <!-- Sequentialized Sections --> 859 <div class="row mt-4"> 860 <div class="col-lg-12 col-md-12"> 861 862 <!-- Section: Puja Preparation Guide --> 863 864 <!-- Section: Puja Details (Description + Rich Text) --> 865 <div class="puja-section-card"> 866 <h4 class="puja-section-title text-center" style="text-align: center;">Puja Details</h4> 867 <div class="puja-collapsible-wrap position-relative mt-2"> 868 <div class="puja-collapsible package-details-text"> 869 <p>Entering a new home is one of the biggest milestones in life. To ensure your new space is filled with positive energy, peace, and happiness, performing a <strong>Griha Pravesh Puja</strong> is essential.</p> 870 871<p>At 99Pandit, we help you perform this sacred ritual through our specialized e-puja services, bringing the blessings of expert Vedic pandits directly to your doorstep, no matter where you are.</p> 872 <hr> 873 <p><strong>City</strong>: 99pandit Pooja Center (E-Puja)<br /> 874<strong>Priest Preference</strong>: Your selected language<br /> 875<strong>Pooja Location</strong>: Watch Live / Recording<br /> 876<strong>Pooja Name</strong>: Griha Pravesh E-Puja</p> 877 878<hr /> 879<p><strong>What is Online Griha Pravesh Puja?</strong></p> 880 881<p>Online Griha Pravesh Puja is a modern and convenient way to perform the traditional Hindu
881<strong>housewarming ritual through digital platforms</strong>. It is a sacred ceremony conducted before you start living in a new house to seek blessings from the divine powers.</p> 882 883<p>This virtual service allows you to connect with expert Vedic pandits from holy cities like Ujjain or Kashi right from your living room.</p> 884 885<p>The core of the ceremony remains deeply traditional even in the online format. It involves worshipping Lord Ganesha to remove any potential obstacles and honouring the Vastu Purush to ensure the architectural soul of the house is at peace.</p> 886 887<p>Whether you have bought a newly constructed villa, moved into a renovated flat, or just shifted to a rented apartment, this puja purifies your surroundings. <strong>Through a high-quality video call</strong>, the pandit guides you through every step of the rituals, from the initial Sankalp to the final Aarti.</p> 888 889<p>It is the perfect solution for families who live far from their native places or struggle to find authentic pandits locally. This digital transition ensures that the spiritual energy of your new home is balanced and ready for a peaceful, happy life.</p> 890 891<hr /> 892<p><strong>Why is Griha Pravesh E-Puja Important for a new home?</strong></p> 893 894<p>Performing a housewarming ceremony is not just a tradition but a spiritual necessity for many reasons. Here is why you should consider it:</p> 895 896<ul> 897 <li>It purifies the home by removing any negative energy or "<strong>Vastu Dosha</strong>" left behind during the construction process.</li> 898 <li>The chanting of Vedic mantras brings mental peace and spiritual protection to the family members.</li> 899 <li>It invites Goddess Lakshmi into the house to ensure that there is never a shortage of wealth or food.</li> 900 <li>The ritual acts as a shield against evil eyes and keeps the household away from misfortunes.</li> 901 <li>It provides a sense of closure and a fresh start, making the transition to a new place joyful and stress-free.</li> 902</ul> 903 904<hr /> 905<p><strong>How To Book Griha Pravesh E-Puja?</strong></p> 906 907<p>Booking your ceremony with 99Pandit is quick and stress-free. Follow these simple steps:</p> 908 909<ol> 910 <li>Visit our website and select the <strong>Griha Pravesh E-Puja</strong> package.</li> 911 <li>Fill in your details like your name, current location, and your native language.</li> 912 <li>Choose an auspicious date based on your convenience or consult our pandits for a<strong> Shubh Muhura</strong>t.</li> 913 <li>Once confirmed, our team will share the list of simple items (Samagri) you need to keep ready.</li> 914 <li>On the day of the puja, <strong>connect with our Pandit ji via a high-quality video call </strong>to begin the rituals.</li> 915</ol> 916 917<hr /> 918<p><strong>Significance of Griha Pravesh E-Puja</strong></p> 919 920<p>According to ancient scriptures, a new house may have negative energies or Vastu defects left behind by the construction process. The Griha Pravesh ceremony is performed to:</p> 921 922<ul> 923 <li>Purify the environment of the house.</li> 924 <li>Seek blessings from Lord Ganesha and Vastu Purush.</li> 925 <li>Protect the family from evil eyes and negative vibes.</li> 926 <li>Invite wealth, health, and harmony into the new living space.</li> 927</ul> 928 929<hr /> 930<p><strong>Benefits Of Performing Griha Pravesh E-Puja</strong></p> 931 932<ul> 933 <li>Booking an e-puja for griha pravesh dispels any harmful energies and sets up a positive environment.</li> 934 <li>Offerings are made to the deity to seek the blessings for the well-being of the family and the success of the new house.</li> 935 <li>The puja honors the vastu purush and ensures harmony in the home.</li> 936 <li>It boosts positive energies and strengthens the bond between family members.</li> 937 <li>The ritual is considered to cleanse the space of any evil force that may enter before you move. Ensures a clean slate for the members.</li> 938 <li>Marks a new beginning and formal entry into the new home.</li> 939</ul> 940 </div> 941 <div class="puja-collapsible-fade"></div> 942 </div> 943 <div class="text-center mt-3"> 944 <button class="btn btn-outline-orange px-4 roun
944ded-pill puja-toggle-btn" type="button">See More</button> 945 </div> 946 </div> 947 948 <!-- Section: Gallery --> 949 <div class="puja-section-card"> 950 <h4 class="puja-section-title">Gallery</h4> 951 <div class="swiper gallery-swiper mt-3"> 952 <div class="swiper-wrapper"> 953 <div class="swiper-slide"> 954 <img src="https://cdn.99pandit.com/app/puja-images/99pandit-user-app-images/Griha-Pravesh-E-Puja-1.jpg" class="img-fluid rounded shadow-sm" alt="Gallery Image"> 955 </div> 956 <div class="swiper-slide"> 957 <img src="https://cdn.99pandit.com/app/puja-images/99pandit-user-app-images/Griha-Pravesh-E-Puja-2.jpg" class="img-fluid rounded shadow-sm" alt="Gallery Image"> 958 </div> 959 </div> 960 <div class="swiper-pagination"></div> 961 </div> 962 </div> 963 964 <!-- Section: FAQs --> 965 <div class="puja-section-card"> 966 <h4 class="puja-section-title faq-main-title">Frequently Asked Questions</h4> 967 <div class="faq-list mt-3" id="faqAccordion"> 968 <div class="faq-item"> 969 <button class="faq-question w-100 d-flex justify-content-between align-items-center" 970 type="button" 971 data-bs-toggle="collapse" 972 data-bs-target="#faq-collapse-0" 973 aria-expanded="false" 974 aria-controls="faq-collapse-0"> 975 <span>When is the best time to do Griha Pravesh Puja?</span> 976 <span class="faq-toggle-icon"> 977 <span class="icon-plus">+</span> 978 <span class="icon-cross">Ã</span> 979 </span> 980 </button> 981 <div id="faq-collapse-0" class="faq-collapse-content accordion-collapse collapse" data-bs-parent="#faqAccordion"> 982 <div class="faq-answer"> 983 The best time is usually during auspicious tithis like Basant Panchami, Akshaya Tritiya, or specific dates in the Hindu calendar. Our pandits can help you find the most beneficial muhurat for your family. 984 </div> 985 </div> 986 </div> 987 <div class="faq-item"> 988 <button class="faq-question w-100 d-flex justify-content-between align-items-center" 989 type="button" 990 data-bs-toggle="collapse" 991 data-bs-target="#faq-collapse-1" 992 aria-expanded="false" 993 aria-controls="faq-collapse-1"> 994 <span>Can I do Griha Pravesh in a rented house?</span> 995 <span class="faq-toggle-icon">
996 <span class="icon-plus">+</span> 997 <span class="icon-cross">Ã</span> 998 </span> 999 </button> 1000 <div id="faq-collapse-1" class="faq-collapse-content accordion-collapse collapse" data-bs-parent="#faqAccordion"> 1001 <div class="faq-answer"> 1002 Yes, it is highly recommended to perform a simple Griha Pravesh and Vastu Shanti even in a rented home to clear any previous negative energy and start your stay on a positive note. 1003 </div> 1004 </div> 1005 </div> 1006 <div class="faq-item"> 1007 <button class="faq-question w-100 d-flex justify-content-between align-items-center" 1008 type="button" 1009 data-bs-toggle="collapse" 1010 data-bs-target="#faq-collapse-2" 1011 aria-expanded="false" 1012 aria-controls="faq-collapse-2"> 1013 <span>What items are needed for an Online Griha Pravesh?</span> 1014 <span class="faq-toggle-icon"> 1015 <span class="icon-plus">+</span> 1016 <span class="icon-cross">Ã</span> 1017 </span> 1018 </button> 1019 <div id="faq-collapse-2" class="faq-collapse-content accordion-collapse collapse" data-bs-parent="#faqAccordion"> 1020 <div class="faq-answer"> 1021 You will need basic items like flowers, fruits, sweets, a Kalash, coconut, and incense sticks. We provide a detailed list well in advance so you can be prepared. 1022 </div> 1023 </div> 1024 </div> 1025 <div class="faq-item"> 1026 <button class="faq-question w-100 d-flex justify-content-between align-items-center" 1027 type="button" 1028 data-bs-toggle="collapse" 1029 data-bs-target="#faq-collapse-3" 1030 aria-expanded="false" 1031 aria-controls="faq-collapse-3"> 1032 <span>Does 99Pandit provide Puja in different languages?</span> 1033 <span class="faq-toggle-icon"> 1034 <span class="icon-plus">+</span> 1035 <span class="icon-cross">Ã</span> 1036 </span> 1037 </button> 1038 <div id="faq-collapse-3" class="faq-collapse-content accordion-collapse collapse" data-bs-parent="#faqAccordion"> 1039 <div class="faq-answer"> 1040 Yes, we have a diverse panel of pandits who can perform the puja in Hindi, Marathi, Gujarati, Tamil, Telugu, and many other regional languages. 1041 </div> 1042 </div> 1043 </div> 1044 <div class="faq-item"> 1045 <button class="faq-question w-100 d-flex justify-content-between align-items-center" 1046 type="button" 1047 data-bs-toggle="collapse" 1048 data-bs-target="#faq-collapse-4" 1049 aria-expanded="false" 1050 aria-controls="faq-collapse-4">
1051 <span>Is the online puja as effective as the offline one?</span> 1052 <span class="faq-toggle-icon"> 1053 <span class="icon-plus">+</span> 1054 <span class="icon-cross">Ã</span> 1055 </span> 1056 </button> 1057 <div id="faq-collapse-4" class="faq-collapse-content accordion-collapse collapse" data-bs-parent="#faqAccordion"> 1058 <div class="faq-answer"> 1059 Absolutely. The power of Vedic mantras depends on the vibration and the Sankalp taken in your name. Our pandits ensure that you are mentally and spiritually involved throughout the session. 1060 </div> 1061 </div> 1062 </div> 1063 </div> 1064 </div> 1065 1066 <!-- Section: Reviews (Amazon-style) --> 1067 <div class="puja-section-card border-bottom-0" id="reviewsSection"> 1068 <h4 class="puja-section-title">Customer Reviews</h4> 1069 1070 <div class="review-summary-wrap d-flex flex-wrap gap-4 mt-3 mb-4"> 1071 <!-- Overall rating --> 1072 <div class="review-summary-score text-center"> 1073 <div class="review-summary-avg">4.8</div> 1074 <div class="review-stars-wrap mb-1 justify-content-center"> 1075 <span class="star ">★</span> 1076 <span class="star ">★</span> 1077 <span class="star ">★</span> 1078 <span class="star ">★</span> 1079 <span class="star ">★</span> 1080 </div> 1081 <div class="text-muted small">4 ratings</div> 1082 </div> 1083 1084 <!-- Star breakdown bars --> 1085 <div class="review-summary-bars flex-grow-1"> 1086 <div class="review-bar-row d-flex align-items-center gap-2"> 1087 <span class="review-bar-label">5 star</span> 1088 <div class="review-bar-track"> 1089 <div class="review-bar-fill" style="width: 75%;"></div> 1090 </div> 1091 <span class="review-bar-pct">75%</span> 1092 </div> 1093 <div class="review-bar-row d-flex align-items-center gap-2"> 1094 <span class="review-bar-label">4 star</span> 1095 <div class="review-bar-track"> 1096 <div class="review-bar-fill" style="width: 25%;"></div> 1097 </div> 1098 <span class="review-bar-pct">25%</span> 1099 </div> 1100 <div class="review-bar-row d-flex align-items-center gap-2">
1101 <span class="review-bar-label">3 star</span> 1102 <div class="review-bar-track"> 1103 <div class="review-bar-fill" style="width: 0%;"></div> 1104 </div> 1105 <span class="review-bar-pct">0%</span> 1106 </div> 1107 <div class="review-bar-row d-flex align-items-center gap-2"> 1108 <span class="review-bar-label">2 star</span> 1109 <div class="review-bar-track"> 1110 <div class="review-bar-fill" style="width: 0%;"></div> 1111 </div> 1112 <span class="review-bar-pct">0%</span> 1113 </div> 1114 <div class="review-bar-row d-flex align-items-center gap-2"> 1115 <span class="review-bar-label">1 star</span> 1116 <div class="review-bar-track"> 1117 <div class="review-bar-fill" style="width: 0%;"></div> 1118 </div> 1119 <span class="review-bar-pct">0%</span> 1120 </div> 1121 </div> 1122 </div> 1123 1124 <!-- Individual reviews list --> 1125 <div class="review-list" id="reviewList"> 1126 <div class="review-list-item "> 1127 <div class="d-flex align-items-center mb-2"> 1128 <img src="https://cdn.99pandit.com/99pandit_newhome/user.webp" class="rounded-circle me-2" alt="Anuj" style="width: 40px; height: 40px; object-fit: cover;"> 1129 <div> 1130 <h6 class="fw-bold text-dark mb-0" style="font-size: 0.9rem;">Anuj</h6> 1131 <span class="review-verified-badge"> 1132 <i class="fas fa-check-circle"></i> Verified Booking 1133 </span> 1134 </div> 1135 </div> 1136 1137 <div class="d-flex align-items-center gap-2 mb-2 flex-wrap"> 1138 <div class="review-stars-wrap"> 1139 <span class="star">★</span> 1140 <span class="star">★</span> 1141 <span class="star">★</span> 1142 <span class="star">★</span> 1143 <sp
1143an class="star">★</span> 1144 </div> 1145 <small class="text-muted">02 Nov 2025</small> 1146 </div> 1147 1148 <p class="text-secondary mb-0" style="font-size: 0.88rem; line-height: 1.5;">The team of 99Pandit links devotion with comfort. I booked the Griha Pravesh online puja for my new home inauguration in the USA. The communication was perfect, and the pandit explained each step calmly. Very happy with the service.</p> 1149 </div> 1150 <div class="review-list-item "> 1151 <div class="d-flex align-items-center mb-2"> 1152 <img src="https://cdn.99pandit.com/99pandit_newhome/user.webp" class="rounded-circle me-2" alt="Ravi K" style="width: 40px; height: 40px; object-fit: cover;"> 1153 <div> 1154 <h6 class="fw-bold text-dark mb-0" style="font-size: 0.9rem;">Ravi K</h6> 1155 <span class="review-verified-badge"> 1156 <i class="fas fa-check-circle"></i> Verified Booking 1157 </span> 1158 </div> 1159 </div> 1160 1161 <div class="d-flex align-items-center gap-2 mb-2 flex-wrap"> 1162 <div class="review-stars-wrap"> 1163 <span class="star">★</span> 1164 <span class="star">★</span> 1165 <span class="star">★</span> 1166 <span class="star">★</span> 1167 <span class="star">★</span> 1168 </div> 1169 <small class="text-muted">03 Nov 2025</small> 1170 </div> 1171 1172 <p class="text-secondary mb-0" style="font-size: 0.88rem; line-height: 1.5;">Humne Pune me naya flat khareeda tha, Pune jese bade shahar me pandit ki jankari milna thoda mushkil tha isiliye 99Pandit ki madad se Griha Pravesh Puja karayi. Pandit ji ne samagri ke baare me pehle hi bta diya tha to puja me asaani rahi. Bahut accha experience raha.</p> 1173 </div> 1174 <div class="review-list-item "> 1175 <div class="d-flex align-items-center mb-2"> 1176 <img src="https://cdn.99pandit.com/99pandit_newhome/user.webp" class="rounded-circle me-2" alt="Rajat Sharma" style="width: 40px; height: 40px; object-fit: cover;"> 1177 <div> 1178 <h6 class="fw-bold text-dark mb-0" style="font-size: 0.9rem;">Rajat Sharma</h6>
1179 <span class="review-verified-badge"> 1180 <i class="fas fa-check-circle"></i> Verified Booking 1181 </span> 1182 </div> 1183 </div> 1184 1185 <div class="d-flex align-items-center gap-2 mb-2 flex-wrap"> 1186 <div class="review-stars-wrap"> 1187 <span class="star">★</span> 1188 <span class="star">★</span> 1189 <span class="star">★</span> 1190 <span class="star">★</span> 1191 <span class="star empty">★</span> 1192 </div> 1193 <small class="text-muted">03 Nov 2025</small> 1194 </div> 1195 1196 <p class="text-secondary mb-0" style="font-size: 0.88rem; line-height: 1.5;">Our Griha Pravesh Puja experience with 99Pandit was really good. The pandit did the puja within the muhurat and handled each ritual respectfully. I couldnât have asked for better than this.</p> 1197 </div> 1198 <div class="review-list-item review-list-item-hidden d-none"> 1199 <div class="d-flex align-items-center mb-2"> 1200 <img src="https://cdn.99pandit.com/99pandit_newhome/user.webp" class="rounded-circle me-2" alt="Anjana" style="width: 40px; height: 40px; object-fit: cover;"> 1201 <div> 1202 <h6 class="fw-bold text-dark mb-0" style="font-size: 0.9rem;">Anjana</h6> 1203 <span class="review-verified-badge"> 1204 <i class="fas fa-check-circle"></i> Verified Booking 1205 </span> 1206 </div> 1207 </div> 1208 1209 <div class="d-flex align-items-center gap-2 mb-2 flex-wrap"> 1210 <div class="review-stars-wrap"> 1211 <span class="star">★</span> 1212 <sp
1212an class="star">★</span> 1213 <span class="star">★</span> 1214 <span class="star">★</span> 1215 <span class="star">★</span> 1216 </div> 1217 <small class="text-muted">05 Nov 2025</small> 1218 </div> 1219 1220 <p class="text-secondary mb-0" style="font-size: 0.88rem; line-height: 1.5;">à¤à¥à¤¹ पà¥à¤°à¤µà¥à¤¶ à¤à¥ दिन 99Pandit à¤à¥ पà¤à¤¡à¤¿à¤¤ à¤à¥ नॠहमारॠनयॠà¤à¤° मà¥à¤ पà¥à¤à¤¾ à¤à¤°à¤¾à¤à¥¤ सà¥à¤¬à¤¹ सॠहॠसब तà¥à¤¯à¤¾à¤° था। मà¤à¤¤à¥à¤° à¤à¤° हवन सब विधि à¤à¥ ठनà¥à¤¸à¤¾à¤° हà¥à¤à¥¤ थà¥à¤¡à¤¼à¤¾ धà¥à¤ à¤à¥à¤¯à¤¾à¤¦à¤¾ हà¥à¤ पर पà¥à¤à¤¾ à¤à¥ बाद à¤à¤° मà¥à¤ सà¥à¤ à¤à¤° शाà¤à¤¤à¤¿ महसà¥à¤¸ हà¥à¤à¥¤</p> 1221 </div> 1222 </div> 1223 1224 <div class="text-center mt-3 pt-2"> 1225 <button id="btn-load-more-reviews" type="button" class="btn btn-outline-orange px-4 py-1.5 rounded-pill" onclick="if (!window.__cfRLUnblockHandlers) return false; loadMoreReviews()" data-cf-modified-203ab9795843d8aeeec027b7-=""> 1226 Load More Reviews 1227 </button> 1228 </div> 1229 </div> 1230 1231 </div> 1232 </div> 1233 </div> 1234 1235 <!-- App Section CTA --> 1236 <section class="appSection my-5"> 1237 <div class="container cta-banner-card overflow-hidden"> 1238 <div class="row align-items-end g-0"> 1239 <div class="col-lg-7 col-12 cta-content-col"> 1240 <h2 class="cta-banner-heading">Book a Pandit Online Anytime — Get the App</h2> 1241 <p class="cta-banner-subtext">Get connected with qualified pandits near you for your specific rituals and ceremonies.</p> 1242 <div class="cta-badges-wrap"> 1243 <a href="https://play.google.com/store/apps/details?id=com.user.u_99pandit&pcampaignid=web_share" target="_blank" class="cta-badge-link" aria-label="Get it on Google Play"> 1244 <img src="https://cdn.99pandit.com/99pandit_newhome/img/playstore.webp" alt="Get it on Google Play" class="img-fluid cta-badge-img"> 1245 </a> 1246 <a href="https://apps.apple.com/in/app/99pandit/id6473841676?platform=iphone" target="_blank" class="cta-badge-link" aria-label="Download on the App Store"> 1247 <img src="https://cdn.99pandit.com/99pandit_newhome/img/appstore.webp" alt="Download on the App Store" class="img-fluid cta-badge-img"> 1248 </a> 1249 </div> 1250 </div> 1251 <div class="col-lg-5 col-12 cta-image-col"> 1252 <img src="https://cdn.99pandit.com/99pandit_newhome/img/ctaimage_2.webp" alt="99Pandit Mobile App and Vedic Pandit" class="cta-banner-image"> 1253 </div> 1254 </div> 1255 </div> 1256 </section> 1257 1258 <!-- Floating sticky Add to Cart bar (shown when main button is off-screen) --> 1259 <div id="floating-cart-bar" class="floating-cart-bar" style="display:none;"> 1260 <div class="floating-cart-fields d-flex gap-2 mb-2"> 1261 <div class="position-relative select-date flex-grow-1"> 1262 <input type="text" 1263 id="floatingCalendarInput" 1264 class="form-control form-control-sm with-icon date-input" 1265 placeholder="DD/MM/YYYY"> 1266 <i class="fas fa-calendar-alt calendar-icon" onclick="if (!window.__cfRLUnblockHandlers) return false; (function(el){el._flatpickr && el._flatpickr.open()})(document.getElementById('floatingCalendarInput'))" data-cf-modified-203ab9795843d8aeeec027b7-=""></i> 1267 </div> 1268 </div> 1269 <div class="floating-cart-inner"> 1270 <div class="floating-cart-info"> 1271 <div class="floating-cart-name">Griha Pravesh Puja</div> 1272 <div class="floating-cart-price">
1273 <span class="fw-bold text-orange">$200.00</span> 1274 <span class="text-decoration-line-through text-muted small ms-1">$699.00</span> 1275 </div> 1276 </div> 1277 <button type="button" class="btn floating-cart-btn" onclick="if (!window.__cfRLUnblockHandlers) return false; submitCartForm()" data-cf-modified-203ab9795843d8aeeec027b7-=""> 1278 <i class="fas fa-shopping-cart me-2"></i>Add to Cart 1279 </button> 1280 </div> 1281 </div> 1282 1283 </section> 1284 1285 <!-- Custom Styling Injections --> 1286 1287 1288 <!-- Generic See More / See Less for all collapsible sections --> 1289
1289<script type="203ab9795843d8aeeec027b7-text/javascript"> 1290 (function () { 1291 var CLAMP = 220; // px â collapsed height for all sections 1292 1293 function initCollapsibles() { 1294 document.querySelectorAll('.puja-section-card').forEach(function (card) { 1295 var body = card.querySelector('.puja-collapsible'); 1296 var fade = card.querySelector('.puja-collapsible-fade'); 1297 var btn = card.querySelector('.puja-toggle-btn'); 1298 if (!body || !btn) return; 1299 1300 // Force a reflow so scrollHeight is accurate 1301 body.style.maxHeight = 'none'; 1302 var fullH = body.scrollHeight; 1303 1304 if (fullH <= CLAMP) { 1305 // Content is short â no truncation needed 1306 btn.style.display = 'none'; 1307 if (fade) fade.style.display = 'none'; 1308 return; 1309 } 1310 1311 // Clamp content 1312 body.style.overflow = 'hidden'; 1313 body.style.maxHeight = CLAMP + 'px'; 1314 body.style.transition = 'max-height 0.4s ease'; 1315 if (fade) fade.style.display = 'block'; 1316 btn.dataset.expanded = 'false'; 1317 1318 btn.addEventListener('click', function () { 1319 var expanded = btn.dataset.expanded === 'true'; 1320 if (expanded) { 1321 // Collapse back 1322 body.style.overflow = 'hidden'; 1323 body.style.maxHeight = body.scrollHeight + 'px'; 1324 void body.offsetHeight; // force reflow for smooth transition 1325 body.style.maxHeight = CLAMP + 'px'; 1326 btn.textContent = 'See More'; 1327 if (fade) fade.style.display = 'block'; 1328 btn.dataset.expanded = 'false'; 1329 // Scroll back to the section heading 1330 card.scrollIntoView({ behavior: 'smooth', block: 'start' }); 1331 } else { 1332 // Expand dynamically 1333 body.style.overflow = 'hidden'; 1334 var targetH = body.scrollHeight + 40; 1335 body.style.maxHeight = targetH + 'px'; 1336 btn.textContent = 'See Less'; 1337 if (fade) fade.style.display = 'none'; 1338 btn.dataset.expanded = 'true'; 1339 1340 // Once transition completes, release constraints completely so nothing is clipped 1341 setTimeout(function () { 1342 if (btn.dataset.expanded === 'true') { 1343 body.style.maxHeight = 'none'; 1344 body.style.overflow = 'visible'; 1345 } 1346 }, 420); 1347 } 1348 }); 1349 }); 1350 } 1351 1352 if (document.readyState === 'loading') { 1353 document.addEventListener('DOMContentLoaded', initCollapsibles); 1354 } else { 1355 initCollapsibles(); 1356 } 1357 })(); 1358 </script>
1358 1359 1360 1361 <!-- Load more reviews script --> 1362
1362<script type="203ab9795843d8aeeec027b7-text/javascript"> 1363 function loadMoreReviews() { 1364 document.querySelectorAll('#reviewList .review-list-item-hidden').forEach(function (item) { 1365 item.classList.remove('d-none'); 1366 }); 1367 document.getElementById('btn-load-more-reviews')?.remove(); 1368 } 1369 </script>
1369 1370 1371 <!-- Export Samagri List (print / save as PDF) --> 1372
1372<script type="203ab9795843d8aeeec027b7-text/javascript"> 1373 function exportSamagriList(btn) { 1374 var richBox = document.getElementById('prepGuideRich'); 1375 if (!richBox) return; 1376 1377 var pujaName = btn.getAttribute('data-puja-name') || 'Puja'; 1378 1379 var printFrame = document.createElement('iframe'); 1380 printFrame.style.position = 'fixed'; 1381 printFrame.style.right = '0'; 1382 printFrame.style.bottom = '0'; 1383 printFrame.style.width = '0'; 1384 printFrame.style.height = '0'; 1385 printFrame.style.border = '0'; 1386 document.body.appendChild(printFrame); 1387 1388 var doc = printFrame.contentWindow.document; 1389 doc.open(); 1390 doc.write( 1391 '<!DOCTYPE html><html><head><title>' + pujaName + ' - Samagri List</title>' + 1392 '<style>' + 1393 'body{font-family:Arial,Helvetica,sans-serif;color:#333;padding:24px;}' + 1394 'h1{font-size:1.3rem;color:#7a3b00;margin-bottom:4px;}' + 1395 'p.sub{color:#777;font-size:0.85rem;margin-top:0;margin-bottom:20px;}' + 1396 'ul{list-style:none;padding:0;margin:0;}' + 1397 'li{padding:6px 0;border-bottom:1px dashed #ddd;font-size:0.95rem;}' + 1398 'li:before{content:"\\2022";color:#e65c00;font-weight:bold;display:inline-block;width:1em;}' + 1399 'li:has(strong), li:has(b){border-bottom:none;border-top:1px solid #ccc;padding-top:14px;margin-top:8px;font-weight:bold;}' + 1400 'li:has(strong):before, li:has(b):before{content:"";width:0;}' + 1401 '</style></head><body>' + 1402 '<h1>' + pujaName + '</h1>' + 1403 '<p class="sub">Samagri / Preparation List</p>' + 1404 richBox.innerHTML + 1405 '</body></html>' 1406 ); 1407 doc.close(); 1408 1409 setTimeout(function () { 1410 printFrame.contentWindow.focus(); 1411 printFrame.contentWindow.print(); 1412 }, 250); 1413 1414 setTimeout(function () { 1415 printFrame.remove(); 1416 }, 60000); 1417 } 1418 </script>
1418 1419 1420 <!-- Swiper JS for Gallery --> 1421
1421<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js" type="203ab9795843d8aeeec027b7-text/javascript"></script>
1421 1422
1422<script type="203ab9795843d8aeeec027b7-text/javascript"> 1423 new Swiper(".gallery-swiper", { 1424 slidesPerView: 1, 1425 spaceBetween: 10, 1426 loop: true, 1427 pagination: { 1428 el: ".gallery-swiper .swiper-pagination", 1429 clickable: true, 1430 }, 1431 breakpoints: { 1432 640: {slidesPerView: 1}, 1433 768: {slidesPerView: 2}, 1434 1024: {slidesPerView: 3} 1435 } 1436 }); 1437 </script>
1437 1438 1439 <!-- Scroll to reviews section when ?show=reviews is present --> 1440
1440<script type="203ab9795843d8aeeec027b7-text/javascript"> 1441 document.addEventListener("DOMContentLoaded", function() { 1442 const urlParams = new URLSearchParams(window.location.search); 1443 if (urlParams.get("show") === "reviews") { 1444 setTimeout(function () { 1445 const reviewSection = document.getElementById('reviewsSection'); 1446 if (reviewSection) { 1447 reviewSection.scrollIntoView({ behavior: "smooth" }); 1448 } 1449 }, 300); 1450 } 1451 }); 1452 </script>
1452 1453 1454 <!-- Floating Add to Cart bar - IntersectionObserver logic --> 1455
1455<script type="203ab9795843d8aeeec027b7-text/javascript"> 1456 (function () { 1457 var floatingBar = document.getElementById('floating-cart-bar'); 1458 var realBtn = document.getElementById('add-to-cart-btn'); 1459 if (!floatingBar || !realBtn) return; 1460 1461 var footer = document.querySelector('footer'); 1462 1463 var observer = new IntersectionObserver(function (entries) { 1464 entries.forEach(function (entry) { 1465 if (entry.isIntersecting) { 1466 floatingBar.classList.remove('visible'); 1467 setTimeout(function () { 1468 if (!floatingBar.classList.contains('visible')) { 1469 floatingBar.style.display = 'none'; 1470 } 1471 }, 320); 1472 } else { 1473 if (footer) { 1474 var footerRect = footer.getBoundingClientRect(); 1475 if (footerRect.top <= window.innerHeight) { 1476 floatingBar.classList.remove('visible'); 1477 return; 1478 } 1479 } 1480 floatingBar.style.display = 'block'; 1481 requestAnimationFrame(function () { 1482 floatingBar.classList.add('visible'); 1483 }); 1484 } 1485 }); 1486 }, { threshold: 0.5 }); 1487 1488 observer.observe(realBtn); 1489 1490 if (footer) { 1491 window.addEventListener('scroll', function () { 1492 var footerRect = footer.getBoundingClientRect(); 1493 if (footerRect.top <= window.innerHeight) { 1494 floatingBar.classList.remove('visible'); 1495 setTimeout(function () { 1496 if (!floatingBar.classList.contains('visible')) { 1497 floatingBar.style.display = 'none'; 1498 } 1499 }, 320); 1500 } 1501 }, { passive: true }); 1502 } 1503 })(); 1504 </script>
1504 1505 1506 <!-- Flatpickr init for preferred date --> 1507
1507<script type="203ab9795843d8aeeec027b7-text/javascript"> 1508 document.addEventListener("DOMContentLoaded", function () { 1509 document.querySelectorAll('.date-input:not([disabled])').forEach(function (el) { 1510 if (el._flatpickr) return; 1511 const _todayStr = (function() { 1512 const d = new Date(); 1513 const mm = String(d.getMonth() + 1).padStart(2, '0'); 1514 const dd = String(d.getDate()).padStart(2, '0'); 1515 return d.getFullYear() + '-' + mm + '-' + dd; 1516 })(); 1517 flatpickr(el, { 1518 dateFormat: "Y-m-d", 1519 altInput: true, 1520 altFormat: "d/m/Y", 1521 minDate: _todayStr, 1522 defaultDate: el.value || null, 1523 allowInput: false, 1524 disableMobile: true 1525 }); 1526 }); 1527 }); 1528 </script>
1528 1529 1530 <!-- Submit Cart Form logic --> 1531
1531<script type="203ab9795843d8aeeec027b7-text/javascript"> 1532 function submitCartForm() { 1533 const form = document.getElementById('puja-language-form'); 1534 const btn = document.getElementById('add-to-cart-btn'); 1535 const floatBtn = document.querySelector('#floating-cart-bar .floating-cart-btn'); 1536 1537 // Sync the floating bottom bar's date field (if filled) into the main form 1538 const floatingDate = document.getElementById('floatingCalendarInput'); 1539 if (floatingDate && floatingDate.value) { 1540 form.querySelector('[name="preferred_date"]').value = floatingDate.value; 1541 } 1542 1543 const dateVal = form.querySelector('[name="preferred_date"]').value; 1544 1545 if (!dateVal) { 1546 showCartToast('Please select a preferred date.', 'error'); 1547 return; 1548 } 1549 1550 const _parts = dateVal.split('-'); 1551 const _selD = new Date(_parts[0], _parts[1] - 1, _parts[2]); 1552 const _today = new Date(); _today.setHours(0, 0, 0, 0); 1553 if (_selD < _today) { 1554 showCartToast('Please select today\'s date or a future date.', 'error'); 1555 return; 1556 } 1557 1558 btn.disabled = true; 1559 btn.textContent = 'Adding...'; 1560 if (floatBtn) { 1561 floatBtn.disabled = true; 1562 floatBtn.textContent = 'Adding...'; 1563 } 1564 1565 const formData = new FormData(form); 1566 1567 fetch('https://99pandit.com/App/puja/cart/add', { 1568 method: 'POST', 1569 headers: { 1570 'X-Requested-With': 'XMLHttpRequest', 1571 'X-CSRF-TOKEN': 'E5YvQNflPDP4cXQaIS30goml42rewaH5tFbvHJeK' 1572 }, 1573 body: formData 1574 }) 1575 .then(res => res.json()) 1576 .then(data => { 1577 if (data.status === 1) { 1578 window.location.href = data.redirect; 1579 } else { 1580 const msg = data.message || (data.errors ? Object.values(data.errors).flat().join(' ') : 'Something went wrong.'); 1581 showCartToast(msg, 'error'); 1582 btn.disabled = false; 1583 btn.innerHTML = '<i class="fas fa-shopping-cart me-1"></i>Add to Cart'; 1584 if (floatBtn) { 1585 floatBtn.disabled = false; 1586 floatBtn.innerHTML = '<i class="fas fa-shopping-cart me-2"></i>Add to Cart'; 1587 } 1588 } 1589 }) 1590 .catch(() => { 1591 showCartToast('Something went wrong. Please try again.', 'error'); 1592 btn.disabled = false; 1593 btn.innerHTML = '<i class="fas fa-shopping-cart me-1"></i>Add to Cart'; 1594 if (floatBtn) { 1595 floatBtn.disabled = false; 1596 floatBtn.innerHTML = '<i class="fas fa-shopping-cart me-2"></i>Add to Cart'; 1597 } 1598 }); 1599 } 1600 1601 const videoCarouselItems = [{"name":"Deenesh Kumar","image":"https:\/\/cdn.99pandit.com\/99pandit_newhome\/e-puja-banner\/reviewer\/Deenesh-kumar.png","youtube_id":"ZBB2SgnnmlI"},{"name":"Rudra","image":"https:\/\/cdn.99pandit.com\/99pandit_newhome\/e-puja-banner\/reviewer\/rudra.png","youtube_id":"F3qgbbwUhHU"},{"name":"Ganesh","image":"https:\/\/cdn.99pandit.com\/99pandit_newhome\/e-puja-banner\/reviewer\/Ganesh.png","youtube_id":"ENdWGjs2f2k"},{"name":"Nitin Goyal","image":"https:\/\/cdn.99pandit.com\/99pandit_newhome\/e-puja-banner\/reviewer\/nitin-goyal.png","youtube_id":"ZI1BIxS4M1M"}]; 1602 let videoCarouselIndex = 0; 1603 1604 function showVideoInModal(youtubeId, title) { 1605 const overlay = document.getElementById('videoModal'); 1606 const frame = document.getElementById('videoModalFrame'); 1607 const titleEl = document.getElementById('videoModalTitle'); 1608 if (!overlay || !frame) return; 1609 frame.src = 'https://www.youtube.com/embed/' + youtubeId + '?autoplay=1&rel=0'; 1610 titleEl.textContent = title || ''; 1611 overlay.classList.add('open'); 1612 document.body.style.overflow = 'hidden'; 1613 } 1614 1615 function openVideoModal(youtubeId, title) { 1616 document.getElementById('videoModal').classList.remove('carousel-mode'); 1617 showVideoInModal(youtubeId, title); 1618 } 1619 1620 function openVideoCarousel(startIndex) { 1621 if (!videoCarouselItems.length) return; 1622 videoCarouselIndex = startIndex || 0; 1623 document.getElementById('videoModal').classList.add('carousel-mode'); 1624 const item = videoCarouselItems[videoCarouselIndex]; 1625 showVideoInModal(item.youtube_id, item.name); 1626 } 1627 1628 function carouselNext() { 1629 if (!videoCarouselItems.length) return; 1630 videoCarouselIndex = (videoCarouselIndex + 1) % videoCarouselItems.length; 1631 const item = videoCarouselItems[videoCarouselIndex]; 1632 showVideoInModal(item.youtube_id, item.name); 1633 } 1634 1635 function carouselPrev() { 1636 if (!videoCarouselItems.length) return; 1637 videoCarouselIndex = (videoCarouselIndex - 1 + videoCarouselItems.length) % videoCarouselItems.length; 1638 const item = videoCarouselItems[videoCarouselIndex]; 1639 showVideoInModal(item.youtube_id, item.name); 1640 } 1641 1642 function closeVideoModal() {
1643 const overlay = document.getElementById('videoModal'); 1644 const frame = document.getElementById('videoModalFrame'); 1645 if (!overlay || !frame) return; 1646 overlay.classList.remove('open'); 1647 frame.src = ''; 1648 document.body.style.overflow = ''; 1649 } 1650 1651 document.addEventListener('keydown', function (e) { 1652 if (e.key === 'Escape') closeVideoModal(); 1653 if (e.key === 'ArrowRight' && document.getElementById('videoModal').classList.contains('carousel-mode')) carouselNext(); 1654 if (e.key === 'ArrowLeft' && document.getElementById('videoModal').classList.contains('carousel-mode')) carouselPrev(); 1655 }); 1656 1657 function showCartToast(message, type) { 1658 let toast = document.getElementById('cartAjaxToast'); 1659 if (!toast) { 1660 toast = document.createElement('div'); 1661 toast.id = 'cartAjaxToast'; 1662 toast.style.cssText = 'position:fixed;bottom:20px;left:20px;padding:14px 20px;border-radius:8px;color:#fff;font-size:14px;z-index:10000;min-width:260px;box-shadow:0 4px 12px rgba(0,0,0,0.2);'; 1663 document.body.appendChild(toast); 1664 } 1665 const floatingBar = document.getElementById('floating-cart-bar'); 1666 const barVisible = floatingBar && floatingBar.classList.contains('visible'); 1667 toast.style.bottom = barVisible ? (floatingBar.offsetHeight + 32) + 'px' : '20px'; 1668 toast.style.backgroundColor = type === 'error' ? '#df2622' : '#28a745'; 1669 toast.textContent = message; 1670 toast.style.display = 'block'; 1671 setTimeout(() => { toast.style.display = 'none'; }, 4000); 1672 } 1673 </script>
1673 1674 1675 1676 1677<!-- ========================================================================== 1678 1. DESKTOP FOOTER (Visible on Screens >= 768px: d-none d-md-block) 1679 Exact WordPress Desktop Replica (Havan fire + 4 Columns + Orange Copyright) 1680 ========================================================================== --> 1681<div class="d-none d-md-block"> 1682 <!-- Top Section: Temple + Fire Background with Logo, Social, Quick Links & App --> 1683 <footer class="container-fluid px-0 footer-container" style="background-image: url('https://99pandit.com//wp-content/themes/ninetyninepandit/img/footerbg1.png') !important; background-size: cover !important; background-position: center top !important; background-repeat: no-repeat !important; background-color: transparent !important;"> 1684 <img src="https://cdn.99pandit.com/images/footer-uper.webp" class="img-fluid w-100 footer-uper" alt="99Pandit Design" width="1350" height="40" loading="lazy" decoding="async"> 1685 <div class="container"> 1686 <div class="row py-3"> 1687 <!-- Column 1: Logo & Social --> 1688 <div class="col-md-3"> 1689 <div class="logo_social_links_mobile"> 1690 <div> 1691 <a href="https://99pandit.com"> 1692 <img src="https://99pandit.com/wp-content/themes/ninetyninepandit/img/footerlogopandit.png" class="img-fluid footer-logos-mobile" alt="99Pandit Logo" loading="lazy" width="170" height="165" style="max-width: 170px; height: auto;"> 1693 </a> 1694 <ul class="social_links mt-3"> 1695 <li> 1696 <a href="https://www.facebook.com/99pandit" class="p-0" target="_blank" aria-label="Facebook"> 1697 <img src="https://cdn.99pandit.com/images/footer/facebook.png" class="img-fluid" alt="Facebook" loading="lazy" width="40" height="40"> 1698 </a> 1699 </li> 1700 <li> 1701 <a href="https://www.instagram.com/99panditpuja/" class="p-0" target="_blank" aria-label="Instagram"> 1702 <img src="https://cdn.99pandit.com/images/footer/insta.png" class="img-fluid" alt="Instagram" loading="lazy" width="40" height="40"> 1703 </a> 1704 </li> 1705 <li> 1706 <a href="https://www.youtube.com/channel/UCGH1GXsKjVIw-mD4Qvz1FsQ" class="p-0" target="_blank" aria-label="Youtube"> 1707 <img src="https://cdn.99pandit.com/images/footer/youtube.png" class="img-fluid" alt="Youtube" loading="lazy" width="40" height="40"> 1708 </a> 1709 </li> 1710 <li> 1711 <a href="https://in.pinterest.com/99panditservice/" class="p-0 pinterest" aria-label="Pinterest" target="_blank"> 1712 <span class="np-icon-svg" aria-hidden="true" style="display: inline-flex; align-items: center; justify-content: center;"> 1713 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" width="18" height="18" fill="#e60023"> 1714 <path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.4 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"/> 1715 </svg> 1716 </span> 1717 </a> 1718 </li> 1719 </ul> 1720 </div> 1721 </div> 1722 </div> 1723 1724 <!-- Column 2: Quick Links --> 1725 <div class="col-md-3"> 1726 <div class="quick_links_decktop">
1727 <span class="text-white footer-heading">Quick Links</span> 1728 <ul class="quick_links"> 1729 <li><a href="https://99pandit.com/service/">Puja Services</a></li> 1730 <li><a href="https://99pandit.com/cities/">Cities</a></li> 1731 <li><a href="https://99pandit.com/international/">International</a></li> 1732 <li><a href="https://99pandit.com/App/e-puja">E-Puja</a></li> 1733 <li><a href="https://99pandit.com/App/group-puja">Group Puja</a></li> 1734 <li><a href="https://99pandit.com/blog/">Blog</a></li> 1735 <li><a href="https://99pandit.com/gallery/">Gallery</a></li> 1736 <li><a href="https://99pandit.com/faq/">FAQs</a></li> 1737 <li><a href="https://99pandit.com/about-us/">About us</a></li> 1738 <li><a href="https://99pandit.com/html-sitemap/">Sitemap</a></li> 1739 </ul> 1740 </div> 1741 </div> 1742 1743 <!-- Column 3: Contact Info --> 1744 <div class="col-md-3 contact-info-decktop"> 1745 <span class="text-white footer-heading">Contact Info</span> 1746 <p class="mb-0 text-white"> 1747 <b>Email :</b> <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="452c2b232a057c7c35242b212c316b262a28">[email protected]</a> 1748 </p> 1749 <div class="col-md-12 col-6 mt-4"> 1750 <span class="text-white footer-heading">For Free Registration</span> 1751 <a class="np-btn np-btn--outline np-btn--white np-btn--md np-btn--pill" href="https://99pandit.com/App/pandit-registration"> 1752 <span class="np-btn__label">Become a Pandit</span> 1753 </a> 1754 </div> 1755 </div> 1756 1757 <!-- Column 4: For Pandits App --> 1758 <div class="col-md-3"> 1759 <div class="social_links_decktop"> 1760 <span class="text-white footer-heading">For Pandits App</span> 1761 <ul class="social_links py-3"> 1762 <li> 1763 <a href="https://play.google.com/store/apps/details?id=pandit99.com" target="_blank" class="w-100"> 1764 <img src="https://cdn.99pandit.com/99pandit_newhome/img/playstore.webp" height="50" width="150" alt="99Pandit App" loading="lazy"> 1765 </a> 1766 <a href="https://apps.apple.com/in/app/99pandit-for-partners/id6499431189?platform=iphone" target="_blank" class="w-100 mt-3 d-inline-block"> 1767 <img style="border: 1px solid #fff; border-radius: 4px;" src="https://cdn.99pandit.com/images/cta/appstore.webp" height="50" width="150" alt="99Pandit App" loading="lazy"> 1768 </a> 1769 </li> 1770 </ul> 1771 </div> 1772 </div> 1773 </div> 1774 1775 <!-- Popular Searches --> 1776 <div class="row py-3 footer-popular-links"> 1777 <div class="col-12"> 1778 <span class="text-white footer-heading">Popular Searches</span> 1779 <ul class="quick_links footer-popular-links__list"> 1780 <li><a href="https://99pandit.com/cities/ujjain/kaal-sarp-dosh-puja/">Kaal Sarp Dosh Puja in Ujjain</a></li> 1781 <li><a href="https://99pandit.com/cities/ujjain/pitra-dosh-puja/">Pitra Dosh Puja in Ujjain</a></li> 1782 <li><a href="https://99pandit.com/cities/bangalore/griha-pravesh-puja-pandit/">Griha Pravesh Puja in Bangalore</a></li> 1783 <li><a href="https://99pandit.com/cities/haridwar/pitra-dosh-puja/">Pitra Dosh Puja in Haridwar</a></li> 1784 <li><a href="https://99pandit.com/cities/haridwar/narayan-bali-puja/">Narayan Bali Puja in Haridwar</a></li> 1785 <li><a href="https://99pandit.com/cities/bangalore/satyanarayan-puja-pandit/">Satyanarayan Puja in Bangalore</a></li> 1786 </ul> 1787 </div> 1788 </div> 1789 </div> 1790 </footer> 1791 1792 <!-- Copyright Bar (#f39b59) --> 1793 <footer class="container-fluid py-3 text-center pandit_copy_right" style="background-color: #f39b59 !important;"> 1794 <div class="container"> 1795 <div class="row"> 1796 <div class="col" style="text-align: left;">
1797 <span class="text-white fw-bold" style="font-size: 13px;">Copyright © 2026 | 99Pandit</span> 1798 <span style="color: #fff; padding: 5px 15px; margin-left: 10px; font-weight: 600; font-size: 13px;">[DVIJVIDMAN SERVICES PRIVATE LIMITED]</span> 1799 </div> 1800 <div class="col footer-quick-links"> 1801 <ul class="quick_links_footer desktop-footer-links"> 1802 <li><a rel="privacy-policy" href="https://99pandit.com/privacy-policy/">Privacy Policy</a></li> 1803 <li><a href="https://99pandit.com/refund-policy/">Cancellation and Refund Policy</a></li> 1804 <li><a href="https://99pandit.com/terms-and-conditions/">Terms and Conditions</a></li> 1805 <li><a href="https://99pandit.com/contact-us/">Contact Us</a></li> 1806 <li><a href="https://99pandit.com/shipping-policy/">Shipping Policy</a></li> 1807 </ul> 1808 </div> 1809 </div> 1810 </div> 1811 </footer> 1812 1813 <!-- SEO Accordion Section (White Background, Dark Brown Text #3e2723) --> 1814 <footer class="mb-3 mt-3"> 1815 <div class="container"> 1816 <div class="links-footer"> 1817 <div class="links-footer-icon-txt"> 1818 <span>Verified Pandits for E-Puja, Group Puja, and Sacred Ceremonies</span> 1819 <div class="links-footer-icon" id="toggleDesktopLinks"> 1820 <span class="material-symbols-outlined notranslate" id="addLinks" style="display:none;" aria-hidden="true" translate="no">add</span> 1821 </div> 1822 </div> 1823 1824 <div class="links-footer-urls active" id="linksFooterUrls"> 1825 <div class="links-footer-blog"> 1826 <span class="footer-ll">India's Smart Platform for Online Pandit Booking</span> 1827 <p>99Pandit is India's most trusted destination to book a pandit online for all Vedic rituals and ceremonies. We bridge the distance between ancient traditions and modern lifestyles by providing access to verified, experienced priests at your doorstep. Whether you are looking to book an online pooja for a small home ceremony or a large-scale community event, our platform ensures every ritual is performed with absolute "Shastrokta Vidhi" (scriptural accuracy).</p> 1828 1829 <span class="footer-ll">Online Pandit for Puja with Live Streaming Services</span> 1830 <p>Our expert priests specialise in a wide range of ceremonies. From the highly auspicious griha pravesh puja to start your journey in a new home, to specialised ceremonies like Satyanarayana Vrat, Lakshmi Puja, and Vastu Shanti, we cover it all. If you are specifically looking for a pandit for puja to handle complex rituals, our team ensures a hassle-free experience by providing end-to-end management, including high-quality puja samagri and Muhurat consultation. For devotees living abroad or unable to attend in person, we also offer a dedicated online pandit for puja through our advanced online puja streaming services.</p> 1831 1832 <span class="footer-ll">Your Go-To Platform for "Pandit Near Me" Searches</span> 1833 <p>We understand that cultural nuances matter. That's why we offer region-specific services, such as finding a North Indian Pandit in Bangalore, a Bihari Pandit in Bangalore, or specialised Bengali, Marathi, Telugu, and Kannada priests. 99Pandit has a massive network of local experts, making us the top choice when you search for a "pandit near me." Our presence spans across major hubs like Delhi NCR, Pune, Hyderabad, and Chennai, ensuring that no matter where you are, a qualified priest is just a click away.</p> 1834 </div> 1835 1836 <!-- Dynamic E-Puja Links --> 1837 <div class="links-footer-blog mt-3"> 1838 <div class="links-footer-urls-items mt-2"> 1839 <span class="footer-ll">99Pandit E-Puja</span>
1840 <div class="blog-category-url mt-2"> 1841 <a href="https://99pandit.com/App/e-puja/varshika-shraddha-puja" class="city-footer-link"> 1842 Varshika Shraddha Puja 1843 </a> 1844 <a href="https://99pandit.com/App/e-puja/bharani-shraddha-puja" class="city-footer-link"> 1845 Bharani Shraddha Puja 1846 </a> 1847 <a href="https://99pandit.com/App/e-puja/tripindi-shradh-puja" class="city-footer-link"> 1848 Tripindi Shradh Puja 1849 </a> 1850 <a href="https://99pandit.com/App/e-puja/pind-daan-e-puja" class="city-footer-link"> 1851 Pind Daan E-Puja 1852 </a> 1853 <a href="https://99pandit.com/App/e-puja/vishwakarma-e-puja" class="city-footer-link"> 1854 Vishwakarma E-Puja 1855 </a> 1856 <a href="https://99pandit.com/App/e-puja/ganesh-visarjan-e-puja" class="city-footer-link"> 1857 Ganesh Visarjan E-Puja 1858 </a> 1859 <a href="https://99pandit.com/App/e-puja/ganesh-chaturthi-e-puja" class="city-footer-link"> 1860 Ganesh Chaturthi E-Puja 1861 </a> 1862 <a href="https://99pandit.com/App/e-puja/rudrabhishek-e-puja" class="city-footer-link"> 1863 Rudrabhishek E-Puja 1864 </a> 1865 <a href="https://99pandit.com/App/e-puja/das-mahavidya-puja" class="city-footer-link"> 1866 Das Mahavidya Puja 1867 </a> 1868 <a href="https://99pandit.com/App/e-puja/rahu-ketu-shanti-puja" class="city-footer-link"> 1869 Rahu Ketu Shanti Puja 1870 </a> 1871 <a href="https://99pandit.com/App/e-puja/brahman-bhoj" class="city-footer-link"> 1872 Brahman Bhoj 1873 </a> 1874 <a href="https://99pandit.com/App/e-puja/nav-chandi-puja" class="city-footer-link"> 1875 Nav Chandi Puja 1876 </a> 1877 <a href="https://99pandit.com/App/e-puja/guru-chandal-dosh-puja" class="city-footer-link"> 1878 Guru Chandal Dosh Puja 1879 </a> 1880 <a href="https://99pandit.com/App/e-puja/mahamrityunjaya-jaap-puja" class="city-footer-link"> 1881 Mahamrityunjaya Jaap Puja 1882 </a> 1883 <a href="https://99pandit.com/App/e-puja/baglamukhi-puja" class="city-footer-link"> 1884 Baglamukhi Puja 1885 </a> 1886 </div> 1887 </div> 1888 </div> 1889 1890 <!-- Dynamic Group Puja Links --> 1891 <div class="links-footer-blog mt-3"> 1892 <div class="links-footer-urls-items mt-2">
1893 <span class="footer-ll">99Pandit Group-Puja</span> 1894 <div class="blog-category-url mt-2"> 1895 <a href="https://99pandit.com/App/group-puja/mahakaleshwar-jyotirlinga-chadava" class="city-footer-link"> 1896 Mahakaleshwar Jyotirlinga Chadava 1897 </a> 1898 <a href="https://99pandit.com/App/group-puja/ganesh-chaturthi-online-group-puja" class="city-footer-link"> 1899 Ganesh Chaturthi Online Group Puja 1900 </a> 1901 </div> 1902 </div> 1903 </div> 1904 1905 <!-- Dynamic Celebration Puja Links --> 1906 <div class="links-footer-blog mt-3"> 1907 <div class="links-footer-urls-items mt-2"> 1908 <span class="footer-ll">99Pandit Celebration Pujas</span>
1909 <div class="blog-category-url mt-2"> 1910 <a href="https://99pandit.com/App/celebration-puja/birthday-celebration-puja" class="city-footer-link"> 1911 Birthday Celebration Puja 1912 </a> 1913 </div> 1914 </div> 1915 </div> 1916 </div> 1917 </div> 1918 </div> 1919 </footer> 1920</div> 1921 1922 1923<style> 1924/* ââ Desktop Popular Searches Inline Style (Matching User Screenshot) ââ */ 1925@media (min-width: 768px) { 1926 .footer-popular-links { 1927 border-top: 1px solid rgba(255, 255, 255, 0.25) !important; 1928 padding-top: 20px !important; 1929 margin-top: 20px !important; 1930 } 1931 .footer-popular-links .footer-heading { 1932 font-size: 24px !important; 1933 font-weight: 500 !important; 1934 color: #ffffff !important; 1935 display: inline-block !important; 1936 margin-bottom: 14px !important; 1937 border-bottom: 1px solid rgba(255, 255, 255, 0.7) !important; 1938 padding-bottom: 4px !important; 1939 } 1940 .footer-popular-links__list { 1941 display: flex !important; 1942 flex-direction: row !important; 1943 flex-wrap: nowrap !important; 1944 justify-content: space-between !important; 1945 align-items: center !important; 1946 gap: 8px !important; 1947 padding-left: 0 !important; 1948 margin: 6px 0 0 0 !important; 1949 list-style: none !important; 1950 } 1951 .footer-popular-links__list li { 1952 display: inline-block !important; 1953 margin: 0 !important; 1954 padding: 0 !important; 1955 list-style: none !important; 1956 flex-shrink: 0; 1957 } 1958 .footer-popular-links__list li a { 1959 color: #ffffff !important; 1960 text-decoration: none !important; 1961 font-size: 13px !important; 1962 font-weight: 400 !important; 1963 white-space: nowrap !important; 1964 transition: opacity 0.2s ease !important; 1965 } 1966 .footer-popular-links__list li a:hover { 1967 color: #ffffff !important; 1968 text-decoration: underline !important; 1969 opacity: 0.9 !important; 1970 } 1971 1972 /* Desktop Footer Brand Social Links Alignment */ 1973 .logo_social_links_mobile .social_links { 1974 display: flex !important; 1975 flex-direction: row !important; 1976 align-items: center !important; 1977 padding-left: 0 !important; 1978 margin-top: 1rem !important; 1979 margin-bottom: 0 !important; 1980 list-style: none !important; 1981 } 1982 .logo_social_links_mobile .social_links li { 1983 display: flex !important; 1984 align-items: center !important; 1985 justify-content: center !important; 1986 margin-right: 10px !important; 1987 margin-bottom: 0 !important; 1988 list-style: none !important; 1989 } 1990 .logo_social_links_mobile .social_links li a { 1991 width: 40px !important; 1992 height: 40px !important; 1993 padding: 0 !important; 1994 margin: 0 !important; 1995 border-radius: 50% !important; 1996 display: flex !important; 1997 align-items: center !important; 1998 justify-content: center !important; 1999 box-sizing: border-box !important; 2000 overflow: hidden !important; 2001 } 2002 .logo_social_links_mobile .social_links li a img { 2003 width: 40px !important; 2004 height: 40px !important; 2005 display: block !important; 2006 border-radius: 50% !important; 2007 } 2008 .logo_social_links_mobile .social_links li a.pinterest { 2009 width: 40px !important; 2010 height: 40px !important; 2011 background-color: #ffffff !important; 2012 border: 2px solid #e60023 !important; 2013 box-sizing: border-box !important; 2014 border-radius: 50% !important; 2015 display: flex !important; 2016 align-items: center !important; 2017 justify-content: center !important; 2018 padding: 0 !important; 2019 margin: 0 !important; 2020 } 2021 .logo_social_links_mobile .social_links li a.pinterest .np-icon-svg { 2022 display: flex !important; 2023 align-items: center !important; 2024 justify-content: center !important; 2025 width: 100% !important; 2026 height: 100% !important; 2027 line-height: 1 !important; 2028 } 2029 .logo_social_links_mobile .social_links li a.pinterest svg { 2030 display: block !important; 2031 } 2032 2033 /* App Badges in right column */ 2034 .social_links_decktop .social_links { 2035 display: block !important; 2036 list-style: none !important; 2037 padding: 0 !important; 2038 margin: 0 !important; 2039 } 2040 .social_links_decktop .social_links li { 2041 display: block !important; 2042 margin: 0 !important; 2043 padding: 0 !important; 2044 } 2045 .social_links_decktop .social_links li a { 2046 display: block !important; 2047 width: 150px !important; 2048 height: auto !important; 2049 border-radius: 0 !important; 2050 padding: 0 !important; 2051 margin: 0 !important; 2052 } 2053 .social_links_decktop .social_links li a img { 2054 width: 150px !important; 2055 height: 50px !important; 2056 display: block !important; 2057 border-radius: 4px !important; 2058 object-fit: contain !important; 2059 } 2060} 2061 2062/* ââ Exact Mobile Footer (Matching User's Screenshot 1:1) ââ */ 2063@media (max-width: 767.98px) { 2064 .np-mobile-footer-wrap { 2065 display: block !important; 2066 background: #ffffff !important; 2067 width: 100% !important; 2068 margin-top: 1.5rem !important; 2069 } 2070 .np-footer-top { 2071 background: #ffdec8 !important; 2072 padding: 24px 16px 18px 16px !important; 2073 } 2074 .np-footer-brand { 2075 display: flex !important; 2076 flex-direction: column !important; 2077 align-items: center !important; 2078 justify-content: center !important; 2079 text-align: center !important; 2080 } 2081 .np-footer-logo { 2082 width: 140px !important; 2083 height: auto !important; 2084 display: block !important; 2085 margin: 0 auto !important; 2086 } 2087 .np-mobile-social-links { 2088 display: flex !important; 2089 justify-content: center !important; 2090 align-items: center !important; 2091 gap: 12px !important; 2092 padding: 0 !important; 2093 margin: 14px 0 0 0 !important; 2094 list-style: none !important; 2095 } 2096 .np-mobile-social-links li { 2097 list-style: none !important; 2098 display: inline-block !important; 2099 margin: 0 !important; 2100 } 2101 .np-mobile-social-links li a { 2102 width: 40px !important; 2103 height: 40px !important; 2104 display: flex !important; 2105 align-items: center !important; 2106 justify-content: center !important; 2107 border-radius: 50% !important; 2108 padding: 0 !important; 2109 text-decoration: none !important; 2110 } 2111 .np-mobile-social-links li a img { 2112 width: 40px !important; 2113 height: 40px !important; 2114 } 2115 .np-mobile-social-links li a.pinterest { 2116 background-color: #ffffff !important; 2117 border: 2px solid #e60023 !important; 2118 } 2119 .np-mobile-popular-box { 2120 margin-top: 18px !important; 2121 margin-bottom: 16px !important; 2122 text-align: left !important; 2123 } 2124 .np-mobile-popular-title { 2125 font-size: 15px !important; 2126 font-weight: 600 !important; 2127 color: #2b2523 !important; 2128 margin-bottom: 10px !important; 2129 display: block !important; 2130 } 2131 .np-mobile-popular-grid { 2132 display: grid !important; 2133 grid-template-columns: 1fr 1fr !important; 2134 column-gap: 12px !important; 2135 row-gap: 8px !important; 2136 padding: 0 !important; 2137 margin: 0 !important; 2138 list-style: none !important; 2139 } 2140 .np-mobile-popular-grid li { 2141 list-style: none !important; 2142 margin: 0 !important; 2143 } 2144 .np-mobile-popular-grid li a { 2145 color: #2b2523 !important; 2146 font-size: 12px !important; 2147 line-height: 1.35 !important; 2148 text-decoration: none !important; 2149 display: block !important; 2150 } 2151 .np-mobile-popular-grid li a:hover { 2152 text-decoration: underline !important; 2153 } 2154 .np-mobile-contact-info { 2155 text-align: center !important; 2156 margin-top: 14px !important; 2157 } 2158 .np-mobile-company-name { 2159 font-size: 12px !important; 2160 font-weight: 600 !important; 2161 color: #3e2723 !important; 2162 margin-bottom: 6px !important; 2163 } 2164 .np-mobile-contact-line { 2165 font-size: 12px !important; 2166 color: #3e2723 !important; 2167 margin: 0 !important; 2168 display: flex !important; 2169 justify-content: center !important; 2170 align-items: center !important; 2171 gap: 18px !important; 2172 flex-wrap: wrap !important; 2173 } 2174 .np-mobile-contact-line b { 2175 font-weight: 700 !important; 2176 } 2177 .np-footer-copyright { 2178 background: #f6f4f4 !important; 2179 padding: 10px 16px !important; 2180 text-align: center !important; 2181 color: #222222 !important; 2182 font-size: 13.5px !important; 2183 font-weight: 700 !important; 2184 } 2185 .np-footer-bar { 2186 background-color: var(--np-saffron, #f37420) !important; 2187 padding: 10px 12px !important; 2188 text-align: center !important; 2189 } 2190 .np-footer-legal__list { 2191 display: flex !important; 2192 flex-wrap: wrap !important; 2193 justify-content: center !important; 2194 align-items: center !important; 2195 column-gap: 14px !important; 2196 row-gap: 6px !important; 2197 list-style: none !important; 2198 padding: 0 !important; 2199 margin: 0 !important; 2200 } 2201 .np-footer-legal__list li { 2202 margin: 0 !important; 2203 padding: 0 !important; 2204 display: inline-flex !important; 2205 align-items: center !important; 2206 } 2207 .np-footer-legal__list li:after { 2208 content: "|" !important; 2209 color: rgba(255, 255, 255, 0.7) !important; 2210 margin-left: 14px !important; 2211 font-size: 11px !important; 2212 } 2213 .np-footer-legal__list li:last-child:after { 2214 content: "" !important; 2215 margin: 0 !important; 2216 } 2217 .np-footer-legal__list li a { 2218 color: #ffffff !important; 2219 font-size: 12px !important; 2220 font-weight: 500 !important; 2221 text-decoration: none !important; 2222 white-space: nowrap !important; 2223 } 2224 .np-footer-seo-wrap { 2225 padding: 16px 16px 36px 16px !important; 2226 background: #ffffff !important; 2227 text-align: left !important; 2228 } 2229 .np-footer-seo-wrap__head { 2230 font-size: 15.5px !important; 2231 font-weight: 700 !important; 2232 color: #222222 !important; 2233 margin-bottom: 12px !important; 2234 line-height: 1.4 !important; 2235 } 2236 .np-footer-seo__heading { 2237 display: block !important; 2238 font-size: 13.5px !important; 2239 font-weight: 600 !important; 2240 color: #333333 !important; 2241 margin-top: 12px !important; 2242 margin-bottom: 4px !important; 2243 line-height: 1.4 !important; 2244 } 2245 .np-footer-seo__text { 2246 font-size: 11.5px !important; 2247 line-height: 1.65 !important; 2248 color: #666666 !important; 2249 margin: 0 0 8px 0 !important; 2250 } 2251} 2252</style> 2253 2254<!-- ========================================================================== 2255 2. MOBILE FOOTER (Visible on Screens < 768px: d-block d-md-none) 2256 Exact 1:1 Match with User Screenshot & WordPress footermobile.php
2257 Peach Background + 99Pandit Logo + Dark Popular Searches + Orange Bar 2258 ========================================================================== --> 2259<div class="d-block d-md-none np-mobile-footer-wrap"> 2260 <!-- Top Peach Section --> 2261 <div class="container-fluid np-footer-top"> 2262 <!-- Logo & Social Icons --> 2263 <div class="np-footer-brand"> 2264 <a href="https://99pandit.com"> 2265 <img src="https://cdn.99pandit.com/optimizedimage/mobile-optimized-images/pandit-logo-mobile_2.webp" class="img-fluid np-footer-logo" alt="99Pandit Logo" width="140" height="45"> 2266 </a> 2267 <ul class="np-mobile-social-links"> 2268 <li> 2269 <a href="https://www.facebook.com/99pandit" target="_blank" aria-label="Facebook"> 2270 <img src="https://cdn.99pandit.com/images/footer/facebook.png" class="img-fluid" alt="Facebook" width="42" height="42"> 2271 </a> 2272 </li> 2273 <li> 2274 <a href="https://www.instagram.com/99panditpuja/" target="_blank" aria-label="Instagram"> 2275 <img src="https://cdn.99pandit.com/images/footer/insta.png" class="img-fluid" alt="Instagram" width="42" height="42"> 2276 </a> 2277 </li> 2278 <li> 2279 <a href="https://www.youtube.com/channel/UCGH1GXsKjVIw-mD4Qvz1FsQ" target="_blank" aria-label="Youtube"> 2280 <img src="https://cdn.99pandit.com/images/footer/youtube.png" class="img-fluid" alt="Youtube" width="42" height="42"> 2281 </a> 2282 </li> 2283 <li> 2284 <a href="https://in.pinterest.com/99panditservice/" class="pinterest" aria-label="Pinterest" target="_blank"> 2285 <span class="np-icon-svg" aria-hidden="true"> 2286 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" width="18" height="18" fill="#e60023"> 2287 <path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.4 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"/> 2288 </svg> 2289 </span> 2290 </a> 2291 </li> 2292 </ul> 2293 </div> 2294 2295 <!-- Popular Searches (2-Column Grid as in Screenshot) --> 2296 <div class="np-mobile-popular-box"> 2297 <span class="np-mobile-popular-title">Popular Searches</span> 2298 <ul class="np-mobile-popular-grid"> 2299 <li><a href="https://99pandit.com/cities/ujjain/kaal-sarp-dosh-puja/">Kaal Sarp Dosh Puja in Ujjain</a></li> 2300 <li><a href="https://99pandit.com/cities/ujjain/pitra-dosh-puja/">Pitra Dosh Puja in Ujjain</a></li> 2301 <li><a href="https://99pandit.com/cities/bangalore/griha-pravesh-puja-pandit/">Griha Pravesh Puja in Bangalore</a></li> 2302 <li><a href="https://99pandit.com/cities/haridwar/pitra-dosh-puja/">Pitra Dosh Puja in Haridwar</a></li> 2303 <li><a href="https://99pandit.com/cities/haridwar/narayan-bali-puja/">Narayan Bali Puja in Haridwar</a></li> 2304 <li><a href="https://99pandit.com/cities/bangalore/satyanarayan-puja-pandit/">Satyanarayan Puja in Bangalore</a></li> 2305 </ul> 2306 </div> 2307 2308 <!-- Contact & Legal Details --> 2309 <div class="np-mobile-contact-info"> 2310 <p class="np-mobile-company-name">[DVIJVIDMAN SERVICES PRIVATE LIMITED]</p> 2311 <p class="np-mobile-contact-line"> 2312 <span><b>Email :</b> <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d6bfb8b0b996efefa6b7b8b2bfa2f8b5b9bb">[email protected]</a></span>
2313 <span><b>Phone:</b> 8005663275</span> 2314 </p> 2315 </div> 2316 </div> 2317 2318 <!-- Light Gray Copyright Bar --> 2319 <div class="np-footer-copyright"> 2320 <span>Copyright © 2026 | 99Pandit</span> 2321 </div> 2322 2323 <!-- Saffron Legal Links Bar (White text separated by |) --> 2324 <div class="np-footer-bar"> 2325 <ul class="np-footer-legal__list"> 2326 <li><a rel="privacy-policy" href="https://99pandit.com/privacy-policy/">Privacy Policy</a></li> 2327 <li><a href="https://99pandit.com/refund-policy/">Refund Policy</a></li> 2328 <li><a href="https://99pandit.com/terms-and-conditions/">Terms and Conditions</a></li> 2329 <li><a href="https://99pandit.com/shipping-policy/">Shipping policy</a></li> 2330 <li><a href="https://99pandit.com/html-sitemap/">Sitemap</a></li> 2331 </ul> 2332 </div> 2333 2334 <!-- White SEO Section --> 2335 <div class="np-footer-seo-wrap"> 2336 <div class="np-footer-seo-wrap__head"> 2337 Verified Pandits for Puja, Rituals & Sacred Ceremonies 2338 </div> 2339 2340 <div class="np-footer-seo__block"> 2341 <span class="np-footer-seo__heading">India's Smart Platform for Online Pandit Booking</span> 2342 <p class="np-footer-seo__text">99Pandit is India's most trusted destination to book a pandit online for all Vedic rituals and ceremonies. We bridge the distance between ancient traditions and modern lifestyles by providing access to verified, experienced priests at your doorstep. Whether you are looking to book an online pooja for a small home ceremony, our platform ensures every ritual is performed with absolute Shastrokta Vidhi.</p> 2343 </div> 2344 2345 <div class="np-footer-seo__block"> 2346 <span class="np-footer-seo__heading">Online Pandit for Puja with Live Streaming Services</span> 2347 <p class="np-footer-seo__text">Our expert priests specialise in a wide range of ceremonies. From the highly auspicious griha pravesh puja to specialised ceremonies like Satyanarayana Vrat, Lakshmi Puja, and Vastu Shanti, we cover it all. For devotees abroad, we also offer online puja with live streaming services.</p> 2348 </div> 2349 2350 <!-- Dynamic E-Puja Links (Mobile) --> 2351 <div class="mt-3"> 2352 <span class="np-footer-seo__heading">99Pandit E-Puja</span> 2353 <div class="d-flex flex-wrap gap-2 mt-1"> 2354 <a href="https://99pandit.com/App/e-puja/varshika-shraddha-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2355 Varshika Shraddha Puja 2356 </a> 2357 <a href="https://99pandit.com/App/e-puja/bharani-shraddha-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2358 Bharani Shraddha Puja 2359 </a> 2360 <a href="https://99pandit.com/App/e-puja/tripindi-shradh-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2361 Tripindi Shradh Puja 2362 </a> 2363 <a href="https://99pandit.com/App/e-puja/pind-daan-e-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2364 Pind Daan E-Puja 2365 </a> 2366 <a href="https://99pandit.com/App/e-puja/vishwakarma-e-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2367 Vishwakarma E-Puja 2368 </a> 2369 <a href="https://99pandit.com/App/e-puja/ganesh-visarjan-e-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2370 Ganesh Visarjan E-Puja 2371 </a> 2372 <a href="https://99pandit.com/App/e-puja/ganesh-chaturthi-e-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2373 Ganesh Chaturthi E-Puja 2374 </a> 2375 <a href="https://99pandit.com/App/e-puja/rudrabhishek-e-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2376 Rudrabhishek E-Puja 2377 </a> 2378 <a href="https://99pandit.com/App/e-puja/das-mahavidya-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2379 Das Mahavidya Puja 2380 </a> 2381 <a href="https://99pandit.com/App/e-puja/rahu-ketu-shanti-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2382 Rahu Ketu Shanti Puja 2383 </a> 2384 <a href="https://99pandit.com/App/e-puja/brahman-bhoj" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2385 Brahman Bhoj 2386 </a> 2387 <a href="https://99pandit.com/App/e-puja/nav-chandi-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2388 Nav Chandi Puja 2389 </a> 2390 <a href="https://99pandit.com/App/e-puja/guru-chandal
2390-dosh-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2391 Guru Chandal Dosh Puja 2392 </a> 2393 <a href="https://99pandit.com/App/e-puja/mahamrityunjaya-jaap-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2394 Mahamrityunjaya Jaap Puja 2395 </a> 2396 <a href="https://99pandit.com/App/e-puja/baglamukhi-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2397 Baglamukhi Puja 2398 </a> 2399 </div> 2400 </div> 2401 2402 <!-- Dynamic Group Puja Links (Mobile) --> 2403 <div class="mt-2"> 2404 <span class="np-footer-seo__heading">99Pandit Group-Puja</span> 2405 <div class="d-flex flex-wrap gap-2 mt-1"> 2406 <a href="https://99pandit.com/App/group-puja/mahakaleshwar-jyotirlinga-chadava" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2407 Mahakaleshwar Jyotirlinga Chadava 2408 </a> 2409 <a href="https://99pandit.com/App/group-puja/ganesh-chaturthi-online-group-puja" style="color: #3e2723; font-size: 11px; text-decoration: underline;"> 2410 Ganesh Chaturthi Online Group Puja 2411 </a> 2412 </div> 2413 </div> 2414 </div> 2415</div> 2416 2417 2418<!-- Global Loading Overlay --> 2419<div id="loadingOverlay" 2420 class="d-none position-fixed top-0 start-0 w-100 h-100 bg-dark bg-opacity-50 d-flex flex-column justify-content-center align-items-center" 2421 style="z-index: 1055;"> 2422 <div class="loader-wrapper position-relative mb-3"> 2423 <div class="outer-circle"></div> 2424 <div class="inner-circle"></div> 2425 <div class="percentage-text position-absolute top-50 start-50 translate-middle fw-bold text-white" id="loadingPercentage">0%</div> 2426 </div> 2427 <div id="loadingMessage" class="text-white fw-bold">Processingâ¦</div> 2428</div> 2429 2430<!-- Scripts -->
vendor: 109 bytes, lines 2430-2431
2430 2431<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
2431<script type="203ab9795843d8aeeec027b7-text/javascript"> 2432let loaderInterval = null; 2433let currentPercent = 0; 2434 2435function showLoader(message = "Processingâ¦") { 2436 $('#loadingOverlay').removeClass('d-none'); 2437 $('#loadingMessage').text(message); 2438 $('#loadingPercentage').text("0%"); 2439 currentPercent = 0; 2440 2441 loaderInterval = setInterval(() => { 2442 if (currentPercent < 90) { 2443 currentPercent += 1; 2444 $('#loadingPercentage').text(currentPercent + "%"); 2445 } 2446 }, 100); 2447} 2448 2449function hideLoader() { 2450 if (loaderInterval) clearInterval(loaderInterval); 2451 $('#loadingPercentage').text("100%"); 2452 setTimeout(() => { 2453 $('#loadingOverlay').addClass('d-none'); 2454 }, 300); 2455} 2456 2457// Client-side live search filter for cards 2458document.addEventListener("DOMContentLoaded", function () { 2459 const searchInput = document.getElementById("search-puja"); 2460 const cards = document.querySelectorAll(".card-holder"); 2461 2462 if (searchInput) { 2463 searchInput.addEventListener("keyup", function () { 2464 const searchValue = this.value.toLowerCase().trim(); 2465 2466 cards.forEach(function (card) { 2467 const pujaName = card.querySelector(".pujaName") 2468 ?.innerText 2469 .toLowerCase(); 2470 2471 if (pujaName && pujaName.includes(searchValue)) { 2472 card.style.display = "block"; 2473 } else { 2474 card.style.display = "none"; 2475 } 2476 }); 2477 }); 2478 } 2479}); 2480 2481// Accordion Toggle for Desktop SEO Links Section 2482document.addEventListener("DOMContentLoaded", function () { 2483 const toggleBtn = document.getElementById("toggleDesktopLinks"); 2484 const addLinks = document.getElementById("addLinks"); 2485 const linksUrls = document.getElementById("linksFooterUrls"); 2486 2487 if (toggleBtn && linksUrls) { 2488 toggleBtn.addEventListener("click", function () { 2489 const isActive = linksUrls.classList.contains("active"); 2490 if (isActive) { 2491 linksUrls.classList.remove("active"); 2492 if (addLinks) addLinks.style.display = "flex"; 2493 } else { 2494 linksUrls.classList.add("active"); 2495 if (addLinks) addLinks.style.display = "none"; 2496 } 2497 }); 2498 } 2499}); 2500</script>
2500 2501 2502<!--
2502<script src="https://cdn.99pandit.com/app/js/jquery-3.6.0.min.js" defer></script>
2502--> 2503 2504<!--
2504<script src="https://cdn.99pandit.com/app/js/swiper-bundle.min.js" defer></script>
2504-->
2505<script src="https://cdn.99pandit.com/app/js/bootstrap.bundle.min.js" defer type="203ab9795843d8aeeec027b7-text/javascript"></script>
2505 2506<!--
2506<script async type="text/javascript" src="https://cdn.99pandit.com/app/js/bootstrap.bundle.min.js"></script>
2506-->
2507<script defer type="203ab9795843d8aeeec027b7-text/javascript" src="https://cdn.99pandit.com/app/js/flatpickr.js"></script>
2507 2508
2509<script type="203ab9795843d8aeeec027b7-text/javascript"> 2510 document.addEventListener("DOMContentLoaded", function () { 2511 const _calEl = document.getElementById("calendarInput"); 2512 if (_calEl && !_calEl._flatpickr) { 2513 const today = new Date(); 2514 today.setHours(0, 0, 0, 0); 2515 flatpickr(_calEl, { 2516 altInput: true, 2517 altFormat: "d/m/Y", 2518 dateFormat: "Y-m-d", 2519 allowInput: false, 2520 disableMobile: true, 2521 minDate: today, 2522 defaultDate: _calEl.value || null 2523 }); 2524 } 2525 }); 2526</script>
2526 2527
2528<script type="203ab9795843d8aeeec027b7-text/javascript"> 2529 // Form validation 2530 const _astrologyForm = document.getElementById("astrologyCartForm"); 2531 if (_astrologyForm) { 2532 _astrologyForm.addEventListener("submit", function (e) { 2533 let isValid = true; 2534 2535 const requiredFields = [ 2536 "language_consultation", 2537 "preferred_date", 2538 "preferred_time", 2539 "place_birth", 2540 "dob", 2541 "time_birth" 2542 ]; 2543 2544 requiredFields.forEach(id => { 2545 const el = document.getElementById(id); 2546 if (!el || el.value.trim() === "") isValid = false; 2547 }); 2548 }); 2549 } 2550</script>
2550
2551<script type="203ab9795843d8aeeec027b7-text/javascript"> 2552 // Wait until the DOM is fully loaded 2553 document.addEventListener('DOMContentLoaded', function () { 2554 const astrologyModal = document.getElementById('astrologyModal'); 2555 const astrologyForm = document.getElementById('astrologyCartForm'); 2556 2557 if (astrologyModal && astrologyForm) { 2558 astrologyModal.addEventListener('hidden.bs.modal', function () { 2559 astrologyForm.reset(); 2560 }); 2561 } 2562 }); 2563</script>
2563
2564<script type="203ab9795843d8aeeec027b7-text/javascript"> 2565 const navLinks = document.querySelectorAll('.nav-menu a'); 2566 const currentURL = window.location.pathname; 2567 2568 navLinks.forEach(link => { 2569 if (link.getAttribute('href') === currentURL) { 2570 link.classList.add('active'); 2571 } else { 2572 link.classList.remove('active'); 2573 } 2574 }); 2575</script>
2575 2576<!--
2576<script src="https://app.getgabs.com/getredtowp/iframe/dWBFUUP7RmkXg33zds1HBWeskkCGj1xcUyha07O9PFVkoPL7wXo8JW8GVqsJqgPUUHc77CAtdK9nxkxYUngTkaLnIvuZ2pkbH8px" async></script>
2576--> 2577 2578 2579<div class="modal fade" id="commonAlertModal" tabindex="-1" aria-hidden="true" aria-labelledby="commonAlertModalTitle"> 2580 <div class="modal-dialog modal-dialog-centered"> 2581 <div class="modal-content"> 2582 <div class="modal-header"> 2583 <h5 class="modal-title" id="commonAlertModalTitle">Alert</h5> 2584 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 2585 </div> 2586 <div class="modal-body" id="commonAlertMessage"></div> 2587 <div class="modal-footer"> 2588 <button type="button" class="btn btn-primary" data-bs-dismiss="modal">OK</button> 2589 </div> 2590 </div> 2591 </div> 2592</div>
2593<script type="203ab9795843d8aeeec027b7-text/javascript"> 2594 // Reusable alert â showAlertModal('message') (optional 2nd arg = title) from anywhere. 2595 window.showAlertModal = function (message, title) { 2596 var msgEl = document.getElementById('commonAlertMessage'); 2597 var titleEl = document.getElementById('commonAlertModalTitle'); 2598 if (msgEl) msgEl.textContent = message; 2599 if (titleEl) titleEl.textContent = title || 'Alert'; 2600 2601 var el = document.getElementById('commonAlertModal'); 2602 if (el && window.bootstrap && bootstrap.Modal) { 2603 bootstrap.Modal.getOrCreateInstance(el).show(); 2604 } else { 2605 window.alert(message); // fallback if Bootstrap JS isn't ready 2606 } 2607 }; 2608</script>
2608 2609 2610<div id="google_translate_element" style="display:none;" aria-hidden="true"></div> 2611 2612<button type="button" 2613 id="sideTranslateBtn" 2614 class="side-translate-pill notranslate" 2615 aria-label="Translate page to Hindi / English" 2616 title="हिà¤à¤¦à¥ मà¥à¤ दà¥à¤à¥à¤ / View in Hindi â drag to move"> 2617 <!-- Google 4-color dots --> 2618 <span class="g-dots" aria-hidden="true"> 2619 <span class="g-dot g-blue"></span> 2620 <span class="g-dot g-red"></span> 2621 <span class="g-dot g-yellow"></span> 2622 <span class="g-dot g-green"></span> 2623 </span> 2624 2625 <!-- Google Translate æA icon --> 2626 <span class="gt-icon" aria-hidden="true"> 2627 <span class="gt-wen">æ</span><span class="gt-letter-a">A</span> 2628 </span> 2629 2630 <!-- Text in black --> 2631 <span class="side-translate-text" id="sideTranslateText">हिà¤à¤¦à¥ मà¥à¤ दà¥à¤à¥à¤</span> 2632</button> 2633 2634<style> 2635 /* ââ Google Default Translator Side Floating Pill ââ */ 2636 .side-translate-pill { 2637 position: fixed; 2638 right: 12px; 2639 top: 48%; 2640 transform: translateY(-50%); 2641 z-index: 9998; 2642 display: inline-flex; 2643 align-items: center; 2644 gap: 8px; 2645 background: #ffffff; 2646 color: #000000 !important; 2647 border: 1px solid #dadce0; 2648 border-radius: 50px; 2649 padding: 9px 18px 9px 12px; 2650 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.08); 2651 cursor: grab; 2652 touch-action: none; 2653 font-family: 'Google Sans', 'Noto Sans', Roboto, -apple-system, BlinkMacSystemFont, Arial, sans-serif; 2654 font-size: 0.92rem; 2655 font-weight: 600; 2656 line-height: 1; 2657 text-decoration: none !important; 2658 outline: none; 2659 user-select: none; 2660 transition: box-shadow 0.2s ease, background-color 0.2s ease; 2661 } 2662 2663 .side-translate-pill.is-dragging { 2664 cursor: grabbing; 2665 transition: none !important; 2666 box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.14); 2667 } 2668 2669 .side-translate-pill.is-positioned { 2670 top: auto; 2671 right: auto; 2672 transform: none; 2673 } 2674 2675 .side-translate-pill:hover, 2676 .side-translate-pill:focus-visible { 2677 background: #f8f9fa; 2678 color: #000000 !important; 2679 border-color: #c4c7c5; 2680 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.1); 2681 } 2682 2683 .side-translate-pill:not(.is-positioned):hover, 2684 .side-translate-pill:not(.is-positioned):focus-visible { 2685 transform: translateY(-50%) translateX(-3px); 2686 } 2687 2688 .side-translate-pill:active { 2689 background: #f1f3f4; 2690 } 2691 2692 .side-translate-pill:not(.is-positioned):active { 2693 transform: translateY(-50%) translateX(-1px); 2694 } 2695 2696 /* Google 4-color dots */ 2697 .g-dots { 2698 display: inline-flex; 2699 align-items: center; 2700 gap: 3px; 2701 flex-shrink: 0; 2702 margin-right: 2px; 2703 } 2704 .g-dot { 2705 border-radius: 50%; 2706 display: inline-block; 2707 } 2708 .g-dot.g-blue { width: 8px; height: 8px; background-color: #4285f4; } 2709 .g-dot.g-red { width: 7px; height: 7px; background-color: #ea4335; } 2710 .g-dot.g-yellow { width: 7px; height: 7px; background-color: #fbbc05; } 2711 .g-dot.g-green { width: 5px; height: 5px; background-color: #34a853; } 2712 2713 /* Google Translate æA icon */ 2714 .gt-icon { 2715 display: inline-flex; 2716 align-items: baseline; 2717 flex-shrink: 0; 2718 line-height: 1; 2719 font-family: Arial, sans-serif; 2720 } 2721 .gt-wen { 2722 color: #34a853; 2723 font-weight: 700; 2724 font-size: 1.05rem; 2725 line-height: 1; 2726 margin-right: -1px; 2727 } 2728 .gt-letter-a { 2729 color: #4285f4; 2730 font-weight: 800; 2731 font-size: 1.05rem; 2732 line-height: 1; 2733 } 2734 2735 /* Text */ 2736 .side-translate-text { 2737 color: #000000 !important; 2738 font-weight: 600; 2739 letter-spacing: 0.1px; 2740 white-space: nowrap; 2741 } 2742 2743 /* Active Hindi state */ 2744 .side-translate-pill.is-hindi { 2745 border-color: #dadce0; 2746 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14); 2747 } 2748 .side-translate-pill.is-hindi .side-translate-text { 2749 color: #000000 !important; 2750 } 2751 2752 /* ââ Google Translate Top Banner & Fixed Header Alignment ââ */ 2753 :root { 2754 --gt-banner-height: 0px; 2755 } 2756 2757 /* Shift fixed navbar down when Hindi translation / Google Translate is active */ 2758 html.translated-ltr { 2759 --gt-banner-height: 40px; 2760 } 2761 2762 html.translated-ltr .navbar.fixed-top, 2763 html.translated-ltr .header.fixed-top, 2764 html.translated-ltr nav.fixed-top, 2765 html.translated-ltr .fixed-top { 2766 top: var(--gt-banner-height, 40px) !important; 2767 } 2768
2769 /* Keep tooltips and text highlights clean without interfering with body or iframe layout */ 2770 #goog-gt-tt, 2771 .goog-te-balloon-frame { 2772 display: none !important; 2773 } 2774 .goog-text-highlight { 2775 background: none !important; 2776 box-shadow: none !important; 2777 } 2778 2779 /* Responsive adjustments */ 2780 @media (max-width: 767.98px) { 2781 .side-translate-pill { 2782 right: 8px; 2783 top: 40%; 2784 padding: 7px 13px 7px 9px; 2785 gap: 6px; 2786 font-size: 0.8rem; 2787 max-width: calc(100vw - 20px); 2788 overflow: hidden; 2789 } 2790 .g-dot.g-blue { width: 7px; height: 7px; } 2791 .g-dot.g-red { width: 6px; height: 6px; } 2792 .g-dot.g-yellow { width: 6px; height: 6px; } 2793 .g-dot.g-green { width: 4px; height: 4px; } 2794 .gt-wen, .gt-letter-a { font-size: 0.9rem; } 2795 } 2796</style> 2797
2798<script type="203ab9795843d8aeeec027b7-text/javascript"> 2799 /* Google Translate Integration */ 2800 function googleTranslateElementInit() { 2801 if (window.google && window.google.translate) { 2802 new window.google.translate.TranslateElement({ 2803 pageLanguage: 'en', 2804 includedLanguages: 'en,hi', 2805 layout: window.google.translate.TranslateElement.InlineLayout.SIMPLE, 2806 autoDisplay: false 2807 }, 'google_translate_element'); 2808 } 2809 } 2810 2811 (function () { 2812 // Load Google Translate API asynchronously 2813 var gtScript = document.createElement('script'); 2814 gtScript.type = 'text/javascript'; 2815 gtScript.async = true; 2816 gtScript.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; 2817 document.head.appendChild(gtScript); 2818 2819 function getCookie(name) { 2820 var value = '; ' + document.cookie; 2821 var parts = value.split('; ' + name + '='); 2822 if (parts.length === 2) return parts.pop().split(';').shift(); 2823 return ''; 2824 } 2825 2826 function setGoogtransCookie(lang) { 2827 var cookieVal = '/en/' + lang; 2828 var domain = window.location.hostname; 2829 document.cookie = 'googtrans=' + cookieVal + '; path=/;'; 2830 document.cookie = 'googtrans=' + cookieVal + '; path=/; domain=' + domain + ';'; 2831 2832 var hostParts = domain.split('.'); 2833 if (hostParts.length > 1 && !domain.match(/^\d{1,3}(\.\d{1,3}){3}$/)) { 2834 var rootDomain = '.' + hostParts.slice(-2).join('.'); 2835 document.cookie = 'googtrans=' + cookieVal + '; path=/; domain=' + rootDomain + ';'; 2836 } 2837 } 2838 2839 function isCurrentlyHindi() { 2840 var cookie = getCookie('googtrans'); 2841 if (cookie.indexOf('/hi') !== -1) return true; 2842 return document.documentElement.classList.contains('translated-ltr'); 2843 } 2844 2845 function updateButtonUI(isHindi) { 2846 var btn = document.getElementById('sideTranslateBtn'); 2847 var textEl = document.getElementById('sideTranslateText'); 2848 if (!btn || !textEl) return; 2849 2850 if (isHindi) { 2851 btn.classList.add('is-hindi'); 2852 textEl.textContent = 'See in English'; 2853 btn.setAttribute('title', 'See in English'); 2854 btn.setAttribute('aria-label', 'Switch page back to English'); 2855 } else { 2856 btn.classList.remove('is-hindi'); 2857 textEl.textContent = 'हिà¤à¤¦à¥ मà¥à¤ दà¥à¤à¥à¤'; 2858 btn.setAttribute('title', 'हिà¤à¤¦à¥ मà¥à¤ दà¥à¤à¥à¤ / View in Hindi'); 2859 btn.setAttribute('aria-label', 'Translate page to Hindi'); 2860 } 2861 } 2862 2863 function applyLanguage(targetLang) { 2864 setGoogtransCookie(targetLang); 2865 2866 var combo = document.querySelector('.goog-te-combo'); 2867 if (combo) { 2868 combo.value = targetLang; 2869 combo.dispatchEvent(new Event('change')); 2870 updateButtonUI(targetLang === 'hi'); 2871 } else { 2872 window.location.reload(); 2873 } 2874 } 2875 2876 window.toggleSiteLanguage = function () { 2877 var toHindi = !isCurrentlyHindi(); 2878 applyLanguage(toHindi ? 'hi' : 'en'); 2879 }; 2880 2881 // Check URL params (?tradition=hindi or ?lang=hi) 2882 var urlParams = new URLSearchParams(window.location.search); 2883 var requestedHindi = urlParams.get('tradition') === 'hindi' || urlParams.get('lang') === 'hi'; 2884 2885 if (requestedHindi && !isCurrentlyHindi()) { 2886 setGoogtransCookie('hi'); 2887 } 2888 2889 function updateBannerOffset() { 2890 var isTranslated = document.documentElement.classList.contains('translated-ltr') || isCurrentlyHindi(); 2891 var bodyTop = parseInt(document.body ? document.body.style.top : 0, 10); 2892 2893 if (!isNaN(bodyTop) && bodyTop > 0) { 2894 document.documentElement.style.setProperty('--gt-banner-height', bodyTop + 'px'); 2895 } else if (bodyTop === 0 && !isCurrentlyHindi()) { 2896 document.documentElement.style.setProperty('--gt-banner-height', '0px'); 2897 } else if (isTranslated) { 2898 document.documentElement.style.setProperty('--gt-banner-height', '40px'); 2899 } else { 2900 document.documentElement.style.setProperty('--gt-banner-height', '0px'); 2901 } 2902 } 2903 2904 // Initialize button label and header offset once DOM is ready 2905 document.addEventListener('DOMContentLoaded', function () { 2906 var inHindi = isCurrentlyHindi(); 2907 updateButtonUI(inHindi); 2908 updateBannerOffset(); 2909 2910 // Observe changes to <html> class and <body> style to keep header perfectly aligned 2911 if (window.MutationObserver) { 2912 var observer = new MutationObserver(function () { 2913 updateButtonUI(isCurrentlyHindi()); 2914 updateBannerOffset(); 2915 }); 2916 2917 observer.observe(document.documentElement, { 2918 attributes: true, 2919 attributeFilter: ['class'] 2920 }); 2921 2922 if (document.body) { 2923 observer.observe(document.body, { 2924 attributes: true, 2925 attributeFilter: ['style'] 2926 }); 2927 } 2928 } 2929 2930 var checkCount = 0; 2931 var pollInterval = setInterval(function () { 2932 checkCount++; 2933 updateButtonUI(isCurrentlyHindi()); 2934 updateBannerOffset(); 2935 if (checkCount > 20) clearInterval(pollInterval); 2936 }, 500); 2937 }); 2938 })(); 2939 2940 // ââ Draggable positioning â persisted per-browser via localStorage so it stays put across every page on the site. 2941 (function () { 2942 var POSITION_KEY = 'sideTranslatePillPos'; 2943 var DRAG_THRESHOLD = 6; 2944 2945 document.addEventListener('DOMContentLoaded', function () { 2946 var btn = document.getElementById('sideTranslateBtn'); 2947 var gtEl = document.getElementById('google_translate_element'); 2948 if (!btn) return; 2949 2950 if (btn.parentElement !== document.body) { 2951 document.body.appendChild(btn); 2952 } 2953 if (gtEl && gtEl.parentElement !== document.body) { 2954 document.body.appendChild(gtEl); 2955 } 2956 2957 var dragging = false;
2958 var moved = false; 2959 var pointerId = null; 2960 var grabDX = 0; 2961 var grabDY = 0; 2962 var btnWidth = 0; 2963 var btnHeight = 0; 2964 var pendingLeft = null; 2965 var pendingTop = null; 2966 var rafId = null; 2967 2968 function clamp(value, min, max) { 2969 return Math.max(min, Math.min(max, value)); 2970 } 2971 2972 function viewportWidth() { 2973 return document.documentElement.clientWidth; 2974 } 2975 2976 function viewportHeight() { 2977 return document.documentElement.clientHeight; 2978 } 2979 2980 function applyPosition(left, top) { 2981 var w = btnWidth || btn.offsetWidth; 2982 var h = btnHeight || btn.offsetHeight; 2983 left = clamp(left, 0, Math.max(0, viewportWidth() - w)); 2984 top = clamp(top, 0, Math.max(0, viewportHeight() - h)); 2985 btn.style.left = left + 'px'; 2986 btn.style.top = top + 'px'; 2987 btn.classList.add('is-positioned'); 2988 return { left: left, top: top }; 2989 } 2990 2991 function flushPosition() { 2992 rafId = null; 2993 if (pendingLeft === null) return; 2994 applyPosition(pendingLeft, pendingTop); 2995 } 2996 2997 function schedulePosition(left, top) { 2998 pendingLeft = left; 2999 pendingTop = top; 3000 if (rafId === null) { 3001 rafId = requestAnimationFrame(flushPosition); 3002 } 3003 } 3004 3005 function savePosition(left, top) { 3006 try { 3007 localStorage.setItem(POSITION_KEY, JSON.stringify({ left: left, top: top })); 3008 } catch (e) { /* private-mode localStorage â non-fatal */ } 3009 } 3010 3011 function restorePosition() { 3012 var saved; 3013 try { 3014 saved = JSON.parse(localStorage.getItem(POSITION_KEY)); 3015 } catch (e) { 3016 saved = null; 3017 } 3018 if (saved && typeof saved.left === 'number' && typeof saved.top === 'number') { 3019 applyPosition(saved.left, saved.top); 3020 } 3021 } 3022 3023 function pointFromEvent(e) { 3024 if (e.touches && e.touches.length) return e.touches[0]; 3025 if (e.changedTouches && e.changedTouches.length) return e.changedTouches[0]; 3026 return e; 3027 } 3028 3029 function startDrag(e) { 3030 if (e.button !== undefined && e.button !== 0) return; 3031 var point = pointFromEvent(e); 3032 dragging = true; 3033 moved = false; 3034 pointerId = e.pointerId; 3035 var rect = btn.getBoundingClientRect(); 3036 btnWidth = rect.width; 3037 btnHeight = rect.height; 3038 grabDX = point.clientX - rect.left; 3039 grabDY = point.clientY - rect.top; 3040 btn.classList.add('is-dragging'); 3041 if (btn.setPointerCapture && pointerId !== undefined) { 3042 btn.setPointerCapture(pointerId); 3043 } 3044 if (e.cancelable) e.preventDefault(); 3045 } 3046 3047 function onDrag(e) { 3048 if (!dragging) return; 3049 if (e.cancelable) e.preventDefault(); 3050 var point = pointFromEvent(e); 3051 var targetLeft = point.clientX - grabDX; 3052 var targetTop = point.clientY - grabDY; 3053 if (!moved) { 3054 var startLeft = parseFloat(btn.style.left || btn.getBoundingClientRect().left); 3055 var startTop = parseFloat(btn.style.top || btn.getBoundingClientRect().top); 3056 if (Math.abs(targetLeft - startLeft) > DRAG_THRESHOLD || Math.abs(targetTop - startTop) > DRAG_THRESHOLD) { 3057 moved = true; 3058 } 3059 if (!moved) return; 3060 } 3061 schedulePosition(targetLeft, targetTop); 3062 } 3063 3064 function endDrag(e) { 3065 if (!dragging) return; 3066 dragging = false;
3067 btn.classList.remove('is-dragging'); 3068 if (btn.releasePointerCapture && pointerId !== undefined) { 3069 try { btn.releasePointerCapture(pointerId); } catch (err) { /* already released */ } 3070 } 3071 if (rafId !== null) { 3072 cancelAnimationFrame(rafId); 3073 flushPosition(); 3074 } 3075 if (moved) { 3076 var rect = btn.getBoundingClientRect(); 3077 savePosition(rect.left, rect.top); 3078 } 3079 } 3080 3081 if (window.PointerEvent) { 3082 btn.addEventListener('pointerdown', startDrag); 3083 btn.addEventListener('pointermove', onDrag); 3084 btn.addEventListener('pointerup', endDrag); 3085 btn.addEventListener('pointercancel', endDrag); 3086 } else { 3087 btn.addEventListener('touchstart', startDrag, { passive: false }); 3088 btn.addEventListener('touchmove', onDrag, { passive: false }); 3089 btn.addEventListener('touchend', endDrag); 3090 btn.addEventListener('touchcancel', endDrag); 3091 btn.addEventListener('mousedown', startDrag); 3092 document.addEventListener('mousemove', onDrag); 3093 document.addEventListener('mouseup', endDrag); 3094 } 3095 3096 btn.addEventListener('click', function (e) { 3097 if (moved) { 3098 e.preventDefault(); 3099 e.stopPropagation(); 3100 moved = false; 3101 return; 3102 } 3103 if (typeof window.toggleSiteLanguage === 'function') { 3104 window.toggleSiteLanguage(); 3105 } 3106 }); 3107 3108 function reclamp() { 3109 if (!btn.classList.contains('is-positioned')) return; 3110 var rect = btn.getBoundingClientRect(); 3111 var placed = applyPosition(rect.left, rect.top); 3112 savePosition(placed.left, placed.top); 3113 } 3114 3115 window.addEventListener('resize', reclamp); 3116 window.addEventListener('orientationchange', reclamp); 3117 3118 restorePosition(); 3119 }); 3120 })(); 3121</script>
vendor: 145 bytes, lines 3121-3123
3121 3122 3123<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="203ab9795843d8aeeec027b7-|49" defer></script>
3123<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"9bc850c643c6436bb2009eafc2df557f","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 3123
3123
3124<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4016d3aea2672cb',t:'MTc5MDI0OTEwNw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
3124</body> 3125</html> 3126 3127
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.