a:6:{i:0;s:12872:"				<div class="h1"><h1>Golden Triangle with Khajuraho 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>Golden Triangle with Khajuraho 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-26</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Agra, Khajuraho</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="Golden Triangle with Khajuraho 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="116125"/>
						</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/189132.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/189132.jpg"  width="150" height="150"    alt="Golden Triangle with Khajuraho Tour" title="Golden Triangle with Khajuraho 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 – Khajuraho by Train
								</p>
								<p class="aj">After breakfast board your train to Khajuraho. Arrival at railway station later check in at hotel. Later proceed to khajurao, arrival and check in at 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 7:</b> Khajurao – Panna Day Trip
								</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. Overnight at Train.</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> Khajuraho Departure
								</p>
								<p class="aj">After breakfast and check out proceed for your onwards destination.</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">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="Golden Triangle with Khajuraho 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="116125"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Golden Triangle with Khajuraho Tour - 7 Nights / 8 Days Tour Packages";i:2;s:148:"book golden triangle with khajuraho tour - 7 nights / 8 days tour packages, heritage tour packages, new delhi, jaipur, agra, khajuraho tour packages";i:3;s:203:"Book Golden Triangle with Khajuraho Tour - 7 Nights / 8 Days tour packages from Gets Holiday India Tour - Get attractive 7 Nights / 8 Days Heritage  tour packages for  New Delhi, Jaipur, Agra, Khajuraho.";i:4;s:1012:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Agra, Khajuraho"        
		                 },
		      "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": "Golden Triangle with Khajuraho Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}