.vv-calc-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
}
.vv-calc-header {
text-align: center;
margin-bottom: 30px;
}
.vv-calc-header h2 {
color: #cc0000; /* Virgin red brand hint */
margin: 0;
font-size: 28px;
}
.vv-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 20px;
gap: 20px;
}
.vv-col {
flex: 1;
min-width: 250px;
}
.vv-label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: #333;
}
.vv-input {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.vv-input:focus {
border-color: #cc0000;
outline: none;
box-shadow: 0 0 5px rgba(204, 0, 0, 0.2);
}
.vv-btn {
display: block;
width: 100%;
padding: 15px;
background-color: #cc0000;
color: white;
border: none;
border-radius: 5px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.3s;
margin-top: 10px;
}
.vv-btn:hover {
background-color: #a30000;
}
.vv-result-box {
margin-top: 30px;
padding: 20px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 6px;
display: none;
}
.vv-result-row {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.vv-result-row:last-child {
border-bottom: none;
}
.vv-result-label {
color: #555;
}
.vv-result-value {
font-weight: bold;
color: #333;
}
.vv-total {
font-size: 20px;
color: #cc0000;
margin-top: 10px;
padding-top: 10px;
border-top: 2px solid #eee;
}
.vv-balance-positive {
color: #2e7d32;
}
.vv-balance-negative {
color: #d32f2f;
}
.section-title {
color: #333;
font-size: 18px;
border-bottom: 2px solid #cc0000;
padding-bottom: 5px;
margin-bottom: 15px;
margin-top: 0;
}
.price-note {
font-size: 12px;
color: #666;
margin-top: 5px;
font-style: italic;
}
/* Article Styles */
.vv-article {
margin-top: 50px;
line-height: 1.6;
color: #333;
}
.vv-article h2 {
color: #cc0000;
margin-top: 30px;
}
.vv-article h3 {
color: #444;
}
.vv-article ul {
margin-bottom: 20px;
}
.vv-article li {
margin-bottom: 8px;
}
.vv-highlight-box {
background-color: #fff0f0;
border-left: 4px solid #cc0000;
padding: 15px;
margin: 20px 0;
}
Virgin Voyages Bar Tab Guide: How It Works
Unlike traditional cruise lines that offer "Unlimited Drink Packages," Virgin Voyages operates on a "Bar Tab" system. This à la carte approach allows Sailors to pay only for what they drink, often resulting in lower costs for moderate drinkers. Understanding how the Bar Tab works is essential for planning your budget before you set sail.
Important Tip: On Virgin Voyages, gratuities (tips) are included in the menu price of the drink. If a cocktail is listed as $15, you pay $15. There is no additional 18-20% service charge added at the end of the transaction.
Average Drink Prices on Virgin Voyages (2024-2025)
To use the calculator effectively, it helps to know the current pricing landscape on board ships like the Scarlet Lady, Valiant Lady, Resilient Lady, and Brilliant Lady. While prices vary by venue (e.g., the On The Rocks bar vs. The Manor), here are reasonable averages used in our calculator:
- Beer: $8 – $10 (Heineken, craft beers, etc.)
- Cocktails: $13 – $17 (Standard mixes to premium craft cocktails)
- Wine by the Glass: $11 – $16 (Depends heavily on the varietal)
- Specialty Coffee/Tea: $4 – $7 (Intelligentsia coffee at the Grounds Club)
- Fresh Pressed Juices: $7 – $9
How the Prepaid Bar Tab Works
You can purchase a $300 Bar Tab before you sail. Virgin Voyages often runs promotions where purchasing a $300 tab grants you an additional $50 bonus, giving you $350 in total spending power. This credit can be used for premium drinks around the ship and at the Bimini Beach Club.
Bar Tab vs. Sailor Loot
Bar Tab is specifically for beverages (alcoholic and non-alcoholic). It is non-refundable. Sailor Loot is general onboard credit that can be used for anything—drinks, spa treatments, shore excursions (Shore Things), or retail therapy. If you run out of Bar Tab, your Sailor Loot will be used next, followed by the credit card on file.
Is the Bar Tab Worth It?
If you and your cabinmate enjoy 2-3 cocktails and a glass of wine daily, you will likely burn through a $300 Bar Tab on a 4 or 5-night sailing. The calculator above helps you visualize this. Since the Bar Tab is non-refundable, casual drinkers should be careful not to over-purchase, while social drinkers should definitely take advantage of the bonus offers.
function calculateBarTab() {
// 1. Get Inputs
var nights = parseFloat(document.getElementById('vv_nights').value);
var travelers = parseFloat(document.getElementById('vv_travelers').value);
var dailyBeer = parseFloat(document.getElementById('vv_beer').value);
var dailyCocktail = parseFloat(document.getElementById('vv_cocktail').value);
var dailyWine = parseFloat(document.getElementById('vv_wine').value);
var dailyCoffee = parseFloat(document.getElementById('vv_coffee').value);
var prepaidAmount = parseFloat(document.getElementById('vv_prepaid').value);
var bonusAmount = parseFloat(document.getElementById('vv_bonus').value);
// Validation to prevent NaN errors
if (isNaN(nights)) nights = 0;
if (isNaN(travelers)) travelers = 1;
if (isNaN(dailyBeer)) dailyBeer = 0;
if (isNaN(dailyCocktail)) dailyCocktail = 0;
if (isNaN(dailyWine)) dailyWine = 0;
if (isNaN(dailyCoffee)) dailyCoffee = 0;
if (isNaN(prepaidAmount)) prepaidAmount = 0;
if (isNaN(bonusAmount)) bonusAmount = 0;
// 2. Define Average Prices (Tips included in VV pricing)
var priceBeer = 9.00;
var priceCocktail = 15.00;
var priceWine = 13.00;
var priceCoffee = 6.00;
// 3. Perform Calculations
var costPerPersonDaily = (dailyBeer * priceBeer) +
(dailyCocktail * priceCocktail) +
(dailyWine * priceWine) +
(dailyCoffee * priceCoffee);
var totalDailyCost = costPerPersonDaily * travelers;
var totalTripCost = totalDailyCost * nights;
var totalCredit = prepaidAmount + bonusAmount;
var balance = totalCredit – totalTripCost;
// 4. Update UI
document.getElementById('res_credit').innerText = '$' + totalCredit.toFixed(2);
document.getElementById('res_daily').innerText = '$' + totalDailyCost.toFixed(2);
document.getElementById('res_total').innerText = '$' + totalTripCost.toFixed(2);
var balanceEl = document.getElementById('res_balance');
var msgEl = document.getElementById('res_message');
if (balance >= 0) {
balanceEl.innerText = '$' + balance.toFixed(2) + ' (Remaining)';
balanceEl.className = 'vv-result-value vv-balance-positive';
msgEl.innerText = "You are within your budget! You'll have approximately $" + balance.toFixed(0) + " left over.";
msgEl.style.color = "green";
} else {
balanceEl.innerText = '-$' + Math.abs(balance).toFixed(2) + ' (Owed)';
balanceEl.className = 'vv-result-value vv-balance-negative';
msgEl.innerText = "You will exceed your Bar Tab. You'll need to pay an extra $" + Math.abs(balance).toFixed(0) + " at the end of the cruise.";
msgEl.style.color = "#d32f2f";
}
// Show result box
document.getElementById('vv_result').style.display = 'block';
}