a:6:{i:0;s:12706:"				<div class="h1"><h1>Egyptian Explorer Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.toursindiareisebuero.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.toursindiareisebuero.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Egyptian Explorer 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Cairo, Aswan, Luxor, Edfu</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.toursindiareisebuero.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Egyptian Explorer 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="114787"/>
						</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_15/422826/187324.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/422826/187324.jpg"  width="150" height="150"    alt="Egyptian Explorer Tour" title="Egyptian Explorer Tour" /></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 Cairo
								</p>
								<p class="aj">Tour to the mystical lands of Egypt starts with your arrival at Cairo International airport. Our  tour representative would be escorting you to the pre-booked hotel. Retire in your rooms and spend the rest of the day at leisure. You may like to go on a walk to the nearby market place, feel free to do that in the evening.<br />
<br />
Overnight stay in Cairo.</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> Cairo Pyramids and Sphinx
								</p>
								<p class="aj">You would be starting with your Cairo tour after having your sumptuous breakfast in the hotel. The capital city of Cairo is known for its ancient monuments and structures that glorified Egypt in the ancient as well as today's world. First in the schedule will be the visit to one of the wonders of the world; The Great Pyramids and the Sphinx. These wonderful man-made creations are believed to be amongst the very ancient on this planet. The pyramids have a theory that they were built to hide the tombs of the Pharaohs (Kings). On the other hand, the Sphinx is a magnificent structure that flaunts the head of Pharaoh Khafre on the body of a lion.<br />
<br />
History of Egypt also states about the use of Papyrus in making paper in its ancient times. Thus, after your visit to the majestic Pyramids, head to the Papyrus Institute in the Cairo city. Originally a store house, it houses various ancient artwork that were done using only papyrus in the earlier times. Thus it serves as a good medium to absorb the ancient heritage of Egypt. Later on, visit the Papyrus museum where you can also shop for traditional souvenirs and handicraft items. Guests would also be visiting the nearby perfume factory and jewelry shop.<br />
<br />
Lunch would be served at a renowned Indian restaurant. Post that, head back to the comforts of your hotel. Feel free to head for a sound and light show in the evening, or embark on a dinner cruise. On the cruise, savor some of the best continental and oriental cuisines as the live entertainment of Belly dancers goes on right in front of your eyes.<br />
<br />
Overnight stay in Cairo.</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> Cairo - Aswan
								</p>
								<p class="aj">Post breakfast, catch a morning flight to the ancient city of Aswan in Egypt. Upon arrival, guests would be embarking on a cruise on the enchanting Nile River. You would be making a halt at the renowned Aswan dam; an embankment dam built as a multi-purpose project. Next would be the Philae temple, which is a magnificent island temple dedicated to Goddess Isis. The temple is one of the largest in Egypt and its architecture boasts of traditional Pylon structures.<br />
<br />
Later in the list would be the temple of Kom Ombo, which is located on the eastern bank of the river Nile. Kom Ombo is actually a temple complex that consists of a temple structure dedicated to two Egyptian Gods: Haroeris and Sobek. Post these temple tours, the cruise would be heading towards the ancient Edfu city.<br />
<br />
Lunch, dinner and overnight stay on board.</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> Sailing Edfu, Esna, Luxor
								</p>
								<p class="aj">After having an early breakfast on board, guests would be heading towards a temple in Edfu, which is believed to be dedicated to Egyptian God Horus-the Avenger. Edfu is highly regarded for this ancient temple located on the western banks of river Nile. The temple walls have beautiful inscriptions of the Greco-Roman period inscribed all over its walls. Highly fascinating are the drawings which imparts mythical interpretation of the conflicts between God Horus and God Set. In the evening, the cruise will start sailing towards the Esna lock. After crossing it, the cruise will finally halt at Luxor city.<br />
<br />
Lunch, dinner and overnight stay on board.</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> Sailing West Bank
								</p>
								<p class="aj">After having a sumptuous breakfast on board, head to the West Bank area. There you would be visiting the world renowned Necropolis Thebes. Just opposite Thebes in Egypt, Necropolis is a burial site that has numerous mortuary temples. In the ancient times of the Pharaos, this burial site was extensively used. Having great historical significance, there are numerous edifices to see at the Necropolis, which are now popular tourist attractions.<br />
<br />
You would be starting with the Temple of the Queen Hatshepsut. This temple is dedicated to the sun god Amon-Ra and its architecture is considered to be highly incomparable to the rest of the structures in Egypt. Post that, explore the Valley of the Kings. This valley belongs to the royals and houses many tombs and ancient structures of the Pharaohs. Then the Necropolis has the two huge stone structures of Pharaoh Amenhotep III; collectively known as the Colossi of Memnon. These magnificent statues have been glorifying the Necropolis for over 3000 years.<br />
<br />
Post these visits, spend the rest of day at leisure. Dinner and overnight stay would be on board.</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> Disembark cruise - Cairo
								</p>
								<p class="aj">This is the last day of our wonderful Egypt tour. After having a delicious breakfast at the cruise, head to the airport to catch the next flight to Cairo. On reaching Cairo, guests would be embarking on a guided tour to some of the city's popular tourist attractions that include the Citadel and Khan el-Khalili bazaar.<br />
<br />
Situated at the Mokattam hill near the heart of the city, the Citadel is a renowned Islamic fort that was built in the medieval times of Egypt. This preserved structure has museums and mosques to explore. On the other hand is the Khan el-Khalili which talks about the busy and lively corners of Cairo. It is actually a shopper's paradise, but in the past, it served as a mausoleum site. From here, guests can shop for souvenirs, jewelry and Egyptian antiques. Besides it has nice restaurants and eating joints. Thus, guests would be having lunch at one of the fancy Indian restaurants in the Bazaar. Rest of the day would be at leisure.<br />
<br />
Dinner and overnight stay in Cairo</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> Depart Cairo
								</p>
								<p class="aj">Time now for the final departure. Post breakfast, guests would be heading towards the Cairo airport to fly back home. Thus, the Egyptian tour ends on this note.</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>
															</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.toursindiareisebuero.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Egyptian Explorer 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="114787"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Egyptian Explorer Tour - 6 Nights / 7 Days Tour Packages";i:2;s:126:"book egyptian explorer tour - 6 nights / 7 days tour packages, heritage tour packages, cairo, aswan, luxor, edfu tour packages";i:3;s:167:"India Reisebuero Pvt Ltd offers Egyptian Explorer Tour - 6 Nights / 7 Days tour package, budget Heritage tour packages for Cairo, Aswan, Luxor, Edfu at exciting price.";i:4;s:419:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Cairo, Aswan, Luxor, Edfu"        
		                 },
		      "description": "",
		      "name": "Egyptian Explorer Tour",
		      "telephone": "+91-9958322133"
		    }
		    </script>
			";i:5;N;}