a:6:{i:0;s:40909:"				<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-->				
									<div class="h1"><h1>Russia Package For 7 Days ( Group Departure)</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.maataratours.com/" title="Home">Home</a>
					
										
					<b class="ffv p2px">&rsaquo;</b>Russia Package For 7 Days ( Group Departure)</p> 
									
						<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> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Moscow, Saint Petersburg</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.maataratours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Russia Package For 7 Days ( Group Departure) - 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="111194"/>
						</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_17/497806/182980.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/497806/182980.jpg"  width="150" height="150"    alt="Russia Package For 7 Days ( Group Departure)" title="Russia Package For 7 Days ( Group Departure)" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Air ticket and airport tax from Bangalore and Return<br />
Russian Visa charges<br />
All through travel by Air Arabia<br />
Bangalore/Sharjah/Moscow Moscow/Sharjah/Bangalore)<br />
Train Transfers<br />
Sapsan train from Moscow to St.Petersburg & return from St.Petersburg to Moscow<br />
3 Nights accommodation in Moscow with 1 Night Split stay) in the mentioned category of hotel or similar<br />
3 Nights accommodation in St. Peter'sburg in the mentioned category of hotel or similar<br />
6 Continental Breakfast, 7 Indian Lunch and 6 Indian Dinners<br />
St. Petersburg city Tour<br />
Attractions for which Entry Fees are included in the Tour Cost<br />
Russian Circus, Moscow<br />
Metro, Moscow<br />
Kremlin Armoury Chamber), Moscow<br />
St. Basilius Cathedral, Moscow<br />
Golden Ring, Moscow<br />
St. Sergius Larva with Cathedrals, Sergiev Posad<br />
Peter and Paul Fortress, St. Petersburg<br />
Peterhof Grand Palace &Park), St. Petersburg<br />
Hermitage Museum, St. Petersburg<br />
Russian Ballet show, St. Petersburg<br />
Neva River Cruise, St. Petersburg<br />
St. Isaacs Cathedral, St. Petersburg<br />
All transportation by Luxury Executive Vehicle at Destination<br />
The services of English speaking and licensed national Guide<br />
Tips payable for guide and driver<br />
1000 ml. Water bottle per person / per dayAny other services not mentioned under includes<br />
The above tour cost does not include 5.00% Government Service Tax								</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> Moscow
										</p>
										<p class="aj">Arrival Moscow. Meet & Greet with the guests by our English-speaking guide.<br />
Lunch at Indian Restaurant<br />
Transfer to the Hotel Radisson Slavyanskaya or similar.<br />
Evening take a walking tour of Metro station and free time at Albart street Metro station besides the practical purpose Moscow subway is a famous tourist attraction. It was built in Soviet era and the stations were designed by the best Soviet architects.<br />
Dinner at Indian Restaurant<br />
Overnight stay at hotel</p>					
											<p><b>Meals : </b> Lunch, 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> Moscow
										</p>
										<p class="aj">Breakfast at the hotel Meet with Guide at the hotel. Departure for excursion to Sergiev Posad. Upon arrival visit the Famous Cathedral Trinity Lavra of St. Sergius It is one of the most important monastaries of Russia called Trinity Lavra of St. Sergius which was established in XIV century. It is situated in the old town Sergiev Posad located 50 km away from Moscow and includes more than 25 historical buildings Then you will travel to Suzdal which is also considered to be one of the main towns of the Golden Ring Lunch at an Indian restaurant Enjoy brief sightseeing tour in Suzdal Suzdal is an old town located around 180 km from Moscow which managed to preserve more than 200 outstanding historical monuments some of which are UNESCO World Heritage During the tour you will see the main attractions: -<br />
