a:6:{i:0;s:43126:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>The Beautiful Hills Of Nainital & Ranikhet</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.krishnaairtravel.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.krishnaairtravel.in/golden-triangle-tours.htm" title="Golden Triangle Tours">Golden Triangle Tours</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> The Beautiful Hills Of Nainital & Ranikhet</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-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10225.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10225.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10225.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10218.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10218.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10218.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10227.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10227.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10227.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10226.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10226.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10226.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10224.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10224.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10224.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10223.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10223.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10223.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10222.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10222.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10222.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10221.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10221.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10221.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10220.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10220.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10220.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10219.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10219.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10219.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10228.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10228.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10228.jpg"  alt="The Beautiful Hills of Nainital & Ranikhet" title="The Beautiful Hills of Nainital & Ranikhet" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
							
							<ul class="lsn" id="bxslider-pager"><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10225.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10218.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10227.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10226.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10224.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10223.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10222.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10221.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10220.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10219.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_2/40817/10228.jpg"></a></li></ul>					
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">The Beautiful Hills of Nainital & Ranikhet</p>
					
											<p class="mb5px"><b>Tour Code :</b> The Beautiful Hills</p>
												<p class="mb5px"><b>Duration :</b> 
						3 Nights / 4 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Nainital, Ranikhet</p>
												<p class="mb5px"><b>Attractions :</b> Snow View Point</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.krishnaairtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Beautiful Hills of Nainital & Ranikhet - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="9857"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">2 Night Nainital, 1 Night Ranikhet<br />
<br />
Nainital: <br />
<br />
Nainital, a little Himalayan hamlet forced to grow into a city, is today one of the most famous hill-stations in India. Its famous Naini Tal, a shimmering lake enveloped by green hills on three sides, gives it an alpine feel, and has the famous Mall (a delightful promenade) curving around its banks. Naini Lake is a peaceful lake with a flotilla of pedal and rowboats whipping up waves. Nainital, renowned for superb views of the Greater Himalayas and its numerous prestigious educational institutions, was completely destroyed in the Landslip of 1880, and later rebuilt. Set into two parts with the lake separating them, with Tallital on the southern side of the lake, and Mallital on the northern upper reaches. Nainital offers the best of both worlds, the throb of city life and the calm of a quiet hill resort.<br />
<br />
Places to See<br />
Nainital still retains its old-world charm, and also offers scenic views of the Himalayas. Amongst the things to see in Nainital, Snow View is one of the most famous, and can either be accessed by foot or by rope way. From here you can see Nanda Devi, as well as mountains on the Tibetan border. Next in the list is Land's End, which is accessed by foot from Dorothy's Seat (2,292 metres), from where you can take an enchanting walk through a forest of oak, Deodar and pine for 45 minutes to reach Land's End. From here you can enjoy views out over the lake, and walk under a canopy of oak and Deodar, enjoying the mild mountain sun filtering in through the trees. Also visit Gurney House, the house where the famous Jim Corbett once lived, accessed from the road by the northwest corner of the lake near the Jama Masjid.<br />
<br />
The next major site is State Observatory near the Hanuman Temple, which also has several lookout points around it, ideal for viewing sunsets. However, permission is required to enter the observatory. Another major sight is the famous Church of St. John in the Wilderness, which dates back to 1846. Also visit the Government House in Mallital, a colonial building that dates back to 1899. The High Altitude Zoo is also worth a visit, home to such exotic animals such as Siberian tigers, Tibetan wolves, leopards and Himalayan black bears.<br />
<br />
Places to Eat<br />
Unfortunately, finding traditional Kumaoni food in Nainital is very near impossible, and you will have to stick to the regular mountain tourist fare, with most restaurants serving Mughlai and Indian-Chinese. You can enjoy everything from momos to chaat to butter chicken to fish and chips to Manchurian here. A recommended restaurant is Machan on the Mallital side of town, serving good Indian and Chinese food. Also check out the Sher-E-Punjab dhaba on Tallital side. The Tibetan Market should also be visited, where there are rows of kiosks serving fast food, everything from dosas to chaat to momos, and Sonam Chowmein Corner, an authentic Tibetan dhaba, is recommended. Café de Mall (multi-cuisine) on the Mall is also worth trying, as is Sakley's Restaurant (Thai and Chinese), as well as Embassy (multi-cuisine).<br />
<br />
Things to Do<br />
The charm of the spots and activities listed below may vary with the time you visit Nainital, in off-season or peak-season. First and foremost, go boating in Naini Lake, and you have the choice of a paddle boat, and rowboats. If you are not feeling up to this mild physical exertion, your boatman can row for you. Another must do in Nainital is riding the rope way (cable car), till Snow View. The ride itself is exciting, as it the view from atop. The trek up to Snow View, a fairly steep walk, is also enjoyable.<br />
<br />
You can also go Paragliding at nearby Naukuchiatal. Trekking is always an option, and Nainital along with its surrounding regions offers plenty of trails of varying difficulty. Walking at Land's End and Tiffin Top, enjoying the views and the forested hills, is also a great way to spend time. You could even dress up in local Kumaoni garb available up here on hire and get yourself photographed with the mighty snow-laden Himalayas in the background. A walk up to the Hanumangarh temple, south of town at an altitude of 1950 metres, is also an exciting activity.<br />
<br />
A gateway to some of the most exciting places in Uttaranchal, Nainital also has several nearby spots around it, such as Kilbury, which is 12 km away, perfect for some peace and solitude amidst green forests and the wonderful views of the Himalayas. Sattal, just 22 km from Nainital, is another excellent spot, with 7 lakes, each in a different hue of green and blue. Bhimtal, 23 km away, is a large lake with an island restaurant in the middle that's accessible by boat. Also visit Naukutchiatal, which is about 26 km away, a lake with 9 corners. Mukteshwar, is about 50 km away, is a delightful and charming little town that offers much scenic beauty as well as the former British Army Cantonment. The whole place has nothing but buildings from the British era, mostly given over to a veterinary institute. And finally, there is Ranikhet, 58 km away, which offers lovely views and lush green wooded slopes.<br />
<br />
Ranikhet<br />
<br />
Ranikhet is all about enjoying Himalayan beauty. Explore the town on foot and enjoy the swish of wind, the scent of pine, orchards thick with flower laden apricot trees, wild roses, miniature temples and a dazzling 180 degrees view of snow clad peaks. The 8th century Jhula Devi Temple is weighed down with thousands of bells; the echoes of which travel through the mountain air.<br />
<br />
Places to See<br />
An erstwhile British military base, a museum and a memorial today are the only reminders of the British regiment in Ranikhet. Today, the cantonment in Ranikhet is used by the Indian Army, known as the Kumaon Regiment. Chaubatia is a beautiful place which has fruit orchards, gardens and the Government Fruit Research Center. It is also a good picnic spot. Besides this, enjoy a stunning view of the 300 kilometer long stretch of the Himalayas with a crystal view of the Nanda Devi, Trishul, Nandaghunti and Nilkanth peaks. Bhaludam, three kilometers from here is an artificial lake, a popular picnic spot. Majkhali is another place from where you can enjoy closer view of the Himalayas. Ranikhet also houses some ancient temples, worth visiting for their aesthetic beauty, if not anything else. The Jhoola Devi Temple dedicated to Goddess Durga and the Manakameshwar Temple are both surrounded in an all pervasive beauty. There is a Gurudwara and a shawl factory nearby as well. Another tourist destination in Ranikhet is the artificial lake of Bhaludham. Places to Eat.<br />
<br />
Eating joints in Ranikhet are many, but poorly maintained. If you love dhaba food, then head straight to the numerous shack-like restaurants in the main town. Most of the hotels offer in-house dining options, so you can eat at your own hotel. The main cuisines offered at most places include Indian, Chinese and Mughlai cuisine. However, if you want to eat local pahari cuisine, just ask for it in the restaurants. It probably will not be mentioned in the menu, but they will offer you the same never-the-less. Sweet lovers are in for a treat here. Baal Mithai, made of concentrated milk, covered with little sugar beads and is a local delicacy here. You can also try singaudi which is rich in sugar and ghee. Things to Do<br />
<br />
Chaukhutia is a place which forks out four different directions; to unknown destinations. Chaukhutia is also famous for fishing. Located in the midst of nature's beauty in Upat and Kalika, is a 9-hole golf course. You can enjoy a game here and enjoy the view of the green valley. There are beautiful orchards here as well and a tour of the apple orchard, plucking them as you saunter is something that only a lucky few can do. Walking is one of the best things to do in Ranikhet. The place so beautiful and rich in natural beauty, that it will be a shame if you don't explore the place on foot. Besides these, there are several spectacular treks from Ranikhet. The treks to Kausani, Dunagiri and Sitalakhet pass through interesting terrain and offer great pleasure to bird watchers along the way. Explore the town on foot and enjoy the tug at your senses - the swish of wind rushing through pine trees, the scent of pine mingling with wood smoke and ginger chai, orchards thick with flower laden apricot trees, wild roses, miniature temples and a dazzling 180-degree view of snow clad peaks. This quaint town also offers beautiful treks to Kausani, Dunagiri and Sitalakhet. The festivals of Shivaratri and Janmashtmi are celebrated with much jubilation in Ranikhet. Impromptu fairs break out, the town suddenly looks vibrant with streamers and lights and the air is thick with revelry and the smell of popcorns! The Nanda Devi Fair is organised in September to commemorate the goddesses Nanda and Sunanda. The fair is held near the Nanda Devi Temple. Exploring Surroundings.<br />
<br />
Ranikhet offers numerous getaways ideal for day trips and ideal for short trips. Offering wonderful views of the Himalayas is this small place called Mahkhali, about 13 kilometers away from Ranikhet. Some of the peaks, like Mount Trishul (26,500 feet) appear so close that you feel you can just reach out and touch them. Chaukhutia, located 54 kilometers from Ranikhet is beautifully laced with ruins of ancient forts and remains of Katyuri Dynasty and an ancient Kali Temple and Vaishno Devi Temple. About 19 kilometers from Ranikhet lies the Binsar Mahadev Temple surrounded by thick Deodar forest. Dedicated to Ganesh, Har Gauri and Maheshmardini, it is believed that the temple was built in the 9th century by King Pithu in memory of his father Bindu. Also visit the Hairakhan Temple dedicated to Hairakhan Baba, about 4 kilometers from Ranikhet. Baba Haira khan has many followers here and stories of his miracles do rounds here. About 50 kilometers from Ranikhet lies Almora, a beautiful hill station abounding the scenic beauty, handicrafts, cuisine and wildlife. Nainital is about 59 kilometers away from Ranikhet and is a popular hill resort. The Naini Lake and nearby places of Sattal, Bhimatal, Hanuman Garhi and Land's end are located close by. Shitalakhet is a surreal place about 35 kilometers from Ranikhet full of lush orchards, herbal and medicinal plants and offering amazing views of the Himalayas. Manila is 87 kilometers from Ranikhet and is the seat of Manila Devi. A beautiful valley called Dwarahaat is located 39 kilometers away from Ranikhet. The wide Ramganga river valley with its cluster of 55 temples of Katyuni period is a must-see. Doonagiri located 47 kilometers away from Ranikhet is blessed with a beautiful landscape. There is also a temple of Goddess Durga here and the place also offers some exciting views of Himalayas. Shopping<br />
<br />
Visit the KRC Shawl and Tweed Factory and Outlet in the cantonment area to pick up tweed shawls, woolen fabrics and Kumaon shawls in all hues and patterns possible.27-0231-03</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Delhi - Nainital (330 kilometers - 8 hours)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On arrival at the Delhi airport or Delhi railway station (on your own), you will proceed on a scenic drive to the charming hill station of Nainital. On arrival, check into your hotel and spend a relaxed evening, followed by dinner and a comfortable overnight stay at the hotel.																											   
												<div class="mt10px">
												
																	
													<p>Meals : Dinner</p> 
																									</div>	
															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Nainital										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Today, you will proceed on a local tour of Nainital visiting the Naina Devi Temple and Hanuman Garhi. The rest of the day is free to enjoy a boat ride in the Naini lake (boats can be hired directly) or take the Gondola (rope way) to visit Snow View, a popular tourist spot providing the most spectacular views of the snow-capped peaks (ticket for Gondola ride on direct payment).															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast & Dinner</p> 
																									</div>	
															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Nainital - Ranikhet (80 kilometres - 3 hours)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Today, drive to the picturesque hill station of Ranikhet. Explore the temples and the wonderful sights in the afternoon. Later, check-in to your hotel and enjoy a hearty dinner and a comfortable night's sleep.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast & Dinner</p> 
																									</div>	
															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Ranikhet - Delhi (390 kilometres - 8 hours)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After a hearty breakfast, check-out of the hotel and proceed to Delhi. On arrival transfer to the Delhi railway station / airport for your onward journey. The tour concludes here.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast</p> 
																									</div>	
															
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Sightseeing</li>
																						<li>Transfers</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Specific Departure Dates</p>
								</div>
								
								Feb, 2013: 27, 28 and Mar, 2013: 1 to 31.								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Rate Card</p>
								</div>
								
    	<p class="h dif xlarge b mb5px">Travel By : Car</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Stay Combinations</td>
				<td class="headHr p5px b">Starting price per person</td>
			</tr>
			<tr>
				<td class="data p5px">Twin Sharing</td>
				<td class="data p5px">Rs. 18,999</td>
			</tr>
			<tr>
				<td class="data p5px">Single Occupancy</td>
				<td class="data p5px">Rs. 34,999</td>
			</tr>
			<tr>
				<td class="data p5px">Extra Adult</td>
				<td class="data p5px">Rs. 14,699</td>
			</tr>
			<tr>
				<td class="data p5px">Child with Bed</td>
				<td class="data p5px">Rs. 8,199</td>
			</tr>
			<tr>
				<td class="data p5px">Child without Bed</td>
				<td class="data p5px">Rs. 0</td>
			</tr>
			<tr>
				<td class="data p5px">Infant</td>
				<td class="data p5px">Rs. 0</td>
			</tr>
		</table></div><br>								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<p>Per person rates (in Rs.) - applicable on 2 persons staying together sharing the same room Service Tax extra (as applicable) Transportation as per the itinerary only (not available at disposal) The package does not include guide services. These can be availed at an additional cost Package rates are subject to change without prior notice Meal plan: EP - Accommodation only, CP - Accommodation with breakfast, MAP - Accommodation with breakfast, lunch or dinner, AP - Accommodation with breakfast, lunch and dinner The package cannot be combined with any other offer Refund on cancellation depends upon concerned hotel&#39;s cancellation policy The above package is not valid during national holidays, festivals, long weekends and New Year								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.krishnaairtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Beautiful Hills of Nainital & Ranikhet - 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="9857"/>
						</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.krishnaairtravel.in/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-hong-kong.htm" title="Packages in Hong Kong">Hong Kong</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.krishnaairtravel.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 spanlist dn"><a class="dif" href="http://www.krishnaairtravel.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.krishnaairtravel.in/packages-in-kodaikanal.htm" title="Packages in Kodaikanal">Kodaikanal</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.krishnaairtravel.in/packages-in-macau.htm" title="Packages in Macau">Macau</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.krishnaairtravel.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 spanlist dn"><a class="dif" href="http://www.krishnaairtravel.in/packages-in-male.htm" title="Packages in Male">Male</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.krishnaairtravel.in/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.krishnaairtravel.in/packages-in-mysore.htm" title="Packages in Mysore">Mysore</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.krishnaairtravel.in/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur</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.krishnaairtravel.in/packages-in-dubai.htm" title="Packages in Dubai">Dubai</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.krishnaairtravel.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.krishnaairtravel.in/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</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.krishnaairtravel.in/packages-in-gulmarg.htm" title="Packages in Gulmarg">Gulmarg</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.krishnaairtravel.in/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</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.krishnaairtravel.in/packages-in-kumarakom.htm" title="Packages in Kumarakom">Kumarakom</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.krishnaairtravel.in/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</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.krishnaairtravel.in/packages-in-pahalgam.htm" title="Packages in Pahalgam">Pahalgam</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.krishnaairtravel.in/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</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.krishnaairtravel.in/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</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.krishnaairtravel.in/packages-in-paro.htm" title="Packages in Paro">Paro</a> <b class="alpha50 bn small">(3)</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.krishnaairtravel.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(24)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(32)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.krishnaairtravel.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(2)</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:81:"Book The Beautiful Hills of Nainital & Ranikhet - 3 Nights / 4 Days Tour Packages";i:2;s:137:"book the beautiful hills of nainital & ranikhet - 3 nights / 4 days tour packages, valley tour packages, nainital, ranikhet tour packages";i:3;s:172:"Krishna Air Travel offers The Beautiful Hills of Nainital & Ranikhet - 3 Nights / 4 Days tour package, budget Valley tour packages for Nainital, Ranikhet at exciting price.";i:4;s:11364:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Nainital, Ranikhet"        
		                 },
		      "description": "2 Night Nainital, 1 Night Ranikhet

