a:6:{i:0;s:42584:"				<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-->				
									<div class="h1"><h1>Chardham Yatra Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.travalta.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.travalta.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Chardham Yatra Tour</p> 
									
						<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> 
						10 Nights / 11 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> New Delhi, Haridwar, Chamoli, Rishikesh, Rudraprayag, Uttarkashi, Auli, Guptkashi</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.travalta.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Chardham Yatra Tour - 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="117836"/>
						</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_17/489304/191192.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/489304/191192.jpg"  width="150" height="150"    alt="Chardham Yatra Tour" title="Chardham Yatra Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Nett and Non Commissionable Cost:-<br />
Deluxe Category: - Rs.78,950/ - Using 01 Double Room + A/c Dzire as per the itinerary.<br />
 <br />
Helicopter Tickets for Kedarnath will be Rs.7500/ - per person.<br />
 <br />
Hotels : - :<br />
Haridwar Hotel Godwin (A/C) / The Golden Tulip (A/C) - (01 Night)<br />
Barkot Camp Nirwana (Swiss Tents) - (02 Nights)<br />
Uttarkashi Shivlinga Resort (A/C) / Akash Ganga (A/C) / Shivparivar (A/C) / Great Ganga (A/C) - (02 Nights)<br />
Guptkashi / Sitapur Camp Nirwana (Swiss Tents) / Shivalik Valley Resort (S.Dlx) - (01 Night)<br />
Rudraprayag Monal Resort (A/C Standard) - (02 Nights)<br />
Badrinath Hotel Sarovar Portico-(01 Night)<br />
Rishikesh Vasundhara Palace (A/C) / The Amaris (A/C) - (01 Night)<br />
 <br />
Hotels are subjected to availability at the time of booking!!!<br />
 <br />
Package Cost Includes: - Accommodation in One Double Room at hotels specified OR similar, breakfast+ dinner in each hotel, A/c Dzire as per the itinerary (ac will not work in hills OR when the vehicle is parked) ,state tax, toll charge, parking, driver allowance.<br />
<br />
Package Cost Does Not Include:- Meals other than those specified, entrance, Helicopter Tickets, ride, tips, any other item not listed in cost includes section. <br />
 <br />
Important Note: The above given cost is calculated on the basis of the selected hotels and base or mentioned category of rooms. In case Rooms in the above said hotels are not available at the time of booking then we will offer similar category hotel and the costing is subject to change as per the rates & availability of rooms. Please note that this is our offer letter and we are not holding any rooms in the above said hotel as of now. We will process the booking upon your receipt of your confirmation.<br />
 <br />
Terms and Conditions:- No refund of non-utilized services, once the tour is start than no change in program will be allowed, Silk Route Holidays  is working as an agent between hotel/car owner and the guest and therefore, will not have any legal liability towards guest or the hotel. By confirming the package/tour you accept all terms and conditions. All disputes are subject to Delhi jurisdiction and compensation amount will not exceed beyond the booking amount in any case. The company will not be responsible in any way for Flight miss, any loss, injury or damage to person or property in connection with transportation or hotels, cause of acts of strikes, pilferage, flood, landslide, riots, breakdown of machinery, accidents, snow fall, etc. all sightseeing depends on permits, weather & road conditions.								</div>
								<br />
																<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 (230 kms/6-7hrs) HT : 314 MTS.
										</p>
										<p class="aj">Arrival Delhi Airport / Delhi Railway Station, Meet & Assist further drive to Haridwar. Transfer to your Hotel. If time permits visit Mansadevi Temple, Chandidevi Temple, Daksha Mahadev Temples & Others. Also visit Har-ki-Pauri for Ganga Aarti. The 'Aarti' worship of the Ganga after sunset and the floating 'dia' (lamp) is a moving ritual. Back to your hotel, Night halt. Haridwar, lying at the feet of Shiva's hills, i.e., Shivaliks, in the Haridwar district of Uttaranchal Pradesh, is a doorway. Suryavanshi prince Bhagirath performed penance here to salvage the souls of his ancestors who had perished due to the curse of sage Kapila. The penance was answered and the river Ganga trickled forth forms Lord Shiva's locks and its bountiful water revived the sixty thousand sons of king Sagara. In the traditional of Bhagirath, devout Hindus stand in the sacred waters here, praying for salvation of their departed elder. It is doorway to the sources of the Ganga and the Yamuna, 3000 to 4500 meters up into the snowy ranges of the central Himalayas. Har ki Pauri: It is also known as Brahmakund and it is believed to be the place where divine nectar fell from the pitcher. It is the site for the famous Kumbh Mela which is celebrated in 12 years. Large number of devotees comes especially to Haridwar to take a holy dip in the Ganga River. At twilight, when evening aarti is performed the reflection of the golden diyas that keep floating on the river offers an enchanting view of the ghat to the visitors. This sacred Ghat was built by King Vikramaditya in memory of his brother Bhatrihari, who is said to have meditated on the banks of Ganga in Haridwar. Chandi Devi Temple: Situated on the top of the Neel Parvat, Chandi Temple was built in 1929 by Suchat Singh, the King of Kashmir. The temple can be reached after a 3km trek from Chandi Ghat. The main statue of Chandi Devi Temple is said to be established by the Adi Shankaracharya in 8th century. Cable car has also been introduced upto Chandi Devi Temple. Mansa Devi Temple: Mansa Devi temple is perched on the top of the Bilwa Parwat and it is dedicated to Goddess Mansa Devi. Mansa Devi can be reached either by a ropeway that carries pilgrims to the temple or on foot. A statue of the Goddess here has three mouths and five arms, while the other one has eight arms. The temple affords bird's eye view of Haridwar. Daksha Mahadev Temple: This ancient Dsksha Mahadev Temple (Daksheswara Mahadev Temple) is located in the south Kankhal with Lord Shiva as its residing deity. According to mythology, this temple is supposed to have been the site of a yagna conducted by Daksha.</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 - Barkot (210kms/7-8hr) HT : 1352 MTS.
										</p>
										<p class="aj">Drive to Barkot via Mussoorie, enroute visit Kempty Fall (Suggestible to have your lunch at Kempty fall as further no good restaurants are available before Badkot). Later drive straight to Barkot, transfer to your Hotel. Overnight stay at Barkot. Barkot is known for its scenic natural beauty. Located at the confluence of Yamuna and tons rivers. At an elevation of over 4,000 ft, apple orchards ringed by the Himalayan range. Barkot offers panoramic views of the snowcapped mountains of Bandar Poonch. Barkot is an important stopover en route to Yamunotri and Gangotri, among the four Char Dham Pilgrimages.<br />
Weather - Generally pleasant in summer, the temperature ranges from 25-30 degree Celsius, Winter: The Days are pleasantly cool but the nights are cold, temp ranges from 10 deg to 05 deg.</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 {36kms drive & 6kms Trek (one side)} HT : 3235 MTS.
										</p>
										<p class="aj">Early morning, 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. Return back to Barkot, Overnight stay. Yamunotri Temple: Maharani Gularia of Jaipur built the temple in the 19th Century. It was destroyed twice in the present century and rebuilt again. Surya Kund: There are a Number of thermal springs in the vicinity of the temple, which flows into numerous pools. The  most important of these is Surya Kund. Divya Shila: A rock pillar, worshipped before entering the Yamunotri Temple.Weather - In summer the maximun temp is 18 degrees and the minimum is 10 degrees celsius. The days are pleasantly cool but the nights are cold.</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 (100kms/4hr) HT :1352 MTS.
										</p>
										<p class="aj">Drive to Uttarkashi. Visit Vishwanath Temple & Others. Check in Hotel. Rest day at leisure. Night Halt. Uttarkashi is home to a number of ashrams and temples and also to the Nehru Institute of Mountaineering. The name of the town reflects its similarity to and location (as north of) the city of Kashi (Varanasi). Similar to Varanasi, town of Uttarkashi is situated on the Ganges, lies next to a hill named Varun Parvat, on confluence of two rivers Varuna and Asi, has a ghat called Manikarnika Ghat and has a temple dedicated to Shiva (Kashi Vishwanath Temple) in the center of the town. Vishwanath temple - Vishwanath temple is one of the oldest Shiva temples in Northern India. Re-constructed in 1857 by Maharani Khaneti Devi of Tehri State in the ancient architectural style. It is situated at the heart of the town. A massive iron trident, symbolic of divine mother’s, is erected and worshiped from time immemorial at the temple complex. Ganeshji, Sakshi Gopal, Markandeya Rishi’s small shrines are also part of the temple complex. Akhand Jyoti as well as Akhand Abhishek, special aarti at morning and evening are offered. As per Skunda Puran, Uttarkashi is known as ‘Saumya Varanasi’, the abode of Lord Shiva in Kaliyug and counted as one of the twelve Jyotirlingas. Shakti temple - Right in front of the Vishwanath temple is Shakti temple. It has a big ‘Trishul’ of about 6 meters in height and a circumference of 90 cms. At bottom. Though there are different views about the making of this, the upper part of it seems to be made up of iron and the lower one is of copper. As per the epics this Shakti was thrown on the devils by the Goddess Durga(Shakti), hence it gets its name. Since then this Shakti is erected over here.<br />
Weather - Generally hot in summer, the temperature ranges from 30-35 degree Celsius but nights is pleasant, Cold in winters.</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 (100kms/3-4 each side) HT : 3048 MTS.
										</p>
										<p class="aj">Early morning drive to Gangotri, enroute at Gangnani take a holy dip in Garam Kund, further drive to Gangotri via beautiful Harsil Valley. Harsil is famous for its nature beauty and for the majestic views of the Deodar trees, and mountains. On arrival at Shree Gangotri, take a holy dip in the sacred river Ganges which is also called Bhagirathi at its origin. Perform Pooja and Darshan, after that relax for some time in the lovely surroundings. Return back to Uttarkashi. Overnight stay at Uttarkashi. Gangotri Temple: The temple, constructed by the Gorkha General Amar Singh Thapa in the 18th Century, is situated on the right bank of Bhagirathi. Submerged Shivling: Submerged in the river, this natural rock Shivling is the place where, according to mythology Lord Shiva sat when he received the Ganga in his matted lock. It is visible in winter months when water level decreases. Kedar Ganga Sangam: Around 100 Yards from the Ganga Temple flows the river Kedar Ganga. Starting from the Kedar Valle, this river meets the Bhagirathi on<br />
its left bank.</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 (220kms/8-9hr) HT : 1319 MTS.
										</p>
										<p class="aj">Drive straight to Guptkashi via Moolgarh & Lambgoan. Enroute you can see the beautiful river Mandakini at Tilwara. The Mandakini river comes from Kedarnath, drive alongside the river to reach Guptakashi. On arrival Check In at the Hotel, evening visit Ardh Narishwar Temple. Overnight stay at the Hotel. The name Gupt Kashi means "Hidden Benares. Mythology describes how when the Pandava brothers were searching for a glimpse of Shiva, Shivji first concealed himself at Gupt Kashi, but later fled from them further up the valley to Kedarnath, where the Pandavas finally got their wish fulfilled. There are more tangible connections as well-the Kedarnath pandas (hereditary pilgrimage priests) live in Gupt Kashi during the winter months, and after the Kedarnath temple<br />
closes for the winter, the image of Kedarnath passes through Gupt Kashi on its way to Ukhimath (across the valley), where it stays for the winter.</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 – Phata Helipad (10kms) - Kedarnath – Phata (By Helicopter) – Rudraprayag (60kms)
										</p>
										<p class="aj">Morning drive to Phata (Helipad), transfer to Kedarnath by Helicopter. Visit Kedarnath Temple & return back to Phata. Later drive back to Rudraprayag via Guptkashi. Check in Hotel. Rest day at leisure. Overnight stay. Kedarnath: 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.</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> Rudraprayag - Badrinath (160kms/7hr) HT : 3133 MTS.
										</p>
										<p class="aj">Drive to Badrinath via Joshimath. Check in Hotel. There are other interesting sightseeing spot like Mana, Vyas Gufa, Maatamoorti, Charanpaduka, Bhimkund and the "Mukh" of the Saraswati River. Just within the three kms of Badrinathjee. Later at evening visit Badrinath Temple for Aarti. Overnight stay. 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, guarded on either side by the two mountain ranges known as Nar & Narayan with the towering Neelkanth Peak providing a splendid backdrop. 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.<br />
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 9:</b> Badrinath – Pipalkoti (80kms) / Rudraprayag (160kms) / Kirtinagar (200kms)
										</p>
										<p class="aj">Early morning, pilgrims after having a bath in the Taptkund have the Darshan of Badrivishal. Brahamakapal is significant for Pinddan Shraddh of ancestors (Pitrus Later drive back to Pipalkoti / Rudraprayag / Kirtinagar via Joshimath. Check in Hotel. Overnight stay. Joshimath is situated on the slopes above the confluence of the rivers Alaknanda and Dhauliganga. Of the four 'Maths' established by Adi Shankaracharya, Joshimath is the winter seat of Badrinath. The idol is brought down to Joshimath and installed in the temple for people to worship. There are many other temples in the township. The most important is the temple of Nir Singh with the idol of Lord Vishnu. The left arm of this deity is getting destroyed with time and the popular belief holds that the day 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.</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> Pipalkoti – Rishikesh (215kms/7hr) / Rudraprayag – Rishikesh (140kms/4-5hr) / Kirtinagar – Ris
										</p>
										<p class="aj">Drive to Rishikesh, the 'place of sages' is a celebrated spiritual town on the bank of Ganga and is surrounded by Shivalik range of the Himalayas on three sides. It is said that when Raibhya Rishi did hard penances, God appeared by the name of " Hrishikesh " and this area hence firth came to be known as Rishikesh. Check in Hotel. Later visit Rishikesh Temples & Sight Seeing – Laxman Jhulla, Ram Jhulla, Triveni Ghat, Bharat Mandir, Shivananda Ashram. At evening visit Ganga Aarti at Parmarth Ashram. Overnight stay. Bharat Mandir: The Bharat Mandir is the oldest temple of Rishikesh, situated near the Jhanda Chowk. Rishi Rabhya did his penance at this holy spot and the place is devoted to Lord Vishnu. A spectacular sacred Shree Yanthra is placed at the inner canopy of the temple. Bharat Mandir celebrates colourful spring festival called 'Basant Panchami'. Laxman Jhula: Lakshman Jhula is on of the main attraction of Rishikesh. It is 450 ft long hanging bridge on the river Ganga which was built in 1939. According to myths and legends Laksman, brother of Lord Rama crossed Ganga River on a jute rope from this point. The 13 storied temple is located near Lakshman Jhula where the idols of several Gods and Goddesses are kept. The bridge gives a magnificent view of the Ganges, greeting you with the cool breeze from the river. Ram Jhula: Ram Jhoola connects Swargashram with Shivananda Ashram. Several ashrams are located near Ram Jhoola. Ram Jhoola is bigger than Laxman Jhula and even more picturesque.<br />
 </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> Rishikesh - Hardwar - Delhi (250kms/7-8hr)
											</p>
											<p class="aj">Drive back to Delhi. On Arr. Delhi, transfer to Railway Station / Airport. Tour Terminate.<br />
 </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>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.travalta.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Chardham Yatra Tour - 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="117836"/>
						</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.travalta.in/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-paro.htm" title="Packages in Paro">Paro</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-ahmedabad.htm" title="Packages in Ahmedabad">Ahmedabad</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-thimphu.htm" title="Packages in Thimphu">Thimphu</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-thiruvananthapuram.htm" title="Packages in Thiruvananthapuram">Thiruvananthapuram</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-kodaikanal.htm" title="Packages in Kodaikanal">Kodaikanal</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-kovalam.htm" title="Packages in Kovalam">Kovalam</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-haridwar.htm" title="Packages in Haridwar">Haridwar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-hampi.htm" title="Packages in Hampi">Hampi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-london.htm" title="Packages in London">London</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-amsterdam.htm" title="Packages in Amsterdam">Amsterdam</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-thanjavur.htm" title="Packages in Thanjavur">Thanjavur</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.travalta.in/packages-in-rishikesh.htm" title="Packages in Rishikesh">Rishikesh</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.travalta.in/packages-in-somnath.htm" title="Packages in Somnath">Somnath</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.travalta.in/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 spanlist dn"><a class="dif" href="http://www.travalta.in/packages-in-belgaum.htm" title="Packages in Belgaum">Belgaum</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.travalta.in/packages-in-chamoli.htm" title="Packages in Chamoli">Chamoli</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.travalta.in/packages-in-port-louis.htm" title="Packages in Port Louis">Port Louis</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.travalta.in/packages-in-mumbai.htm" title="Packages in Mumbai">Mumbai</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.travalta.in/packages-in-kargil.htm" title="Packages in Kargil">Kargil</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.travalta.in/packages-in-coimbatore.htm" title="Packages in Coimbatore">Coimbatore</a> <b class="alpha50 bn small">(2)</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.travalta.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travalta.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for New Delhi, Haridwar, Chamoli, Rishikesh, Rudraprayag, Uttarkashi, Auli</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.travalta.in/tour-packages/agra-delight2-nights3-days-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/489304/171207.jpg"  alt="Agra Delight (2 Nights & 3 Days) Package" title="Agra Delight (2 Nights & 3 Days) Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.travalta.in/tour-packages/agra-delight2-nights3-days-package.htm" title="Agra Delight (2 Nights & 3 Days) Package"><h3>Agra Delight (2 Nights & 3 Days) Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  New Delhi, Agra</p>
															<div class="mt10px small">
							<form name="pkg_102144" id="pkg_102144" method="post" action="http://www.travalta.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.travalta.in/tour-packages/agra-delight2-nights3-days-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Agra Delight (2 Nights & 3 Days) Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="102144"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.travalta.in/tour-packages/char-dham-tour-package-uttrakhand11-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/489304/191120.jpg"  alt="Char Dham Tour Package (UttraKhand) - 11 Days" title="Char Dham Tour Package (UttraKhand) - 11 Days"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.travalta.in/tour-packages/char-dham-tour-package-uttrakhand11-days.htm" title="Char Dham Tour Package (UttraKhand) - 11 Days"><h3>Char Dham Tour Package (uttrakhand) - 11 ..</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								10 Nights / 11 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Haridwar, Chamoli, Rishikesh, Rudrapraya..</p>
															<div class="mt10px small">
							<form name="pkg_117785" id="pkg_117785" method="post" action="http://www.travalta.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.travalta.in/tour-packages/char-dham-tour-package-uttrakhand11-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Char Dham Tour Package (UttraKhand) - 11 Days - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="117785"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.travalta.in/tour-packages/haridwar-rishikesh-tour-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/489304/171210.jpg"  alt="Haridwar Rishikesh Tour Package" title="Haridwar Rishikesh Tour Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.travalta.in/tour-packages/haridwar-rishikesh-tour-package.htm" title="Haridwar Rishikesh Tour Package"><h3>Haridwar Rishikesh Tour Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Haridwar</p>
															<div class="mt10px small">
							<form name="pkg_102147" id="pkg_102147" method="post" action="http://www.travalta.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.travalta.in/tour-packages/haridwar-rishikesh-tour-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Haridwar Rishikesh Tour Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="102147"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</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:49:"Book Chardham Yatra Tour - 111 Days Tour Packages";i:2;s:184:"book chardham yatra tour - 111 days tour packages, religious & pilgrimage tour packages, new delhi, haridwar, chamoli, rishikesh, rudraprayag, uttarkashi, auli, guptkashi tour packages";i:3;s:209:"Travalta offers Chardham Yatra Tour - 111 Days tour package, budget Religious & Pilgrimage tour packages for New Delhi, Haridwar, Chamoli, Rishikesh, Rudraprayag, Uttarkashi, Auli, Guptkashi at exciting price.";i:4;s:2990:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Haridwar, Chamoli, Rishikesh, Rudraprayag, Uttarkashi, Auli, Guptkashi"        
		                 },
		      "description": "Nett and Non Commissionable Cost:-
Deluxe Category: - Rs.78,950/ - Using 01 Double Room + A/c Dzire as per the itinerary.
 
Helicopter Tickets for Kedarnath will be Rs.7500/ - per person.
 
Hotels : - :
Haridwar Hotel Godwin (A/C) / The Golden Tulip (A/C) - (01 Night)
Barkot Camp Nirwana (Swiss Tents) - (02 Nights)
Uttarkashi Shivlinga Resort (A/C) / Akash Ganga (A/C) / Shivparivar (A/C) / Great Ganga (A/C) - (02 Nights)
Guptkashi / Sitapur Camp Nirwana (Swiss Tents) / Shivalik Valley Resort (S.Dlx) - (01 Night)
Rudraprayag Monal Resort (A/C Standard) - (02 Nights)
Badrinath Hotel Sarovar Portico-(01 Night)
Rishikesh Vasundhara Palace (A/C) / The Amaris (A/C) - (01 Night)
 
Hotels are subjected to availability at the time of booking!!!
 
Package Cost Includes: - Accommodation in One Double Room at hotels specified OR similar, breakfast+ dinner in each hotel, A/c Dzire as per the itinerary (ac will not work in hills OR when the vehicle is parked) ,state tax, toll charge, parking, driver allowance.

Package Cost Does Not Include:- Meals other than those specified, entrance, Helicopter Tickets, ride, tips, any other item not listed in cost includes section. 
 
Important Note: The above given cost is calculated on the basis of the selected hotels and base or mentioned category of rooms. In case Rooms in the above said hotels are not available at the time of booking then we will offer similar category hotel and the costing is subject to change as per the rates & availability of rooms. Please note that this is our offer letter and we are not holding any rooms in the above said hotel as of now. We will process the booking upon your receipt of your confirmation.
 
Terms and Conditions:- No refund of non-utilized services, once the tour is start than no change in program will be allowed, Silk Route Holidays  is working as an agent between hotel/car owner and the guest and therefore, will not have any legal liability towards guest or the hotel. By confirming the package/tour you accept all terms and conditions. All disputes are subject to Delhi jurisdiction and compensation amount will not exceed beyond the booking amount in any case. The company will not be responsible in any way for Flight miss, any loss, injury or damage to person or property in connection with transportation or hotels, cause of acts of strikes, pilferage, flood, landslide, riots, breakdown of machinery, accidents, snow fall, etc. all sightseeing depends on permits, weather & road conditions.",
		      "name": "Chardham Yatra Tour",
		      "telephone": "+91-9657981709"
		    }
		    </script>
			";i:5;N;}