Rozhdestvensky Cathedral - Spaso-Evfimievsky Monastery - Rizopolozhensky Monstery - Pokrovsky Convent Back to the City Moscow Enroute Visit Vladimir Vladimir is an ancient city which used to be the capital of the medieval Russia.<br />
The town is famous for its beautiful white cathedrals On the tour you will see from outside: - Golden Gates (Zolotye vorota ) & Uspenski Cathedral - Dmitrievsky Cathedral Dinner at the Indian restaurant Transfer to the hotel Overnight stay at hotel</p>					
											<p><b>Meals : </b> Breakfast, Lunch, 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 3:</b> Moscow - St. Petersburg (Approx. 4 hrs )
										</p>
										<p class="aj">Breakfast at the hotel. Check out the Hotel The Vehicle will transfer you to the train station to take the Sapsan train from Moscow to St Petersburg. Sapsan is a Russian gauge high speed electric express train. The trains started regular service on the Moscow Saint Petersburg Railway in December 2009, the new High-Speed Line would allow for speeds of up to 350 km/h or 217 mph. Arrival St. Petersburg. Lunch at an Indian restaurant Transfer to the Hotel Holiday INN Moskovsky Vorota or Similar Check in Hotel Visit Peter & Paul Fortress. Peter And Paul Fortress Visit the original fortress built by Peter the Great. The history of the city began with this Fortress, since St. Petersburg and the Fortress were founded in the same year: 1703. Now the complex is occupied by State Museum. Dinner at an Indian restaurantOvernight stay at hotel</p>					
											<p><b>Meals : </b> Breakfast, Lunch, 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 4:</b> St. Petersburg
										</p>
										<p class="aj">Breakfast at the hotel.<br />
Meeting English speak Guide<br />
Visit to Petergof - the former summer residence of Tsar Peter the 1 st .<br />
Visit Grand Palace and Low park. The Peterh of Palace is a series of palaces and gardens located in  Peterg of  Saint Petersburg Russia, laid out on the orders of Peter the Great. These palaces and gardens are sometimes referred as the & quot Russian  Versailles quot The palace-ensemble along with the city center is recognized as a UNESCO World Heritage Site. Hydrofoil to St.Petersburg<br />
Lunch at Indian Restaurant<br />
Visit to Hermitage museum, Hermitage Museum Explore the treasures of Russia most important museum situated in the heart of the city on a 3 hours excursion. Hermitage collection consists of more than 3 000 000 pieces of art.<br />
Dinner at Indian restaurant.<br />
Overnight stay at hotel</p>					
											<p><b>Meals : </b> Breakfast, Lunch, 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 5:</b> : St. Petersburg
										</p>
										<p class="aj">Breakfast at the hotel<br />
City tour: - State Museum St. Isaacs Cathedral - Palace Square - Kazan Cathedral - Bronze Horseman, church of Saviour of Split Blood, Nevsky Prospect, with photostop at Battleship Aurora.<br />
Lunch at an Indian restaurant<br />
Chartered Canal Cruise Enjoy the opportunity to relax after the long excursion day end enjoy the canals of St. Petersburg and the Neva River and see all the main places of interest from the river side.<br />
Transfer to the "Ballet Performance<br />
The Ballet is one of the best Chamber Ballets in Russia. The members of the Corps de Ballet are all graduates from the world famous Vaganova School and they have performed all over USA, UK, Western and Eastern Europe.<br />
Dinner at an Indian restaurant<br />
Overnight stay at hotel</p>					
											<p><b>Meals : </b> Breakfast, Lunch, 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 6:</b> St. Petersburg to Moscow
										</p>
										<p class="aj">Breakfast at the hotel Check out the Hotel The Vehicle will transfer you to the train station to take the Sapsan train from St Petersburg to Moscow. On arrival to Moscow Meet with Guide Transfer back to Moscow Transfer to the Hotel Radisson Slavyanskaya or similar. Check in Hotel Lunch at Indian restaurant Later Proceed to visit Moscow Kremlin territory with cathedrals - The Kremlin is an ancient fortress which is considered to be the heart of Russia. Nowadays the Kremlin is an official residence of the president of Russian Federation Kremlin Museums - Armoury Chamber<br />
