a:6:{i:0;s:11120:"				<div class="h1"><h1>Goa Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.jstourstravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.jstourstravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Goa Package</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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Panaji, Goa City</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.jstourstravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Goa 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="65529"/>
						</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/434756/120726.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/434756/120726.jpg"  width="150" height="150"    alt="Goa Package" title="Goa Package" /></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> Delhi - Goa
								</p>
								<p class="aj">Morning take a flight to Goa , On reaching Goa airport, meet our  representative who assists while you take a transfer to the resort. On completing the check-in formalities, take some rest for the day. In the evening, you can go to enjoy a stroll around the beach or indulge in your favorite beach activity. Stay overnight at the hotel.</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> North Goa
								</p>
								<p class="aj">This morning, you have your breakfast and then start driving towards North Goa. North Goa is dotted with some of the most beautiful beaches of Goa. Dona Paula, Calangute, Baga and Miramar Beach are popular beaches of North Goa. North Goa is home to a number of tourist attractions like Fort Aguada, Basilica of Bom Jesus and Se Cathedral.<br />
Spend the day sightseeing around North Goa. You can begin with a visit to "Cidade de Goa", the original name given to the ‘city of Goa’ which was established long back and now it is called "Old Goa". Pay homage at the Basilica Bom Jesus, which is dedicated to Infant Jesus. The church has the sacred remains of St Francis Xavier. Also, visit other churches of North Goa including St Cajetan, St Francis of Assisi, Se Cathedral and Church of St. Monica. All the churches feature a unique architectural style which speaks much about the heritage and craftsmanship of those times.<br />
Visit the Museum of Christian Art, which is one of its kind museum in Asia. The museum is best known to house a collection of items like gold and precious stones and Rosary's. You can also visit Archeological Museum.<br />
Later, travel to “Solar Souto Maior”, which is an aristocratic mansion which dates back to the year 1585. The mansion houses a treasure of artifacts.<br />
Return to Panjim, the capital of Goa and as you drive through the city enjoy viewing its unique colonial architecture. Walk through the city and flip back the pages of the Portuguese days. Do visit the bustling markets of Goa and shop for gifts and souvenirs. Enjoy your lunch at Panjim.<br />
Post lunch, head to Baga Beach, which is one the most popular, happening and beautiful beaches of Goa. Enjoy water sports and then you can go for some shopping at the Tibetan market.<br />
Stay overnight at the hotel.</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> South Goa
								</p>
								<p class="aj">After having your breakfast, head towards South Goa. Today, you will be sightseeing at major attractions of South Goa including Colva Beach, Mangeshi Temple, Santa Durga Temple and some more attractions. Begin with a visit to Margao, the capital of Salcette taluka and headquarters of the South Goa district.<br />
Visit the historical “Largo de Igreja”, the Church square of Margao, which once used to be its colonial quarter. The church square is dotted with beautiful old buildings on one side and the beautiful Church of the Holy Spirit on the other. The Church of the Holy Spirit is one of the most grant churches of Goa, which was built back in the year 1564. The church is one of the finest examples of Indian Baroque style of architecture.<br />
Later proceed to “Ancestral Goa”, which is a re-creation of Goan rural life. The village has number of artifact centers, art galleries and open air museums. There is a laterite sculpture of Saint Mirabai in the village, which is one of the longest laterite sculptures in India. The star attraction of the region is the “big foot”, which is a large foot print which was discovered on a rock while excavating the site.<br />
Now it’s time to visit the grand house- Menezes Braganza house, in Chandor. This palatial structure was built back in the 17th century. The house has now been divided into two separate houses, with a common entrance. The east wing is occupied by the Pereira-Braganza family, which has a small chapel with relics of St. Francis Xavier. It also has artifacts, collected by the family over a number of years. The house also has a large ballroom and a Salon. Tiles from Portugal, antique chandeliers from Europe and beautifully carved, ornate rosewood furniture adds to the beauty of the house. A few things which give a distinct look to the house include a pair of high-backed chairs, which has the family crest, which was given to the Pereira-Braganza family by King Dom Luis of Portugal. Most of the furniture items set in the house date back to the 18th century and have been prepared using local seeso (martel wood) and lacquered with mother of pearl by craftsmen from Curtorim village. The house also has many items coming from antique aficionados.<br />
The west wing of the house belongs to the Menezes Braganza family. The house not only features exquisite furniture and Chinese porcelain from Macau, but also a collection of family portraits, which date back to the 17th and 18th centuries. There is also a library which is believed to be the first private library of Goa. The library has a collection of 5,000 leather bound books which were personally collected by Luis de Menezes Braganza (1878-1938), a reputed journalist, well-known for playing a key role in Goa’s independence movement.<br />
After the long sightseeing tour of South Goa, head back to the hotel. Stay overnight at the hotel.</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> Goa - Delhi
								</p>
								<p class="aj">This is the last day of the Goa tour. Munch some delicious breakfast and then check out of the hotel. Start driving towards the airport and on reaching, board your flight to home. The tour ends here.</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>
																		<li>Transfers</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.jstourstravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Goa 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="65529"/>
						</form>
						</div>
						
						";i:1;s:50:"Book Goa Package - 3 Nights / 4 Days Tour Packages";i:2;s:126:"book goa package - 3 nights / 4 days tour packages, beach and islands tour packages, new delhi, panaji, goa city tour packages";i:3;s:163:"JS Tours and Travels offers Goa Package - 3 Nights / 4 Days tour package, budget Beach and Islands tour packages for New Delhi, Panaji, Goa City at exciting price.";i:4;s:410:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Panaji, Goa City"        
		                 },
		      "description": "",
		      "name": "Goa Package",
		      "telephone": "+91-9227522144"
		    }
		    </script>
			";i:5;N;}