Nainital: 

Nainital, a little Himalayan hamlet forced to grow into a city, is today one of the most famous hill-stations in India. Its famous Naini Tal, a shimmering lake enveloped by green hills on three sides, gives it an alpine feel, and has the famous Mall (a delightful promenade) curving around its banks. Naini Lake is a peaceful lake with a flotilla of pedal and rowboats whipping up waves. Nainital, renowned for superb views of the Greater Himalayas and its numerous prestigious educational institutions, was completely destroyed in the Landslip of 1880, and later rebuilt. Set into two parts with the lake separating them, with Tallital on the southern side of the lake, and Mallital on the northern upper reaches. Nainital offers the best of both worlds, the throb of city life and the calm of a quiet hill resort.

Places to See
Nainital still retains its old-world charm, and also offers scenic views of the Himalayas. Amongst the things to see in Nainital, Snow View is one of the most famous, and can either be accessed by foot or by rope way. From here you can see Nanda Devi, as well as mountains on the Tibetan border. Next in the list is Land's End, which is accessed by foot from Dorothy's Seat (2,292 metres), from where you can take an enchanting walk through a forest of oak, Deodar and pine for 45 minutes to reach Land's End. From here you can enjoy views out over the lake, and walk under a canopy of oak and Deodar, enjoying the mild mountain sun filtering in through the trees. Also visit Gurney House, the house where the famous Jim Corbett once lived, accessed from the road by the northwest corner of the lake near the Jama Masjid.

