@import url(‘https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700&family=Cinzel:wght@400;500;600;700&family=Lato:ital,wght@0,300;0,400;0,700;1,300;1,400&display=swap’); #mts-article-wrap *, #mts-article-wrap *::before, #mts-article-wrap *::after { box-sizing: border-box; } #mts-article-wrap {
–bg: #0e0d0b; –bg2: #141210; –bg3: #1a1714;
–maroon: #5c0a0a; –red: #8b1a1a;
–gold: #c8a84b; –gold2: #e2c16a; –gold3: #f0d88a;
–cream: #f5f0e6; –cream2: #e8e0cc;
–muted: #7a7060; –muted2: #5a5448;
–border: rgba(200,168,75,0.18); –border2: rgba(200,168,75,0.08);
background: var(–bg);
color: var(–cream);
font-family: ‘Lato’, sans-serif;
font-weight: 300;
line-height: 1.85;
font-size: 16px;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
margin: 0 -20px;
} /* HERO */
#mts-hero {
position: relative;
min-height: 90vh;
display: flex;
align-items: flex-end;
overflow: hidden;
}
#mts-hero-bg {
position: absolute; inset: 0;
background-image: url(‘https://images.pexels.com/photos/2373201/pexels-photo-2373201.jpeg?auto=compress&cs=tinysrgb&w=1400’);
background-size: cover;
background-position: center 30%;
animation: mtsHeroZoom 18s ease-out forwards;
}
@keyframes mtsHeroZoom { from { transform: scale(1.04); } to { transform: scale(1.00); } }
#mts-hero-ov1 {
position: absolute; inset: 0;
background: linear-gradient(to bottom, rgba(14,13,11,0.2) 0%, rgba(14,13,11,0.12) 30%, rgba(14,13,11,0.65) 65%, rgba(14,13,11,0.98) 100%);
}
#mts-hero-ov2 {
position: absolute; inset: 0;
background: radial-gradient(ellipse at 60% 100%, rgba(92,10,10,0.35) 0%, transparent 60%);
}
#mts-hero-content {
position: relative; z-index: 2;
max-width: 820px;
padding: 0 52px 72px;
animation: mtsFadeUp 1.2s cubic-bezier(0.16,1,0.3,1) both;
}
@keyframes mtsFadeUp { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: translateY(0); } }
.mts-eyebrow {
display: inline-flex; align-items: center; gap: 12px; margin-bottom: 20px;
}
.mts-eyebrow-line { width: 36px; height: 1px; background: var(–gold); opacity: 0.7; }
.mts-eyebrow-text {
font-family: ‘Cinzel’, serif; font-size: 10px; font-weight: 700;
letter-spacing: 4px; text-transform: uppercase; color: var(–gold); opacity: 0.85;
}
#mts-hero-content h1 {
font-family: ‘Cinzel’, serif; font-size: clamp(24px, 3.8vw, 44px);
font-weight: 700; line-height: 1.18; letter-spacing: 0.5px;
color: var(–cream); margin-bottom: 20px;
}
#mts-hero-content h1 em { font-style: normal; color: var(–gold2); }
.mts-hero-intro {
font-size: 16px; font-weight: 300; color: var(–cream2);
max-width: 600px; line-height: 1.75; margin-bottom: 32px; opacity: 0.88;
}
.mts-pills { display: flex; gap: 10px; flex-wrap: wrap; }
.mts-pill {
padding: 8px 18px; border: 1px solid var(–border);
background: rgba(14,13,11,0.6); backdrop-filter: blur(8px);
font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
font-weight: 700; color: var(–gold); font-family: ‘Cinzel’, serif;
} /* BODY */
#mts-body { max-width: 800px; margin: 0 auto; padding: 72px 40px 100px; } #mts-body a { color: var(–gold2); text-decoration: none; border-bottom: 1px solid rgba(200,168,75,0.3); transition: color 0.2s, border-color 0.2s; }
#mts-body a:hover { color: var(–gold3); border-bottom-color: var(–gold); } .mts-h2 {
font-family: ‘Cinzel’, serif; font-size: clamp(17px, 2.4vw, 24px);
font-weight: 600; color: var(–cream); letter-spacing: 0.5px;
margin: 52px 0 18px; line-height: 1.3;
}
.mts-p { color: var(–cream2); font-size: 15px; font-weight: 300; line-height: 1.9; margin-bottom: 16px; opacity: 0.88; }
.mts-divider { border: none; border-top: 1px solid; border-image: linear-gradient(to right, transparent, var(–gold), transparent) 1; opacity: 0.2; margin: 48px 0; } /* TABLE */
.mts-table { width: 100%; border-collapse: collapse; margin: 24px 0 32px; }
.mts-table th {
background: rgba(200,168,75,0.08); color: var(–gold);
font-family: ‘Cinzel’, serif; font-size: 10px; letter-spacing: 2px;
text-transform: uppercase; padding: 13px 18px; text-align: left;
border-bottom: 1px solid var(–border);
}
.mts-table td { padding: 13px 18px; border-bottom: 1px solid var(–border2); color: var(–cream2); font-size: 14px; font-weight: 300; }
.mts-table tr:last-child td { border-bottom: none; }
.mts-table td:first-child { font-weight: 400; color: var(–cream); }
.mts-badge {
display: inline-block; background: rgba(200,168,75,0.12); color: var(–gold2);
font-size: 9px; letter-spacing: 1.5px; padding: 2px 8px;
border: 1px solid rgba(200,168,75,0.25); vertical-align: middle;
margin-left: 6px; font-family: ‘Cinzel’, serif;
} /* BENEFIT LIST */
.mts-ul { list-style: none; margin: 16px 0 24px; }
.mts-ul li {
position: relative; padding: 13px 0 13px 26px;
color: var(–cream2); font-size: 15px; font-weight: 300; line-height: 1.7;
border-bottom: 1px solid var(–border2);
}
.mts-ul li:first-child { border-top: 1px solid var(–border2); }
.mts-ul li::before { content: ‘—’; position: absolute; left: 0; top: 13px; color: var(–gold); font-size: 11px; opacity: 0.7; }
.mts-ul li strong { color: var(–cream); font-weight: 700; } /* HIGHLIGHT BOX */
.mts-highlight {
position: relative; margin: 36px 0; padding: 28px 36px;
background: linear-gradient(135deg, rgba(92,10,10,0.18) 0%, rgba(200,168,75,0.05) 100%);
border: 1px solid var(–border); border-left: 3px solid var(–gold);
}
.mts-highlight p { color: var(–cream2); font-size: 15px; font-style: italic; line-height: 1.8; font-weight: 300; }
.mts-highlight p strong { color: var(–gold2); font-weight: 700; font-style: normal; } /* IMAGES */
.mts-img-wrap { position: relative; margin: 40px 0; overflow: hidden; }
.mts-img-wrap::before {
content: ”; position: absolute; inset: 0;
background: linear-gradient(to bottom, transparent 60%, rgba(14,13,11,0.6) 100%);
z-index: 1; pointer-events: none;
}
.mts-img { width: 100%; display: block; height: 400px; object-fit: cover; filter: brightness(0.87) saturate(0.85); transition: transform 0.8s ease; }
.mts-img-wrap:hover .mts-img { transform: scale(1.015); } /* TREATMENT CARDS */
.mts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0; }
.mts-card {
background: var(–bg2); border: 1px solid var(–border2);
padding: 22px; transition: border-color 0.3s, background 0.3s;
text-decoration: none; display: block; position: relative; overflow: hidden;
}
.mts-card::after {
content: ”; position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
background: linear-gradient(to right, var(–maroon), var(–gold));
transform: scaleX(0); transition: transform 0.35s ease; transform-origin: left;
}
.mts-card:hover { border-color: rgba(200,168,75,0.35); background: var(–bg3); }
.mts-card:hover::after { transform: scaleX(1); }
.mts-card-name { font-family: ‘Cinzel’, serif; font-size: 13px; font-weight: 600; color: var(–cream); margin-bottom: 5px; }
.mts-card-price { font-size: 18px; font-weight: 700; color: var(–gold); font-family: ‘Cinzel’, serif; margin-bottom: 8px; }
.mts-card-desc { font-size: 12px; color: var(–muted); line-height: 1.6; font-weight: 300; } /* SERVICE ROWS */
.mts-svc-list { display: flex; flex-direction: column; margin: 20px 0; }
.mts-svc-row {
display: flex; align-items: center; gap: 16px;
padding: 14px 0; border-bottom: 1px solid var(–border2);
text-decoration: none; transition: padding-left 0.25s ease;
}
.mts-svc-row:first-child { border-top: 1px solid var(–border2); }
.mts-svc-row:hover { padding-left: 8px; }
.mts-arrow { color: var(–gold); font-size: 13px; opacity: 0.5; transition: opacity 0.25s, transform 0.25s; flex-shrink: 0; }
.mts-svc-row:hover .mts-arrow { opacity: 1; transform: translateX(4px); }
.mts-svc-name { font-family: ‘Cinzel’, serif; font-size: 13px; font-weight: 600; color: var(–cream); flex: 1; }
.mts-svc-desc { font-size: 12px; color: var(–muted); text-align: right; max-width: 240px; line-height: 1.4; } /* FAQ */
.mts-faq { margin: 24px 0; }
.mts-faq-item { border-bottom: 1px solid var(–border2); overflow: hidden; }
.mts-faq-item:first-child { border-top: 1px solid var(–border2); }
.mts-faq-q {
padding: 18px 0; font-family: ‘Cinzel’, serif; font-size: 13px;
font-weight: 600; color: var(–cream); letter-spacing: 0.3px;
cursor: pointer; display: flex; justify-content: space-between;
align-items: center; gap: 14px; user-select: none;
}
.mts-faq-icon {
width: 20px; height: 20px; border: 1px solid var(–border);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0; color: var(–gold); font-size: 13px; transition: transform 0.3s;
}
.mts-faq-item.open .mts-faq-icon { transform: rotate(45deg); }
.mts-faq-a {
max-height: 0; overflow: hidden;
transition: max-height 0.45s cubic-bezier(0.16,1,0.3,1), padding 0.3s;
font-size: 14px; color: var(–cream2); font-weight: 300; line-height: 1.8; opacity: 0.88;
}
.mts-faq-item.open .mts-faq-a { max-height: 300px; padding-bottom: 18px; } /* CTA */
.mts-cta {
position: relative; margin: 56px 0 0; padding: 52px 52px;
background: linear-gradient(135deg, rgba(92,10,10,0.22) 0%, rgba(14,13,11,0.98) 100%);
border: 1px solid var(–border); text-align: center; overflow: hidden;
}
.mts-cta::before {
content: ”; position: absolute; top: -60px; right: -60px;
width: 220px; height: 220px; border-radius: 50%;
background: radial-gradient(circle, rgba(200,168,75,0.07) 0%, transparent 70%); pointer-events: none;
}
.mts-cta-eye { font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: var(–gold); font-family: ‘Cinzel’, serif; margin-bottom: 14px; opacity: 0.7; }
.mts-cta h3 { font-family: ‘Cinzel’, serif; font-size: clamp(19px, 2.8vw, 28px); font-weight: 700; color: var(–cream); margin-bottom: 10px; line-height: 1.25; }
.mts-cta p { font-size: 14px; color: var(–muted); margin-bottom: 32px; font-weight: 300; }
.mts-cta-btn {
display: inline-flex; align-items: center; gap: 10px; padding: 16px 40px;
background: var(–gold); color: var(–bg);
font-family: ‘Cinzel’, serif; font-size: 11px; font-weight: 700;
letter-spacing: 2.5px; text-transform: uppercase;
text-decoration: none; border-bottom: none;
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
}
.mts-cta-btn:hover { background: var(–gold3); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(200,168,75,0.25); border-bottom: none; color: var(–bg); } /* FOOTER INFO */
.mts-foot {
margin-top: 44px; padding: 26px 32px;
background: var(–bg2); border: 1px solid var(–border2);
border-top: 1px solid var(–border);
font-size: 13px; color: var(–muted); line-height: 2; text-align: center;
}
.mts-foot strong { color: var(–cream); font-weight: 700; } /* REVEAL */
.mts-reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1); }
.mts-reveal.mts-vis { opacity: 1; transform: none; } @media (max-width: 640px) {
#mts-hero-content { padding: 0 20px 52px; }
#mts-body { padding: 48px 20px 72px; }
.mts-grid { grid-template-columns: 1fr; }
.mts-svc-row { flex-wrap: wrap; }
.mts-svc-desc { text-align: left; max-width: 100%; }
.mts-cta { padding: 36px 24px; }
.mts-img { height: 250px; }
}
Location Guide · Hotel Guests · Gulshan 2 Spa Near Westin Dhaka and Lakeshore Hotel — Walk-In Welcome at Melody Thai Spa
Staying at the Westin Dhaka, Lakeshore Hotel, or Amari Dhaka and looking for a world-class spa nearby? Melody Thai Spa is your closest premium option — within minutes of all three hotels in Gulshan 2, open until 10 PM daily.
Open Until 10 PM
Walk-Ins Welcome
From ৳4,000
Amex · bKash · Cash
How Close Is Melody Thai Spa to These Hotels?
Our Gulshan 2 branches are positioned in the heart of Gulshan’s premium hotel corridor. Here is the approximate travel time from major hotels:
| Hotel | Distance | Travel Time |
|---|
| Westin Dhaka | ~1.2 km | 5–8 minutes by car |
| Lakeshore Hotel Gulshan | ~0.4 km | 2–4 minutes Walkable |
| Amari Dhaka | ~1.5 km | 6–10 minutes by car |
| InterContinental Dhaka | ~2.8 km | 10–15 minutes by car |
Both our Gulshan 2 locations — Road 55 and Road 41 near Lakeshore Hotel — are conveniently accessible, making us genuinely walkable for guests staying at Lakeshore. Our reception can also assist with directions over WhatsApp before your visit.
Why Hotel Guests Choose Melody Thai Spa
- Walk-in friendly: No appointment needed for most services. Simply arrive and our team will accommodate you.
- Open until 10 PM: Perfect for travellers who have had full days of meetings or sightseeing.
- Hotel-grade hygiene standards: Our treatment rooms, linen, and equipment meet the same standards you expect inside a five-star hotel.
- Certified female therapists only: All treatments performed by trained, certified female therapists.
- Multiple payment options: Cash, all major cards including Amex, bKash, Nagad — ideal for both local and international guests.
- Private treatment rooms: Individual rooms, never shared therapy areas.
We regularly serve guests staying at Lakeshore Hotel and the Westin who discover us on Google or through hotel concierge recommendations. If your hotel concierge asks where to send guests for a spa — please share this page with them.
Best Treatments for Hotel Guests and Business Travellers
If you are visiting Dhaka for business and have limited time, here are the treatments our hotel guests book most often:
Explore Our Full Treatment Menu
Beyond our most popular hotel-guest treatments, Melody Thai Spa offers a complete menu of premium therapies available every day from 10 AM to 10 PM:
View our complete services and pricing guide for full details on every treatment.

