a:6:{i:0;s:27632:"				<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-->				
									<div class="h1"><h1>South Africa - 7N/8D Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.marutiyatra.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.marutiyatra.com/packages.htm" title="Packages">Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>South Africa - 7N/8D Package</p> 
									
						<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> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Cape Town, Johannesburg</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="https://www.marutiyatra.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="South Africa - 7N/8D Package - 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="118203"/>
						</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_17/510000/191747.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/510000/191747.jpg"  width="150" height="150"    alt="South Africa - 7N/8D Package" title="South Africa - 7N/8D Package" /></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>
													
								SIGHTSEEING AND EXCURSIONS Cape Town:<br />
Visit Table Mountain – one of the Natural Wonders of the World.<br />
Guided city tour including Houses of Parliament.<br />
District Six, GreenMarket Square, Clifton and Sea Point.<br />
Enjoy a Boat cruise at the Victoria and Alfred Waterfront.<br />
Kirstenbosch Botanical Gardens.<br />
Full Day tour to the Cape of Good Hope.<br />
Cruise to Hout Bay.<br />
View the Jackass penguins at Boulders Beach.<br />
Simon's Town.<br />
<br />
Knysna:<br />
Visit Dias Museum and Post Office Tree via Mossle Bay.<br />
Enjoy the Knysna sunset cruise.<br />
Oudtshoorn: Visit the Ostrich Farm.<br />
Crocodile Enclosure.<br />
Cango Caves.<br />
Cheetah Ranch.<br />
<br />
Johannesburg:<br />
Orientation City Tour.<br />
Gold Reef city tour.<br />
<br />
ACCOMMODATION<br />
1 Night accommodation at Sun City Main or similar in Sun City.<br />
1 Night accommodation at Peermont Mondior Hotel or similar in Johannesburg.<br />
2 Nights accommodation at Knysna Quays or similar in Knysna.<br />
3 Nights accommodation in Hotel Southern Sun or similar in Cape Town.<br />
<br />
MEALS<br />
Daily English breakfast.<br />
7 Indian Jain / vegetarian / non-vegetarian dinners.<br />
<br />
AIRFARE<br />
Return economy class air fare to South Africa.<br />
<br />
AIRFARE<br />
Return economy class air fare to South Africa.<br />
<br />
VISA<br />
Visa cost includes documentation and processing as of 20 June, 2013<br />
<br />
TICKET TAXES<br />
All ticket taxes and government taxes levied as per 20 June 2013.<br />
<br />
MEDICAL INSURANCE<br />
Medical Insurance for the duration of the tour is included in the tour price. However, any passengers above the age of 60 years and those who wish to extend their stay will be required to pay additional charges.For those who wish to travel before the published departure date, mentioned in the brochure or wish to return back on later date after the tour ends an additional charge of minimum INR 5,000 per person per day will be applicable. The exact additional charge will be advised to you on confirmation of the deviation date.<br />
The tour cost is in exclusion to POE, passport charges and the cost of vaccination.<br />
Basic Travel Quota cost is equivalent to USD 10,000.<br />
Increase in airfare by the airline on your air ticket will be charged as presently the airfare is calculated based on July 2013 rates.<br />
Any increase in the rate of exchange leading to increase in surface transportation and land arrangements which may come into effect prior to departure.<br />
The tour price is subject to increase without notice if this rate of exchange changes substantially prior to departure.<br />
Any expenses of personal nature such as laundry, wines, mineral water, food and drink not in the regular menus provided by us.<br />
Tips to hotel waiters, drivers, etc.<br />
Meals are pre-set and a choice of menu is not available.<br />
Cost of excursions, city sightseeing, entrance fees and local guides availed of by the passengers, not mentioned in the itinerary.								</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">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.<br />
<br />
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 />
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 />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<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">Exclusions</p>
								</div>
								
								<ul><li>For those who wish to travel before the published departure date, mentioned in the brochure or wish to return back on later date after the tour ends an additional charge of minimum INR 5,000 per person per day will be applicable. The exact additional charge will be advised to you on confirmation of the deviation date.</li><li>
The tour cost is in exclusion to POE, passport charges and the cost of vaccination.</li><li>
Basic Travel Quota cost is equivalent to USD 10,000.</li><li>
Increase in airfare by the airline on your air ticket will be charged as presently the airfare is calculated based on July 2013 rates.</li><li>
Any increase in the rate of exchange leading to increase in surface transportation and land arrangements which may come into effect prior to departure.</li><li>
The tour price is subject to increase without notice if this rate of exchange changes substantially prior to departure.</li><li>
Any expenses of personal nature such as laundry, wines, mineral water, food and drink not in the regular menus provided by us.</li><li>
Tips to hotel waiters, drivers, etc.</li><li>
Meals are pre-set and a choice of menu is not available.</li><li>
Cost of excursions, city sightseeing, entrance fees and local guides availed of by the passengers, not mentioned in the itinerary.</li></ul>
								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<p><strong>NOTE:</strong>

<ul>
	<li>Pay a nominal amount of tip to the USD 5 per person per day as to the guides and drivers for the services rendered by them.</li>
	<li>Porterage of 1 bag per person at the hotels only included.</li>
</ul>

<p><strong>VISA REQUIREMENTS</strong>

<ul>
	<li>Single entry South Africa Visa.</li>
</ul>

<p><strong>VISA REQUIREMENTS</strong>

<ul>
	<li>A minimum of 8 full-paying passengers travelling together are necessary for the group to operate. In case 2-7 full paying passengers travelling together they will be required to pay additional FIT supplement applicable for the same.</li>
	<li>The tour will be operated on seat-in-coach basis, for group strength of 2-19 adults.</li>
	<li>During the tour the services of Tour Manager are availed by a group of minimum 20 full-paying passengers. While the local representative will assist you if the over requirements are not met by you.</li>
</ul>

<p><strong>NOTE:</strong>

<ul>
	<li>The itinerary may be re-routed for certain departures. But all the sightseeing and inclusion will remain the same. Please check with your respective local sales office or travel agent for the exact dates from the hub cities.</li>
	<li>Surcharge is applicable on certain departure dates for Christmas/ Chinese New Year/ Diwali/ Local events</li>
</ul>								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.marutiyatra.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="South Africa - 7N/8D Package - 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="118203"/>
						</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="https://www.marutiyatra.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(30)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-rudraprayag.htm" title="Packages in Rudraprayag">Rudraprayag</a> <b class="alpha50 bn small">(29)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-uttarkashi.htm" title="Packages in Uttarkashi">Uttarkashi</a> <b class="alpha50 bn small">(28)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-garhwal.htm" title="Packages in Garhwal">Garhwal</a> <b class="alpha50 bn small">(27)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-haridwar.htm" title="Packages in Haridwar">Haridwar</a> <b class="alpha50 bn small">(22)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-chamoli.htm" title="Packages in Chamoli">Chamoli</a> <b class="alpha50 bn small">(21)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-rishikesh.htm" title="Packages in Rishikesh">Rishikesh</a> <b class="alpha50 bn small">(18)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-auli.htm" title="Packages in Auli">Auli</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/packages-in-nepalgunj.htm" title="Packages in Nepalgunj">Nepalgunj</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-lucknow.htm" title="Packages in Lucknow">Lucknow</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-ganderbal.htm" title="Packages in Ganderbal">Ganderbal</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-agra.htm" title="Packages in Agra">Agra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-dehradun.htm" title="Packages in Dehradun">Dehradun</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-kumarakom.htm" title="Packages in Kumarakom">Kumarakom</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-ahmedabad.htm" title="Packages in Ahmedabad">Ahmedabad</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-kullu.htm" title="Packages in Kullu">Kullu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-somnath.htm" title="Packages in Somnath">Somnath</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.marutiyatra.com/packages-in-khajjiar.htm" title="Packages in Khajjiar">Khajjiar</a> <b class="alpha50 bn small">(2)</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="https://www.marutiyatra.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(26)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(56)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.marutiyatra.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(5)</b></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:67:"Book South Africa - 7N/8D Package - 7 Nights / 8 Days Tour Packages";i:2;s:130:"book south africa - 7n/8d package - 7 nights / 8 days tour packages, heritage tour packages, cape town, johannesburg tour packages";i:3;s:174:"Book South Africa - 7N/8D Package - 7 Nights / 8 Days tour packages from Maruti Yatra - Get attractive 7 Nights / 8 Days Heritage  tour packages for  Cape Town, Johannesburg.";i:4;s:3219:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Cape Town, Johannesburg"        
		                 },
		      "description": "SIGHTSEEING AND EXCURSIONS Cape Town:
Visit Table Mountain – one of the Natural Wonders of the World.
Guided city tour including Houses of Parliament.
District Six, GreenMarket Square, Clifton and Sea Point.
Enjoy a Boat cruise at the Victoria and Alfred Waterfront.
Kirstenbosch Botanical Gardens.
Full Day tour to the Cape of Good Hope.
Cruise to Hout Bay.
View the Jackass penguins at Boulders Beach.
Simon's Town.

Knysna:
Visit Dias Museum and Post Office Tree via Mossle Bay.
Enjoy the Knysna sunset cruise.
Oudtshoorn: Visit the Ostrich Farm.
Crocodile Enclosure.
Cango Caves.
Cheetah Ranch.

Johannesburg:
Orientation City Tour.
Gold Reef city tour.

ACCOMMODATION
1 Night accommodation at Sun City Main or similar in Sun City.
1 Night accommodation at Peermont Mondior Hotel or similar in Johannesburg.
2 Nights accommodation at Knysna Quays or similar in Knysna.
3 Nights accommodation in Hotel Southern Sun or similar in Cape Town.

MEALS
Daily English breakfast.
7 Indian Jain / vegetarian / non-vegetarian dinners.

AIRFARE
Return economy class air fare to South Africa.

AIRFARE
Return economy class air fare to South Africa.

VISA
Visa cost includes documentation and processing as of 20 June, 2013

TICKET TAXES
All ticket taxes and government taxes levied as per 20 June 2013.

MEDICAL INSURANCE
Medical Insurance for the duration of the tour is included in the tour price. However, any passengers above the age of 60 years and those who wish to extend their stay will be required to pay additional charges.For those who wish to travel before the published departure date, mentioned in the brochure or wish to return back on later date after the tour ends an additional charge of minimum INR 5,000 per person per day will be applicable. The exact additional charge will be advised to you on confirmation of the deviation date.
The tour cost is in exclusion to POE, passport charges and the cost of vaccination.
Basic Travel Quota cost is equivalent to USD 10,000.
Increase in airfare by the airline on your air ticket will be charged as presently the airfare is calculated based on July 2013 rates.
Any increase in the rate of exchange leading to increase in surface transportation and land arrangements which may come into effect prior to departure.
The tour price is subject to increase without notice if this rate of exchange changes substantially prior to departure.
Any expenses of personal nature such as laundry, wines, mineral water, food and drink not in the regular menus provided by us.
Tips to hotel waiters, drivers, etc.
Meals are pre-set and a choice of menu is not available.
Cost of excursions, city sightseeing, entrance fees and local guides availed of by the passengers, not mentioned in the itinerary.",
		      "name": "South Africa - 7N/8D Package",
		      "telephone": "+91-9871390204"
		    }
		    </script>
			";i:5;N;}