The next major site is State Observatory near the Hanuman Temple, which also has several lookout points around it, ideal for viewing sunsets. However, permission is required to enter the observatory. Another major sight is the famous Church of St. John in the Wilderness, which dates back to 1846. Also visit the Government House in Mallital, a colonial building that dates back to 1899. The High Altitude Zoo is also worth a visit, home to such exotic animals such as Siberian tigers, Tibetan wolves, leopards and Himalayan black bears.

Places to Eat
Unfortunately, finding traditional Kumaoni food in Nainital is very near impossible, and you will have to stick to the regular mountain tourist fare, with most restaurants serving Mughlai and Indian-Chinese. You can enjoy everything from momos to chaat to butter chicken to fish and chips to Manchurian here. A recommended restaurant is Machan on the Mallital side of town, serving good Indian and Chinese food. Also check out the Sher-E-Punjab dhaba on Tallital side. The Tibetan Market should also be visited, where there are rows of kiosks serving fast food, everything from dosas to chaat to momos, and Sonam Chowmein Corner, an authentic Tibetan dhaba, is recommended. Café de Mall (multi-cuisine) on the Mall is also worth trying, as is Sakley's Restaurant (Thai and Chinese), as well as Embassy (multi-cuisine).

Things to Do
The charm of the spots and activities listed below may vary with the time you visit Nainital, in off-season or peak-season. First and foremost, go boating in Naini Lake, and you have the choice of a paddle boat, and rowboats. If you are not feeling up to this mild physical exertion, your boatman can row for you. Another must do in Nainital is riding the rope way (cable car), till Snow View. The ride itself is exciting, as it the view from atop. The trek up to Snow View, a fairly steep walk, is also enjoyable.

