a:6:{i:0;s:26027:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Day Visit Jungle Safari Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="https://www.corbettpackagetour.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="https://www.corbettpackagetour.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Day Visit Jungle Safari Tour</p>
						</div>
						</div>
						</section>
										<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_18/539279/262982.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/539279/262982.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/539279/262982.jpg"  alt="Day Visit Jungle Safari Tour" title="Day Visit Jungle Safari Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</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">Day Visit Jungle Safari Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						4 Hours
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Corbett</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 4500						</p>
						<p class="xxsmall alpha50">Per Jeep (Max 6 Person)</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.corbettpackagetour.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Day Visit Jungle Safari Tour - 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="175026"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
												<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Bijrani Tourism Zone is open from 15th October to 30th June every year. <br />
<br />
Bijrani Zone - Entry is from Amdanda gate situated very close to Ramnagar town - 30 Jeeps are permitted every morning & evening and can be booked well in advance - this was a famous shooting block during the British Raj days and has across section of Jungle roads best suited for Jungle Jeep Safaris. This area has a healthy Tiger and wildife population and thus the chances of sighting are immense. Located on the eastern end of Corbett, Bijrani contains a wide variety of flora & fauna which includes Sal forests on the upper reaches and tropical moist, deciduous mixed forest in the valley and plain areas. The availability of water from perennial sources and also from man made water holes and the location of the extremely wide grasslands provide a strong prey base for the big cats and grazing for the herbivores.<br />
<br />
Jhirna Tourism Zone is open throughout the year. <br />
<br />
Jhirna Zone - located on the southern periphery of Corbett Tiger Reserve - 30 Jeeps are permitted every morning & evening and can be booked well in advance - the area consisted of many villages and was prime farming area - but being in close proximity to Corbett the crops were destroyed by wild animals - this made it one of the high man animal conflict zone for years. The Park authorities then managed to relocate these villages with its farming population to another area and the Jhirna zone was added to the Corbett Tiger Reserve. This particular area was transformed into grassland habitat which is excellent for bird watching but this also provides rich grazing for herbivores and wild Elephants. One can see abundant cheetal, sambhar and wild boar which makes this place attractive for Tiger sightings - there is also a good chance to see sloth bear and wild elephants which provide great sightings for the wild life enthusiasts. <br />
<br />
Dhela Tourism Zone is open throughout the year <br />
<br />
This is the newest and sixth eco-tourism zone that was opened for tourists in December 2014. Dhela Ecotourism zone remains open for tourists throughout the year. <br />
This zone is extremely rich in flora and fauna. The zone spreads over 1,173 hectares, which has mixed forests of Sal, Rohini, Haldu, Bahera, Kusum vegetation, and tigers, leopards, Asiatic elephants, sloth bears and king cobras. The area is particularly rich in bird diversity. <br />
Jungle Safari <br />
The Dhela zone can be visited on a day safari, the permit for which can be reserved using the official website. The safari is done using the registered vehicles and a mandatory guide. Private vehicles are not allowed in this zone just like the other zones of CTR. <br />
<br />
Chaurs (Grass Lands) <br />
A vast Laldhang chaur is the main attraction of this zone. The grassland is often seen packed with elephants and deers. Several wild pigs and Neelgai can also be seen here. The area is also a very sought after place for visitors interested in grassland birds. <br />
Sheesam, Dhak, Sisoo, and Khair are the most visible trees found in Corbett. A lot of other varieties are found around the park which contributes to the diversity of species. The only conifer found in the park is Chir Pine, and is seen on ridge tops like Chir Choti and declines in Gajar Sot. The higher reaches near Kanda shelters Banj Oak growing, which is a typical Himalayan species. Kanju (Holoptelia Integrifolia), Jamun (Syzygium Cumini) and Aamla (Emblica Officinalis) are seen growing in major areas. Other main types of trees in Corbett Park<br />
<br />
Bel <br />
Kusum <br />
Mahua <br />
Bakli<br />
Durga Devi Tourism Zone is open from 15th November to 15th June every year. <br />
<br />
Durga Devi Zone - located on the northeastern boundary of Corbett Park - 11 Jeeps are permitted every morning & evening and can be booked well in advance - the area consists of virgin Sal Forest and the meandering Ramganga river and its riverine forest and grasslands - making it very suitable for bird watching with many rare species of Raptors and forest birds. the track leads to the confluence of the Mandal & Ramgnaga rivers that provide the opportunity to see wild elephants all round the year and the undulating terrain provides excellent chances to see Leopard as well as Tiger. The Mandal range of Corbett tiger Reserve is very rich for species like lesser grey headed fishing eagle, crested laughing thrush, maroon oriole, black chinned yuhina, slaty blue flycatcher, little forktail and bar tailed tree creeper etc.. <br />
<br />
Corbett Landscape (Sitabani) area is open from 01 October to 30 June every year.<br />
<br />
Price (Indian) INR 4500 / Jeep ( Maximum 6 Persons are allowed in ONE Jeep ) <br />
Price (Foreigner) INR 6500 / Jeep ( Maximum 6 Persons are allowed in ONE Jeep ) <br />
Zones Bijrani, Jhirna, Dhela, Durgadevi & Corbett Landscape <br />
Timings 06:30 am to 10:30 am & 01:30 pm to 5:30 pm</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">
																							4 Hours
																							
											:</b> Corbett Jungle Safari										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Maximum 6 Person are Aloud in One Jeep															
														   
											</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>AP (Room + Breakfast + Lunch + Dinner)</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>Id proof are mandatory</li><li>
50 % advance before booking</li><li>
Booking must be in advance before 45 days</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. </li><li>
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="https://www.corbettpackagetour.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Day Visit Jungle Safari 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="175026"/>
						</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="https://www.corbettpackagetour.com/corbett-tour-packages.htm" title="Corbett Tour Packages">Corbett</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/nainital-tour-packages.htm" title="Nainital Tour Packages">Nainital</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/sahibabad-tour-packages.htm" title="Sahibabad Tour Packages">Sahibabad</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/sundargarh-tour-packages.htm" title="Sundargarh Tour Packages">Sundargarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/pangot-tour-packages.htm" title="Pangot Tour Packages">Pangot</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/kumaon-tour-packages.htm" title="Kumaon Tour Packages">Kumaon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/up-east-tour-packages.htm" title="UP East Tour Packages">UP East</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/ramnagar-tour-packages.htm" title="Ramnagar Tour Packages">Ramnagar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/garhwal-tour-packages.htm" title="Garhwal Tour Packages">Garhwal</a> <b class="alpha50 bn small">(1)</b></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="https://www.corbettpackagetour.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/jeep-safari-holidays-catid.htm" title="Jeep Safari Packages">Jeep Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/camping-holidays-catid.htm" title="Camping Packages">Camping</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/wildlife-safari-holidays-catid.htm" title="Wildlife Safari Packages">Wildlife Safari</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.corbettpackagetour.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(3)</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 Corbett</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='https://www.corbettpackagetour.com/holiday-packages/birding-tour-for-corbett-and-uttarakhand.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/539279/262976.jpg"  alt="Birding Tour for Corbett and Uttarakhand" title="Birding Tour for Corbett and Uttarakhand"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.corbettpackagetour.com/holiday-packages/birding-tour-for-corbett-and-uttarakhand.htm" title="Birding Tour for Corbett and Uttarakhand"><h3>Birding Tour For Corbett And Uttarakhand</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> : 
								4 Hours
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Kumaon, Pangot, Corbett, Sundargarh, UP ..</p>
															<div class="mt10px small">
							<form name="pkg_175019" id="pkg_175019" method="post" action="https://www.corbettpackagetour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.corbettpackagetour.com/holiday-packages/birding-tour-for-corbett-and-uttarakhand.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Birding Tour for Corbett and Uttarakhand - 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="175019"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.corbettpackagetour.com/holiday-packages/one-night-stay-package-for-corbett-national-park-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/539279/262973.jpg"  alt="One Night Stay Package for Corbett National Park Tour" title="One Night Stay Package for Corbett National Park Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.corbettpackagetour.com/holiday-packages/one-night-stay-package-for-corbett-national-park-tour.htm" title="One Night Stay Package for Corbett National Park Tour"><h3>One Night Stay Package For Corbett Nationa..</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> : 
								4 Hours
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Corbett</p>
															<div class="mt10px small">
							<form name="pkg_175016" id="pkg_175016" method="post" action="https://www.corbettpackagetour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.corbettpackagetour.com/holiday-packages/one-night-stay-package-for-corbett-national-park-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="One Night Stay Package for Corbett National Park Tour - 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="175016"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.corbettpackagetour.com/holiday-packages/night-stay-packegein-forest-rest-house-and-dhikala-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/539279/262979.jpg"  alt="Night Stay Packege in Forest Rest House and Dhikala Tour" title="Night Stay Packege in Forest Rest House and Dhikala Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.corbettpackagetour.com/holiday-packages/night-stay-packegein-forest-rest-house-and-dhikala-tour.htm" title="Night Stay Packege in Forest Rest House and Dhikala Tour"><h3>Night Stay Packege In Forest Rest House An..</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 7500</b> <b class="xsmall alpha50">Per Jeep (Max 6 Person)</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Hours
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Corbett</p>
															<div class="mt10px small">
							<form name="pkg_175023" id="pkg_175023" method="post" action="https://www.corbettpackagetour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.corbettpackagetour.com/holiday-packages/night-stay-packegein-forest-rest-house-and-dhikala-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Night Stay Packege in Forest Rest House and Dhikala Tour - 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="175023"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.corbettpackagetour.com/holiday-packages/corbett-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/539279/262970.jpg"  alt="Corbett Tour" title="Corbett Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.corbettpackagetour.com/holiday-packages/corbett-tour.htm" title="Corbett Tour"><h3>Corbett Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 16500</b> <b class="xsmall alpha50">Per Jeep (Max 6 Person)</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Hours
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Corbett</p>
															<div class="mt10px small">
							<form name="pkg_175014" id="pkg_175014" method="post" action="https://www.corbettpackagetour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.corbettpackagetour.com/holiday-packages/corbett-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Corbett Tour - 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="175014"/>
							</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:56:"Book Day Visit Jungle Safari Tour - 1 Days Tour Packages";i:2;s:110:"book day visit jungle safari tour - 1 days tour packages, wildlife safari tour packages, corbett tour packages";i:3;s:151:"Book Day Visit Jungle Safari Tour - 1 Days tour packages from Corbett Package Tour - Get attractive 1 Days Wildlife Safari  tour packages for  Corbett.";i:4;s:5218:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Corbett"        
		                 },
		      "description": "Bijrani Tourism Zone is open from 15th October to 30th June every year. 

