/* =========================================================
   GURILAPSS Front-End V2 — Hijau Daun, Elegan, Mobile First
   ========================================================= */
:root{
  --gp-leaf-950:#07170f;
  --gp-leaf-900:#0b2116;
  --gp-leaf-800:#123321;
  --gp-leaf-700:#1a4a30;
  --gp-leaf-600:#23633f;
  --gp-leaf-500:#2f7a4d;
  --gp-leaf-400:#63a96f;
  --gp-leaf-300:#9cd3a1;
  --gp-leaf-100:#edf8ee;
  --gp-leaf-50:#f7fcf7;
  --gp-gold:#d3a33c;
  --gp-ink:#143224;
  --gp-muted:#657669;
  --gp-border:rgba(35,99,63,.16);
  --gp-shadow:0 24px 60px rgba(12,43,26,.12);
  --gp-shadow-soft:0 14px 32px rgba(12,43,26,.08);
  --gp-radius:26px;
}
html{scroll-behavior:smooth;}
body.gp-body, body{
  background:
    radial-gradient(850px 420px at 8% -8%, rgba(156,211,161,.28), transparent 62%),
    radial-gradient(700px 340px at 95% 5%, rgba(211,163,60,.12), transparent 55%),
    linear-gradient(180deg,#fbfefb 0%,#fff 36%,#f8fcf7 100%);
  color:var(--gp-ink);
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{transition:color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;}
img{max-width:100%;}
.line-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.line-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

/* ===== Navbar ===== */
.gp-nav{
  background:rgba(255,255,255,.82)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(35,99,63,.12);
  box-shadow:0 14px 34px rgba(14,47,29,.06);
  z-index:1030;
}
.gp-nav .container-fluid{max-width:1440px;}
.gp-nav .navbar-brand{min-width:0;color:var(--gp-ink);}
.gp-nav .navbar-brand img{height:42px!important;filter:drop-shadow(0 10px 18px rgba(13,51,31,.16));}
.gp-brand-title{font-weight:900;letter-spacing:.4px;line-height:1;color:var(--gp-leaf-700);font-size:1.05rem;}
.gp-brand-sub{font-size:.72rem;color:rgba(20,50,36,.62);line-height:1.15;margin-top:3px;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gp-nav .navbar-nav .nav-link{
  color:rgba(20,50,36,.76);
  font-weight:750;
  font-size:.94rem;
  padding:.58rem .82rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:.32rem;
}
.gp-nav .navbar-nav .nav-link:hover,.gp-nav .navbar-nav .nav-link.show{background:var(--gp-leaf-100);color:var(--gp-leaf-800);}
.gp-nav .navbar-nav .nav-link.active{background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800));color:#fff!important;box-shadow:0 14px 26px rgba(35,99,63,.22);}
.gp-nav .dropdown-menu{
  border:1px solid rgba(35,99,63,.12);
  border-radius:20px;
  padding:.55rem;
  box-shadow:0 28px 70px rgba(12,43,26,.16);
  overflow:hidden;
}
.gp-nav .dropdown-item{
  border-radius:14px;
  padding:.68rem .82rem;
  font-weight:700;
  color:rgba(20,50,36,.82);
  display:flex;
  align-items:center;
}
.gp-nav .dropdown-item i{color:var(--gp-leaf-600);}
.gp-nav .dropdown-item:hover,.gp-nav .dropdown-item.active{background:var(--gp-leaf-100);color:var(--gp-leaf-800);}
.gp-nav .dropdown-header{color:var(--gp-leaf-600);font-weight:900;font-size:.72rem;letter-spacing:.08em;}
.gp-nav-toggler{
  width:42px;height:42px;border-radius:14px!important;background:var(--gp-leaf-100)!important;color:var(--gp-leaf-800)!important;display:inline-flex;align-items:center;justify-content:center;
}
.gp-nav-toggler i{font-size:1.35rem;}
.gp-btn-admin{
  background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800))!important;
  border:0!important;
  color:#fff!important;
  border-radius:999px!important;
  font-weight:850!important;
  padding:.66rem 1.05rem!important;
  box-shadow:0 16px 30px rgba(35,99,63,.23);
}
.gp-btn-admin:hover{transform:translateY(-2px);box-shadow:0 20px 36px rgba(35,99,63,.29);}

