a:6:{i:0;s:16653:"				<div class="h1"><h1>North India Travel Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.journeyasia.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.journeyasia.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>North India Travel Package</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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Jodhpur, Udaipur, Agra</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North India Travel Package - 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="107034"/>
						</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_1/7828/177376.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/177376.jpg"  width="150" height="150"    alt="North India Travel Package" title="North India Travel Package" /></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">Humayun's Tomb, Delhi Travel Package On arrival, you will be met by our representative and transferred to your hotel for the overnight.</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">In the morning after breakfast city tour of this imperial British capital of the 20th century introduces you to the Qutub Minar - the tallest free standing minaret in stone in the world; then onto Humayun the first Mughal construction in India from 1565 AD. Also see the Rashtrapati Bhawan, the India Gate built in the earlier half of the 20th century. Drive through the old city past the Red Fort and visit the Jama Masjid the biggest of its kind in India. Here take a rickshaw through the winding streets of the <br />
old city to see the life of the people in this part of the world. A perfect introduction of your tour. The rickshaw puller pulls you through the imperial avenue the Chandni Chowk where you will find each and every small business under the sky. Finally, reach Rajghat, the memorial of Mahatma Gandhi, where your chauffeur is waiting for you to take you to your next stop the Birla Mandir, a Hindu temple in activity. </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 - Agra
								</p>
								<p class="aj">Taj Mahal is awaiting your arrival today morning. A must see with the rising sun as the Taj Mahal is bathed in the golden rays of the morning sun. Built by Shah Jahan, the Taj is a white marble memorial that houses the tomb of his beautiful wife Mumtaz Mahal. This monument took 22 years to be completed and was designed, and planned by Persian architect Ustad Isa. Apart from its stunning <br />
design, balance and perfect symmetry, the Taj is also noted particularly for its elegant domes, intricately carved screens and some of the best inlay work ever seen anywhere in the world. <br />
<br />
You will be driven to the Taj mahal on board a horse carriage from your hotel like the erstwhile imperials in India. Then see the Agra Fort built by Akbar where Shahjahan was imprisoned by his own son Aurangzeb.In the evening witness a light and sound show on the replica of the Taj mahal <br />
and relive the 400 years old legacy. </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> Agra - Jaipur
								</p>
								<p class="aj">After breakfast visit the Red Fort that lies on the bend of the river Yamuna, almost in the heart of the town. Akbar built it as his citadel over the years 1563-73 in the finest architectural style. It has imposing gates and walls of red sandstone and a moat. <br />
Drive to Jaipur enroute visit Fatehpur Sikri. This impressive sandstone fortress of Fatehpur Sikri was built in the 16th century and only occupied for a few years before being abandoned. The deserted, red sandstone city, that Emperor Akbar built as his capital and palace in the late 16th century is an exhilarating experience. It a veritable <br />
fairytale city and its "ruins" are in pristine condition... it's not hard to imagine what the court life must have been like in the days of its grandeur. Also visit the Bulund Darwaza, the largest gateway in the world. <br />
Continue drive to Jaipur and reach by late evening.</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> Drive to Jaipur
								</p>
								<p class="aj">Drive to Jaipur enroute visit Fatehpur Sikri. This impressive sandstone fortress of Fatehpur Sikri was built in the 16th century and only occupied for a few years before being abandoned. The deserted, red sandstone city, that Emperor Akbar built as his capital and palace in the late 16th century is an exhilarating experience. It a veritable <br />
fairytale city and its "ruins" are in pristine condition... it's not hard to imagine what the court life must have been like in the days of its grandeur. Also visit the Bulund Darwaza, the largest gateway in the world. <br />
Continue drive to Jaipur and reach by late evening.</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> Jaipur
								</p>
								<p class="aj">AMBER FORT PALACE - Amber is the classic romantic Rajasthani fort palace. Its construction was started by Man Singh I in 1592, and completed by his descendent Jai Singh I. Its forbidding exterior belies an inner paradise where a beautiful fusion of Mughal and Hindu styles finds its ultimate expression. At the foot of the hill you will mount elegantly decorated elephant for the slow and steady climb up to the palace, making your entrance in the time honoured fashion. The Fort, completed in the early 18th century, took over 100 years to build and <br />
now, although deserted, offers a fascinating insight into the lifestyle of the ruling families. <br />
<br />
CITY PALACE - A delightful blend of Mughal and traditional Rajasthani architecture, the City Palace sprawls over one-seventh of the area in the walled city. It houses the Chandra Mahal, Shri Govind Dev Temple and the City Palace Museum. <br />
<br />
JANTAR MANTAR - This is the largest and the best preserved of the five observatories built by Jai Singh II in different parts of the country. This observatory consisting of outsized astronomical instruments is still in use.<br />
<br />
HAWA MAHAL - The ornamental facade of this "Palace of Winds - is a prominent landmark in Jaipur. It is a five-storey structure of sandstone plastered pink encrusted with fine trelliswork and elaborate balconies. The <br />
palace has 953 niches and windows. Built in 1799 by Pratap Singh, the Mahal was a royal grandstand for the palace women. <br />
<br />
Jaipur is renowned for textile block printing, blue pottery, carpet weaving, semi-precious stones and local crafts which still thrive from the day of Maharaja Jai Singh's patronage when he designed special areas in the city for the 'bandhanas', the 'cheepas' and the 'meenakari' workers. </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> Jaipur - Jodhpur 
								</p>
								<p class="aj">In the morning after your breakfast leave for Jodhpur visiting the pious cities of Pushkar and Ajmer enroute.<br />
Pushkar happens to be the holiest places according to the Hindus as it is considered that Lord Brahma (the Creator) and his wife Saraswati (the goddess of learning and music) performed a ritual in the lake. Here we visit the only Brahma temple of the world before intermingling with the local colours in the local bazaar. Pushkar is the world famous for its cattle fair held each year in the month of October/November. Proceed towards Ajmer. <br />
<br />
Ajmer is the pious city for the Muslims. Surprisingly both the cities are at distance of 11km from each other. Visit the Durgah built in fond remembrance of Khwaja Muin ud Din Chisti where the Muslim pilgrims from all over India throng during the festival times. Later visit Mughal emperor Akbar's Palace where his son Jehangir received Sir Thomas Roe to grant him the permission of trade to East India Company with India, that changed the history of India completely <br />
and slowly and steadily India became colony of the British Empire. Continue towards Jodhpur the suncity and reach by late afternoon and check into 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> Jodhpur
								</p>
								<p class="aj">After breakfast drive up to the majestic Mehrangarh fort, the stronghold of the Rathore princes from 1453AD. We see the superb collection of paintings and arms and ammunitions. The view of the city from the rampart walls is breath <br />
taking. Post lunch session introduces you to the fabulous spice market of Jodhpur the 2nd largest city in Rajasthan. Walk along the market to feel the odours of the spices filling the air around you. Then go to Mandore gardens the then capital of Marwar to view some of the fabulous cenotaphs and the hall of local heroes of the wars. Drive back to Jodhpur and see the Umaid Bhawan Palace, the present residence of the king of Jodhpur. Retire to your hotel and relax. </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> Jodhpur - Udaipur 
								</p>
								<p class="aj">Leave Jodhpur and reach Ranakpur a very big pilgrimage centre for the Jains.Just four hours drive from Udaipur is the eternal Jain pilgrimage centre of Ranakpur. Admire the workmanship from the 16th century. The temples are built out of marble and the main shrine of Adinath with 1444 columns is awe inspiring and none of these are similar. Also see the sun temple and the other temples in the campus. Proceed towards Udaipur and on the way stop by the fields to see the local way of farming and irrigation. Walk into the villages to mingle with the locals around to know more about their lifestyle.<br />
<br />
Reach Udaipur by late afternoon. Enjoy a boat cruise on Lake Pichola by sunset visiting the Jagmandir Island - in the middle of the romantic Lake Pichola. It commands a magnificent view of the City Palace, Lake Palace and Sajjangarh <br />
Fort, on its own island, and it is where Prince Khurram was given refuge in the 17th century. Check into your 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> Udaipur - Delhi 
								</p>
								<p class="aj">In the morning sightseeing tour of City Palace that is simply enormous - an assemblance of not one but four separate palaces covering some four acres of area and exceeding all other palaces for colossal grandeur. Here you will marvel at rooms with mirrored walls and ivory doors, colored glass windows and inlaid marble balconies; and the Peacock Courtyard.<br />
In time transfer from hotel to the airport for fight Udaipur/Delhi. Upon arrival the guest will be met and transferred to a local restaurant for a farewell dinner. Transfer to the airport for flight back home.</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North India Travel Package - 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="107034"/>
						</form>
						</div>
						
						";i:1;s:69:"Book North India Travel Package - 9 Nights / 10 Days Tour Packages";i:2;s:150:"book north india travel package - 9 nights / 10 days tour packages, heritage tour packages, new delhi, jaipur, jodhpur, udaipur, agra tour packages";i:3;s:195:"Book North India Travel Package - 9 Nights / 10 Days tour packages from Journey Asia - Get attractive 9 Nights / 10 Days Heritage  tour packages for  New Delhi, Jaipur, Jodhpur, Udaipur, Agra.";i:4;s:442:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Jodhpur, Udaipur, Agra"        
		                 },
		      "description": "",
		      "name": "North India Travel Package",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}