a:6:{i:0;s:17925:"				<div class="h1"><h1>North India Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.getsholidayindiatour.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.getsholidayindiatour.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>North India 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">Tour Code </td>
						<td class="p5px pl0px vat">GHIT-38</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						11 Nights / 12 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Agra, Varanasi, Gwalior, Khajuraho, Orchha</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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North India 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="116287"/>
						</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_17/507555/189334.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/189334.jpg"  width="150" height="150"    alt="North India Tour" title="North India Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Assistance on Arrival.<br />
A 24 - hour helpline.<br />
Welcome Drink On Arrival at Hotel<br />
Daily Breakfast <br />
Hotel Accommodation on twin / double sharing basis.<br />
Travel throughout the entire journey in an air condition car.Air fare / train fare.<br />
Guide & Monuments Entrance fees during sightseeing<br />
Camera Charges / Jeep Safari / Camel Safari / Elephant Ride Charges.<br />
Expenses of personal nature such as tips, telephone calls, laundry, liquor, Insurance etc. <br />
Any other item not specified in the Package Inclusions.<br />
Supplement will be applicable for Single occupancy.<br />
GST Extra<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Delhi Arrival
								</p>
								<p class="aj">On arrival at Airport / Railway station, meet our representative and proceed to Hotel for Check in. Delhi is a city built and re-built seven times over several centuries. The capital city today marries the quaint and unique elements of different historical eras with the pace of the bustling, growing economy. At every turn of the road, the past and the present coexist. Later proceed for city Tour of NEW DELHI - drive past the stately government buildings of the British Era designed by Lutyen’s, including the Presidential Palace. Overnight at Hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Delhi
								</p>
								<p class="aj">After Breakfast proceed for full day side sightseeing like the Red Fort, Chandni Chowk Bazaar and Khari Baoli spice market on your way to visit Jama Masjid. One of the largest mosques in the world and the largest in India, it was built by Shah Jahan to dominate the city. Then, make your way to Raj Ghat, a memorial built to commemorate the site of Mahatma Gandhi’s cremation. Also visit the UNESCO World Heritage-listed Qutub Minar, India’s tallest minaret, made of red sandstone and marble and inscribed with verses from the Qur’an. Next stop Lotus Temple completed in 1986. Notable for its flowerlike shape, it serves as the Mother Temple of the Indian subcontinent and has become a prominent attraction in the city also visit Iskon Temple a famous Krishana Temple. Stop next at Humayun’s Tomb, another UNESCO World Heritage site and tomb of a Mughal emperor dating back to the 1500s. Next, pass under the high stone archway of India Gate – constructed in the memory of Indian soldiers who died in World War I – and drive along Rajpath (King's Way), the ceremonial boulevard heading toward Rashtrapati Bhavan, official home to the President of India. Also visit Birla Temple a Lord Vishnu Temple.Along the way, your guide will point out architectural and cultural features of these important monuments. Overnight at hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Delhi – Jaipur (260 Kms / 05 hrs)
								</p>
								<p class="aj">After breakfast drive to Jaipur. Arrive & Check into the hotel. Jaipur: Beautiful palaces, forts and colourful bazaars speak of the pink city’s glorious regal past. Modernity walks hand-in-hand with history in Jaipur. This largest city of Rajasthan, founded by Maharaja Sawai Jai Singh, is famous for its magnanimous hospitality. Evening explore colorful local market. Overnight at Hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Jaipur
								</p>
								<p class="aj">After Breakfast, Visit Amber - the ancient capital of the Rajput Empire reaching the fort on elephant back. It is a deserted palace surrounded by majestic ramparts & the magnificent public & private room's evidence the splendor of the rulers of 16th & 17th century Rajasthan. Also visit City Place, Janter Mantar and Hawa Mahal in evening leisure. Overnight at Hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Jaipur - Agra (200 Kms / 04 hrs)
								</p>
								<p class="aj">After breakfast drive to Agra en-route visit Fatehpur Sikri. Later continue drive to Agra. Arrive and check in at Hotel. Akbarabad, as Agra was known during the Mughal era, is home to some of the most magnificent Mughal architectures. Situated on the banks of river Yamuna, the monumental beauty of Agra has inspired countless people around the world. This third largest city of the state of Uttar Pradesh is home to three UNESCO world heritage sites. Later Proceed to Visit to the world - famous Taj Mahal - or literally "Crown of Palaces" was built by Shah Jehan to immortalize the memory of his beloved wife Mumtaz Mahal who died tragically in 1631. After that visit, the Red Fort built by three generations of Mughal Emperors between 1565 and 1573. It housed both the presidential Palaces of the Royal family, and the military quarters. Overnight at Hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Agra – Gwalior (120 Kms / 02 hrs)
								</p>
								<p class="aj">After breakfast drive to Gwalior on arrival transfer to hotel & check in. Later visit Gwalior fort- Gwalior Fort is one of the main attractions of the Gwalior city Located on the hill right in the middle of the city. Inside the majestic fort walls there are many monuments but maintaining those are restricted to only a few of them simply magical at sunset. It is breathtaking majesty and poetry. Scindia Museum- Located in the city, the palace-cum-museum sees visitors who are eager to get a glimpse into the lifestyles of royalty. Built in 1874, it reflects the architectural style of the Palace of Versailles, France. The stunning Durbar hall is resplendent with its painted gold leaves and enormous mirrors. Sas-Bahu ka Mandir- Is another structure dedicated to Lord Vishnu also known as Shashtra Bahu. These twin temples are situated adjacent to each other and the larger one is covered with intricate carvings and sculptures. The twin temples were built by Raja Mahipal and were completed in 1093 A.D. Overnight at hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Gwalior – Orchha (130 kms / 02 hrs)
								</p>
								<p class="aj">After breakfast drive to Orchha. Here interesting notable thing is that Jhansi lies in Uttar Pradesh whereas Orchha lies in Madhya Pradesh state. On reaching Orchha, relax for some time in your hotel and later proceed for Orchha sightseeing in which we will visit Jahangir Fort, Rai Praveen Ka Mahal, riverside cenotaphs, Ram Raja Temple etc. Here fort located on island of Betwa river. All these monuments are of Bundela dynasty. Overnight at hotel</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 8:</b> Orchha – Khajurao (180 kms / 03 hrs)
								</p>
								<p class="aj">After breakfast proceed to khajurao arrival and check in hotel. Khajuraho is a heritage destination renowned for its temples having sculptures carved in erotic poses and is visited by guests from world over. Visit Western Group of Temples in the late afternoon (Audio Tour facility is developed by Archelogical Survey of India (ASI) for these temples). Enjoy Light and Sound Show in the Evening. Overnight at hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 9:</b> Khajurao – Panna day Excurtion
								</p>
								<p class="aj">After breakfast, visit Eastern and Southern group of Temples. After visit full day Excursion to Panna Panna is home to Gharial Sanctuary, Raneh Waterfalls and Diamond Mines. Overnight at Hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 10:</b> Khajurao – Varanasi (by Overnight Train) (415 kms / 8hrs)
								</p>
								<p class="aj">After Breakfast, visit Eastern and Southern group of Temples. Day Excursion to Panna (46 kms). Panna is home to Gharial Sanctuary, Raneh Waterfalls and Diamond Mines. Evening board your Overnight trains to Varanasi. Overnight at Train.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Varanasi
									</p>
									<p class="aj">Arrive at Varanasi station. Meet and transfer to hotel for check in. Dating back to more than 3000 years, Varanasi is said to be the oldest city of the world. There are temples at every few steps here Hinduism it is believed that those who breathe their last in this city attain nirvana and get an instant gateway to liberation from the cycle of births and re-births. After Lunch proceed for tour planned for second half of the day We begin the tour of the city with the famous Banaras Hindu University. Next we visit the famous 18th century Durga temple dedicated to Goddess Durga & later visit one of the most famous temples of Varanasi, the Tulsi Manas temple. We en our tour with a one-of-its-kind temple the ‘Bharat Mata’ (Mother India). The temple was inaugurated by Mahatma Gandhi in 1936. The temple has the undivided India personified as a mother deity and has her statue built in marble. Unlike other temples, this one does not have images of the customary gods and goddesses; it houses a relief map of India, carved out of marble. Evening Aarti ceremony - Every evening, hundreds of people gather at the banks of the river Ganges to participate in the aarti (hymn). The evening aarti offers one of the most spectacular sensory experiences, when hundreds of lamps light up the river side at dusk, the entire city of Varanasi comes to a standstill and the sound of chimes and dongs reverberates in each and every street. Overnight at Hotel.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 12:</b> Varanasi Departure
									</p>
									<p class="aj">Early morning proceed to morning Cruise on Ganges. The ‘Ghats of Ganga’ dotted with temples or more than 100 ghats (banks) alongside the Ganges in Varanasi. The best way to cover them all is acruise. A morning cruise on the Ganges presents a very beautiful view of the ghats bathed in crimson light. After the cruise we set out to explore the city. A walk through old Varanasi will be a memorable experience. After Breakfast at hotel check out and proceed for your onward destination.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<br />
												 <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">Exclusions :</p> <ul><li>Air fare / train fare.</li><li>
Guide & Monuments Entrance fees during sightseeing</li><li>
Camera Charges / Jeep Safari / Camel Safari / Elephant Ride Charges.</li><li>
Expenses of personal nature such as tips, telephone calls, laundry, liquor, Insurance etc. </li><li>
Any other item not specified in the Package Inclusions.</li><li>
Supplement will be applicable for Single occupancy.</li><li>
GST Extra</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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North India 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="116287"/>
						</form>
						</div>
						
						";i:1;s:57:"Book North India Tour - 11 Nights / 12 Days Tour Packages";i:2;s:158:"book north india tour - 11 nights / 12 days tour packages, heritage tour packages, new delhi, jaipur, agra, varanasi, gwalior, khajuraho, orchha tour packages";i:3;s:198:"Gets Holiday India Tour offers North India Tour - 11 Nights / 12 Days tour package, budget Heritage tour packages for New Delhi, Jaipur, Agra, Varanasi, Gwalior, Khajuraho, Orchha at exciting price.";i:4;s:1021:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Agra, Varanasi, Gwalior, Khajuraho, Orchha"        
		                 },
		      "description": "Assistance on Arrival.
A 24 - hour helpline.
Welcome Drink On Arrival at Hotel
Daily Breakfast 
Hotel Accommodation on twin / double sharing basis.
Travel throughout the entire journey in an air condition car.Air fare / train fare.
Guide & Monuments Entrance fees during sightseeing
Camera Charges / Jeep Safari / Camel Safari / Elephant Ride Charges.
Expenses of personal nature such as tips, telephone calls, laundry, liquor, Insurance etc. 
Any other item not specified in the Package Inclusions.
Supplement will be applicable for Single occupancy.
GST Extra",
		      "name": "North India Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}