/* ===== Mobile offcanvas ===== */
.gp-offcanvas{background:linear-gradient(180deg,#fff 0%,#f8fcf7 100%);}
.gp-offcanvas .offcanvas-header{border-bottom:1px solid var(--gp-border);}
.gp-mobile-brand{display:flex;align-items:center;gap:12px;}
.gp-mobile-brand img{width:42px;height:42px;object-fit:contain;}
.gp-mobile-section{margin:18px 0 8px;color:var(--gp-leaf-600);font-weight:900;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;}
.gp-offcanvas .list-group-item{
  border:0!important;
  border-radius:16px!important;
  margin-bottom:7px;
  font-weight:760;
  padding:.86rem .95rem;
  color:rgba(20,50,36,.86);
  background:transparent;
  display:flex;align-items:center;gap:10px;
}
.gp-offcanvas .list-group-item i{color:var(--gp-leaf-600);font-size:1.05rem;}
.gp-offcanvas .list-group-item:hover{background:var(--gp-leaf-100);}
.gp-offcanvas .list-group-item.active{background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800));color:#fff;}
.gp-offcanvas .list-group-item.active i{color:#fff;}

/* ===== Shared elegant sections/cards ===== */
.gp-page-hero,.listing-hero,.map-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(620px 260px at 8% 0%, rgba(156,211,161,.38), transparent 65%),
    radial-gradient(520px 260px at 94% 0%, rgba(211,163,60,.16), transparent 62%),
    linear-gradient(135deg,#f3fbf2 0%,#fff 58%,#eff8ee 100%)!important;
  border-bottom:1px solid rgba(35,99,63,.12)!important;
}
.gp-page-hero::after,.listing-hero::after,.map-hero::after{
  content:"";position:absolute;inset:auto -80px -150px auto;width:320px;height:320px;border-radius:999px;border:48px solid rgba(35,99,63,.07);pointer-events:none;
}
.gp-eyebrow,.gp-badge-soft{
  display:inline-flex;align-items:center;gap:.45rem;
  border-radius:999px;
  padding:.48rem .85rem;
  background:rgba(47,122,77,.10);
  color:var(--gp-leaf-700);
  border:1px solid rgba(47,122,77,.16);
  font-weight:900;
  font-size:.83rem;
}
.gp-section-title{font-weight:950;letter-spacing:-.03em;color:var(--gp-ink);}
.gp-section-sub{color:var(--gp-muted);max-width:720px;}
.gp-card,.card-soft,.listing-card{
  border:1px solid var(--gp-border)!important;
  border-radius:var(--gp-radius)!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:var(--gp-shadow-soft)!important;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.gp-card:hover,.card-soft:hover,.listing-card:hover{transform:translateY(-5px);box-shadow:var(--gp-shadow)!important;border-color:rgba(35,99,63,.25)!important;}
.gp-cover,.listing-cover{background-color:#edf8ee!important;background-position:center!important;background-size:cover!important;}
.btn-lumut,.btn-success.gp-leaf,.gp-btn-leaf{
  background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800))!important;
  border:0!important;color:#fff!important;font-weight:850!important;border-radius:999px!important;
  box-shadow:0 14px 28px rgba(35,99,63,.22);
}
.btn-lumut:hover,.btn-success.gp-leaf:hover,.gp-btn-leaf:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(35,99,63,.28);}
.btn-outline-success{border-color:rgba(35,99,63,.34)!important;color:var(--gp-leaf-700)!important;font-weight:800;border-radius:999px!important;}
.btn-outline-success:hover{background:var(--gp-leaf-600)!important;color:#fff!important;border-color:var(--gp-leaf-600)!important;}
.form-control,.form-select{border-radius:16px;border-color:rgba(35,99,63,.16);padding:.78rem .95rem;}
.form-control:focus,.form-select:focus{border-color:rgba(47,122,77,.55);box-shadow:0 0 0 .25rem rgba(47,122,77,.14);}

/* ===== Homepage hero overrides ===== */
.hero-slider{
  height:min(760px, calc(100vh - 72px));
  min-height:640px;
  border-bottom-left-radius:34px;
  border-bottom-right-radius:34px;
  background:#0d2618;
  box-shadow:0 30px 70px rgba(12,43,26,.16);
}
.hero-slide::before{
  background:
    linear-gradient(90deg, rgba(7,23,15,.88) 0%, rgba(18,51,33,.68) 48%, rgba(18,51,33,.18) 100%),
    radial-gradient(620px 360px at 18% 36%, rgba(99,169,111,.26), transparent 72%)!important;
}
.hero-content{max-width:780px;margin-left:clamp(18px,7vw,115px)!important;padding-right:18px;}
.hero-badge{background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);font-size:.93rem;}
.hero-title{font-size:clamp(2.6rem,6vw,5.5rem)!important;line-height:.98!important;letter-spacing:-.055em;}
.hero-title span{background:linear-gradient(135deg,var(--gp-leaf-500),var(--gp-leaf-700))!important;border-radius:18px;padding:.04em .16em .10em!important;}
.hero-sub{font-size:clamp(1rem,1.65vw,1.22rem)!important;max-width:650px;color:rgba(255,255,255,.88);}
.hero-search{max-width:760px;border-radius:26px!important;padding:.46rem!important;background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:0 18px 44px rgba(0,0,0,.18);}
.hero-search input{padding:1rem .9rem!important;min-width:260px;}
.hero-search button{border-radius:20px!important;background:linear-gradient(135deg,var(--gp-leaf-500),var(--gp-leaf-700))!important;white-space:nowrap;}
.hero-quick{border-radius:22px!important;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.16)!important;gap:1rem!important;flex-wrap:wrap;}
.slider-dots{bottom:24px!important;}
.dot{width:34px!important;height:8px!important;border-radius:999px!important;background:rgba(255,255,255,.42)!important;border:0!important;}
.dot.active{background:#fff!important;transform:scale(1)!important;}
.quick-category{margin-top:2.2rem!important;gap:.7rem!important;}
.cat-pill{color:var(--gp-leaf-800)!important;background:#fff!important;border:1px solid rgba(35,99,63,.16)!important;box-shadow:0 12px 28px rgba(12,43,26,.08)!important;text-decoration:none;}
.cat-pill:hover{background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800))!important;color:#fff!important;transform:translateY(-2px);}
.cat-pill:hover i{color:#fff!important;}
.section-head{gap:1rem;border-top:1px solid rgba(35,99,63,.09);padding-top:1.45rem;}
.section-head h2{font-size:clamp(1.45rem,2.2vw,2rem)!important;letter-spacing:-.025em;}
.runner-thumb{border-radius:22px!important;box-shadow:0 18px 36px rgba(12,43,26,.12)!important;}
.ads-sticky{top:96px!important;}

/* ===== Kunjungan/stat cards ===== */
.gp-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.gp-stat-card{padding:20px;border-radius:24px;background:linear-gradient(180deg,#fff,#f7fcf7);border:1px solid var(--gp-border);box-shadow:var(--gp-shadow-soft);}
.gp-stat-card .icon{width:44px;height:44px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--gp-leaf-100);color:var(--gp-leaf-700);font-size:1.25rem;margin-bottom:12px;}
.gp-stat-card .num{font-size:clamp(1.55rem,3vw,2.2rem);font-weight:950;letter-spacing:-.04em;color:var(--gp-leaf-800);line-height:1;}
.gp-stat-card .label{font-weight:800;color:rgba(20,50,36,.78);font-size:.93rem;margin-top:6px;}
.gp-stat-card .hint{color:var(--gp-muted);font-size:.82rem;margin-top:3px;}

/* ===== Listing pages ===== */
.gp-filter-shell{border:1px solid var(--gp-border);background:#fff;border-radius:24px;padding:14px;box-shadow:var(--gp-shadow-soft);}
.gp-listing-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;color:var(--gp-muted);}
.gp-listing-meta strong{color:var(--gp-leaf-700);}
.gp-card-title{font-weight:900;color:var(--gp-ink);letter-spacing:-.015em;}
.gp-card-location{color:var(--gp-leaf-700);font-weight:800;font-size:.86rem;}
.gp-empty{border:1px dashed rgba(35,99,63,.24);background:var(--gp-leaf-50);border-radius:24px;padding:28px;color:var(--gp-muted);}

/* ===== Map page ===== */
.map-shell{border-radius:28px!important;border-color:var(--gp-border)!important;box-shadow:var(--gp-shadow)!important;}
#sebaranMap{height:640px!important;}
.map-item{transition:background .18s ease;}
.map-item:hover{background:var(--gp-leaf-50)!important;}

/* ===== Footer mobile improvements ===== */
.gp-footer .gp-kpi{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.gp-footer .kpi{font-size:.82rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);border-radius:999px;padding:.4rem .7rem;color:rgba(255,255,255,.78);}
.gp-backtop{position:absolute;right:16px;bottom:16px;width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);color:#fff;text-decoration:none;}
.gp-backtop:hover{background:rgba(99,169,111,.22);color:#fff;}

/* ===== Mobile responsive ===== */
@media (max-width:1199.98px){
  .gp-nav{padding:.55rem 0;}
  .gp-nav .navbar-brand img{height:38px!important;}
  .gp-brand-sub{max-width:220px;}
}
@media (max-width:991.98px){
  .hero-slider{height:auto;min-height:620px;border-radius:0 0 28px 28px;}
  .hero-slide{align-items:flex-end!important;padding-bottom:88px;}
  .hero-content{margin-left:0!important;padding:0 22px 0 22px;max-width:100%;}
  .hero-search{display:block!important;border-radius:24px!important;}
  .hero-search input{width:100%;min-width:0!important;display:block;}
  .hero-search button{width:100%;justify-content:center;}
  .gp-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .section-head{align-items:flex-start!important;}
  .section-head a{white-space:nowrap;}
  #sebaranMap{height:460px!important;}
  .map-panel{max-height:420px!important;}
}
@media (max-width:575.98px){
  .gp-brand-title{font-size:.95rem;}
  .gp-brand-sub{display:none!important;}
  .gp-nav .navbar-brand img{height:35px!important;}
  .hero-slider{min-height:585px;}
  .hero-title{font-size:2.55rem!important;}
  .hero-badge{font-size:.8rem;padding:.48rem .78rem!important;}
  .hero-quick{display:grid!important;grid-template-columns:1fr;gap:.6rem!important;width:100%!important;padding:.78rem!important;}
  .hero-quick .qi{font-size:.9rem;}
  .quick-category{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 12px;}
  .cat-pill{justify-content:center;padding:.74rem .72rem!important;font-size:.9rem;}
  .runner-thumb{flex-basis:170px!important;height:106px!important;}
  .section-head{flex-direction:column;margin:2.2rem 0 1rem!important;}
  .section-head a{width:100%;}
  .card-body{padding:1rem;}
  .gp-stat-grid{grid-template-columns:1fr;}
  .gp-filter-shell{padding:12px;border-radius:20px;}
  .listing-cover{height:190px!important;}
  .gp-footer form{flex-direction:column;}
  .gp-footer .gp-btn{width:100%;}
}

/* ===== Revisi 3: mobile app look, compact thumbnails, filter kunjungan ===== */
.line-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.gp-filter-chips{display:flex;gap:8px;overflow:auto;padding-bottom:2px;scrollbar-width:none;}
.gp-filter-chips::-webkit-scrollbar{display:none;}
.gp-filter-chips .chip{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:.48rem .75rem;background:var(--gp-leaf-50);border:1px solid rgba(35,99,63,.13);font-size:.84rem;font-weight:800;color:var(--gp-leaf-700);}
.gp-mini-summary{border-radius:24px!important;}
.gp-mobile-visit-list{display:grid;gap:12px;}
.gp-visit-card{border:1px solid var(--gp-border);background:linear-gradient(180deg,#fff,#f8fcf8);border-radius:24px;box-shadow:var(--gp-shadow-soft);padding:14px;}
.gp-visit-card h3{font-size:1rem;font-weight:950;letter-spacing:-.02em;margin:0 0 4px;color:var(--gp-ink);line-height:1.18;}
.gp-visit-card p{margin:0;color:var(--gp-muted);font-size:.82rem;line-height:1.35;}
.gp-visit-total{min-width:58px;height:58px;border-radius:20px;background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800));color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1rem;font-weight:950;box-shadow:0 14px 26px rgba(35,99,63,.22);}
.gp-visit-date{display:flex;align-items:center;gap:6px;color:var(--gp-leaf-700);font-size:.82rem;font-weight:850;margin-top:12px;border-top:1px dashed rgba(35,99,63,.16);padding-top:10px;}
.gp-visit-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;}
.gp-visit-breakdown span{background:var(--gp-leaf-50);border:1px solid rgba(35,99,63,.10);border-radius:16px;padding:.55rem .6rem;color:var(--gp-muted);font-size:.78rem;}
.gp-visit-breakdown strong{display:block;color:var(--gp-ink);font-size:.98rem;line-height:1.1;}
.gp-mobile-bottom{position:fixed;left:10px;right:10px;bottom:10px;z-index:1045;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:7px;border-radius:24px;background:rgba(255,255,255,.94);border:1px solid rgba(35,99,63,.13);box-shadow:0 18px 50px rgba(12,43,26,.22);backdrop-filter:blur(16px);}
.gp-mobile-bottom a{min-width:0;text-decoration:none;color:rgba(20,50,36,.64);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:18px;padding:8px 2px;font-size:.68rem;font-weight:850;line-height:1;}
.gp-mobile-bottom a i{font-size:1.15rem;line-height:1;}
.gp-mobile-bottom a.active{background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800));color:#fff;box-shadow:0 10px 24px rgba(35,99,63,.20);}
.gp-mobile-bottom a:hover{background:var(--gp-leaf-50);color:var(--gp-leaf-700);}
.gp-mobile-bottom a.active:hover{color:#fff;background:linear-gradient(135deg,var(--gp-leaf-600),var(--gp-leaf-800));}

@media (max-width:991.98px){
  .gp-filter-sticky-mobile{position:sticky;top:74px;z-index:22;box-shadow:0 16px 40px rgba(12,43,26,.14);}
  .gp-filter-sticky-mobile .form-label{font-weight:850;color:var(--gp-leaf-700);}
  .gp-filter-sticky-mobile .form-control,.gp-filter-sticky-mobile .form-select{min-height:44px;padding:.62rem .75rem;border-radius:14px;font-size:.9rem;}
}
@media (max-width:575.98px){
  .gp-body{padding-bottom:92px;background:#f6fbf5;}
  .gp-mobile-app-page{padding-top:18px!important;}
  .gp-page-hero,.listing-hero,.map-hero{border-bottom-left-radius:28px;border-bottom-right-radius:28px;}
  .gp-page-hero .display-5,.listing-hero .display-5{font-size:1.86rem!important;letter-spacing:-.04em;}
  .gp-page-hero .lead,.listing-hero .lead{font-size:.98rem;}
  .gp-filter-sticky-mobile{top:64px;margin-left:-2px;margin-right:-2px;border-radius:22px;max-height:72vh;overflow:auto;}
  .gp-filter-shell .btn{min-height:44px;}
  .gp-filter-chips{margin-left:-2px;margin-right:-2px;}
  .gp-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .gp-stat-card{padding:14px;border-radius:22px;}
  .gp-stat-card .icon{width:36px;height:36px;border-radius:14px;font-size:1rem;margin-bottom:9px;}
  .gp-stat-card .num{font-size:1.28rem;letter-spacing:-.035em;}
  .gp-stat-card .label{font-size:.76rem;line-height:1.15;}
  .gp-stat-card .hint{font-size:.7rem;}
  .gp-mini-summary .gp-badge-soft{font-size:.7rem;padding:.36rem .55rem;}
  .gp-mini-summary .display-6{font-size:1.38rem;}
  .gp-mobile-listing-grid{--bs-gutter-x:.72rem;--bs-gutter-y:.85rem;}
  .gp-mobile-card-col .listing-card{border-radius:21px!important;box-shadow:0 12px 34px rgba(12,43,26,.10)!important;}
  .gp-mobile-card-col .listing-card:hover{transform:none;}
  .gp-mobile-card-col .listing-cover{height:112px!important;border-radius:0!important;}
  .gp-mobile-card-col .p-4{padding:.78rem!important;}
  .gp-mobile-card-col .gp-card-location{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .gp-mobile-card-col .gp-card-title{font-size:.92rem;line-height:1.15;margin-bottom:.45rem!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.1em;}
  .gp-mobile-card-col .line-3{display:none;}
  .gp-mobile-card-col .d-flex.gap-2{gap:.35rem!important;}
  .gp-mobile-card-col .btn{font-size:.72rem;padding:.42rem .54rem;border-radius:999px!important;box-shadow:none;}
  .gp-mobile-card-col .btn i{margin-right:.12rem!important;}
  .gp-listing-meta{font-size:.82rem;background:#fff;border:1px solid var(--gp-border);border-radius:18px;padding:10px 12px;box-shadow:var(--gp-shadow-soft);}
  .gp-visit-card{border-radius:22px;padding:13px;}
  .gp-visit-breakdown{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:576px){.gp-mobile-bottom{display:none;}}

/* ===== Revisi 4: filter kunjungan tidak menutupi konten + app-like mobile ===== */
.gp-kunjungan-mobile-actions{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:rgba(255,255,255,.96);border:1px solid var(--gp-border);
  border-radius:22px;padding:12px 13px;box-shadow:var(--gp-shadow-soft);
}
.gp-filter-desktop{position:relative;z-index:1;}
.gp-filter-offcanvas{
  height:auto!important;max-height:86vh;border-top-left-radius:28px;border-top-right-radius:28px;
  border-top:1px solid var(--gp-border);box-shadow:0 -20px 60px rgba(12,43,26,.20);
  background:linear-gradient(180deg,#fff 0%,#f7fcf7 100%);
}
.gp-filter-offcanvas .offcanvas-header{border-bottom:1px solid rgba(35,99,63,.12);padding:16px 18px 12px;}
.gp-filter-offcanvas .offcanvas-body{padding:14px 18px 22px;overflow:auto;}
.gp-filter-offcanvas .form-label{font-weight:900;color:var(--gp-leaf-700);}
.gp-filter-offcanvas .form-control,.gp-filter-offcanvas .form-select{min-height:44px;border-radius:15px;font-size:.9rem;background:#fff;}
.gp-mobile-app-page .gp-stat-grid,.gp-mobile-app-page .gp-mini-summary,.gp-mobile-app-page .gp-visit-card{will-change:transform;}
.gp-mobile-app-page .gp-filter-chips{position:relative;z-index:1;}
@media (max-width:991.98px){
  .gp-filter-sticky-mobile{position:static!important;top:auto!important;max-height:none!important;overflow:visible!important;}
  .gp-page-hero{padding-bottom:2rem!important;}
  .gp-mobile-app-page{padding-top:14px!important;}
  .gp-kunjungan-mobile-actions{position:relative;z-index:2;margin-top:-6px;}
  .gp-mobile-visit-list{padding-bottom:4px;}
}
@media (max-width:575.98px){
  .gp-filter-chips .chip{font-size:.76rem;padding:.4rem .62rem;}
  .gp-kunjungan-mobile-actions .btn{min-height:42px;padding:.54rem .85rem;font-size:.84rem;}
  .gp-mobile-app-page .h3{font-size:1.28rem;}
  .gp-mobile-visit-list{gap:10px;}
  .gp-visit-card{background:linear-gradient(180deg,#fff,#fbfefb);}
  .gp-visit-total{min-width:52px;height:52px;border-radius:18px;}
}

/* ===== Revisi 5: desktop fix, detail hotel/resto, clickable thumbnails ===== */
.gp-title-link{color:inherit;text-decoration:none;}
.gp-title-link:hover{color:var(--gp-leaf-700);text-decoration:underline;text-underline-offset:3px;}
a.listing-cover{transition:transform .22s ease, filter .22s ease;}
a.listing-cover:hover{filter:saturate(1.04) contrast(1.02);}
.gp-detail-hero{background:linear-gradient(135deg,#f4fbf4 0%,#fff 52%,#eef8ef 100%);border-bottom:1px solid var(--gp-border);}
.gp-back-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--gp-leaf-700);font-weight:850;margin-bottom:10px;}
.gp-back-link:hover{color:var(--gp-leaf-900);}
.gp-detail-cover{min-height:420px;border-radius:32px;background-size:cover;background-position:center;box-shadow:var(--gp-shadow);border:1px solid rgba(35,99,63,.14);}
.gp-detail-meta{display:flex;gap:8px;flex-wrap:wrap;}
.gp-detail-meta span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(35,99,63,.14);background:#fff;border-radius:999px;padding:.48rem .78rem;color:var(--gp-leaf-700);font-weight:850;font-size:.86rem;box-shadow:var(--gp-shadow-soft);}
.gp-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.gp-info-grid>div{border:1px solid var(--gp-border);background:var(--gp-leaf-50);border-radius:18px;padding:14px;}
.gp-info-grid small{display:block;color:var(--gp-muted);font-weight:800;margin-bottom:4px;}
.gp-info-grid strong{display:block;color:var(--gp-ink);font-size:1rem;word-break:break-word;}
.gp-mini-feature{border:1px solid var(--gp-border);border-radius:18px;padding:14px;background:#fff;}
.gp-mini-feature strong{display:block;color:var(--gp-leaf-800);font-weight:900;margin-bottom:4px;}
.gp-mini-feature p{margin:0;color:var(--gp-muted);font-size:.9rem;}
.gp-gallery-thumb{height:180px;border-radius:24px;background-size:cover;background-position:center;border:1px solid var(--gp-border);box-shadow:var(--gp-shadow-soft);}
@media (min-width:992px){
  .gp-filter-desktop{max-width:100%;margin-left:auto;margin-right:auto;}
  .gp-filter-desktop .row{align-items:end;}
}
@media (max-width:575.98px){
  .gp-detail-cover{min-height:265px;border-radius:26px;}
  .gp-info-grid{grid-template-columns:1fr;gap:10px;}
  .gp-gallery-thumb{height:128px;border-radius:20px;}
  .gp-detail-meta span{font-size:.78rem;padding:.4rem .62rem;}
  .gp-detail-hero .display-5{font-size:1.82rem!important;}
  .gp-mobile-card-col .gp-card-action{font-size:.68rem;padding:.38rem .48rem;}
}

/* REV6/7: kartu hotel-resto full clickable */
.gp-click-card{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.gp-click-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(20,70,42,.12)}
.gp-click-card a,.gp-click-card button{position:relative;z-index:3}
.gp-detail-actions .btn{font-weight:800;border-radius:999px;padding:.86rem 1.1rem}
.gp-share-box{border:1px solid rgba(29,84,52,.12);border-radius:22px;padding:1rem;background:linear-gradient(180deg,#fff,#f7fbf8)}
.gp-share-buttons{display:flex;flex-wrap:wrap;gap:.5rem}
.gp-share-buttons a,.gp-share-buttons button{border-radius:999px;font-weight:800}

/* ===== Revisi 7: klik detail home, Deswita, fasilitas bergambar, galeri popup ===== */
.gp-home-lodging-card{overflow:hidden;cursor:pointer;display:block;}
.gp-home-lodging-card .ratio{transition:transform .28s ease,filter .28s ease;}
.gp-home-lodging-card:hover .ratio{transform:scale(1.035);filter:saturate(1.08) contrast(1.03);}
.gp-detail-mini-link{font-size:.78rem;font-weight:900;color:var(--gp-leaf-700);display:inline-flex;align-items:center;gap:.35rem;}
.gp-mini-feature-with-img{display:flex;gap:12px;align-items:flex-start;padding:12px;}
.gp-facility-img{flex:0 0 92px;width:92px;height:78px;border:0;border-radius:16px;background-size:cover;background-position:center;box-shadow:0 10px 24px rgba(12,43,26,.12);cursor:pointer;position:relative;overflow:hidden;}
.gp-facility-img::after{content:'\F14A';font-family:'bootstrap-icons';position:absolute;right:8px;bottom:7px;width:25px;height:25px;border-radius:999px;background:rgba(255,255,255,.88);color:var(--gp-leaf-800);display:grid;place-items:center;font-size:.82rem;}
.gp-mini-feature-body{min-width:0;}
.gp-gallery-click{border:0;width:100%;position:relative;overflow:hidden;cursor:pointer;display:block;}
.gp-gallery-click::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.30));opacity:0;transition:.2s ease;}
.gp-gallery-click span{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:999px;background:rgba(255,255,255,.94);display:grid;place-items:center;color:var(--gp-leaf-800);opacity:0;transform:translateY(6px);transition:.2s ease;box-shadow:0 10px 24px rgba(0,0,0,.15);}
.gp-gallery-click:hover::before,.gp-gallery-click:hover span{opacity:1;transform:none;}
.gp-gallery-modal .modal-content{background:#0b1710;border:1px solid rgba(255,255,255,.12);border-radius:26px;overflow:hidden;box-shadow:0 30px 100px rgba(0,0,0,.45);}
.gp-gallery-close{position:absolute;top:14px;right:14px;z-index:5;background-color:rgba(0,0,0,.35);border-radius:999px;padding:.7rem;}
.gp-gallery-modal-body{min-height:70vh;display:grid;place-items:center;position:relative;background:#06100a;}
.gp-gallery-modal-body img{max-width:100%;max-height:78vh;object-fit:contain;display:block;}
.gp-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;font-size:1.4rem;backdrop-filter:blur(8px);}
.gp-gallery-prev{left:16px}.gp-gallery-next{right:16px}
.gp-gallery-nav:hover{background:rgba(255,255,255,.25);}
.gp-gallery-caption{padding:14px 18px;color:#fff;background:linear-gradient(180deg,#0b1710,#102519);}
.gp-gallery-caption strong{display:block;font-size:1.05rem;}.gp-gallery-caption p{margin:.25rem 0 0;color:rgba(255,255,255,.74);}
@media(max-width:575.98px){
  .gp-mobile-bottom{grid-template-columns:repeat(6,1fr);left:6px;right:6px;gap:2px;padding:6px;}
  .gp-mobile-bottom a{font-size:.61rem;padding:7px 1px;}
  .gp-mobile-bottom a i{font-size:1rem;}
  .gp-mini-feature-with-img{display:block;}
  .gp-facility-img{width:100%;height:116px;margin-bottom:10px;}
  .gp-gallery-modal-body{min-height:58vh;}.gp-gallery-nav{width:42px;height:42px;}.gp-gallery-prev{left:8px}.gp-gallery-next{right:8px}
}
