a:6:{i:0;s:10848:"				<div class="h1"><h1>Garden Route & Wineland Wonder 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>Garden Route & Wineland Wonder 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">
						5 Nights / 6 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="Garden Route & Wineland Wonder 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="21205"/>
						</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/38947.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/264226/38947.jpg"  width="150" height="150"    alt="Garden Route & Wineland Wonder Tour" title="Garden Route & Wineland Wonder 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 - Oudtshoorn
								</p>
								<p class="aj">Depart Cape Town And Travel Through The ‘little Karoo’ And Montagu, A Picturesque And Historic Spa Town. En Route, Stop Off In The Town Of Barrydale, Where You Will Have The Opportunity To Visit A Local Farm School, Interact With The Children And Teachers, Spending Time With Them In The Classroom Learning More About The Local Farming Community, Before Continuing To Oudtshoorn, The “ostrich Feather Capital” And Center Of The World’s Ostrich Farming Industry. (The School Visit Is Subject To School Being Opened). Overnight In Oudtshoorn.</p>					
									<p><b>Meals : </b> 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 2:</b> Oudtshoorn
								</p>
								<p class="aj">After Breakfast Take A Tour Of The Spectacular Limestone Caverns Of The Cango Caves, One Of The World’s Great Natural Wonders, Sculpted By Nature Through The Ages. Afterwards, Ascend The Swartberg Mountains Via The World Renowned Swartberg Pass (Weather Permitting). Get Close To Nature And Explore The Spectacular Sandstone Formations Dating Back More Than 300 Million Years. Feast Your Eyes On The Full Splendour Of Diverse "fynbos" Species Ranging From Various Protea Species As Well As "cone Bush" And "pin Cushions". Return To Oudtshoorn For A Tour And Light Lunch At An Ostrich Farm.Overnight In Oudtshoorn.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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> Oudtshoorn - Knysna
								</p>
								<p class="aj">After Breakfast, Travel Over The Scenic Outeniqua Pass To George, The Administrative Hub Of The Garden Route Area And Then Onto Knysna, Known As The Oyster Box Of South Africa, Nestling On The Banks Of A Beautiful Lagoon In The Heart Of The Garden Route. Enjoy A Lagoon Cruise To The Featherbed Nature Reserve, Where You Can Take A Trailer Ride To The Top Of The Western Head To Enjoy Panoramic Views Of The Town And Lagoon, Returning For Lunch Under The Milkwood Trees. The Afternoon Is At Leisure To Further Explore This Charming Town Set Around A Natural Harbour Lagoon.Overnight In Knysna.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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">After A Leisurely Breakfast, Drive Through The Tsitsikamma Forests, Continuing To Bloukrans Bridge, The <br />
Highest Single Span Arch Bridge In The World, Currently Offering The Highest Commercially Operated Bungy Jump In The World. Explore This Breathtaking Stretch Of The Garden Route, Where Mountains, Indigenous Forests, Deep Gorges, And Lush Vegetation Hug The Rugged Coastline Of Cliffs And Sandy Beaches. Here Is An Abundance Of Indigenous Flora, Ancient Yellow wood Trees And Magnificent Fynbos Plants. In The Afternoon You’ll Return To Knysna, Via Plettenberg Bay, Originally Christened "Bahia Formosa" (Beautiful Bay) By Early Portuguese Explorers. The Highlight Of The Area Is Undoubtedly The Rivers, Beaches And The Bay With Its Ideal Conditions For All Facets Of Water sports, Including Sailing In The Safe Waters Of The Bay, Superb Rock And Surf Fishing And Scuba Diving Spots. Overnight In Knysna.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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> Knysna - Hermanus
								</p>
								<p class="aj">Today, Begin The First Leg Of The Return Journey. Travel Via George And Mossel Bay To The Picturesque Cape Dutch Town Of Swellendam, Where Lunch Will Be Enjoyed. This Charming Town Was Founded In 1745 At The Foot Of The Langeberg Mountain Range And Is Famous For Its Youngberries, Eclectic Architecture And National Parks, As Well As Outdoor Activities. Our Journey Further Continues To The Seaside Resort Of Hermanus, Known As The Heart Of The Whale Route, Offering The Best Land Based Whale Watching (Aug-Nov) In The World. Overnight In Hermanus.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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> Hermanus - Cape Town
								</p>
								<p class="aj">After A Leisurely Breakfast Depart Hermanus And Continue To Somerset West, Traveling Via The Scenic Coastal Road To Gordon'S Bay. This Is A Spectacular Route With Steep Cliffs And Lovely Coves. Locals Label It As The Helderberg Areas Own "Chapman's Peak" Drive And The Route Offers Amazing Views Over False Bay. Travel To The Stellenbosch Area, Set Within The Scenic Cape Wine Lands. This “heart Of Cape Heritage And Hospitality” Is A Gracious Blend Of Old Cape Dutch, Georgian And Victorian Architecture. A Wine Tasting Will Be Enjoyed, Before Travelling To Cape Town, Where The Tour Ends On Arrival. [B]. Passengers May Disembark, On Request, At Cape Town International Airport.</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>Sightseeing</li>
																		<li>Transport</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>Rooms Are Double/Twin Sharing Basis. Kids Below 8 Years Not Allowed For This Tour. Kids 12 Years And Older Will Pay Full Adult Rate - No Child Discount. Rooms And Rates Are Subject To Availability. Rates May Change Without Prior Notice. Air Fares Are Not Included. South Africa Holidays Terms &amp; Conditions Apply.												</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="Garden Route & Wineland Wonder 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="21205"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Garden Route & Wineland Wonder Tour - 5 Nights / 6 Days Tour Packages";i:2;s:132:"book garden route & wineland wonder tour - 5 nights / 6 days tour packages, beach and islands tour packages, cape town tour packages";i:3;s:168:"Skytrip Travel Easy offers Garden Route & Wineland Wonder Tour - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Cape Town at exciting price.";i:4;s:416:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Cape Town"        
		                 },
		      "description": "",
		      "name": "Garden Route & Wineland Wonder Tour",
		      "telephone": "+91-9555999290"
		    }
		    </script>
			";i:5;N;}