You can also go Paragliding at nearby Naukuchiatal. Trekking is always an option, and Nainital along with its surrounding regions offers plenty of trails of varying difficulty. Walking at Land's End and Tiffin Top, enjoying the views and the forested hills, is also a great way to spend time. You could even dress up in local Kumaoni garb available up here on hire and get yourself photographed with the mighty snow-laden Himalayas in the background. A walk up to the Hanumangarh temple, south of town at an altitude of 1950 metres, is also an exciting activity.

A gateway to some of the most exciting places in Uttaranchal, Nainital also has several nearby spots around it, such as Kilbury, which is 12 km away, perfect for some peace and solitude amidst green forests and the wonderful views of the Himalayas. Sattal, just 22 km from Nainital, is another excellent spot, with 7 lakes, each in a different hue of green and blue. Bhimtal, 23 km away, is a large lake with an island restaurant in the middle that's accessible by boat. Also visit Naukutchiatal, which is about 26 km away, a lake with 9 corners. Mukteshwar, is about 50 km away, is a delightful and charming little town that offers much scenic beauty as well as the former British Army Cantonment. The whole place has nothing but buildings from the British era, mostly given over to a veterinary institute. And finally, there is Ranikhet, 58 km away, which offers lovely views and lush green wooded slopes.

Ranikhet

