/* ================= MAP WRAPPER ================= */

.map-wrapper{
margin-bottom:25px;
}

/* ================= MAP ================= */

#map{
width:100%;
height:340px;
border:1px solid #ddd;
border-radius:10px;
overflow:hidden;
}

/* ================= LEGENDA MOBILE ================= */

.map-legend{
position:relative;
width:100%;
margin-top:10px;
background:#fff;
padding:10px;
border-radius:8px;
border:1px solid #ddd;
font-size:12px;
}

/* ================= ITEM ================= */

.legend-item{
display:flex;
align-items:center;
margin-bottom:6px;
cursor:pointer;
}
.legend-item.inactive{
opacity:0.4;
text-decoration:line-through;
}

.legend-color{
width:14px;
height:14px;
border-radius:50%;
margin-right:8px;
border:1px solid #333;
}

/* ================= DESKTOP ================= */

@media (min-width:768px){

.map-wrapper{
position:relative;
}

#map{
height:420px;
}

.map-legend{
position:absolute;
top:12px;
right:12px;
width:200px;
font-size:13px;
padding:12px;
box-shadow:0 4px 12px rgba(0,0,0,0.12);
z-index: 1000;
}

}

/* ================= BUTTON NEARBY ================= */

.btn-nearby{
background:linear-gradient(135deg,#0d6efd,#3b82f6);
color:white;
border:none;
padding:10px 20px;
font-size:15px;
font-weight:600;
border-radius:12px;
cursor:pointer;
display:inline-flex;
align-items:center;
justify-content:center;
gap:6px;

box-shadow:0 4px 12px rgba(13,110,253,0.25);
transition:all 0.25s ease;
}

/* HOVER EFFECT */

.btn-nearby:hover{
background:linear-gradient(135deg,#0b5ed7,#2563eb);
transform:translateY(-2px);
box-shadow:0 6px 18px rgba(0,0,0,0.2);
color:white;
}

/* CLICK EFFECT */

.btn-nearby:active{
transform:scale(0.97);
}


/* ================= MOBILE ================= */

@media (max-width:768px){

.btn-nearby{
width:100%;
font-size:16px;
padding:14px;
border-radius:14px;
box-shadow:0 6px 18px rgba(0,0,0,0.18);
}

}

/* ================= NEARBY CAROUSEL ================= */

.slider-wrapper {
position: relative;
overflow: hidden;
}

.slider-track {
display: flex;
transition: transform 0.5s ease;
}

.slider-card {
flex: 0 0 33.333%;
padding: 0 10px;
}

/* ================= IMAGE ================= */

.image-wrapper {
position: relative;
height: 240px;
border-radius: 15px;
overflow: hidden;
}

.image-wrapper img {
width: 100%;
height: 100%;
object-fit: cover;
transition: 0.4s ease;
}

.nearby-card:hover img {
transform: scale(1.05);
}

/* ================= BADGE ================= */

.distance-badge {
position: absolute;
top: 12px;
left: 12px;
background: rgba(13,110,253,0.85);
color: white;
padding: 6px 12px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}

.rating-badge {
position: absolute;
top: 12px;
right: 12px;
background: rgba(255,255,255,0.9);
color: #ffb400;
padding: 6px 12px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}

.bottom-info {
position: absolute;
bottom: 15px;
left: 15px;
}

/* ================= KATEGORI ================= */

.category-badge {
font-size: 11px;
padding: 4px 10px;
border-radius: 20px;
color: white;
margin-bottom: 6px;
display: inline-block;
opacity: 0.9;
}

/* ================= NAMA ================= */

.wisata-name {
background: #e6f7f1;
color: #0f766e;
padding: 6px 14px;
border-radius: 20px;
font-weight: 600;
}

/* ================= DETAIL BUTTON ================= */

.detail-btn {
position: absolute;
bottom: 15px;
right: 15px;
background: #0d6efd;
color: white;
padding: 6px 14px;
border-radius: 20px;
font-size: 13px;
text-decoration: none;
font-weight: 600;
transition: 0.3s ease;
}

.detail-btn:hover {
background: #084298;
}

/* ================= RESPONSIVE SLIDER ================= */

@media (max-width:768px){

.slider-card{
flex:0 0 100%;
}

}

/* ================= BUTTON NAVIGATION ================= */

.slider-btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: white;
border: none;
width: 45px;
height: 45px;
border-radius: 50%;
font-size: 20px;
font-weight: bold;
color: #0d6efd;
cursor: pointer;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
display: flex;
align-items: center;
justify-content: center;
z-index: 20;
}

.slider-btn:hover {
background: #0d6efd;
color: white;
}

.slider-btn.left { left:-15px; }
.slider-btn.right { right:-15px; }

/* ================= SWIPER ================= */

.swiper {
width:100%;
padding-bottom:40px;
}

.swiper-slide {
display:flex;
justify-content:center;
}

/* ================= TERBAIK CARD ================= */

.terbaik-card{
position:relative;
border-radius:20px;
overflow:hidden;
height:300px;
}

.terbaik-card img{
width:100%;
height:100%;
object-fit:cover;
}

.terbaik-overlay{
position:absolute;
bottom:0;
width:100%;
padding:20px;
background:linear-gradient(to top, rgba(0,0,0,0.85), transparent);
color:white;
}

.terbaik-title{
font-size:16px;
font-weight:600;
margin-bottom:8px;
}

.terbaik-category{
font-size:12px;
padding:4px 12px;
border-radius:20px;
background:var(--cat-color);
display:inline-block;
margin-bottom:8px;
}

.terbaik-rating{
position:absolute;
top:12px;
right:12px;
background:#ffc107;
color:black;
font-size:12px;
font-weight:600;
padding:6px 12px;
border-radius:20px;
}

.terbaik-detail{
display:inline-block;
padding:6px 14px;
border-radius:20px;
background:#0d6efd;
color:white;
font-size:13px;
text-decoration:none;
font-weight:600;
}

/* ================= MOBILE ================= */

@media (max-width:768px){

.terbaikSwiper{
width:100%;
}

.swiper-slide{
width:100%!important;
padding: 0 !important;
margin: 0 !important;
}

.terbaik-card{
width:100%;
height:220px;
border-radius:16px;
margin:0;
}

}


/* ================= CARD PARIWISATA ================= */

.pariwisata-card{
background:white;
border-radius:18px;
overflow:hidden;
box-shadow:0 4px 15px rgba(0,0,0,0.06);
transition:all 0.3s ease;
width:100%;
max-width:100%;
}

.pariwisata-card:hover{
transform:translateY(-4px);
box-shadow:0 10px 25px rgba(0,0,0,0.12);
}


/* ================= IMAGE ================= */

.wisata-image{
width:100%;
height:140px;
overflow:hidden;
}

.wisata-image img{
width:100%;
height:100%;
object-fit:cover;
display:block;
}


/* ================= BODY ================= */

.wisata-body{
padding:12px 16px;
}


/* ================= CATEGORY ================= */

.wisata-category{
display:inline-block;
background:#20c997;
color:white;
font-size:11px;
padding:3px 10px;
border-radius:20px;
margin-bottom:4px;
}


/* ================= TITLE ================= */

.wisata-title{
font-size:16px;
font-weight:600;
margin-bottom:4px;
}


/* ================= RATING ================= */

.wisata-rating{
font-size:12px;
margin-bottom:4px;
}

.star-filled{
color:#ffc107;
}

.star-empty{
color:#ddd;
}


/* ================= ADDRESS ================= */

.wisata-address{
font-size:12px;
color:#666;
margin-bottom:10px;
}


/* ================= BUTTON (DIUBAH) ================= */

.wisata-btn{
display:inline-block;
background:#0d6efd;
color:white;
padding:6px 14px;
border-radius:20px;
font-size:13px;
font-weight:500;
text-decoration:none;
transition:0.25s ease;
}

.wisata-btn:hover{
background:#0b5ed7;
transform:translateY(-1px);
box-shadow:0 4px 10px rgba(0,0,0,0.15);
}


/* ================= MOBILE ================= */


@media (max-width:768px){

.pariwisata-card{
border-radius:14px;
}

/* gambar dibuat seperti banner tipis */

.wisata-image{
height:85px;
}

/* body lebih rapat */

.wisata-body{
padding:8px 12px;
}

/* kategori */

.wisata-category{
font-size:10px;
padding:2px 8px;
margin-bottom

/* tombol lebih kecil */

.wisata-btn{
font-size:12px;
padding:5px 12px;
}

}


/* ================= DESKTOP ================= */

@media (min-width:768px){

.wisata-image{
height:150px;
}

.wisata-title{
font-size:17px;
}

.wisata-btn{
float:right;
}

}

/* ================= BERITA ================= */

.berita-card{
border-radius:15px;
overflow:hidden;
transition:0.3s ease;
}

.berita-card:hover{
transform:translateY(-6px);
box-shadow:0 12px 25px rgba(0,0,0,0.15);
}

.berita-card img{
transition:0.4s ease;
}

.berita-card:hover img{
transform:scale(1.05);
}   