a:6:{i:0;s:10706:"				<div class="h1"><h1>Taste Of Turkey Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rajastravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rajastravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Taste Of Turkey 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Istanbul</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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Taste Of Turkey 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="66342"/>
						</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_13/370602/121702.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/370602/121702.jpg"  height="150"  width="150"    alt="Taste Of Turkey Tour" title="Taste Of Turkey 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> Istanbul - Arrival Day
								</p>
								<p class="aj">Meet at the airport and transfer to your hotel. You will be given your room key and the rest of the day is yours to explore Istanbul. Overnight in Istanbul.</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> Istanbul City Tour
								</p>
								<p class="aj">Pick up at 08:30am from your hotel for the a day tour of old Istanbul city. Visit to ST. SOPHIA This ancient basilica, built by Constantine the Great in the 4th century and reconstructed by Justinian in the 6th century, is one of the architectural marvels of all time. TOPKAPI PALACE The great palace of the Ottoman sultans from the 15th to the 19th centuries housing an exquisite collection of cyrstal, silver, and Chinese porcelain, robes worn by the sultans and their families, the famous jewels of the Imperial Treasury, miniatures, the Holy Mantle; enshrining relics of the Prophet Mohammed. SULTANAHMET IMPERIAL MOSQUE Across from St. Sophia built in the 16th century by the architect Mehmet, is known as the BLUE MOSQUE because of its magnificent interior decoration of blue Iznik tiles. HIPPODROME Ancient Hippodrome, the scene of chariot races, with the three monuments; the Obelisk of Theodosius, the bronze Serpentine Column and the Column of Constantine. Lunch break at 13:00pm after the lunch Murtis Tour will then take you to the GRAND COVERED BAZAAR In this labyrinth of streets and passages are more then 4, 000 shops with each trade having its own area: the goldsmiths street, the carpet sellers, Turkish arts and crafts, such as handpainted ceramic plates, hand - honed copperware, brassware and trays, water ewers, onyx - ware and meerschaum pipes. After the tour, transfer back to your hotel. Overnight in Istanbul. Please Note: Hagia Sophia is closed on mondays, Topkapi Palace closed on tuesdays, Grand Bazaar closed on sundays. If your tour is on one of these days we would offer you to visit Underground Cistern instead of Hagia Sophia and Topkapi palace museum, instead of Grand Baazar you will visit Spice Bazaar.</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> Istanbul Bosphorus Cruise and Istanbul to Cappadocia
								</p>
								<p class="aj">After breakfast depart for Bosphorus Cruise tour. Enjoy a magical Istanbul Bosphorus Boat Cruise and Spice Market Tour starting at 08:30. Enjoy the array of sites you can see from the boat including: SPICE BAZAAR (Egyptian Bazaar). BOSPHORUS BY BOAT a traditional excursion by boat along the waterway separating Europe and Asia.. Lunh break at the Turkish restaurant. After the lunch depart for Istanbul Ataturk airport for domestic flight to Cappadocia. Transfer from airport and check in to your hotel in Cappadocia. Overnight in Cappadocia.</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> Cappadocia Tour
								</p>
								<p class="aj">Today we will get to know the Cappadocia region, a volcanic area in which the geological formation started 10 million years ago. As a result of these formations phallic like pillars have come to life. The beautiful horse country Katpatuka, (as the Persians called her) is an unbelievable strip of land, enchanting and mysterious. Cappadocia region is also famous for its arts, including ceramic and carpets. You will be picked up approximatley 09:30 from your hotel to join our regular tour. Tour starts with Uchisar Castle, the highest point of Cappadocia. After Uchisar, you visit Goreme Open Air Museum, the Heart of Cappadocia. Goreme Open Air Museum is famous for frescoes dating to 10th century describing the life of Jesus Christ and monks. Next stop is Cavusin, which is an abandoned village with old cave Greek houses. After Cavusin you go to the restaurant in Avanos to have lunch. After lunch, you visit a pottery work shop, to see how to make potteries. Then you go Pasabagi where you can see three - headed fairy chimneys. After Pasabagi you visit another workshop to see Cappadocian handwoven carpets and kilims. Next stop is Devrent Valley, which is also called Imagination Valley, where you can see natural rock formations looking like animals. Then you head to a wineshop in Urgup for wine tasting. Last stop is Three Beauties, three beautiful fairy chimneys with their hats, which is the symbol of Cappadocia. This tour will end approximately 18:00 and you will be returned back to your hotel. Overnight in Cappadocia. If you do not have Capadocia pass, you can stay at the hotel or you can also buy one of our optional daily tours, wich are more than 15 different options.</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> Cappadocia to Istanbul - End of Tour
								</p>
								<p class="aj">After breakfast you will have free time shopping in Cappadocia. Today we depart for Kayseri airport for our domestic flight to Istanbul and then back to home. We hope your tour was a memorable one and we would like to see you in the future in one of our tours again. Have a nice trip back home and thanks for choosing us.</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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Taste Of Turkey 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="66342"/>
						</form>
						</div>
						
						";i:1;s:59:"Book Taste Of Turkey Tour - 4 Nights / 5 Days Tour Packages";i:2;s:107:"book taste of turkey tour - 4 nights / 5 days tour packages, heritage tour packages, istanbul tour packages";i:3;s:137:"RAJAS TRAVELS offers Taste Of Turkey Tour - 4 Nights / 5 Days tour package, budget Heritage tour packages for Istanbul at exciting price.";i:4;s:400:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Istanbul"        
		                 },
		      "description": "",
		      "name": "Taste Of Turkey Tour",
		      "telephone": "+91-9820123553"
		    }
		    </script>
			";i:5;N;}