:root{
--primary:#163832;
--accent:#c49b63;
--light:#f4f4f4;
}

*{margin:0;padding:0;box-sizing:border-box;font-family:'Poppins',sans-serif;scroll-behavior:smooth}

body{color:#333;line-height:1.6;overflow-x:hidden}

/* ================= HEADER GLASS ================= */
header{
position:fixed;
top:0;
width:100%;
display:flex;
justify-content:space-between;
align-items:center;
padding:18px 40px;
z-index:9999;
background:rgba(255,255,255,0.05);
backdrop-filter:blur(12px);
transition:.4s;
}

header.scrolled{
background:rgba(255,255,255,0.9);
box-shadow:0 5px 25px rgba(0,0,0,.1);
}

.logo{
font-weight:700;
font-size:1.2rem;
color:white;
transition:.3s;
}

header.scrolled .logo{
color:#333;
}

.nav-links{
display:flex;
gap:30px;
}

.nav-links a{
text-decoration:none;
color:white;
font-weight:500;
position:relative;
transition:.3s;
}

.nav-links a.active{
color:var(--accent);
}

.nav-links a::after{
content:"";
position:absolute;
left:0;
bottom:-6px;
width:0;
height:2px;
background:var(--accent);
transition:.3s;
}

.nav-links a:hover::after{
width:100%;
}

header.scrolled .nav-links a{
color:#333;
}

/* ================= HAMBURGER ================= */
.hamburger{
display:none;
flex-direction:column;
cursor:pointer;
gap:5px;
z-index:10001;
}

.hamburger span{
width:25px;
height:3px;
background:white;
transition:.4s;
}

header.scrolled .hamburger span{
background:#333;
}

.hamburger.active span:nth-child(1){
transform:rotate(45deg) translate(5px,5px);
}
.hamburger.active span:nth-child(2){
opacity:0;
}
.hamburger.active span:nth-child(3){
transform:rotate(-45deg) translate(6px,-6px);
}

/* ================= MOBILE MENU ================= */
.mobile-menu{
position:fixed;
top:0;
right:-100%;
width:280px;
height:100vh;
background:white;
padding:100px 30px;
transition:.4s;
box-shadow:-10px 0 30px rgba(0,0,0,.1);
z-index:9998;
}

.mobile-menu.active{
right:0;
}

.mobile-menu a{
display:block;
margin-bottom:25px;
text-decoration:none;
color:#333;
font-weight:600;
}


/* Overlay */
.menu-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,.4);
opacity:0;
visibility:hidden;
transition:.3s;
z-index:9997;
}

.menu-overlay.active{
opacity:1;
visibility:visible;
}

/* HERO */
.hero{
position:relative;
min-height:100vh;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
color:white;
overflow:hidden;
padding:120px 20px 100px;
}

/* Background image layer */
.hero::before{
content:"";
position:absolute;
inset:0;
background:
linear-gradient(to bottom, rgba(0,0,0,.65), rgba(0,0,0,.4)),
url('https://www.ciwideyoutbound.com/images/ciwalini/1.webp');
background-size:cover;
background-position:center center;
background-repeat:no-repeat;
z-index:-1;
}

/* Desktop framing */
@media(min-width:992px){
.hero::before{
background-position:center 40%;
}
}

/* Mobile framing */
@media(max-width:768px){
.hero{
min-height:85vh;
padding-top:140px;
}

.hero::before{
background-position:center center;
background-size:cover;
}
}

/* Text */
.hero-content{
max-width:850px;
}

.hero h1{
font-size:clamp(28px,6vw,48px);
line-height:1.2;
margin-bottom:20px;
font-weight:700;
text-shadow:
0 2px 5px rgba(0,0,0,.4),
0 10px 25px rgba(0,0,0,.4);
}

.hero p{
font-size:clamp(14px,3.5vw,18px);
opacity:.95;
margin-bottom:30px;
}

/* SECTION */
section{padding:100px 20px;max-width:1200px;margin:auto}

.section-title{text-align:center;margin-bottom:60px}
.section-title h2{font-size:2rem;color:var(--primary)}

/* ANIMATION */
.fade{
opacity:0;
transform:translateY(60px);
transition:1.2s ease;
}
.fade.show{
opacity:1;
transform:translateY(0);
}

