St Barth Villa Rentals | YourStBarth
* {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
:root {
–navy: #0B1A2B;
–gold: #C9A962;
–gold-light: #E0C78A;
–cream: #FDFCFA;
–sand: #F5F3EF;
–text: #1C1C1C;
–text-light: #6B6B6B;
–white: #FFFFFF;
–whatsapp: #25D366;
–radius: 12px;
–shadow: 0 4px 24px rgba(0,0,0,0.08);
}
html {
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
}
body {
font-family: ‘Inter’, -apple-system, BlinkMacSystemFont, sans-serif;
background: var(–cream);
color: var(–text);
line-height: 1.6;
font-size: 16px;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
/* App-like header */
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: rgba(255,255,255,0.95);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
padding: 16px 20px;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid rgba(0,0,0,0.05);
}
.logo {
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 22px;
font-weight: 500;
color: var(–navy);
text-decoration: none;
}
.logo span {
color: var(–gold);
}
.header-cta {
display: flex;
align-items: center;
gap: 8px;
background: var(–whatsapp);
color: white;
padding: 10px 16px;
border-radius: 50px;
font-size: 13px;
font-weight: 600;
text-decoration: none;
letter-spacing: 0.02em;
}
.header-cta svg {
width: 18px;
height: 18px;
}
/* Hero Section – Full screen immersive */
.hero {
min-height: 100vh;
min-height: 100dvh;
position: relative;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 100px 20px 40px;
}
.hero-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
}
.hero-bg img {
width: 100%;
height: 100%;
object-fit: cover;
}
.hero-bg::after {
content: »;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(
to bottom,
rgba(11,26,43,0.3) 0%,
rgba(11,26,43,0.1) 40%,
rgba(11,26,43,0.7) 70%,
rgba(11,26,43,0.9) 100%
);
}
.hero-content {
position: relative;
z-index: 2;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(255,255,255,0.15);
backdrop-filter: blur(10px);
padding: 8px 14px;
border-radius: 50px;
margin-bottom: 20px;
}
.hero-badge-dot {
width: 8px;
height: 8px;
background: var(–gold);
border-radius: 50%;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.6; transform: scale(0.9); }
}
.hero-badge span {
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.1em;
color: rgba(255,255,255,0.9);
}
.hero h1 {
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 36px;
font-weight: 500;
line-height: 1.15;
color: white;
margin-bottom: 16px;
}
.hero h1 em {
font-style: italic;
color: var(–gold-light);
}
.hero-text {
font-size: 15px;
color: rgba(255,255,255,0.8);
line-height: 1.7;
margin-bottom: 28px;
max-width: 340px;
}
.hero-cta {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 16px 28px;
border-radius: var(–radius);
font-size: 14px;
font-weight: 600;
text-decoration: none;
border: none;
cursor: pointer;
transition: all 0.2s ease;
}
.btn-primary {
background: var(–gold);
color: var(–navy);
}
.btn-primary:active {
transform: scale(0.98);
}
.btn-outline {
background: transparent;
border: 1.5px solid rgba(255,255,255,0.5);
color: white;
}
.btn svg {
width: 18px;
height: 18px;
}
/* Stats bar */
.stats {
display: flex;
gap: 0;
margin-top: 32px;
padding-top: 24px;
border-top: 1px solid rgba(255,255,255,0.15);
}
.stat {
flex: 1;
text-align: center;
}
.stat:not(:last-child) {
border-right: 1px solid rgba(255,255,255,0.15);
}
.stat-value {
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 28px;
color: white;
line-height: 1;
}
.stat-label {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: rgba(255,255,255,0.5);
margin-top: 6px;
}
/* Section styling */
.section {
padding: 60px 20px;
}
.section-dark {
background: var(–navy);
color: white;
}
.section-sand {
background: var(–sand);
}
.section-label {
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.15em;
color: var(–gold);
margin-bottom: 12px;
}
.section-title {
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 28px;
font-weight: 500;
line-height: 1.2;
margin-bottom: 16px;
}
.section-text {
font-size: 15px;
color: var(–text-light);
line-height: 1.7;
}
.section-dark .section-text {
color: rgba(255,255,255,0.7);
}
/* Value cards – swipeable on mobile */
.value-cards {
display: flex;
gap: 16px;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
padding: 24px 0 8px;
margin: 0 -20px;
padding-left: 20px;
padding-right: 20px;
}
.value-cards::-webkit-scrollbar {
display: none;
}
.value-card {
flex: 0 0 280px;
scroll-snap-align: start;
background: white;
border-radius: var(–radius);
padding: 24px;
box-shadow: var(–shadow);
}
.value-icon {
width: 48px;
height: 48px;
background: var(–sand);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
}
.value-icon svg {
width: 24px;
height: 24px;
color: var(–gold);
}
.value-card h3 {
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 18px;
font-weight: 500;
margin-bottom: 8px;
}
.value-card p {
font-size: 14px;
color: var(–text-light);
line-height: 1.6;
}
/* Process steps */
.process-steps {
margin-top: 32px;
}
.process-step {
display: flex;
gap: 16px;
padding: 20px 0;
border-bottom: 1px solid rgba(255,255,255,0.1);
}
.process-step:last-child {
border-bottom: none;
}
.process-number {
width: 44px;
height: 44px;
border: 2px solid var(–gold);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 18px;
color: var(–gold);
flex-shrink: 0;
}
.process-content h3 {
font-size: 16px;
font-weight: 600;
margin-bottom: 4px;
}
.process-content p {
font-size: 14px;
color: rgba(255,255,255,0.6);
line-height: 1.5;
}
/* Services grid */
.services-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
margin-top: 24px;
}
.service-card {
background: white;
border-radius: var(–radius);
padding: 20px;
text-align: center;
}
.service-icon {
width: 52px;
height: 52px;
margin: 0 auto 12px;
background: var(–sand);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.service-icon svg {
width: 24px;
height: 24px;
color: var(–gold);
}
.service-card h4 {
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 4px;
}
.service-card p {
font-size: 12px;
color: var(–text-light);
line-height: 1.5;
}
.services-badge {
display: inline-flex;
align-items: center;
gap: 6px;
background: var(–gold);
color: var(–navy);
padding: 8px 14px;
border-radius: 50px;
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-top: 20px;
}
.services-badge svg {
width: 14px;
height: 14px;
}
/* Gallery strip */
.gallery {
display: flex;
gap: 12px;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
padding: 24px 0;
margin: 0 -20px;
padding-left: 20px;
padding-right: 20px;
}
.gallery::-webkit-scrollbar {
display: none;
}
.gallery-item {
flex: 0 0 280px;
scroll-snap-align: start;
position: relative;
border-radius: var(–radius);
overflow: hidden;
aspect-ratio: 4/3;
}
.gallery-item img {
width: 100%;
height: 100%;
object-fit: cover;
}
.gallery-item::after {
content: »;
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 50%;
background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
}
.gallery-caption {
position: absolute;
bottom: 12px;
left: 12px;
z-index: 2;
color: white;
font-size: 13px;
font-weight: 500;
}
/* Form Section */
.form-section {
padding: 60px 20px;
background: linear-gradient(180deg, var(–sand) 0%, var(–cream) 100%);
}
.form-container {
background: white;
border-radius: 16px;
padding: 28px 20px;
box-shadow: 0 8px 40px rgba(0,0,0,0.08);
margin-top: 24px;
}
.form-group {
margin-bottom: 20px;
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
label {
display: block;
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(–text);
margin-bottom: 8px;
}
label .req {
color: var(–gold);
}
input, select, textarea {
width: 100%;
padding: 14px 16px;
border: 1.5px solid #E5E5E5;
border-radius: 10px;
background: var(–cream);
font-family: inherit;
font-size: 16px;
color: var(–text);
transition: border-color 0.2s ease;
-webkit-appearance: none;
}
input:focus, select:focus, textarea:focus {
outline: none;
border-color: var(–gold);
background: white;
}
select {
background-image: url(« data:image/svg+xml,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’16’ height=’16’ viewBox=’0 0 24 24′ fill=’none’ stroke=’%236B6B6B’ stroke-width=’2’%3E%3Cpath d=’M6 9l6 6 6-6’/%3E%3C/svg%3E »);
background-repeat: no-repeat;
background-position: right 14px center;
padding-right: 44px;
}
textarea {
min-height: 100px;
resize: none;
}
.radio-group {
display: flex;
gap: 16px;
}
.radio-item {
display: flex;
align-items: center;
gap: 8px;
}
.radio-item input {
width: auto;
margin: 0;
}
.radio-item label {
margin: 0;
font-size: 15px;
text-transform: none;
letter-spacing: 0;
font-weight: 400;
}
.form-submit {
margin-top: 24px;
}
.form-submit .btn {
width: 100%;
padding: 18px;
font-size: 15px;
border-radius: 12px;
}
.form-note {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
margin-top: 16px;
padding: 14px;
background: rgba(37, 211, 102, 0.08);
border-radius: 10px;
}
.form-note svg {
width: 18px;
height: 18px;
color: var(–whatsapp);
}
.form-note span {
font-size: 13px;
color: var(–text-light);
}
.form-note strong {
color: var(–text);
}
/* Trust list */
.trust-list {
margin-top: 28px;
padding: 20px;
background: white;
border-radius: var(–radius);
border-left: 3px solid var(–gold);
}
.trust-list h4 {
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 12px;
}
.trust-item {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 0;
font-size: 14px;
color: var(–text-light);
}
.trust-item svg {
width: 18px;
height: 18px;
color: var(–gold);
flex-shrink: 0;
}
/* Footer */
.footer {
background: var(–navy);
color: white;
padding: 48px 20px 100px;
text-align: center;
}
.footer-logo {
font-family: ‘Playfair Display’, Georgia, serif;
font-size: 24px;
color: white;
margin-bottom: 12px;
}
.footer-logo span {
color: var(–gold);
}
.footer-text {
font-size: 14px;
color: rgba(255,255,255,0.6);
line-height: 1.7;
max-width: 300px;
margin: 0 auto 24px;
}
.footer-links {
display: flex;
justify-content: center;
gap: 24px;
margin-bottom: 24px;
}
.footer-links a {
font-size: 13px;
color: rgba(255,255,255,0.6);
text-decoration: none;
}
.footer-copy {
font-size: 12px;
color: rgba(255,255,255,0.4);
}
/* Fixed bottom CTA */
.bottom-cta {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 99;
background: white;
padding: 12px 20px;
padding-bottom: calc(12px + env(safe-area-inset-bottom));
box-shadow: 0 -4px 20px rgba(0,0,0,0.1);
display: flex;
gap: 12px;
}
.bottom-cta .btn {
flex: 1;
padding: 14px;
}
.btn-whatsapp {
background: var(–whatsapp);
color: white;
}
.btn-dark {
background: var(–navy);
color: white;
}
/* Desktop styles */
@media (min-width: 768px) {
.header {
padding: 20px 40px;
}
.hero {
padding: 120px 40px 60px;
}
.hero h1 {
font-size: 52px;
}
.hero-text {
font-size: 17px;
max-width: 480px;
}
.section {
padding: 80px 40px;
}
.section-title {
font-size: 36px;
}
.value-cards {
flex-wrap: wrap;
overflow: visible;
margin: 0;
padding-left: 0;
padding-right: 0;
}
.value-card {
flex: 1 1 calc(33.333% – 16px);
min-width: 280px;
}
.services-grid {
grid-template-columns: repeat(4, 1fr);
}
.gallery {
flex-wrap: wrap;
overflow: visible;
margin: 0;
padding-left: 0;
padding-right: 0;
}
.gallery-item {
flex: 1 1 calc(33.333% – 12px);
}
.form-section {
padding: 80px 40px;
}
.form-container {
max-width: 600px;
margin: 24px auto 0;
padding: 40px;
}
.bottom-cta {
display: none;
}
.footer {
padding-bottom: 48px;
}
}
@media (min-width: 1024px) {
.hero {
padding: 140px 80px 80px;
}
.hero h1 {
font-size: 64px;
}
.section {
padding: 100px 80px;
}
}
Responding in 2 hours
Your Private Access to St Barth
Direct access to 400+ luxury villas. Share your criteria, get a curated selection within hours, enjoy complimentary concierge throughout.
St Barth Villas
Exclusive Properties
From hillside retreats to beachfront estates in Gustavia, St Jean, Flamands, and Colombier.
St Jean
Flamands
Colombier
The Difference
Direct Access, Personal Service
Skip the agencies. Get privileged access to the island’s finest properties with personal attention throughout.
Curated, Not Catalogued
No browsing hundreds of listings. Share your criteria once, receive 5-10 villas that actually match.
Real-Time Availability
Direct access to property systems. No back-and-forth. If it’s on your list, it’s available.
One Contact
Single point of contact from inquiry to departure. No transfers, no repeating yourself.
How It Works
From Inquiry to Island
A streamlined path to your perfect St Barth villa.
1
Share Your Criteria
Dates, bedrooms, budget, preferences. The more specific, the better.
2
Receive Your Selection
Within 2 hours, get a curated link with matching villas.
3
Choose and Book
Questions? WhatsApp anytime. Ready? I handle the reservation.
4
Arrive and Enjoy
Airport pickup, villa tour, 24/7 support throughout.
Included
Complimentary Concierge
Every booking includes these services at no extra cost.
Airport Pickup
Private transfer to your villa
Villa Tour
Personal walkthrough
24/7 WhatsApp
Always available
Departure
Airport transfer back
Always Complimentary
// Form to WhatsApp
document.getElementById(‘villa-form’).addEventListener(‘submit’, function(e) {
e.preventDefault();
const fd = new FormData(this);
const d = Object.fromEntries(fd.entries());
let m = `*St Barth Villa Inquiry*\n\n`;
m += `*Guest:* ${d.firstName} ${d.lastName}\n`;
m += `*Email:* ${d.email}\n\n`;
m += `*Stay:*\n`;
m += `Check-in: ${d.checkin}\n`;
m += `Check-out: ${d.checkout}\n`;
m += `Bedrooms: ${d.bedrooms}\n`;
m += `Budget: ${d.budget}/week\n`;
if (d.adults) m += `Adults: ${d.adults}\n`;
if (d.children) m += `Children: ${d.children}\n`;
m += `Pets: ${d.pets === ‘yes’ ? ‘Yes’ : ‘No’}\n`;
if (d.preferences) m += `\n*Preferences:*\n${d.preferences}\n`;
m += `\n_via YourStBarth.com_`;
window.open(`https://wa.me/33667552187?text=${encodeURIComponent(m)}`, ‘_blank’);
});
// Date validation
const today = new Date().toISOString().split(‘T’)[0];
document.querySelector(‘input[name= »checkin »]’).min = today;
document.querySelector(‘input[name= »checkout »]’).min = today;
document.querySelector(‘input[name= »checkin »]’).addEventListener(‘change’, function() {
document.querySelector(‘input[name= »checkout »]’).min = this.value;
});
// Smooth scroll
document.querySelectorAll(‘a[href^= »# »]’).forEach(a => {
a.addEventListener(‘click’, function(e) {
e.preventDefault();
const t = document.querySelector(this.getAttribute(‘href’));
if (t) {
t.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ });
}
});
});