Armory Chamber is a unique treasure-house in the heart of Moscow. Long ago it used to manufacture firearms, jewelery and so on. In XIX century Armory was turned to Museum Diamond Fund It is the World famous collection of jewelry and precious stones which include priceless treasures from XVIII and XIX century. The Fund is housed in the Armory Chamber Enjoy the city tour: - Red Square - St.Basilius Cathedral - Lenin Mausoleum - Sparrow Hills - Moscow State University - Novodevichy ConventTransfer to Russian circus. The Moscow Circus started in Russia more than 80 years and now the Russian capital can boast of two fascinating circuses striking the spectators with wide technical possibilities and amazing performers. Various shows including acrobats, trapeze artists, clowns, balancers, horses, dogs, tigers, showgirls and loads more get the roar of applause from the audience thrown into ecstasy by the unbelievable skills of circus artists. Every year the performers of Moscow circuses take part in the most prestigious international festivals and contests winning highest awards. Dinner at an Indian restaurant Overnight stay at hotel.</p>					
											<p><b>Meals : </b> Breakfast, Lunch, 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 7:</b> Moscow to India
										</p>
										<p class="aj">Breakfast at the Hotel and checkout Free and Easy Packed lunch would be delivered at the airport. Transfer to International Airport, Moscow to board G9 956 @ 14.10 hrs arrival Sharjah @ 20.10 hrs. To connect G9 497 @ 2230 hrs arrival Bangalore @ 03.50 hrs on 01 st Nov 2017</p>					
											<p><b>Meals : </b> Breakfast, Lunch</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>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Any other services not mentioned under includes</li><li>
The above tour cost does not include 5.00% Government Service Tax</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Rate Card</p>
								</div>
								
    	<p class="h dif xlarge b mb5px">Preview of the Prices</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Package cost</td>
				<td class="headHr p5px b">5 Star</td>
			</tr>
			<tr>
				<td class="data p5px">Package cost</td>
				<td class="data p5px">181004</td>
			</tr>
			<tr>
				<td class="data p5px">Extra Adult</td>
				<td class="data p5px">181004</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Hotels Used / Similar</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Destination</td>
				<td class="headHr p5px b">No of Nights</td>
				<td class="headHr p5px b">5 Star</td>
			</tr>
			<tr>
				<td class="data p5px">Moscow</td>
				<td class="data p5px">1</td>
				<td class="data p5px">Radisson Slavjanskaja / Slavyanskaya / similar hotels</td>
			</tr>
			<tr>
				<td class="data p5px">St Petersburg</td>
				<td class="data p5px">3</td>
				<td class="data p5px">Holiday Inn St. Petersburg- Moskovskye Vorota / similar hotels</td>
			</tr>
		</table></div><br>								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<p><strong>Cancellation Policy</strong>

<ul>
	<li>The cancellation must be intimated to us in writing and the following cancellation charges will apply.</li>
	<li>Number of days before departure, Chariot World Tours receives your written cancellation</li>
	<li>Amount of Cancellation charges shown as a % of a total holiday price you must pay</li>
	<li>More than 45 days Deposit only</li>
	<li>44 30 days 40% of total holiday cost</li>
	<li>29 15 days 60% of total holiday cost</li>
	<li>15 days or less 90% of total holiday cost</li>
</ul>

<p><strong>Terms and Conditions</strong>

<ul>
	<li>All our products are sold subject to these Terms and Conditions and the contract between the Client and Chariot World and shall be governed by the same. Via.com. is not responsible for any change in the price due to factors not in the control of the organization.</li>
	<li>Deposit amount - 30% of the total holiday cost + 5.0% service tax to be paid if the booking are made 46 days prior to the departure</li>
	<li>Balance amount - To be paid in full + 5.0% service within 45 Days of the departure date</li>
</ul>

<p><strong>SCOPE OF ACTIVITY</strong>