Bijrani Zone - Entry is from Amdanda gate situated very close to Ramnagar town - 30 Jeeps are permitted every morning & evening and can be booked well in advance - this was a famous shooting block during the British Raj days and has across section of Jungle roads best suited for Jungle Jeep Safaris. This area has a healthy Tiger and wildife population and thus the chances of sighting are immense. Located on the eastern end of Corbett, Bijrani contains a wide variety of flora & fauna which includes Sal forests on the upper reaches and tropical moist, deciduous mixed forest in the valley and plain areas. The availability of water from perennial sources and also from man made water holes and the location of the extremely wide grasslands provide a strong prey base for the big cats and grazing for the herbivores.

Jhirna Tourism Zone is open throughout the year. 

Jhirna Zone - located on the southern periphery of Corbett Tiger Reserve - 30 Jeeps are permitted every morning & evening and can be booked well in advance - the area consisted of many villages and was prime farming area - but being in close proximity to Corbett the crops were destroyed by wild animals - this made it one of the high man animal conflict zone for years. The Park authorities then managed to relocate these villages with its farming population to another area and the Jhirna zone was added to the Corbett Tiger Reserve. This particular area was transformed into grassland habitat which is excellent for bird watching but this also provides rich grazing for herbivores and wild Elephants. One can see abundant cheetal, sambhar and wild boar which makes this place attractive for Tiger sightings - there is also a good chance to see sloth bear and wild elephants which provide great sightings for the wild life enthusiasts. 

