Activities Gili Air – Bel Air Resort & Spa
:root {
--olive: #3d4535;
--olive-mid: #4a5240;
--olive-lt: #6b7560;
--gold: #b89a5a;
--gold-lt: #d4b97a;
--gold-dim: rgba(184,154,90,0.35);
--cream: #f7f2ea;
--cream-dk: #ede7db;
--ivory: #faf7f2;
--dark: #1c1c14;
--text: #3a3a2c;
--muted: #7a7a60;
--border: rgba(184,154,90,0.2);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body {
font-family:'Jost',sans-serif;
font-weight:300;
background:var(--ivory);
color:var(--text);
line-height:1.8;
overflow-x:hidden;
}
/* ── HERO ── */
.hero {
position:relative;
height:92vh;
min-height:600px;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
background:var(--dark);
}
.hero-bg {
position:absolute;
inset:0;
background-image:url('https://belairresort-giliair.com/wp-content/uploads/2026/04/Gili-Air-Snorkeling.jpg');
background-size:cover;
background-position:center 30%;
opacity:0.45;
transform:scale(1.05);
animation:heroZoom 12s ease-out forwards;
}
@keyframes heroZoom {
from{transform:scale(1.08)}
to{transform:scale(1.0)}
}
.hero::after {
content:'';
position:absolute;
inset:0;
background:linear-gradient(to bottom,
rgba(28,28,20,0.2) 0%,
rgba(28,28,20,0.1) 40%,
rgba(28,28,20,0.7) 100%);
}
.hero-content {
position:relative;
z-index:2;
text-align:center;
padding:0 24px;
animation:fadeUp 1.2s ease both;
animation-delay:0.3s;
}
@keyframes fadeUp {
from{opacity:0;transform:translateY(32px)}
to{opacity:1;transform:translateY(0)}
}
.hero-eyebrow {
font-size:10px;
letter-spacing:6px;
text-transform:uppercase;
color:var(--gold-lt);
font-weight:400;
margin-bottom:24px;
font-family:'Jost',sans-serif;
}
.hero h1 {
font-family:'Cormorant Garamond',serif;
font-size:clamp(48px,8vw,88px);
font-weight:300;
color:#faf7f2;
line-height:1.05;
margin-bottom:24px;
letter-spacing:-0.5px;
}
.hero h1 em {
font-style:italic;
color:var(--gold-lt);
}
.hero-rule {
width:50px;
height:1px;
background:var(--gold);
margin:0 auto 24px;
}
.hero-sub {
font-size:15px;
color:rgba(250,247,242,0.72);
font-weight:300;
max-width:540px;
margin:0 auto;
line-height:1.75;
}
.hero-scroll {
position:absolute;
bottom:36px;
left:50%;
transform:translateX(-50%);
z-index:2;
display:flex;
flex-direction:column;
align-items:center;
gap:8px;
color:rgba(250,247,242,0.45);
font-size:9px;
letter-spacing:3px;
text-transform:uppercase;
font-weight:400;
animation:fadeUp 1.5s ease both;
animation-delay:1s;
}
.hero-scroll span {
display:block;
width:1px;
height:40px;
background:linear-gradient(to bottom,var(--gold),transparent);
animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine {
0%,100%{opacity:0.3;transform:scaleY(0.6)}
50%{opacity:1;transform:scaleY(1)}
}
/* ── ANCHOR NAV ── */
.sticky-nav {
position:sticky;
top:0;
z-index:100;
background:rgba(247,242,234,0.96);
backdrop-filter:blur(12px);
border-bottom:1px solid var(--border);
}
.sticky-nav ul {
display:flex;
justify-content:center;
list-style:none;
gap:0;
overflow-x:auto;
padding:0 20px;
white-space:nowrap;
}
.sticky-nav a {
display:block;
padding:15px 22px;
font-size:10px;
letter-spacing:2.5px;
text-transform:uppercase;
color:var(--muted);
text-decoration:none;
font-weight:500;
border-bottom:2px solid transparent;
transition:color 0.3s,border-color 0.3s;
}
.sticky-nav a:hover {
color:var(--olive);
border-bottom-color:var(--gold);
}
/* ── SECTION TITLES ── */
.section-header {
text-align:center;
padding:90px 40px 60px;
position:relative;
}
.section-header .eyebrow {
font-size:10px;
letter-spacing:5px;
text-transform:uppercase;
color:var(--gold);
font-weight:400;
margin-bottom:20px;
}
.section-header h2 {
font-family:'Cormorant Garamond',serif;
font-size:clamp(32px,5vw,54px);
font-weight:300;
color:var(--dark);
line-height:1.15;
margin-bottom:20px;
}
.section-header h2 em {
font-style:italic;
color:var(--olive-mid);
}
.section-header .rule {
width:40px;
height:1px;
background:var(--gold);
margin:0 auto 20px;
}
.section-header .lead {
font-size:15px;
color:var(--muted);
max-width:520px;
margin:0 auto;
line-height:1.8;
}
/* ── IN-HOUSE SECTION ── */
.inhouse {
background:var(--ivory);
padding-bottom:80px;
}
.inhouse-grid {
display:grid;
grid-template-columns:1fr 1fr 1fr;
gap:1px;
background:var(--border);
max-width:1320px;
margin:0 auto 0;
border:1px solid var(--border);
}
.inhouse-card {
background:var(--ivory);
display:flex;
flex-direction:column;
overflow:hidden;
transition:background 0.3s;
}
.inhouse-card:hover { background:var(--cream); }
.inhouse-img {
position:relative;
overflow:hidden;
height:300px;
}
.inhouse-img::after {
content:'';
position:absolute;
inset:12px;
border:1px solid rgba(184,154,90,0.5);
pointer-events:none;
z-index:1;
transition:inset 0.4s ease;
}
.inhouse-card:hover .inhouse-img::after {
inset:8px;
}
.inhouse-img img {
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:transform 0.7s ease;
}
.inhouse-card:hover .inhouse-img img {
transform:scale(1.06);
}
.inhouse-body {
padding:36px 32px 40px;
flex:1;
display:flex;
flex-direction:column;
}
.inhouse-tag {
font-size:9px;
letter-spacing:4px;
text-transform:uppercase;
color:var(--gold);
font-weight:500;
margin-bottom:12px;
}
.inhouse-body h3 {
font-family:'Cormorant Garamond',serif;
font-size:28px;
font-weight:400;
color:var(--dark);
margin-bottom:16px;
line-height:1.15;
}
.inhouse-rule {
width:28px;
height:1px;
background:var(--gold);
margin-bottom:16px;
}
.inhouse-body p {
font-size:14px;
color:var(--muted);
line-height:1.85;
flex:1;
}
.inhouse-link {
display:inline-flex;
align-items:center;
gap:8px;
margin-top:24px;
font-size:10px;
letter-spacing:2.5px;
text-transform:uppercase;
color:var(--olive-mid);
text-decoration:none;
font-weight:500;
border-bottom:1px solid var(--border);
padding-bottom:2px;
transition:color 0.3s,border-color 0.3s;
}
.inhouse-link:hover {
color:var(--gold);
border-color:var(--gold);
}
.inhouse-link::after {
content:'→';
font-size:13px;
}
/* ── DIVIDER ── */
.ornament {
text-align:center;
padding:60px 40px;
display:flex;
align-items:center;
justify-content:center;
gap:20px;
color:var(--gold-dim);
}
.ornament span {
display:block;
height:1px;
width:120px;
background:linear-gradient(to right,transparent,var(--gold-dim));
}
.ornament span:last-child {
background:linear-gradient(to left,transparent,var(--gold-dim));
}
.ornament-diamond {
width:8px;
height:8px;
border:1px solid var(--gold);
transform:rotate(45deg);
flex-shrink:0;
}
/* ── ADVENTURES SECTION ── */
.adventures {
background:var(--cream-dk);
padding:0 0 100px;
}
.adventures-intro {
text-align:center;
padding:80px 40px 60px;
}
.adventures-grid {
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:24px;
max-width:1320px;
margin:0 auto;
padding:0 40px;
}
/* Featured activity (spans 2 cols) */
.act-card {
position:relative;
overflow:hidden;
background:var(--dark);
cursor:pointer;
}
.act-card.featured {
grid-column:span 2;
}
.act-img {
position:relative;
overflow:hidden;
}
.act-card.featured .act-img { height:460px; }
.act-card:not(.featured) .act-img { height:320px; }
.act-img::after {
content:'';
position:absolute;
inset:10px;
border:1px solid rgba(184,154,90,0.45);
pointer-events:none;
z-index:1;
}
.act-img img {
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:transform 0.7s ease;
opacity:0.85;
}
.act-card:hover .act-img img {
transform:scale(1.06);
opacity:0.75;
}
.act-overlay {
position:absolute;
inset:0;
background:linear-gradient(to top,
rgba(28,28,20,0.88) 0%,
rgba(28,28,20,0.2) 55%,
transparent 100%);
display:flex;
flex-direction:column;
justify-content:flex-end;
padding:32px 28px;
z-index:2;
}
.act-tag {
font-size:9px;
letter-spacing:3px;
text-transform:uppercase;
color:var(--gold);
font-weight:500;
margin-bottom:8px;
}
.act-overlay h3 {
font-family:'Cormorant Garamond',serif;
font-weight:400;
color:#faf7f2;
line-height:1.1;
margin-bottom:10px;
}
.act-card.featured .act-overlay h3 { font-size:34px; }
.act-card:not(.featured) .act-overlay h3 { font-size:24px; }
.act-desc {
font-size:13px;
color:rgba(250,247,242,0.72);
line-height:1.7;
max-height:0;
overflow:hidden;
transition:max-height 0.5s ease;
}
.act-card:hover .act-desc {
max-height:120px;
}
.act-rule {
width:0;
height:1px;
background:var(--gold);
margin-bottom:10px;
transition:width 0.4s ease;
}
.act-card:hover .act-rule {
width:30px;
}
/* ── LOMBOK EXCURSION ── */
.lombok {
background:var(--olive);
position:relative;
overflow:hidden;
padding:100px 40px;
}
.lombok::before {
content:'';
position:absolute;
inset:0;
background-image:url('https://belairresort-giliair.com/wp-content/uploads/2026/04/Lombok-Golf-Kosaido-Country-Club.jpg');
background-size:cover;
background-position:center;
opacity:0.2;
}
.lombok-inner {
position:relative;
z-index:2;
display:grid;
grid-template-columns:1fr 1fr;
gap:80px;
align-items:center;
max-width:1100px;
margin:0 auto;
}
.lombok-text .eyebrow {
font-size:10px;
letter-spacing:5px;
text-transform:uppercase;
color:var(--gold-lt);
font-weight:400;
margin-bottom:20px;
}
.lombok-text h2 {
font-family:'Cormorant Garamond',serif;
font-size:clamp(34px,4vw,52px);
font-weight:300;
color:var(--cream);
line-height:1.1;
margin-bottom:16px;
}
.lombok-text h2 em {
font-style:italic;
color:var(--gold-lt);
}
.lombok-rule {
width:40px;
height:1px;
background:var(--gold);
margin-bottom:24px;
}
.lombok-text p {
font-size:15px;
color:rgba(247,242,234,0.72);
line-height:1.85;
margin-bottom:32px;
}
.lombok-img {
position:relative;
}
.lombok-img::after {
content:'';
position:absolute;
inset:16px;
border:1px solid rgba(184,154,90,0.5);
pointer-events:none;
}
.lombok-img img {
width:100%;
height:420px;
object-fit:cover;
display:block;
}
/* ── CTA ── */
.cta {
background:var(--dark);
text-align:center;
padding:100px 40px;
position:relative;
overflow:hidden;
}
.cta::before {
content:'';
position:absolute;
top:0;left:0;right:0;
height:1px;
background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.cta::after {
content:'';
position:absolute;
bottom:0;left:0;right:0;
height:1px;
background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.cta .eyebrow {
font-size:10px;
letter-spacing:5px;
text-transform:uppercase;
color:var(--gold);
font-weight:400;
margin-bottom:20px;
}
.cta h2 {
font-family:'Cormorant Garamond',serif;
font-size:clamp(34px,5vw,58px);
font-weight:300;
color:var(--cream);
margin-bottom:16px;
line-height:1.1;
}
.cta h2 em {
font-style:italic;
color:var(--gold-lt);
}
.cta-rule {
width:40px;
height:1px;
background:var(--gold);
margin:0 auto 24px;
}
.cta p {
font-size:15px;
color:rgba(247,242,234,0.6);
max-width:460px;
margin:0 auto 40px;
line-height:1.8;
}
.btn-gold {
display:inline-block;
padding:15px 48px;
border:1px solid var(--gold);
color:var(--gold);
font-size:10px;
letter-spacing:3px;
text-transform:uppercase;
text-decoration:none;
font-weight:500;
transition:background 0.3s,color 0.3s;
}
.btn-gold:hover {
background:var(--gold);
color:var(--dark);
}
/* ── SCROLL REVEAL ── */
.reveal {
opacity:0;
transform:translateY(28px);
transition:opacity 0.7s ease,transform 0.7s ease;
}
.reveal.visible {
opacity:1;
transform:translateY(0);
}
/* ── RESPONSIVE ── */
@media(max-width:1024px){
.inhouse-grid { grid-template-columns:1fr 1fr; }
.adventures-grid { grid-template-columns:1fr 1fr; gap:16px; padding:0 24px; }
.act-card.featured { grid-column:span 2; }
.lombok-inner { grid-template-columns:1fr; gap:48px; }
.lombok-img { order:-1; }
}
@media(max-width:680px){
.inhouse-grid { grid-template-columns:1fr; }
.adventures-grid { grid-template-columns:1fr; padding:0 20px; }
.act-card.featured { grid-column:span 1; }
.act-card.featured .act-img { height:340px; }
.lombok { padding:70px 24px; }
.cta { padding:70px 24px; }
.hero h1 { font-size:42px; }
}
Restore & Renew
Oasis Spa
Indulge in the pampering you deserve. Our on-site spa offers a curated collection of restorative treatments — signature massages, traditional Balinese healing rituals, and aromatic body scrubs designed to soothe the senses and restore vitality.
Explore the Spa
Aquatic Serenity
Swimming Pool
Dive into tranquility. Our central pool is the perfect place to cool off, lounge with a cocktail, or enjoy a refreshing morning swim beneath the tropical sun, surrounded by lush garden greenery and views of the Lombok Strait.
Evening Leisure
Billiards Lounge
Challenge friends or fellow travellers to a game in our lounge area. Our professional-grade billiard table is the ideal spot for evening relaxation and friendly competition — complimentary for all resort guests.
Beyond the Shore
Gili Air Adventures
The island is your playground. From sea turtles at dawn to reef breaks at dusk — adventure is always a step away.
Sunrise & Sunset
Horse Riding
Experience the coastline from a unique perspective. We partner with professional stables to offer sunrise or sunset beach rides, with well-cared-for horses and expert local guides.
Underwater World
Snorkeling
Discover a vibrant reef just steps from your room — sleeping turtles, tropical fish and living coral right off the shore. Gear is available to rent beside the resort.
All Levels
Scuba Diving
From first-time bubble blowers to seasoned pros, our warm, crystal-clear waters offer world-class diving conditions with expert local crews.
Families & Non-Swimmers
Glass Bottom Boat
A front-row seat to the ocean's wonders — stay dry or dive in. The perfect island tour for every type of guest.
On The Water
SUP & Kayaking
Glide over turquoise glass, taking in views of Lombok and Mount Rinjani from a peaceful offshore vantage point.
Island Life
Bike Riding
With no motorised vehicles on the Gilis, the bicycle is king. Explore hidden corners and local lanes at your own pace.
Gili's Best-Kept Secret
Surfing
When conditions are right, the local reef breaks deliver fast, pumping right-handers that satisfy even the most seasoned surfers.
Day Trip · Lombok
Championship Golf
Take a short boat trip across to the Lombok Golf Kosaido Country Club — an 18-hole championship course offering spectacular dual views of the Gili Islands and the majestic Mount Rinjani. Our team can arrange transportation and tee times for your perfect day on the green.
Your Island Awaits
Ready to Experience Gili Air?
Book directly with us for the best rates, personalised service, and a warm island welcome from our team.
Reserve Your Stay
const reveals = document.querySelectorAll('.reveal');
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry, i) => {
if(entry.isIntersecting){
setTimeout(() => entry.target.classList.add('visible'), 80);
observer.unobserve(entry.target);
}
});
}, { threshold: 0.12 });
reveals.forEach(el => observer.observe(el));