a:6:{i:0;s:23136:"				<div class="h1"><h1>Mediterranean Voyage - Summer 2016 Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.grandindiatrip.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.grandindiatrip.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Mediterranean Voyage - Summer 2016 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">Tour Code </td>
						<td class="p5px pl0px vat">Duniya Dekho - Europ</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Barcelona, Naples, Rome, Olbia, Livorno, Toulon</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 108595 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Guided panoramic Highlight City Tour of Rome : Arch of Constantine, Piazza Venezia, Circus Maximus, Roman Forum, Trevi Fountain, Colosseum.<br />
Hotels Info<br />
<br />
City	Hotel Name<br />
Onboard Cruise	<br />
Breeze Of The Mediterranean Cruise Or Similar</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mediterranean Voyage - Summer 2016 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="62294"/>
						</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/257644/116402.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/257644/116402.jpg"  width="150" height="150"    alt="Mediterranean Voyage - Summer 2016 Tour" title="Mediterranean Voyage - Summer 2016 Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Enjoy a vacation which is more than a cruise, a captivating adventure unlike any other. A rich mosaic of sights, from the sun-washed beaches of the Riviera to the magnificent antiquities of Rome. Relax and have fun as you sail to a mix of destinations with the loveliest features. It's a complete holiday.<br />
<br />
All 'must see' sights covered.<br />
Easy Travelling, Smooth Sailing - On a Cox & Kings holiday you can just relax and we'll take care of everything.<br />
First Class Service - From location, service, to ambience, every detail is looked into, to ensure that your stay is an enjoyable one.<br />
Great Meals - Stimulate your palate with a wide array of Indian dishes carefully selected and flavoured with authentic ingredients and spices.<br />
Sightseeing That Takes Your Breath Away - Enjoy the scenic journey through Europe with its ever changing landscape - from bustling cosmopolitan cities to tranquil lakes and alpine mountains. We offer a terrific holiday value that's impossible to match!<br />
Fabulous Optionals, Great Prices - You can design the holidays of your choice from the plethora of options before you.<br />
Enjoy the Ocean: If watching the sea is relaxing, imagine doing so from a Jacuzzi.<br />
Get Fit Onboard: You can do as much exercise as you want in the fitness facilities.<br />
Spectacular Nights: Every night on a Pullmantur Cruise is a spectacular one with musicals, live music and theme parties in the Broadway Theatre.<br />
Cuisine: An excellent cruise is inconceivable without excellent cuisine. The quality of the ingredients is essential for everything to turn out perfectly.<br />
Spa del Mar: There is a Spa del Mar onboard every Pullmantur ship with a professional staff.Guided panoramic Highlight City Tour of Rome : Arch of Constantine, Piazza Venezia, Circus Maximus, Roman Forum, Trevi Fountain, Colosseum.<br />
Hotels Info<br />
<br />
City	Hotel Name<br />
Onboard Cruise	<br />
Breeze Of The Mediterranean Cruise Or SimilarServices of Cox & Kings Tour Manager or Local Representative.<br />
An additional amount of INR 1,500 is to be compulsorily paid by way of "Secure your Booking Amount".<br />
Optional & Add-On tours unless mentioned otherwise.<br />
Cost of US $ 2,50,000 granted by the Reserve Bank of India under the Liberalised Remittance Scheme.<br />
Any increase in the airfare / taxes / routing charged by the airlines for ticket (presently calculated on 14th Aug 2015)<br />
Airline and Hotel surcharges (if applicable) during high / festive season to be paid extra per person.<br />
Cost of extension of validity or deviation of your air ticket.<br />
Any increase in Rate of Euro leading to an increase in Tour Cost coming into effect prior to departure. However, the rate prevailing on the given day of payment will apply.<br />
Porterage at hotels, apartment, airports and seaports, tips, laundry, wines, mineral water, telephone charges, all items of personal nature and also food and drinks not forming part of the touring group's menu.<br />
Medical test and Premium cost of your Overseas Travel Insurance policy valid for passengers above 70 years of age.<br />
Anything not specifically mentioned in 'What Your Tour Price Includes' box.<br />
Government Service Tax 4.50% on gross bill, effective from 1st June 2016.<br />
Port Handling charges of Euro 190 per person.<br />
Gratuities / Administration and Service Fee (To be paid directly on board the cruise15-0630-09<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> Arrive Rome
								</p>
								<p class="aj">Drive to Rome for a short visit to the "Eternal City". The truth of the oft quoted adage 'Rome was not built in a day'- hits you with full force, as we pack in all the 'must see' agenda into our guided panoramic highlight city tour!<br />
According to legend, Rome was founded by Romulus and Remus in 753 BC.<br />
Start your guided introduction to Rome with a visit to the famous Trevi Fountain (under renovation). Legend has it, that if you make a wish and toss a coin over your left shoulder into the fountain, you are sure to return to Rome! We at Cox & Kings look forward to that!<br />
Pay tribute to the brave Gladiators of Rome, with a photo stop at the mighty Colosseum. At this amphitheatre, the notorious and gory gladiatorial games were held, where they fought with one another and wild animals while the crowd roared!<br />
See the triumphal Arch of Constantine, one of the most important commemorative monuments of antiquity and then drive through Piazza Venezia, the main square in Rome, where the grandiose monument to the reunification of Italy is often referred to as the Marble wedding cake!<br />
Pass the Circus Maximus - the Hippodrome - known for its ancient chariot races, which was reconstructed by Hollywood for 'Ben Hur' !<br />
Pass the ruins of the Roman Forum and end the tour with a journey to The Vatican the smallest nation in the world! It boasts a priceless art collection and is probably per square foot the richest country in the world! <br />
The most famous square of the Vatican is St. Peter's Square on which is situated the St. Peter's Basilica (visit when open to visitors), the spiritual centre of Christendom.<br />
After an exciting tour, relax as you drive to board your 8 day cruise (check in 1600 hrs). Once on board your cruise liner its non-stop fun.<br />
Note: Due to Rome city regulations, certain roads may be off limits for long distance coaches. This may result in the sightseeing being done partly by foot / public transport.<br />
Overnight onboard the cruise.</p>					
									<p><b>Meals : </b> Dinner on board the cruise.</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> Onto Livorno
								</p>
								<p class="aj">Today as your cruise docks in Livorno you can choose from the many shore excursions and book the excursions on your own at the cruise excursion desk.<br />
You also have the option of staying on board the cruise and enjoying the onboard facilities.<br />
Overnight onboard the cruise.<br />
Full Board on the cruise.</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> Onto Toulon
								</p>
								<p class="aj">In Toulon today book shore excursions on your own at the cruise excursion desk or stay and enjoy the onboard facilities.<br />
Overnight onboard the cruise.<br />
Full Board on the cruise.</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> Onto Barcelona
								</p>
								<p class="aj">Board your coach to enjoy the very best of Barcelona as you explore the Gothic Quarter and spend some free time shopping.<br />
First stop at the city's most well-known symbol, La Sagrada Familia, for a chance to take some photographs. Work began on the construction of this sanctuary of a thousand needles over 100 years ago and is still on-going today. Ever since the Barcelona Olympics in 1992, the temple has become an emblem of the city and an ecclesiastical tribute to its architect Antonio Gaudi.<br />
Continue on foot through the narrow streets of the medieval Gothic Quarter, with its incredible atmosphere and wealth of historic buildings. Visit the Gothic Cathedral which was built between 1298 and 1450 upon the remains of a Roman temple dedicated to Hercules and which has an interior adorned with columns and stained glass dating back to the middle ages.<br />
Admire some of the city's most important modernist buildings along Paseo de Gracia, the memorial to Christopher Columbus and the Plaza Cataluna.<br />
Your tour continues with a drive along Avenida de la Diagonal and Avenida de Josep Tarradellas.<br />
Climb to Montjuic, passing by the Stadium and Olympic Ring from the 1992 Barcelona Olympic Games.<br />
Re-board your coach to make your way back to the port.<br />
Overnight onboard the cruise.<br />
Full Board on the cruise.</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> At Sea
								</p>
								<p class="aj">Experience an endless array of activities on board from live music, theme parties and much more at the Broadway theatre. Take risks and feel the excitement of winning in the casino!<br />
You can start with American Roulette and move on to slot machines, video poker, match play and live sports sweepstakes. Relax with a refreshing dip in the swimming pool sipping a cool drink in an unbeatable setting. To relieve tension or stress or for pure pleasure, the Spa is the perfect place to relax. A visit to the Fitness Centre or a trip to the jogging track is also an option.<br />
The shopping area on the ship is worth visiting.<br />
At the end of the day enjoy the best dishes at the Grand Buffet. Make the most of these unique opportunities.<br />
Overnight onboard the cruise.<br />
Full Board on the cruise.</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> Onto Olbia
								</p>
								<p class="aj">Your choice of a shore excursion can be booked on your own at the cruise excursion desk or you can stay on the cruise and enjoy the onboard facilities.<br />
Overnight onboard the cruise.<br />
Full Board on the cruise.</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> Onto Naples
								</p>
								<p class="aj">Today when your cruise docks in Naples, book a shore excursion on your own at the cruise excursion desk or stay on board and enjoy the facilities.<br />
Overnight onboard the cruise.<br />
Full Board on the cruise.</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> Homeward Bound
								</p>
								<p class="aj">Good times need never end! As you get ready for the airport and your flight back home,</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>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Services of Cox & Kings Tour Manager or Local Representative.</li><li>
An additional amount of INR 1,500 is to be compulsorily paid by way of "Secure your Booking Amount".</li><li>
Optional & Add-On tours unless mentioned otherwise.</li><li>
Cost of US $ 2,50,000 granted by the Reserve Bank of India under the Liberalised Remittance Scheme.</li><li>
Any increase in the airfare / taxes / routing charged by the airlines for ticket (presently calculated on 14th Aug 2015)</li><li>
Airline and Hotel surcharges (if applicable) during high / festive season to be paid extra per person.</li><li>
Cost of extension of validity or deviation of your air ticket.</li><li>
Any increase in Rate of Euro leading to an increase in Tour Cost coming into effect prior to departure. However, the rate prevailing on the given day of payment will apply.</li><li>
Porterage at hotels, apartment, airports and seaports, tips, laundry, wines, mineral water, telephone charges, all items of personal nature and also food and drinks not forming part of the touring group's menu.</li><li>
Medical test and Premium cost of your Overseas Travel Insurance policy valid for passengers above 70 years of age.</li><li>
Anything not specifically mentioned in 'What Your Tour Price Includes' box.</li><li>
Government Service Tax 4.50% on gross bill, effective from 1st June 2016.</li><li>
Port Handling charges of Euro 190 per person.</li><li>
Gratuities / Administration and Service Fee (To be paid directly on board the cruise</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>You must be in possession of Schengen Multiple Entry visa. The cost of this visa is included in the Main Tour Price. It is compulsory to do the visas through Cox & Kings only. Visa fees are subject to revision by the consulates from time to time. In such a case additional charges may be applicable.<br />
SCHENGEN VISA<br />
1 Form.<br />
2 Photos (3.5 x 4.5 cm with white background glossy finish 70 to 80% face area visible).<br />
Covering letter on business letterhead.<br />
Company Registration Certificate of Indian Company / Company Memorandum of Understanding / Evidence of Partnership.<br />
Employers Leave sanction letter in original with date of joining designation & leave dates mentioned with company seal and name, designation of HR Officer and his signature.<br />
Pay slip for last 3 months.<br />
Passport is in maiden name then wedding card/marriage certificate/Wedding snaps.<br />
NOC letter on 100 Rs stamp paper from the Bridge parents with passport copy for signature verification.<br />
Return Ticket.<br />
Passenger complete contact details (Residential Tel No......).<br />
Day to day tour itinerary is mandatory hotel confirmation with the name of hotel address and telephone Number of hotel and pax check in and check out dates.<br />
Income Tax Challans of last 3 years.<br />
Updated personal bank statement for last 6 months with good bank balance at least Rs 2 lakhs after total tour payment with bank seal.<br />
If student School/ College bonafide certificate required.<br />
Overseas Mediclaim Policy.<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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Package Cost Ex - Mumbai - Valid from 25th Nov, 2015 to 30th Sep, 2016</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Type</td>
				<td class="data p5px">Price</td>
			</tr>
			<tr>
				<td class="data p5px">Twin</td>
				<td class="data p5px">INR 1,07,575(EUR 560 + INR 62,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Triple</td>
				<td class="data p5px">INR 1,07,575(EUR 560 + INR 62,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Single</td>
				<td class="data p5px">INR 1,41,803(EUR 990 + INR 62,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Child with bed</td>
				<td class="data p5px">INR 98,889(EUR 476 + INR 60,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Child without bed</td>
				<td class="data p5px">INR 94,431(EUR 420 + INR 60,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Infant</td>
				<td class="data p5px">INR 39,999(EUR + INR 39,999)</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Package Cost Ex - Delhi - Valid from 25th Nov, 2015 to 30th Sep, 2016</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Type</td>
				<td class="data p5px">Price</td>
			</tr>
			<tr>
				<td class="data p5px">Twin</td>
				<td class="data p5px">INR 1,10,575(EUR 560 + INR 65,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Triple</td>
				<td class="data p5px">INR 1,10,575(EUR 560 + INR 65,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Single</td>
				<td class="data p5px">INR 1,44,803(EUR 990 + INR 65,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Child with bed</td>
				<td class="data p5px">INR 1,01,889(EUR 476 + INR 63,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Child without bed</td>
				<td class="data p5px">INR 97,431(EUR 420 + INR 63,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Infant</td>
				<td class="data p5px">INR 39,999(EUR + INR 39,999)</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Package Cost Ex - Kolkata - Valid from 25th Nov, 2015 to 30th Sep, 2016</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Type</td>
				<td class="data p5px">Price</td>
			</tr>
			<tr>
				<td class="data p5px">Twin</td>
				<td class="data p5px">INR 1,17,575(EUR 560 + INR 72,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Triple</td>
				<td class="data p5px">INR 1,17,575(EUR 560 + INR 72,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Single</td>
				<td class="data p5px">INR 1,51,803(EUR 990 + INR 72,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Child with bed</td>
				<td class="data p5px">INR 1,08,889(EUR 476 + INR 70,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Child without bed</td>
				<td class="data p5px">INR 1,04,431(EUR 420 + INR 70,999)</td>
			</tr>
			<tr>
				<td class="data p5px">Infant</td>
				<td class="data p5px">INR 39,999(EUR + INR 39,999)</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mediterranean Voyage - Summer 2016 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="62294"/>
						</form>
						</div>
						
						";i:1;s:78:"Book Mediterranean Voyage - Summer 2016 Tour - 7 Nights / 8 Days Tour Packages";i:2;s:165:"book mediterranean voyage - summer 2016 tour - 7 nights / 8 days tour packages, heritage tour packages, barcelona, naples, rome, olbia, livorno, toulon tour packages";i:3;s:224:"Book Mediterranean Voyage - Summer 2016 Tour - 7 Nights / 8 Days tour packages from Grand India Tours & Travels - Get attractive 7 Nights / 8 Days Heritage  tour packages for  Barcelona, Naples, Rome, Olbia, Livorno, Toulon.";i:4;s:3768:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Barcelona, Naples, Rome, Olbia, Livorno, Toulon"        
		                 },
		      "description": "Enjoy a vacation which is more than a cruise, a captivating adventure unlike any other. A rich mosaic of sights, from the sun-washed beaches of the Riviera to the magnificent antiquities of Rome. Relax and have fun as you sail to a mix of destinations with the loveliest features. It's a complete holiday.

All 'must see' sights covered.
Easy Travelling, Smooth Sailing - On a Cox & Kings holiday you can just relax and we'll take care of everything.
First Class Service - From location, service, to ambience, every detail is looked into, to ensure that your stay is an enjoyable one.
Great Meals - Stimulate your palate with a wide array of Indian dishes carefully selected and flavoured with authentic ingredients and spices.
Sightseeing That Takes Your Breath Away - Enjoy the scenic journey through Europe with its ever changing landscape - from bustling cosmopolitan cities to tranquil lakes and alpine mountains. We offer a terrific holiday value that's impossible to match!
Fabulous Optionals, Great Prices - You can design the holidays of your choice from the plethora of options before you.
Enjoy the Ocean: If watching the sea is relaxing, imagine doing so from a Jacuzzi.
Get Fit Onboard: You can do as much exercise as you want in the fitness facilities.
Spectacular Nights: Every night on a Pullmantur Cruise is a spectacular one with musicals, live music and theme parties in the Broadway Theatre.
Cuisine: An excellent cruise is inconceivable without excellent cuisine. The quality of the ingredients is essential for everything to turn out perfectly.
Spa del Mar: There is a Spa del Mar onboard every Pullmantur ship with a professional staff.Guided panoramic Highlight City Tour of Rome : Arch of Constantine, Piazza Venezia, Circus Maximus, Roman Forum, Trevi Fountain, Colosseum.
Hotels Info

City	Hotel Name
Onboard Cruise	
Breeze Of The Mediterranean Cruise Or SimilarServices of Cox & Kings Tour Manager or Local Representative.
An additional amount of INR 1,500 is to be compulsorily paid by way of "Secure your Booking Amount".
Optional & Add-On tours unless mentioned otherwise.
Cost of US $ 2,50,000 granted by the Reserve Bank of India under the Liberalised Remittance Scheme.
Any increase in the airfare / taxes / routing charged by the airlines for ticket (presently calculated on 14th Aug 2015)
Airline and Hotel surcharges (if applicable) during high / festive season to be paid extra per person.
Cost of extension of validity or deviation of your air ticket.
Any increase in Rate of Euro leading to an increase in Tour Cost coming into effect prior to departure. However, the rate prevailing on the given day of payment will apply.
Porterage at hotels, apartment, airports and seaports, tips, laundry, wines, mineral water, telephone charges, all items of personal nature and also food and drinks not forming part of the touring group's menu.
Medical test and Premium cost of your Overseas Travel Insurance policy valid for passengers above 70 years of age.
Anything not specifically mentioned in 'What Your Tour Price Includes' box.
Government Service Tax 4.50% on gross bill, effective from 1st June 2016.
Port Handling charges of Euro 190 per person.
Gratuities / Administration and Service Fee (To be paid directly on board the cruise15-0630-09",
		      "name": "Mediterranean Voyage - Summer 2016 Tour",
		      "telephone": "+91-9415285186"
		    }
		    </script>
			";i:5;N;}