a:6:{i:0;s:10221:"				<div class="h1"><h1>Delhi Sightseeing Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.indiatourandvacations.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.indiatourandvacations.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Delhi Sightseeing 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">DEL2015-16</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						1 Day 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delhi Sightseeing 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="44539"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_13/376887/87919.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/87919.jpg"  width="150" height="150"    alt="Delhi Sightseeing Tour" title="Delhi Sightseeing Tour" /></a></p></div></li>
																		<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_13/376887/87920.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/87920.jpg"  width="150" height="150"    alt="Delhi Sightseeing Tour" title="Delhi Sightseeing Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Personal expenses such as table drinks telephone calls or tip etc.<br />
Any additional expenses caused by disturbance in program due to weather conditions, sickness, natural disasters, riots etc.<br />
Liability for or insurance against injury, loss of life, accidents or loss of goods.<br />
Lunch (Can be organized)<br />
Camera Charges, If Any01-0931-03<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> Old & New Delhi Sightseeing Tour
								</p>
								<p class="aj">After breakfast at the hotel, depart for a guided tour of  Old & New Delhi.<br />
<br />
VISIT RED FORT<br />
“The Red Fort and the city of Shahjahanabad was constructed by the Emperor Shah Jahan in 1639 A.D.  The layout of the Red Fort was organised to retain and integrate this site with the Salimgarh Fort.The fortress palace is an important focal point of the medieval city of Shahjahanabad. The planning and aesthetics of the Red Fort represent the zenith of Mughal creativity which prevailed during the reign of Emperor Shahjahan. This Fort has had many developments added on after its construction by Emperor.<br />
<br />
VISIT JAMA MASJID.<br />
“Jama Masjid is the principal mosque of Old Delhi in India. Commissioned by the Mughal Emperor Shah Jahan, builder of the Taj Mahal, and completed in the year 1656 AD, it is one of the Largest and best- known mosques in India”. Shahjahan. The significant phases of development were under Aurangzeb and later Mughal rulers”<br />
<br />
DRIVE PAST RAJ GHAT ( THE MAHATMA GANDHI MEMORIAL )<br />
“Raj Ghat (meaning Royal Steps) is a beautiful, peaceful memorial to Mahatma Gandhi. This simple and somber black granite platform marks the site where, on January 31, 1948, Gandhi's last rites/cremation were performed. An eternal flame burns perpetually in the middle (end) of the square stone. The memorial was designed to reflect Gandhi's simple life. The inscription in the stone, "He Ram" ("Oh God"), is believed to be Gandhi's last words”.<br />
<br />
Lunch At The Place Of Choice<br />
<br />
VISIT INDIA GATE AND DRIVE PAST RASHTRAPATI BHAWAN. <br />
“India Gate is one of the largest war memorials in India. Situated in the heart of New Delhi. India Gate is prominent landmark in Delhi & Commemorates the members of the erstwhile British Indian Army who lost their lives fighting for the Indian Empire in World War I & the Afghan Wars. Following India’s independence India Gate became site of the Indian Army’s Tomb of the Unknown Soldier, known as the Amar Jawan  Jyoti” <br />
<br />
VISIT HIMAYUN’S TOMB<br />
"Humayun's tomb in the capital Delhi is a fine specimen of the great Mughal architecture. Built in 1570, the tomb is of particular cultural significance as it was the first garden-tomb on the Indian subcontinent. Its unique beauty is said to have inspired several major architectural innovations, culminating in the construction of the unparalleled Taj Mahal. In many ways, this magnificent red and white sandstone building is as spectacular as the famous 'monument to love' in Agra. This historic monument was erected by Humayun's queen Hamida Banu Begam (Haji Begam) at a cost of about 1.5 million. It is believed that she designed the Tomb"<br />
<br />
VISIT LOTUS TEMPLE<br />
"The Lotus Temple is the Bahai temple in Delhi, India. It is called the Lotus temple because of its lotus-like shape. It is one of the most popular tourist attractions of Delhi. It has a beautiful garden outside where tourists can relax. It was inaugurated in 1986. It is the main Bahai temple of the indian subcontinent. It is one of the most heavily visited sites in the whole world with 4 million visitors every year. It welcomes visitors irrespective of which religion they belong to. It is one of the most photographed buildings in the world <br />
<br />
VISIT QUTAB MINAR<br />
 "Qutab Minar is the world’s tallest brick minaret in Delhi, India. Construction  commenced in 1193 under order of India’s first muslim ruler Qutb-ud-dinAibak & the topmost storey of the minaret was completed in 1386 by FirozShah Tugluq. The Qutab Minar is notable for being one of the earliest & Most prominent examples of Indo Islamic architecture". <br />
<br />
Back to Hotel<br />
<br />
TOUR ENDS</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>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Personal expenses such as table drinks telephone calls or tip etc.</li><li>
Any additional expenses caused by disturbance in program due to weather conditions, sickness, natural disasters, riots etc.</li><li>
Liability for or insurance against injury, loss of life, accidents or loss of goods.</li><li>
Lunch (Can be organized)</li><li>
Camera Charges, If Any</li></ul><br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Delhi<br /><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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delhi Sightseeing 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="44539"/>
						</form>
						</div>
						
						";i:1;s:50:"Book Delhi Sightseeing Tour - 1 Days Tour Packages";i:2;s:99:"book delhi sightseeing tour - 1 days tour packages, heritage tour packages, new delhi tour packages";i:3;s:144:"Book Delhi Sightseeing Tour - 1 Days tour packages from India Tour and Vacations - Get attractive 1 Days Heritage  tour packages for  New Delhi.";i:4;s:740:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi"        
		                 },
		      "description": "Personal expenses such as table drinks telephone calls or tip etc.
Any additional expenses caused by disturbance in program due to weather conditions, sickness, natural disasters, riots etc.
Liability for or insurance against injury, loss of life, accidents or loss of goods.
Lunch (Can be organized)
Camera Charges, If Any01-0931-03",
		      "name": "Delhi Sightseeing Tour",
		      "telephone": "+91-9818529130"
		    }
		    </script>
			";i:5;N;}