a:6:{i:0;s:11481:"				<div class="h1"><h1>Egypt Sojourn Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.globetrotteronline.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.globetrotteronline.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Egypt Sojourn 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Aswan, Cario</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.globetrotteronline.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Egypt Sojourn 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="93534"/>
						</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_16/457498/160032.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457498/160032.jpg"  width="150" height="150"    alt="Egypt Sojourn Tour" title="Egypt Sojourn 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> Alexandria
								</p>
								<p class="aj">On arrival at Alexandria airport, meet our tour manager who escorts you to one of our listed hotels. Check-in at one of our listed hotels to rest and relax in the cozy comfort of its room. Later move out from the hotel room and sit back in the coach for a sightseeing tour of Alexandria city. The prime attractions to visit in Alexandria are Pompey's Pillar, Kon-El-Shokafa and Montazah Gardens. After the visit return to the hotel for dinner and overnight stay.</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
								</p>
								<p class="aj">Next morning after breakfast, depart for Cairo. As you reach Cairo, get accommodated at one of our listed hotels. After straightening your backs for a while take a leisurely walk to explore the beautiful city of Cairo. Enjoy a lavish lunch at any Indian restaurant. In the evening, attend an impressive light and sound show. While exploring the city one can get a glimpse of bygone years testifying the power of Egyptian rulers. Later in the evening return to the hotel for dinner and overnight stay.</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
								</p>
								<p class="aj">Next morning after breakfast, head to explore the three Pyramids erected by Chepren , Mycerinus and Cheops are situated on the west bank of the Nile on the top of the Giza plateau. These three Pyramids are guarded by the mysterious Sphinx, a fabled statue featuring human head and a body of a lion. These Sphinx along with the three Pyramids are considered as one of the Seven Wonders of the World. The other prime attractions to visit in Cairo are Cairo tower, Mari Mina church dating back to early 5th century, Blue Mosque having blue mosaic walls. Also pay a visit to the Egyptian Museum that preserves more than 2,50,000 antique pieces displaying the entire history of ancient Egypt that is five thousand years old. The most splendid collection is of the Tut Ankh-Amen. Later in the day visit the Khan-El-Khalili Bazaar and the Al Sagha market place to enjoy shopping of some interesting jewelry pieces along with interesting souvenirs. In the evening return to the hotel for a sumptuous dinner and overnight stay.</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> Aswan
								</p>
								<p class="aj">Today the day is reserved for an excursion to Aswan. In the morning after breakfast, transfer to airport to board a flight to Aswan. It is one of the most beautiful cities of Egypt. As you reach Aswan, drive straight to Abu Simbel town which is famous UNESCO world heritage site. Visit the magnificent temples of Abu Simbel which are dedicated to Ra-Horakhty, Gods Amun and Ptah. Later visit the beautiful temple of Philae dedicated to the Goddess Isis. After the visit to these beautiful temples return to Aswan for a sightseeing tour of the prime attractions like the High Dam, an architectural accomplishment of the twentieth century. Enjoy an overnight cruise over the Nile River to reach Kom Ombo.</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> Kom Ombo
								</p>
								<p class="aj">In the morning enjoy breakfast on the cruise and then proceed to visit the famous 'Temple of Two Gods'. These temples are dedicated to Haroeris and Sobek, the crocodile gods. This magnificent temple was constructed during the Roman era and features beautiful engraving of its walls. After the visit board a ferry to reach Edfu town situated on the banks of Nile River. As you reach Edfu, move out to visit the famous temples of Edfu dedicated to God Horus. This famous temple of Egypt is famous for its splendid structure that blends well with the Greek and Pharoic architecture. Board an Overnight cruise to Luxor and enjoy the sights of the beautiful Nile River from the deck.</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> Luxor
								</p>
								<p class="aj">After feasting on the lavish breakfast on the cruise, proceed to sightseeing tour of Luxor, the city of palaces. Prime tourist attractions to be visited while being in Luxor are the famous Tombs in the Valley of Kings. Also visit the Colossi of Memnon, the funerary tomb of Pharaoh Amenhotep III along with the temple of Queen Hatsheput the only queen that ruled Egypt. A visit to the Karnak and Luxor temples is breathtaking and is not to be missed. In the evening enjoy dinner and overnight stay on the cruise.</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> Luxor
								</p>
								<p class="aj">Today after enjoying a breakfast on the cruise, disembark from the cruise to accommodate at one of our listed hotels. Spend the entire day resting and relaxing at the hotel or in accordance to your convenience. Enjoy lunch at one of the local restaurants after which you may explore this beautiful city on your own. In the evening enjoy dinner and overnight stay at the 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> Departure
								</p>
								<p class="aj">Bid adieu to the land of the Pharaohs. In the morning, after breakfast transfer to airport to board a flight for the 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="http://www.globetrotteronline.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Egypt Sojourn 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="93534"/>
						</form>
						</div>
						
						";i:1;s:57:"Book Egypt Sojourn Tour - 7 Nights / 8 Days Tour Packages";i:2;s:109:"book egypt sojourn tour - 7 nights / 8 days tour packages, heritage tour packages, aswan, cario tour packages";i:3;s:148:"Globe Trotter Holidays offers Egypt Sojourn Tour - 7 Nights / 8 Days tour package, budget Heritage tour packages for Aswan, Cario at exciting price.";i:4;s:402:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Aswan, Cario"        
		                 },
		      "description": "",
		      "name": "Egypt Sojourn Tour",
		      "telephone": "+91-7030378080"
		    }
		    </script>
			";i:5;N;}