a:6:{i:0;s:18322:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Azerbaijan Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.gnholidayz.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.gnholidayz.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Azerbaijan Tour</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<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-->				
								
						<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> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Baku</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="http://www.gnholidayz.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Azerbaijan Tour - 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="189754"/>
						</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_21/610161/297882.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_21/610161/297882.jpg"  height="150"  width="150"    alt="Azerbaijan Tour" title="Azerbaijan Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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> BAKU
										</p>
										<p class="aj">Arrival at Heydar Aliyev International Airport. Meet by local representative.Transfer from Airport to RestaurantLUNCH INRESTAURANT Drive to hotel. Сheck inn Hotel. Free timeProceed to Baku Evening Panoramic Tour Later you will visit Baku Crystal Hall - an indoor arena in Baku, Azerbaijan. Located on the coast of Baku near National Flag Square, construction of the arena began in August 2011 and finished in April 2012—in time for it to host its first major event, the 2012 edition o the Eurovision Song Contest (photo-session from outside)Visit to "LITTLE VENICE" in Baku Boulevard which is a small town built in 1960. The town has two large and several small islands (photo-session from outside) Walking through Baku Boulevard which stretches along a south-facing bay on the Caspian Sea. It traditionally starts at Freedom Square continuing west to the Old City and beyond DINNER IN RESTAURANT</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> CITY TOUR
										</p>
										<p class="aj">Breakfast in Hotel Observation tour to Baku TV Tower - built in 1996, is a free standing concrete telecommunications tower in Baku, Azerbaijan. With a height of 310 metres (1017 ft), it is the tallest structure in Azerbaijan and the tallest reinforced concrete building in Caucasus. The tower has become one of the most prominent landmarks of Baku, often in the establishing shot of films set in the city. (photo-session from outside) Highland Park-Alley of Martyrs, The National Assembly- also transliterated as Milli Majlis, Flame towers- the tallest skyscraper in Baku LUNCH IN RESTAURANTOld City or Inner City is the historical core of Baku, the capital of Azerbaijan. The Old City is the most ancient part of Baku, which is surrounded by walls were well protected. In 2007, the Old City had a population of about 3000 people. In December 2000, the Old City of Baku became the first location in Azerbaijan to be classified as a World Heritage Site by UNESCO. Nizami Street known for shopping. The street's history could be traced back to Baku's town-planning project of 1864. The street runs through the city's downtown from west to east. It begins from Abdulla Shaig Street, in mountainous part of the city and ends at railroad bed on Sabit Orujov Street, near a monument to Shah Ismail Khatai in “Black City”. Total length of the street is 3,538 m. Fountains Square is a public square in downtown Baku, capital of Azerbaijan. The square was previously called Parapet and is often referenced to by the same name now. The name of the fountains square derives from the presence of dozens of fountains throughout the square first constructed during Soviet rule of Azerbaijan.<br />
DINNER IN RESTAURANT</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> FIRE MOUNTIAN + FIRE TEMPLE + HYDER ALIVEY MUSEUM Breakfast in Hotel Drive to FIRE WORSHIPPERS’ TE
										</p>
										<p class="aj">The most famous fire temple is the well-preserved temple Ateshgah ("the Fire Place") in Surakhany, The temple was built over a pocket of natural gas that fuelled a vent providing an 'eternal' fire. Trip to "FIRE MOUNTAIN "-"Yanardag" -a mountain on Absheron peninsula, 25 km from north of Baku. Literally, word "Yanardag" means "Blazing mountain". Blazing bodies of flame dance on stones and floor. Yanardag is a natural gas fire which blazes continuously on a hillside on the Absheron Peninsula on the Caspian Sea near Baku, the capital of Azerbaijan, which itself is known as the "land of fire."Tour starts with the visit to the charming example of modern architecture - The Heydar Aliyev Center - a 57, 500 m2 building complex in Baku, Azerbaijan designed by Iraqi- British architect Zaha Hadid and noted for its distinctive architecture and flowing, curved style that eschews sharp angles. The center is named after Heydar Aliyev, the first secretary of Soviet Azerbaijan from 1969 to 1982, and president of Azerbaijan Republic from October 1993 to October 2003. (photo-session from outside) LUNCH IN INDIAN RESTAURANTOur tour program continue with Bibiheibat Mosque -which a historical mosque in Baku, Azerbaijan. The existing structure, built in the 1990s, is a recreation of the mosque with the same name built in the 13th century by Shirvanshah Farrukhzad II Ibn Ahsitan DINNER IN INDIAN RESTAURANT</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> SHAHDAG
										</p>
										<p class="aj">Breakfast in HotelDeparture to ShadagOn the way observation of Beshbarmag Mountain PACKED LUNCH / LUNCH AT LOCAL RESTAURANT (NON VEG OR LOCAL MEAL)Arrive to Shahdagh. Start to use Shahdagh activities.THE SHAHDAG MOUNTAIN RESORT COMPLEX was open to the public in 2012. It is located in the Azerbaijan's Greater Caucasus range, the site is located near Shahdag National Park, which is known for having an intact ecological system and an untouched flora and fauna. It is the first and largest ski resort in Azerbaijan. Plans for the project include 4-5 star hotels, golf-clubs, 160-180 cottages and other objects in the complex. The winter season in Shahdag begins in the second half of December and finishes at the beginning of April, depending on snow conditions Drive back to Baku DINNER IN RESTAURANT</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> RETURN
										</p>
										<p class="aj">Breakfast in Hotel. Check out HotelTransfer to Airport for return flight</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>EP (No Meal)</li>
																				<li>4 Nights stay with BreakfastMeals (FB – FULLBOARD – 3 Lunches & 4 Dinners in Restaurant) + 1 Local Meal // Packed Food Entrance fees forFire Temple, Fire Mountain, Shahdagh Cable CarE - Visa Charge Professional English speaking guide</li><li>
2 Bottle Water per person per day</li><li>
All transfers according to program includingairport transfers.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Anything not mentioned in inclusions.</li><li>
Porter service	</li><li>
Entrance fees which not mentioned in inclusions Hard drinks Charges in hotels for additional services & penalties.</li><li>
Any additional personsjoining the group at the destination or any of the services will need to payfull land package cost as per this quotation.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.gnholidayz.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Azerbaijan 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="189754"/>
						</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="http://www.gnholidayz.com/munnar-tour-packages.htm" title="Munnar Tour Packages">Munnar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/alleppey-tour-packages.htm" title="Alleppey Tour Packages">Alleppey</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/thekkady-tour-packages.htm" title="Thekkady Tour Packages">Thekkady</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kochi-tour-packages.htm" title="Kochi Tour Packages">Kochi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/hanoi-tour-packages.htm" title="Hanoi Tour Packages">Hanoi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kovalam-tour-packages.htm" title="Kovalam Tour Packages">Kovalam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/baku-tour-packages.htm" title="Baku Tour Packages">Baku</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kakinada-tour-packages.htm" title="Kakinada Tour Packages">Kakinada</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/siem-reap-tour-packages.htm" title="Siem Reap Tour Packages">Siem Reap</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kanyakumari-tour-packages.htm" title="Kanyakumari Tour Packages">Kanyakumari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.gnholidayz.com/ha-long-tour-packages.htm" title="Ha Long Tour Packages">Ha Long</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.gnholidayz.com/male-tour-packages.htm" title="Male Tour Packages">Male</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.gnholidayz.com/hyderabad-tour-packages.htm" title="Hyderabad Tour Packages">Hyderabad</a> <b class="alpha50 bn small">(1)</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="http://www.gnholidayz.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/house-boat-holidays-catid.htm" title="House Boat Packages">House Boat</a> <b class="alpha50 bn small">(1)</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:54:"Book Azerbaijan Tour - 4 Nights / 5 Days Tour Packages";i:2;s:99:"book azerbaijan tour - 4 nights / 5 days tour packages, adventure tour packages, baku tour packages";i:3;s:128:"G N Holidayz offers Azerbaijan Tour - 4 Nights / 5 Days tour package, budget Adventure tour packages for Baku at exciting price.";i:4;s:391:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Baku"        
		                 },
		      "description": "",
		      "name": "Azerbaijan Tour",
		      "telephone": "+91-9052381553"
		    }
		    </script>
			";i:5;N;}