a:6:{i:0;s:28100:"				<div class="h1"><h1>Indian Culture for First Time Visitor Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travedatour.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travedatour.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Indian Culture for First Time Visitor 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">
						19 Nights / 20 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Jodhpur, Udaipur, Agra, Varanasi, Khajuraho, Aurangabad, Mumbai</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.travedatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Indian Culture for First Time Visitor 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="117143"/>
						</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/506429/190397.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/506429/190397.jpg"  width="150" height="150"    alt="Indian Culture for First Time Visitor Tour" title="Indian Culture for First Time Visitor Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Overview<br />
“Unity among diversity” can be taken as a tag line for India’s culture. Every Indian State comes with its own beauty, customs and traditions. While you can enjoy the bliss of pleasant nature at the snow fed mountains of the Himalayas, the camel ride on the deserts of Rajasthan overwhelms you. While the Hindu temples depict the start of a new religious era, the Mughal era depicts the Golden Age of Indian architecture. From the Sanchi Stupa to the Taj Mahal, you have lot to know and enjoy here. Keeping pace with its varied nature and architecture, the cuisine also varies. Explore with us the royal kingdom of Rajasthan to the oldest city of Varanasi. Our experienced representatives ensure a safe and wonderful journey for you.<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> Arrival at Delhi
								</p>
								<p class="aj">Our representatives will be at the Delhi international airport to welcome you. From there you are escorted to the hotel, where you can relax for the day. Delhi, the capital city of India is as colourful as the other parts of the country and can aptly be called the crown of the country. Hence, it is a great start of the journey when you start with Delhi. There is an overnight stay at Delhi.</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 a traditional breakfast, we start our tour of Delhi. We start with a visit to the Old Delhi. It consists of the memorial of the Father of the Nation, Mahatma Gandhi, known by the name of Rajghat. We tour the largest mosque of Asia, the Jama Masjid via the traditional cycle rickshaw. The next visit is to the great Mughal architecture of red sandstone, the Red Fort.<br />
<br />
After a walk on the old streets of Delhi, we ride to New Delhi. Here you get to see the unique, 73m high iron pillar, the Qutub Minar. Your tour is next to the ministerial house of India, the Parliament House and the Rashtrapati Bhawan. You also get to see the India Gate, which commemorates the sacrifice of Indian soldiers in the First World War. <br />
<br />
We also plan to show you the beautiful, marble structure of Lotus temple, the religious structure of the Bahai religion. It is an amazing piece of architecture shaped in the form of a lotus.</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
								</p>
								<p class="aj">Today you visit the Akshardham temple, which depicts the Indian spirit and culture of 10,000 years.There are three main halls within the temple which bears various legends of yogis and saints. The tales are often associated with a musical fountain play. Your next visit is to the bustling Delhi market. It is a vibrant market with unique designer apparels, handicrafts, artefacts and many items to be bought as souvenirs. At evening you enjoy the DANCES OF INDIA SHOW with a traditional WELCOME DINNER. There is an overnight stay at Delhi.</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> Delhi – Varanasi
								</p>
								<p class="aj">After the breakfast at hotel, we proceed to the airport for a flight to Varanasi. You get the feel of Hindu culture and tradition at Varanasi. It is considered as the oldest living city of the country. The city derives its name from the two rivers of Varuna and Assi. It is one of the famous pilgrimage sites in India and is believed to be created by Lord Shiva and Goddess Parvati. <br />
<br />
Enjoy the dawn at the Ghats of the sacred River Ganges with the air filled with the sweet smell of incense and the sound of the temple bells. It is also a city of ancient Indian art, music and education.<br />
<br />
You are next taken to the seat of another great religion, Buddhism at Sarnath as a part of one day excursion tour. With many Stupas and Buddhist monks moving around, it can aptly be called the Land of Buddhism. It was here that Lord Buddha preached his first Sermon in 590 BC. <br />
<br />
You visit the various Stupas which are rich in Buddhist sculptures and literature. The Sarnath Museum is your next visit, which is a treasure of Buddhist art, literature and sculpture. <br />
<br />
At evening, you enjoy the worship of the River Ganges sitting at the Ghats. The light of hundreds of pradeep on the water creates a blissful atmosphere. Night stay is at Varanasi.</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> Varanasi
								</p>
								<p class="aj">We start an early day with a visit to one of the 5 known Hindu pilgrimages, the Dashashwamedha Ghat. We reach the Ghat almost at 5 am, so that you can get a view of the mesmerizing sun rise at the holy river.We sail from the famous Ghats of Man Mandir to Lalita and to the shrine of Goddess Shitala on a traditional boat. <br />
<br />
After visiting the temples and witnessing the astonishing architectural beauty and the Hindu customs, on the return trip you visit the famous Kashi Viswanath Temple. This temple is dedicated to Lord Shiva and is considered to be the first Jyotirlinga. <br />
<br />
The next part of the tour starts with a visit to the Bharat Mata Temple, which has a huge relief map of Mother India engraved on it. Our next visit is to the ancient Durga Mata Temple which is believed to be built in the 18th century. The place is also unique due to the huge number of monkeys that reside here; the shrine is also sometimes referred to as the Monkey Temple. <br />
<br />
Our next tour is to the Tulsi Manas Temple, which is a marble structure with all its walls featuring the complete story of the Great Indian Epic, Ramayana. <br />
<br />
The tour of Varanasi is incomplete without a visit to the Banaras Hindu University. It is the largest residential university of Asia. There is an art gallery and a mosque built by Mughal Emperor Aurangzeb within the campus. There is an overnight stay at the city.</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> Varanasi – Khajuraho
								</p>
								<p class="aj">After the breakfast, you can vist the local markets of Varanasi, which is known for its Banarasi saris, the hand weaved carpets, bangles and last not the least, great delicacies. We take an Train or Flight to Khajuraho.<br />
<br />
The temples of Khajuraho is under the list of UNESCO World Heritage Sites and is an amazing piece of architecture. The dance festival of the place is also known worldwide. The temple derives its name from the palm trees that surround the area. The temple is carved with erotic figures, showing love, various moods, postures and beauty of womanhood. There are also several carvings of celestial bodies, musicians playing music, daily activities, elephant fights, hunting, dances and many more. The temple walls seems to consist of frozen movements.<br />
<br />
At afternoon, you reach Khajuraho and visit the Eastern group of temples, where is located the Jain temple of Parswanath. At evening, you enjoy the beautiful show of sounds and lights at the temple complex. There is an overnight stay at Khajuraho.</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> Khajuraho – Jhansi
								</p>
								<p class="aj">After breakfast, we trip to the Khajuraho temples of the western group. These temples are the largest of all the three groups.The Khandariya Mahadeva temple is the largest temple of the same where every carved figure seems to be live.<br />
<br />
Our next trip is to the historical city of Orchha. It was the centre of the Bundela kingdom on the banks of the Betwa River. With some beautiful palaces, like the Jahangir Mahal and the Raj Mahal, the city is known for the architecture with delicate chattris and work of trellis. <br />
<br />
Enjoy some great delicacies of Madhya Pradesh at the city. After that we complete the tour of shrines, like the Chaturbhuj temple and Ram Raja temple. We reach Agra at evening by the deluxe train. <br />
<br />
Agra: <br />
You cannot miss Agra while exploring the best cultural features of India. this small village grew up to be one of the most popular sites to view masterpieces of architecture, under the patronage of the Mughal Emperors, Akbar and Shah Jahan. Along with beautiful buildings, the city is attractive with its Mughal delicacies. The night stay is at Agra.</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> Agra
								</p>
								<p class="aj">After a relaxing breakfast at the hotel, you proceed to a tour of the historical city. Your first visit is to one of the Seven Wonders of the World, the Taj Mahal. This marble structure is located within lush green gardens with the River Yamuna on one side. It is an epitome of love, built by Mughal emperor Shah Jahan for his beloved wife, Mumtaj Mahal. As you step in the premises, you can feel love in the air. <br />
<br />
Your next tour is the Agra Fort, built by the Mughal emperor, Akbar. Within the complex of this red sandstone building, are located several exquisitely beautiful buildings, like the Moti Masjid, Shish Mahal or the palace of glass, Khash Mahal, Jahangir’s Palace and others. We also visit the Itimad-ud-daula’s tomb, also known as Baby Taj, another marble structure built in the Persian style by Emperor Jahangir.Travelogy India There is an overnight stay at Agra.</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> Agra – Jaipur By Road 221 km in 5 hr
								</p>
								<p class="aj">After breakfast at hotel, we drive to Jaipur. On our way, we stop to witness the famous Fatehpur Sikri, built by Mughal Emperor, Akbar. It is made of red sandstone with Indo-Muslim architectural style. It consists of hanging balconies, known as Jharokas, consists of delicate chattris and numerous pillars and ornamental arches. After the visit, we continue our drive to Jaipur, the Pink city of Rajasthan. This is a colourful city with lush green meadows in the desert state. The city can be considered as a paradise for shoppers. The capital city of Rajasthan is known for its apparels with unique prints and designs, known as Jaipuri prints. The mehendi designs are beautiful. You can enjoy popular Rajasthani cuisines here. Last but not the least, the music and the puppet shows are the popular form of entertainment here.</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> Jaipur
								</p>
								<p class="aj">There is an early breakfast at the hotel. You start your journey of Jaipur with a visit to the Amber Fort on an elephant ride. <br />
<br />
Amber Fort Palace-This beautiful fort was built by Raja Man Singh and consists of several palaces, like the Shish Mahal, Diwan-i-Aam and the Sukh Mahal. The Magic Flower of the fort is famous for its beauty; it is a fresco which had been carved out of marble.<br />
<br />
City Palace- this regal architecture is richly decorated and is influenced by the Rajput, European and Mughal architectural style. It consists of four gateways with the Govind Devji Temple, Chandra Mahal, Diwan-I-Khas and Mubarak Mahal. <br />
<br />
Jantar Mantar- This is one of the largest observatory of the world, which also consists of the largest sun dial of the world. It also consists of 14 major geometric devices, which is used to measure time, used to measure the orbits round the sun and also are being used to track the constellations. <br />
<br />
Hawa Mahal - Built by red and pink sandstone, this beautiful five storeyed building is believed to be built in the form of Lord Krishna’s crown. The building consists of 953 windows and numerous designed Jharokas which were used by the women to view the life outside. <br />
<br />
At afternoon, you can enjoy shopping at the bustling shops, with saris, bangles and jewelleries. There will be an overnight stay at Jaipur.</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> Jaipur – Jodhpur By Road 250 km in 6 hr
									</p>
									<p class="aj">After the breakfast at hotel, we drive to Jodhpur. On our way, we visit the sacred Pushkar Lake. It consists of several ancient shrines. The Brahma temple is the most famous temple of the town, believed to be the only Brahma temple in the world. Jodhpur can be viewed as an oasis in the midst of the Great Thar Desert. It is one of the best cities of the state to experience the life style, tradition and culture of the people.</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> Udaipur
									</p>
									<p class="aj">You have the breakfast at the hotel and head towards the city. The first site you are taken to be the City Palace, located on the banks of the Pichola Lake. You can get a wonderful view of the lake from the palace balconies; a part of the palace has been turned into a museum. It also consists of some beautiful palaces, like the Ruby Palace, the Moti Palace and a beautiful peacock courtyard. You are also taken to the Sahelion ki Bari Gardens, the Jagdish temple and also to the local folk museum. You can enjoy a cool moroe cruise ride on the Lake Pichola at the evening. The evening can also be enjoyed checking out the local dance shows. There will also be an overnight stay at Udaipur.</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 13:</b> Udaipur – Mumbai By Flight
									</p>
									<p class="aj">After the breakfast at the hotel, you head to the airport for a flight to Mumbai. You reach Mumbai and our representative take you to the nearest hotel to the airport. Mumbai is the commercial capital of the country. It has a both historical and modern value added in its life style. We reach the city of Aurangabad and you relax at the hotel for the night.</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 14:</b> Aurangabad
									</p>
									<p class="aj">After breakfast, you are taken to the World Heritage sites of Ajanta and Ellora caves. These re the rock cut caves known for carvings of human figures and beautiful wall paintings. These caves also consist of valuable Buddhist inscriptions. Your next tour is to the Daulatabad Fort. This 12th century fort is located on the top of a hill and is known for the high 30 m Char Minar. Time has not been able to destroy the sharp features of this powerful fort. There is an overnight stay at Aurnagabad.</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 15:</b> Aurangabad – Mumbai:
									</p>
									<p class="aj">After breakfast, your second day tour of the Ajanta Ellora caves begin.The caves consists of Buddhist caves, Jain caves and Hindu caves. The Aurangabad caves are also known for its inscriptions and paintings. You can gain huge knowledge about Jainism and Buddhism from these rock cut caves. After that, you proceed to the airport for a flight to Mumbai. This capital city of Maharashtra has lot in store for you. From historical buildings to sea food delicacies, you can never have enough of the city. We reach Mumbai and check in the hotel and rest for the night.</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 16:</b> Mumbai
									</p>
									<p class="aj">You head to the tour of the city after an early breakfast at the hotel. Our tour starts at the Mumbai Fort, located at Colaba. This British influenced structure consists of the St. John’s Church. We next drive to the Marine Drive. This beautiful place looks like a queen’s necklace, when the street lamps light at the evening. <br />
<br />
Visit the beach at the heart of the city, the Chowpatty Beach. The Flora fountain, located at the juncture of five main streets of Mumbai is also known as the Piccadilly Circus. It is beautiful man-made fountain encircled with mythological figures, like that of a Roman God. <br />
<br />
The hanging gardens at the slope of the hill is the best place to view an enchanting sunset and sun rise. The Victoria terminus is your next visit; it is a railway station of Mumbai, featured with a lush green garden, a lion and tiger stone figure at the entrance. The dome of the building is 160 feet high. The Mumbai High court and the Rajabhai clock Tower are some of the other must visits of the city.</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 17:</b> Mumbai – Cochin
									</p>
									<p class="aj">After breakfast at the hotel, we head towards the airport for a flight to Cochin. Our representatives at Cochin escort you to the hotel. After some relaxation, you are taken for a private cruise at the harbour in the evening. You can enjoy a fun filled evening with the dolphins; enjoy the sight of fresh fish at the fishing island and check out the Bolghatty Palace. Your cruise takes you till the sea mouth, where you can enjoy a mesmerizing sun set.<br />
<br />
Travelogy India You enjoy dinner at the hotel, which consists of several Indian sea food delicacies. There is a night stay at Cochin. <br />
<br />
Enquire About This Trip</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 18:</b> Cochin
									</p>
									<p class="aj">After breakfast at the hotel, your tour to the city starts.<br />
You first visit the Chinese fishing nets exhibits a unique fishing style. The nets are set up on the sea shore on bamboo and teak poles and are then lowered into the sea waters till 20 metres. These nets are raised back after 4 to 5 minutes and the fish sold to the passer byes. <br />
<br />
You are next taken to the Jewish Synagogue, also known as the Paradesi Synagogue, meaning the Synagogue of the White Jews. This is built at the corner of the Jew town of the place, which consists of several old Jewish houses. <br />
<br />
The other must watch sites of the city includes the Vasco Da Gama Square, the Santa Cruz Basilica, the St Francis Church and others. You can enjoy the Kathakali dance show at the evening. There is another night stay at Cochin.</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 19:</b> Cochin
									</p>
									<p class="aj">On the second day tour of the city, you are taken to the Cochin backwaters. There is a ferry ride arranged to the backwaters. As you sail through the crystal clean water lined by coconut trees, you are experiencing one of the exquisite natural beauties.<br />
<br />
You are also taken to the paddy fields, the duck farming area. Here you can enjoy the famous Kerala coffee and tea.<br />
<br />
Our way back, we stop at the oldest church of Kerala, the St. Mary Church. Here you can also check out the 130 feet long snake racing boat, which is believed to be made here for the first time. There is another night stay at Cochin.</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 20:</b> Cochin – Delhi
									</p>
									<p class="aj">There is breakfast at the hotel. After that you may enjoy shopping at the nearby markets or enjoy an Ayurveda massage at the hotel. Then you board flight back to Delhi. A farewell dinner is arranged for you. After that you are escorted to the Delhi International Airport back home with the treasure of Indian culture and beauty with you.</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>
															</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.travedatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Indian Culture for First Time Visitor 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="117143"/>
						</form>
						</div>
						
						";i:1;s:83:"Book Indian Culture for First Time Visitor Tour - 19 Nights / 20 Days Tour Packages";i:2;s:205:"book indian culture for first time visitor tour - 19 nights / 20 days tour packages, heritage tour packages, new delhi, jaipur, jodhpur, udaipur, agra, varanasi, khajuraho, aurangabad, mumbai tour packages";i:3;s:234:"Traveda Tour offers Indian Culture for First Time Visitor Tour - 19 Nights / 20 Days tour package, budget Heritage tour packages for New Delhi, Jaipur, Jodhpur, Udaipur, Agra, Varanasi, Khajuraho, Aurangabad, Mumbai at exciting price.";i:4;s:1244:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Jodhpur, Udaipur, Agra, Varanasi, Khajuraho, Aurangabad, Mumbai"        
		                 },
		      "description": "Overview
“Unity among diversity” can be taken as a tag line for India’s culture. Every Indian State comes with its own beauty, customs and traditions. While you can enjoy the bliss of pleasant nature at the snow fed mountains of the Himalayas, the camel ride on the deserts of Rajasthan overwhelms you. While the Hindu temples depict the start of a new religious era, the Mughal era depicts the Golden Age of Indian architecture. From the Sanchi Stupa to the Taj Mahal, you have lot to know and enjoy here. Keeping pace with its varied nature and architecture, the cuisine also varies. Explore with us the royal kingdom of Rajasthan to the oldest city of Varanasi. Our experienced representatives ensure a safe and wonderful journey for you.",
		      "name": "Indian Culture for First Time Visitor Tour",
		      "telephone": "+91-9973011696"
		    }
		    </script>
			";i:5;N;}