Dhela Tourism Zone is open throughout the year 

This is the newest and sixth eco-tourism zone that was opened for tourists in December 2014. Dhela Ecotourism zone remains open for tourists throughout the year. 
This zone is extremely rich in flora and fauna. The zone spreads over 1,173 hectares, which has mixed forests of Sal, Rohini, Haldu, Bahera, Kusum vegetation, and tigers, leopards, Asiatic elephants, sloth bears and king cobras. The area is particularly rich in bird diversity. 
Jungle Safari 
The Dhela zone can be visited on a day safari, the permit for which can be reserved using the official website. The safari is done using the registered vehicles and a mandatory guide. Private vehicles are not allowed in this zone just like the other zones of CTR. 

Chaurs (Grass Lands) 
A vast Laldhang chaur is the main attraction of this zone. The grassland is often seen packed with elephants and deers. Several wild pigs and Neelgai can also be seen here. The area is also a very sought after place for visitors interested in grassland birds. 
Sheesam, Dhak, Sisoo, and Khair are the most visible trees found in Corbett. A lot of other varieties are found around the park which contributes to the diversity of species. The only conifer found in the park is Chir Pine, and is seen on ridge tops like Chir Choti and declines in Gajar Sot. The higher reaches near Kanda shelters Banj Oak growing, which is a typical Himalayan species. Kanju (Holoptelia Integrifolia), Jamun (Syzygium Cumini) and Aamla (Emblica Officinalis) are seen growing in major areas. Other main types of trees in Corbett Park

Bel 
Kusum 
Mahua 
Bakli
Durga Devi Tourism Zone is open from 15th November to 15th June every year. 

Durga Devi Zone - located on the northeastern boundary of Corbett Park - 11 Jeeps are permitted every morning & evening and can be booked well in advance - the area consists of virgin Sal Forest and the meandering Ramganga river and its riverine forest and grasslands - making it very suitable for bird watching with many rare species of Raptors and forest birds. the track leads to the confluence of the Mandal & Ramgnaga rivers that provide the opportunity to see wild elephants all round the year and the undulating terrain provides excellent chances to see Leopard as well as Tiger. The Mandal range of Corbett tiger Reserve is very rich for species like lesser grey headed fishing eagle, crested laughing thrush, maroon oriole, black chinned yuhina, slaty blue flycatcher, little forktail and bar tailed tree creeper etc.. 

Corbett Landscape (Sitabani) area is open from 01 October to 30 June every year.

Price (Indian) INR 4500 / Jeep ( Maximum 6 Persons are allowed in ONE Jeep ) 
Price (Foreigner) INR 6500 / Jeep ( Maximum 6 Persons are allowed in ONE Jeep ) 
Zones Bijrani, Jhirna, Dhela, Durgadevi & Corbett Landscape 
Timings 06:30 am to 10:30 am & 01:30 pm to 5:30 pm",
		      "name": "Day Visit Jungle Safari Tour",
		      "telephone": "+91-8265957626"
		    }
		    </script>
			";i:5;N;}