<ul>
	<li>We are travel and holiday organisers only. We do not control or operate any airline, neither do we own or control any shipping company, coach or coach company, hotel, transport, restaurant, kitchen caravan or any other facility or service mentioned in this Brochure. Though we take care in selecting all the ingredients in your holiday, we can only select and inspect them. As we have no control in running of them, we cannot be responsible for any delay, improper services provided by any agency, airline, transport, hotel, any provider of services, for any injury, death, loss or damage which is caused by the act or default of the management or employees of any hotel, airlines, shipping companies, cruise, coach owners/coach operators/tour operators who are the Companys independent contractors. We are also not responsible for the delay or deficiency in services provided by agency, airline, transport, hotel, any provider of services, and/or any act or actions of co-travelers, co-passengers which may result in injury, damage to the life or property of the Client or interfere with enjoying or availing the following and /or the other services to be provided on the tour.</li>
	<li>We do take all reasonable steps in ensuring that the organisation, maintains standards and provide a service that is acceptable to the company. The information within this brochure has been compiled with all reasonable care and is correct to the best knowledge of the company and is published in good faith.</li>
</ul>

<p><strong>TRAVEL DOCUMENTS AND CLEARANCES</strong>

<ul>
	<li>It shall be sole responsibility of the Clients to hold valid travel documents and statutory clearances, to enable you to travel on the Tour such as passports, insurance and medical insurance certificates and other statutory certificates including immigration clearance. In any case, your Passport must be valid for at least six months subsequent to the scheduled departure date of the tour.</li>
	<li>As granting or rejecting visas and immigration clearance is the sole prerogative of the concerned sovereign governments, the Operator shall neither be responsible in case of non-granting of such documents nor liable for any delay, denial or other related act/omission or for any loss, expense, damage or cost resulting there from. The position in respect of cancellation of Tour by Client due to non-availability of travel documents would not change only by virtue of the Client having applied for such documents through us. Even if visas are rejected, our stipulated fees shall be payable by the Client. There will be no refund to the Client, or any member of his party, is unable to travel due to the said reasons. In such cases, the non-refundable deposit paid by the clients shall be forfeited and no claim whatsoever shall be made for the same.</li>
	<li>In the event that a client is unable to travel on the tour originally booked by him/her, due to rejection of visas by the concerned embassy, the said client shall have the option to postpone his/her tour to any other future date or transfer his tour to any other tour and in such case the transfer fee for the transfer of the tour shall apply. However, if the client books and pays within the cancellation period and is unable to travel due to any reason whatsoever including non-availability of visas or any travel documents, the cancellation policy will apply.</li>
</ul>

<p><strong>HEALTH AND INSURANCE</strong>

