a:6:{i:0;s:11286:"				<div class="h1"><h1>Delightful South Africa 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>Delightful South Africa 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, Johannesburg</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="Delightful South Africa 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="114788"/>
						</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/187325.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/422826/187325.jpg"  width="150" height="150"    alt="Delightful South Africa Tour" title="Delightful South Africa 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">After arriving at the Cape Town airport, meet our tour representative who helps you with an assisted transfer to your pre-booked hotel. The rest of the day is free. After a special dinner, retire to the comforts of your home for an 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
								</p>
								<p class="aj">Day 2, post breakfast, proceed for visiting the major tourist attractions of Cape Town. Proceed for going aboard the Table Mountain Cable Car 3600 (Note: Subjected to weather conditions). During the ride, you enjoy a spectacular view of the city and coastline. Later, the Kirstenbosch Botanical Gardens. Next in line is visit to the well-known Victoria and the Alfred waterfront, one of the most-visited tourist attractions of Cape Town where one can indulge in shopping and guided boat cruise, GreenMarket square- a historical square, District Six. You can take a leisurely walk in the company gardens. Drive past popular buildings like the Houses of the Parliament, the Castle, the City Hall and Slave Lodge. The last visit is to the market to indulge in shopping at the Canal Walk Shopping Centre. Overnight stay followed by a sumptuous dinner.</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 of Good Hope
								</p>
								<p class="aj">Have your breakfast on day 3 and later leave for a day’s excursion to the Cape of Good Hope. Drive through Ou Kaapse Weg and the Atlantic Coast to arrive at Cape Point where the Atlantic and the Indian Ocean meet. Enjoy the spectacular view. Later, enjoy a glass bottom boat cruise towards Hout Bay to reach the Seal Colony (Note: Subjected to weather conditions). During the return cruise, along the False Bay Coast, to view the Jackass penguins found at the Boulders Beach. Later, halt at the Simon’s Town, a beautiful town that is also an important Naval base. Post dinner, stay overnight in Cape Town.</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> Knysna
								</p>
								<p class="aj">Post breakfast, check-out of your hotel and proceed for Knysna through Mossel Bay, a harbor town. Visit the Bartolomeu Dias Museum complex, the largest of the museums in this town.  Next in line is a visit to the Post Office Tree – a book- shaped post box under the tree, which is a national heritage site. Continue to Knysna. On arrival, complete the check-in formalities at the hotel after which you leave for the memorable sunset cruise. Have dinner. Night stay in Knysna.</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> Oudtshoorn
								</p>
								<p class="aj">After breakfast, leave for Oudtshoorn, a town housing the world's largest ostrich population. To reach ‘the Feather Capital of the World’, set in a semi-arid valley, you drive past, the Wine lands along the Breede River. Visit the famous Cango Caves, to view the stalactite and stalagmite formation is a spectacular sight.<br />
<br />
The next visit of the day is the Ostrich Farm to enjoy shows performed by the well-trained birds. You can indulge in the various interesting activities like riding an ostrich or breaking an ostrich egg, a tough task. You also have the opportunity to ride this magnificent bird and try your luck at breaking an, which is an impossible task. Thereafter, drive to Cango Wildlife Ranch, popular as Cheetah Ranch. Spot the beauty of the fastest animal of the world. Also visit the Crocodile Enclosure to spot natural-born predators. Continue your journey to back to Knysna. On arrival, check-in your pre-booked hotel for dinner and an 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 6:</b> Johannesburg-Sun City
								</p>
								<p class="aj">After breakfast, get on-time transfer to the airport to board a flight to Johannesburg. On arrival get transferred to the Sun City, rightly called the man-made wonder of the world. The place is popular as a city that never sleeps. Enjoy the rocking life of the city, the sights and the sounds of this lively place. Indulge in dancing at the popular clubs or try your luck at the casinos. The day is at leisure, you can spend in the way you want to. After dinner, overnight stay in the Sun 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 7:</b> Johannesburg
								</p>
								<p class="aj">Have breakfast and return to Johannesburg. On arrival, check-in formalities at your pre-booked hotel.  Proceed for a city tour of Johannesburg followed by the tour of the Gold Reef city tour. After a fun-filled day, have dinner and retire in the comfort of your room for good night’s sleep in Johannesburg.</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">Post breakfast at the hotel, get transferred to the Johannesburg International Airport to board the flight back home.</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="Delightful South Africa 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="114788"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Delightful South Africa Tour - 7 Nights / 8 Days Tour Packages";i:2;s:130:"book delightful south africa tour - 7 nights / 8 days tour packages, heritage tour packages, cape town, johannesburg tour packages";i:3;s:171:"India Reisebuero Pvt Ltd offers Delightful South Africa Tour - 7 Nights / 8 Days tour package, budget Heritage tour packages for Cape Town, Johannesburg at exciting price.";i:4;s:423:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Cape Town, Johannesburg"        
		                 },
		      "description": "",
		      "name": "Delightful South Africa Tour",
		      "telephone": "+91-9958322133"
		    }
		    </script>
			";i:5;N;}