/* =========================================================
   Jejak Religi Kepri — halaman depan publik
   Gaya: lega, putih, pin merah di atas peta (terinspirasi portal
   wisata nasional). Setiap agama tetap punya warna & pola sendiri
   lewat [data-agama].
   ========================================================= */

:root{
  --merah:#E94B35;
  --hijau:#0C5A8C;       /* biru laut: tombol utama, kontak */
  --hijau-tua:#08324F;   /* footer */
  --emas:#F2A93B;
  --kertas:#FFFFFF;
  --abu:#F4F6F8;
  --tinta:#1B2733;
  --redup:#5B6770;
  --garis:rgba(27,39,51,.14);
  --font-judul:'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-isi:'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --lebar:1160px;
}

/* ---------- Warna & pola per agama ---------- */
[data-agama="islam"]{
  --aksen:#17604A; --di-aksen:#fff; --aksen-muda:#DCEFE6; --aksen-teks:#17604A;
  --pola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.2' stroke-width='1.2'%3E%3Crect x='9' y='9' width='30' height='30'/%3E%3Crect x='9' y='9' width='30' height='30' transform='rotate(45 24 24)'/%3E%3C/g%3E%3C/svg%3E");
}
[data-agama="buddha"]{
  --aksen:#E9A71C; --di-aksen:#2A1B02; --aksen-muda:#FBEBC2; --aksen-teks:#7A4F00;
  --pola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%232A1B02' stroke-opacity='.22' stroke-width='1.2'%3E%3Ccircle cx='28' cy='28' r='10'/%3E%3Ccircle cx='28' cy='28' r='20'/%3E%3Ccircle cx='0' cy='0' r='10'/%3E%3Ccircle cx='0' cy='0' r='20'/%3E%3Ccircle cx='56' cy='0' r='10'/%3E%3Ccircle cx='56' cy='0' r='20'/%3E%3Ccircle cx='0' cy='56' r='10'/%3E%3Ccircle cx='0' cy='56' r='20'/%3E%3Ccircle cx='56' cy='56' r='10'/%3E%3Ccircle cx='56' cy='56' r='20'/%3E%3C/g%3E%3C/svg%3E");
}
[data-agama="hindu"]{
  --aksen:#C4421A; --di-aksen:#fff; --aksen-muda:#FBE0D3; --aksen-teks:#A53410;
  --pola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.24' stroke-width='1.2'%3E%3Cpath d='M20 3 37 20 20 37 3 20Z'/%3E%3Ccircle cx='20' cy='20' r='2.5'/%3E%3C/g%3E%3C/svg%3E");
}
[data-agama="konghucu"]{
  --aksen:#A81F26; --di-aksen:#fff; --aksen-muda:#F7DCDD; --aksen-teks:#8F1A20;
  --pola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.22' stroke-width='1.2'%3E%3Crect x='5' y='5' width='30' height='30'/%3E%3Crect x='13' y='13' width='14' height='14'/%3E%3Cpath d='M5 5 13 13M35 5 27 13M5 35 13 27M35 35 27 27'/%3E%3C/g%3E%3C/svg%3E");
}
[data-agama="kristen"]{
  --aksen:#2F4F86; --di-aksen:#fff; --aksen-muda:#DCE5F4; --aksen-teks:#2F4F86;
  --pola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M20 9v22M9 20h22' fill='none' stroke='%23fff' stroke-opacity='.22' stroke-width='1.4'/%3E%3C/svg%3E");
}

[data-agama="katolik"]{
  --aksen:#6B2D5C; --di-aksen:#fff; --aksen-muda:#F0DDEB; --aksen-teks:#6B2D5C;
  --pola:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='44' viewBox='0 0 40 44'%3E%3Cpath d='M20 6v32M12 16h16' fill='none' stroke='%23fff' stroke-opacity='.22' stroke-width='1.4'/%3E%3C/svg%3E");
}

/* ---------- Dasar ---------- */
*{ box-sizing:border-box; }
html{ scrollbar-gutter:stable; }
@media (prefers-reduced-motion:no-preference){
  html{ scroll-behavior:smooth; }
}
body{
  margin:0;
  font-family:var(--font-isi);
  font-size:16px;
  line-height:1.6;
  color:var(--tinta);
  background:
    linear-gradient(rgba(246,241,231,.6), rgba(246,241,231,.6)),
    url("../assets/hero-kepri.jpg") center top / cover no-repeat fixed,
    var(--kertas);
}
a{ color:inherit; }
button{ font-family:inherit; }
:focus-visible{ outline:3px solid var(--emas); outline-offset:3px; }
.wadah{ width:min(var(--lebar), 100% - 48px); margin-inline:auto; }