<ul>
	<li>It shall be the duty of the Client to inform the Company in case the Client has any medical condition that may affect his ability to enjoy and pursue fully the Tour Arrangements and wherein the interest of the Group or any member thereof is prejudicially affected.</li>
	<li>The Company reserves the right to ask the Client to provide written certification of his medical fitness before departure. In the event that a medical condition has not been disclosed the Company will not be liable to provide any assistance or money back.</li>
	<li>The Company makes it a condition that the Client is adequately covered by Overseas Mediclaim Insurance Policy and other appropriate insurance policies from the Insurance Company identified and named by us to cover the risk of life, limb and property while on tour, as Chariot World Tours Limited will not be responsible for the same.</li>
	<li>It may be noted that the tour cost may or may not include the insurance premium and that the clients shall have to acquire the same at their cost.</li>
	<li>LIABILITY</li>
	<li>In the event of the Company exercising its rights to amend or alter any Tour or holiday advertised in their Brochure/ itinerary after such Tour or Holiday has been booked, the Client shall have the right:</li>
	<li>To continue with the Tour or holiday as amended or altered;</li>
	<li>Or to accept any alternative Tour or holiday, which the company may offer. In either of these above cases the Client shall not be entitled to or the company shall not be liable to the client for any damage, additional expenses, consequential loss suffered by him or to pay any amount as refund. In the event that the Company is unable to conduct a particular Tour, the Company shall at its own discretion, refund the amount of the cost of the said Tour to the Client after deducting the actual expenses incurred by us on your booking like visa, insurance premium, POE charges, and other overheads as applicable from case to case) without any interest on the same. The Client will not be entitled to make any grievance thereafter in respect of the same.</li>
	<li>The Company shall, in no circumstances whatsoever is liable to the client or any person traveling with him for</li>
	<li>Any death, personal injury, sickness, accident, loss, delay, discomfort, increased expenses, consequential loss and/or damage or any kind of theft howsoever caused;</li>
	<li>Any act, omission, default of any independent Contractor or other person or by any servant or agent employed by them who may be engaged or concerned in the provision of accommodation, refreshment, carriage facility or service for the client or for any person traveling with him howsoever caused.</li>
	<li>The temporary or permanent loss of or damage to baggage or personal effects howsoever caused including willful negligence on the part of any person.</li>
	<li>Loss of baggage by the airlines / coach / cruise / train.</li>
	<li>Overbooking of seats by the airline.</li>
	<li>Failure on the part of airline to accommodate passengers despite having confirmed tickets or change of route.</li>
	<li>If in the event that the Client is booked on a particular airline and the said flight is over booked/cancelled for whatever reason and the Client is not allowed/able to board the flight, the Client shall not hold the company responsible for the same and no claim whatsoever can be made by the Client against the company for refund or compensation.</li>
	<li>The Company shall not be responsible and / or liable for any damages caused to the Client due to reasons beyond the control of the Company Force Majeure / Vis Majeure).</li>
	<li>In any case, no liability on the part of the Company arising in any way out of this contract in respect of any tour, holiday, excursion facility shall exceed the total amount paid for the tour holiday, and shall in no case include any consequential loss or additional expense whatsoever</li>
</ul>

<p><strong>CONDITIONS OF TRAVEL</strong>

<ul>
	<li>The Client will have to strictly follow the Tour Program and return to India as per the validity of the air ticket. There shall be no refund, if the client fails to join the group at the commencement of the tour, or joins the group later or leaves the group before culmination of the tour. It shall be noted that for all purposes, it shall be the responsibility of the Client to reach the place of commencement of the Tour and register with the representative of the company at the appointed place, date and time. In case if a client along with his family is compelled to discontinue the tour due to any reason whatsoever including illness, death or loss of passport or any travel documents, no claim shall be entertained for refund of unutilized services. Even if a client is unable to reach the place of commencement of the tour due to any reason whatsoever including loss of baggage or loss of travel documents, his booking shall be treated as &quot;no show&quot; on the tour and 100% cancellation charges will be levied. If a client avails pre - tour services or part thereof, or the air tickets cost of which is included in the main tour cost) but fails to join the group for the main tour at the appointed place, or cancels the tour after using the air tickets; tour arrangements or part thereof, it shall be treated as &quot;no show&quot; and there will be no refund whatsoever for the unutilized pre-tour or main tour services</li>
	<li>Chariot World Tours Limited, reserves the right to withdraw tour membership from anyone whose behavior is deemed likely to affect the smooth operation of the tour or adversely affect the enjoyment or safety of other passengers and Chariot World Tours Limited, shall be under no liability to any such person. It is hereby declared that the immunities provided under this contract shall be available to the Companys Managers, including Tour Managers, Employees, Servants and Agents but not to the IndependentContractors selected by the Company.</li>
	<li>Each of these conditions shall be severable from the other and if any provision be invalid, illegal or unenforceable, the remaining provisions shall nevertheless have full force and effect. No liability on the part of the Company arising in any way out of the Contract in respect of any tour, holiday, excursion facilities shall exceed the total amount paid or agreed to be paid for the tour holiday, and shall in no case include any consequential loss or additional expense whatsoever.</li>
	<li>If no suit/action is brought against the Company within three months of the last day of the Tour, the Company shall be discharged from all liabilities under/or arising out of this Contract and the Client shall be deemed to have relinquished/abandoned all his rights under or arising from this Contract.</li>