Ranikhet is all about enjoying Himalayan beauty. Explore the town on foot and enjoy the swish of wind, the scent of pine, orchards thick with flower laden apricot trees, wild roses, miniature temples and a dazzling 180 degrees view of snow clad peaks. The 8th century Jhula Devi Temple is weighed down with thousands of bells; the echoes of which travel through the mountain air.

Places to See
An erstwhile British military base, a museum and a memorial today are the only reminders of the British regiment in Ranikhet. Today, the cantonment in Ranikhet is used by the Indian Army, known as the Kumaon Regiment. Chaubatia is a beautiful place which has fruit orchards, gardens and the Government Fruit Research Center. It is also a good picnic spot. Besides this, enjoy a stunning view of the 300 kilometer long stretch of the Himalayas with a crystal view of the Nanda Devi, Trishul, Nandaghunti and Nilkanth peaks. Bhaludam, three kilometers from here is an artificial lake, a popular picnic spot. Majkhali is another place from where you can enjoy closer view of the Himalayas. Ranikhet also houses some ancient temples, worth visiting for their aesthetic beauty, if not anything else. The Jhoola Devi Temple dedicated to Goddess Durga and the Manakameshwar Temple are both surrounded in an all pervasive beauty. There is a Gurudwara and a shawl factory nearby as well. Another tourist destination in Ranikhet is the artificial lake of Bhaludham. Places to Eat.

