La Vélique Grenada
THE LA VÉLIQUE EDIT

Grenada, beautifully curated.

A personal edit of the island — elegant, effortless and entirely your own.

EXPLORE GRENADA →
DISCOVER THE ISLAND

Made for the way you want to feel.

Sea days, beautiful tables, hidden corners and the details that make time in Grenada feel special. Thoughtfully selected by La Vélique Concierge.

La Vélique Grenada lifestyle
Shadowfax sunset sailing in Grenada
SEA & SAILING

Golden hours on the water.

Private sailing, sunset charters and slow Caribbean afternoons.

EXPLORE →
Private dining in Grenada
DINING & CULINARY

A table worth remembering.

Beautiful dining, private chefs and evenings that deserve a little more time.

EXPLORE →
Grenada Clear Boat
ISLAND EXPERIENCES

See Grenada differently.

Memorable days, unusual perspectives and experiences worth making time for.

EXPLORE →
Luxury chauffeur transport in Grenada
ARRIVAL & ISLAND TRAVEL

Move around beautifully.

Airport arrival, private drivers and comfortable transport arranged around your plans.

EXPLORE →
LA VÉLIQUE SELECTS

A little inspiration for every day.

A lighter edit of what to do, where to go and how to spend your time on the island — selected by La Vélique.

Sailing in Grenada
ON THE WATER

A better kind of sea day.

Open water, beautiful coastline and time to enjoy the island from a different angle.

LA VÉLIQUE SELECTS
Luxury pool view in Grenada
SLOWER MOMENTS

Make room to pause.

Pool time, a long lunch and nowhere you particularly need to be.

LA VÉLIQUE SELECTS
VIEW LA VÉLIQUE SELECTS →

Your island, personally arranged.

Transfers, reservations, experiences and the details in between — handled quietly and thoughtfully.

MESSAGE CONCIERGE →
ESSENTIALS

Help, if you need it.

Emergency contacts and useful island numbers, kept simple and easy to reach.

OPEN SOS →
'; } function lvWarmOfflinePages(){ if(!lvOnline())return; var urls=[]; document.querySelectorAll('.lv4 a[href^="/"]').forEach(function(a){ var href=a.getAttribute('href'); if(!href||href==='#'||href.indexOf('/app-preview')===0||href.indexOf('/emergency-contacts')===0)return; try{ var u=new URL(href,location.origin); if(u.origin===location.origin&&urls.indexOf(u.pathname)<0)urls.push(u.pathname); }catch(e){} }); urls.slice(0,14).forEach(function(url){ fetch(url,{credentials:'same-origin',cache:'force-cache'}) .then(function(res){return res.ok?res.text():null}) .then(function(html){if(html)lvSaveOfflinePage(url,html)}) .catch(function(){}); }); } document.addEventListener('click',function(e){ var wa=e.target.closest('a[href^="https://wa.me/"]'); if(wa&&!lvOnline()){ e.preventDefault(); toast('Internet connection required — your itinerary is safely saved'); } },true); /* LV OFFLINE RESILIENCE V1 END */ var tripOverlay=document.createElement('div'); tripOverlay.className='lva-overlay'; tripOverlay.innerHTML=''; document.body.appendChild(tripOverlay); tripOverlay.addEventListener('click',function(e){if(e.target===tripOverlay||e.target.closest('.lva-close')) closeTrip()}); var sosOverlay=document.createElement('div'); sosOverlay.className='lva-sosoverlay'; sosOverlay.innerHTML='
SOS · ESSENTIAL CONTACTS

Help, if you need it.

Life-threatening emergency?

Call emergency services first.

Call 911

Police

Emergency police response

911

Fire

Fire & rescue emergency

911

General Hospital

St George’s

440 2051

St Augustine’s
Medical Centre

Private medical centre

440 6173

Coast Guard

Marine emergency