</ul>

<p><strong>Note:</strong>

<ul>
	<li>We are not holding any rooms or airline seats as of now and above mentioned is quote only , subject to availability at the time of confirmation .</li>
	<li>First preference will be given to mentioned hotels for reservation. In case of non-availability of these hotels we shall advise the similar or next available option with supplement cost .</li>
	<li>Itinerary provided is just suggestive and the sightseeing will be done as per availability.</li>
	<li>In case of no show or late cancellation after reconfirmation charges applicable as per the Hotels Policy and other vendors policy.</li>
</ul>								</div>
												
						<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
												</tbody>
						</table>
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.maataratours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Russia Package For 7 Days ( Group Departure) - 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="111194"/>
						</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.maataratours.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-agra.htm" title="Packages in Agra">Agra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-baramulla.htm" title="Packages in Baramulla">Baramulla</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-rotorua.htm" title="Packages in Rotorua">Rotorua</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-auckland.htm" title="Packages in Auckland">Auckland</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-anantnag.htm" title="Packages in Anantnag">Anantnag</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-christchurch.htm" title="Packages in Christchurch">Christchurch</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-shillong.htm" title="Packages in Shillong">Shillong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-pushkar.htm" title="Packages in Pushkar">Pushkar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-zurich.htm" title="Packages in Zurich">Zurich</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-nainital.htm" title="Packages in Nainital">Nainital</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-sydney.htm" title="Packages in Sydney">Sydney</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-varanasi.htm" title="Packages in Varanasi">Varanasi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-rishikesh.htm" title="Packages in Rishikesh">Rishikesh</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(2)</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.maataratours.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(22)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(15)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</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.maataratours.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</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.maataratours.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</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>
				</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:83:"Book Russia Package For 7 Days ( Group Departure) - 6 Nights / 7 Days Tour Packages";i:2;s:147:"book russia package for 7 days ( group departure) - 6 nights / 7 days tour packages, heritage tour packages, moscow, saint petersburg tour packages";i:3;s:188:"Maa Tara Tours & Travels offers Russia Package For 7 Days ( Group Departure) - 6 Nights / 7 Days tour package, budget Heritage tour packages for Moscow, Saint Petersburg at exciting price.";i:4;s:1769:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Moscow, Saint Petersburg"        
		                 },
		      "description": "Air ticket and airport tax from Bangalore and Return
Russian Visa charges
All through travel by Air Arabia
Bangalore/Sharjah/Moscow Moscow/Sharjah/Bangalore)
Train Transfers
Sapsan train from Moscow to St.Petersburg & return from St.Petersburg to Moscow
3 Nights accommodation in Moscow with 1 Night Split stay) in the mentioned category of hotel or similar
3 Nights accommodation in St. Peter'sburg in the mentioned category of hotel or similar
6 Continental Breakfast, 7 Indian Lunch and 6 Indian Dinners
St. Petersburg city Tour
Attractions for which Entry Fees are included in the Tour Cost
Russian Circus, Moscow
Metro, Moscow
Kremlin Armoury Chamber), Moscow
St. Basilius Cathedral, Moscow
Golden Ring, Moscow
St. Sergius Larva with Cathedrals, Sergiev Posad
Peter and Paul Fortress, St. Petersburg
Peterhof Grand Palace &Park), St. Petersburg
Hermitage Museum, St. Petersburg
Russian Ballet show, St. Petersburg
Neva River Cruise, St. Petersburg
St. Isaacs Cathedral, St. Petersburg
All transportation by Luxury Executive Vehicle at Destination
The services of English speaking and licensed national Guide
Tips payable for guide and driver
1000 ml. Water bottle per person / per dayAny other services not mentioned under includes
The above tour cost does not include 5.00% Government Service Tax",
		      "name": "Russia Package For 7 Days ( Group Departure)",
		      "telephone": "+91-7001746331"
		    }
		    </script>
			";i:5;N;}