+
+ Line Item
+ {GROUP_SIZES.map(s => {s} guys)}
+
+
+ ✈️ Flight estimate
+ {GROUP_SIZES.map(s => ${(COST_PER_PERSON.flight).toLocaleString()})}
+
+
+ 🏨 Hotel ({COST_PER_PERSON.hotel[overallTier]}/pp)
+ {GROUP_SIZES.map(s => ${(COST_PER_PERSON.hotel[overallTier]).toLocaleString()})}
+
+
+ ⛳ Golf ({COST_PER_PERSON.golf[overallTier]}/pp)
+ {GROUP_SIZES.map(s => ${(COST_PER_PERSON.golf[overallTier]).toLocaleString()})}
+
+
+ 🎧 Nightlife ({COST_PER_PERSON.nightlife[overallTier]}/pp)
+ {GROUP_SIZES.map(s => ${(COST_PER_PERSON.nightlife[overallTier]).toLocaleString()})}
+
+
+ 🚤 Excursion ({COST_PER_PERSON.excursion[overallTier]}/pp)
+ {GROUP_SIZES.map(s => ${(COST_PER_PERSON.excursion[overallTier]).toLocaleString()})}
+
+
+ 🚗 Transfers
+ {GROUP_SIZES.map(s => ${(COST_PER_PERSON.transfers[overallTier]).toLocaleString()})}
+
+
+ 🍽️ Food + drinks buffer
+ {GROUP_SIZES.map(s => $${COST_PER_PERSON.foodBuffer})}
+
+
+ Est. Total / Person
+ {totals.map(t => (
+
+ ${t.perPerson.toLocaleString()}
+
+ ))}
+
+
+ Est. Group Total
+ {totals.map(t => (
+
+ ${t.total.toLocaleString()}
+
+ ))}
+
+
+ * Estimates based on current leading votes. Prices may vary. Add extra for bar tabs and tips.
+ Price data from {options.find(o => o.categoryId === 'hotel')?.details?.[0]?.match(/\d{4}-\d{2}-\d{2}/)?.[0] || 'April 2026'}.
+