.form-select,.form-control{border-radius:10px;border:1px solid #cfe3e0;box-shadow:0 4px 12px rgba(0,0,0,.12);transition:.2s}
.form-select:focus,.form-control:focus{border-color:#0d9488;box-shadow:0 6px 18px rgba(13,148,136,.35)}
.btn{border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.18);transition:.15s}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(0,0,0,.25)}
/* tombol menu atas */
.navbar .nav-link{border-radius:10px;padding:7px 14px!important;margin:3px;background:#fff;color:#0b4f4a;box-shadow:0 4px 10px rgba(0,0,0,.15);transition:.2s}
.navbar .nav-link:hover{background:#e6f6f4;transform:translateY(-2px);box-shadow:0 8px 16px rgba(13,148,136,.3)}
.navbar .nav-link:active{transform:scale(.94);box-shadow:0 2px 5px rgba(0,0,0,.2)}
.navbar .nav-link.active{background:#0d9488;color:#fff!important;box-shadow:0 6px 16px rgba(13,148,136,.45)}
.navbar-toggler{box-shadow:0 4px 10px rgba(0,0,0,.18)}.navbar-brand img{box-shadow:0 3px 8px rgba(0,0,0,.2)}
/* efek klik & hover */
.card{transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-5px);box-shadow:0 14px 28px rgba(0,0,0,.18)!important}
.card:active{transform:scale(.97)}.stat .b{transition:.2s}.stat .b:hover{background:#ffffff33;transform:scale(1.05)}
.btn:active,.form-select:active{transform:scale(.95)}
.btn,.nav-link,.qc .card{position:relative;overflow:hidden}
.rip{position:absolute;border-radius:50%;background:rgba(13,148,136,.35);transform:scale(0);animation:rip .6s linear;pointer-events:none}
@keyframes rip{to{transform:scale(4);opacity:0}}
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s}.rv.on{opacity:1;transform:none}

/* penanda peta berikon */
.pin{width:38px;height:38px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 4px 10px rgba(0,0,0,.4);display:grid;place-items:center}
.pin span{transform:rotate(45deg);font-size:18px;line-height:1}

/* ===== Hero slider (foto latar bisa lebih dari satu) ===== */
.hs{position:relative;overflow:hidden;min-height:clamp(540px,80vh,800px);display:flex;align-items:center;padding:100px 0 190px}
.hs-track,.hs-slide,.hs-shade{position:absolute;inset:0}
/* foto latar tajam: tanpa zoom/scale (zoom membuat gambar tampak blur) & overlay gelap dibuat tipis */
.hs-slide{background-size:cover;background-position:center;opacity:0;transition:opacity 1.1s ease;will-change:opacity}
.hs-slide.on{opacity:1}
.hs-shade{background:linear-gradient(180deg,rgba(0,30,40,.22) 0%,rgba(0,30,40,.02) 38%,rgba(0,30,40,.02) 62%,rgba(0,30,40,.16) 100%)}
.hs-content h1,.hs-content p,.hs-content .badge{text-shadow:0 2px 12px rgba(0,0,0,.65)}
.hs-content .badge{background:rgba(0,30,40,.35)}
.hs-content{position:relative;z-index:3}
.hs::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:80px;z-index:2;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 100V62C240 0 480 6 720 44s480 46 720-12v68z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat}
.hs-nav{position:absolute;top:50%;z-index:4;width:50px;height:50px;margin-top:-25px;border-radius:50%;display:grid;place-items:center;font-size:1.25rem;color:#fff;cursor:pointer;
 background:rgba(8,32,42,.45);border:1px solid rgba(255,255,255,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}
.hs-prev{left:24px}.hs-next{right:24px}
.hs-nav:hover{background:rgba(13,148,136,.85);border-color:#fff;transform:scale(1.12);box-shadow:0 0 0 6px rgba(255,255,255,.14),0 10px 24px rgba(0,0,0,.4)}
.hs-nav:active{transform:scale(.92)}.hs-nav:focus-visible{outline:3px solid #fbbf24;outline-offset:3px}
.hs-dots{position:absolute;left:50%;bottom:112px;transform:translateX(-50%);z-index:4;display:flex;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(8,32,42,.45)}
.hs-dot{width:10px;height:10px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.55);cursor:pointer;transition:width .3s,background .3s}
.hs-dot.on{width:34px;background:#fbbf24}
@media(max-width:575px){.hs-nav{width:40px;height:40px;margin-top:-20px;font-size:1rem}.hs-prev{left:10px}.hs-next{right:10px}.hs{padding:80px 0 170px}}
@media(prefers-reduced-motion:reduce){.hs-slide{transition:opacity .3s}}
.qc{margin-top:-120px;position:relative;z-index:3}
/* icon menu cepat: kotak berwarna seperti kartu ringkasan admin */
.qc-ic{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;background:var(--c,#0d9488);box-shadow:0 8px 16px color-mix(in srgb,var(--c,#0d9488) 50%,transparent)}
.qc .card:hover,.qc .card:focus-within{box-shadow:0 0 0 2px #0d9488,0 14px 28px rgba(0,0,0,.18)!important}
/* admin: galeri slide */
.slide-th{border:1px solid #cfe3e0;border-radius:12px;padding:8px;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.1)}.slide-th img{width:100%;height:90px;object-fit:cover;border-radius:8px}

/* tombol kuning Pesan Tiket / Lihat Selengkapnya: biru gradasi saat ditekan */
.btn.btn-tix{background:#ffc107;border-color:#ffc107;color:#1f2937;font-weight:500}
.btn.btn-tix:hover{background:#ffcd39;border-color:#ffcd39;color:#1f2937}
.btn.btn-tix:active,.btn.btn-tix:focus,.btn.btn-tix:focus-visible{background:linear-gradient(135deg,#38bdf8 0%,#2563eb 55%,#1e3a8a 100%)!important;border-color:transparent!important;color:#fff!important;box-shadow:0 6px 16px rgba(37,99,235,.45)!important}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Halaman detail wisata (gaya kartu deskripsi: foto kiri, teks kanan) ===== */
.dest{background:linear-gradient(135deg,#0b4f4a,#0d9488);border-radius:28px;padding:clamp(20px,4vw,48px);font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:#fff}
.dest-img{border-radius:22px;overflow:hidden;background:#d2ece8;aspect-ratio:4/3;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.dest-img img{width:100%;height:100%;object-fit:cover;display:block}
.dest-ph{height:100%;display:grid;place-items:center;font-size:4rem;color:#0d9488}
.dest-eyebrow{color:#a7f3d0;font-weight:700;font-size:.85rem;margin-bottom:6px}
.dest-title{font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:clamp(2rem,4.5vw,2.75rem);line-height:1.1;margin-bottom:14px;color:#fff}
.dest-desc{color:#e0f2ef;line-height:1.75;white-space:pre-line;margin-bottom:18px}
.dest-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.dest-list li{display:flex;align-items:center;gap:12px;font-size:.92rem;font-weight:500}
.dest-list li span{flex:none;width:26px;height:26px;border-radius:50%;background:#ffffff26;color:#fff;display:grid;place-items:center;font-size:.95rem}
.btn.btn-dest{background:#fff;border-color:#fff;color:#0b4f4a;font-weight:600;padding:10px 22px;border-radius:999px;box-shadow:0 8px 18px rgba(0,0,0,.25)}
.btn.btn-dest:hover{background:#e6f7f4;border-color:#e6f7f4;color:#0b4f4a}
.btn.btn-dest:active,.btn.btn-dest:focus-visible{background:linear-gradient(135deg,#38bdf8 0%,#2563eb 55%,#1e3a8a 100%)!important;border-color:transparent!important;color:#fff!important}

.btn.btn-dest-out{border:1px solid #ffffff99;color:#fff;border-radius:999px;padding:10px 22px;font-weight:600;background:transparent}
.btn.btn-dest-out:hover,.btn.btn-dest-out:focus-visible{background:#ffffff26;border-color:#fff;color:#fff}

/* Struktur organisasi */
.org{display:flex;flex-direction:column;align-items:center;gap:0}
.org-row{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:18px;padding:34px 0 0;width:100%}
.org-row:first-child{padding-top:0}
.org-row:not(:first-child)::before{content:"";position:absolute;top:0;left:50%;width:2px;height:34px;background:#0d9488;opacity:.45;transform:translateX(-1px)}
.org-card{width:200px;background:#fff;border-radius:20px;padding:20px 14px;text-align:center;box-shadow:0 8px 24px #0b4f4a22;border-top:4px solid #0d9488;transition:.2s}
.org-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #0b4f4a33}
.org-ph{width:96px;height:96px;margin:0 auto 12px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#0b4f4a,#0d9488);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.8rem;box-shadow:0 0 0 4px #d2ece8}
.org-ph img{width:100%;height:100%;object-fit:cover}
.org-nm{font-weight:700;line-height:1.25}.org-jb{font-size:.85rem;color:#0d7c72;margin-top:4px;font-weight:600}
@media(max-width:575px){.org-card{width:44%;min-width:150px;padding:16px 10px}.org-ph{width:80px;height:80px}}
