a:7:{i:0;s:5895:"				<div class="h1"><h1>Delhi, Agra Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.indiaonlinetourpackages.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.indiaonlinetourpackages.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Delhi, Agra 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">
						1 Nights / 2 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Agra, Taj Mahal, Agra Fort, Qutab Minar, Lotus Temple</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price </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="https://www.indiaonlinetourpackages.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delhi, Agra 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="103789"/>
						</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_10/278399/173343.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/173343.jpg"  height="150"  width="150"    alt="Delhi, Agra Tour" title="Delhi, Agra Tour" loading="lazy"></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> Arrive Delhi
								</p>
								<p class="aj">Pick up from Rly Stn. / Airport & drive to Agra. On arrival check in at hotel. Proceed for sightseeing visiting the world famous Taj Mahal built by the Moghul Emperor Shahjehan in 1630 for his Queen Mumtaz Mahal to enshrine her mortal remains. Later visit the Agra Fort containing the Pearl Mosque, the Halls of Public and Private Audience. Also visit the Tomb of Itmad-ud-Daullah built by Empress Noorjehan in memory of her father. Return back to the Hotel. Overnight stay 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-Local Sightseeing- Departure
								</p>
								<p class="aj">Breakfast at hotel. Check out from to hotel vist to Qutab Minar, Himayun Tomb and Lotus Temple(Monday Closed). In time at Delhi Airport / Rly Stn for onward Journey.</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="https://www.indiaonlinetourpackages.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delhi, Agra 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="103789"/>
						</form>
						</div>
						
						";i:1;s:55:"Book Delhi, Agra Tour - 1 Nights / 2 Days Tour Packages";i:2;s:159:"book delhi, agra tour - 1 nights / 2 days tour packages, heritage tour packages, new delhi, agra, taj mahal, agra fort, qutab minar, lotus temple tour packages";i:3;s:192:"Bharat Himalayas offers Delhi, Agra Tour - 1 Nights / 2 Days tour package, budget Heritage tour packages for New Delhi, Agra, Taj Mahal, Agra Fort, Qutab Minar, Lotus Temple at exciting price.";i:4;s:438:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Agra, Taj Mahal, Agra Fort, Qutab Minar, Lotus Temple"        
		                 },
		      "description": "",
		      "name": "Delhi, Agra Tour",
		      "telephone": "+91-9758626010"
		    }
		    </script>
			";i:5;N;i:6;N;}