a:6:{i:0;s:13804:"				<div class="h1"><h1>Cape Town - Pilanesberg Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.skytriptraveleasy.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.skytriptraveleasy.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Cape Town - Pilanesberg 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">Cape Town</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.skytriptraveleasy.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Cape Town - Pilanesberg 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="21194"/>
						</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_9/264226/38925.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/264226/38925.jpg"  width="150" height="150"    alt="Cape Town - Pilanesberg Tour" title="Cape Town - Pilanesberg 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> Cape Town
								</p>
								<p class="aj">Cape Town - Famously Known As The Mother City Is The Legislative Capital Of South Africa And Also The Seat Of The National Parliament. With A Wealth Of Beautiful White Sandy Beaches, Attractions, Accommodation And Activities On Offer, Cape Town Is A World Waiting To Be Explored. Upon Arrival, Enjoy Some Free Time To Unwind From Your Flight, Relaxing At The Hotel Followed By A Comfortable 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> Cape Town - Table Mountain, guided city tour and V & A Waterfront with cruise
								</p>
								<p class="aj">After Breakfast, Proceed To Discover The Spirit Of The Mother City, Experience Her Vibrant Cultures And History. We Take The Cable Car To The Top Of Table Mountain For A Panoramic View Of The City And Coastline. The Table Mountain Cableway Is One Of South Africa'S Most Popular Tourist Attractions. The Floor Of Each Car Rotates, Giving Everyone A 360 Degree View On The Way Up. One Can See Spectacular Views Over The Cape Peninsula And Explore The Richest Corner Of The Cape Floral Region.<br />
After The Incredible Table Mountain Experience, Proceed On A Guided City Tour Of Cape Town Including Scenic Coastal Drive Through Clifton And Sea Point, Green Market Square, District Six, Company Gardens, The Houses Of Parliament, The City Hall, The Cape Castle, Slave Lodge And Historic Malay Quarter.<br />
Hereon, We Visit The Victoria And Alfred Waterfront Which Is South Africa’s Most Talked About Tourist Venue With Many Shops And Restaurants. Situated At The Foot Of Table Mountain, Within A Stone’s Throw From The Cape Town Stadium And In The Heart Of Cape Town’s Working Harbour, The V And A Waterfront Offer The Visitor An Abundance Of Unforgettable Experiences. Indoor Shopping And Entertainment Venues Seamlessly Merge With Ocean Vistas And Mountain Views And The Fresh Sea Breeze And Warm African Sun Add Zest To A Cosmopolitan, Vibrant Atmosphere. More Than 80 Restaurants Bring A Fusion Of International Food. We Also Enjoy A Cruise As Part Of The Tour.Enjoy A Comfortable 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 3:</b> Cape Town, Full Day Tour of Cape Point, Cape Point nature reserve & Cape of Good Hope
								</p>
								<p class="aj">After Breakfast Today, Commence On A Full Day Tour Of Cape Point. We Flank The Cold Atlantic Ocean En Route To Hout Bay. Once A Fishing Community, Now One Of The Most Popular Residential Areas, The Harbour Still Has A Charm Of The Days Gone By. Enjoy A Half-Hour Cruise To Seal Island. We Now Continue Alongside The Indian Ocean, And Stop To See The Jackass Penguin Colony, Which Has Become Well Established, At Boulders Beach Near Simons Town. Then We Travel Onwards Until We Reach Cape Point And The Cape Of Good Hope. Said To Be The Romantic Meeting Place Of The Two Mighty Oceans, The Atlantic And The Indian, Sir Francis Drake The Explorer Once Called It The Fairest Cape That We Saw In The Whole Circumference Of The Globe.<br />
Enjoy A Comfortable 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 4:</b> Garden Route, Mossel Bay and sunset cruise on the Knysna Lagoon
								</p>
								<p class="aj">After Breakfast, Proceed On The Garden Route- South Africa'S Most Famous Scenic Highway. Enroute We Visit The Harbor Town Of Mossel Bay. This Popular Holiday Town Is Surrounded By A Sunbathed Peninsula And The Refreshing Waters Of The Indian Ocean. It Is Blessed With A Mild Climate All-Year Round But Its Most Important Feature Is Its Status As The Historical Capital Of The Garden Route. Hereon We Proceed To The Charming Town Of Knysna - Southern Cape Coasts Best Known Holiday Destination Situated Between Lush Forests And The Shores Of The Peaceful Lagoon - It Offers Many Activities And Attractions Of A Wide Variety. In Knysna Take An Unforgettable Experience On The Knysna Lagoon – A Relaxing Sunset Cruise.<br />
Enjoy A Comfortable 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 5:</b> Full Day tour of Oudtshoorn including Cango Caves, Ostrich Farm and Cango Wildlife Ranch
								</p>
								<p class="aj">Today After Breakfast, We Take A Full Day Tour Of Oudtshoorn, The Feather Capital Of The World. We Visit Cango Caves, The Klein Karoos Oldest And Most Popular Attraction, One Of The Worlds Natural Wonders. The Cango Caves Are A True Showcase Of Evocative Dripstones. You Will Be Amazed By The Range Of Dripstone Formations They Contain, Some Resembling Real-Life Objects And Even Historical Figures. Little Wonder The Caves Have Been A Major Attraction For More Than 200 Years.<br />
Our Next Stop For The Day Is The Ostrich Farm.<br />
Hereon We Proceed To Visit The Cango Wildlife Ranch Where You Can See Crocodile Enclosures, Snake Park And Cheetahland. The Cango Wildlife Ranch Is Uniquely Designed To Comfortably Host More Than 40 Species Of Animals, Giving Visitors The Opportunity To View And, In Some Cases, Even Interact With A Variety Of Endangered Animals.<br />
Enjoy A Comfortable 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 6:</b> Sun City
								</p>
								<p class="aj">Today After Breakfast, We Proceed To The Airport To Board Our Flight To Johannesburg From Where We Drive To Africa'S Premier Holiday Resort Sun City. The Resort Offers A Myriad Of Different Attractions And Activities To Keep Everyone Busy. The Sun City Resort Complex Captivates Visitors With Its Combination Of Golf, Game And Gambling As Well As World-Class Hotels. Formerly The Gaming Mecca Of South Africa, Sun City Still Attracts Those Wishing To Gamble But Also Those Just Wishing To Relax, And The Focus Is Now On The Total Experience Of Africa. The Resort At Sun City Features Glamorous Casinos, Gourmet Restaurants, Extensive Sports Facilities And Star Studded Performances. From Slots To Safaris, Theatre Extravaganzas To The Games Arcade For Children, Horse Riding To Golf, And The Valley Of Waves To The Lost City, A Mind-Blowing Experience.<br />
Enjoy A Comfortable 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 7:</b> Pilanesberg game drive
								</p>
								<p class="aj">Today We Undertake An Activity That No One Should Miss While In Africa, A Thrilling Big 5 Experience At Pilanesberg Game Reserve. See The Big Five In One Of The Country's Most Popular Wildlife Areas. Set In An Ancient Volcanic Crater, This Well-Stocked Reserve Has A Dramatic Landscape That Supports A Wide Variety Of Plants, Animals And Birds.<br />
Spend The Rest Of The Day At Leisure As You Please. The Magnificent Pool Area Is Surrounded By Tropical Plants And Nearby Is The Incredible Water World And The Valley Of Waves. Sun City Is A Sportsman's Paradise, From The Two Golf Courses Designed By Gary Player To The Tennis Courts. Other Sport Activities Include Bowls, Mini Golf, Squash, Ten-Pin Bowling And Horse Riding. There Is Also A Gym And Sauna For The More Physical Enthusiasts. (Costs Not Included For Additional Activities)<br />
Enjoy A Comfortable 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">After A Hearty Breakfast, It Is Time To Bid Good Bye To South Africa, With An Enriching Experience, New Friends And A Bagful Of Memoirs, All Of Us Would Like To Keep For Posterity.</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.skytriptraveleasy.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Cape Town - Pilanesberg 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="21194"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Cape Town - Pilanesberg Tour - 7 Nights / 8 Days Tour Packages";i:2;s:125:"book cape town - pilanesberg tour - 7 nights / 8 days tour packages, forts and palaces tour packages, cape town tour packages";i:3;s:161:"Skytrip Travel Easy offers Cape Town - Pilanesberg Tour - 7 Nights / 8 Days tour package, budget Forts and Palaces tour packages for Cape Town at exciting price.";i:4;s:409:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Cape Town"        
		                 },
		      "description": "",
		      "name": "Cape Town - Pilanesberg Tour",
		      "telephone": "+91-9555999290"
		    }
		    </script>
			";i:5;N;}