How to Get Here from Your Hotel
The easiest way to reach us is via Uber or Pathao — simply enter “Melody Thai Spa Gulshan 2” and you will find us. Alternatively, message us on WhatsApp and our team will send you a Google Maps pin for your exact branch. Parking is also available near both Gulshan 2 locations. See our full location guide with maps.
Frequently Asked Questions — Hotel Guests
Can I walk in without a booking?+
Yes. Walk-ins are welcome at both Gulshan 2 branches. We recommend calling ahead or WhatsApp messaging during peak evening hours (6–9 PM) to avoid any wait. You can also
pre-book your session online.
Do you accept Amex cards?+
Yes. We accept American Express, Visa, Mastercard, cash BDT, and all major mobile payment apps including bKash and Nagad. International guests have no payment issues here.
What is the latest I can book same day?+
We accept bookings until 9 PM for same-day appointments. Last session starts at 9 PM and runs to 10 PM closing. See our
full FAQ page for more answers.
Are there any current offers or discounts?+
Yes. Visit our
current offers page for the latest promotions. Hotel guests occasionally receive exclusive rates — just ask our team on WhatsApp.
Book Your Session Today
Minutes from Westin Dhaka and Lakeshore Hotel
Walk in or book in advance. Open every day 10 AM – 10 PM.
WhatsApp Us Now (function(){
// Scroll reveals
var els = document.querySelectorAll(‘.mts-reveal’);
if(‘IntersectionObserver’ in window){
var obs = new IntersectionObserver(function(entries){
entries.forEach(function(e,i){
if(e.isIntersecting){ setTimeout(function(){ e.target.classList.add(‘mts-vis’); }, i*55); obs.unobserve(e.target); }
});
},{threshold:0.08,rootMargin:’0px 0px -30px 0px’});
els.forEach(function(el){ obs.observe(el); });
} else {
els.forEach(function(el){ el.classList.add(‘mts-vis’); });
}
// FAQ
window.mtsFaq = function(el){
var item = el.closest(‘.mts-faq-item’);
var isOpen = item.classList.contains(‘open’);
document.querySelectorAll(‘.mts-faq-item.open’).forEach(function(i){ i.classList.remove(‘open’); });
if(!isOpen) item.classList.add(‘open’);
};
})();