/* ---------- Daftar per agama ---------- */
.konten{ padding-top:64px; padding-bottom:24px; outline:none; }
.konten.ganti{ animation:muncul .35s ease; }
@keyframes muncul{ from{ opacity:0; } }

.agama{
  display:grid;
  grid-template-columns:minmax(250px, 320px) minmax(0, 1fr);
  gap:56px;
  margin-bottom:84px;
  scroll-margin-top:80px;
}
.agama-kepala{
  position:sticky; top:92px; align-self:start;
  min-height:380px;
  padding:150px 26px 30px;
  display:flex; flex-direction:column; justify-content:flex-end; align-items:center;
  text-align:center;
  border-radius:160px 160px 0 0;
  background-color:var(--aksen);
  background-image:var(--pola);
  color:var(--di-aksen);
}
.agama-kepala h2{
  margin:0;
  font-family:var(--font-judul); font-weight:600;
  font-size:2.5rem; line-height:1.05; letter-spacing:-.01em;
}
.agama-jumlah{ margin:8px 0 0; font-weight:600; }
.agama-sub{ margin:6px 0 0; max-width:22ch; font-size:.92rem; opacity:.86; }

.daftar{ list-style:none; margin:0; padding:0; border-top:3px solid var(--aksen); }
.daftar li{ border-bottom:1px solid var(--garis); }
.baris{
  width:100%;
  display:grid; grid-template-columns:minmax(0,1fr) auto 22px; align-items:center; gap:18px;
  padding:20px 14px;
  background:transparent; border:0; text-align:left; cursor:pointer;
  color:inherit;
  transition:background .15s ease;
}
.baris:hover{ background:var(--aksen-muda); }
.baris:focus-visible{ outline-offset:-3px; outline-color:var(--aksen); }
.teks{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.nama{
  font-family:var(--font-judul); font-weight:600;
  font-size:1.3rem; line-height:1.25;
}
.area{ font-size:.92rem; color:var(--redup); }
.jenis{
  font-size:.8rem; font-weight:600; white-space:nowrap;
  padding:4px 11px; border-radius:999px;
  background:var(--aksen-muda); color:var(--aksen-teks);
}
.panah{ color:var(--aksen-teks); transition:transform .2s ease; }
.baris:hover .panah{ transform:translateX(4px); }

.catatan-agama{ margin:16px 14px 0; max-width:62ch; font-size:.92rem; color:var(--redup); }
.catatan-kosong{
  margin:0 0 56px; padding:18px 20px; max-width:70ch;
  border-left:3px solid var(--emas); background:rgba(217,185,107,.14);
  font-size:.95rem;
}

/* ---------- Kaki halaman ---------- */
.kaki{ background:var(--hijau-tua); color:rgba(246,241,231,.78); padding:30px 0; font-size:.9rem; }
.kaki-isi{ display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; align-items:center; }
.kaki-merek{ font-family:var(--font-judul); font-weight:600; font-size:1.05rem; color:var(--emas); }
.kaki a{ color:var(--kertas); }

/* ---------- Pop-up detail ---------- */
.detail{
  padding:0; border:0;
  width:min(560px, calc(100vw - 32px));
  max-height:calc(100vh - 32px);
  border-radius:28px;
  background:var(--kertas); color:var(--tinta);
  overflow:hidden;
  box-shadow:0 30px 80px rgba(5,20,18,.45);
}
.detail::backdrop{
  background:rgba(7,28,25,.62);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.detail[open]{ animation:buka .38s cubic-bezier(.2,.9,.25,1); }
.detail[open]::backdrop{ animation:pudar .3s ease; }
.detail.menutup{ animation:tutup .22s ease forwards; }
.detail.menutup::backdrop{ animation:pudar-keluar .22s ease forwards; }
@keyframes buka{ from{ opacity:0; transform:translateY(28px) scale(.94); } }
@keyframes tutup{ to{ opacity:0; transform:translateY(16px) scale(.97); } }
@keyframes pudar{ from{ opacity:0; } }
@keyframes pudar-keluar{ to{ opacity:0; } }

.detail-kartu{ display:flex; flex-direction:column; max-height:calc(100vh - 32px); transition:opacity .12s ease; }
.detail-kartu.ganti{ opacity:0; }

.detail-kepala{
  position:relative;
  flex:0 0 auto;
  min-height:230px;
  padding:28px 30px 26px;
  display:flex; flex-direction:column; justify-content:flex-end;
  background-color:var(--aksen);
  background-image:var(--pola);
  background-size:auto;
  color:var(--di-aksen);
}
.detail-kepala.berfoto{
  background-size:cover; background-position:center;
  color:#fff;
}
.detail-kepala.berfoto::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(8,24,21,.82), rgba(8,24,21,.1) 70%);
}
.detail-kepala > *{ position:relative; }
.detail-pintu{
  position:absolute; top:26px; left:30px;
  width:54px; height:76px;
  border:1.5px solid currentColor; border-bottom:0; opacity:.5;
  border-radius:999px 999px 0 0;
}
.detail-kepala h2{
  margin:0;
  font-family:var(--font-judul); font-weight:600;
  font-size:clamp(1.65rem, 4.5vw, 2.15rem); line-height:1.12; letter-spacing:-.01em;
}
.detail-lokasi{ margin:8px 0 0; font-size:.95rem; opacity:.9; }
.detail-tutup{
  position:absolute; top:18px; right:18px;
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(10,42,38,.38); color:#fff; cursor:pointer;
  transition:background .15s ease, transform .15s ease;
}
.detail-tutup:hover{ background:rgba(10,42,38,.6); transform:rotate(90deg); }