399
MESSAGE LA VÉLIQUE CONCIERGE →
'; document.body.appendChild(sosOverlay); function openSOS(){sosOverlay.classList.add('open');document.body.style.overflow='hidden'} function closeSOS(){sosOverlay.classList.remove('open');document.body.style.overflow=''} sosOverlay.querySelector('.lva-sosclose').onclick=closeSOS; var browser=document.createElement('div'); browser.className='lva-browser'; browser.innerHTML='
'; document.body.appendChild(browser); function openBrowser(url){ var frame=browser.querySelector('iframe'); if(!lvOnline()){ var cached=lvGetOfflinePage(url); if(cached){ frame.removeAttribute('src'); frame.srcdoc=lvOfflineDoc(cached); browser.classList.add('open'); document.body.style.overflow='hidden'; return; } toast('Offline — this experience has not been saved yet'); return; } frame.removeAttribute('srcdoc'); frame.src=url; browser.classList.add('open'); document.body.style.overflow='hidden'; fetch(url,{credentials:'same-origin',cache:'force-cache'}) .then(function(res){return res.ok?res.text():null}) .then(function(html){if(html)lvSaveOfflinePage(url,html)}) .catch(function(){}); } function closeBrowser(){browser.classList.remove('open');browser.querySelector('iframe').src='about:blank';document.body.style.overflow=''} browser.querySelector('.lva-browserclose').onclick=closeBrowser;browser.querySelector('.lva-browserx').onclick=closeBrowser; function polishExperiencePage(){ try{ var frame=browser.querySelector('iframe'); var doc=frame.contentDocument; if(!doc||!doc.body)return; var walker=doc.createTreeWalker(doc.body,NodeFilter.SHOW_TEXT); var nodes=[];while(walker.nextNode())nodes.push(walker.currentNode); nodes.forEach(function(n){ if(!n.nodeValue)return; n.nodeValue=n.nodeValue .replace(/Add to My Trip/gi,'Add to My Itinerary') .replace(/Save to My Trip/gi,'Add to My Itinerary') .replace(/My Trip/gi,'My Itinerary'); }); function detailData(){ var h=doc.querySelector('h1')||doc.querySelector('h2'); var title=h?h.textContent.trim():(doc.title||'La Vélique Experience'); var img=doc.querySelector('main img, article img, img'); return { id:slug(title), title:title, img:img&&img.src?img.src:'', meta:'La Vélique Concierge' }; } var saveControls=Array.prototype.filter.call( doc.querySelectorAll('a,button,[role="button"]'), function(el){return /^add to my itinerary\s*[+→]?$/i.test((el.textContent||'').trim())} ); saveControls.forEach(function(btn){ var d=detailData(); function refresh(){ var on=getTrip().some(function(x){return x.id===d.id}); btn.textContent=on?'ADDED TO MY ITINERARY ✓':'ADD TO MY ITINERARY +'; if(on)btn.classList.add('is-saved');else btn.classList.remove('is-saved'); } btn.addEventListener('click',function(e){ e.preventDefault(); e.stopPropagation(); var items=getTrip(); var i=items.findIndex(function(x){return x.id===d.id}); if(i>-1){ items.splice(i,1); toast('Removed from My Itinerary'); }else{ items.push(d); toast('Added to My Itinerary'); } setTrip(items); refresh(); },true); refresh(); }); }catch(e){} } browser.querySelector('iframe').addEventListener('load',polishExperiencePage); function openTrip(){renderTrip();tripOverlay.classList.add('open');document.body.style.overflow='hidden'} function closeTrip(){tripOverlay.classList.remove('open');document.body.style.overflow=''} function renderTrip(){ var items=getTrip(), box=tripOverlay.querySelector('.lva-tripbody'); var nav=document.querySelector('a[href="#my-trip"]'); if(nav){ var badge=nav.querySelector('.lva-tripcount'); if(!badge){badge=document.createElement('span');badge.className='lva-tripcount';nav.appendChild(badge)} badge.textContent=items.length; } if(!items.length){ box.innerHTML='
START YOUR EDIT

Save anything that catches your eye. Your choices will stay here on this device, ready for Concierge to arrange.

'; return; } box.innerHTML=items.map(function(x){return '

'+esc(x.title)+'

'+esc(x.meta)+'

'}).join('')+ '
ASK CONCIERGE TO ARRANGE IT →
'+ '
PAYMENT & CONFIRMATION

Ready to secure it?

Once availability and the final total are confirmed, La Vélique Concierge will send your secure payment link. Payment is only requested after your arrangements have been checked.

Secure payment link supplied by Concierge after confirmation.