Eating joints in Ranikhet are many, but poorly maintained. If you love dhaba food, then head straight to the numerous shack-like restaurants in the main town. Most of the hotels offer in-house dining options, so you can eat at your own hotel. The main cuisines offered at most places include Indian, Chinese and Mughlai cuisine. However, if you want to eat local pahari cuisine, just ask for it in the restaurants. It probably will not be mentioned in the menu, but they will offer you the same never-the-less. Sweet lovers are in for a treat here. Baal Mithai, made of concentrated milk, covered with little sugar beads and is a local delicacy here. You can also try singaudi which is rich in sugar and ghee. Things to Do

Chaukhutia is a place which forks out four different directions; to unknown destinations. Chaukhutia is also famous for fishing. Located in the midst of nature's beauty in Upat and Kalika, is a 9-hole golf course. You can enjoy a game here and enjoy the view of the green valley. There are beautiful orchards here as well and a tour of the apple orchard, plucking them as you saunter is something that only a lucky few can do. Walking is one of the best things to do in Ranikhet. The place so beautiful and rich in natural beauty, that it will be a shame if you don't explore the place on foot. Besides these, there are several spectacular treks from Ranikhet. The treks to Kausani, Dunagiri and Sitalakhet pass through interesting terrain and offer great pleasure to bird watchers along the way. Explore the town on foot and enjoy the tug at your senses - the swish of wind rushing through pine trees, the scent of pine mingling with wood smoke and ginger chai, orchards thick with flower laden apricot trees, wild roses, miniature temples and a dazzling 180-degree view of snow clad peaks. This quaint town also offers beautiful treks to Kausani, Dunagiri and Sitalakhet. The festivals of Shivaratri and Janmashtmi are celebrated with much jubilation in Ranikhet. Impromptu fairs break out, the town suddenly looks vibrant with streamers and lights and the air is thick with revelry and the smell of popcorns! The Nanda Devi Fair is organised in September to commemorate the goddesses Nanda and Sunanda. The fair is held near the Nanda Devi Temple. Exploring Surroundings.

