a:6:{i:0;s:10112:"				<div class="h1"><h1>Scenic Madhya Pradesh Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.northerntourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.northerntourandtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Scenic Madhya Pradesh Tour</p>
				<br />
				
								
						<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">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Jabalpur, Pachmarhi, Amarkantak</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Scenic Madhya Pradesh 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="51659"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_12/334611/101821.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/334611/101821.jpg"  width="150" height="150"    alt="Scenic Madhya Pradesh Tour" title="Scenic Madhya Pradesh Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</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> Arrival
								</p>
								<p class="aj">Our tour begins from arrival in Pachmarhi. For reaching Pachmarhi, Pipariya railway station in the nearest one and is connected with direct trains from New Delhi, Bhopal, Mumbai, Kolkata, Varanasi, Agra, Pune, Ahmedabad etc. Those who are coming by flight can reach Bhopal or Jabalpur airports. On reaching Pachmarhi, relax at hotel and then visit local market or nearby tourist spots like Jata Shankar, Pandav Caves etc.<br />
Overnight at hotel in Pachmarhi.</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> Pachmarhi
								</p>
								<p class="aj">Do full day Pachmarhi sightseeing in which you can visit Reechgarh, Handi Khoh, Dhoopgarh, Bade Mahadev, Gupt Mahadev etc. Their are some places in Pachmarhi where taxi cars are not allowed like Apsara fall, Bee Fall, Dhoopgarh etc. so gypsy is the best option to do sightseeing.<br />
Overnight at hotel in Pachmarhi.</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> Jabalpur city
								</p>
								<p class="aj">In this day, after breakfast, we will drive towards our next destination "Jabalpur city". Famous tourist spot Bhedaghat is just 15kms before Jabalpur city so we will visit this place and take lunch their. In Bhedaghat you can do boating, rope way ride, photography and some marble articles shopping. Later proceed to Hotel in Jabalpur.<br />
Overnight at hotel in Jabalpur.</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> Amarkantak
								</p>
								<p class="aj">After breakfast, drive to holy destination Amarkantak (245kms/05:00hrs). It is a hill station cum holy place for tourists. Geographically it is located on meeting point of Satpura & Vindhyachal hills. Its forest encompasses some rare plant species having high medicinal qualities. Holy river Narmada, also lifeline of Central India, has its origin here. Here we will visit ancient temples, river origin point and enjoy natural scenic beauty of surrounding hills & forests. It is not a big city so accommodation facilities are limited with some budget & standard category hotels and ashrams.<br />
Overnight at hotel in Amarkantak.</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> Bandhavgarh
								</p>
								<p class="aj">Enjoy sunrise at Amarkantak and after taking breakfast, drive for wildlife expedition to tiger land Bandhavgarh (270kms/05:30hrs). Bandhavgarh is popular national park for tiger sighting due to high density of this magnificent wild beast. Tiger reserve in located on north of Amarkantak. We will try to reach Bandhavgarh till noon so that we can attend evening safari drive. After having lunch, go for jungle safari.<br />
Overnight at resort in Bandhavgarh.</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> Bandhavgarh national park
								</p>
								<p class="aj">Attend morning & evening tiger safari drives. Bandhavgarh national park is spread over Vindhyan hills having hilly terrains with few meadows. Presence of fort at hill-top inside forest area shows that human beings lives here during rule of Baghela dynasty. Later with shifting of capital from Bandhavgarh to Rewa, this place was abandoned and wild nature takeover the area. Still you can find active Hindu temple, adjoining to Bandhavgarh fort. This forest is good for tiger photography as their population is healthy in Bandhavgarh their movements are well known to safari guides.<br />
Overnight at resort in Bandhavgarh.</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> Departure
								</p>
								<p class="aj">This will be our last day in Bandhavgarh and also of tour. As per our departure timing, you can attend one morning safari and later drive to nearby railway stations like Umaria (37kms), Katni (100kms) or Jabalpur (190kms). If you wish to take flight then reach Jabalpur airport (200kms) or Khajuraho airport (250kms).</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* 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. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Scenic Madhya Pradesh 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="51659"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Scenic Madhya Pradesh Tour - 6 Nights / 7 Days Tour Packages";i:2;s:140:"book scenic madhya pradesh tour - 6 nights / 7 days tour packages, hill station tour packages, jabalpur, pachmarhi, amarkantak tour packages";i:3;s:186:"A.G Northern Tour and Travels offers Scenic Madhya Pradesh Tour - 6 Nights / 7 Days tour package, budget Hill Station tour packages for Jabalpur, Pachmarhi, Amarkantak at exciting price.";i:4;s:429:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jabalpur, Pachmarhi, Amarkantak"        
		                 },
		      "description": "",
		      "name": "Scenic Madhya Pradesh Tour",
		      "telephone": "+91-9086002323"
		    }
		    </script>
			";i:5;N;}