1<style> 2/*==== Header===*/ 3/* Remove default Bootstrap navbar padding */ 4.navbar, 5.navbar>.container, 6.navbar>.container-fluid { 7 margin: 0 !important; 8 padding: 0 !important; 9} 10 11 12.sticky-header { 13 position: sticky; 14 top: 0; 15 z-index: 1050; 16 background-color: #fff; 17 /* ensures it's solid above content */ 18 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); 19} 20 21 22.sticky-header { 23 position: sticky; 24 top: 0; 25 z-index: 1050; 26 background-color: transparent !important; 27 /* transparent background */ 28 backdrop-filter: none; 29 /* no blur */ 30 box-shadow: none; 31 /* remove shadow if you want full transparency */ 32 transition: all 0.3s ease-in-out; 33 margin: 0 !important; 34 padding: 0 !important; 35} 36 37 38/* Make sure parents allow sticky to work */ 39body, 40html { 41 height: 100%; 42 overflow-x: hidden; 43} 44 45.container-fluid, 46section, 47.wrap, 48.page-section { 49 overflow: visible !important; 50 /* prevents sticky from breaking */ 51} 52 53/* Optional smooth transition when user scrolls */ 54.sticky-header { 55 transition: all 0.3s ease-in-out; 56} 57 58/* Extra polish for navbar */ 59.sticky-header .navbar { 60 margin: 0; 61 border-radius: 0; 62 background: #fff; 63} 64 65 66.badges { 67 position: absolute; 68 right: 0; 69 background: blue; 70 color: #fff; 71 border-radius: 50%; 72 padding: 2px 6px; 73 font-size: 12px; 74 transform: translate(50%, -50%); 75} 76 77.cart-link { 78 position: relative; 79 margin-right: 10px; 80} 81 82.header-dynamic-icon { 83 color: #353535 !important; 84 font-size: 14px; 85 font-weight: 600; 86 text-decoration: underline; 87} 88 89@media screen and (min-width: 480px) { 90 .cart-link1 { 91 display: none; 92 } 93} 94 95/* Topbar icons and dynamic icons */ 96.container-fluid.bg-light i { 97 color: #7a1d16 !important; 98} 99 100.container-fluid.bg-light .header-dynamic-icon { 101 color: #3c5e9d !important; 102} 103 104/* Login / Register links */ 105.container-fluid.bg-light a { 106 color: #353535 !important; 107 font-weight: 500; 108} 109</style> 110<style> 111.dropdown-menu.show { 112 z-index: 10000; 113} 114 115/* Mode-first program menu (Online / Offline / Hybrid -> courses) */ 116.program-mode-menu { 117 min-width: 268px; 118 max-width: min(360px, 92vw); 119 padding: 6px; 120 border: 1px solid #ece4dd; 121 border-radius: 12px; 122 box-shadow: 0 14px 34px -14px rgba(60, 40, 30, 0.35); 123 margin-top: 8px; 124} 125 126/* Mode section header (the clickable Online / Offline / Hybrid row) */ 127.program-mode-menu .mode-toggle { 128 display: flex;
129 align-items: center; 130 gap: 8px; 131 width: 100%; 132 padding: 9px 12px; 133 border-radius: 8px; 134 background: transparent; 135 color: #7a1d16; 136 font-weight: 700; 137 font-size: 0.82rem; 138 letter-spacing: 0.04em; 139 text-transform: uppercase; 140 cursor: pointer; 141} 142 143.program-mode-menu .mode-toggle:hover, 144.program-mode-menu .mode-toggle:focus { 145 background: rgba(122, 29, 22, 0.06); 146 color: #7a1d16; 147} 148 149.program-mode-menu .mode-toggle .mode-name { 150 flex: 0 0 auto; 151} 152 153.program-mode-menu .mode-count { 154 font-size: 0.7rem; 155 font-weight: 700; 156 color: #7a1d16; 157 background: rgba(122, 29, 22, 0.10); 158 border-radius: 100px; 159 padding: 1px 9px; 160 line-height: 1.5; 161} 162 163.program-mode-menu .mode-toggle::after { 164 content: "\203A"; /* ⺠*/ 165 margin-left: auto; 166 font-size: 1.15em; 167 line-height: 1; 168 color: #c09a95; 169 transform: rotate(90deg); /* points down when open */ 170 transition: transform 0.18s ease; 171} 172 173.program-mode-menu .mode-toggle.collapsed::after { 174 transform: rotate(0deg); /* points right when closed */ 175} 176 177/* Divider between mode sections */ 178.program-mode-menu .mode-group + .mode-group { 179 border-top: 1px solid #f0e8e1; 180 margin-top: 3px; 181 padding-top: 3px; 182} 183 184/* Courses inside a mode */ 185.program-mode-menu .mode-submenu { 186 list-style: none; 187 margin: 2px 0 4px; 188 padding: 0; 189} 190 191.program-mode-menu .mode-submenu .dropdown-item { 192 padding: 7px 12px 7px 26px; 193 font-size: 0.875rem; 194 line-height: 1.35; 195 color: #3a3a3a; 196 white-space: nowrap; 197 border-radius: 7px; 198} 199 200.program-mode-menu .mode-submenu .dropdown-item:hover, 201.program-mode-menu .mode-submenu .dropdown-item:focus { 202 background: rgba(122, 29, 22, 0.07); 203 color: #7a1d16; 204} 205 206/* Mobile: the menu renders inside the collapsed hamburger, so let it span the 207 full width, drop the floating-card chrome, and allow long names to wrap. */ 208@media (max-width: 991.98px) { 209 .program-mode-menu { 210 min-width: 100%; 211 max-width: 100%; 212 margin-top: 0; 213 padding: 2px 0; 214 border: 0; 215 border-radius: 0; 216 box-shadow: none; 217 } 218 219 .program-mode-menu .mode-toggle { 220 padding: 11px 14px; 221 } 222 223 .program-mode-menu .mode-submenu .dropdown-item { 224 white-space: normal; /* wrapping is fine on narrow screens */ 225 padding-left: 34px; 226 } 227} 228</style> 229 230 231<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 231-232
231 232<script async src="https://www.googletagmanager.com/gtag/js?id=
232G-6K59M8D3YW
vendor: 13 bytes, line 232
232"></script>
233<script>
vendor: 143 bytes, lines 234-241
234window.dataLayer = window.dataLayer || []; 235 236function gtag() { 237 dataLayer.push(arguments); 238} 239gtag('js', new Date()); 240 241gtag('config', '
241G-6K59M8D3YW
vendor: 5 bytes, line 241
241');
242</script>
242 243 244 245<link rel="stylesheet" type="text/css" href="https://yogkulam.com/css/osd-css.css"> 246 247<div class="container-fluid bg-light d-none d-lg-block"> 248 <div class="row align-items-center py-2 px-4"> 249 <div class="col-lg-7 d-flex"> 250 <span class="me-4"><i class="fa fa-map-marker-alt text-primary me-2"></i>[email protected]</span> 251 <span><i class="fa fa-phone-alt text-primary me-2"></i> 1800-891-9232</span> 252 </div> 253 <div class="col-lg-5 d-flex justify-content-end align-items-center"> 254 <div class="d-flex align-items-center ms-3"> 255 <img src="https://storage.googleapis.com/yogkulam/destination/path/app/public/logos/spgOiVFHz0oO9wtGTOx1Pm33H4GSrTEglhHhSZJ0_1741346280.png" alt="Icon"> 256 <a href="https://www.yogkulam.com/take-pledge" class="header-dynamic-icon ms-2" 257 style="font-weight: bolder;">Pledge</a> 258 </div> 259 <div class="d-flex align-items-center ms-3"> 260 <img src="https://storage.googleapis.com/yogkulam/destination/path/app/public/logos/NI9FwtvgnGJInLS9gf0MGkHXjmpL4oBbrVUqKi2h_1741346156.png" alt="Icon"> 261 <a href="https://www.yogkulam.com/yoga-philosophy/the-history-of-yoga-22-9e2457023437" class="header-dynamic-icon ms-2" 262 style="font-weight: bolder;">Yogi</a> 263 </div> 264 265 <a class="cart-link ms-2" href="https://yogkulam.com/shopping-cart"> 266 <i class="fa-solid fa-cart-shopping"></i> 267 <span class="badges">0</span> 268 </a> 269 270 <a href="https://yogkulam-react-dashboard.yogkulam.com/signin" class="me-2">Login</a> 271 <!-- <a href="https://yogkulam.com/student/signup" class="ms-1">Register</a> 272 <a href="https://yogkulam.com/student-application" class="ms-3">Student Application</a> --> 273 </div> 274 </div> 275</div> 276 277 278<div class="container-fluid d-lg-none py-2"> 279 <div class="d-flex justify-content-between align-items-center"> 280 <a href="tel:1800-891-9232"> 281 <img src="https://yogkulam.com/assets/frontend/img/Call Icon.png" width="90"> 282 </a> 283 284 <div class="d-flex align-items-center"> 285 <img src="https://storage.googleapis.com/yogkulam/destination/path/app/public/logos/spgOiVFHz0oO9wtGTOx1Pm33H4GSrTEglhHhSZJ0_1741346280.png" alt="Icon"> 286 <a href="https://www.yogkulam.com/take-pledge" class="header-dynamic-icon ms-2">Pledge</a> 287 </div> 288 <div class="d-flex align-items-center"> 289 <img src="https://storage.googleapis.com/yogkulam/destination/path/app/public/logos/NI9FwtvgnGJInLS9gf0MGkHXjmpL4oBbrVUqKi2h_1741346156.png" alt="Icon"> 290 <a href="https://www.yogkulam.com/yoga-philosophy/the-history-of-yoga-22-9e2457023437" class="header-dynamic-icon ms-2">Yogi</a> 291 </div> 292 </div> 293</div> 294 295 296<nav class="navbar navbar-expand-lg navbar-light sticky-top shadow-sm bg-white bg-opacity-90 backdrop-blur"> 297 <a class="navbar-brand px-2" href="https://yogkulam.com"> 298 <img src="https://yogkulam.com/assets/frontend/img/icons/fine_logo.png" width="100"> 299 </a> 300 301 <div class="d-flex"> 302 <a class="cart-link cart-link1 me-3" href="https://yogkulam.com/shopping-cart"> 303 <i class="fa-solid fa-cart-shopping"></i> 304 <span class="badges">0</span> 305 </a> 306 <button class="navbar-toggler me-4" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"> 307 <span class="navbar-toggler-icon"></span> 308 </button> 309 310 </div> 311 312 <div class="collapse navbar-collapse" id="navbarCollapse"> 313 <ul class="navbar-nav ms-auto"> 314 315 316 <li><a href="https://yogkulam.com" class="nav-link active">Home</a></li> 317 318 <li class="nav-item dropdown"> 319 <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown">About</a> 320 <ul class="dropdown-menu"> 321 <li><a class="dropdown-item" href="https://yogkulam.com/about">History, Vision & Mission</a></li> 322 <li><a class="dropdown-item" href="https://yogkulam.com/founder-message">Founderâs Message</a></li> 323 <li><a class="dropdown-item" href="https://yogkulam.com/our-team">Our Team</a></li> 324 </ul> 325 </li> 326 327 <li class="nav-item dropdown"> 328 <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown"
329 data-bs-auto-close="outside" aria-expanded="false">Yoga Teacher Training</a> 330 <ul class="dropdown-menu program-mode-menu" id="programMenu2"> 331 <li class="mode-group"> 332 <button class="dropdown-item mode-toggle " type="button" 333 data-bs-toggle="collapse" data-bs-target="#mode-2-online" 334 aria-expanded="true" aria-controls="mode-2-online"> 335 <span class="mode-name">Online</span> 336 <span class="mode-count">2</span> 337 </button> 338 <ul class="collapse mode-submenu show" id="mode-2-online" 339 data-bs-parent="#programMenu2"> 340 <li><a class="dropdown-item" 341 href="https://yogkulam.com/courses/yoga-teacher-training/diploma-courses/pg-diploma-in-yoga-therapy/online">PG Diploma in Yoga Therapy</a> 342 </li> 343 <li><a class="dropdown-item" 344 href="https://yogkulam.com/courses/yoga-teacher-training/diploma-courses/advance-diploma-in-yoga-teaching/online">Advance Diploma in Yoga Teaching</a> 345 </li> 346 </ul> 347 </li> 348 <li class="mode-group"> 349 <button class="dropdown-item mode-toggle collapsed" type="button" 350 data-bs-toggle="collapse" data-bs-target="#mode-2-hybrid" 351 aria-expanded="false" aria-controls="mode-2-hybrid"> 352 <span class="mode-name">Hybrid</span> 353 <span class="mode-count">2</span> 354 </button> 355 <ul class="collapse mode-submenu " id="mode-2-hybrid" 356 data-bs-parent="#programMenu2"> 357 <li><a class="dropdown-item" 358 href="https://yogkulam.com/courses/yoga-teacher-training/diploma-courses/pg-diploma-in-yoga-therapy/offline">PG Diploma in Yoga Therapy</a> 359 </li> 360 <li><a class="dropdown-item" 361 href="https://yogkulam.com/courses/yoga-teacher-training/diploma-courses/advance-diploma-in-yoga-teaching/offline">Advance Diploma in Yoga Teaching</a> 362 </li> 363 </ul> 364 </li> 365 </ul> 366 </li> 367 368 369 370 <li><a href="https://yogkulam.com/contact" class="nav-link">Contact</a></li> 371 <li class="login-view d-lg-none"> 372 <a href="https://yogkulam-react-dashboard.yogkulam.com/signin" class="nav-item nav-link">Login </a> 373 <!-- <a href="https://yogkulam.com/student/signup" class="nav-item nav-link">Register</a> 374 <a href="https://yogkulam.com/student-application" class="nav-item nav-link">Student Application</a> --> 375 </li> 376 </ul> 377 </div> 378</nav> 379 380 381 382<!doctype html> 383<html lang="en"> 384 385<head> 386 <!-- Meta Pixel Code (replace PIXEL_ID with 1946394672812042 if that's your pixel) --> 387
387<script> 388 ! function(f, b, e, v, n, t, s) { 389 if (f.fbq) return; 390 n = f.fbq = function() { 391 n.callMethod ? 392 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 393 }; 394 if (!f._fbq) f._fbq = n; 395 n.push = n; 396 n.loaded = !0; 397 n.version = '2.0'; 398 n.queue = []; 399 t = b.createElement(e); 400 t.async = !0; 401 t.src = v; 402 s = b.getElementsByTagName(e)[0]; 403 s.parentNode.insertBefore(t, s); 404 }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); 405 406 // Initialize pixel (use your pixel id) 407 fbq('init', '1946394672812042'); 408 // Standard page view 409 fbq('track', 'PageView'); 410 </script>
410 411 <noscript> 412 <img height="1" width="1" style="display:none" 413 src="https://www.facebook.com/tr?id=1946394672812042&ev=PageView&noscript=1" /> 414 </noscript> 415 <!-- Meta Pixel Code fb --> 416
416<script>
vendor: 621 bytes, lines 416-435
416 417 ! function(f, b, e, v, n, t, s) { 418 if (f.fbq) return; 419 n = f.fbq = function() { 420 n.callMethod ? 421 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 422 }; 423 if (!f._fbq) f._fbq = n; 424 n.push = n; 425 n.loaded = !0; 426 n.version = '2.0'; 427 n.queue = []; 428 t = b.createElement(e); 429 t.async = !0; 430 t.src = v; 431 s = b.getElementsByTagName(e)[0]; 432 s.parentNode.insertBefore(t, s) 433 }(window, document, 'script', 434 'https://connect.facebook.net/en_US/fbevents.js'); 435 fbq('init', '
4351542177876183933
vendor: 40 bytes, lines 435-437
435'); 436 fbq('track', 'PageView'); 437
437</script>
437 438 <noscript><img height="1" width="1" style="display:none" 439 src="https://www.facebook.com/tr?id=1542177876183933&ev=PageView&noscript=1" /></noscript> 440 <!-- End Meta Pixel Code --> 441 <!-- Google tag (gtag.js) -->
vendor: 69 bytes, lines 441-442
441 442 <script async src="https://www.googletagmanager.com/gtag/js?id=
442AW-714710283
vendor: 17 bytes, lines 442-443
442"></script> 443
443<script> 444
vendor: 163 bytes, lines 444-451
444window.dataLayer = window.dataLayer || []; 445 446 function gtag() { 447 dataLayer.push(arguments); 448 } 449 gtag('js', new Date()); 450 451 gtag('config', '
451AW-714710283
vendor: 9 bytes, lines 451-452
451'); 452
452</script>
452 453 454 <meta name="google-site-verification" content="8H9aIqo3k0YM4nkBYTY9ioBH2AT2RhoJTf1MAJYI8AU" /> 455 <meta charset="utf-8"> 456 <meta content="width=device-width, initial-scale=1.0" name="viewport"> 457 458 <meta name="csrf-token" content="b31dhz9SaN61KZXH3nRb0THKNNWIXzFUwCffpC6e"> 459 <title>About YogKulam- History, Vision & Mission</title> 460 <meta name="description" 461 content="Know YogKulamâs History, Vision and Mission in brief. How YogKulam started and became the best Yoga Teacher Training institute in India." /> 462 <meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" /> 463 <link rel="canonical" href="https://www.yogkulam.com/about" /> 464 465 <!-- Open Graph --> 466 <meta property="og:locale" content="en_US" /> 467 <meta property="og:type" content="website" /> 468 <meta property="og:title" content="About YogKulam â History, Vision & Mission" /> 469 <meta property="og:description" 470 content="Know YogKulamâs History, Vision and Mission in brief. How YogKulam started and became the best Yoga Teacher Training institute in India." /> 471 <meta property="og:image" content="https://yogkulam.com/public/assets/assets/img/yogkulam_logo.png" /> 472 <meta property="og:url" content="https://www.yogkulam.com/about" /> 473 <meta property="og:site_name" content="YogKulam.com" /> 474 <meta property="og:updated_time" content="2024-02-23T12:41:26+02:00" /> 475 476 <!-- Twitter --> 477 <meta name="twitter:card" content="summary" /> 478 <meta name="twitter:site" content="@yogkulam" /> 479 <meta name="twitter:creator" content="@IT_Team_yogkulam" /> 480 481 <!-- Author --> 482 <meta name="author" content="Shubham Tripathi" /> 483 <meta name="article:published_time" content="2024-01-25T12:00:00+00:00" /> 484 <meta name="article:tag" content="About YogKulam, History, Mission & Vision" /> 485 486 487 488 <!-- Bootstrap --> 489 <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" /> 490 <link href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css" rel="stylesheet" /> 491 492 <link rel="preconnect" href="https://fonts.googleapis.com"> 493 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 494 <link href="https://fonts.googleapis.com/css2?family=El+Messiri:[email protected]&display=swap" rel="stylesheet"> 495 496 <link href="https://yogkulam.com/assets/frontend/css/new-style.css" rel="stylesheet"> 497 498 <link rel="stylesheet" href="https://yogkulam.com/css/osd-css.css"> 499 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet"> 500 501 <!-- Schema Markup --> 502
502<script type="application/ld+json"> 503 { 504 "@context": "https://schema.org", 505 "@type": "Organization", 506 "name": "YogKulam", 507 "url": "https://www.yogkulam.com", 508 "logo": "https://www.yogkulam.com/public/assets/frontend/img/icons/fine_logo.png", 509 "description": "YogKulam is India's Best Yoga Teacher Training Institute. We offer Yoga Courses like DYT(200 hours), PGDYT(500 hours), ADYT(500 hours), CYT(100 Hours), FCY(30 Hours), and CYP(50 Hours) through offline and online ways.", 510 "address": { 511 "@type": "PostalAddress", 512 "streetAddress": "3/133, Sector 3, Vikas Nagar", 513 "addressLocality": "Lucknow", 514 "addressRegion": "Uttar Pradesh", 515 "postalCode": "226022", 516 "addressCountry": "India" 517 }, 518 "contactPoint": { 519 "@type": "ContactPoint", 520 "telephone": "1800-891-9232", 521 "contactType": "customer service" 522 }, 523 "sameAs": [ 524 "https://www.facebook.com/yogkulamofficial", 525 "https://twitter.com/yogKulam-official", 526 "https://www.linkedin.com/company/yogkulamofficial/" 527 ] 528 } 529 </script>
529 530 531</head> 532 533<body> 534 535 536 537 <style> 538 img, 539 video, 540 iframe { 541 max-width: 100%; 542 height: auto; 543 } 544 545 546 547 /* Headings use Cormorant Garamond for a refined look */ 548 h1, 549 h2, 550 h3, 551 h4, 552 h5, 553 h6, 554 .ykh-title, 555 .hero h1, 556 .mission .title, 557 .eyebrow, 558 .year-badge { 559 font-family: "El Messiri", sans-serif, Georgia, "Times New Roman", serif; 560 font-weight: 700; 561 } 562 563 /* Optional: medium-weight subheads with Cormorant */ 564 .ykh-lead, 565 .mission-card h5 { 566 font-family: "El Messiri", sans-serif, Georgia, "Times New Roman", serif; 567 font-weight: 600; 568 } 569 570 /* Central wrapper â slightly narrower + padded to avoid edge collisions */ 571 .timeline-wrap { 572 margin-inline: auto; 573 width: min(1080px, 94vw); 574 padding-inline: clamp(12px, 2.5vw, 20px); 575 color: #171616; 576 } 577 578 /* ===== HERO / FILTERS ===== */ 579 .hero { 580 background: linear-gradient(180deg, #fff, #fff0 60%), 581 radial-gradient(800px 200px at 15% 0%, rgba(208, 111, 26, .08), transparent 50%); 582 padding: clamp(1.5rem, 4.5vw, 3rem) 0 1.25rem; 583 border-bottom: 1px solid #f1efec; 584 text-align: center; 585 } 586 587 .hero h1 { 588 letter-spacing: .4px; 589 font-size: clamp(1.8rem, 1rem + 3vw, 3rem); 590 margin: 0; 591 } 592 593 .hero p { 594 color: var(--muted); 595 margin: .35rem 0 0; 596 } 597 598 .control-bar { 599 background: #fffaf4; 600 border: 1px solid #efe6db; 601 border-radius: 16px; 602 padding: 1rem 1.25rem; 603 margin-top: 1.1rem; 604 box-shadow: 0 10px 26px rgba(0, 0, 0, .04); 605 } 606 607 .yk-btn { 608 --bg1: #f2a14c; 609 --bg2: #d06f1a; 610 --txt: #fff; 611 display: inline-flex; 612 align-items: center; 613 gap: .5rem; 614 padding: .65rem 1.15rem; 615 border-radius: .8rem; 616 text-decoration: none; 617 border: 0; 618 font-weight: 800; 619 color: var(--txt); 620 background: linear-gradient(180deg, var(--bg1), var(--bg2)); 621 box-shadow: 0 8px 18px rgba(208, 111, 26, .28); 622 } 623 624 .yk-btn-light { 625 background: #fff; 626 color: #7a5632; 627 border: 1px solid #e7ddd1; 628 box-shadow: none; 629 } 630 631 .yk-btn-outline { 632 background: #fff; 633 color: var(--brand); 634 border: 1.5px solid var(--brand); 635 box-shadow: none; 636 } 637 638 /* ===== HISTORY + VIDEO ===== */ 639 .yk-history { 640 padding: clamp(36px, 4vw, 72px) 0; 641 background: radial-gradient(1000px 360px at 0% -20%, rgba(214, 166, 91, .10), transparent 60%), linear-gradient(180deg, #fff, #fff8ee); 642 } 643 644 .ykh-wrap { 645 position: relative; 646 overflow: hidden; 647 border-radius: 22px; 648 padding: clamp(22px, 3.2vw, 38px); 649 background: radial-gradient(700px 420px at 6% -10%, rgba(255, 244, 228, .35), transparent 70%), radial-gradient(900px 520px at 110% 120%, rgba(0, 0, 0, .05), transparent 62%), linear-gradient(180deg, #ffffff 0%, #fdfaf6 100%); 650 border: 1px solid rgba(0, 0, 0, .06); 651 box-shadow: 0 22px 50px rgba(0, 0, 0, .10); 652 } 653 654 .ykh-eyebrow { 655 display: inline-flex; 656 gap: .45rem; 657 align-items: center; 658 padding: .28rem .65rem; 659 border-radius: 999px; 660 background: #fff7ea; 661 color: #5b3d0a; 662 border: 1px solid #ffe0a6; 663 font-weight: 800; 664 font-size: .8rem; 665 letter-spacing: .04em; 666 } 667 668 .ykh-title { 669 margin: .65rem 0 .35rem; 670 line-height: 1.1; 671 font-size: clamp(1.6rem, 1rem + 2.2vw, 2.4rem); 672 color: #222; 673 } 674 675 .ykh-lead { 676 color: #4b4b4b; 677 max-width: 68ch; 678 margin: 0 auto .75rem; 679 } 680
681 .ykh-grid { 682 display: grid; 683 gap: clamp(14px, 2.5vw, 24px); 684 grid-template-columns: minmax(0, 1fr); 685 margin-top: 18px; 686 } 687 688 @media (min-width: 992px) { 689 .ykh-grid { 690 grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); 691 align-items: start; 692 } 693 } 694 695 .ykh-timeline { 696 position: relative; 697 padding-left: 18px; 698 margin-top: 6px; 699 } 700 701 .ykh-timeline::before { 702 content: ""; 703 position: absolute; 704 left: 7px; 705 top: 0; 706 bottom: 0; 707 width: 2px; 708 background: linear-gradient(180deg, #e6cf9a, #c99f52); 709 border-radius: 2px; 710 opacity: .9; 711 } 712 713 .ykh-step { 714 position: relative; 715 margin-bottom: 16px; 716 background: #fff; 717 border: 1px solid #eee3d1; 718 border-radius: 14px; 719 padding: 14px 16px; 720 box-shadow: 0 10px 26px rgba(0, 0, 0, .06); 721 } 722 723 .ykh-step .dot { 724 position: absolute; 725 left: -2px; 726 top: 18px; 727 width: 12px; 728 height: 12px; 729 border-radius: 50%; 730 background: linear-gradient(135deg, #f1d79e, #cc9f4e); 731 box-shadow: 0 0 0 3px #fff; 732 outline: 2px solid #d6b46a; 733 } 734 735 .ykh-video { 736 background: #fff; 737 border: 1px solid #eee3d1; 738 border-radius: 16px; 739 box-shadow: 0 14px 34px rgba(0, 0, 0, .08); 740 overflow: hidden; 741 } 742 743 .ykh-video-head { 744 padding: 14px 16px; 745 border-bottom: 1px solid #f1e6d6; 746 display: flex; 747 align-items: center; 748 justify-content: space-between; 749 gap: 10px; 750 } 751 752 .ykh-video-head .label { 753 font-weight: 800; 754 color: #6b4a1e; 755 background: #fff8ed; 756 border: 1px solid #f1dfc0; 757 padding: .28rem .55rem; 758 border-radius: 999px; 759 font-size: .85rem; 760 } 761 762 .ykh-thumb { 763 position: relative; 764 } 765 766 .ykh-thumb img { 767 width: 100%; 768 height: 100%; 769 object-fit: cover; 770 display: block; 771 } 772 773 .ykh-play { 774 position: absolute; 775 inset: 0; 776 display: flex; 777 justify-content: center; 778 align-items: center; 779 } 780 781 .ykh-play i { 782 font-size: 42px; 783 color: #fff; 784 width: 86px; 785 height: 86px; 786 border-radius: 50%; 787 display: flex; 788 justify-content: center; 789 align-items: center; 790 background: linear-gradient(135deg, var(--brand), #a8321e); 791 border: 2px solid rgba(255, 255, 255, .65); 792 box-shadow: 0 8px 22px rgba(0, 0, 0, .35); 793 } 794 795 /* ===== CENTERED TIMELINE + VERTICAL RAIL (no side scroll) ===== */ 796 .timeline { 797 position: relative; 798 width: min(900px, 92vw); 799 margin: 2rem auto; 800 padding: 12px 0; 801 } 802 803 .timeline::before { 804 content: ""; 805 position: absolute; 806 top: 0; 807 bottom: 0; 808 left: 50%; 809 width: 2px; 810 transform: translateX(-1px); 811 background: linear-gradient(180deg, #e8dccd, #d9c1a2); 812 border-radius: 2px; 813 } 814 815 .mile { 816 position: relative; 817 margin: 28px 0 22px; 818 } 819 820 .mile .dot { 821 position: absolute; 822 left: 50%; 823 top: -8px; 824 transform: translateX(-50%); 825 width: 16px; 826 height: 16px; 827 border-radius: 50%; 828 background: #fff; 829 border: 5px solid #a24a35; 830 outline: 3px solid #fff; 831 box-shadow: 0 0 0 3px rgba(162, 74, 53, .15); 832 z-index: 2; 833 } 834 835 .mile-card { 836 max-width: 760px; 837 margin: 0 auto; 838 background: #fff; 839 border: 1px solid var(--line); 840 border-radius: 18px; 841 box-shadow: 0 18px 36px rgba(0, 0, 0, .06); 842 padding: 22px; 843 text-align: center; 844 } 845 846 .year-badge { 847 font-size: 1rem; 848 color: #fff; 849 background: linear-gradient(135deg, #f1a54e, #d06f1a); 850 border-radius: 999px; 851 padding: .3rem .75rem; 852 display: inline-flex; 853 align-items: center; 854 gap: .45rem; 855 } 856 857 .icon-pill { 858 display: inline-flex; 859 align-items: center; 860 gap: .4rem; 861 padding: .28rem .6rem; 862 border-radius: 999px;
863 border: 1px dashed #eadfce; 864 color: #7a5632; 865 background: #fff8f1; 866 font-weight: 600; 867 font-size: .85rem; 868 } 869 870 .mile h3 { 871 font-size: 1.35rem; 872 margin: .6rem 0 .4rem; 873 color: #1f1f1f; 874 } 875 876 .mile p { 877 margin: 0; 878 color: #52565a; 879 font-size: 1rem; 880 line-height: 1.65; 881 } 882 883 /* ===== VISION ===== */ 884 .fm-wrap { 885 padding: 36px 0 28px; 886 background: linear-gradient(180deg, #fff 0%, #fff7ec 100%); 887 } 888 889 .fm-underline { 890 width: min(1080px, 92%); 891 height: 4px; 892 margin: 0 auto 22px; 893 background: linear-gradient(90deg, var(--brand), #9a4022); 894 border-radius: 12px; 895 position: relative; 896 overflow: hidden; 897 } 898 899 .fm-underline::after { 900 content: ""; 901 position: absolute; 902 right: -12px; 903 top: -6px; 904 width: 32px; 905 height: 16px; 906 border: 4px solid var(--brand); 907 border-left: none; 908 border-bottom: none; 909 border-radius: 0 18px 0 0; 910 } 911 912 .shloka-shell { 913 display: flex; 914 justify-content: center; 915 overflow: hidden; 916 } 917 918 .shloka-banner { 919 color: #fff; 920 font-weight: 800; 921 line-height: 1.4; 922 padding: 22px 28px; 923 text-align: center; 924 background: linear-gradient(180deg, var(--brand) 0%, #9b3c1f 55%, var(--amber) 100%); 925 clip-path: polygon(2.5% 0, 100% 0, 96% 50%, 100% 100%, 2.5% 100%, 0 50%); 926 box-shadow: 0 18px 38px rgba(0, 0, 0, .18); 927 font-size: clamp(1.05rem, .9rem + 1.3vw, 1.85rem); 928 max-width: min(980px, 92%); 929 position: relative; 930 animation: vis-enter .7s cubic-bezier(.2, .8, .2, 1) both, vis-float 4.2s ease-in-out 1.1s infinite; 931 } 932 933 .shloka-banner::before { 934 content: ""; 935 position: absolute; 936 top: 0; 937 bottom: 0; 938 width: 30%; 939 left: -30%; 940 background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent); 941 filter: blur(2px); 942 animation: vis-sheen 3.8s ease-in-out 1.4s infinite; 943 } 944 945 @keyframes vis-enter { 946 0% { 947 transform: translateY(14px) scale(.98); 948 opacity: 0 949 } 950 951 100% { 952 transform: translateY(0) scale(1); 953 opacity: 1 954 } 955 } 956 957 @keyframes vis-float { 958 959 0%, 960 100% { 961 transform: translateY(0) 962 } 963 964 50% { 965 transform: translateY(-6px) 966 } 967 } 968 969 @keyframes vis-sheen { 970 0% { 971 left: -30% 972 } 973 974 100% { 975 left: 130% 976 } 977 } 978 979 @media (prefers-reduced-motion:reduce) { 980 .shloka-banner { 981 animation: none 982 } 983 984 .shloka-banner::before { 985 display: none 986 } 987 } 988 989 /* ===== MISSION ===== */ 990 .mission { 991 padding: 64px 0 992 } 993 994 .mission .eyebrow { 995 font-size: .8rem; 996 letter-spacing: .12em; 997 color: #6b7280; 998 text-transform: uppercase; 999 font-weight: 700 1000 } 1001 1002 .mission .title { 1003 margin: .35rem 0 1.25rem; 1004 font-size: clamp(1.6rem, 1.1rem + 1.4vw, 2.2rem) 1005 } 1006 1007 .mission-card { 1008 position: relative; 1009 background: #fff; 1010 border: 1px solid #eee; 1011 border-radius: 16px; 1012 padding: 20px; 1013 box-shadow: 0 8px 24px rgba(0, 0, 0, .06); 1014 transition: transform .25s ease, box-shadow .25s ease 1015 } 1016 1017 .mission-card::before { 1018 content: ""; 1019 position: absolute; 1020 inset: 0; 1021 border-radius: 16px; 1022 padding: 1px; 1023 background: linear-gradient(135deg, rgba(214, 166, 91, .8), rgba(214, 166, 91, .25)); 1024 -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); 1025 -webkit-mask-composite: xor; 1026 mask-composite: exclude 1027 } 1028 1029 .mission-card:hover { 1030 transform: translateY(-4px); 1031 box-shadow: 0 14px 36px rgba(0, 0, 0, .10) 1032 } 1033 1034 .mission-card .icon { 1035 width: 48px; 1036 height: 48px; 1037 border-radius: 50%; 1038 display: flex; 1039 align-items: center; 1040 justify-content: center; 1041 color: var(--brand); 1042 margin-bottom: .6rem; 1043 font-size: 1.3rem; 1044 border: 2px solid #e8d4a2; 1045 background: #fffdf7; 1046 box-shadow: inset 0 2px 8px rgba(0, 0, 0, .03) 1047 } 1048 1049 .mission-card h5 { 1050 margin: .2rem 0 .35rem 1051 } 1052 1053 .mission-card p { 1054 margin: 0; 1055 color: #333 1056 } 1057 1058 1059 /* =================== TOKENS (scoped on .ykx-scope) =================== */ 1060 .ykx-scope { 1061 --ykx-ink: #2a211d; 1062 --ykx-ink-2: #42372f; 1063 --ykx-paper: #ffffff; 1064 --ykx-wash: #faf7f0; 1065 --ykx-soft: #f5efe4; 1066 --ykx-teal: #144a43; 1067 --ykx-teal-2: #0f3b35; 1068 --ykx-gold: #d8b372; 1069 --ykx-gold-2: #e6c88e; 1070 --ykx-line: #eadfce; 1071 --ykx-muted: #7a6e63; 1072 --ykx-shadow: 0 10px 30px rgba(0, 0, 0, .06); 1073 } 1074 1075 /* Tiny ornamental rule */ 1076 .ykx-orn { 1077 width: min(520px, 80vw); 1078 height: 12px; 1079 margin: .65rem auto 1.25rem; 1080 position: relative; 1081 background: 1082 radial-gradient(closest-side, var(--ykx-gold) 35%, transparent 36%) 50% 50%/78px 12px no-repeat, 1083 linear-gradient(90deg, transparent 0 40%, var(--ykx-gold) 40% 60%, transparent 60% 100%); 1084 opacity: .75; 1085 } 1086 1087 /* =================== FAQ =================== */ 1088 .ykx-faq { 1089 background: linear-gradient(180deg, #fff, var(--ykx-wash)); 1090 border-radius: 20px; 1091 box-shadow: var(--ykx-shadow); 1092 padding: 1.25rem; 1093 } 1094 1095 .ykx-faq .accordion-item { 1096 border: 1px solid var(--ykx-line); 1097 border-radius: 14px; 1098 overflow: hidden; 1099 margin-bottom: .65rem; 1100 background: #fff; 1101 } 1102 1103 .ykx-faq .accordion-button { 1104 font-weight: 700; 1105 color: var(--ykx-ink); 1106 padding: 1rem 1.25rem; 1107 background: linear-gradient(180deg, #fff, #fbf9f4); 1108 } 1109 1110 .ykx-faq .accordion-button:not(.collapsed) { 1111 color: var(--ykx-teal); 1112 background: #f7f1e5; 1113 } 1114 1115 .ykx-faq .accordion-button:focus { 1116 box-shadow: none; 1117 } 1118 1119 .ykx-faq .accordion-button::after { 1120 background-image: none; 1121 width: 1.1rem; 1122 height: 1.1rem; 1123 transform: rotate(0); 1124 border: 2px solid var(--ykx-gold); 1125 border-left: 0; 1126 border-top: 0; 1127 content: ""; 1128 margin-left: auto; 1129 border-radius: 2px; 1130 transform: rotate(45deg); 1131 } 1132 1133 .ykx-faq .accordion-button.collapsed::after { 1134 transform: rotate(-135deg); 1135 } 1136 1137 .ykx-faq .accordion-body { 1138 color: var(--ykx-ink-2); 1139 line-height: 1.65; 1140 padding: 1rem 1.25rem; 1141 } 1142 1143 1144 1145 /* =================== LINKS CLOUD =================== */ 1146 .ykx-links-cloud { 1147 display: flex; 1148 flex-wrap: wrap; 1149 gap: 14px; 1150 } 1151 1152 .ykx-chip { 1153 position: relative; 1154 display: inline-flex; 1155 align-items: center; 1156 gap: .5rem; 1157 background: #fff; 1158 border: 1px solid var(--ykx-line); 1159 color: var(--ykx-ink); 1160 padding: .6rem .95rem; 1161 border-radius: 12px; 1162 box-shadow: var(--ykx-shadow); 1163 transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; 1164 } 1165 1166 .ykx-chip::before { 1167 content: ""; 1168 position: absolute; 1169 inset: 0; 1170 border-radius: 12px; 1171 background: linear-gradient(180deg, transparent, rgba(216, 179, 114, .12)); 1172 opacity: 0; 1173 transition: opacity .2s ease; 1174 } 1175 1176 .ykx-chip:hover { 1177 transform: translateY(-2px); 1178 border-color: #e3d6c3; 1179 } 1180 1181 .ykx-chip:hover::before { 1182 opacity: 1; 1183 } 1184 1185 .ykx-chip .bi { 1186 color: var(--ykx-gold); 1187 } 1188 </style> 1189 1190 <!-- ===== HISTORY ===== --> 1191 <section id="history" class="yk-history"> 1192 <div class="container container-wide"> 1193 <div class="ykh-wrap"> 1194 <div class="text-center mb-3">
1195 <span class="ykh-eyebrow"><i class="bi bi-stars me-1"></i> YogKulam ⢠Since 2012</span> 1196 <h2 class="ykh-title">Our History</h2> 1197 <p class="ykh-lead">How a small community became a calm, modern home for ancient yoga wisdom.</p> 1198 </div> 1199 1200 <div class="ykh-grid"> 1201 <div class="ykh-col"> 1202 <div class="ykh-timeline"> 1203 <article class="ykh-step"><span class="dot"></span> 1204 <h5>Seeds of a Community (2012)</h5> 1205 <p>In September 2012, a sixteen-year-old boy, who was struggling with finance and purpose, 1206 started a yoga community to transform people's lives. Slowly, he converted this 1207 community into the Yoga Teacher Training Institute, MDVTI India (now YogKulam). To date, 1208 this organization has trained over <strong>40,000</strong> teachers globally.</p> 1209 </article> 1210 <article class="ykh-step"><span class="dot"></span> 1211 <h5>A Decade of Teaching</h5> 1212 <p>For more than a decade, it has been a place for learning to become a Yoga Teacher. We 1213 offer programs students can choose based on strengths and interests. Content is taught 1214 simply and systematicallyâhelping students become <strong>world-class yoga 1215 teachers</strong>.</p> 1216 </article> 1217 <article class="ykh-step"><span class="dot"></span> 1218 <h5>Becoming YogKulam</h5> 1219 <p>As time passed, the organization grew and evolved. It isnât just about training yoga 1220 teachers anymore; it has become <strong>YogKulam</strong>âa place where yoga can touch 1221 everyone, blending ancient wisdom with modern technology.</p> 1222 <p class="mb-0"><em>Our vision:</em> âTo touch many lives by revealing the true essence of 1223 yoga and how its branchesâAsana, Meditation, Philosophy, etc.âcan positively transform 1224 life through modern integration.â</p> 1225 </article> 1226 </div> 1227 </div> 1228 1229 <aside class="ykh-col"> 1230 <div class="ykh-video ykh-sticky"> 1231 <div class="ykh-video-head"><span class="label"><i class="bi bi-play-circle me-1"></i> Story 1232 Video</span> 1233 <h6 class="title mb-0">Watch our journey</h6> 1234 </div> 1235 <a class="ykh-thumb ratio ratio-16x9" href="javascript:void(0)" data-bs-toggle="modal" 1236 data-bs-target="#ykhVideoModal" aria-label="Play YogKulam journey video"> 1237 <picture> 1238 <source srcset="https://img.youtube.com/vi/wYHuHsVersY/maxresdefault.jpg" 1239 media="(min-width:768px)"> 1240 <img src="https://img.youtube.com/vi/wYHuHsVersY/hqdefault.jpg" 1241 alt="YogKulam Video Thumbnail" loading="lazy"> 1242 </picture> 1243 <span class="ykh-play"><i class="bi bi-play-fill"></i></span> 1244 </a> 1245 <div class="ykh-video-foot">Watch YogKulamâs Journey of Yoga Unfold â Honoring the Legacy Since 1246 2012</div> 1247 </div> 1248 </aside> 1249 </div> 1250 </div> 1251 </div> 1252 </section> 1253 1254 <!-- ===== TIMELINE FILTERS ===== --> 1255 <header class="hero"> 1256 <div class="timeline-wrap"> 1257 <h1>Timeline (2012â2025)</h1> 1258 <p>
1258Find Developments with Time</p> 1259 1260 <div class="control-bar"> 1261 <div class="row align-items-end justify-content-center"> 1262 <div class="col-12 col-lg-3"> 1263 <label for="fromYear" class="form-label mb-1 small text-muted">From</label> 1264 <select id="fromYear" class="form-select form-select-sm" 1265 aria-label="Filter timeline from year"></select> 1266 </div> 1267 <div class="col-12 col-lg-3"> 1268 <label for="toYear" class="form-label mb-1 small text-muted">To</label> 1269 <select id="toYear" class="form-select form-select-sm" 1270 aria-label="Filter timeline to year"></select> 1271 </div> 1272 <div class="col-12 col-lg-4 d-flex flex-wrap gap-2 justify-content-center mt-3 mt-lg-0"> 1273 <button id="applyFilter" class="yk-btn" type="button"><i class="bi bi-funnel"></i> <span>Apply 1274 Filter</span></button> 1275 <button id="resetFilter" class="yk-btn yk-btn-light" type="button"><i 1276 class="bi bi-arrow-counterclockwise"></i> <span>Reset</span></button> 1277 <button id="toggleCompact" class="yk-btn yk-btn-outline" type="button"><i 1278 class="bi bi-arrows-collapse"></i> <span>Compact</span></button> 1279 </div> 1280 </div> 1281 </div> 1282 </div> 1283 </header> 1284 1285 <!-- ===== CENTERED TIMELINE WITH RAIL ===== --> 1286 <main class="py-4"> 1287 <div class="wrap"> 1288 <div id="timeline" class="timeline"></div> 1289 </div> 1290 </main> 1291 1292 <!-- ===== VISION ===== --> 1293 <section class="fm-wrap"> 1294 <div class="container container-wide"> 1295 <div class="text-center mb-3"> 1296 <h1 class="fw-bold" style="letter-spacing:.4px;">Our Vision</h1> 1297 </div> 1298 <div class="fm-underline"></div> 1299 <div class="shloka-shell"> 1300 <div class="shloka-banner"> 1301 To positively change people's lives by revealing the true essence of yoga 1302 through the integration of modern technology. 1303 </div> 1304 </div> 1305 </div> 1306 </section> 1307 1308 <!-- ===== MISSION ===== --> 1309 <section id="mission" class="mission"> 1310 <div class="container container-wide"> 1311 <div class="text-center mb-4"> 1312 <div class="eyebrow">Our Mission</div> 1313 <h1 class="title">What YogKulam Stands For</h1> 1314 </div> 1315 1316 <div class="row g-3 g-md-4"> 1317 <div class="col-md-6 col-lg-4"> 1318 <div class="mission-card h-100"> 1319 <div class="icon"><i class="bi bi-heart-pulse"></i></div> 1320 <h5>Swastha Bharat</h5> 1321 <p>Healthy & happy lives through disciplined yoga practice and education.</p> 1322 </div> 1323 </div> 1324 <div class="col-md-6 col-lg-4"> 1325 <div class="mission-card h-100"> 1326 <div class="icon"><i class="bi bi-brain"></i></div> 1327 <h5>Samridha Bharat</h5> 1328 <p>Resilient, clear minds with character-building and mental wellbeing.</p> 1329 </div> 1330 </div> 1331 <div class="col-md-6 col-lg-4"> 1332 <div class="mission-card h-100"> 1333 <div class="icon"><i class="bi bi-journal-bookmark"></i></div> 1334 <h5>Vaidik Bharat</h5> 1335 <p>Preserving timeless wisdom and reconnecting to our Dharmic purpose.</p> 1336 </div> 1337 </div> 1338 <div class="col-md-6 col-lg-4"> 1339 <div class="mission-card h-100"> 1340 <div class="icon"><i class="bi bi-mortarboard"></i></div> 1341 <h5>100+ Gurukuls Vision</h5> 1342 <p>Establish a network of Gurukuls blending eternal values with modern life.</p> 1343 </div> 1344 </div> 1345 <div class="col-md-6 col-lg-4"> 1346 <div class="mission-card h-100"> 1347 <div class="icon"><i class="bi bi-people"></i></div> 1348 <h5>Empower Communities</h5> 1349 <p>Jobs, financial literacy, and entrepreneurship in yoga ecosystems.</p> 1350 </div> 1351 </div> 1352 <div class="col-md-6 col-lg-4"> 1353 <div class="mission-card h-100"> 1354 <div class="icon"><i class="bi bi-award"></i></div> 1355 <h5>Quality & Commitment</h5> 1356 <p>High standards and mentors who lead by example in every program.</p> 1357 </div> 1358 </div> 1359 </div> 1360 </div> 1361 </section> 1362 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css" /> 1363<style> 1364 /* =================== GLIMPSES STRIP =================== */ 1365 .ykx-glimpses { 1366 background:
1367 radial-gradient(1200px 600px at -10% -10%, #f5efe5 0%, transparent 60%), 1368 radial-gradient(1200px 600px at 110% -10%, #eff6f3 0%, transparent 60%), 1369 #fff; 1370 border-radius: 22px; 1371 box-shadow: var(--ykx-shadow); 1372 overflow: hidden; 1373 } 1374 1375 .ykx-glimpses .ykx-shot { 1376 position: relative; 1377 overflow: hidden; 1378 border-radius: 16px; 1379 height: 360px; 1380 box-shadow: 0 14px 36px rgba(0, 0, 0, .08); 1381 } 1382 1383 .ykx-glimpses .ykx-shot img { 1384 width: 100%; 1385 height: 100%; 1386 object-fit: cover; 1387 transition: transform .6s ease, filter .6s ease, opacity .6s ease; 1388 } 1389 1390 .ykx-glimpses .ykx-shot.side img { 1391 filter: grayscale(1) contrast(1.05) opacity(.75); 1392 } 1393 1394 .ykx-glimpses .ykx-shot:hover img { 1395 transform: scale(1.03); 1396 filter: none; 1397 opacity: 1; 1398 } 1399 1400 @media (max-width:991.98px) { 1401 .ykx-glimpses .ykx-shot { 1402 height: 280px 1403 } 1404 } 1405 1406 @media (max-width:575.98px) { 1407 .ykx-glimpses .ykx-shot { 1408 height: 220px 1409 } 1410 } 1411 1412 /* Swiper arrows/pagination tweak for visibility */ 1413 .ykx-glimpses .swiper-button-prev, 1414 .ykx-glimpses .swiper-button-next { 1415 color: #0f3b35; 1416 /* uses --ykx-teal-2 tone */ 1417 width: 38px; 1418 height: 38px; 1419 } 1420 1421 .ykx-glimpses .swiper-pagination-bullet-active { 1422 background: #d8b372; 1423 /* uses --ykx-gold */ 1424 } 1425</style> 1426 1427<section class="ykx-scope container container-wide my-5"> 1428 <div class="text-center"> 1429 <h2 class="fw-bold" style="letter-spacing:.2px;color:#2a211d">Glimpses of YogKulam</h2> 1430 <div class="ykx-orn"></div> 1431 </div> 1432 1433 <div class="ykx-glimpses p-3"> 1434 <!-- Slider --> 1435 <div class="swiper ykxGlimpsesSwiper"> 1436 <div class="swiper-wrapper"> 1437 1438 <!-- Slide 1 --> 1439 <div class="swiper-slide"> 1440 <figure class="ykx-shot"> 1441 <img src="https://storage.googleapis.com/yogkulam/landing-page/img/Landing Page/ytt sales team yogkulam.jpg" 1442 alt="Glimpse 1"> 1443 </figure> 1444 </div> 1445 1446 <!-- Duplicate or change URLs below to add more slides --> 1447 <div class="swiper-slide"> 1448 <figure class="ykx-shot"> 1449 <img src="https://storage.googleapis.com/yogkulam/landing-page/img/Landing Page/student ytt certification program yogkulam.jpg" 1450 alt="Glimpse 2"> 1451 </figure> 1452 </div> 1453 1454 <div class="swiper-slide"> 1455 <figure class="ykx-shot"> 1456 <img src="https://storage.googleapis.com/yogkulam/landing-page/img/Landing Page/ceremony-at-yogkulam.jpg" 1457 alt="Glimpse 3"> 1458 </figure> 1459 </div> 1460 1461 <div class="swiper-slide"> 1462 <figure class="ykx-shot"> 1463 <img src="https://storage.googleapis.com/yogkulam/landing-page/img/Landing Page/team-yogkulam-yogguru-jwalaji.jpg" 1464 alt="Glimpse 4"> 1465 </figure> 1466 </div> 1467 1468 <div class="swiper-slide"> 1469 <figure class="ykx-shot"> 1470 <img src="https://storage.googleapis.com/yogkulam/destination/path/app/public/event_pictures/YNA10WlSDoExKkcFXNMpBY0Z3Vt6ygTVJ9qdYEPF_9%20(1).jpg" 1471 alt="Glimpse 5"> 1472 </figure> 1473 </div> 1474 1475 </div> 1476 1477 <!-- Optional pagination + arrows --> 1478 <div class="swiper-pagination"></div> 1479 <div class="swiper-button-prev"></div> 1480 <div class="swiper-button-next"></div> 1481 </div> 1482 </div> 1483</section> 1484
1485<script src="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.js"></script>
vendor: 2 bytes, line 1485
1485
1486<script> 1487 const glimpses = new Swiper('.ykxGlimpsesSwiper', { 1488 loop: true, 1489 centeredSlides: true, 1490 speed: 700, 1491 autoplay: { 1492 delay: 2600, 1493 disableOnInteraction: false 1494 }, 1495 slidesPerView: 1.1, 1496 spaceBetween: 12, 1497 pagination: { 1498 el: '.swiper-pagination', 1499 clickable: true 1500 }, 1501 navigation: { 1502 nextEl: '.swiper-button-next', 1503 prevEl: '.swiper-button-prev' 1504 }, 1505 breakpoints: { 1506 576: { 1507 slidesPerView: 1.2, 1508 spaceBetween: 14 1509 }, 1510 768: { 1511 slidesPerView: 2.2, 1512 spaceBetween: 16 1513 }, 1514 992: { 1515 slidesPerView: 3, 1516 spaceBetween: 18 1517 } 1518 }, 1519 autoHeight: true 1520 }); 1521</script>
1521 1522 1523 <section class="ykx-scope container container-wide my-5"> 1524 <div class="text-center"> 1525 <h2 class="fw-bold" style="letter-spacing:.2px;color:#2a211d">Explore our useful links 1526 </h2> 1527 <p class="text-muted">Quick links to navigate</p> 1528 <div class="ykx-orn"></div> 1529 </div> 1530 1531 <!-- <div class="ykx-links-cloud"> 1532 <a class="ykx-chip" href="https://yogkulam.com/post-graduate-diploma-in-yoga-therapy"><i class="bi bi-award"></i> Post Graduate Diploma in Yoga Therapy</a> 1533 <a class="ykx-chip" href="https://yogkulam.com/advance-diploma-in-yoga-teacher"><i class="bi bi-mortarboard"></i> Advance Diploma in Yoga Therapy</a> 1534 <a class="ykx-chip" href="https://yogkulam.com/diploma-in-yoga-teacher-training"><i class="bi bi-journal-text"></i> Diploma in Yoga Therapy</a> 1535 <a class="ykx-chip" href="https://yogkulam.com/foundation-course-in-yoga"><i class="bi bi-book"></i> Foundation Course in Yoga</a> 1536 <a class="ykx-chip" href="https://yogkulam.com/diploma-in-yoga-teacher-training"><i class="bi bi-clock-history"></i> 200 hour Yoga Teacher Training</a> 1537 <a class="ykx-chip" href="https://yogkulam.com/advance-diploma-in-yoga-teacher"><i class="bi bi-clock"></i> 400 Hour Yoga Teacher Training</a> 1538 <a class="ykx-chip" href="https://yogkulam.com/ryt-200-hour-yoga-teacher-training"><i class="bi bi-person-badge"></i> RYT-200 Teacher Training</a> 1539 </div> --> 1540 <div class="ykx-links-cloud"> 1541 <a class="ykx-chip" href="https://www.yogkulam.com/course/pg-diploma-in-yoga-therapy/details"><i 1542 class="bi bi-award"></i> Post Graduate Diploma in Yoga Therapy</a> 1543 <a class="ykx-chip" href="https://www.yogkulam.com/course/advance-diploma-in-yoga-teaching/details"><i 1544 class="bi bi-mortarboard"></i> Advance Diploma in Yoga Therapy</a> 1545 <a class="ykx-chip" href="https://www.yogkulam.com/course/diploma-in-yoga-therapy/details"><i 1546 class="bi bi-journal-text"></i> Diploma in Yoga Therapy</a> 1547 <!-- <a class="ykx-chip" href="https://yogkulam.com/foundation-course-in-yoga"><i class="bi bi-book"></i> Foundation Course in Yoga</a> --> 1548 <a class="ykx-chip" href="https://www.yogkulam.com/course/diploma-in-yoga-therapy/details"><i 1549 class="bi bi-clock-history"></i> 200 hour Yoga Teacher Training</a> 1550 <a class="ykx-chip" href="https://www.yogkulam.com/course/advance-diploma-in-yoga-teaching/details"><i 1551 class="bi bi-clock"></i> 400 Hour Yoga Teacher Training</a> 1552 <!-- <a class="ykx-chip" href="https://yogkulam.com/ryt-200-hour-yoga-teacher-training"><i class="bi bi-person-badge"></i> RYT-200 Teacher Training</a> --> 1553 </div> 1554 1555 1556 </section> 1557 <style> 1558 /* =================== ELEGANT FOOTER =================== */ 1559 1560 /* =================== (Optional) Image after Footer =================== */ 1561 .ykx-end-image { 1562 width: 100%; 1563 margin: auto; 1564 padding: 0; 1565 } 1566 1567 .ykx-end-image img { 1568 display: block; 1569 width: 100%; 1570 height: auto; 1571 } 1572 1573 /* ð¹ Make footer top image taller on mobile */ 1574 @media (max-width: 768px) { 1575 .ykx-end-image img { 1576 1577 height: 60px; 1578 /* increase height visibility */ 1579 display: block; 1580 object-fit: cover; 1581 overflow: hidden; 1582 } 1583 } 1584 1585 .ykx-footer { 1586 position: relative; 1587 color: #e9edf1; 1588 /* background: linear-gradient(180deg, #0f1a1d, #142428);*/ 1589 background: radial-gradient(circle, #141e34, #355666); 1590 overflow: hidden; 1591 isolation: isolate; 1592 } 1593 1594 .ykx-footer:before { 1595 content: ""; 1596 position: absolute; 1597 inset: -20% -10% auto -10%; 1598 height: 320px; 1599 z-index: 0; 1600 background: 1601 radial-gradient(600px 160px at 15% 30%, rgba(216, 179, 114, .12), transparent 60%), 1602 radial-gradient(600px 160px at 85% 20%, rgba(31, 77, 70, .25), transparent 60%); 1603 filter: blur(8px); 1604 opacity: .9; 1605 } 1606 1607 .ykx-footer .ykx-wave { 1608 position: absolute; 1609 inset: auto 0 100% 0; 1610 height: 60px; 1611 z-index: 1; 1612 background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .06)); 1613 -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 120" preserveAspectRatio="none"><path fill="%23000" d="M0,96L48,80C96,64,192,32,288,26.7C384,21,480,43,576,69.3C672,96,768,128,864,122.7C960,117,1056,75,1152,53.3C1248,32,1344,32,1392,32L1440,32L1440,0L1392,0C1344,0,1248,0,1152,0C1056,0,960,0,864,0C768,0,672,0,576,0C480,0,384,0,288,0C192,0,96,0,48,0L0,0Z"/></svg>') center / cover repeat-x; 1614 } 1615 1616 .ykx-footer a { 1617 color: #e8ecef; 1618 text-decoration: none; 1619 } 1620 1621 .ykx-footer a:hover { 1622 color: #fff; 1623 text-decoration: underline; 1624 } 1625 1626 .ykx-footer .ykx-col-h { 1627 font-weight: 800; 1628 letter-spacing: .2px; 1629 color: #f4f6f8; 1630 margin-bottom: .75rem; 1631 } 1632 1633 .ykx-footer .ykx-list { 1634 list-style: none; 1635 padding: 0; 1636 margin: 0 1637 } 1638 1639 .ykx-footer .ykx-list li { 1640 margin: .45rem 0; 1641 color: #cdd4d9 1642 } 1643 1644 .ykx-footer .ykx-pill { 1645 display: inline-flex; 1646 align-items: center; 1647 gap: .45rem; 1648 border: 1px dashed rgba(255, 255, 255, .25); 1649 padding: .55rem .9rem; 1650 border-radius: 999px; 1651 background: rgba(255, 255, 255, .04); 1652 } 1653 1654 .ykx-footer .ykx-social a { 1655 width: 38px; 1656 height: 38px; 1657 border-radius: 50%; 1658 display: inline-grid; 1659 place-items: center; 1660 background: rgba(255, 255, 255, .08); 1661 margin-right: .4rem; 1662 transition: transform .15s ease, background .15s ease; 1663 } 1664 1665 .ykx-footer .ykx-social a:hover { 1666 transform: translateY(-2px); 1667 background: rgba(255, 255, 255, .18); 1668 } 1669 1670 .ykx-footer .ykx-mini { 1671 border-top: 1px solid rgba(255, 255, 255, .08); 1672 margin-top: 1.25rem; 1673 padding-top: .85rem; 1674 color: #a9b3ba; 1675 font-size: .92rem; 1676 } 1677 1678 .ykx-footer .ykx-brand { 1679 display: flex; 1680 align-items: center; 1681 gap: .75rem; 1682 color: #fff; 1683 font-weight: 800; 1684 letter-spacing: .3px; 1685 } 1686 1687 .ykx-footer .ykx-visit { 1688 display: inline-flex; 1689 flex-direction: column; 1690 justify-content: center; 1691 align-items: center; 1692 min-width: 180px; 1693 border: 1px dashed rgba(255, 255, 255, .28); 1694 padding: .9rem 1.2rem; 1695 border-radius: 14px; 1696 background: rgba(255, 255, 255, .03); 1697 } 1698 1699 .ykx-footer .ykx-visit .n { 1700 font-size: 1.45rem; 1701 font-weight: 800; 1702 color: #fff 1703 } 1704 1705 .ykx-footer .ykx-visit small { 1706 color: #d5dbe0 1707 } 1708 1709 @media (max-width:991.98px) { 1710 .ykx-footer .ykx-visit { 1711 margin-top: 1rem 1712 } 1713 } 1714 1715 .footer-outline-wrap, 1716 .ykx-end-image .wrap { 1717 max-width: 1200px; 1718 margin-inline: auto; 1719 /* center horizontally */ 1720 padding-inline: 1.5rem; 1721 /* left/right spacing on small screens */ 1722 } 1723 1724 @media (min-width: 992px) { 1725 1726 .footer-outline-wrap, 1727 .ykx-end-image .wrap { 1728 padding-inline: 0; 1729 /* remove padding on larger screens */ 1730 } 1731 } 1732</style> 1733
1734<div class="ykx-end-image container container-wide"> 1735 <div class="wrap"> 1736 <img src="https://www.yogkulam.com/assets/slides.jpg" alt="YogKulam Slides" heigh="100px" /> 1737 </div> 1738</div> 1739<div class="footer-outline-wrap"> 1740 <footer class="ykx-scope container container-wide ykx-footer mb-4 pt-5"> 1741 <div class="wrap"> 1742 <div class="ykx-wave"></div> 1743 <div class="container position-relative" style="z-index:2"> 1744 <div class="row g-4"> 1745 <div class="col-md-5"> 1746 <div class="ykx-brand mb-2"> 1747 <img src="https://www.yogkulam.com/assets/frontend/img/icons/logo.jpg" alt="" 1748 style="width:46px;height:46px;object-fit:contain;filter:grayscale(1) contrast(1.1) brightness(1.1);border-radius:50px;"> 1749 <span>YogKulam</span> 1750 </div> 1751 <p class="mb-3" style="max-width:520px">3/133, Vikas Nagar, Lucknow, Uttar Pradesh 1752 (INDIA)-226022.<br>For Admission: 1800-891-9232 ⢠Franchise: 1800-891-9232 1753 </p> 1754 <div class="ykx-pill mb-3"><i class="bi bi-envelope"></i> [email protected]</div> 1755 <div class="ykx-social"> 1756 <a href="https://www.facebook.com/yogkulamofficial/?_rdr" aria-label="Facebook"><i 1757 class="bi bi-facebook"></i></a> 1758 <a href="https://www.youtube.com/@YogKulamOfficial/videos" aria-label="Youtube"><i 1759 class="bi bi-youtube"></i></a> 1760 <a href="https://www.instagram.com/yogkulamofficial/?hl=en" aria-label="Instagram"><i 1761 class="bi bi-instagram"></i></a> 1762 </div> 1763 </div> 1764 1765 <div class="col-6 col-md-3"> 1766 <div class="ykx-col-h">Important</div> 1767 <ul class="ykx-list"> 1768 <li><a href="https://yogkulam.com/join-our-team">Join Our Team</a></li> 1769 <li><a href="https://yogkulam.com/webinar">Join YTT Webinar</a></li> 1770 1771 1772 <li><a href="https://yogkulam.com/all-event">Latest Events </a></li> 1773 <li><a href="https://yogkulam.com/news-media">Media Coverage</a></li> 1774 <li><a href="https://yogkulam.com/Authorised-Franchises">Authorized Study Center</a></li> 1775 </ul> 1776 </div> 1777 1778 <div class="col-6 col-md-2"> 1779 <div class="ykx-col-h">Quick Links</div> 1780 <ul class="ykx-list"> 1781 <li><a href="https://yogkulam.com/refund-policy">Refund Policy</a></li> 1782 <li><a href="https://yogkulam.com/privacy-policy">Privacy Policy</a></li> 1783 <li><a href="https://yogkulam.com/terms-and-conditions">Terms And Condition</a></li> 1784 <li><a href="https://yogkulam.com/delete-account">Delete Account</a></li> 1785 <li><a href="https://yogkulam.com/faqn">FAQâs</a></li> 1786 <li><a href="https://yogkulam.com/raise-ticket">Raise Ticket</a></li> 1787 <li><a class="btn btn-sm" 1788 style="background:#dea86a;color:#2c230f;font-weight:700;border-radius:999px;" 1789 href="https://yogkulam.com/franchiseLogin">Franchise Login</a></li> 1790 1791 </ul> 1792 </div> 1793 1794 <div class="col-md-2 d-flex flex-column align-items-md-end"> 1795 <div class="ykx-visit text-center mb-2"> 1796 <small>Total visitors</small> 1797 <div class="n" id="ykxVisitor">0</div> 1798 </div> 1799 <a class="btn btn-sm" 1800 style="background:#dea86a;color:#2c230f;font-weight:700;border-radius:999px;" 1801 data-bs-toggle="modal" data-bs-target="#attendanceModal"> 1802 Mark Attendance 1803 </a> 1804 </div> 1805 </div> 1806 1807 <div class="ykx-mini d-flex flex-column flex-md-row justify-content-between align-items-center"> 1808 <div>© <strong>BHARATSHILA INITIATIVE PRIVATE LIMITED</strong>. All rights reserved.</div> 1809 <div>Crafted with Care 1810 <!-- inside your ykx-footer .ykx-mini (or anywhere you prefer) --> 1811 <!-- <a class="ykx-cta-pay" href="https://www.yogkulam.com/ICICI_MS_LIVE/saleApi.php"> 1812 <i class="bi bi-lightning-charge-fill"></i> Pay now 1813 </a> --> 1814 </div> 1815 </div> 1816 </div> 1817 </div> 1818 </footer> 1819 1820 <!-- Modal Attendence--> 1821 1822<div class="modal fade" id="attendanceModal" tabindex="-1" aria-labelledby="attendanceModalLabel" aria-hidden="true"> 1823 1824 <div class="modal-dialog modal-lg attendence-dialog"> 1825 <div class="modal-content attendence-content"> 1826 <div class="modal-header"> 1827 <h1 class="modal-title fs-5" id="attendanceModalLabel">Attendance Form</h1> 1828 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 1829 </div> 1830 <div class="modal-body"> 1831 <form id=attendanceForm action="https://yogkulam.com/student-Attend
1831ace" method="post"> 1832 <input type="hidden" name="_token" value="b31dhz9SaN61KZXH3nRb0THKNNWIXzFUwCffpC6e" autocomplete="off"> <div class="form-group"> 1833 <label for="mobileNumber">Mobile Number</label> 1834 <input type="tel" class="form-control" id="mobileNumber" placeholder="Enter Mobile Number" 1835 name="mobileNumber"> 1836 </div> 1837 <div class="form-group"> 1838 <span class="text-success" id="studentName">name</span> 1839 </div> 1840 <div class="form-group"> 1841 <label for="name">Date & Time</label> 1842 <div class="row"> 1843 <div class="col"> 1844 <input type="text" class="form-control" id="date" placeholder="" name="date" 1845 value="data" readonly> 1846 </div> 1847 <div class="col"> 1848 <input type="text" class="form-control" id="time" placeholder="" readonly> 1849 </div> 1850 </div> 1851 </div> 1852 <div class="form-group"> 1853 <label for="teacher">Teacher</label> 1854 <select class="form-select" id="teacher" name="teacher_id"> 1855 <option value="">Select Teacher</option> 1856 <option value="2">AMRITA GUPTA</option> 1857 <option value="3">MANISHA ARYA</option> 1858 <option value="5">VIKAS SINGH RAJPUT</option> 1859 <option value="23">SHAMLI JOSHI</option> 1860 <option value="24">Sanchit Singh</option> 1861 <option value="25">Shachi Khemuka</option> 1862 <option value="26">Ritik Gupta</option> 1863 <option value="27">Antim Kumar Jain</option> 1864 <option value="28">Tajendra Jeet Pal</option> 1865 <option value="30">Jhanvi Thothawala</option> 1866 <option value="31">Neharika Jadeja</option> 1867 <option value="33">Vipin K. Rathore</option> 1868 <option value="39">Shubham Tripathi</option> 1869 <option value="40">Bhagyashree Anil Joshi</option> 1870 </select> 1871 </div> 1872 <div class="form-group"> 1873 <label for="feedback">Feedback</label> 1874 <textarea class="form-control" id="feedback" name="feedback" rows="3" placeholder="Enter Feedback"></textarea> 1875 </div> 1876 <div class="form-group"> 1877 <label for="starRating">Star Rating</label> 1878 <div class="star-rating"> 1879 <span class="fa fa-star"></span> 1880 <span class="fa fa-star"></span> 1881 <span class="fa fa-star"></span> 1882 <span class="fa fa-star"></span> 1883 <span class="fa fa-star"></span> 1884 </div> 1885 <input type="hidden" id="ratingValue" name="ratingValue" value=""> 1886 </div> 1887 <div id="responseMessage"></div> 1888 </div> 1889 <div class="modal-footer"> 1890 <button type="button" id="closedmodal" class="btn btn-secondary" data-dismiss="modal">Close</button> 1891 <button type="submit" id="submitBtn" class="btn btn-primary">Mark Attendance</button> 1892 1893 </div> 1894 </div> 1895 </form> 1896 </div> 1897</div>
1898<!-- Attendence Modal --> 1899
1900<script> 1901 $(document).ready(function() { 1902 $("#mobileNumber").on("keyup", function() { 1903 const mobileNumber = $(this).val(); 1904 const messageElement = $("#studentName"); 1905 const cleanedMobileNumber = mobileNumber.replace(/\D/g, ''); 1906 1907 if (cleanedMobileNumber.length === 10) { 1908 $.ajax({ 1909 url: `/getname`, 1910 type: "GET", 1911 data: { 1912 mobile_number: cleanedMobileNumber 1913 }, 1914 dataType: "json", 1915 success: function(data) { 1916 if (data.student_name) { 1917 messageElement.text(`Name: ${data.student_name}`); 1918 } else { 1919 messageElement.text("Name not found."); 1920 } 1921 }, 1922 error: function(xhr, status, error) { 1923 console.error('Error fetching data:', error); 1924 messageElement.text("Error fetching data."); 1925 } 1926 }); 1927 } else { 1928 messageElement.text(""); 1929 } 1930 }); 1931 }); 1932</script>
1932 1933<!-- END OF AJAX FOR ATTANDANCE -->
1934<script> 1935 var stars = document.querySelectorAll(".star-rating .fa-star"); 1936 var ratingValueInput = document.getElementById("ratingValue"); 1937 1938 function handleStarClick(event) { 1939 var clickedStar = event.target; 1940 var clickedIndex = Array.from(stars).indexOf(clickedStar); 1941 var ratingValue = clickedIndex + 1; 1942 1943 for (var i = 0; i < stars.length; i++) { 1944 if (i <= clickedIndex) { 1945 stars[i].classList.add("checked"); 1946 } else { 1947 stars[i].classList.remove("checked"); 1948 } 1949 } 1950 1951 ratingValueInput.value = ratingValue; 1952 } 1953 1954 stars.forEach(function(star) { 1955 star.addEventListener("click", handleStarClick); 1956 }); 1957 const t = new Date(); 1958 const date = t.toLocaleDateString("en-US"); 1959 document.getElementById("date").value = date; 1960 document.getElementById("time").value = t.toLocaleTimeString(); 1961 document.getElementById("attendanceForm").addEventListener("submit", function(event) { 1962 const t = new Date(); 1963 const date = t.toLocaleDateString("en-US"); 1964 document.getElementById("date").value = date; 1965 document.getElementById("time").value = t.toLocaleTimeString(); 1966 }); 1967</script>
1967 1968
1968<script> 1969 // Animate visitor count (non-intrusive). Replace 987678 with your live value. 1970 (function() { 1971 const el = document.getElementById('ykxVisitor'); 1972 if (!el) return; 1973 const target = 987678; // <= put your live total visitors here 1974 const steps = 60, 1975 inc = Math.ceil(target / steps); 1976 let n = 0; 1977 const tick = () => { 1978 n = Math.min(target, n + inc); 1979 el.textContent = n.toLocaleString('en-IN'); 1980 if (n < target) requestAnimationFrame(tick); 1981 }; 1982 tick(); 1983 })(); 1984 </script>
1984 1985
1985<script type="text/javascript" src=https://d2jyl60qlhb39o.cloudfront.net/integration-plugin.js id="wa-widget" 1986 widget-id="aaaid5"></script>
1986 1987 <style> 1988 .fresh-launch-btn { 1989 background: linear-gradient(135deg, #8B2025, #a93237); 1990 color: #fff; 1991 padding: 16px 24px; 1992 font-size: 18px; 1993 font-weight: 600; 1994 border-radius: 16px; 1995 border: none; 1996 animation: fresh-pulse 2.5s infinite; 1997 } 1998 1999 .fresh-launch-btn span { 2000 display: block; 2001 font-size: 12px; 2002 } 2003 2004 @keyframes fresh-pulse { 2005 2006 0%, 2007 100% { 2008 transform: scale(1); 2009 } 2010 2011 50% { 2012 transform: scale(1.03); 2013 } 2014 } 2015 2016 #freshWizardModal .modal-dialog { 2017 max-width: 600px; 2018 } 2019 2020 #freshWizardModal .modal-content { 2021 border-radius: 16px; 2022 background: #fffdf8; 2023 } 2024 2025 .fresh-modal-header { 2026 background: $8B2025; 2027 color: #fff; 2028 padding: 1rem 1.5rem; 2029 display: flex; 2030 align-items: center; 2031 justify-content: space-between; 2032 } 2033 2034 .fresh-modal-header img { 2035 margin-right: 1rem; 2036 width: 100%; 2037 height: auto; 2038 display: block; 2039 } 2040 2041 .fresh-modal-title { 2042 font-size: 1.25rem; 2043 font-weight: bold; 2044 } 2045 2046 .fresh-modal-body { 2047 padding: 1.5rem; 2048 } 2049 2050 .fresh-steps { 2051 display: flex; 2052 justify-content: center; 2053 gap: 8px; 2054 margin-bottom: 1rem; 2055 } 2056 2057 .fresh-dot { 2058 width: 12px; 2059 height: 12px; 2060 border-radius: 50%; 2061 background: #ddd; 2062 } 2063 2064 .fresh-dot.active { 2065 background: #f89c1c; 2066 } 2067 2068 .fresh-step { 2069 display: none; 2070 } 2071 2072 .fresh-step.active { 2073 display: block; 2074 } 2075 2076 .fresh-footer { 2077 padding: 1rem 1.5rem; 2078 display: flex; 2079 justify-content: space-between; 2080 } 2081 2082 .btn-fresh-next { 2083 background: #8B2025; 2084 color: #fff; 2085 padding: .6rem 1.5rem; 2086 border: none; 2087 border-radius: 8px; 2088 } 2089 2090 .btn-fresh-prev { 2091 background: #ccc; 2092 color: #333; 2093 padding: .6rem 1.5rem; 2094 border: none; 2095 border-radius: 8px; 2096 } 2097 2098 .fresh-input { 2099 border-radius: 8px; 2100 padding: .75rem 1rem; 2101 border: 1px solid #ccc; 2102 } 2103 2104 .budget-container { 2105 margin-top: 1rem; 2106 } 2107 2108 .pac-container { 2109 z-index: 99999 !important; 2110 } 2111 2112 @media (max-width: 768px) { 2113 #freshWizardModal .modal-dialog { 2114 margin: 0 auto; 2115 min-height: 70svh; 2116 display: flex; 2117 align-items: center; 2118 padding: 12px; 2119 } 2120 2121 #freshWizardModal .modal-content { 2122 max-height: 90svh; 2123 overflow-y: auto; 2124 } 2125 } 2126 </style> 2127 <!-- Modal --> 2128 <div class="modal fade" id="freshWizardModal" tabindex="-1" aria-hidden="true"> 2129 <div class="modal-dialog modal-dialog-centered"> 2130 <div class="modal-content"> 2131 2132 <!-- Header --> 2133 <div class="fresh-modal-header"> 2134 <img src="https://yogkulam.com/assets\Header.jpg" alt="YTT Banner"> 2135 <!-- <h5 class="fresh-modal-title">Enquire Now, Limited Seats Available</h5> --> 2136 <button type="button" class="btn-close" onclick="closeFreshModal()" 2137 style="filter: invert(0);"></button> 2138 2139 </div> 2140 2141 <!-- Body --> 2142 <div class="fresh-modal-body"> 2143 <div class="fresh-steps">
2144 <span class="fresh-dot active"></span> 2145 <span class="fresh-dot"></span> 2146 <span class="fresh-dot"></span> 2147 <span class="fresh-dot"></span> 2148 <span class="fresh-dot"></span> 2149 <span class="fresh-dot"></span> 2150 <span class="fresh-dot"></span> 2151 </div> 2152 2153 <form id="freshForm" action="https://yogkulam.com/lead-entry" method="POST"> 2154 <input type="hidden" name="_token" value="b31dhz9SaN61KZXH3nRb0THKNNWIXzFUwCffpC6e" autocomplete="off"> <!-- Step 1 --> 2155 <div class="fresh-step active"> 2156 <input type='hidden' id="zc_gad" name="zc_gad" value=""/> 2157 <input type="text" id="name" name="name" class="form-control fresh-input mb-3" 2158 placeholder="Your Full Name" required pattern="[A-Za-z\s]{2,}"> 2159 <input type="tel" id="contact" name="contact" class="form-control fresh-input mb-3" 2160 placeholder="Contact Number" required pattern="\d{10}"> 2161 <input type="email" id="email" name="email" class="form-control fresh-input mb-3" 2162 placeholder="Email Address" required> 2163 <input type="text" id="location" name="location" class="form-control fresh-input mb-3" 2164 id="location" placeholder="Your Location" required> 2165 <input type="hidden" id="city" name="city"> 2166 <input type="hidden" id="state" name="state"> 2167 2168 <!-- --> 2169 2170 </div> 2171 2172 <!-- Step 2 --> 2173 <div class="fresh-step"> 2174 2175 <p class="text-center mb-3"><strong>Thank you for your details!</strong><br>Weâll ask a few 2176 more things to tailor the best program for you.</p> 2177 <input type="hidden" name="ad_button_id" id="ad_button_id"> 2178 <input type="hidden" id="type" name="type"> 2179 <input type="hidden" name="leads_page_id" id="leads_page_id"> 2180 <input type="hidden" name="category_id" id="category_id"> 2181 <input type="hidden" name="gclid" id="gclid"> 2182 <input type="hidden" name="campaignid" id="campaignid"> 2183 <input type="hidden" name="adgroupid" id="adgroupid"> 2184 <input type="hidden" name="adid" id="adid"> 2185 <input type="hidden" name="keyword" id="keyword"> 2186 <input type="hidden" name="matchtype" id="matchtype"> 2187 <input type="hidden" name="gad_source" id="gad_source"> 2188 <input type="hidden" name="gad_campaignid" id="gad_campaignid"> 2189 <input type="hidden" name="network" id="network"> 2190 <input type="hidden" name="device" id="device"> 2191 </div> 2192 2193 <!-- Step 3 --> 2194 <div class="fresh-step" id="step-purpose"> 2195 <label>Main Purpose for Joining:</label> 2196 <div class="form-check"><input type="checkbox" class="form-check-input" 2197 name='purpose[]' value="certification"><label class="form-check-label"> 2198 Certification</label></div> 2199 <div class="form-check"><input type="checkbox" class="form-check-input" 2200 name='purpose[]' value="healing"><label class="form-check-label"> 2201 Healing</label></div> 2202 <div class="form-check"><input type="checkbox" class="form-check-input" 2203 name='purpose[]' value="spiritual"><label class="form-check-label"> Spiritual 2204 Growth</label></div> 2205 <div class="form-check"><input type="checkbox" class="form-check-input" 2206 name='purpose[]' value="career"><label class="form-check-label"> Career 2207 Add-on</label></div> 2208 <div class="form-check"><input type="checkbox" class="form-check-input" 2209 name='purpose[]' value="startup"><label class="form-check-label"> Yoga 2210 Business</label></div> 2211 </div> 2212 2213 <!-- Step 4 --> 2214 <div class="fresh-step"> 2215 <label>Current Qualification:</label> 2216 <select class="form-select fresh-input mb-3" id="currentQualification" 2217 name="current_qualification" required> 2218 <option value="">Select</option> 2219 <option value="12th Pass">12th Pass</option> 2220 <option value="Graduate">Graduate</option> 2221 <option value="Postgraduate">Postgraduate</option> 2222 <option value="Other">Other</option> 2223 </select> 2224 </div> 2225 2226 <!-- Step 5 --> 2227 <div class="fresh-step"> 2228 <label>Does budget matter?</label> 2229 <div class="form-check"><input type="radio" name="budget_matters" value="Yes" 2230 class="form-check-input" onclick="toggleBudget(true)" required><label 2231 class="form-check-label"> Yes</label></div> 2232 <div class="form-check"><input type="radio" name="budget_matters" value="No" 2233 class="form-check-input" onclick="toggleBudget(false)"><label 2234 class="form-check-label"> No</label></div> 2235 <div class="budget-container" style="display:none;"> 2236 <label>Preferred Budget:</label> 2237 <select class="form-select fresh-input mb-3" name="preferred_budget"> 2238 <option value="">Choose</option> 2239 <option value="â¹10k-20k">â¹10k-20k</option> 2240 <option value="â¹20k-35k">â¹20k-35k</option> 2241 <option value="â¹35k-50k">â¹35k-50k</option> 2242 <option value="â¹50k+">â¹50k+</option> 2243 </select> 2244 2245 </div> 2246 </div> 2247 2248 <!-- Step 6 --> 2249 <div class="fresh-step"> 2250 <label>Previous Yoga Experience:</label> 2251 <div class="form-check"><input type="radio" class="form-check-input" 2252 id="previousYogaExperience" value="Completed a course" 2253 name="previous_yoga_experience" required><label class="form-check-label"> 2254 Completed a course</label></div> 2255 <div class="form-check"><input type="radio" class="form-check-input" 2256 id="previousYogaExperience" value="Practice regularly" 2257 name="previous_yoga_experience"><label class="form-check-label"> Practice 2258 regularly</label></div> 2259 <div class="form-check"><input type="radio" class="form-check-input" 2260 id="previousYogaExperience" value="Beginner" 2261 name="previous_yoga_experience"><label class="form-check-label"> Beginner</label> 2262 </div> 2263 <div class="form-check"><input type="radio" class="form-check-input" 2264 id="previousYogaExperience" value=" No experience" 2265 name="previous_yoga_experience"><label class="form-check-label"> No 2266 experience</label></div> 2267 </div> 2268 2269 <!-- Step 7 --> 2270 <div class="fresh-step"> 2271 <label>
2271When do you plan to join?</label> 2272 <div class="form-check"><input type="radio" id="when" name="when" 2273 value="Immediatly" class="form-check-input" required><label 2274 class="form-check-label"> Immediately</label></div> 2275 <div class="form-check"><input type="radio" id="when" name="when" 2276 value="In 1â2 weeks" class="form-check-input"><label class="form-check-label"> 2277 In 1â2 weeks</label></div> 2278 <div class="form-check"><input type="radio" id="when" name="when" 2279 value="In 1 month" class="form-check-input"><label class="form-check-label"> In 2280 1 month</label></div> 2281 <div class="form-check"><input type="radio" id="when" name="when" 2282 value="Not sure" class="form-check-input"><label class="form-check-label"> Not 2283 sure</label></div> 2284 </div> 2285 </form> 2286 </div> 2287 2288 <!-- Footer --> 2289 <div class="fresh-footer"> 2290 <button type="button" class="btn-fresh-prev" onclick="previousStep()">Previous</button> 2291 <button type="button" class="btn-fresh-next" onclick="nextStep()">Next</button> 2292 </div> 2293 </div> 2294 </div> 2295 </div> 2296 <!--End Modal--> 2297
2297<script 2298 src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7cfhSeulJs9dB7QPMVnVC1lcmv-ew15A&libraries=places&callback=initAutocomplete" 2299 async defer></script>
2299 2300 2301
2301<script> 2302 let buttonIds = []; 2303 2304 function openFreshModal(buttonId) { 2305 const modal = document.getElementById("freshWizardModal"); 2306 2307 if (!modal) { 2308 console.error("freshWizardModal not found in DOM."); 2309 return; 2310 } 2311 2312 // ð¹ First fetch all buttons from API 2313 fetch('https://www.yogkulam.com/api/all-buttons') 2314 .then(response => response.json()) 2315 .then(data => { 2316 const button = data.addbuttons.find(btn => btn.id === buttonId); 2317 2318 if (button) { 2319 // â Set hidden input with button.id (if you have it inside modal) 2320 const hiddenField = document.getElementById('ad_button_id'); 2321 if (hiddenField) { 2322 hiddenField.value = button.id; 2323 } 2324 // â Set hidden input for page_url (type column) 2325 const typeField = document.getElementById('type'); 2326 if (typeField) { 2327 typeField.value = button.page_url; 2328 } 2329 2330 // â Show modal only after button data is found 2331 const modalInstance = new bootstrap.Modal(modal); 2332 modalInstance.show(); 2333 console.log("Button ID:", button.id); 2334 console.log("Page URL (type):", button.page_url); 2335 } else { 2336 console.warn("Button with ID", buttonId, "not found"); 2337 } 2338 }) 2339 .catch(error => console.error("Error fetching button data:", error)); 2340 } 2341 2342 2343 (function() { 2344 let stepIdx = 0; 2345 const steps = document.querySelectorAll(".fresh-step"); 2346 const dots = document.querySelectorAll(".fresh-dot"); 2347 const prevBtn = document.querySelector(".btn-fresh-prev"); 2348 const nextBtn = document.querySelector(".btn-fresh-next"); 2349 const form = document.getElementById("freshForm"); 2350 const csrf = document.querySelector('meta[name="csrf-token"]')?.content; 2351 2352 2353 const leadsPageIdInput = document.getElementById('leads_page_id'); 2354 const categoryIdInput = document.getElementById('category_id'); 2355 2356 function showStep(i) { 2357 steps.forEach((s, idx) => s.classList.toggle("active", idx === i)); 2358 dots.forEach((d, idx) => d.classList.toggle("active", idx === i)); 2359 prevBtn.style.display = i === 0 ? "none" : "inline-block"; 2360 nextBtn.textContent = i === steps.length - 1 ? "Submit" : "Next"; 2361 } 2362 2363 function validateCurrentStep() { 2364 const inputs = steps[stepIdx].querySelectorAll("input, select, textarea"); 2365 for (let el of inputs) { 2366 if (!el.checkValidity()) { 2367 el.reportValidity(); 2368 return false; 2369 } 2370 } 2371 if (steps[stepIdx].id === "step-purpose") { 2372 if (steps[stepIdx].querySelectorAll('input[name="purpose[]"]:checked').length === 0) { 2373 alert("Please select at least one purpose."); 2374 return false; 2375 } 2376 } 2377 return true; 2378 } 2379 2380 function toggleBudget(show) { 2381 const box = document.querySelector(".budget-container"); 2382 if (box) box.style.display = show ? "block" : "none"; 2383 } 2384 2385 async function postPhase(phase, dataObj) { 2386 const fd = new FormData(); 2387 fd.append('phase', phase); 2388 2389 // Copy from object to FormData, support arrays as name[]
2390 Object.entries(dataObj).forEach(([k, v]) => { 2391 if (Array.isArray(v)) { 2392 v.forEach(item => fd.append(k + '[]', item)); 2393 } else if (v !== undefined && v !== null) { 2394 fd.append(k, v); 2395 } 2396 }); 2397 2398 nextBtn.disabled = true; 2399 2400 const res = await fetch(form.action, { 2401 method: 'POST', 2402 headers: { 2403 'Accept': 'application/json', 2404 ...(csrf ? { 2405 'X-CSRF-TOKEN': csrf 2406 } : {}) 2407 }, 2408 body: fd 2409 }); 2410 2411 nextBtn.disabled = false; 2412 2413 const json = await res.json().catch(() => ({})); 2414 if (!res.ok || json.error) { 2415 throw new Error(json.error || 'Request failed'); 2416 } 2417 return json; 2418 } 2419 2420 // STEP 1 -> LeadPage 2421 async function saveLeadPage() { 2422 const data = { 2423 name: form.name.value.trim(), 2424 contact: form.contact.value.trim(), 2425 email: form.email.value.trim(), 2426 location: form.location.value.trim(), 2427 city: form.city.value.trim(), 2428 state: form.state.value.trim() 2429 }; 2430 console.log("Step 1 Payload:", data); 2431 const out = await postPhase('lead', data); 2432 if (out.leads_page_id) leadsPageIdInput.value = out.leads_page_id; 2433 } 2434 2435 2436 async function saveCategory() { 2437 const leads_page_id = leadsPageIdInput?.value; 2438 if (!leads_page_id) { 2439 alert('Missing leads_page_id. Complete Step 1 first.'); 2440 return; 2441 } 2442 const urlParams = new URLSearchParams(window.location.search); 2443 2444 const data = { 2445 leads_page_id, 2446 ad_button_id: form.ad_button_id?.value || 'N/A', 2447 type: form.type?.value || 'N/A', 2448 gclid: urlParams.get('gclid') || 'N/A', 2449 campaignid: urlParams.get('campaignid') || 'N/A', 2450 adgroupid: urlParams.get('adgroupid') || 'N/A', 2451 adid: urlParams.get('adid') || 'N/A', 2452 keyword: urlParams.get('keyword') || 'N/A', 2453 matchtype: urlParams.get('matchtype') || 'N/A', 2454 gad_source: urlParams.get('gad_source') || 'N/A', 2455 gad_campaignid: urlParams.get('gad_campaignid') || 'N/A', 2456 network: urlParams.get('network') || 'N/A', 2457 device: urlParams.get('device') || 'N/A', 2458 visit_count: form.visit_count?.value || 1, 2459 leads_status: form.leads_status?.value || 'new' 2460 }; 2461 2462 console.log("Step 2 Payload:", data); // ð debug in browser 2463 const out = await postPhase('category', data); 2464 if (out.category_id) categoryIdInput.value = out.category_id; 2465 } 2466 2467 2468 2469 // FINAL -> LeadProfiling (uses category_id) 2470 async function saveProfiling() { 2471 const category_id = categoryIdInput.value; 2472 if (!category_id) throw new Error('Missing category_id. Complete Step 2 first.'); 2473 2474 const purposes = Array.from(form.querySelectorAll('input[name="purpose[]"]:checked')).map(i => i 2475 .value); 2476 2477 const data = { 2478 category_id, 2479 purpose: purposes, 2480 current_qualification: form.current_qualification.value || '', 2481 budget_matters: (form.querySelector('input[name="budget_matters"]:checked')?.value) || '', 2482 previous_yoga_experience: (form.querySelector( 2483 'input[name="previous_yoga_experience"]:checked')?.value) || '', 2484 when: (form.querySelector('input[name="when"]:checked')?.value) || '', 2485 // If you decide to store preferred budget later: 2486 // preferred_budget: form.preferred_budget?.value || '' 2487 preferred_budget: (form.querySelector('input[name="budget_matters"]:checked')?.value === 2488 'Yes') ? 2489 (form.preferred_budget?.value || '') : null 2490 }; 2491 console.log("Step 3 Payload:", data); 2492 await postPhase('profiling', data); 2493 console.log("ð¥ Profiling saved, continuing..."); 2494 // =============================== 2495 // ð¥ ZOHO CRM CALL START 2496 // =============================== 2497 2498 var name = form.name.value.trim(); 2499 var contact = form.contact.value.trim(); 2500 var email = form.email.value.trim(); 2501 var city = form.city.value.trim(); 2502 var state = form.state.value.trim(); 2503 var location = form.location.value.trim(); 2504 2505 // Step 2 data 2506 var ad_button_id = form.ad_button_id?.value || 'N/A'; 2507 var type = form.type?.value || 'N/A';
2508 var urlParams = new URLSearchParams(window.location.search); 2509 var gclid = urlParams.get('gclid') || 'N/A'; 2510 var campaignid = urlParams.get('campaignid') || 'N/A'; 2511 var keyword = urlParams.get('keyword') || 'N/A'; 2512 var adid = urlParams.get('adid') || 'N/A'; 2513 2514 // Step 3 data 2515 var qualification = form.current_qualification.value || 'N/A'; 2516 var budget = (form.querySelector('input[name="budget_matters"]:checked')?.value) || 'N/A'; 2517 var preferred_budget = form.preferred_budget?.value || 'N/A'; 2518 var experience = (form.querySelector('input[name="previous_yoga_experience"]:checked')?.value) || 'N/A'; 2519 var when = (form.querySelector('input[name="when"]:checked')?.value) || 'N/A'; 2520 var purposeList = purposes.join(', ') || 'N/A'; 2521 2522 console.log("Zoho Complete Data Prepared:", { 2523 name, contact, email, city, state, 2524 qualification, budget, experience, when, purposeList 2525 }); 2526 try { 2527 const response = await fetch("/zoho/create-lead", { 2528 method: "POST", 2529 headers: { 2530 "Content-Type": "application/json", 2531 "X-CSRF-TOKEN": csrf, 2532 "Accept": "application/json" 2533 }, 2534 2535body: JSON.stringify({ 2536 2537 // ====================== 2538 // STEP 1 - BASIC INFO 2539 // ====================== 2540 name: name, 2541 contact: contact, 2542 email: email, 2543 city: city, 2544 state: state, 2545 location: location, 2546 2547 // ====================== 2548 // STEP 2 - CAMPAIGN DATA 2549 // ====================== 2550 ad_button_id: ad_button_id, 2551 type: type, 2552 gclid: gclid, 2553 campaignid: campaignid, 2554 keyword: keyword || null, 2555 adid: adid || null, 2556 2557 // ====================== 2558 // STEP 3 - PROFILING (MATCH SERVICE KEYS) 2559 // ====================== 2560 current_qualification: qualification, // â FIXED 2561 budget_matters: budget, // â FIXED 2562 preferred_budget: preferred_budget || null, 2563 previous_yoga_experience: experience, // â FIXED 2564 when: when, 2565 purpose: purposeList, 2566 2567 // ====================== 2568 // DESCRIPTION (OPTIONAL) 2569 // ====================== 2570 description: `Purpose: ${purposeList} | Qualification: ${qualification} | Budget: ${budget} | Experience: ${experience} | Join: ${when}` 2571 2572}) 2573 2574 }); 2575 2576 2577 console.log("ð¡ Zoho API Raw Response:", response); 2578 2579 const resp = await response.json().catch(() => ({})); 2580 2581 console.log("ð¢ Zoho API Parsed Response:", resp); 2582 2583 if (!response.ok || !resp.success) { 2584 console.error("â Zoho Failed:", resp); 2585 throw new Error(resp.message || "Zoho lead failed"); 2586 } 2587 2588 // console.log("â Zoho Lead Created Successfully"); 2589 2590 // =============================== 2591 // ð WHATSAPP CALL 2592 // =============================== 2593 2594 console.log("ð¡ Sending WhatsApp..."); 2595 2596 $.ajax({
2597 url: "https://yogkulam.com/send-whatsapp-message", 2598 method: "POST", 2599 data: { 2600 campaignName: "lead_generation", 2601 destination: contact, 2602 userName: "YogKulam", 2603 templateParams: [name], 2604 source: "new-landing-page form", 2605 paramsFallbackValue: { 2606 FirstName: "Error" 2607 }, 2608 _token: csrf 2609 }, 2610 success: function(resp) { 2611 console.log("â WhatsApp Success:", resp); 2612 window.location.href = "/thankyou-for-interest-in-ytt-program"; 2613 }, 2614 error: function(err) { 2615 console.error("â WhatsApp Error:", err); 2616 alert("WhatsApp failed"); 2617 } 2618 }); 2619 2620 } catch (err) { 2621 console.error("â FULL ERROR:", err); 2622 alert(err.message || "Something went wrong in Zoho integration"); 2623 } 2624 } 2625 2626 2627 async function nextStep() { 2628 if (!validateCurrentStep()) return; 2629 2630 try { 2631 2632 if (stepIdx === 0) { 2633 await saveLeadPage(); 2634 } else if (stepIdx === 1) { 2635 await saveCategory(); 2636 } else if (stepIdx === steps.length - 1) { 2637 await saveProfiling(); 2638 // alert('Thank you! Your preferences have been saved.'); 2639 closeFreshModal(); 2640 form.reset(); 2641 stepIdx = 0; 2642 showStep(stepIdx); 2643 return; 2644 } 2645 2646 if (stepIdx < steps.length - 1) { 2647 stepIdx++; 2648 showStep(stepIdx); 2649 } 2650 } catch (err) { 2651 console.error(err); 2652 alert(err.message || 'Something went wrong.'); 2653 } 2654 } 2655 2656 function previousStep() { 2657 if (stepIdx > 0) { 2658 stepIdx--; 2659 showStep(stepIdx); 2660 } 2661 } 2662 2663 2664 function closeFreshModal() { 2665 const modal = document.getElementById("freshWizardModal"); 2666 modal.classList.remove("show"); 2667 modal.style.display = "none"; 2668 2669 document.body.classList.remove("modal-open"); 2670 document.body.style.overflow = "auto"; 2671 document.documentElement.style.overflow = "auto"; 2672 document.body.style.paddingRight = "0"; 2673 2674 document.querySelectorAll(".modal-backdrop").forEach(b => b.remove()); 2675 document.documentElement.classList.remove("modal-open", "overflow-hidden", "no-scroll"); 2676 } 2677 2678 2679 // Expose to inline onclick attributes 2680 window.nextStep = nextStep; 2681 window.previousStep = previousStep; 2682 window.toggleBudget = toggleBudget; 2683 window.closeFreshModal = closeFreshModal; 2684 2685 document.addEventListener("DOMContentLoaded", () => { 2686 showStep(stepIdx); 2687 }); 2688 })(); 2689 </script>
2689 2690
2690<script> 2691 function initAutocomplete() { 2692 var input = document.getElementById('location'); 2693 var autocomplete = new google.maps.places.Autocomplete(input); 2694 2695 autocomplete.addListener('place_changed', function() { 2696 var place = autocomplete.getPlace(); 2697 if (!place.geometry) { 2698 console.log("No details available for input: '" + place.name + "'"); 2699 return; 2700 } 2701 var city = ""; 2702 var state = ""; 2703 place.address_components.forEach(function(component) { 2704 if (component.types.includes('locality')) { 2705 city = component.long_name; 2706 } else if (component.types.includes('administrative_area_level_1')) { 2707 state = component.long_name; 2708 } 2709 }); 2710 2711 document.getElementById('city').value = city; 2712 document.getElementById('state').value = state; 2713 document.querySelector('.suggest').style.display = 'flex'; 2714 }); 2715 } 2716 2717 document.addEventListener('DOMContentLoaded', function() { 2718 initAutocomplete(); 2719 }); 2720 </script>
2720 2721 2722 2723 <!-- ===== VIDEO MODAL ===== --> 2724 <div class="modal fade" id="ykhVideoModal" tabindex="-1" aria-hidden="true"> 2725 <div class="modal-dialog modal-dialog-centered modal-xl"> 2726 <div class="modal-content bg-dark"> 2727 <div class="modal-header border-0"> 2728 <h5 class="modal-title text-white">YogKulam ⢠Journey</h5> 2729 <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" 2730 aria-label="Close"></button> 2731 </div> 2732 <div class="modal-body p-0"> 2733 <div class="ratio ratio-16x9"> 2734 <iframe id="ykhVideoFrame" src="" title="YogKulam Video" 2735 allow="autoplay; encrypted-media" allowfullscreen></iframe> 2736 </div> 2737 </div> 2738 <div class="modal-footer border-0"> 2739 <button class="btn btn-light" data-bs-dismiss="modal">Close</button> 2740 </div> 2741 </div> 2742 </div> 2743 </div> 2744 2745 2746
2746<script> 2747 /* ===== DATA ===== */ 2748 const milestones = [{ 2749 year: "2012â2016", 2750 title: "Foundation Years", 2751 icon: "bi-emoji-smile", 2752 blurb: ` 2753 Operated under MDVTI INDIA.<br> 2754 Offered only Vocational Courses (No Yoga yet).<br> 2755 Built initial training systems and student network. 2756 ` 2757 }, 2758 { 2759 year: 2017, 2760 title: "Certification & Authenticity", 2761 icon: "bi-patch-check", 2762 blurb: ` 2763 Introduction of Yoga Teacher Training (YTT) Courses.<br> 2764 Received ISO, QCI & Ministry of AYUSH Certification.<br> 2765 Established strong credibility in yoga education.<br> 2766 First small group batch and offline teaching model. 2767 ` 2768 }, 2769 { 2770 year: 2018, 2771 title: "Rapid Expansion", 2772 icon: "bi-graph-up-arrow", 2773 blurb: ` 2774 Opened 80+ Branches across Uttar Pradesh.<br> 2775 Introduced Franchise Model for scalability.<br> 2776 Strengthened management systems. 2777 ` 2778 }, 2779 { 2780 year: 2019, 2781 title: "Interstate Growth", 2782 icon: "bi-globe-americas", 2783 blurb: ` 2784 Franchise Expansion into Bihar and other Indian states.<br> 2785 Growing recognition as a trusted yoga education brand.<br> 2786 Rapid expansion of YTT Courses all across 10+ States of India. 2787 ` 2788 }, 2789 { 2790 year: 2020, 2791 title: "National Accreditation", 2792 icon: "bi-award", 2793 blurb: ` 2794 Received Indian Yoga Association (IYA) certification.<br> 2795 Curriculum aligned with national yoga standards.<br> 2796 Wider reach during pandemic â Through Social Media & Online Channels. 2797 ` 2798 }, 2799 { 2800 year: 2021, 2801 title: "Digital Transformation", 2802 icon: "bi-laptop", 2803 blurb: ` 2804 Launched Online YTT Courses for the first time.<br> 2805 Complete digital setup during pandemic.<br> 2806 Beginning of new LMS-based learning system. 2807 ` 2808 }, 2809 { 2810 year: 2022, 2811 title: "YogKulam Studio & Lifestyle Movement", 2812 icon: "bi-house-heart", 2813 blurb: ` 2814 Entered Yoga for Self-Fitness & Lifestyle Wellness.<br> 2815 Setup of YogKulam Studios.<br> 2816 Strengthened student community across India. 2817 ` 2818 }, 2819 { 2820 year: 2023, 2821 title: "Innovation & Community Building", 2822 icon: "bi-building-check", 2823 blurb: ` 2824 Launch of Sunday Special Sessions (Free lifetime learning).<br> 2825 Introduced YOGI platform for free yoga learning.<br> 2826 Launched new YogKulam website & attendance system.<br> 2827 Started Free Yoga Camps pan-India with franchise support.<br> 2828 Focused on teaching enhancement & mentorship. 2829 ` 2830 }, 2831 { 2832 year: 2024, 2833 title: "Global Recognition & Excellence", 2834 icon: "bi-trophy", 2835 blurb: ` 2836 Launch of RYT 200 Course (Affiliated with Yoga Alliance USA).<br> 2837 Established Dedicated Service Team & Feedback System.<br> 2838 Hosted Certificate Distribution Ceremonies.<br> 2839 Introduced major courses:<br> 2840 â Yogic Psychology (FCYP & ACYP)<br> 2841 â MA Yoga, ADYT, Volunteer Programs<br> 2842 Expansion on social media content & global reach.<br> 2843 Launch of IndiKulam & BharatShila Foundation Initiatives.<br> 2844 Awarded as Best Yoga School in India. 2845 ` 2846 }, 2847 { 2848 year: 2025, 2849 title: "Integration & Future Vision", 2850 icon: "bi-flag", 2851 blurb: ` 2852 40,000+ yoga teachers trained worldwide.<br> 2853 Launch of New LMS & App.<br> 2854 YogSay introduced for success stories & community inspiration.<br> 2855 YACEP Affiliation achieved.<br> 2856 Launch of new courses:<br> 2857 â Sound Healing, Facial Yoga, DYT Recorded Course, Self
2857-Study Material, Kirtan Sessions.<br> 2858 Building Indiaâs largest integrated ecosystem of Yoga, Education, Seva & Entrepreneurship. 2859 ` 2860 } 2861 ]; 2862 2863 /* ===== DOM ===== */ 2864 const timelineEl = document.getElementById('timeline'); 2865 const fromSel = document.getElementById('fromYear'); 2866 const toSel = document.getElementById('toYear'); 2867 const applyBtn = document.getElementById('applyFilter'); 2868 const resetBtn = document.getElementById('resetFilter'); 2869 const compactBtn = document.getElementById('toggleCompact'); 2870 2871 /* ===== INIT ===== */ 2872 (function init() { 2873 const years = [...new Set(milestones.map(m => m.year))].sort((a, b) => a - b); 2874 years.forEach(y => { 2875 fromSel.add(new Option(y, y)); 2876 toSel.add(new Option(y, y)); 2877 }); 2878 fromSel.value = years[0]; 2879 toSel.value = years[years.length - 1]; 2880 2881 render(milestones); 2882 2883 applyBtn.addEventListener('click', () => { 2884 const a = parseInt(fromSel.value, 10), 2885 b = parseInt(toSel.value, 10); 2886 const [minY, maxY] = a <= b ? [a, b] : [b, a]; 2887 render(milestones.filter(m => m.year >= minY && m.year <= maxY)); 2888 }); 2889 2890 resetBtn.addEventListener('click', () => { 2891 fromSel.value = years[0]; 2892 toSel.value = years[years.length - 1]; 2893 render(milestones); 2894 }); 2895 2896 // Compact toggle for descriptions 2897 let compact = false; 2898 const setCompactUI = () => { 2899 compactBtn.classList.toggle('yk-btn-outline', !compact); 2900 compactBtn.innerHTML = compact ? 2901 '<i class="bi bi-arrows-expand"></i> <span>Expand</span>' : 2902 '<i class="bi bi-arrows-collapse"></i> <span>Compact</span>'; 2903 document.querySelectorAll('.mile p').forEach(p => p.style.display = compact ? 'none' : ''); 2904 }; 2905 setCompactUI(); 2906 compactBtn.addEventListener('click', () => { 2907 compact = !compact; 2908 setCompactUI(); 2909 }); 2910 })(); 2911 2912 /* ===== RENDER (single centered column with rail) ===== */ 2913 function render(list) { 2914 const items = [...list].sort((a, b) => a.year - b.year); 2915 timelineEl.innerHTML = items.map(m => ` 2916 <div class="mile"> 2917 <span class="dot" aria-hidden="true"></span> 2918 <div class="mile-card"> 2919 <div class="d-flex align-items-center justify-content-center gap-2 mb-1"> 2920 <span class="year-badge"><i class="bi ${m.icon}"></i> ${m.year}</span> 2921 <span class="icon-pill d-none d-md-inline"><i class="bi bi-calendar-week"></i> milestone</span> 2922 </div> 2923 <h3>${m.title}</h3> 2924 <p>${m.blurb}</p> 2925 </div> 2926 </div> 2927 `).join(''); 2928 } 2929 2930 /* ===== VIDEO MODAL ===== */ 2931 (() => { 2932 const modal = document.getElementById('ykhVideoModal'); 2933 const frame = document.getElementById('ykhVideoFrame'); 2934 if (modal && frame) { 2935 const src = 'https://www.youtube.com/embed/wYHuHsVersY?rel=0&modestbranding=1&autoplay=1'; 2936 modal.addEventListener('show.bs.modal', () => { 2937 frame.src = src; 2938 }); 2939 modal.addEventListener('hide.bs.modal', () => { 2940 frame.src = ''; 2941 }); 2942 } 2943 })(); 2944 </script>
2944 2945 2946 2947 2948 2949 2950
2950<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
2950 2951 2952
2952<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
2952 2953 2954 2955 2956 2957
2957<script src="https://yogkulam.com/assets/frontend/js/script.js?v=1791565720"></script>
2957 2958</body> 2959 2960</html>
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.