Ranikhet offers numerous getaways ideal for day trips and ideal for short trips. Offering wonderful views of the Himalayas is this small place called Mahkhali, about 13 kilometers away from Ranikhet. Some of the peaks, like Mount Trishul (26,500 feet) appear so close that you feel you can just reach out and touch them. Chaukhutia, located 54 kilometers from Ranikhet is beautifully laced with ruins of ancient forts and remains of Katyuri Dynasty and an ancient Kali Temple and Vaishno Devi Temple. About 19 kilometers from Ranikhet lies the Binsar Mahadev Temple surrounded by thick Deodar forest. Dedicated to Ganesh, Har Gauri and Maheshmardini, it is believed that the temple was built in the 9th century by King Pithu in memory of his father Bindu. Also visit the Hairakhan Temple dedicated to Hairakhan Baba, about 4 kilometers from Ranikhet. Baba Haira khan has many followers here and stories of his miracles do rounds here. About 50 kilometers from Ranikhet lies Almora, a beautiful hill station abounding the scenic beauty, handicrafts, cuisine and wildlife. Nainital is about 59 kilometers away from Ranikhet and is a popular hill resort. The Naini Lake and nearby places of Sattal, Bhimatal, Hanuman Garhi and Land's end are located close by. Shitalakhet is a surreal place about 35 kilometers from Ranikhet full of lush orchards, herbal and medicinal plants and offering amazing views of the Himalayas. Manila is 87 kilometers from Ranikhet and is the seat of Manila Devi. A beautiful valley called Dwarahaat is located 39 kilometers away from Ranikhet. The wide Ramganga river valley with its cluster of 55 temples of Katyuni period is a must-see. Doonagiri located 47 kilometers away from Ranikhet is blessed with a beautiful landscape. There is also a temple of Goddess Durga here and the place also offers some exciting views of Himalayas. Shopping

Visit the KRC Shawl and Tweed Factory and Outlet in the cantonment area to pick up tweed shawls, woolen fabrics and Kumaon shawls in all hues and patterns possible.27-0231-03",
		      "name": "The Beautiful Hills of Nainital & Ranikhet",
		      "telephone": "+91-9818070030"
		    }
		    </script>
			";i:5;N;}