.detail-isi{ padding:26px 30px 8px; overflow-y:auto; }
.detail-deskripsi{ margin:0; max-width:60ch; font-size:1.02rem; }

.rincian{
  margin:24px 0 0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:16px 24px;
}
.rincian div{ min-width:0; padding-top:12px; border-top:2px solid var(--aksen); }
.rincian dt{ font-size:.82rem; color:var(--redup); font-weight:500; }
.rincian dd{ margin:2px 0 0; font-weight:600; overflow-wrap:anywhere; }

.tombol-peta{
  margin:26px 0 22px;
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 22px; border-radius:999px;
  background:var(--hijau); color:var(--kertas);
  font-weight:600; font-size:.95rem; text-decoration:none;
  transition:background .15s ease, transform .15s ease;
}
.tombol-peta:hover{ background:#1C5C53; transform:translateY(-1px); }

.detail-nav{
  flex:0 0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  border-top:1px solid var(--garis);
}
.nav-tombol{
  display:flex; flex-direction:column; gap:2px; min-width:0;
  padding:16px 30px; text-align:left;
  background:transparent; border:0; color:inherit; cursor:pointer;
  transition:background .15s ease;
}
.nav-tombol:hover:not(:disabled){ background:var(--aksen-muda); }
.nav-tombol:disabled{ opacity:.4; cursor:default; }
.nav-tombol + .nav-tombol{ border-left:1px solid var(--garis); text-align:right; }
.nav-label{ font-size:.8rem; color:var(--redup); }
.nav-nama{
  font-family:var(--font-judul); font-weight:600; font-size:1rem; line-height:1.25;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ---------- Responsif ---------- */
@media (max-width:900px){
  .agama{ grid-template-columns:1fr; gap:28px; margin-bottom:64px; }
  .agama-kepala{
    position:static; min-height:0;
    padding:34px 24px 28px;
    border-radius:120px 120px 0 0;
    padding-top:96px;
  }
}
@media (max-width:760px){
  .wadah{ width:min(var(--lebar), 100% - 32px); }
  .baris{ grid-template-columns:minmax(0,1fr) 22px; padding:18px 8px; }
  .baris .jenis{ display:none; }
  .nama{ font-size:1.18rem; }
  .konten{ padding-top:44px; }

  /* Pop-up jadi bottom sheet */
  .detail{
    width:100%; max-width:100%; margin:auto 0 0;
    border-radius:26px 26px 0 0;
    max-height:92vh;
  }
  .detail-kartu{ max-height:92vh; }
  .detail-kepala{ min-height:200px; padding:24px 22px 22px; }
  .detail-pintu{ left:22px; top:22px; width:46px; height:64px; }
  .detail-isi{ padding:22px 22px 4px; }
  .nav-tombol{ padding:14px 22px; }
  @keyframes buka{ from{ opacity:.6; transform:translateY(100%); } }
  @keyframes tutup{ to{ opacity:0; transform:translateY(100%); } }
}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}


/* =========================================================
   Fitur tambahan: cari, rencana, pemandu, kontak
   ========================================================= */
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.jebakan{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }

.bar-grid{ display:flex; align-items:center; gap:16px; }
.bar-grid .bar-isi{ flex:1 1 auto; min-width:0; }
.bar-alat{ flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:8px 0; }
.cari{
  display:flex; align-items:center; gap:8px;
  padding:0 14px; height:40px; width:240px;
  border:1px solid var(--garis); border-radius:999px; background:#fff; color:var(--redup);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.cari:focus-within{ border-color:var(--hijau); box-shadow:0 0 0 3px rgba(15,59,54,.12); }
.cari input{ flex:1; min-width:0; border:0; outline:0; background:transparent; font:inherit; font-size:.92rem; color:var(--tinta); }
.tombol-rencana{
  display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 16px;
  border:1px solid var(--hijau); border-radius:999px; background:transparent; color:var(--hijau);
  font-size:.92rem; font-weight:600; cursor:pointer; white-space:nowrap;
  transition:background .15s ease, color .15s ease;
}
.tombol-rencana:hover{ background:var(--hijau); color:var(--kertas); }
.rencana-jumlah{
  min-width:22px; height:22px; padding:0 6px; display:inline-grid; place-items:center;
  border-radius:999px; background:var(--emas); color:var(--hijau-tua); font-size:.78rem;
}
.bar.mencari .pil{ opacity:.45; }

.hasil h2{ margin:0 0 6px; font-family:var(--font-judul); font-weight:600; font-size:1.8rem; line-height:1.15; }
.hasil .daftar{ border-top-color:var(--hijau); margin-top:18px; }
.hasil .area b{ font-weight:600; color:var(--aksen-teks); }
.hasil{ margin-bottom:64px; }

/* tombol di pop-up */
.aksi-detail{ margin:26px 0 22px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.aksi-detail .tombol-peta{ margin:0; }
.tombol-sekunder{
  display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border-radius:999px;
  border:1px solid var(--garis); background:transparent; color:var(--tinta);
  font-weight:600; font-size:.92rem; cursor:pointer;
  transition:background .15s ease, border-color .15s ease;
}
.tombol-sekunder:hover{ border-color:var(--hijau); background:rgba(15,59,54,.06); }
.tombol-sekunder[aria-pressed="true"]{ background:var(--aksen-muda); border-color:var(--aksen); color:var(--aksen-teks); }
.tombol-teks{ border:0; background:transparent; color:var(--redup); font:inherit; font-size:.9rem; text-decoration:underline; cursor:pointer; padding:8px; }
.tombol-teks:hover{ color:var(--tinta); }

/* pop-up rencana */
.rencana{ --aksen:var(--hijau); --di-aksen:#fff; --aksen-muda:#DCEFE6; --aksen-teks:#17604A; }
.rencana-kepala{ min-height:170px; background-image:none; }
.rencana-isi-kosong{ margin:0; padding:8px 0 24px; color:var(--redup); }
.rencana-grup{ margin:0 0 20px; }
.rencana-grup h3{ margin:0 0 6px; font-family:var(--font-judul); font-size:1.1rem; }
.rencana-daftar{ list-style:none; margin:0; padding:0; border-top:2px solid var(--hijau); }
.rencana-daftar li{ display:flex; gap:12px; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--garis); }
.rencana-nama{ min-width:0; }
.rencana-nama b{ display:block; font-weight:600; }
.rencana-nama span{ font-size:.85rem; color:var(--redup); }
.rencana-hapus{ flex:0 0 auto; border:0; background:transparent; color:#8F2A2A; font:inherit; font-size:.85rem; cursor:pointer; text-decoration:underline; }
.rencana-aksi{ flex:0 0 auto; display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:16px 30px 22px; border-top:1px solid var(--garis); }
.rencana-aksi .tombol-peta{ margin:0; }
.rencana-aksi[hidden]{ display:none; }

/* pemandu */
.pemandu-bagian{ padding:8px 0 80px; }
.pemandu-bagian h2{ margin:0; font-family:var(--font-judul); font-weight:600; font-size:clamp(1.7rem,3.5vw,2.4rem); line-height:1.1; }
.pemandu-sub{ margin:10px 0 26px; max-width:62ch; color:var(--redup); }
.pemandu-daftar{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; }
.pemandu-kartu{ display:flex; flex-direction:column; gap:6px; padding:22px; border-radius:20px; border:1px solid var(--garis); background:#fff; }
.pemandu-kartu h3{ margin:0; font-family:var(--font-judul); font-size:1.3rem; }
.pemandu-kartu p{ margin:0; font-size:.92rem; }
.pemandu-meta{ color:var(--redup); }
.pemandu-kartu .tombol-peta{ margin:12px 0 0; align-self:flex-start; }

/* kontak */
.kontak{ background:var(--hijau); color:var(--kertas); padding:64px 0; }
.kontak-isi{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.kontak h2{ margin:0 0 12px; font-family:var(--font-judul); font-weight:600; font-size:clamp(1.7rem,3.5vw,2.4rem); line-height:1.12; }
.kontak p{ margin:0; color:rgba(246,241,231,.82); max-width:46ch; }
.kontak form{ display:grid; gap:14px; }
.kontak label{ display:grid; gap:6px; font-size:.88rem; font-weight:600; }
.kontak input[type="text"], .kontak input[type="email"], .kontak textarea{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(246,241,231,.3);
  background:rgba(246,241,231,.08); color:var(--kertas); font:inherit; font-weight:400;
}
.kontak input:focus, .kontak textarea:focus{ outline:3px solid var(--emas); outline-offset:1px; }
.kontak .tombol-peta{ margin:4px 0 0; justify-self:start; background:var(--emas); color:var(--hijau-tua); border:0; cursor:pointer; font-family:inherit; }
.kontak .tombol-peta:hover{ background:#E6CB85; }
.kontak-status{ min-height:1.4em; font-size:.92rem; }

@media (max-width:760px){
  .aksi-detail{ gap:8px; }
  .kontak-isi{ grid-template-columns:1fr; gap:28px; }
  .rencana-aksi{ padding:14px 22px 20px; }
}

[hidden]{ display:none !important; }


/* =========================================================
   Tema baru: header, hero, sorotan, peta Kepri
   ========================================================= */

/* ---------- Header ---------- */
.bar{
  position:sticky; top:0; z-index:30;
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--garis);
}
.bar-grid{ display:flex; align-items:center; gap:24px; min-height:76px; }
.merek{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:10px;
  text-decoration:none; color:var(--tinta);
  font-weight:600; font-size:1.05rem; line-height:1.1;
}
.merek-logo{ display:block; width:40px; height:40px; object-fit:contain; }
.merek-logo_Dispar{ width:auto; height:90px; padding-right:12px; margin-right:6px; border-right:1px solid var(--garis,#e2e2e2); }
.merek-teks small{ display:block; font-size:.6rem; font-weight:700; letter-spacing:.2em; color:var(--merah); }
.merek-teks b{ font-weight:800; color:var(--merah); }
.bar-isi{
  flex:1 1 auto; min-width:0;
  display:flex; gap:2px; padding:0;
  overflow-x:auto; scrollbar-width:none;
}
.bar-isi::-webkit-scrollbar{ display:none; }
.pil{
  flex:0 0 auto; position:relative;
  padding:12px 11px; border:0; border-radius:8px; background:transparent;
  color:#33414d; font-size:.92rem; font-weight:600; cursor:pointer;
  transition:color .15s ease;
}
.pil small{ display:none; }
.pil:hover{ color:var(--merah); }
.pil[aria-pressed="true"]{ color:var(--merah); }
.pil[aria-pressed="true"]::after{
  content:""; position:absolute; left:11px; right:11px; bottom:3px; height:3px; border-radius:3px; background:var(--merah);
}
.bar.mencari .pil{ opacity:.45; }
.bar-alat{ min-width:0; }
.cari input{ width:0; }
.cari:focus-within{ border-color:var(--hijau); box-shadow:0 0 0 3px rgba(12,90,140,.14); }
/* Di layar lebar, kolom cari menciut jadi ikon dan melebar saat dipakai */
@media (min-width:1001px){
  .cari{ width:44px; padding:0 12px; gap:0; cursor:pointer; transition:width .25s ease, gap .25s ease; }
  .cari:focus-within, .cari:has(input:not(:placeholder-shown)){ width:250px; gap:8px; cursor:text; }
}
.tombol-rencana{ border-color:var(--hijau); color:var(--hijau); }
.tombol-rencana:hover{ background:var(--hijau); color:#fff; }
.rencana-jumlah{ background:var(--merah); color:#fff; }

/* ---------- Hero ---------- */
.hero{ padding:20px 0 0; }
.hero-banner{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:clamp(480px, 60vw, 640px);
  border-radius:22px;
  display:grid; place-items:center; text-align:center; color:#fff;
  background:
    url("../assets/hero-kepri.jpg") center/cover no-repeat,
    radial-gradient(ellipse 38% 26% at 50% 74%, rgba(255,222,150,.95), rgba(255,222,150,0) 70%),
    linear-gradient(180deg, #0a4a7e 0%, #1485c4 42%, #6cc6e4 74%, #d9f2f7 100%);
}
.hero-banner::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to bottom, rgba(5,30,55,.30), rgba(5,30,55,0) 55%);
}
.hero-isi-tengah{ padding:56px 24px 150px; max-width:860px; }
.hero-atas{
  margin:0; font-weight:600; font-size:clamp(.9rem, 1.6vw, 1.15rem);
  letter-spacing:.5em; text-indent:.5em; text-transform:uppercase; opacity:.95;
}
.hero-judul{
  margin:6px 0 0;
  font-weight:800; font-size:clamp(5rem, 20vw, 13rem);
  line-height:.88; letter-spacing:-.025em;
  text-shadow:0 8px 40px rgba(4,30,55,.28);
}
.hero-isi{ margin:20px auto 0; max-width:46ch; font-size:clamp(.98rem, 1.5vw, 1.12rem); font-weight:500; text-shadow:0 1px 18px rgba(4,30,55,.4); }
.hero-stat{
  margin:16px 0 0; display:inline-block; padding:7px 16px; border-radius:999px;
  background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.4);
  font-size:.85rem; font-weight:600; letter-spacing:.02em;
}
.hero-stat:empty{ display:none; }
.hero-siluet{ position:absolute; left:50%; bottom:62px; width:min(940px, 96%); transform:translateX(-50%); z-index:-1; height:auto; }
.hero-kabut{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:110px; z-index:0; pointer-events:none; }
.tombol-hero{
  position:absolute; left:50%; bottom:30px; transform:translateX(-50%);
  padding:15px 34px; border-radius:999px;
  background:linear-gradient(180deg, #2d8cf0, #1366c4); color:#fff;
  font-weight:700; font-size:.98rem; text-decoration:none; white-space:nowrap;
  box-shadow:0 10px 26px rgba(19,102,196,.42), inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .18s ease, box-shadow .18s ease;
}
.tombol-hero:hover{ transform:translateX(-50%) translateY(-2px); box-shadow:0 14px 30px rgba(19,102,196,.5), inset 0 1px 0 rgba(255,255,255,.35); }
.hero-banner{ z-index:0; }
.hero-isi-tengah, .tombol-hero{ z-index:1; }

/* ---------- Judul bagian ---------- */
.eyebrow{ margin:0; color:var(--merah); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; }
.judul-bagian{ margin:6px 0 0; font-weight:700; font-size:clamp(1.7rem, 3.4vw, 2.5rem); line-height:1.15; letter-spacing:-.01em; }

/* ---------- Destinasi pilihan ---------- */
.sorotan{ padding-top:56px; }
.sorotan-grid{
  margin-top:24px;
  display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(2, minmax(230px, 1fr)); gap:14px;
}
.kartu-sorot{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end; gap:6px;
  min-height:230px; padding:26px 28px; border:0; border-radius:20px;
  text-align:left; color:#fff; cursor:pointer; font-family:inherit;
  background-color:var(--aksen);
  background-image:linear-gradient(to top, rgba(6,18,28,.72), rgba(6,18,28,.04) 68%), var(--pola);
  background-size:cover, auto; background-position:center;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
}
.kartu-sorot::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(circle at 82% 18%, rgba(255,255,255,.26), rgba(255,255,255,0) 52%);
}
.kartu-sorot.berfoto::before{ display:none; }
.kartu-sorot:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(10,30,50,.22); }
.kartu-sorot.besar{ grid-row:span 2; min-height:480px; }
.pil-merah{
  position:absolute; top:22px; left:24px;
  padding:8px 18px; border-radius:999px; background:var(--merah); color:#fff;
  font-size:.86rem; font-weight:600;
}
.kartu-judul{ font-weight:700; font-size:clamp(1.3rem, 2.4vw, 2.1rem); line-height:1.18; letter-spacing:-.01em; max-width:20ch; }
.kartu-sorot:not(.besar) .kartu-judul{ font-size:clamp(1.15rem, 1.9vw, 1.65rem); }
.kartu-meta{ font-size:.9rem; font-weight:500; opacity:.92; }

/* ---------- Peta ---------- */
.peta-bagian{ padding:84px 0 24px; scroll-margin-top:76px; }
.peta-judul{ margin:0; text-align:center; font-weight:600; font-size:clamp(1.5rem, 3vw, 2.15rem); color:#767d84; line-height:1.2; }
.peta-sub{ margin:8px 0 0; text-align:center; color:var(--redup); font-size:.95rem; }
.peta-grid{ margin-top:30px; display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:36px; align-items:center; }
.peta-kanvas{ overflow-x:auto; scrollbar-width:thin; background:#EEF4F8; border-radius:24px; }
.peta-svg{ display:block; width:100%; min-width:660px; height:auto; }
.peta-geser{ display:none; margin:6px 0 0; text-align:center; font-size:.82rem; color:var(--merah); font-weight:600; }
.peta-catatan{ margin:10px 0 0; text-align:center; font-size:.8rem; color:#98a0a6; }

.daratan{ fill:#d9dde1; }
.pulau{ fill:#c7ccd1; cursor:pointer; transition:fill .2s ease; }
.pulau:hover, .pulau.sorot{ fill:#f2bcb2; }
.pulau.aktif{ fill:#ec9f91; }
.darat-lab{ font:700 13px var(--font-isi); fill:#9aa1a7; letter-spacing:.16em; }
.darat-lab-kecil{ font:500 11px var(--font-isi); fill:#8a9197; }
.laut-lab{ font:italic 500 13px var(--font-isi); fill:#8db0c8; }

.pin{ cursor:pointer; outline:none; }
.pin-isi{ transition:transform .2s cubic-bezier(.2,.8,.2,1); }
.pin:hover .pin-isi, .pin:focus-visible .pin-isi{ transform:translateY(-4px); }
.pin-hit{ fill:transparent; }
.pin-badan{ fill:var(--merah); transition:fill .2s ease; }
.pin-titik{ fill:#fff; }
.pin-halo{ fill:rgba(233,75,53,.28); opacity:0; }
.pin.aktif .pin-badan{ fill:#C5321E; }
.pin.aktif .pin-halo{ opacity:1; }
.pin-label{
  font:700 15px var(--font-isi); fill:#1B2733;
  paint-order:stroke; stroke:#fff; stroke-width:5px; stroke-linejoin:round;
}
.pin.aktif .pin-label{ fill:#C5321E; }
.pin:focus-visible .pin-badan{ stroke:#1B2733; stroke-width:2px; }
@media (prefers-reduced-motion:no-preference){
  .pin.aktif .pin-halo{ animation:denyut 1.8s ease-in-out infinite; }
}
@keyframes denyut{ 50%{ opacity:.35; } }

.peta-info{
  padding:26px 26px 24px; border-radius:22px; background:#fff;
  border:1px solid var(--garis); box-shadow:0 14px 40px rgba(20,40,60,.08);
}
.info-label{ margin:0; font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--merah); }
.peta-info h3{ margin:6px 0 0; font-size:1.55rem; line-height:1.2; font-weight:700; }
.info-jumlah{ margin:8px 0 0; color:var(--redup); }
.info-jumlah b{ color:var(--tinta); font-size:1.15rem; }
.info-agama{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:2px; }
.info-agama li{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--garis); font-size:.93rem; font-weight:500; }
.info-agama li:last-child{ border-bottom:0; }
.info-agama b{ margin-left:auto; font-weight:700; }
.titik-agama{ width:12px; height:12px; border-radius:50%; background:var(--aksen); flex:0 0 auto; }
.peta-info .tombol-peta{ margin:20px 0 0; background:linear-gradient(180deg, #2d8cf0, #1366c4); }
.peta-info .tombol-peta:hover{ background:linear-gradient(180deg, #2480e0, #0f58ac); }

/* ---------- Kepala daftar + lompat agama ---------- */
.daftar-kepala{ padding-top:64px; scroll-margin-top:76px; }
.pintu{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.lengkung{
  display:inline-flex; align-items:baseline; gap:8px;
  padding:9px 16px; border-radius:999px; text-decoration:none;
  background:var(--aksen-muda); color:var(--aksen-teks);
  font-weight:700; font-size:.92rem;
  transition:transform .15s ease, box-shadow .15s ease;
}
.lengkung:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(20,40,60,.12); }
.lengkung-jumlah{ font-weight:500; font-size:.8rem; opacity:.82; }
.lengkung.kosong{ opacity:.38; pointer-events:none; }
.konten{ padding-top:40px; }

/* ---------- Penyesuaian warna komponen lama ---------- */
.tombol-peta:hover{ background:#0A4A74; }
.tombol-sekunder:hover{ border-color:var(--hijau); background:rgba(12,90,140,.06); }
.rencana{ --aksen-muda:#DCEBF6; --aksen-teks:#0C5A8C; }
.catatan-kosong{ background:rgba(242,169,59,.14); }
.agama-kepala h2, .nama{ letter-spacing:-.01em; }
.kaki{ color:rgba(255,255,255,.8); }
.kaki-merek{ color:var(--emas); }
.kontak{ background:var(--hijau); }
.kontak p{ color:rgba(255,255,255,.86); }

/* ---------- Responsif ---------- */
@media (max-width:1000px){
  .bar-grid{ flex-wrap:wrap; gap:0 16px; min-height:0; padding-top:10px; }
  .bar-alat{ margin-left:auto; padding:0; }
  .cari{ width:210px; }
  .bar-isi{ order:3; flex:1 0 100%; padding:2px 0 4px; }
  .peta-grid{ grid-template-columns:1fr; gap:24px; }
  .peta-info{ max-width:560px; width:100%; margin-inline:auto; }
}
@media (max-width:760px){
  .bar{ position:static; }
  .peta-bagian, .daftar-kepala{ scroll-margin-top:12px; }
  .hero{ padding-top:12px; }
  .hero-banner{ border-radius:18px; min-height:520px; }
  .hero-isi-tengah{ padding:44px 18px 150px; }
  .hero-atas{ letter-spacing:.34em; text-indent:.34em; }
  .sorotan-grid{ grid-template-columns:1fr; grid-template-rows:none; }
  .kartu-sorot.besar{ grid-row:auto; min-height:340px; }
  .kartu-sorot{ min-height:210px; }
  .cari{ width:auto; flex:1; min-width:0; }
  .bar-alat{ flex:1 1 auto; margin-left:0; }
  .merek-teks{ font-size:.95rem; }
  .peta-bagian{ padding-top:64px; }
  .peta-geser{ display:block; }
  .peta-svg .pin-label{ font-size:19px; }
}


/* ---------- Info kunjungan di pop-up ---------- */
.rincian-info{ grid-template-columns:1fr; margin-top:18px; }
.rincian-info[hidden]{ display:none; }
.etika{ margin:18px 0 0; padding:12px 14px; border-radius:12px; background:var(--aksen-muda); color:var(--aksen-teks); font-size:.9rem; line-height:1.55; }
.etika b{ font-weight:700; }
a.tombol-sekunder{ text-decoration:none; }

/* ---------- Titik tempat di peta + zoom ---------- */
.titik{ fill:var(--aksen); stroke:#fff; cursor:pointer; outline:none; }
.titik:hover, .titik:focus-visible{ stroke:#1B2733; }
.peta-svg.zoom .label-peta, .peta-svg.zoom #pin-grup{ display:none; }
.peta-svg.zoom .pulau, .peta-svg.zoom .pulau:hover, .peta-svg.zoom .pulau.aktif, .peta-svg.zoom .pulau.sorot{ fill:#c7ccd1; }
.info-aksi{ margin-top:16px; }
.info-aksi .tombol-sekunder{ width:100%; justify-content:center; }
.info-catatan{ margin:0 0 10px; font-size:.84rem; color:var(--redup); line-height:1.5; }