@keyframes fadeUp{
from{opacity:0;transform:translateY(30px)}
to{opacity:1;transform:translateY(0)}
}

/* SPLIT */
.split{
display:grid;
grid-template-columns:1fr 1fr;
gap:50px;
align-items:center;
}
.split img{
width:100%;
border-radius:20px;
box-shadow:0 20px 40px rgba(0,0,0,.15);
}

/* FASILITAS */
.grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:25px;
}
.card{
background:rgba(255,255,255,.6);
backdrop-filter:blur(10px);
padding:30px;
border-radius:20px;
text-align:center;
transition:.4s;
box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.card:hover{
transform:translateY(-10px);
}

/* PRICE CTA */
.price-box{
background:linear-gradient(135deg,var(--primary),#0f2b26);
color:white;
padding:60px;
border-radius:25px;
text-align:center;
box-shadow:0 20px 40px rgba(0,0,0,.2);
}

/* GALLERY */
.gallery{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:15px;
}
.gallery img{
width:100%;
border-radius:20px;
transition:.4s;
}
.gallery img:hover{
transform:scale(1.08);
}

/* FOOTER */
footer{
background:#111;
color:white;
text-align:center;
padding:40px;
}

/* STICKY WA */
.sticky-wa{
position:fixed;
bottom:20px;
right:20px;
background:#25D366;
color:white;
padding:14px 22px;
border-radius:50px;
text-decoration:none;
font-weight:600;
box-shadow:0 10px 25px rgba(0,0,0,.3);
transition:.3s;
}
.sticky-wa:hover{transform:scale(1.05)}

@media(max-width:768px){
.hero h1{font-size:2rem}
.split{grid-template-columns:1fr}
nav{padding:15px 20px}
}

/* ================= MOBILE BOTTOM NAV ================= */
.mobile-nav{
display:none;
position:fixed;
bottom:20px;
left:50%;
transform:translateX(-50%);
width:calc(100% - 30px);
max-width:420px;
background:rgba(20,25,40,.95);
border-radius:25px;
padding:12px;
justify-content:space-around;
align-items:center;
z-index:9999;
box-shadow:0 10px 30px rgba(0,0,0,.3);
}

.mobile-nav a{
color:white;
text-decoration:none;
font-size:.8rem;
display:flex;
flex-direction:column;
align-items:center;
}

.mobile-nav i{
font-size:1.2rem;
margin-bottom:5px;
color:var(--accent);
}

/* ================= RESPONSIVE ================= */
@media(max-width:900px){
.nav-links{display:none}
.hamburger{display:flex}
.mobile-nav{display:flex}
}

/* ================= TICKET SECTION ================= */

.ticket-section{
padding:100px 20px;
display:flex;
justify-content:center;
}

.ticket-card{
position:relative;
background:linear-gradient(145deg,#0f3a33,#082622);
color:white;
padding:60px 30px;
border-radius:30px;
text-align:center;
max-width:450px;
width:100%;
box-shadow:0 25px 60px rgba(0,0,0,.35);
overflow:hidden;
}

.ticket-card::before{
content:"";
position:absolute;
top:-50%;
left:-50%;
width:200%;
height:200%;
background:radial-gradient(circle,rgba(212,175,55,.15),transparent 60%);
transform:rotate(25deg);
}

.ticket-card h2{
font-size:1.3rem;
opacity:.8;
margin-bottom:10px;
}

.price{
font-size:2.6rem;
font-weight:700;
margin-bottom:20px;
}

.parking{
font-size:.95rem;
opacity:.9;
margin-bottom:30px;
}

.parking i{
color:#d4af37;
margin-right:5px;
}

.parking span{
margin:0 10px;
opacity:.5;
}

.ticket-btn{
display:inline-block;
padding:14px 35px;
background:#d4af37;
color:white;
border-radius:50px;
text-decoration:none;
font-weight:600;
transition:.3s;
box-shadow:0 10px 25px rgba(212,175,55,.4);
}

.ticket-btn:hover{
transform:translateY(-3px);
box-shadow:0 15px 35px rgba(212,175,55,.6);
}

.ticket-badge{
position:absolute;
top:20px;
right:20px;
background:rgba(255,255,255,.15);
padding:6px 14px;
border-radius:30px;
font-size:.75rem;
backdrop-filter:blur(5px);
}
/* ================= TICKET ULTRA ================= */

.ticket-section{
padding:120px 20px;
background:#f5f5f5;
}

.ticket-wrapper{
max-width:1100px;
margin:auto;
text-align:center;
}

.ticket-header h2{
font-size:2rem;
margin-bottom:10px;
color:#163832;
}

.ticket-header p{
opacity:.7;
margin-bottom:60px;
}

.ticket-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:40px;
}

.ticket-card{
background:linear-gradient(145deg,#0f3a33,#082622);
color:white;
padding:60px 30px;
border-radius:30px;
box-shadow:0 25px 60px rgba(0,0,0,.25);
position:relative;
overflow:hidden;
transition:.4s;
}

.ticket-card:hover{
transform:translateY(-10px);
}

.ticket-card.highlight{
background:linear-gradient(145deg,#163832,#0b2420);
border:2px solid #d4af37;
}

.ticket-label{
font-size:.9rem;
opacity:.8;
margin-bottom:15px;
letter-spacing:1px;
text-transform:uppercase;
}

.ticket-price{
font-size:2.8rem;
font-weight:700;
margin-bottom:25px;
}

.ticket-parking{
font-size:.9rem;
opacity:.9;
margin-bottom:30px;
}

.ticket-parking i{
color:#d4af37;
margin-right:5px;
}

.ticket-parking span{
margin:0 10px;
opacity:.4;
}

.ticket-btn{
display:inline-block;
padding:14px 35px;
background:#d4af37;
color:white;
border-radius:50px;
text-decoration:none;
font-weight:600;
position:relative;
overflow:hidden;
transition:.3s;
}

/* Shine effect */
.ticket-btn::before{
content:"";
position:absolute;
top:0;
left:-100%;
width:100%;
height:100%;
background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);
transition:.6s;
}

.ticket-btn:hover::before{
left:100%;
}

.ticket-btn:hover{
transform:translateY(-3px);
}

/* ================= BACKGROUND SOFT PATTERN ================= */

.paid-section{
padding:120px 20px;
background:
radial-gradient(circle at 10% 20%, rgba(212,175,55,0.08), transparent 40%),
radial-gradient(circle at 90% 80%, rgba(22,56,50,0.12), transparent 50%),
linear-gradient(135deg,#f7f7f7,#f1f3f4);
}


/* Category block animation */
.category-block{
margin-bottom:80px;
opacity:0;
transform:translateY(50px);
transition:1s ease;
}

.category-block.show{
opacity:1;
transform:translateY(0);
}

/* Grid */
.paid-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:30px;
}

/* Card */
.paid-item{
background:white;
padding:20px;
border-radius:20px;
box-shadow:0 10px 25px rgba(0,0,0,.05);
transition:.4s;
position:relative;
overflow:hidden;
text-align:center;
}

.paid-item:hover{
transform:translateY(-10px);
box-shadow:0 20px 40px rgba(0,0,0,.1);
}

/* Small image */
.paid-item img{
width:100%;
height:140px;
object-fit:cover;
border-radius:15px;
margin-bottom:15px;
transition:.4s;
}

.paid-item:hover img{
transform:scale(1.05);
}

/* Icon bounce */
.paid-item i{
font-size:1.4rem;
color:#d4af37;
margin-bottom:10px;
display:inline-block;
transition:.3s;
}

.paid-item:hover i{
animation:bounce .6s ease;
}

@keyframes bounce{
0%{transform:translateY(0)}
30%{transform:translateY(-8px)}
60%{transform:translateY(4px)}
100%{transform:translateY(0)}
}

.paid-item h4{
margin-bottom:8px;
}

.paid-item p{
font-weight:600;
}

/* Badge */
.badge{
position:absolute;
top:15px;
right:15px;
background:#d4af37;
color:white;
padding:5px 12px;
font-size:.7rem;
border-radius:20px;
}

/* Category title */
.category-title{
font-size:1.5rem;
font-weight:700;
margin:80px 0 40px;
color:#163832;
display:flex;
align-items:center;
gap:12px;
}

.category-title i{
background:#d4af37;
color:white;
padding:8px;
border-radius:50%;
font-size:.9rem;
}

/* Paid grid spacing */
.paid-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:30px;
}

/* Paid item */
.paid-item{
background:rgba(255,255,255,0.75);
backdrop-filter:blur(10px);
padding:35px 25px;
border-radius:25px;
box-shadow:
0 10px 25px rgba(0,0,0,.05),
0 30px 60px rgba(0,0,0,.06);
transition:.4s ease;
text-align:center;
position:relative;
overflow:hidden;
}

.paid-item:hover{
transform:translateY(-12px);
box-shadow:
0 20px 40px rgba(0,0,0,.1),
0 40px 80px rgba(0,0,0,.12);
}


.paid-item i{
font-size:1.4rem;
background:linear-gradient(45deg,#d4af37,#f7d774);
color:white;
width:50px;
height:50px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
margin:0 auto 15px;
transition:.3s;
}

.paid-item h4{
margin-bottom:8px;
font-weight:600;
}
.paid-item p{
font-weight:700;
color:#163832;
}

.paid-item small{
display:block;
opacity:.6;
margin-bottom:5px;
}

/* Icon bounce */
.paid-item i{
font-size:1.4rem;
color:#d4af37;
margin-bottom:10px;
display:inline-block;
transition:.3s;
}

.paid-item .note{
font-size:.8rem;
color:#c0392b;
margin-top:5px;
font-weight:600;
}

/* Highlight Gazebo */
.paid-item.highlight{
background:linear-gradient(145deg,#163832,#0b2420);
color:white;
}

.paid-item.highlight i{
color:#d4af37;
}

/* Badge */
.badge{
position:absolute;
top:15px;
right:15px;
background:linear-gradient(45deg,#d4af37,#f7d774);
color:#163832;
padding:6px 14px;
font-size:.7rem;
font-weight:600;
border-radius:20px;
box-shadow:0 5px 15px rgba(212,175,55,.4);
}
.paid-item{
animation:floatCard 6s ease-in-out infinite;
}

@keyframes floatCard{
0%,100%{transform:translateY(0);}
50%{transform:translateY(-4px);}
}

/* ================= PREMIUM HEADER ================= */

.paid-header{
text-align:center;
margin-bottom:80px;
position:relative;
}

.paid-badge{
display:inline-block;
background:rgba(212,175,55,0.1);
color:#d4af37;
padding:6px 18px;
border-radius:30px;
font-size:.8rem;
letter-spacing:1px;
text-transform:uppercase;
margin-bottom:20px;
font-weight:600;
}

/* Main Title */
.paid-header h2{
font-size:2.5rem;
font-weight:700;
color:#163832;
position:relative;
display:inline-block;
}

.paid-header h2 span{
background:linear-gradient(45deg,#d4af37,#f8e7a0);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

/* Decorative line */
.header-line{
width:80px;
height:4px;
margin:25px auto;
border-radius:5px;
background:linear-gradient(90deg,#d4af37,#163832);
}

/* Subtitle */
.paid-header p{
max-width:650px;
margin:auto;
font-size:1rem;
opacity:.7;
line-height:1.7;
}

/* Subtle glow effect */
.paid-header::after{
content:"";
position:absolute;
width:300px;
height:300px;
background:radial-gradient(circle,rgba(212,175,55,0.08),transparent 70%);
top:-100px;
left:50%;
transform:translateX(-50%);
z-index:-1;
}
/* ================= GOOGLE MAP PREMIUM ================= */

.map-section{
padding:120px 20px;
background:
radial-gradient(circle at 20% 20%, rgba(212,175,55,0.05), transparent 50%),
#f8f8f8;
text-align:center;
}

.map-header h2{
font-size:2rem;
margin-bottom:10px;
color:#163832;
}

.map-header i{
color:#d4af37;
margin-right:8px;
}

.map-header p{
opacity:.7;
margin-bottom:50px;
}

/* Responsive wrapper */
.map-wrapper{
position:relative;
width:100%;
max-width:1100px;
margin:auto;
border-radius:25px;
overflow:hidden;
box-shadow:0 25px 60px rgba(0,0,0,.15);
}

/* Aspect ratio modern */
.map-wrapper iframe{
width:100%;
height:500px;
border:0;
display:block;
}

/* Mobile */
@media(max-width:768px){
.map-wrapper iframe{
height:350px;
}
}

.map-cta{
margin-top:40px;
}
