a:6:{i:0;s:28362:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Chardham Tour  Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.mehtatours.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.mehtatours.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Chardham Tour  Package</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						11 Nights / 12 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Haridwar, Badrinath, Bageshwar, Chamoli, Yamunotri, Champawat</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mehtatours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Chardham Tour  Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="182207"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/427775/275999.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/427775/275999.jpg"  width="150" height="150"    alt="Chardham Tour  Package" title="Chardham Tour  Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="headHr">
					            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
					            </div>
					            
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 1:</b> Delhi–Haridwar
										</p>
										<p class="aj">Morning On Arrival At the Airport/railway Station/pick Up Point,Meet Our Drive to Haridwar,On Arrival Haridwar Check in Hotel. Later We Shall Take You to Visit to the Har-ki-pauri,Revel in Ganga Aarti in the Evening,Later Back to Hotel for Overnight Stay At the Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Haridwar–Mussoorie-Barkot
										</p>
										<p class="aj">Haridwar–mussoorie-barkot (220kms/7-8hr) Depart from Haridwar Early Morning and Stop for Lunch On the Way to Mussoorie . Continue Your Journey and Reach Barkot in the Evening After Visiting Kempty Falls On the Way.on Arrival Check in to the Hotel, Dinner and Overnight At Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 3:</b> Barkot-yamunotri-barkot
										</p>
										<p class="aj">Barkot-yamunotri-barkot {36kms Drive & 6kms Trek (one Side)} Drive to Jankichatti / Phoolchatti, Trek Start from Here to Yamunotri (6kms). Either By Walk or By Horse or By Doli At Own Cost. Arr. Yamunotri, One Can Cook Rice By Packing It in a Cloth and Dipping It in the Hot Water of the Hot Kund. Pilgrims Take this Cooked Rice Home as "prasad". Here Near the Temple "pooja" Can Be Offered to Divya Shila, After Taking Bath in Jamunabai Kund's Warn Water and Having "darshan" of Pious "yamunaji" Returning to Jankichatti. Later Drive Back to Barkot. Overnight Stay At Hotel. Yamunotri Temple,Surya Kund,Divya Shila</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> Barkot-Uttarkashi
										</p>
										<p class="aj">Barkot-uttarkashi (100kms/4hr) After a Relaxed Breakfast, Leave for Uttarkashi, Drive of 100 Kms. Enroute Vist Prakateshwar Cave, On Arrival Uttarkashi Checkin At the Hotel Evening Visit Vishvanath Temple, Overnight Stay At the Hotel. Uttarkashi:situated At the Bank of River Bhagirathi. the Temple of Lord Vishwanath is Located Here Where a Massive Iron Trident is Erected.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> Uttarkashi-Gangotri-Uttarkashi
										</p>
										<p class="aj">Uttarkashi-gangotri-uttarkashi (100kms/3-4 Each Side) Early Morning Drive to Gangotri (3048 Mts), Enroute We Enjoy Picturesque Harsil Village, Bhagirathi River and the Most Magnificent View of the Himalayas . After Gangotri Darshan We Return to Uttarkashi. Oernight Stay At Uttarkashi. Gangotri Temple,Submerged Shivling,Kedar Ganga Sangam.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 6:</b> Uttarkashi–Guptkashi
										</p>
										<p class="aj">Uttarkashi–Guptkashi (220kms/8-9hr) After a very early Breakfast, leave for Guptkasi. a late lunch is Scheduled en Route molgarh. After lunch, Continue your journey and today for the first time see the Beautiful River Mandakni. Travel along side the River to reach Guptakashi late in the Evening, Overnight Stay at Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 7:</b> Guptkashi–Gaurikund–Kedarnath-Guptkashi
										</p>
										<p class="aj">Guptkashi–Gaurikund–Kedarnath-Guptkashi(35 Km + 18 Km trek) Early morning after breakfast check out from the hotel and drive to Gaurikund. From where, you will start your 18 km trek to Kedarnath. You can hire a Doli or a horse, for your trek (Cost Not Included). Mandakini, one of the main tributaries of the Ganges originates at Kedarnath and flows through Gaurikund. Trudging with you are pilgrims chanting "Jai Bholenath." Sometimes the mist would envelop the mountains and slowly lift away, revealing a shiny blinding-white peak that threatens to rupture the skies. On arrival check in at Govt. Camps/Lodges. Dinner and Overnight at Govt. Camps/Lodges. (Accommodation andfood provided by Uttarakhand Govt. in Kedarnath)</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 8:</b> Guptkashi
										</p>
										<p class="aj">Extra Waiting & Rest Day at Guptkashi. This is Extra Day at Guptkashi for Rest & Waiting for those members who stayed at Kedarnath. (Tour members should carry personal medicines, heavy woolen, toiletries and clothes)<br />
Kedarnath Temple :The Kedarnath shrine, one of the 12 jyotirlingas of Lord Shiva, is a scenic spot situated, against the backdrop of the majestic Kedarnath range. Kedar is another name of Lord Shiva, the protector and the destroyer. According to legend, the Pandavas after having won over the Kaurava in the Kurukshetra war, felt guilty of having killed their own brothers and sought the blessings of Lord Shiva for redemption. He eluded them repeatedly and while fleeing took refuge at Kedarnath in the form of a bull. On being followed he dived into the ground, leaving his hump on the surface. The r! emaining portions of Lord Shiva appeared at four other places and are worshipped there as his manifestations. The arms appeared at Tungnath, the face at Rudranath, the belly at Madhmaheshwar and his locks (hair) with head at Kalpeshwar. Kedarnath and the four above-mentioned shrines are treated as Panch Kedar.<br />
Kedarnath Temple:-The present temple built in 8th century AD by Adi Guru Shankaracharya lies adjacent to the site of an ancient temple built bu Pandavas. Temple has a Conical Lingam -the assemblies of pilgrims and visitors. The temple is more than 1000 year old. Behind the Kedarnath temple lies the samdhi of final resting place of Adi Guru Shankaracharya. It is belived that after establishing the four dham in India he went for his Samadhi at an early age of 32 years….</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 9:</b> Guptkashi–Joshimath-Badrinath
										</p>
										<p class="aj">Guptkashi–Joshimath-Badrinath (190kms/7hr) After Breakfast leave forBadrinath via Joshimath. After driving through some wonderful Ghat road you arrive at Badrinath. On arrival check into the hotel. After some rest and refreshments you are all set to go to Badrinath Temple for darshan in the evening. But first you have to go to Tapt Kund (Hot Spring), take bath and then go to the temple. Dedicated to Lord Vishnu, the temple of Shri Badrinath Ji is 15 meters in height, built in the form of a cone with a small cupola of a gilt bull and spire. Later back to hotel. Dinner and Overnight stay at hotel. Badrinath:-Cradled in the twin Mountain ranges of Nar and Narayan is the holies of the four main shrines-badrinath along the left bank of Alaknanda with the towering Neelkanth peak as the splendid backdrop. Once the spot was carpeted eith “Badri”or wild berries and hence was famous as Badrivan.<br />
Legend has it when the ganga was requested to descend to earth to help suffering humanity, the earth was unable to with stand the force of its descent, There for the mighty ganga was split in to 12 holy channels, Alaknanda was one of then that later became the abode of Loard Vishnu or Badrinath Ji…..<br />
Badrinath one of the 'Four Dhams' is one of the most celebrated pilgrimage spots of the country and is situated at an elevation of 3,133 meters, This revered spot was once carpeted with wild berries. Thus the place got the name "Badri van", meaning "forest of berries". Tapt Kund :Natural thermal springs on the bank of the river Alaknanda, where it is customary to bathe before entering the Badrinath temple. Narad Kund :A recess in the river, near Tapt Kund, forming a pool from where the Badrinath idol was recovered. Brahama Kapal :A flat platform on the bank of river Alaknanda. Hindus perform proppitiating rites for their deceased ancestors. Sheshnetra :1.5kms. away is a boulder having an impression of the legendary serpent, better known as the Sheshnag's eye. Charanpaduka :3kms. away is a beautiful meadow where the footprint of Lord Vishnu is seen on a boulder. Mata Murty Temple : Devoted to the mother of Sri Badrinathji. Other important temples include Sesh Netra Temple , Urvashi Temple and Charanpaduka. Mana Village :Inhabited by an Indo-Mongolian tribe, it is the last Indian village before Tibet . Vasundhara :As the name suggests, vasundhara is a magnificent water fall. This place is 5 kms. from Badrinath out of which 2 kms. is motorable upto Mana. Bhim Pul :On the other side of Mana village, a massive rock forming a natural bridge, lies over the roaring Saraswati river. It presents a spectacular view of water thundering down through the narrow passage under the rock and is believed to have been placed there by Bhim, the second eldest among the five Pandava brothers. Vyas Gufa (cave): Near Mana Village, this is a rock-cave where Ved Vyas is believed to have composed the Mahabharata and the pauranic commentaries.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 10:</b> Badrinath–Joshimath-Pipalkoti-Rudraperyag
										</p>
										<p class="aj">Badrinath–Joshimath-Pipalkoti-Rudraperyag (180kms/6-7hr) Early morning, pilgrims after having a bath in the Taptkund have the Darshan of Badrivishal. Brahamakapal is significant for PinddanShraddh of ancestors (Pitrus). There are other interesting sight seeing spot like Mana, Vyas Gufa, Maatamoorti, Charanpaduka, Bhimkund and the "Mukh" of the Saraswati River . Just within the three kms of Badrinathjee. Afternoon drive back to Rudraprayag en-route visiting Karanprayag. Rudraprayag is a small pilgrim town on the holy confluence of river Alaknanda and Mandakini. On arrival check in at hotel. Rest of the day free to explore the Rudraprayag town. Dinner and Overnight stay at hotel. Joshimathissituated on the slopes above the confluence of Alaknanda and Dhauliganga. Of the four 'Maths' established by Adi Shankaracharya, Joshimath is in the Badrinath to Joshimath and installed in the temple for people to worship. There are many temples in the township most important is the temple of Nir Singh in commotion of Lord Vishnu. The left arm of this deity is with time and the popular belief holds that the day the the arm completely withers Badrinath valley will cease to exist and the Gods will transfer the residence into the neighboring Niti Valley at Bhavishya Badri. Joshimath is connected by regular bus service to Rishikesh, Haridwar, Badrinath and many other centres in the region. Rudraprayag:It is the confluence of river Mandakini and river Alaknanda.</p>
										</td>
										</tr>
										</table>					
										</div><div id="show_more_content" style="display:none;">
											<div class="data">
											<table class="w100 formTable bdr0 imgWidth">
											<tr>
											<td class="p10px vat">
											<p class="b large mb5px"><b class="dif">Day 11:</b> Rudraprayag–Rafting Shivpuri–Rishikesh-Haridwar
											</p>
											<p class="aj">Rudraprayag–Rafting Shivpuri–Rishikesh-Haridwar ( 155 kms 7 hrs ) Early morning, after breakfast, you drive downhill to Rishikesh a spiritual city and the Yoga capital of the world. Here you may opt to enjoy some adventure activities like River rafting, etc. On reaching Rishikesh you'll do the Rishikesh sightseeing visit Ram Jhula and Laxman Jhula. Evening drive to Haridwar. On arrival check in at hotel. Dinner and Overnight stay at hotel.<br />
Rishikesh :25 kms upstream on the banks of the Ganga where it is met by the Chandrabhaga is the holy town of Rishikesh. Literally,Rishi's (holy man) locks, this small town is the point where the holy Ganges crashes down in full glory onto huge boulders and creates long stretches of white sandy beaches. The banks are lined with ashrams, where saints and holy men rested before beginning their arduous pilgrimage up into the snow-covered land of the gods. Rishikesh is essentially a combination of five different districts-Rishikesh the commercial centre, Muni-ki-reti in the quiet suburbs, Shivananda Nagar to the north, Lakshmanjhula withits holy shrines and Swarg Ashram where most of the ashrams are located.<br />
Swarg Ashram, with its numerous ashrams, food stalls and shops is a haunt for those looking for insights into religious themes. The newly constructed Ram Jhoola straddles the Ganga at this point. You can also make a river crossing on the ferries that run during the day. Important shrines and ashrams at Swarg Ashram include Kali Kumbliwale founded by Swami Vishudhananda, Parmarth Niketan with large statues of gods and goddesses and the Gita Bhavan with its Ayurvedic dispensary and shop selling religious books and cotton Khadi.<br />
About 2 kms upstream is the old footbridge called Lakshmanjhula, named after the brother of Lord Rama. Temples line both sides of the river at Lakshmanjhula.<br />
To the northeast is the area of Muni-ki-reti. Along the banks of the Chandrabhaga river, this area with its secluded white sand beaches is ideal for swimming. Boat rides on the river near Swarg Ashram are a pleasant diversion, and you can feed the fish that cluster around pilgrims throwing balls of wheat flour into the waters.</p>
											</td>	
											</tr>
											</table>				
											</div>
											<div class="data">
											<table class="w100 formTable bdr0 imgWidth">
											<tr>
											<td class="p10px vat">
											<p class="b large mb5px"><b class="dif">Day 12:</b> Haridwar–delhi
											</p>
											<p class="aj">Haridwar–delhi (220 Kms Drive 5-6 Hrs ) Morning After Breakfast Drive to Delhi, On Arrival At Delhi Transfer to Airport/railway Station/dropping Point.</p>
											</td>	
											</tr>
											</table>				
											</div>					
									</div>									<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
																	<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mehtatours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Chardham Tour  Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="182207"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-bhatinda.htm" title="Packages in Bhatinda">Bhatinda</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-kodaikanal.htm" title="Packages in Kodaikanal">Kodaikanal</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-bangalore.htm" title="Packages in Bangalore">Bangalore</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-jalandhar.htm" title="Packages in Jalandhar">Jalandhar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/packages-in-lachung.htm" title="Packages in Lachung">Lachung</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-rameshwaram.htm" title="Packages in Rameshwaram">Rameshwaram</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-amritsar.htm" title="Packages in Amritsar">Amritsar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-madurai.htm" title="Packages in Madurai">Madurai</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-ambala.htm" title="Packages in Ambala">Ambala</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-mysore.htm" title="Packages in Mysore">Mysore</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-haridwar.htm" title="Packages in Haridwar">Haridwar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-yamunotri.htm" title="Packages in Yamunotri">Yamunotri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-bageshwar.htm" title="Packages in Bageshwar">Bageshwar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-champawat.htm" title="Packages in Champawat">Champawat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-chamoli.htm" title="Packages in Chamoli">Chamoli</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mehtatours.com/packages-in-badrinath.htm" title="Packages in Badrinath">Badrinath</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/camping-holidays-catid.htm" title="Camping Packages">Camping</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/cycling-holidays-catid.htm" title="Cycling Packages">Cycling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mehtatours.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:63:"Book Chardham Tour  Package - 11 Nights / 12 Days Tour Packages";i:2;s:163:"book chardham tour  package - 11 nights / 12 days tour packages, camping tour packages, haridwar, badrinath, bageshwar, chamoli, yamunotri, champawat tour packages";i:3;s:208:"Book Chardham Tour  Package - 11 Nights / 12 Days tour packages from Mehta Tours - Get attractive 11 Nights / 12 Days Camping  tour packages for  Haridwar, Badrinath, Bageshwar, Chamoli, Yamunotri, Champawat.";i:4;s:455:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Haridwar, Badrinath, Bageshwar, Chamoli, Yamunotri, Champawat"        
		                 },
		      "description": "",
		      "name": "Chardham Tour  Package",
		      "telephone": "+91-8511977680"
		    }
		    </script>
			";i:5;N;}