'; box.querySelectorAll('.lva-remove').forEach(function(b){b.onclick=function(){setTrip(getTrip().filter(function(x){return x.id!==b.dataset.id}));toast('Removed from My Itinerary')}}); box.querySelector('.lva-clear').onclick=function(){if(confirm('Clear your saved itinerary?'))setTrip([])}; box.querySelector('.lva-whatsapp').onclick=function(e){ e.preventDefault(); if(!lvOnline()){toast('Internet connection required — your itinerary is safely saved');return} var lines=getTrip().map(function(x){return '• '+x.title+(x.meta?' — '+x.meta:'')}); var msg='Hello La Vélique Concierge, I would like help arranging my Grenada itinerary. I saved:\n\n'+lines.join('\n'); location.href='https://wa.me/14734495000?text='+encodeURIComponent(msg); }; var payBtn=box.querySelector('.lva-paybtn'); if(payBtn){ payBtn.onclick=function(){ if(!lvOnline()){toast('Internet connection required — your itinerary is safely saved');return} var lines=getTrip().map(function(x){return '• '+x.title+(x.meta?' — '+x.meta:'')}); var msg='Hello La Vélique Concierge, I am ready to secure my itinerary. Please confirm availability and the final total, then send me the secure payment link.\n\nMy saved itinerary:\n'+lines.join('\n'); location.href='https://wa.me/14734495000?text='+encodeURIComponent(msg); }; } } function cardData(card){ var h=card.querySelector('h3'), img=card.querySelector('img'), meta=card.querySelector('.lv4-kicker,.lv4-day'); var title=h?h.textContent.trim():'La Vélique Select'; return {id:slug(title),title:title,img:img?img.src:'',meta:meta?meta.textContent.trim():'La Vélique Selects'}; } function syncButtons(){ var ids=getTrip().map(function(x){return x.id}); document.querySelectorAll('.lva-save').forEach(function(b){ var on=ids.indexOf(b.dataset.id)>-1;b.classList.toggle('is-saved',on);b.textContent=on?'ADDED TO MY ITINERARY ✓':'ADD TO MY ITINERARY +'; }); } document.querySelectorAll('.lv4 .lva-save').forEach(function(b){b.remove()}); document.addEventListener('click',function(e){ var a=e.target.closest('a');if(!a)return; var href=a.getAttribute('href')||''; if(href==='#my-trip'){e.preventDefault();openTrip();return} if(href==='/emergency-contacts' || (a.classList && a.classList.contains('lv4-navitem') && a.textContent.trim().toUpperCase()==='SOS')){e.preventDefault();openSOS();return} if(href.charAt(0)==='#'){ var el=href.length>1?document.querySelector(href):null; if(el){e.preventDefault();el.scrollIntoView({behavior:'smooth',block:'start'})} return; } if(href.charAt(0)==='/' && a.closest('.lv4')){ e.preventDefault();openBrowser(href); } }); function setHeroHeadline(){ var h=document.querySelector('.lv4-hero .lv4-h1'); if(h){ h.innerHTML='Grenada, beautifully curated.'; } } setHeroHeadline(); function setSOSTeaserHeadline(){ var h=document.querySelector('.lv4-sos .lv4-h2'); if(h){ h.innerHTML='Help, if you need it.'; } } setSOSTeaserHeadline(); function setConciergeHeadline(){ var h=document.querySelector('.lv4-concierge .lv4-h2'); if(h){ h.innerHTML='Your island, personally arranged.'; } } setConciergeHeadline(); var logo=document.querySelector('.lv4-logo'); if(logo){logo.style.cursor='pointer';logo.addEventListener('click',function(){window.scrollTo({top:0,behavior:'smooth'})})} function normalizeBottomNav(){ var nav=document.querySelector('.lv4-nav'); if(!nav)return; var links=nav.querySelectorAll('.lv4-navitem'); if(links[1]) links[1].setAttribute('href','#my-trip'); links.forEach(function(a){ var badge=a.querySelector('.lva-tripcount'); var raw=(a.textContent||'').replace(/\d+\s*$/,'').trim(); Array.from(a.childNodes).forEach(function(n){ if(n.nodeType===3)n.remove(); }); var span=a.querySelector('.lv4-navlabel'); if(!span){ span=document.createElement('span'); span.className='lv4-navlabel'; a.insertBefore(span,a.firstChild); } span.textContent=raw; if(badge)a.appendChild(badge); }); } normalizeBottomNav(); renderTrip();syncButtons(); var deferredInstall=null; window.addEventListener('beforeinstallprompt',function(e){e.preventDefault();deferredInstall=e;var b=document.querySelector('.lva-install button');if(b)b.textContent='INSTALL APP'}); function addInstall(){ if(standalone||!('ontouchstart' in window))return; var host=document.querySelector('.lv4-concierge');if(!host||host.querySelector('.lva-install'))return; var wrap=document.createElement('div');wrap.className='lva-install'; wrap.innerHTML='KEEP LA VÉLIQUE CLOSE

Add the Concierge app to your home screen for quicker access during your stay.

'; host.appendChild(wrap); wrap.querySelector('button').onclick=function(){ if(deferredInstall){deferredInstall.prompt();deferredInstall.userChoice.finally(function(){deferredInstall=null})} else{ var ios=/iphone|ipad|ipod/i.test(navigator.userAgent); var n=wrap.querySelector('.lva-installnote'); n.textContent=ios?'On iPhone: tap Share in Safari, choose Add to Home Screen, then tap Add.':'Open your browser menu and choose Add to Home screen or Install app.'; n.style.display='block'; } }; } addInstall(); setTimeout(lvWarmOfflinePages,900); })();