a:6:{i:0;s:30905:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Exhilarating Egypt Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.flyingfeetholidays.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.flyingfeetholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Exhilarating Egypt Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						8 Nights / 9 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Hurghada, Cairo, Alexandria, Aswan, Luxor, Edfu</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.flyingfeetholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Exhilarating Egypt Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="187958"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_20/578790/294005.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_20/578790/294005.jpg"  width="150" height="84"    alt="Exhilarating Egypt Tour" title="Exhilarating Egypt Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								The second oldest cradle of civilization, Egypt boasts of one of the longest histories in the world, offering a world of some unforgettable experiences to its visitors. The well-planned Exhilarating Egypt Tour of 8 nights and 9 days offers you some of the best sights and sounds of this lovely place. The itinerary takes you to places and attractions like Cairo, Aswan, Luxor, Alexandria, and Hurghada etc., giving you a complete insight into the Egypt’s millennia-old monuments and other attractions, religion, culture and landscapes. Explore the ancient Egypt and make your vacation a memorable one.<br />
Note: This is just a suggested itinerary indicative of what could be possible. We customize holidays for your specific needs. Contact us if you want modifications so that we could customize a holiday to suit your need for an unforgettable International tour.<br />
<br />
TRIP HIGHLIGHTS<br />
<br />
Sightseeing in Cairo including the Pyramids of Giza<br />
Shopping at the colorful Khan El Khalili bazaar of Cairo<br />
Full day tour of Alexandria<br />
Sightseeing tour in Aswan, including Temple of Philae<br />
Go aboard the Nile Cruise<br />
Visit the temples sites at Abu Simble - Kom Ombo<br />
Explore Temple of Horus in Edfu<br />
Guided tour of Luxor including Valley of the Kings and Colossi of Memnon-<br />
Leisure time at Hurghada city								</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> ARRIVAL CAIRO
										</p>
										<p class="aj">Arrive at the Cairo International Airport. Meet our tour representative who helps you with an assisted transfer to the hotel. Complete the check-in formalities. The rest of the day is at leisure and you are free to spend the day as per your own liking. Set on the banks of River Nile, Cairo is a vibrant and welcoming city. The capital city of Egypt, Cairo is full of energy and offers interesting experiences to its visitors. You can explore the surroundings. Also known as 'the city of a thousand minarets', it has several architectural gems of Islamic style of architecture.</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 SIGHTSEEING
										</p>
										<p class="aj">On the 2nd day of the tour, have your breakfast at the hotel and embark on a guided sightseeing tour of Cairo, which starts from the great Pyramids of Giza- one of the Seven Wonders of the World. When the Greeks erected the pyramids of Cheops, Chephren and Mycerinus, guess they always wanted to constructed world wonders. These pyramids, constructed from a single pyramid, amounting to a total of 2.300.000 blocks, are real wonders. They have always been muses for artists and writers. Out of the three, Cheops is the most interesting one. Its burial chambers are accessible to the public. Close to this the popular Great Sphinx of Giza, dating back to 2620 BC, the time of Chephren. Built from natural yellowish limestone, 65 feet in height and 187 feet in length, it has a statue that is a mix of a lion's body and a Pharaoh's head. After this, a visit to a local perfume shop and papyrus institute can also be arranged. Have lunch at an Indian restaurant and then continue with the sightseeing.<br />
<br />
The next visit is to the Egyptian Museum- founded in the year 1835 and reconstructed in 1900 in the new classical style, the museum has an amazing collection of more than 1, 60,000 objects, starting from the pre -historic time and continuing till the Greco Roman period. There are a total of 107 halls with huge statues at the ground floor. Jewels, mummies, small statues and the treasures of Tutankhamen are on the upper floors. The complex also has a huge library and a photography section. There is a separate hall for the Royal Mummies with the mummies of 11 kings and queens.<br />
<br />
Post sightseeing, a small drive passing the downtown brings you to Khan El Khalili bazaar, one of the world's most famous market with narrow alleys. This wonderful market is popular in the whole of Middle East and has a wonderful medieval feel. Dating back to the 14th century, this market houses some amazing stuff such as jewelry, carpets, oils, antiques and more. Back to the hotel.<br />
Overnight 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> ALEXANDRIA FULL DAY TOUR
										</p>
										<p class="aj">After an early morning breakfast at the hotel on day 3, get ready for a full day excursion to Alexandria, nicknamed as the 'Pearl of Mediterranean'. This lovely city is known for its cultural ambiance and a vibrant atmosphere. Get transferred to Alexandria through the desert road. Around 225 km away, on arrival, you enjoy a guided tour of attractions in Alexandria. The first visit is to Pompeii Column and Kom El Shoqafa- the Catacombs of Kom El Shoqafa, made from Aswan pink granite with a height of 30 m, the Pompeii Column is known to be a gift to Emperor Diocletian from the people of Alexandria. A major part of the remains of this place can be found at the Greco-Roman Museum. The hilltop has the entry to Kom al-Shuqafa Catacombs belonging to the 1st and 2nd centuries, discovered in the 20th century's starting.<br />
<br />
The next visit is to Montazah Gardens- covering an area of 150 hectares, it envelopes the the palace of Khedive Abbas, which is known for its stunning architecture. Take a walk here. Next you can enjoy swimming at the sandy beaches. Thereafter, you visit Alexandrina Bibliotheca- the city's new library, it is dedicated to the recollection of the scholarship and sincerity of the original Bibliotheca Alexandrina. This complex is the venue of several institutions, has around 13 varied departments too. Next in line is the visit to Qaite bay Fort. It is place at the last end of the Cornish and has been guarding the bay for centuries. Constructed in the year 1480 on the site of Alexandria lighthouse, it is crenellated walls. After sightseeing, relish lunch at restaurant and begin driving back to Cairo where you arrive, 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 4:</b> CAIRO – ASWAN –NILE CRUISE
										</p>
										<p class="aj">The day starts early. Have a hot cup of tea or coffee and complete the check-out formalities. Carry packed breakfast while you are driving to the Cairo airport. Later, get onboard a flight to Aswan, the southern gate of Egypt. This flight is of about 70 minutes. Upon arrival at the Aswan airport, meet our tour representative. An ancient city, Aswan lies on the River Nile and is known to be one of the best winter resorts in the world. Have a guided to the Old dam and the High dam that provide electricity and irrigation to the whole of Egypt. Next, get into a motor boat, to have a ride till the wonderful Temple of Philae, which lies on the Isis Island. This brilliant temple, dedicated to the Goddess Isis was built by the ancient Egyptians. After the construction of Aswan dam in 1906, the temple was submerged. It was only the 1970s that steps to the save the temple were taken, after the High dam was built in 1971 and the water levels were stabilized here.<br />
<br />
Thereafter, get transfer to the Nile Cruise. Complete the check –in formalities. Lunch is served on-board. Enjoy a relaxed tour on-board a felucca, a small boat that is used on the Nile. The boat takes you around the Elephantine of Kitchener's Islands and Botanical Garden, enjoying a visit to the Agha Khan mausoleum. Dinner on-board the cruise. Treat your eyes to the lovely views. This day is going to be a great affair.<br />
Overnight 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> NILE CRUISE – ABU SIMBLE – KOM OMBO – EDFU
										</p>
										<p class="aj">Day 5 of the tour is going to begin quite early. Your breakfast is packed. The day is scheduled for a day tour by coach to the magnificent Temples of Abu Simbel skirted by 4 huge stone statues of Ramses II- the celebrated 3rd pharaoh of the 19th Dynasty of Egypt. These temple are two giant rock temples in Abu Simbel. Placed on the western banks of River Nile, these temples were built by the Pharaoh himself. On returning back from the Abu Simble temple site, cruise to Kom Ombo exploring another popular temple of the region. This temple is dedicated to 2 Gods, Sobek and Heroeris. Dating back to 180 BCE in Ptolemaic era, new additions were made in the Roman times. The temple site is on the bank of River Nile. Later on, sail to the ancient Egyptian city of Edfu, lying on the western banks of the Nile.<br />
Stay overnight 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> NILE CRUISE – EDFU – ESNA – LUXOR
										</p>
										<p class="aj">Arrive in Edfu where you get down from your cruise to visit the Temple of Horus. Get into a horse drawn carriage or Kalesh. Also known as the Temple of Edfu, it is one of the best-preserved and most complete temples in the whole Egypt. This temple was built between 237 BC and 57 BC, atop the remnants of former temples. The entrance of the temple has a huge statue of Horus. After this, go back to the Nile Cruise that starts sailing to Esna / Luxor. As you reach Luxor, disembark to visit Karnak temple. This temple complex consists of a number of ruined temples, pylons, chapels, along with other buildings. This city of temples was created in a span of more than 2,000 years and is dedicated to the Theban triad of Amun, Mut, and Khonsu. Your next visit is to the Luxor temple that looks like an open museum. This ancient Egyptian temple complex, on the eastern bank of Nile River was established in 1400 BCE. Today known as Luxor, it was the Waset city in ancient Egypt. Back to the cruise.<br />
Overnight 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 7:</b> Luxor – Hurghada City
										</p>
										<p class="aj">On the 7th Day of the Tour, have An Early Morning Breakfast and Complete the Check- Out Formalities. Keep Your Luggage On-board Only as You are all Set for Sightseeing. Explore the West<br />
<br />
bank in Luxor City Towards the Valley of the Kings- also Called the Valley of the Gates of the Kings, this is the Site Where Tombs of Influential Pharaohs and Nobles, Belonging of the New Kingdom Were Built Between the 16th to the 11th Century Bc; the Mortuary Temple of Hatshepsut- Dedicated to a Rare Female Pharaoh, Hatshepsut, this Temple is also Called Djeser-djeseru and the Colossi of Memnon- 2 Extremely Huge Stone Statues of Pharaoh Amenhotep Iii, Lying in Theban Necropolis from the Past 3400 Years.<br />
<br />
in the Afternoon, You Return to the Nile Cruise to Take Your Luggage. Now is the Time to Savor Sumptuous Lunch At An Indian Restaurant. Lunch is Followed By a Drive Towards Hurghada City, Popular for Being Egypt's Luxury Resort Town of Egypt. the Road Journey from Luxor to Hurghada Would Take Around 4 Hours. After Arrival, Check-in and Relax.<br />
overnight in Hurghada.</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> HURGHADA
										</p>
										<p class="aj">Post Breakfast On Day 8, You are Free to Spend the Day, as per Your Own Liking. if You Want, You Can Stay At Your Hotel and Enjoy the Facilities that They Offer. Or, You Can Go Out and Indulge in the Activities of Their Interest. this Lovely Beach Resort Town is Extremely Popular for Its Night Clubs, Swimming, Deep-sea Fishing, Sailing, Wind Surfing and Scuba Diving. the Party Town of Egypt, the Place Was Earlier a Small Fishing Village and Now It is a Very Popular Holiday Resort. You Can also Opt for a Day's Excursion to the Nearby Villages. this Laid-back City is Known for Its Beautiful Coral Reefs. Stay 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 9:</b> HURGHADA – CAIRO DEPARTURE
										</p>
										<p class="aj">On the Last Day, have a Scrumptious Breakfast At the Hotel. Complete the Check- Out Formalities. Get Transferred to the Hurghada Airport to Board a Flight Back to Cairo from Where Board Flight for Your Onward Destination.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount</li><li>
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
* Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.flyingfeetholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Exhilarating Egypt 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="187958"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/pushkar-tour-packages.htm" title="Pushkar Tour Packages">Pushkar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/cherrapunji-tour-packages.htm" title="Cherrapunji Tour Packages">Cherrapunji</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/kathmandu-tour-packages.htm" title="Kathmandu Tour Packages">Kathmandu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/zurich-tour-packages.htm" title="Zurich Tour Packages">Zurich</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/alleppey-tour-packages.htm" title="Alleppey Tour Packages">Alleppey</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/port-elizabeth-tours-tour-packages.htm" title="Port Elizabeth Tour Packages">Port Elizabeth</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/pattaya-tour-packages.htm" title="Pattaya Tour Packages">Pattaya</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/goa-city-tour-packages.htm" title="Goa City Tour Packages">Goa City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/jaisalmer-tour-packages.htm" title="Jaisalmer Tour Packages">Jaisalmer</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/gangtok-tour-packages.htm" title="Gangtok Tour Packages">Gangtok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/munnar-tour-packages.htm" title="Munnar Tour Packages">Munnar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/kandy-tour-packages.htm" title="Kandy Tour Packages">Kandy</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/havelock-tour-packages.htm" title="Havelock Tour Packages">Havelock</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/kochi-tour-packages.htm" title="Kochi Tour Packages">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/cape-town-tour-tour-packages.htm" title="Cape Town Tour Packages">Cape Town</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/mukteshwar-tour-packages.htm" title="Mukteshwar Tour Packages">Mukteshwar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/abu-dhabi-tour-packages.htm" title="Abu Dhabi Tour Packages">Abu Dhabi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/bikaner-tour-packages.htm" title="Bikaner Tour Packages">Bikaner</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/guwahati-tour-packages.htm" title="Guwahati Tour Packages">Guwahati</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/bali-tour-packages.htm" title="Bali Tour Packages">Bali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/tashkent-travel-tour-packages.htm" title="Tashkent Tour Packages">Tashkent</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/almaty-tour-packages.htm" title="Almaty Tour Packages">Almaty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/nainital-tour-packages.htm" title="Nainital Tour Packages">Nainital</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/hurghada-tour-packages.htm" title="Hurghada Tour Packages">Hurghada</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/nagarkot-tour-packages.htm" title="Nagarkot Tour Packages">Nagarkot</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/dubai-tour-packages.htm" title="Dubai Tour Packages">Dubai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/mumbai-tour-packages.htm" title="Mumbai Tour Packages">Mumbai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/house-boat-holidays-catid.htm" title="House Boat Packages">House Boat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:62:"Book Exhilarating Egypt Tour - 8 Nights / 9 Days Tour Packages";i:2;s:150:"book exhilarating egypt tour - 8 nights / 9 days tour packages, adventure tour packages, hurghada, cairo, alexandria, aswan, luxor, edfu tour packages";i:3;s:202:"Book Exhilarating Egypt Tour - 8 Nights / 9 Days tour packages from Flying Feet Holidays - Get attractive 8 Nights / 9 Days Adventure  tour packages for  Hurghada, Cairo, Alexandria, Aswan, Luxor, Edfu.";i:4;s:1737:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Hurghada, Cairo, Alexandria, Aswan, Luxor, Edfu"        
		                 },
		      "description": "The second oldest cradle of civilization, Egypt boasts of one of the longest histories in the world, offering a world of some unforgettable experiences to its visitors. The well-planned Exhilarating Egypt Tour of 8 nights and 9 days offers you some of the best sights and sounds of this lovely place. The itinerary takes you to places and attractions like Cairo, Aswan, Luxor, Alexandria, and Hurghada etc., giving you a complete insight into the Egypt’s millennia-old monuments and other attractions, religion, culture and landscapes. Explore the ancient Egypt and make your vacation a memorable one.
Note: This is just a suggested itinerary indicative of what could be possible. We customize holidays for your specific needs. Contact us if you want modifications so that we could customize a holiday to suit your need for an unforgettable International tour.

TRIP HIGHLIGHTS

Sightseeing in Cairo including the Pyramids of Giza
Shopping at the colorful Khan El Khalili bazaar of Cairo
Full day tour of Alexandria
Sightseeing tour in Aswan, including Temple of Philae
Go aboard the Nile Cruise
Visit the temples sites at Abu Simble - Kom Ombo
Explore Temple of Horus in Edfu
Guided tour of Luxor including Valley of the Kings and Colossi of Memnon-
Leisure time at Hurghada city",
		      "name": "Exhilarating Egypt Tour",
		      "telephone": "+91-9166682022"
		    }
		    </script>
			";i:5;N;}