/* ============================================================
   TEMA CAHYA - Hangat + Elegan + Cahaya Senja
   Warna: Putih Hangat + Kuning Keemasan + Senja
   ============================================================ */
:root {
  /* Palette Cahya - Golden Amber + Putih Hangat + Senja */
  --primary: #D97706;
  --primary-dark: #B45309;
  --primary-darker: #92400E;
  --primary-soft: #FCD34D;
  --primary-light: #FDE68A;
  --primary-50: #FFFBEB;
  --earth: #78350F;
  --earth-light: #92400E;
  --accent: #F59E0B;
  --accent-dark: #D97706;
  --accent-soft: #FEF3C7;
  --sky: #FFFDF7;
  --warm-bg: #FFFDF7;
  --warm-section: #FFF8E7;
  --dark: #1C1001;
  --gray-900: #1C1001;
  --gray-800: #3D2B1F;
  --gray-700: #5C3D2E;
  --gray-600: #7C5542;
  --gray-500: #9C7A5F;
  --gray-400: #C4A882;
  --gray-300: #DFD0B8;
  --gray-200: #EFE8D8;
  --gray-100: #F7F2E8;
  --gray-50: #FFFDF7;
  --white: #fff;
  --bg-body: var(--warm-bg);
  --text-body: #3D2B1F;
  --text-heading: #1C1001;
  --text-muted: #7C5542;
  --border: #E8D5B0;
  --font-heading: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-body: 'Nunito', 'Plus Jakarta Sans', system-ui, sans-serif;
  --shadow-sm: 0 1px 3px rgba(180,83,9,.06);
  --shadow-md: 0 4px 12px rgba(180,83,9,.10);
  --shadow-lg: 0 8px 24px rgba(180,83,9,.13);
  --shadow-xl: 0 12px 32px rgba(180,83,9,.16);
  --shadow-primary: 0 4px 16px rgba(217,119,6,.25);
  --primary-rgb: 217,119,6;
  --primary-darker-rgb: 146,64,14;
  --primary-dark-rgb: 180,83,9;
  --radius: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;
  --transition: .3s ease;
  --gradient-cahya: linear-gradient(135deg, #F59E0B 0%, #D97706 50%, #92400E 100%);
  --gradient-senja: linear-gradient(180deg, rgba(245,158,11,.0) 0%, rgba(217,119,6,.55) 50%, rgba(146,64,14,.85) 100%);
}

/* ===== COLOR PALETTES ===== */
/* ðŸ”µ Biru Langit */
/* ðŸŸ£ Ungu Mulia */
/* ðŸŒ¹ Merah Rosewood */
/* ðŸŸ  Jingga Sunset */
/* ðŸ©µ Teal Bahari */
/* ðŸ’™ Nila (Indigo) */
/* ========== RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-family:var(--font-body);line-height:1.7;color:var(--text-body);overflow-x:hidden;max-width:100%}
body{background:var(--bg-body);font-size:15px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--primary)}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.3;color:var(--text-heading)}
h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.35rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}
p{margin-bottom:.75rem}
::selection{background:var(--primary);color:#fff}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}

/* ========== NAVBAR ========== */
.navbar-cahya{background:var(--primary-darker);position:sticky;top:0;z-index:1000;transition:all .3s;border-bottom:none}
.navbar-inner{display:flex;align-items:center;height:56px;gap:1rem}
.navbar-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none}
.navbar-logo{height:36px;width:36px;object-fit:contain;border-radius:50%;background:rgba(255,255,255,.15);padding:2px}

.navbar-brand-text{font-family:var(--font-heading);font-size:14px;font-weight:700;color:#fff;letter-spacing:.02em;white-space:nowrap}
.navbar-menu{display:none;align-items:center;gap:0;margin:0 auto;padding:0;list-style:none}
.navbar-menu>li{position:relative}
.navbar-menu>li>a.navbar-link{display:flex;align-items:center;gap:4px;padding:18px 16px;font-size:12.5px;font-weight:600;letter-spacing:.05em;color:rgba(255,255,255,.85);transition:all .2s;position:relative;text-transform:uppercase}
.navbar-menu>li:not(.nav-active)>a.navbar-link,.navbar-menu>li:not(.nav-active)>a.navbar-link:link,.navbar-menu>li:not(.nav-active)>a.navbar-link:visited,.navbar-menu>li:not(.nav-active)>a.navbar-link:active{color:rgba(255,255,255,.8)!important;font-weight:600!important}
.navbar-menu>li>a.navbar-link:link,.navbar-menu>li>a.navbar-link:visited{color:rgba(255,255,255,.8)}
.navbar-menu>li>a.navbar-link:hover,.navbar-menu>li:hover>a.navbar-link{color:#fff!important}
/* Hover underline (thin, subtle) */
.navbar-menu>li:not(.nav-active)>a.navbar-link::after{content:'';position:absolute;bottom:0;left:50%;right:50%;height:2px;background:rgba(255,255,255,.6);border-radius:2px 2px 0 0;opacity:0;transition:all .25s ease}
.navbar-menu>li:not(.nav-active):hover>a.navbar-link::after{left:16px;right:16px;opacity:.7}
/* Active menu indicator (solid bar) */
.navbar-menu>li.nav-active>a.navbar-link,.navbar-menu>li.nav-active>a.navbar-link:link,.navbar-menu>li.nav-active>a.navbar-link:visited{color:#fff!important;font-weight:700!important}
.navbar-menu>li.nav-active>a.navbar-link::after{content:'';position:absolute;bottom:0;left:16px;right:16px;height:3px;background:#fff;border-radius:3px 3px 0 0;animation:navActiveIn .3s ease forwards}
@keyframes navActiveIn{0%{transform:scaleX(0);opacity:0}100%{transform:scaleX(1);opacity:1}}
.navbar-menu>li>a .fa-chevron-down{font-size:8px;opacity:.5;transition:transform .2s;color:rgba(255,255,255,.6)}
.navbar-menu>li:hover>a .fa-chevron-down{transform:rotate(180deg)}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;min-width:220px;background:var(--white);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:var(--radius);z-index:999;padding:10px 0 8px;list-style:none;margin:0}
li:hover>.dropdown-menu{display:block}
.dropdown-menu li a{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;font-size:13px;color:var(--text-body);transition:all .15s}
.dropdown-menu li a:hover{background:var(--primary-50);color:var(--primary)}
.dropdown-menu .dropdown-menu{top:0;left:100%;border-radius:var(--radius)}
/* Dropdown "Lainnya" — scrollable */
li.nav-more>.dropdown-menu{max-height:70vh;overflow-y:auto;overflow-x:visible;scrollbar-width:thin;scrollbar-color:var(--primary-light) transparent}
li.nav-more>.dropdown-menu::-webkit-scrollbar{width:4px}
li.nav-more>.dropdown-menu::-webkit-scrollbar-track{background:transparent}
li.nav-more>.dropdown-menu::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:99px}
li.nav-more>.dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--primary)}
/* nm-list: item dengan sub-menu pakai portal agar tidak terpotong overflow */
.nm-list .nm-expandable>a{display:flex;align-items:center;justify-content:space-between;gap:8px}
.nm-list .nm-expandable>a .nm-arrow{font-size:9px;color:var(--gray-400);flex-shrink:0;transition:color .2s}
.nm-list .nm-expandable:hover>a{color:var(--primary);background:var(--primary-50)}
.nm-list .nm-expandable:hover>a .nm-arrow{color:var(--primary)}
.nm-list .nm-accordion{display:none!important}
/* nm-portal: panel fixed, di-append ke <body> oleh JS */
.nm-portal{display:none;position:fixed;z-index:10500;list-style:none;margin:0;padding:6px 0;min-width:220px;background:#fff;border-radius:var(--radius);box-shadow:0 10px 40px rgba(0,0,0,.15),0 2px 8px rgba(0,0,0,.08)}
.nm-portal::before{content:'';position:absolute;top:0;left:12px;right:12px;height:3px;background:var(--primary);border-radius:0 0 3px 3px}
.nm-portal.nm-portal-open{display:block}
.nm-portal>li{position:relative}
.nm-portal>li>a{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;font-size:13px;font-weight:500;color:var(--text-body);text-decoration:none;gap:8px;transition:all .2s;white-space:nowrap}
.nm-portal>li>a:hover,.nm-portal>li.nm-expandable:hover>a{background:var(--primary-50);color:var(--primary);padding-left:22px}
.nm-portal>li>a .nm-arrow{font-size:9px;color:var(--gray-400);flex-shrink:0;transition:color .2s}
.nm-portal>li>a:hover .nm-arrow,.nm-portal>li.nm-expandable:hover>a .nm-arrow{color:var(--primary)}
.nm-portal>li.nm-expandable::after{content:'';position:absolute;top:0;right:100%;bottom:0;width:8px;background:transparent;display:none}
.nm-portal>li.nm-expandable:hover::after{display:block}
.nm-portal>li.nm-expandable>.nm-accordion{display:none;position:absolute;top:-6px;right:calc(100% + 4px);left:auto;list-style:none;margin:0;padding:6px 0;min-width:200px;background:#fff;border-radius:var(--radius);box-shadow:0 8px 32px rgba(0,0,0,.12);z-index:10501}
.nm-portal>li.nm-expandable:hover>.nm-accordion{display:block}
.nm-portal>li.nm-expandable>.nm-accordion>li>a{display:block;padding:9px 16px;font-size:13px;color:var(--text-body);text-decoration:none;transition:all .15s;white-space:nowrap}
.nm-portal>li.nm-expandable>.nm-accordion>li>a:hover{background:var(--primary-50);color:var(--primary)}
.navbar-icons{display:none;align-items:center;gap:4px;margin-left:auto;color:rgba(255,255,255,.85)}
.navbar-icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-size:14px;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-full);transition:all .2s}
.navbar-icon-btn:hover{background:rgba(255,255,255,.15);color:#fff}
.navbar-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:auto;border:none;background:transparent;cursor:pointer;font-size:18px;color:#fff;border-radius:var(--radius)}
.navbar-toggle:hover{background:rgba(255,255,255,.1)}
/* (navbar search moved to hero) */

/* ========== HERO — Cahya: Clean & Bold ========== */
.hero-cahya{position:relative;min-height:340px;display:flex;align-items:center;background-size:cover;background-position:center;overflow:hidden}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg, rgba(17,24,39,.75) 0%, rgba(30,58,95,.65) 100%)}
.hero-inner{position:relative;z-index:10;width:100%;padding:48px 20px}
.hero-text{max-width:600px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);padding:6px 16px 6px 6px;margin-bottom:16px}
.hero-badge-logo{width:28px;height:28px;border-radius:50%;object-fit:contain;background:rgba(255,255,255,.2);padding:2px}
.hero-badge span{font-size:12px;font-weight:600;color:rgba(255,255,255,.9);letter-spacing:.04em}
.hero-title{font-family:var(--font-heading);font-size:2.6rem;font-weight:800;color:#fff;line-height:1.2;margin-bottom:12px;text-shadow:0 2px 16px rgba(0,0,0,.2)}
.hero-location{font-size:13px;color:rgba(255,255,255,.75);margin-bottom:24px;display:flex;align-items:center;gap:6px}
.hero-location i{color:var(--primary-soft);font-size:12px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.hero-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:var(--radius);font-size:13px;font-weight:600;font-family:var(--font-heading);cursor:pointer;transition:all .25s;text-decoration:none;border:none}
.hero-btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 16px rgba(37,99,235,.3)}
.hero-btn-primary:hover{background:var(--primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 6px 20px rgba(37,99,235,.4)}
.hero-btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.hero-btn-outline:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.7)}

/* ========== HERO BOTTOM BAR (Menu Desa Row) ========== */
.hero-bottom-bar{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:28px;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgb(255, 255, 255,.15);
  border-radius:var(--radius-xl);
  padding:10px 16px;
}
.hero-menu-row{
  display:flex;
  align-items:center;
  gap:4px;
  flex:1;
  justify-content:center;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.hero-menu-row::-webkit-scrollbar{display:none}
.hero-menu-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:8px 10px;
  text-decoration:none;
  color:rgba(255,255,255,.85);
  transition:all .25s ease;
  border-radius:var(--radius);
  flex-shrink:0;
  min-width:0;
}
.hero-menu-item:hover{
  color:#fff;
  background:rgba(255,255,255,.12);
}
.hero-menu-icon{
  width:36px;height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius);
  background:rgba(255,255,255,.15);
  font-size:14px;
  color:#fff;
  transition:all .25s ease;
}
.hero-menu-item:hover .hero-menu-icon{
  background:var(--primary);
  transform:scale(1.08);
  box-shadow:0 4px 16px rgba(37,99,235,.4);
}
.hero-menu-item span{
  font-size:.62rem;
  font-weight:600;
  text-align:center;
  line-height:1.15;
  color:rgba(255,255,255,.85);
  white-space:nowrap;
}
.hero-menu-item:hover span{
  color:#fff;
}
.hero-bottom-bar .hero-btn{
  flex-shrink:0;
  white-space:nowrap;
}

/* Hero Bottom Bar Responsive */
@media(max-width:899px){
  .hero-bottom-bar{
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    padding:10px 12px;
  }
  .hero-menu-row{
    order:3;
    width:100%;
    justify-content:flex-start;
    gap:2px;
    padding:4px 0;
  }
  .hero-bottom-bar .hero-btn{
    order:1;
  }
}
@media(max-width:479px){
  .hero-bottom-bar{
    padding:8px;
    border-radius:var(--radius-lg);
  }
  .hero-menu-item{
    padding:6px 6px;
    gap:3px;
  }
  .hero-menu-icon{
    width:30px;height:30px;
    font-size:12px;
  }
  .hero-menu-item span{
    font-size:.55rem;
  }
  .hero-bottom-bar .hero-btn{
    font-size:12px;
    padding:8px 16px;
  }
}

/* ========== HERO SEARCH BAR ========== */
.hero-search-bar{
  display:flex;
  align-items:center;
  max-width:560px;
  margin:16px auto 0;
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius-full);
  overflow:hidden;
  transition:all .3s ease;
}
.hero-search-bar:focus-within{
  background:rgba(255,255,255,.2);
  border-color:rgba(255,255,255,.35);
  box-shadow:0 4px 24px rgba(0,0,0,.15);
}
.hero-search-bar input{
  flex:1;
  padding:12px 20px;
  border:none;
  background:transparent;
  color:#fff;
  font-size:14px;
  font-family:var(--font-body);
  outline:none;
}
.hero-search-bar input::placeholder{
  color:rgba(255,255,255,.55);
}
.hero-search-bar button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:none;
  background:transparent;
  cursor:pointer;
  transition:all .2s;
  flex-shrink:0;
  margin-right:4px;
}
.hero-search-bar button i{
  font-size:16px;
  color:#FBBF24;
  transition:all .2s;
}
.hero-search-bar button:hover i{
  color:#F59E0B;
  transform:scale(1.1);
}
@media(max-width:479px){
  .hero-search-bar{
    margin:12px 0 0;
    max-width:100%;
  }
  .hero-search-bar input{
    padding:10px 16px;
    font-size:13px;
  }
}



/* ========== TICKER ========== */
.ticker-bar{background:var(--primary-darker);padding:8px 0;font-size:13px}
.ticker-inner{display:flex;align-items:center;gap:12px}
.ticker-label{flex-shrink:0;background:rgba(255,255,255,.15);color:#fff;padding:3px 12px;font-size:11px;font-weight:600;border-radius:var(--radius);display:inline-flex;align-items:center;gap:4px}
.ticker-text{flex:1;color:rgba(255,255,255,.85)}
.ticker-text span{margin-right:40px}
.ticker-text a{color:var(--accent);font-weight:600;margin-left:4px}

/* ========== TICKER — Full Width ========== */
.ticker-fullwidth{
  width:100%;
}
.ticker-inner-full{
  display:flex;
  align-items:center;
  gap:0;
  max-width:100%;
  overflow:hidden;
}
.ticker-inner-full .ticker-label{
  flex-shrink:0;
  background:rgba(255,255,255,.15);
  color:#fff;
  padding:3px 14px;
  font-size:11px;
  font-weight:600;
  border-radius:0;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.ticker-track-wrap{
  flex:1;
  overflow:hidden;
  min-width:0;
  padding:0 16px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 3%,#000 97%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 3%,#000 97%,transparent 100%);
}
.ticker-track{
  display:inline-flex;
  white-space:nowrap;
  animation:tickerScroll 25s linear infinite;
  will-change:transform;
}
.ticker-track:hover{
  animation-play-state:paused;
}
.ticker-track-item{
  margin-right:50px;
  font-size:.78rem;
  color:rgba(255,255,255,.9);
}
.ticker-track-item a{
  color:var(--primary-soft);
  font-weight:700;
  margin-left:4px;
  text-decoration:none;
}
.ticker-track-item a:hover{
  text-decoration:underline;
  color:#fff;
}
@keyframes tickerScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}



/* ========== LAYOUT ========== */
/* Jarak antara navbar (sticky 56px) dan konten halaman */
.layout-cahya{
  padding-top:90px !important;
  padding-bottom:56px !important;
  padding-left:0;
  padding-right:0;
  margin-top:0
}
.layout-main{display:flex;flex-direction:column;gap:32px}
.content-area{flex:1;min-width:0}
.content-area.box{padding:24px;border-radius:var(--radius-lg)}
.sidebar-area{width:100%}
.section-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:20px;border-bottom:none;border-left:4px solid var(--primary);padding-left:14px}
.section-title{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--text-heading)}
.section-title i{font-size:14px;color:var(--primary)}
.category-tabs{display:flex;align-items:center;gap:8px;padding:0 0 20px;flex-wrap:wrap}
.cat-tab{padding:6px 16px;font-size:13px;font-weight:600;color:var(--text-muted);border:1.5px solid var(--border);border-radius:var(--radius);transition:all .2s}
.cat-tab:hover,.cat-tab.active{color:var(--white);background:var(--primary);border-color:var(--primary)}

/* ========== ARTICLE LIST ========== */
.article-grid{display:flex;flex-direction:column;gap:0;margin-bottom:28px}
.article-list-item{
  display:flex;
  gap:16px;
  padding:16px 0;
  border-bottom:1px solid var(--border);
  transition:background .2s;
}
.article-list-item:first-child{padding-top:0}
.article-list-item:last-child{border-bottom:none}
.article-list-item:hover{background:var(--gray-50)}
.article-list-thumb{
  display:block;
  flex-shrink:0;
  width:110px;
  height:80px;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--gray-100);
}
.article-list-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}
.article-list-item:hover .article-list-thumb img{transform:scale(1.06)}
.article-list-thumb-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:var(--gray-400);
  font-size:1.2rem;
}
.article-list-body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}
.article-list-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-size:.7rem;
  color:var(--text-muted);
}
.article-list-meta span{display:inline-flex;align-items:center;gap:3px}
.article-list-meta i{font-size:10px;color:var(--primary-soft)}
.article-list-cat{
  font-size:.65rem;
  font-weight:700;
  color:var(--primary);
  background:rgba(var(--primary-rgb),.08);
  padding:2px 8px;
  border-radius:var(--radius);
  letter-spacing:.3px;
  text-transform:uppercase;
}
.article-list-title{
  display:block;
  font-size:.88rem;
  font-weight:700;
  color:var(--text-heading);
  line-height:1.4;
  transition:color .2s;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.article-list-title:hover{color:var(--primary)}
.article-list-excerpt{
  font-size:.78rem;
  color:var(--text-muted);
  line-height:1.5;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
@media(max-width:575px){
  .article-list-thumb{width:80px;height:64px}
  .article-list-title{font-size:.82rem;white-space:normal;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
  .article-list-excerpt{display:none}
}
.card-cahya{display:flex;flex-direction:column;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .25s ease;border:1px solid var(--border);position:relative}
.card-cahya:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-image-wrap{display:block;overflow:hidden;height:180px;background:var(--gray-100);position:relative}
.card-image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card-cahya:hover .card-image{transform:scale(1.06)}
.card-category-float{position:absolute;top:10px;left:10px;font-size:.7rem;font-weight:600;color:#fff;background:var(--primary);padding:3px 10px;border-radius:var(--radius);z-index:2}
.card-body{padding:14px 16px 12px}
.card-title{display:block;font-size:.9rem;font-weight:700;color:var(--text-heading);line-height:1.4;margin-bottom:4px;transition:color .2s}
.card-title:hover{color:var(--primary)}
.card-excerpt{
  font-size:.82rem;
  color:var(--text-muted);
  line-height:1.6;
  margin-bottom:12px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:12px;
  border-top:1px solid var(--border);
}
.card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.7rem;color:var(--text-muted)}
.card-meta span{display:inline-flex;align-items:center;gap:3px}
.card-meta i{font-size:10px;color:var(--primary-soft)}
.card-readmore{font-size:.75rem;font-weight:600;color:var(--primary);display:inline-flex;align-items:center;gap:4px;transition:all .2s}
.card-readmore:hover{gap:6px;color:var(--primary-dark)}

/* ========== DESA STATS BANNER (replaces Artikel Pilihan) ========== */

.desa-stats-banner{

  background:var(--white);

  border-radius:var(--radius-xl);

  border:1px solid var(--border);

  margin-bottom:24px;

  overflow:hidden;

  box-shadow:var(--shadow-sm);

}

.dsb-header{

  display:flex;

  align-items:center;

  justify-content:space-between;

  padding:16px 20px;

  border-bottom:1px solid var(--border);

  gap:12px;

}

.dsb-header-left{

  display:flex;

  align-items:center;

  gap:12px;

  min-width:0;

}

.dsb-icon{

  width:40px;height:40px;

  display:flex;

  align-items:center;

  justify-content:center;

  border-radius:12px;

  background:var(--primary-50);

  color:var(--primary);

  font-size:16px;

  flex-shrink:0;

}

.dsb-header-left h3{

  font-size:.88rem;

  font-weight:700;

  color:var(--text-heading);

  margin:0;

  line-height:1.3;

}

.dsb-header-left p{

  font-size:.72rem;

  color:var(--text-muted);

  margin:0;

  line-height:1.4;

}

.dsb-link{

  font-size:.75rem;

  font-weight:600;

  color:var(--primary);

  white-space:nowrap;

  display:inline-flex;

  align-items:center;

  gap:4px;

  text-decoration:none;

  transition:all .2s;

  flex-shrink:0;

}

.dsb-link:hover{

  color:var(--primary-dark);

  gap:6px;

}

.dsb-link i{

  font-size:.65rem;

  transition:transform .2s;

}

.dsb-link:hover i{

  transform:translateX(2px);

}



/* Counters — horizontal row with dark bg */

.dsb-counters{

  display:flex;

  align-items:center;

  justify-content:center;

  padding:24px 20px;

  gap:0;

  background:linear-gradient(135deg, var(--primary-darker) 0%, var(--primary-dark) 100%);

  position:relative;

}

.dsb-counters::before{

  content:"";

  position:absolute;

  inset:0;

  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;

  opacity:.5;

  pointer-events:none;

}

.dsb-counter-card{

  display:flex;

  flex-direction:column;

  align-items:center;

  gap:6px;

  flex:1;

  position:relative;

  z-index:1;

}

.dsb-counter-ring{

  width:52px;height:52px;

  display:flex;

  align-items:center;

  justify-content:center;

  border-radius:50%;

  font-size:18px;

  border:2px solid rgba(255,255,255,.25);

  transition:all .3s;

}

.dsb-total .dsb-counter-ring{

  background:rgba(255,255,255,.15);

  color:#fff;

  border-color:rgba(255,255,255,.4);

}

.dsb-laki .dsb-counter-ring{

  background:rgba(59,130,246,.25);

  color:#93C5FD;

  border-color:rgba(59,130,246,.4);

}

.dsb-perempuan .dsb-counter-ring{

  background:rgba(236,72,153,.2);

  color:#F9A8D4;

  border-color:rgba(236,72,153,.35);

}

.dsb-counter-card:hover .dsb-counter-ring{

  transform:scale(1.1);

  border-color:rgba(255,255,255,.6);

}

.dsb-counter-num{

  font-family:var(--font-heading);

  font-size:1.6rem;

  font-weight:800;

  color:#fff;

  line-height:1;

  letter-spacing:-.02em;

}

.dsb-counter-label{

  font-size:.68rem;

  font-weight:600;

  color:rgba(255,255,255,.65);

  text-transform:uppercase;

  letter-spacing:.06em;

}

.dsb-counter-divider{

  width:1px;

  height:60px;

  background:rgba(255,255,255,.12);

  flex-shrink:0;

}



/* Quicklinks row */

.dsb-quicklinks{

  display:flex;

  flex-wrap:wrap;

  align-items:center;

  gap:0;

  border-top:1px solid var(--border);

}

.dsb-qlink{

  flex:1;

  min-width:0;

  display:flex;

  align-items:center;

  justify-content:center;

  gap:6px;

  padding:12px 8px;

  font-size:.75rem;

  font-weight:600;

  color:var(--text-body);

  text-decoration:none;

  transition:all .2s;

  border-right:1px solid var(--border);

  white-space:nowrap;

}

.dsb-qlink:last-child{

  border-right:none;

}

.dsb-qlink:hover{

  background:var(--primary-50);

  color:var(--primary);

}

.dsb-qlink-dot{

  width:8px;height:8px;

  border-radius:50%;

  flex-shrink:0;

  opacity:.8;

}

.dsb-qlink:hover .dsb-qlink-dot{

  opacity:1;

  transform:scale(1.2);

}



/* Responsive stats banner */

@media(max-width:599px){

  .dsb-header{

    flex-direction:column;

    align-items:flex-start;

    gap:8px;

    padding:14px 16px;

  }

  .dsb-counters{

    padding:20px 12px;

    gap:0;

  }

  .dsb-counter-ring{

    width:42px;height:42px;

    font-size:15px;

  }

  .dsb-counter-num{

    font-size:1.25rem;

  }

  .dsb-counter-label{

    font-size:.6rem;

  }

  .dsb-counter-divider{

    height:46px;

  }

  .dsb-quicklinks{

    flex-wrap:wrap;

  }

  .dsb-qlink{

    flex:0 0 33.333%;

    border-right:1px solid var(--border);

    border-bottom:1px solid var(--border);

    padding:10px 6px;

    font-size:.7rem;

  }

  .dsb-qlink:nth-child(3n){

    border-right:none;

  }

  .dsb-qlink:nth-last-child(-n+3){

    border-bottom:none;

  }

}

/* ========== HEADLINE (Slider variant) ========== */
.headline-cahya{position:relative;overflow:hidden;border-radius:var(--radius-lg);height:280px;margin-bottom:24px}
.headline-cahya figure{width:100%;height:100%;margin:0}
.headline-cahya figure img{width:100%;height:100%;object-fit:cover}
.headline-overlay{position:absolute;bottom:0;left:0;right:0;padding:48px 24px 20px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;display:flex;flex-direction:column;gap:6px}
.headline-title{font-size:1.1rem;font-weight:700;color:#fff}

/* ========== SLIDER (inline) ========== */
.slider-cahya{position:relative;overflow:hidden;border-radius:var(--radius-lg);margin-bottom:24px}
.slider-cahya .slider-item,.slider-cahya figure{position:relative;height:280px;width:100%;margin:0}
.slider-cahya .slider-item img,.slider-cahya figure img{width:100%;height:100%;object-fit:cover}
.slider-cahya figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.65));padding:48px 24px 20px;color:#fff}
.slider-cahya figcaption a{font-weight:700;font-size:1rem;color:#fff}
.slider-nav-cahya{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s;opacity:0;color:var(--text-body);border:none;font-size:14px}
.slider-cahya:hover .slider-nav-cahya{opacity:1}
.slider-nav-cahya:hover{background:var(--primary);color:#fff}
.slider-nav-cahya.prev{left:14px}
.slider-nav-cahya.next{right:14px}

/* ========== FULL-WIDTH SECTIONS ========== */
.section-fullwidth{padding:48px 0}
.section-fullwidth:nth-child(even){background:linear-gradient(180deg,var(--primary-50) 0%,#f8faf8 100%)}
.section-aparatur{background:var(--sky)}
.section-peta{background:var(--warm-section)}
.section-trio{background:linear-gradient(180deg,#EFF6FF 0%,#fff 100%)}
.section-header-center{text-align:center;margin-bottom:32px}
.section-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--primary-50);color:var(--primary);border-radius:var(--radius);font-size:18px;margin-bottom:10px}
.section-title-big{font-size:1.75rem;font-weight:800;color:var(--text-heading);margin-bottom:6px}
.section-subtitle{font-size:14px;color:var(--text-muted)}

/* ========== WIDGET: MENU KATEGORI (Elegant â€” like kehadiran panel) ========== */
.wcat-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (sama persis kehadiran-panel-header) */
.wcat-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wcat-header::after{display:none}
.wcat-header-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
  color:var(--primary);
}
.wcat-header-text{
  flex:1;min-width:0;
}
.wcat-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.wcat-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
  line-height:1.3;
}

/* Body */
.wcat-body{
  padding:10px;
  max-height:420px;
  overflow-y:auto;
}
.wcat-body::-webkit-scrollbar{width:4px}
.wcat-body::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}
.wcat-body::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}
.wcat-body::-webkit-scrollbar-thumb:hover{background:var(--primary-soft)}

/* List */
.wcat-list{
  display:flex;
  flex-direction:column;
  gap:3px;
  list-style:none;
  padding:0;margin:0;
}

/* Each item â€” mirip kehadiran-item */
.wcat-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:var(--radius-lg);
  transition:all .25s ease;
  cursor:pointer;
  text-decoration:none;
  color:var(--text-heading);
  animation:fadeInUp .4s ease-out both;
  position:relative;
}
.wcat-item:hover{
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.06),rgba(96,165,250,.03));
  transform:translateX(4px);
  box-shadow:0 2px 12px rgba(var(--primary-rgb),.08);
  color:var(--primary-dark);
}

/* Icon â€” mirip kehadiran avatar area */
.wcat-icon{
  width:38px;height:38px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--primary-50),#fff);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  color:var(--primary);
  flex-shrink:0;
  border:1px solid rgba(var(--primary-rgb),.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 1px 3px rgba(var(--primary-rgb),.08);
  transition:all .25s;
}
.wcat-item:hover .wcat-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  border-color:var(--primary);
  box-shadow:0 3px 12px rgba(var(--primary-rgb),.25);
  transform:scale(1.05);
}

/* Info text â€” mirip kehadiran-info */
.wcat-info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.wcat-name{
  font-size:.84rem;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.wcat-count{
  font-size:.68rem;
  color:var(--text-muted);
  line-height:1.2;
}

/* Badge angka â€” mirip kehadiran-badge */
.wcat-badge{
  flex-shrink:0;
  min-width:26px;
  height:22px;
  padding:0 8px;
  border-radius:var(--radius-full);
  background:linear-gradient(135deg,var(--accent),var(--accent-dark));
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  box-shadow:0 2px 6px rgba(96,165,250,.25);
  transition:all .25s;
}
.wcat-item:hover .wcat-badge{
  transform:scale(1.1);
  box-shadow:0 3px 10px rgba(96,165,250,.35);
}

/* Arrow chevron */
.wcat-arrow{
  flex-shrink:0;
  font-size:10px;
  color:var(--gray-400);
  transition:all .25s;
  opacity:.4;
}
.wcat-item:hover .wcat-arrow{
  color:var(--primary);
  opacity:1;
  transform:translateX(2px);
}

/* Sub-list */
.wcat-sublist{
  list-style:none;
  padding:2px 0 4px 20px;
  margin:0;
  border-left:2px solid rgba(var(--primary-rgb),.1);
  margin-left:30px;
}
.wcat-subitem{
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:8px;
  font-size:.82rem;
  color:var(--text-muted);
  transition:all .2s;
  text-decoration:none;
}
.wcat-subitem:hover{
  color:var(--primary);
  background:var(--primary-50);
  transform:translateX(2px);
}
.wcat-sub-icon{
  font-size:.65rem;
  opacity:.5;
  flex-shrink:0;
}

/* Empty state */
.wcat-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:32px 16px;
  text-align:center;
  color:var(--text-muted);
}
.wcat-empty i{font-size:2rem;opacity:.3}
.wcat-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .footer-columns{grid-template-columns:1fr}
  .footer-top-row{flex-direction:column;align-items:flex-start}
  .wcat-header{padding:14px 16px;border-left:4px solid var(--primary)}
  .wcat-header-icon{width:38px;height:38px;font-size:16px;border-radius:12px}
  .wcat-item{padding:8px 10px;gap:8px}
  .wcat-icon{width:32px;height:32px;font-size:12px;border-radius:10px}
  .wcat-name{font-size:.8rem}
  .wcat-badge{min-width:22px;height:20px;padding:0 6px;font-size:.65rem}
  .wcat-sublist{margin-left:24px;padding-left:14px}
}

/* ========== WIDGET: ARSIP ARTIKEL (Elegant â€” like kehadiran panel) ========== */
.warsip-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (konsisten) */
.warsip-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.warsip-header::after{display:none}
.warsip-header-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
  color:var(--primary);
}
.warsip-header-text{flex:1;min-width:0}
.warsip-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.warsip-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
  line-height:1.3;
}

/* Tabs â€” inline pill buttons */
.warsip-tabs{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--border);
  background:var(--gray-50);
}
.warsip-tab{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:10px 12px;
  font-size:.78rem;
  font-weight:600;
  font-family:var(--font-heading);
  color:var(--text-muted);
  background:transparent;
  border:none;
  border-bottom:2.5px solid transparent;
  cursor:pointer;
  transition:all .25s ease;
  position:relative;
}
.warsip-tab:hover{
  color:var(--primary);
  background:var(--primary-50);
}
.warsip-tab.is-active{
  color:var(--primary-dark);
  border-bottom-color:var(--primary);
  background:var(--white);
}
.warsip-tab i{
  font-size:.68rem;
  opacity:.7;
}
.warsip-tab.is-active i{
  opacity:1;
}

/* Body / Panels */
.warsip-body{
  padding:0;
}
.warsip-panel{
  display:none;
  padding:10px;
  max-height:420px;
  overflow-y:auto;
}
.warsip-panel.is-active{
  display:block;
}
.warsip-panel::-webkit-scrollbar{width:4px}
.warsip-panel::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}
.warsip-panel::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}
.warsip-panel::-webkit-scrollbar-thumb:hover{background:var(--primary-soft)}

/* List */
.warsip-list{
  display:flex;
  flex-direction:column;
  gap:3px;
  list-style:none;
  padding:0;margin:0;
}

/* Each item â€” mirip kehadiran-item */
.warsip-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:var(--radius-lg);
  transition:all .25s ease;
  cursor:pointer;
  text-decoration:none;
  color:var(--text-heading);
  animation:fadeInUp .4s ease-out both;
}
.warsip-item:hover{
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.06),rgba(96,165,250,.03));
  transform:translateX(4px);
  box-shadow:0 2px 12px rgba(var(--primary-rgb),.08);
  color:var(--primary-dark);
}

/* Thumbnail â€” mirip kehadiran avatar */
.warsip-thumb{
  width:56px;height:42px;
  border-radius:10px;
  overflow:hidden;
  flex-shrink:0;
  background:var(--gray-100);
  border:1px solid rgba(var(--primary-rgb),.08);
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.warsip-thumb img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s;
}
.warsip-item:hover .warsip-thumb img{
  transform:scale(1.08);
}
.warsip-thumb-placeholder{
  width:100%;height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--primary-50),var(--gray-100));
  color:var(--gray-400);
  font-size:14px;
}

/* Info text */
.warsip-info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.warsip-hit{
  font-size:.68rem;
  font-weight:700;
  color:var(--accent-dark);
  display:inline-flex;
  align-items:center;
  gap:4px;
  line-height:1;
}
.warsip-hit i{font-size:.6rem;color:var(--accent)}
.warsip-date{
  font-size:.68rem;
  font-weight:600;
  color:var(--text-muted);
  display:inline-flex;
  align-items:center;
  gap:4px;
  line-height:1;
}
.warsip-date i{font-size:.6rem;color:var(--primary-soft)}
.warsip-title{
  font-size:.82rem;
  font-weight:600;
  line-height:1.35;
  color:inherit;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Arrow */
.warsip-arrow{
  flex-shrink:0;
  font-size:10px;
  color:var(--gray-400);
  transition:all .25s;
  opacity:.3;
}
.warsip-item:hover .warsip-arrow{
  color:var(--primary);
  opacity:1;
  transform:translateX(2px);
}

/* Empty state */
.warsip-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:32px 16px;
  text-align:center;
  color:var(--text-muted);
}
.warsip-empty i{font-size:2rem;opacity:.3}
.warsip-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .warsip-header{padding:14px 16px}
  .warsip-header-icon{width:38px;height:38px;font-size:16px;border-radius:12px}
  .warsip-tab{padding:8px 8px;font-size:.72rem}
  .warsip-item{padding:8px 10px;gap:10px}
  .warsip-thumb{width:48px;height:36px;border-radius:8px}
  .warsip-title{font-size:.78rem}
}

/* ========== WIDGET: SINERGI PROGRAM (Elegant â€” like wcat/warsip) ========== */
.wsinergi-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (konsisten) */
.wsinergi-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wsinergi-header::after{display:none}
.wsinergi-header-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  color:var(--primary);
  font-size:16px;
}
.wsinergi-header-text{flex:1;min-width:0}
.wsinergi-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.wsinergi-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
  line-height:1.3;
}

/* Body — Simple list */
.wsinergi-body{padding:0}
.wsinergi-list{
  display:flex;
  flex-direction:column;
}
.wsinergi-list-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  text-decoration:none;
  border-bottom:1px solid var(--gray-100);
  transition:all .2s ease;
}
.wsinergi-list-item:last-child{border-bottom:none}
.wsinergi-list-item:hover{
  background:var(--primary-50);
  padding-left:20px;
}
.wsinergi-list-logo{
  width:36px;height:36px;
  border-radius:10px;
  overflow:hidden;
  background:var(--gray-50);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border:1px solid var(--gray-200);
}
.wsinergi-list-logo img{
  width:100%;height:100%;
  object-fit:contain;
}
.wsinergi-list-logo .wsinergi-fa-icon{
  width:36px;height:36px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.88rem;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark,#92400e));
  flex-shrink:0;
}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--1{background:linear-gradient(135deg,#F59E0B,#D97706)}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--2{background:linear-gradient(135deg,#10B981,#059669)}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--3{background:linear-gradient(135deg,#3B82F6,#2563EB)}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--4{background:linear-gradient(135deg,#8B5CF6,#7C3AED)}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--5{background:linear-gradient(135deg,#EF4444,#DC2626)}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--6{background:linear-gradient(135deg,#EC4899,#DB2777)}
.wsinergi-list-logo .wsinergi-fa-icon.wsinergi-icon--0{background:linear-gradient(135deg,#F97316,#EA580C)}
.wsinergi-list-name{
  flex:1;
  font-size:.78rem;
  font-weight:600;
  color:var(--text-heading);
  line-height:1.3;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition:color .2s;
}
.wsinergi-list-item:hover .wsinergi-list-name{color:var(--primary)}
.wsinergi-list-ext{
  font-size:.58rem;
  color:var(--gray-300);
  opacity:0;
  transition:all .2s;
  flex-shrink:0;
}
.wsinergi-list-item:hover .wsinergi-list-ext{
  opacity:1;
  color:var(--primary);
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wsinergi-header{padding:14px 16px}
  .wsinergi-header-icon{width:38px;height:38px;padding:5px;border-radius:12px}
  .wsinergi-list-item{padding:9px 14px;gap:8px}
  .wsinergi-list-logo{width:24px;height:24px}
  .wsinergi-list-name{font-size:.74rem}
}

/* ========== WIDGET: STATISTIK PENGUNJUNG (Elegant â€” cahya) ========== */
.wvisitor-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  margin-bottom:0;
}
.wvisitor-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wvisitor-header::after{display:none}
.wvisitor-header-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  color:var(--primary);
}
.wvisitor-header-text{flex:1;min-width:0}
.wvisitor-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}

/* â”€â”€ Body â”€â”€ */
.wvisitor-body{padding:18px 16px 14px}
.wvisitor-stat-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
}
.wvisitor-stat{
  flex:1;
  text-align:center;
  padding:4px 0;
}
.wvisitor-num{
  display:block;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;
  font-weight:800;
  color:var(--primary);
  line-height:1.2;
}
.wvisitor-num-total{
  color:var(--accent);
  font-size:1.6rem;
}
.wvisitor-label{
  display:block;
  font-size:.68rem;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-top:2px;
}
.wvisitor-divider{
  width:1px;
  height:36px;
  background:var(--gray-200);
  flex-shrink:0;
}
.wvisitor-live{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid var(--gray-100);
  font-size:.72rem;
  color:var(--text-muted);
  font-weight:500;
}
.wvisitor-live-dot{
  width:8px;height:8px;
  background:#3B82F6;
  border-radius:50%;
  animation:visitorPulse 1.5s ease-in-out infinite;
}
@keyframes visitorPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(1.3)}
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wvisitor-header{padding:14px 16px}
  .wvisitor-header-icon{width:36px;height:36px;font-size:1rem;border-radius:12px}
  .wvisitor-num{font-size:1.3rem}
  .wvisitor-num-total{font-size:1.4rem}
  .wvisitor-body{padding:14px 12px 10px}
}

/* â”€â”€ Statistik Pengunjung in Content Area â”€â”€ */
.wvisitor-content-wrap{
  margin-top:28px;
  margin-bottom:8px;
}
.wvisitor-content-wrap .wvisitor-box{
  border-radius:16px;
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  border:none;
}

/* ========== WIDGET: GALERI (Elegant Carousel â€” cahya) ========== */
.wgaleri-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  margin-bottom:20px;
}

/* â”€â”€ Header â”€â”€ */
.wgaleri-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wgaleri-header::after{display:none}
.wgaleri-header-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  color:var(--primary);
}
.wgaleri-header-text{flex:1;min-width:0}
.wgaleri-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}
.wgaleri-header-text p{
  font-size:.72rem;
  margin:2px 0 0;
  line-height:1.3;
  color:var(--text-muted);
}
.wgaleri-header-link{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-50);
  border-radius:50%;
  color:var(--primary);font-size:.7rem;
  transition:all .2s;flex-shrink:0;
  text-decoration:none;
}
.wgaleri-header-link:hover{
  background:var(--primary);
  transform:scale(1.1);
  color:var(--white);
}

/* â”€â”€ Body â”€â”€ */
.wgaleri-body{padding:0}

/* â”€â”€ Carousel Slides â”€â”€ */
.wgaleri-carousel .owl-stage-outer{border-radius:0}
.wgaleri-slide{
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
  background:#f1f5f9;
}
.wgaleri-slide img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.wgaleri-slide:hover img{
  transform:scale(1.05);
}
.wgaleri-slide-overlay{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:28px 14px 10px;
  background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 100%);
  pointer-events:none;
}
.wgaleri-slide-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.78rem;font-weight:600;
  color:var(--white);
  text-shadow:0 1px 3px rgba(0,0,0,.4);
  display:flex;align-items:center;gap:6px;
}
.wgaleri-slide-title i{font-size:.7rem;opacity:.8}

/* â”€â”€ Carousel Nav & Dots â”€â”€ */
.wgaleri-carousel .owl-nav{
  position:absolute;
  top:50%;left:0;right:0;
  display:flex;justify-content:space-between;
  transform:translateY(-50%);
  padding:0 6px;
  pointer-events:none;
}
.wgaleri-carousel .owl-nav button{
  width:30px;height:30px;
  background:rgba(255,255,255,.85)!important;
  border-radius:50%!important;
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem!important;
  color:var(--primary)!important;
  box-shadow:0 2px 8px rgba(0,0,0,.12);
  pointer-events:all;
  transition:all .2s;
  border:none!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
}
.wgaleri-carousel .owl-nav button:hover{
  background:var(--primary)!important;
  color:var(--white)!important;
  transform:scale(1.1);
}
.wgaleri-carousel .owl-nav button span{display:none}
.wgaleri-carousel .owl-nav button.owl-prev::after{content:'\f053';font-family:'Font Awesome 5 Free';font-weight:900;font-size:.65rem}
.wgaleri-carousel .owl-nav button.owl-next::after{content:'\f054';font-family:'Font Awesome 5 Free';font-weight:900;font-size:.65rem}
.wgaleri-carousel .owl-dots{
  position:absolute;bottom:8px;left:0;right:0;
  text-align:center;
}
.wgaleri-carousel .owl-dots .owl-dot span{
  width:7px;height:7px;
  background:rgba(255,255,255,.5)!important;
  margin:0 3px;
  border-radius:50%;
  transition:all .25s;
}
.wgaleri-carousel .owl-dots .owl-dot.active span{
  background:var(--white)!important;
  width:18px;
  border-radius:4px;
}

/* â”€â”€ Footer â”€â”€ */
.wgaleri-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;
  border-top:1px solid var(--gray-100);
}
.wgaleri-count{
  font-size:.72rem;
  color:var(--text-muted);
  font-weight:500;
  display:flex;align-items:center;gap:5px;
}
.wgaleri-count i{color:var(--primary);font-size:.65rem}
.wgaleri-viewall{
  font-size:.72rem;
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  display:flex;align-items:center;gap:4px;
  transition:all .2s;
}
.wgaleri-viewall:hover{
  color:var(--primary-dark);
  gap:6px;
}
.wgaleri-viewall i{font-size:.6rem;transition:transform .2s}
.wgaleri-viewall:hover i{transform:translateX(2px)}

/* â”€â”€ Empty State â”€â”€ */
.wgaleri-empty{
  padding:30px 20px;
  text-align:center;
}
.wgaleri-empty-img{
  width:100px;height:auto;
  opacity:.6;margin:0 auto 12px;
  display:block;
}
.wgaleri-empty p{
  font-size:.8rem;
  color:var(--text-muted);
  margin:0;
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wgaleri-header{padding:14px 16px}
  .wgaleri-header-icon{width:36px;height:36px;font-size:1rem;border-radius:12px}
  .wgaleri-carousel .owl-nav button{width:26px;height:26px}
  .wgaleri-footer{padding:8px 14px}
}

/* ========== WIDGET: AGENDA KEGIATAN (Elegant â€” like wcat/warsip) ========== */
.wagenda-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (konsisten) */
.wagenda-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:18px 20px;
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-dark) 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.wagenda-header::after{
  content:'';
  position:absolute;
  top:-20px;right:-20px;
  width:80px;height:80px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
}
.wagenda-header-icon{
  width:44px;height:44px;
  border-radius:14px;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
  backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
}
.wagenda-header-text{flex:1;min-width:0}
.wagenda-header-text h3{
  font-family:var(--font-heading);
  font-size:.95rem;font-weight:700;
  margin:0;color:#fff;
}
.wagenda-header-text p{
  font-size:.72rem;
  color:rgba(255,255,255,.6);
  margin:0;line-height:1.3;
}

/* Tabs */
.wagenda-tabs{
  display:flex;gap:0;
  border-bottom:1px solid var(--border);
  background:var(--gray-50);
}
.wagenda-tab{
  flex:1;
  display:inline-flex;align-items:center;justify-content:center;
  gap:5px;
  padding:10px 8px;
  font-size:.76rem;font-weight:600;
  font-family:var(--font-heading);
  color:var(--text-muted);
  background:transparent;border:none;
  border-bottom:2.5px solid transparent;
  cursor:pointer;transition:all .25s ease;
}
.wagenda-tab:hover{color:var(--primary);background:var(--primary-50)}
.wagenda-tab.is-active{
  color:var(--primary-dark);
  border-bottom-color:var(--primary);
  background:var(--white);
}
.wagenda-tab i{font-size:.65rem;opacity:.7}
.wagenda-tab.is-active i{opacity:1}
.wagenda-tab-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;
  padding:0 5px;
  border-radius:var(--radius-full);
  font-size:.6rem;font-weight:700;
  background:var(--gray-200);color:var(--text-muted);
  transition:all .2s;
}
.wagenda-tab.is-active .wagenda-tab-count{
  background:var(--primary);color:#fff;
}

/* Body / Panels */
.wagenda-body{padding:0}
.wagenda-panel{
  display:none;
  padding:10px;
}
.wagenda-panel.is-active{display:block}

/* Vertical auto-scroll wrapper */
.wagenda-scroll-wrap{
  max-height:320px;
  overflow:hidden;
  position:relative;
}
.wagenda-scroll-wrap::before,
.wagenda-scroll-wrap::after{
  content:'';
  position:absolute;
  left:0;right:0;
  height:18px;
  z-index:2;
  pointer-events:none;
}
.wagenda-scroll-wrap::before{
  top:0;
  background:linear-gradient(180deg,var(--white) 0%,transparent 100%);
}
.wagenda-scroll-wrap::after{
  bottom:0;
  background:linear-gradient(0deg,var(--white) 0%,transparent 100%);
}
.wagenda-scroll-track{
  display:flex;
  flex-direction:column;
  gap:0;
}
@keyframes wagendaScrollUp{
  0%{transform:translateY(0)}
  100%{transform:translateY(-50%)}
}

/* List */
.wagenda-list{
  display:flex;flex-direction:column;
  gap:8px;
}

/* Card */
.wagenda-card{
  display:flex;align-items:stretch;
  gap:12px;
  padding:12px;
  border-radius:var(--radius-lg);
  background:var(--gray-50);
  border:1px solid transparent;
  text-decoration:none;
  color:var(--text-heading);
  transition:all .25s ease;
  position:relative;
}
.wagenda-card:hover{
  background:var(--white);
  border-color:var(--primary);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.1);
  transform:translateY(-1px);
}

/* Date badge */
.wagenda-date-badge{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  min-width:48px;width:48px;
  padding:8px 4px;
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;flex-shrink:0;
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.wagenda-date-day{
  font-family:var(--font-heading);
  font-size:1.2rem;font-weight:800;
  line-height:1;
}
.wagenda-date-month{
  font-size:.6rem;font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
  opacity:.85;margin-top:2px;
}

/* Card body */
.wagenda-card-body{
  flex:1;min-width:0;
  display:flex;flex-direction:column;
  gap:4px;
  justify-content:center;
}
.wagenda-card-title{
  font-family:var(--font-heading);
  font-size:.82rem;font-weight:700;
  margin:0;
  color:var(--text-heading);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.35;
  transition:color .2s;
}
.wagenda-card:hover .wagenda-card-title{color:var(--primary)}
.wagenda-card-meta{
  display:flex;flex-wrap:wrap;
  gap:8px;
  font-size:.7rem;color:var(--text-muted);
}
.wagenda-card-meta span{
  display:inline-flex;align-items:center;gap:3px;
}
.wagenda-card-meta i{font-size:.6rem;color:var(--primary);opacity:.6}

/* Badge */
.wagenda-badge{
  display:inline-block;
  padding:2px 8px;
  border-radius:var(--radius-full);
  font-size:.6rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.3px;
  width:fit-content;
}
.wagenda-badge-today{
  background:linear-gradient(135deg,#60A5FA,#E8C547);
  color:#5C4400;
}
.wagenda-badge-upcoming{
  background:linear-gradient(135deg,var(--primary-light),var(--primary-light));
  color:var(--primary-dark);
}
.wagenda-badge-past{
  background:var(--gray-200);
  color:var(--gray-600);
}

/* Arrow */
.wagenda-arrow{
  display:flex;align-items:center;
  font-size:.7rem;color:var(--gray-300);
  transition:all .25s;opacity:.3;
  flex-shrink:0;
  align-self:center;
}
.wagenda-card:hover .wagenda-arrow{
  color:var(--primary);opacity:1;
  transform:translateX(2px);
}

/* Empty state */
.wagenda-empty{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:8px;padding:32px 16px;
  text-align:center;color:var(--text-muted);
}
.wagenda-empty i{font-size:2rem;opacity:.3}
.wagenda-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wagenda-header{padding:14px 16px}
  .wagenda-header-icon{width:38px;height:38px;font-size:16px;border-radius:12px}
  .wagenda-tab{padding:8px 6px;font-size:.72rem}
  .wagenda-card{padding:10px;gap:10px}
  .wagenda-date-badge{min-width:42px;width:42px;padding:6px 3px}
  .wagenda-date-day{font-size:1rem}
  .wagenda-date-month{font-size:.55rem}
  .wagenda-card-title{font-size:.78rem}
  .wagenda-card-meta{font-size:.66rem}
}

/* ========== TRIO ROW â€” 3 Kolom: Peta | Aparatur | Kantor ========== */
.trio-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:stretch}
.trio-col{min-width:0}
.trio-card{background:#fff;border-radius:16px;border:1px solid rgba(var(--primary-rgb),.1);box-shadow:0 2px 20px rgba(var(--primary-rgb),.06);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:box-shadow .3s,transform .3s}
.trio-card:hover{box-shadow:0 8px 36px rgba(var(--primary-rgb),.12);transform:translateY(-2px)}

/* Trio Card Header â€” elegan (konsisten dengan wcat/warsip) */
.trio-card-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.trio-card-header::after{display:none}
.trio-card-header-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;flex-shrink:0;
  color:var(--primary);
}
.trio-card-header-text{flex:1;min-width:0}
.trio-card-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}
.trio-card-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:2px 0 0;line-height:1.3;
}

/* Trio Card Body */
.trio-card-body{flex:1;position:relative;min-height:300px}
.trio-map-wrap{padding:0}
.trio-map{width:100%;height:100%;min-height:300px}
.trio-map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--text-muted);gap:12px}
.trio-map-empty i{font-size:2.5rem;opacity:.3}
.trio-map-empty p{font-size:.85rem}

/* ========== APARATUR SECTION (di bawah Statistik Info Desa) ========== */
.aparatur-section{
  margin-top:20px;
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
}
.aparatur-section-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.aparatur-section-header::after{display:none}
.aparatur-section-icon{
  width:42px;height:42px;
  background:rgba(255,255,255,.15);
  border-radius:var(--radius-lg);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0;
  backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
}
.aparatur-section-header h3{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem;font-weight:700;margin:0;line-height:1.3;
  color:#fff;
}
.aparatur-section-header p{
  font-size:.72rem;opacity:.75;margin:2px 0 0;line-height:1.3;
  color:rgba(255,255,255,.65);
}
.aparatur-section-link{
  margin-left:auto;
  font-size:.72rem;font-weight:600;
  color:rgba(255,255,255,.85);
  text-decoration:none;
  display:flex;align-items:center;gap:4px;
  white-space:nowrap;
  transition:all .2s;
  z-index:1;
}
.aparatur-section-link:hover{color:var(--primary-dark);gap:6px}
.aparatur-section-link i{font-size:.6rem;transition:transform .2s}
.aparatur-section-link:hover i{transform:translateX(2px)}

/* â”€â”€ Aparatur List (grid 3 kolom, show/hide) â”€â”€ */
.aparatur-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  padding:16px;
}
.aparatur-card{
  text-align:center;
  padding:16px 8px;
  background:var(--gray-50);
  border-radius:var(--radius-lg);
  border:1px solid transparent;
  transition:all .4s cubic-bezier(.4,0,.2,1);
}
.aparatur-card.aparatur-hidden{
  display:none;
}
.aparatur-card.aparatur-sliding-out{
  opacity:0;
  transform:translateX(-30px);
}
.aparatur-card.aparatur-sliding-in{
  opacity:0;
  transform:translateX(30px);
}
.aparatur-card:hover{
  background:var(--white);
  border-color:var(--primary);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.1);
  transform:translateY(-3px);
}
.aparatur-card-photo{
  width:80px;height:80px;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 10px;
  border:3px solid var(--primary-light);
  background:var(--gray-100);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.12);
  transition:all .3s;
}
.aparatur-card:hover .aparatur-card-photo{
  border-color:var(--primary);
  box-shadow:0 6px 24px rgba(var(--primary-rgb),.2);
}
.aparatur-card-photo img{width:100%;height:100%;object-fit:cover}
.aparatur-card-info h4{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.78rem;font-weight:700;
  color:var(--text-heading);
  margin:0 0 4px;
  line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.aparatur-card-info span{
  font-size:.68rem;
  color:var(--primary);
  font-weight:600;
  background:rgba(var(--primary-rgb),.08);
  display:inline-block;
  padding:2px 10px;
  border-radius:99px;
}

/* â”€â”€ Aparatur Navigation â”€â”€ */
.aparatur-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:0 16px 14px;
}
.aparatur-nav-btn{
  width:32px;height:32px;
  border-radius:50%;
  border:1px solid var(--border);
  background:var(--white);
  color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  font-size:12px;
  transition:all .2s;
}
.aparatur-nav-btn:hover:not(:disabled){
  background:var(--primary);
  color:var(--white);
  border-color:var(--primary);
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.3);
}
.aparatur-nav-btn:disabled{
  opacity:.35;cursor:not-allowed;
}
.aparatur-nav-info{
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  min-width:80px;
  text-align:center;
}

/* ========== ALAMAT KANTOR (Trio Column) ========== */
.alamat-kantor{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px 16px;
  text-align:center;
  height:100%;
}
.alamat-kantor-logo-wrap{
  position:relative;
  margin-bottom:18px;
}
.alamat-kantor-logo-ring{
  width:80px;height:80px;
  border-radius:50%;
  background:linear-gradient(145deg,var(--primary) 0%,var(--primary-dark) 50%,var(--accent,#60A5FA) 100%);
  padding:3px;
  box-shadow:0 6px 24px rgba(var(--primary-rgb),.25),0 0 0 4px rgba(var(--primary-rgb),.08);
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s ease,box-shadow .3s ease;
}
.alamat-kantor-logo-ring:hover{
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 8px 32px rgba(var(--primary-rgb),.3),0 0 0 6px rgba(var(--primary-rgb),.1);
}
.alamat-kantor-logo{
  width:100%;height:100%;
  border-radius:50%;
  object-fit:contain;
  background:var(--white);
  padding:6px;
}
.alamat-kantor-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;font-weight:700;
  color:var(--text-heading);
  margin:0 0 16px;
  line-height:1.4;
}

/* -- Contact Grid -- */
.ak-contact-grid{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.ak-contact-card{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  background:var(--gray-50,#f8faf9);
  border:1px solid var(--border);
  border-radius:var(--radius-md,8px);
  transition:all .25s ease;
  cursor:default;
}
.ak-contact-card:hover{
  background:var(--white);
  border-color:var(--primary);
  box-shadow:0 2px 12px rgba(var(--primary-rgb),.1);
  transform:translateY(-1px);
}
.ak-contact-full{
  grid-column:1 / -1;
}
.ak-contact-icon{
  flex-shrink:0;
  width:30px;height:30px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  display:flex;align-items:center;justify-content:center;
  color:var(--white);
  font-size:.65rem;
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.18);
}
.ak-contact-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.ak-contact-label{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.62rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.6px;
  color:var(--primary);
  line-height:1.2;
}
.ak-contact-value{
  font-size:.76rem;
  color:var(--text-body);
  line-height:1.5;
  word-break:break-word;
}

/* Peta Fullwidth */
.peta-fullwidth{margin-top:16px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}

/* ========== SIDEBAR ========== */
.sidebar-cahya{display:flex;flex-direction:column;gap:20px}
.sidebar-search{position:relative;display:flex;align-items:center}
.sidebar-search input{width:100%;padding:12px 16px 12px 42px;border:2px solid var(--border);border-radius:var(--radius-full);font-size:14px;outline:none;font-family:var(--font-body);transition:border .2s;background:var(--white)}
.sidebar-search input:focus{border-color:var(--primary)}
.sidebar-search>i{position:absolute;left:16px;color:var(--gray-400);font-size:14px}

/* ========== BOX / WIDGET ========== */
.box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.box+.box{margin-top:0}
.box-primary.box-solid{border:none}
.box-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center}
.box-primary.box-solid .box-header{background:var(--white);color:var(--text-heading);border-bottom:1px solid var(--border);border-left:4px solid var(--primary)}
.box-primary.box-solid .box-header a{color:var(--text-heading)}
.box-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px}
.box-title a{color:inherit}
.box-body{padding:16px 18px}
.box-body ul{list-style:none;padding:0;margin:0}
.box-body ul li a{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--text-muted);transition:all .15s}
.box-body ul li a:hover{color:var(--primary);padding-left:4px}
.box-body ul li a i{font-size:8px;color:var(--primary-soft)}

/* ========== BUTTONS ========== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all var(--transition);line-height:1.5;font-family:var(--font-body);text-decoration:none;border-radius:var(--radius)}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);color:#fff;box-shadow:var(--shadow-primary)}
.btn-accent{background:var(--accent);color:var(--dark)}.btn-accent:hover{background:var(--accent-dark);color:#fff}
.btn-outline{border:1.5px solid var(--border);color:var(--text-muted);background:transparent;border-radius:var(--radius)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-outline-primary{border:1.5px solid var(--primary);color:var(--primary);background:transparent;border-radius:var(--radius)}.btn-outline-primary:hover{background:var(--primary);color:#fff}
.btn-secondary{background:var(--gray-700);color:#fff}.btn-secondary:hover{background:var(--dark);color:#fff}
.btn-default{background:var(--gray-200);color:var(--text-body)}.btn-default:hover{background:var(--gray-300)}
.btn-dark{background:var(--dark);color:#fff}.btn-dark:hover{background:var(--primary);color:#fff}
.btn-danger{background:#E53E3E;color:#fff}.btn-info{background:#3182CE;color:#fff}.btn-success{background:var(--primary);color:#fff}.btn-warning{background:#DD6B20;color:#fff}
.btn-block{width:100%}
.btn-sm{padding:7px 14px;font-size:12px;border-radius:var(--radius)}
.btn-lg{padding:13px 30px;font-size:15px}
.btn-xs{padding:3px 10px;font-size:11px}

/* ========== FOOTER — Wave + Light ========== */
.footer-cahya{position:relative;margin-top:0;background:#fff;color:#CBD5E1}
/* Wave — background putih di atas, sambung ke navy footer */
.footer-wave{position:relative;overflow:hidden;line-height:0;background:#fff}
.footer-wave svg{display:block;width:100%;height:50px}
/* Main area — dark navy */
.footer-main{background:#1E2D4E;padding:44px 0 28px;position:relative}
.footer-main::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='0' r='11' fill='none' stroke='white' stroke-width='1' opacity='0.05'/%3E%3Ccircle cx='30' cy='60' r='11' fill='none' stroke='white' stroke-width='1' opacity='0.05'/%3E%3Ccircle cx='0' cy='30' r='11' fill='none' stroke='white' stroke-width='1' opacity='0.05'/%3E%3Ccircle cx='60' cy='30' r='11' fill='none' stroke='white' stroke-width='1' opacity='0.05'/%3E%3Ccircle cx='30' cy='30' r='14' fill='none' stroke='white' stroke-width='0.6' opacity='0.03'/%3E%3Ccircle cx='0' cy='0' r='5' fill='none' stroke='white' stroke-width='0.5' opacity='0.04'/%3E%3Ccircle cx='60' cy='0' r='5' fill='none' stroke='white' stroke-width='0.5' opacity='0.04'/%3E%3Ccircle cx='0' cy='60' r='5' fill='none' stroke='white' stroke-width='0.5' opacity='0.04'/%3E%3Ccircle cx='60' cy='60' r='5' fill='none' stroke='white' stroke-width='0.5' opacity='0.04'/%3E%3C/svg%3E");background-size:60px 60px;pointer-events:none}

/* Brand row */
.footer-brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px;position:relative;z-index:1}
.footer-brand-left{display:flex;align-items:flex-start;gap:16px}
.footer-logo-wrap{flex-shrink:0}
.footer-logo-img{width:58px;height:58px;object-fit:contain;border-radius:14px;border:2px solid rgba(255,255,255,.15);padding:4px;background:rgba(255,255,255,.07);transition:all .3s}
.footer-logo-img:hover{border-color:rgba(255,255,255,.35);box-shadow:0 0 16px rgba(96,165,250,.2)}
.footer-desa-name{font-family:var(--font-heading);font-size:1.05rem;font-weight:800;color:#fff;margin:0 0 4px}
.footer-desa-loc{font-size:.75rem;color:#94A3B8;margin:0 0 14px;display:flex;align-items:center;gap:5px}
.footer-desa-loc i{font-size:.65rem;color:#60A5FA}

/* Social icons */
.footer-social-row{display:flex;flex-wrap:wrap;gap:7px}
.footer-social-below{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.footer-soc{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;font-size:13px;transition:all .25s;border:1px solid rgba(255,255,255,.1)}
.footer-soc:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.25);border-color:rgba(255,255,255,.3)}
.footer-soc-facebook{background:#1877F2;color:#fff}
.footer-soc-twitter{background:#1DA1F2;color:#fff}
.footer-soc-instagram{background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF);color:#fff}
.footer-soc-telegram{background:#0088CC;color:#fff}
.footer-soc-whatsapp{background:#25D366;color:#fff}
.footer-soc-youtube{background:#FF0000;color:#fff}

/* Divider */
.footer-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);margin-bottom:28px;position:relative;z-index:1}

/* Columns */
.footer-columns{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;position:relative;z-index:1}
.footer-col-title{font-family:var(--font-heading);font-size:.78rem;font-weight:700;color:#fff;margin:0 0 14px;display:flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:.06em}
.footer-col-title i{color:#60A5FA;font-size:.7rem;width:14px;text-align:center}
.footer-col-title::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.08);margin-left:4px}

/* Info list */
.footer-info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.footer-info-list li{display:flex;align-items:flex-start;gap:10px;font-size:.8rem;color:#94A3B8;line-height:1.5}
.footer-info-list li i{color:#60A5FA;font-size:.68rem;margin-top:3px;flex-shrink:0;width:14px;text-align:center}
.footer-info-list li span{color:#CBD5E1}

/* Nav list */
.footer-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.footer-nav-list li a{font-size:.8rem;color:#94A3B8;transition:all .2s;display:flex;align-items:center;gap:8px;padding:4px 0;border-radius:4px}
.footer-nav-list li a::before{content:"›";font-family:inherit;font-weight:700;font-size:.85rem;color:#60A5FA;opacity:.6;transition:all .2s;flex-shrink:0;line-height:1}
.footer-nav-list li a:hover{color:#fff;padding-left:6px}
.footer-nav-list li a:hover::before{opacity:1}

/* BSrE */
.footer-bsre-row{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.07);text-align:center;position:relative;z-index:1}
.footer-bsre-row img{width:110px;opacity:.35;transition:opacity .3s;filter:brightness(0) invert(1)}
.footer-bsre-row img:hover{opacity:.65}

/* Bottom bar */
.footer-bottom-bar{background:#111B30;border-top:1px solid rgba(255,255,255,.06);padding:14px 0}
.footer-bottom-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:.71rem}
.footer-bottom-inner p{margin:0;color:#64748B}
.footer-bottom-inner strong{color:#94A3B8}
.footer-bottom-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.footer-ver-sep{color:#334155;font-size:.65rem}
.footer-ver-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:.65rem;font-weight:600;letter-spacing:.02em;transition:opacity .2s}
.footer-ver-badge i{font-size:.58rem;opacity:.85}
.footer-ver-badge:hover{opacity:.85}
.footer-ver-badge--tema{background:rgba(217,119,6,.12);color:#D97706;border:1px solid rgba(217,119,6,.2)}
.footer-ver-badge--opensid{background:rgba(59,130,246,.1);color:#60A5FA;border:1px solid rgba(59,130,246,.18)}
.footer-ver-num{font-weight:700;letter-spacing:.01em}
.footer-powered-badge{display:inline-flex;align-items:center;gap:5px;color:#64748B}
.footer-powered-badge i{color:#3B82F6;font-size:.65rem}
.footer-powered-badge a{color:#94A3B8;transition:color .2s}
.footer-powered-badge a:hover{color:#60A5FA}
.footer-idch-logo{height:14px;display:inline-block;vertical-align:middle;opacity:.6;filter:brightness(0) invert(1)}
.footer-idch-logo:hover{opacity:.9}

/* ========== MOBILE PANEL ========== */
.mobile-panel{position:fixed;inset:0;z-index:2000;display:flex}
.mobile-panel-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.mobile-panel-body{position:relative;width:300px;max-width:85vw;height:100%;background:var(--white);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow-y:auto;z-index:1}
.mobile-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}
.mobile-panel-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px}
.mobile-panel-brand img{width:36px;height:36px;border-radius:50%;object-fit:contain}
.mobile-panel-close{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;font-size:16px;border-radius:var(--radius)}
.mobile-panel-close:hover{background:var(--gray-100)}
.mobile-search{display:flex;margin:14px 16px;border-radius:var(--radius-full);overflow:hidden;border:2px solid var(--border)}
.mobile-search input{flex:1;padding:10px 16px;border:none;font-size:14px;outline:none;font-family:var(--font-body)}
.mobile-search button{padding:10px 16px;background:var(--primary);color:#fff;border:none;cursor:pointer}
.mobile-menu-list{list-style:none;margin:0;padding:0;flex:1}
.mobile-menu-list>li{border-bottom:1px solid var(--gray-200)}
.mobile-menu-list>li>a{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;font-size:14px;font-weight:500;color:var(--text-body);transition:all .15s}
.mobile-menu-list>li>a:hover{color:var(--primary);background:var(--primary-50)}
/* Active mobile menu item */
.mobile-menu-list>li.nav-active>a{color:var(--primary);background:var(--primary-50);font-weight:600;border-left:3px solid var(--primary)}
.mobile-menu-list>li>a .fa-chevron-down{font-size:10px;transition:transform .3s}
.mobile-submenu{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--primary-light)}
.mobile-submenu li a{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:13px;color:var(--text-muted);transition:all .15s}
.mobile-submenu li a:hover{color:var(--primary)}
.mobile-submenu.level-2{border-left-color:var(--gray-300)}
.mobile-panel-footer{padding:16px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border)}
.rotate-180{transform:rotate(180deg)!important}

/* ========== CATEGORY BAR ========== */
.category-bar-cahya{background:var(--gray-50);border-bottom:1px solid var(--border);padding:8px 0;font-size:13px}
.category-inner{display:flex;align-items:center;justify-content:space-between;gap:8px}
.category-list{display:flex;flex-wrap:wrap;gap:2px;flex:1;list-style:none;margin:0;padding:0}
.category-list li a{display:inline-block;padding:4px 12px;color:var(--text-muted);transition:all .2s;border-radius:var(--radius-full)}
.category-list li a:hover{color:var(--primary);background:var(--primary-50)}
.category-actions{display:flex;gap:6px;flex-shrink:0}

/* ========== BACK TO TOP ========== */
.back-to-top{position:fixed;bottom:24px;right:24px;z-index:999;width:44px;height:44px;background:var(--primary-darker);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;text-decoration:none;opacity:0;pointer-events:none;font-size:14px;border-radius:50%;box-shadow:var(--shadow-primary);border:none}
.back-to-top:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}

/* ========== BREADCRUMB ========== */
.breadcrumb-cahya,.breadcrumb{padding:10px 0;font-size:13px}
.breadcrumb-cahya ol,.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px;list-style:none;padding:0;margin:0}
.breadcrumb-cahya ol li+li::before,.breadcrumb ol li+li::before{content:'\f105';font-family:'Font Awesome 5 Free';font-weight:900;color:var(--gray-400);margin-right:4px;font-size:10px}
.breadcrumb-cahya ol li a,.breadcrumb ol li a{color:var(--primary);font-weight:500}

/* ========== PAGINATION ========== */
.pagination-cahya{padding:16px 0}

/* New elegant pagination */
.pag-cahya{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding:24px 0 8px;
}
.pag-info{
  font-size:.82rem;
  color:var(--text-muted);
  font-weight:500;
  margin:0;
}
.pag-info strong{
  color:var(--primary-dark);
  font-weight:700;
}
.pag-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:center;
  list-style:none;
  padding:0;margin:0;
}
.pag-list li a,
.pag-list li span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;height:38px;
  padding:0 12px;
  border:1.5px solid var(--border);
  font-size:.82rem;
  font-weight:600;
  color:var(--text-body);
  background:var(--white);
  cursor:pointer;
  transition:all .2s ease;
  border-radius:var(--radius-lg);
  font-family:var(--font-heading);
  text-decoration:none;
}
.pag-list li a:hover{
  border-color:var(--primary);
  color:var(--primary);
  background:var(--primary-50);
  transform:translateY(-1px);
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.12);
}
.pag-list .pag-active a{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 3px 12px rgba(var(--primary-rgb),.25);
  transform:translateY(-1px);
}
.pag-list .pag-disabled span{
  color:var(--gray-300);
  background:var(--gray-50);
  border-color:var(--gray-200);
  cursor:default;
}
.pag-list .pag-dots span{
  border:none;
  background:transparent;
  color:var(--text-muted);
  min-width:28px;
  padding:0;
  cursor:default;
  font-size:1rem;
  letter-spacing:2px;
}

/* Legacy paging fallback */
.pagination{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;padding:12px 0;list-style:none}
.pagination li{list-style:none}
.pagination .page-link,.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-body);background:var(--white);cursor:pointer;transition:all .15s;border-radius:var(--radius)}
.pagination .page-link:hover,.pagination a:hover{border-color:var(--primary);color:var(--primary)}
.pagination .active .page-link,.pagination .page-link.active{background:var(--primary);border-color:var(--primary);color:#fff}
.paging{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;padding:8px 0}
.paging a,.paging span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-body);background:var(--white);transition:all .15s;border-radius:var(--radius)}
.paging a:hover{border-color:var(--primary);color:#fff;background:var(--primary)}
.paging .active-page{background:var(--primary);border-color:var(--primary);color:#fff}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   AGENDA + KOMENTAR 2-GRID ROW
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Row Container â”€â”€ */
.agenda-komentar-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:32px;
  margin-bottom:16px;
}
.agenda-komentar-row.ak-row-single{
  grid-template-columns:1fr;
}
.agenda-komentar-row.ak-row-single-agenda{
  grid-template-columns:1fr;
}

/* â”€â”€ Columns â”€â”€ */
.ak-agenda,.ak-komentar{
  min-width:0;
}

/* â”€â”€ Card Shared â”€â”€ */
.ak-card{
  background:#fff;
  border-radius:16px;
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  height:100%;
}

/* â”€â”€ Card Header (gradient) â”€â”€ */
.ak-card-header{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.ak-card-header::after{display:none}
.ak-card-header-icon{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-50);
  border-radius:10px;
  font-size:1.05rem;
  flex-shrink:0;
  color:var(--primary);
}
.ak-card-header-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.ak-card-header-sub{
  font-size:.78rem;
  margin:2px 0 0;
  color:var(--text-muted);
}

/* â”€â”€ AGENDA: Viewport + Track + Items â”€â”€ */
.ak-agenda-viewport{
  overflow:hidden;
  padding:0;
  flex:1 1 auto;
}
.ak-agenda-track{
  display:flex;
  flex-direction:column;
}
.ak-agenda-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 20px;
  text-decoration:none;
  color:inherit;
  border-bottom:1px solid #f0f0f0;
  transition:background .2s,opacity .35s,transform .35s;
  position:relative;
}
.ak-agenda-item:last-child{
  border-bottom:none;
}
.ak-agenda-item:hover{
  background:#f7faf8;
}
.ak-agenda-hidden{
  display:none !important;
}

/* Date badge */
.ak-agenda-date{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:54px;height:54px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  border-radius:12px;
  flex-shrink:0;
  color:#fff;
  line-height:1.15;
}
.ak-agenda-date-num{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.25rem;
  font-weight:800;
}
.ak-agenda-date-mon{
  font-size:.65rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
  opacity:.85;
}

/* Info */
.ak-agenda-info{
  flex:1;
  min-width:0;
}
.ak-agenda-info h4{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:#1a202c;
  margin:4px 0 3px;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.ak-agenda-badge{
  display:inline-block;
  padding:2px 10px;
  border-radius:20px;
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.3px;
}
.ak-badge-today{
  background:#DBEAFE;color:#1E3A5F;
}
.ak-badge-upcoming{
  background:#dbeafe;color:#1e40af;
}
.ak-badge-past{
  background:#f3f4f6;color:#6b7280;
}
.ak-agenda-loc{
  font-size:.76rem;
  color:#6b7280;
  display:flex;
  align-items:center;
  gap:4px;
}
.ak-agenda-loc i{
  color:var(--primary);
  font-size:.7rem;
}
.ak-agenda-arrow{
  color:#cbd5e0;
  font-size:.8rem;
  flex-shrink:0;
  transition:color .2s,transform .2s;
}
.ak-agenda-item:hover .ak-agenda-arrow{
  color:var(--primary);
  transform:translateX(3px);
}

/* â”€â”€ AGENDA: Nav Bar â”€â”€ */
.ak-agenda-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 20px;
  border-top:1px solid #e8e8e8;
  background:#fafafa;
  border-radius:0 0 16px 16px;
}
.ak-agenda-info{
  font-size:.78rem;
  color:#6b7280;
  font-weight:500;
}
.ak-agenda-nav-btns{
  display:flex;
  gap:6px;
}
.ak-agenda-btn{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:8px;
  color:#374151;
  font-size:.8rem;
  cursor:pointer;
  transition:all .2s;
  padding:0;
  line-height:1;
}
.ak-agenda-btn:hover:not(:disabled){
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.ak-agenda-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* â”€â”€ KOMENTAR: Viewport + Track + Items â”€â”€ */
.ak-komentar-viewport{
  overflow:hidden;
  padding:0;
  flex:1 1 auto;
}
.ak-komentar-track{
  display:flex;
  flex-direction:column;
}
.ak-komentar-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:16px 20px;
  border-bottom:1px solid #f0f0f0;
  transition:background .2s,opacity .35s,transform .35s;
}
.ak-komentar-item:last-child{
  border-bottom:none;
}
.ak-komentar-item:hover{
  background:#f7faf8;
}
.ak-komentar-hidden{
  display:none !important;
}

/* Avatar circle */
.ak-komentar-avatar{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  border-radius:50%;
  flex-shrink:0;
  color:#fff;
  font-weight:700;
  font-size:1rem;
  font-family:'Plus Jakarta Sans',sans-serif;
}

/* Body */
.ak-komentar-body{
  flex:1;
  min-width:0;
}
.ak-komentar-quote{
  background:#f7faf8;
  border-radius:10px;
  padding:12px 14px;
  position:relative;
  margin-bottom:8px;
  border-left:3px solid var(--primary);
}
.ak-komentar-quote-icon{
  position:absolute;
  top:10px;left:12px;
  font-size:.85rem;
  color:var(--primary);
  opacity:.35;
}
.ak-komentar-quote p{
  margin:0;
  font-size:.85rem;
  color:#374151;
  line-height:1.55;
  padding-left:18px;
}

/* Meta */
.ak-komentar-meta{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  font-size:.76rem;
  color:#6b7280;
}
.ak-komentar-author i,
.ak-komentar-date i{
  margin-right:3px;
  color:var(--primary);
  font-size:.7rem;
}
.ak-komentar-link{
  margin-left:auto;
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  font-size:.78rem;
}
.ak-komentar-link:hover{
  text-decoration:underline;
}
.ak-komentar-link i{
  margin-left:3px;
  font-size:.65rem;
}

/* â”€â”€ KOMENTAR: Nav Bar â”€â”€ */
.ak-komentar-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 20px;
  border-top:1px solid #e8e8e8;
  background:#fafafa;
  border-radius:0 0 16px 16px;
}
.ak-komentar-info{
  font-size:.78rem;
  color:#6b7280;
  font-weight:500;
}
.ak-komentar-nav-btns{
  display:flex;
  gap:6px;
}
.ak-komentar-btn{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:8px;
  color:#374151;
  font-size:.8rem;
  cursor:pointer;
  transition:all .2s;
  padding:0;
  line-height:1;
}
.ak-komentar-btn:hover:not(:disabled){
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.ak-komentar-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* â”€â”€ Responsive Agenda+Komentar â”€â”€ */
@media(max-width:991px){
  .agenda-komentar-row{
    grid-template-columns:1fr;
    gap:20px;
  }
}
@media(max-width:575px){
  .ak-card-header{
    padding:14px 16px;
    gap:10px;
  }
  .ak-card-header-icon{
    width:36px;height:36px;
    font-size:1rem;
    border-radius:10px;
  }
  .ak-card-header-title{
    font-size:1rem;
  }
  .ak-agenda-item{
    padding:12px 14px;
    gap:10px;
  }
  .ak-agenda-date{
    width:46px;height:46px;
    border-radius:10px;
  }
  .ak-agenda-date-num{
    font-size:1.05rem;
  }
  .ak-agenda-info h4{
    font-size:.84rem;
  }
  .ak-komentar-item{
    padding:12px 14px;
    gap:10px;
  }
  .ak-komentar-avatar{
    width:36px;height:36px;
    font-size:.85rem;
  }
  .ak-komentar-quote{
    padding:10px 12px;
  }
  .ak-komentar-quote p{
    font-size:.8rem;
  }
  .ak-agenda-nav,
  .ak-komentar-nav{
    padding:8px 14px;
  }
}

/* ========== FORMS ========== */
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-heading)}
.form-input,.form-control,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="tel"],input[type="search"],select,textarea{width:100%;padding:10px 16px;border:2px solid var(--border);border-radius:var(--radius);font-size:14px;transition:border .2s;background:var(--white);color:var(--text-body);font-family:var(--font-body);outline:none}
.form-input:focus,.form-control:focus,input:focus,select:focus,textarea:focus{border-color:var(--primary)}
textarea{min-height:100px;resize:vertical}

/* ========== TABLES ========== */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}
.table thead th{background:var(--primary-50);font-weight:600;font-size:12px;color:var(--primary-darker)}
.table-striped tbody tr:nth-child(even){background:var(--gray-50)}
.table-hover tbody tr:hover{background:var(--primary-50)}
.table-responsive{overflow-x:auto}
.table-bordered th,.table-bordered td{border:1px solid var(--border)}

/* ========== TABS ========== */
.nav-tabs{display:flex;border-bottom:2px solid var(--border);gap:0;padding:0;margin-bottom:16px;list-style:none}
.nav-tabs li,.nav-tabs .nav-item{flex:1;text-align:center}
.nav-tabs a,.nav-tabs .nav-link{display:block;padding:12px 16px;font-size:13px;font-weight:500;color:var(--text-muted);border-bottom:3px solid transparent;transition:all .2s;cursor:pointer;background:transparent;text-decoration:none}
.nav-tabs a:hover{color:var(--primary)}
.nav-tabs a.active,.nav-tabs .nav-link.active,.nav-tabs li.active a{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}
.tab-pane{display:none}.tab-pane.show.active,.tab-pane.active{display:block}

/* ========== ACCORDION / PANEL ========== */
.accordion-item{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:8px}
.accordion-button{width:100%;display:flex;align-items:center;padding:14px 18px;font-weight:600;background:var(--white);border:none;cursor:pointer;font-family:var(--font-body);font-size:14px}
.accordion-button:hover{background:var(--gray-50)}
.accordion-body{padding:12px 18px}
.panel{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}
.panel-heading{padding:12px 16px;background:var(--gray-50);cursor:pointer;font-weight:600}
.panel-body{padding:12px 16px}
.panel-collapse{border-top:1px solid var(--border)}

/* ========== MODALS ========== */
.modal{display:none;position:fixed;inset:0;z-index:1050;overflow-y:auto}
.modal.show,.modal.in{display:block}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1040}
.modal-dialog{max-width:600px;margin:2rem auto;position:relative;z-index:1055}
.modal-lg{max-width:900px}.modal-sm{max-width:400px}
.modal-content{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border)}
.modal-title{font-size:16px;font-weight:700}
.modal-body{padding:24px}
.modal-footer{padding:14px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
.btn-close,.close{background:none;border:none;font-size:18px;cursor:pointer;opacity:.5;line-height:1}
.btn-close:hover,.close:hover{opacity:1}

/* ========== ALERTS ========== */
.alert{padding:14px 18px;font-size:13px;margin-bottom:16px;border-radius:var(--radius)}
.alert-success{background:var(--primary-light);color:#22543D;border:1px solid var(--primary-soft)}
.alert-danger,.alert-error{background:#FED7D7;color:#9B2C2C;border:1px solid #FC8181}
.alert-warning{background:#FEFCBF;color:#92400E;border:1px solid #F6E05E}
.alert-info{background:#BEE3F8;color:#2A4365;border:1px solid #63B3ED}

/* ========== LABELS ========== */
.label,.badge{display:inline-flex;align-items:center;gap:3px;padding:3px 10px;font-size:11px;font-weight:600;color:#fff;border-radius:var(--radius-full)}
.label-primary,.badge-primary{background:var(--primary)}
.label-danger,.badge-danger{background:#E53E3E}
.label-success,.badge-success{background:var(--primary)}
.label-info,.badge-info{background:#3182CE}
.label-warning,.badge-warning{background:#DD6B20}
.label-default,.badge-default{background:var(--gray-500)}

/* ========== PROGRESS ========== */
.progress{height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}
.progress-bar{height:100%;background:var(--primary);transition:width .6s ease;border-radius:var(--radius-full)}

/* ========== COMMENTS ========== */
.comments-cahya{margin-top:24px}
.comments-cahya .comment-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--gray-200)}
.comments-cahya .comment-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex-shrink:0;font-size:13px}
.comments-cahya .comment-body{flex:1;min-width:0}
.comments-cahya .comment-author{font-weight:600;font-size:13px}
.comments-cahya .comment-date{font-size:11px;color:var(--text-muted)}
.comments-cahya .comment-text{font-size:13px;margin-top:4px;line-height:1.7}
.comment-form-cahya{margin-top:20px}
.comment-form-cahya label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}

/* ========== ARTICLE DETAIL ========== */
.article-detail-title{font-size:1.75rem;font-weight:800;line-height:1.3;margin-bottom:14px}
.article-detail-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.article-detail-meta span{display:inline-flex;align-items:center;gap:4px}
.article-detail-meta i{color:var(--primary);font-size:11px}
.article-featured-image{display:block;margin-bottom:20px;overflow:hidden;border-radius:var(--radius-lg)}
.article-featured-image img{width:100%;transition:transform .3s}
.article-featured-image:hover img{transform:scale(1.02)}

/* ========== EMPTY STATE ========== */
.empty-state-cahya{text-align:center;padding:56px 20px}
.empty-state-cahya img{width:160px;height:auto;margin:0 auto 20px;opacity:.5}
.empty-state-cahya h4{font-size:17px;font-weight:700;margin-bottom:6px}
.empty-state-cahya p{font-size:14px;color:var(--text-muted)}

/* ========== CONTENT RICH TEXT ========== */
.content p{margin-bottom:14px;line-height:1.8}
.content h1{font-size:1.75rem;margin-bottom:14px}
.content h2{font-size:1.5rem;margin-bottom:14px}
.content h3{font-size:1.25rem;margin-bottom:10px}
.content ul{list-style:disc;padding-left:24px;margin-bottom:14px}
.content ol{list-style:decimal;padding-left:24px;margin-bottom:14px}
.content li{margin-bottom:4px;line-height:1.7}
.content img{margin:10px 0;border-radius:var(--radius)}
.content a{color:var(--primary);text-decoration:underline}
.content blockquote{border-left:4px solid var(--primary);padding:14px 20px;margin:14px 0;background:var(--primary-50);font-style:italic;color:var(--gray-700);border-radius:0 var(--radius) var(--radius) 0}
.content table th,.content table td{padding:10px 12px;border:1px solid var(--border)}
.content table th{background:var(--primary-50)}

/* ========== SHARE ========== */
.share-cahya{
  display:flex;align-items:center;flex-wrap:wrap;gap:12px;
  margin-top:24px;padding:18px 22px;
  background:linear-gradient(135deg,rgba(47,133,90,.04),rgba(47,133,90,.01));
  border:1px solid rgba(47,133,90,.12);
  border-radius:12px;
}
.share-label{
  font-size:.88rem;font-weight:600;color:var(--primary-darker);
  display:inline-flex;align-items:center;gap:6px;
  font-family:'Plus Jakarta Sans',sans-serif;
  white-space:nowrap;
}
.share-label i{font-size:.82rem;color:var(--primary)}
.share-buttons{display:flex;flex-wrap:wrap;gap:8px}
.share-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;color:#fff;font-size:15px;
  border-radius:50%;transition:all .25s;text-decoration:none;
}
.share-btn:hover{transform:translateY(-3px);color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.share-btn.facebook{background:#1877F2}
.share-btn.twitter{background:#1DA1F2}
.share-btn.whatsapp{background:#25D366}
.share-btn.telegram{background:#0088cc}
/* Sticky share sidebar */
.sticky-share-cahya{
  position:fixed;left:0;top:50%;transform:translateY(-50%);
  z-index:90;display:flex;flex-direction:column;
  border-radius:0 10px 10px 0;overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,.12);
}
.sticky-share-cahya a{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;color:#fff;font-size:15px;
  transition:all .2s;text-decoration:none;
}
.sticky-share-cahya a:hover{filter:brightness(1.15);color:#fff}
.sticky-share-cahya a:nth-child(1){background:#1877F2}
.sticky-share-cahya a:nth-child(2){background:#1DA1F2}
.sticky-share-cahya a:nth-child(3){background:#25D366}
.sticky-share-cahya a:nth-child(4){background:#0088cc}
/* Legacy compat */
.share-buttons a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:#fff;font-size:14px;border-radius:50%;transition:all .2s}
.share-buttons a:hover{transform:translateY(-2px);color:#fff}
.sticky-share{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column}
.sticky-share a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:#fff;font-size:14px;transition:all .2s}
/* Responsive share */
@media(max-width:639px){
  .share-cahya{padding:14px 16px;gap:10px;border-radius:10px;flex-direction:column;align-items:flex-start}
  .share-btn{width:34px;height:34px;font-size:13px}
  .sticky-share-cahya a{width:34px;height:34px;font-size:13px}
  .sticky-share-cahya{display:none}
}

/* ========== GRIDS (pemerintah, galeri, lapak, dll) ========== */
/* Pemerintah (new elegant) */
.pem-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;
}
.pem-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;transition:all .3s;
  text-align:center;position:relative;
}
.pem-card:hover{box-shadow:0 6px 24px rgba(47,133,90,.15);transform:translateY(-4px)}
.pem-card-photo-wrap{
  position:relative;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 60%,var(--primary-darker) 100%);
  padding:28px 20px 48px;
}
.pem-card-photo-wrap img{
  width:90px;height:90px;border-radius:50%;
  object-fit:cover;border:4px solid rgba(255,255,255,.3);
  box-shadow:0 4px 16px rgba(0,0,0,.15);
  display:block;margin:0 auto;
  background:#e5e7eb;
}
.pem-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.68rem;font-weight:700;
  padding:3px 10px;border-radius:20px;
  position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
  white-space:nowrap;
}
.pem-badge-hadir{background:#d1fae5;color:#065f46}
.pem-badge-absent{background:#fee2e2;color:#991b1b}
.pem-card-body{padding:16px 14px 20px}
.pem-name{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;font-weight:800;
  color:var(--primary-darker);margin:0 0 4px;
}
.pem-jabatan{
  display:block;font-size:.78rem;font-weight:600;
  color:var(--primary);margin-bottom:6px;
}
.pem-nip{
  display:flex;align-items:center;justify-content:center;gap:4px;
  font-size:.72rem;color:#6b7280;margin-bottom:8px;
}
.pem-nip i{font-size:.65rem;color:var(--primary)}
.pem-socials{
  display:flex;justify-content:center;gap:6px;margin-top:8px;
}
.pem-social-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;
  background:var(--primary-light);color:var(--primary);
  font-size:.72rem;transition:all .2s;
}
.pem-social-btn:hover{background:var(--primary);color:#fff;transform:scale(1.1)}
.pem-empty{
  text-align:center;padding:48px 20px;color:#6b7280;
  grid-column:1/-1;
}
.pem-empty i{font-size:2.5rem;color:#d1d5db;margin-bottom:10px;display:block}
.pem-empty p{font-size:.88rem}

/* SOTK Chart */
/* SOTK Info Strip */
.sotk-info-strip{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  margin-bottom:16px;
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.sotk-info-strip--visible{opacity:1;pointer-events:auto}
.sotk-info-pill{
  display:inline-flex;align-items:center;gap:6px;
  background:#fff;border:1px solid #FDE68A;
  color:#92400E;font-size:.82rem;font-weight:500;
  padding:6px 14px;border-radius:20px;
  box-shadow:0 1px 4px rgba(217,119,6,.07);
  text-decoration:none;
}
.sotk-info-pill i{color:#D97706;font-size:.78rem}
.sotk-info-pill strong{color:#D97706;font-weight:700}
.sotk-info-pill--print{
  margin-left:auto;
  background:#FEF3C7;border-color:#FCD34D;
  font-weight:600;cursor:pointer;
  transition:background .18s,color .18s;
}
.sotk-info-pill--print:hover{
  background:#FCD34D;color:#78350F;text-decoration:none;
}
.sotk-chart-card{
  background:#fff;border-radius:16px;
  border:1px solid #FDE68A;
  box-shadow:0 4px 20px rgba(217,119,6,.10);
  overflow:hidden;margin-bottom:24px;
  transition:box-shadow .2s;
}
.sotk-chart-card--loaded{
  box-shadow:0 6px 32px rgba(217,119,6,.13);
}
.sotk-chart-inner{padding:24px 20px 20px;overflow-x:auto;overflow-y:visible}
.sotk-chart-inner .highcharts-figure{overflow:visible}
.sotk-chart-inner .highcharts-data-label text{white-space:normal!important}
.sotk-chart-loading{
  text-align:center;padding:72px 20px 80px;color:#92400E;
}
.sotk-loading-inner{
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.sotk-loading-spinner{
  width:48px;height:48px;border-radius:50%;
  border:4px solid #FDE68A;
  border-top-color:#D97706;
  animation:sotk-spin .8s linear infinite;
}
@keyframes sotk-spin{to{transform:rotate(360deg)}}
.sotk-chart-loading p{font-size:.9rem;font-weight:500;color:#B45309;margin:0}
@media print{
  .sotk-info-strip,.breadcrumb-cahya,.cahya-page-header{display:none!important}
  .sotk-chart-card{border:none;box-shadow:none}
}

/* Static article pages (visi, misi) */
.statis-content-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.statis-featured-image{
  display:block;overflow:hidden;
}
.statis-featured-image img{
  width:100%;max-height:360px;object-fit:cover;
  transition:transform .3s;
}
.statis-featured-image:hover img{transform:scale(1.02)}
.statis-body{padding:24px 28px}
.statis-body p{line-height:1.9;font-size:.92rem;color:#374151}
.statis-body h1,.statis-body h2,.statis-body h3{color:var(--primary-darker)}
.statis-body ul{list-style:none;padding-left:0}
.statis-body ul li{
  position:relative;padding-left:20px;margin-bottom:8px;
  line-height:1.8;font-size:.9rem;
}
.statis-body ul li::before{
  content:'';position:absolute;left:0;top:10px;
  width:8px;height:8px;border-radius:50%;
  background:var(--primary);
}
.statis-body ol li{line-height:1.8;font-size:.9rem;margin-bottom:6px}
.statis-body blockquote{
  border-left:4px solid var(--primary);
  padding:16px 20px;margin:20px 0;
  background:linear-gradient(135deg,rgba(47,133,90,.04),rgba(47,133,90,.01));
  border-radius:0 12px 12px 0;
  font-style:italic;color:#4b5563;
}
.statis-body table th,.statis-body table td{padding:10px 14px;border:1px solid #e5e7eb}
.statis-body table th{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.82rem;
}
.statis-dokumen{
  display:flex;align-items:flex-start;gap:12px;
  margin:20px 28px;padding:16px 20px;
  background:#EFF6FF;border-radius:12px;
  border:1px solid rgba(47,133,90,.15);
}
.statis-dokumen > i{color:var(--primary);font-size:1.1rem;margin-top:2px}
.statis-dokumen strong{display:block;font-size:.82rem;color:var(--primary-darker);margin-bottom:4px}
.statis-dokumen a{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.84rem;color:var(--primary);font-weight:600;
  text-decoration:none;transition:color .2s;
}
.statis-dokumen a:hover{color:var(--primary-darker);text-decoration:underline}
.statis-meta-footer{
  display:flex;flex-wrap:wrap;gap:16px;
  padding:14px 28px;
  border-top:1px solid #f0f0f0;
  font-size:.78rem;color:#6b7280;
}
.statis-meta-footer span{display:inline-flex;align-items:center;gap:4px}
.statis-meta-footer i{color:var(--primary);font-size:.7rem}

.galeri-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.galeri-card{overflow:hidden;position:relative;border-radius:var(--radius-lg);transition:all .2s}
.galeri-card:hover{box-shadow:var(--shadow-md)}
.galeri-card img{width:100%;height:180px;object-fit:cover;transition:transform .3s}
.galeri-card:hover img{transform:scale(1.03)}
.lapak-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.lapak-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .2s}
.lapak-card:hover{box-shadow:var(--shadow-md)}
.lapak-card img{width:100%;height:160px;object-fit:cover}
.lapak-card .lapak-body{padding:14px}
.lapak-card h4{font-size:14px;margin-bottom:3px}
.lapak-card .price{color:var(--primary);font-weight:700}
/* === Pembangunan Index Cards === */
.pembangunan-grid{display:grid;grid-template-columns:1fr;gap:24px}
.pembangunan-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border);transition:all .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.pembangunan-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(var(--primary-rgb),.13);border-color:var(--primary-light)}
.pembangunan-card-img{position:relative;overflow:hidden;height:200px}
.pembangunan-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.pembangunan-card:hover .pembangunan-card-img img{transform:scale(1.06)}
.pembangunan-card-badge{position:absolute;top:12px;left:12px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:.7rem;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.3px;box-shadow:0 2px 8px rgba(var(--primary-rgb),.3)}
.pembangunan-card-body{padding:20px;display:flex;flex-direction:column;flex:1}
.pembangunan-card-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.05rem;font-weight:700;color:var(--dark);margin:0 0 10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pembangunan-card-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--text-muted);margin-bottom:12px}
.pembangunan-card-meta span{display:inline-flex;align-items:center;gap:5px}
.pembangunan-card-meta i{color:var(--primary);font-size:.7rem}
.pembangunan-card-desc{font-size:.84rem;color:var(--text-secondary);line-height:1.6;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.pembangunan-progress{margin-bottom:16px}
.pembangunan-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pembangunan-progress-label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}
.pembangunan-progress-value{font-size:.75rem;font-weight:700;color:var(--primary)}
.pembangunan-progress-bar{width:100%;height:8px;background:var(--primary-50);border-radius:99px;overflow:hidden;position:relative}
.pembangunan-progress-fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative;min-width:4px}
.pembangunan-progress-fill.progress-high{background:linear-gradient(90deg,var(--primary),var(--primary-dark))}
.pembangunan-progress-fill.progress-mid{background:linear-gradient(90deg,var(--accent),#e6c84a)}
.pembangunan-progress-fill.progress-low{background:linear-gradient(90deg,#e67e22,#d35400)}
.pembangunan-progress-fill.progress-none{background:var(--text-muted)}
.pembangunan-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--border)}
.pembangunan-card-footer .btn-detail{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--primary);text-decoration:none;padding:6px 14px;border-radius:var(--radius);border:1.5px solid var(--primary);transition:all .25s}
.pembangunan-card-footer .btn-detail:hover{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(var(--primary-rgb),.25)}
.pembangunan-card-footer .btn-lokasi{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-muted);cursor:pointer;transition:color .2s;background:none;border:none;padding:4px 8px}
.pembangunan-card-footer .btn-lokasi:hover{color:var(--primary)}
.pembangunan-card-status{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px}
.pembangunan-card-status.status-selesai{background:#DBEAFE;color:#1D4ED8}
.pembangunan-card-status.status-proses{background:#fef9c3;color:#a16207}
.pembangunan-card-status.status-rencana{background:#f0f4ff;color:#4f46e5}
/* === Pembangunan Detail === */
.pembangunan-detail-wrap{display:grid;grid-template-columns:1fr;gap:28px}
.pembangunan-detail-main{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border)}
.pembangunan-detail-hero{position:relative;height:320px;overflow:hidden}
.pembangunan-detail-hero img{width:100%;height:100%;object-fit:cover}
.pembangunan-detail-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:24px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff}
.pembangunan-detail-hero-overlay h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.4rem;font-weight:700;margin:0 0 4px}
.pembangunan-detail-hero-overlay .meta{font-size:.82rem;opacity:.85}
.pembangunan-detail-info{padding:24px}
.pembangunan-detail-table{width:100%;border-collapse:collapse}
.pembangunan-detail-table tr{border-bottom:1px solid var(--border)}
.pembangunan-detail-table tr:last-child{border-bottom:none}
.pembangunan-detail-table th{width:160px;padding:12px 16px 12px 0;font-size:.84rem;font-weight:600;color:var(--text-secondary);vertical-align:top;white-space:nowrap}
.pembangunan-detail-table td{padding:12px 0;font-size:.84rem;color:var(--dark)}
.pembangunan-detail-sidebar{display:flex;flex-direction:column;gap:24px}
.pembangunan-detail-box{background:var(--white);border-radius:var(--radius-lg);box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border);overflow:hidden}
.pembangunan-detail-box-header{padding:16px 20px;border-bottom:1px solid var(--border);border-left:4px solid var(--primary);display:flex;align-items:center;gap:10px;background:var(--white)}
.pembangunan-detail-box-header i{color:var(--primary);font-size:1rem}
.pembangunan-detail-box-header h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;font-weight:700;color:var(--dark);margin:0}
.pembangunan-detail-box-body{padding:20px}
.pembangunan-dok-item{margin-bottom:20px;text-align:center}
.pembangunan-dok-item:last-child{margin-bottom:0}
.pembangunan-dok-item img{width:100%;border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:opacity .2s}
.pembangunan-dok-item img:hover{opacity:.85}
.pembangunan-dok-item .dok-label{font-size:.82rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:6px}
.pembangunan-dok-item .dok-label i{color:var(--primary)}
.pembangunan-map-container{height:340px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.pembangunan-empty-dok{text-align:center;padding:24px;color:var(--text-muted);font-size:.85rem}
/* ============================================================
   APBDes — Tema Cahya (Golden / Amber / Senja)
   ============================================================ */
.apbd-wrap{padding:36px 0 28px}

/* ── Page Header ── */
.apbd-page-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:32px;
  background:linear-gradient(135deg,#D97706 0%,#92400E 60%,#78350F 100%);
  border-radius:18px;padding:22px 28px;
  position:relative;overflow:hidden;flex-wrap:wrap;
  box-shadow:0 8px 32px rgba(217,119,6,.30)
}
.apbd-page-header::before{content:'';position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none}
.apbd-page-header::after{content:'';position:absolute;right:50px;bottom:-60px;width:100px;height:100px;border-radius:50%;background:rgba(251,191,36,.10);pointer-events:none}
.apbd-page-header-inner{display:flex;align-items:center;gap:16px;position:relative;z-index:1}
.apbd-page-header-icon{
  width:48px;height:48px;
  background:rgba(255,255,255,.18);
  border-radius:14px;border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;color:#FEF3C7;flex-shrink:0;
  box-shadow:0 2px 8px rgba(0,0,0,.12)
}
.apbd-page-header-title{font-family:var(--font-heading);font-size:1.18rem;font-weight:800;color:#fff;margin:0;line-height:1.3;text-shadow:0 1px 4px rgba(0,0,0,.15)}
.apbd-page-header-sub{font-size:.79rem;color:rgba(255,255,255,.72);margin:3px 0 0}
.apbd-page-header-badge{
  display:flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.30);
  border-radius:22px;padding:6px 14px;
  font-size:.72rem;font-weight:700;color:#FEF3C7;white-space:nowrap;
  position:relative;z-index:1;letter-spacing:.3px
}

/* ── 3-Column Grid ── */
.apbd-grid3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}
@media(max-width:1024px){.apbd-grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.apbd-grid3{grid-template-columns:1fr}}

/* ── Card Base ── */
.apbd-card{
  background:#fff;
  border-radius:18px;
  border:1px solid #FDE68A;
  overflow:hidden;
  box-shadow:0 4px 20px rgba(217,119,6,.10);
  display:flex;flex-direction:column;
  transition:box-shadow .25s,transform .25s
}
.apbd-card:hover{box-shadow:0 8px 32px rgba(217,119,6,.18);transform:translateY(-2px)}

/* ── Card Accent Borders ── */
.apbd-card--amber{border-top:3px solid #D97706}
.apbd-card--green{border-top:3px solid #059669}
.apbd-card--orange{border-top:3px solid #EA580C}
.apbd-card--blue{border-top:3px solid #0369A1}

/* ── Card Header ── */
.apbd-card-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 12px;gap:10px
}
.apbd-card-header-left{display:flex;align-items:center;gap:12px}

/* ── Card Icon ── */
.apbd-card-icon{
  width:42px;height:42px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;flex-shrink:0
}
.apbd-card-icon--amber{background:#FEF3C7;color:#D97706}
.apbd-card-icon--green{background:#D1FAE5;color:#059669}
.apbd-card-icon--orange{background:#FFEDD5;color:#EA580C}
.apbd-card-icon--blue{background:#E0F2FE;color:#0369A1}

.apbd-card-title{font-family:var(--font-heading);font-size:.88rem;font-weight:700;color:#1C1917;line-height:1.3;margin:0}
.apbd-card-meta{font-size:.70rem;color:#A8A29E;margin-top:2px}

/* ── Pct Badge ── */
.apbd-card-pct-badge{
  font-size:.75rem;font-weight:800;
  padding:4px 10px;border-radius:20px;
  white-space:nowrap;letter-spacing:.2px
}
.apbd-card-pct-badge--good{background:#D1FAE5;color:#065F46}
.apbd-card-pct-badge--medium{background:#FEF3C7;color:#92400E}
.apbd-card-pct-badge--low{background:#FEE2E2;color:#991B1B}

/* ── Card Progress ── */
.apbd-card-progress-track{height:5px;background:#F5F5F4;margin:0 18px}
.apbd-card-progress-bar{height:5px;width:0;transition:width 1.3s cubic-bezier(.25,.8,.25,1);border-radius:0 3px 3px 0}
.apbd-card-progress-bar--amber{background:linear-gradient(90deg,#FBBF24,#D97706)}
.apbd-card-progress-bar--green{background:linear-gradient(90deg,#34D399,#059669)}
.apbd-card-progress-bar--orange{background:linear-gradient(90deg,#FB923C,#EA580C)}
.apbd-card-progress-bar--blue{background:linear-gradient(90deg,#38BDF8,#0369A1)}

/* ── Summary Block ── */
.apbd-card-summary{
  display:flex;align-items:stretch;gap:0;
  margin:14px 18px 0;
  background:#FFFBEB;border:1px solid #FDE68A;
  border-radius:12px;overflow:hidden
}
.apbd-card-summary-item{flex:1;padding:10px 14px}
.apbd-card-summary-divider{width:1px;background:#FDE68A;flex-shrink:0}
.apbd-cs-label{display:block;font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#A16207;margin-bottom:3px}
.apbd-cs-value{font-size:.80rem;font-weight:700;color:#1C1917;white-space:nowrap;display:block}
.apbd-cs-value--real{color:#D97706}

/* ── Row List ── */
.apbd-card-rows{padding:14px 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.apbd-card-row{background:#FAFAF9;border-radius:10px;padding:10px 12px;border:1px solid #F5F5F4}

.apbd-card-row-top{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.apbd-row-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.apbd-row-dot--good{background:#059669}
.apbd-row-dot--medium{background:#D97706}
.apbd-row-dot--low{background:#DC2626}
.apbd-row-dot--negative{background:#7C3AED}
.apbd-row-name{font-size:.79rem;font-weight:600;color:#1C1917;flex:1;line-height:1.3}
.apbd-row-pct{font-size:.70rem;font-weight:800;padding:2px 7px;border-radius:10px;white-space:nowrap}
.apbd-row-pct--good{background:#D1FAE5;color:#065F46}
.apbd-row-pct--medium{background:#FEF3C7;color:#92400E}
.apbd-row-pct--low{background:#FEE2E2;color:#991B1B}
.apbd-row-pct--negative{background:#EDE9FE;color:#5B21B6}

.apbd-row-amounts{display:flex;align-items:center;gap:6px;font-size:.73rem;color:#57534E;margin-bottom:5px}
.apbd-row-arrow{color:#D97706;font-weight:700;flex-shrink:0}
.apbd-row-real{font-weight:700;color:#D97706}

.apbd-row-bar-track{height:4px;background:#E7E5E4;border-radius:99px;overflow:hidden}
.apbd-row-bar{height:4px;border-radius:99px;width:0;transition:width 1.4s cubic-bezier(.25,.8,.25,1)}
.apbd-row-bar--good{background:linear-gradient(90deg,#34D399,#059669)}
.apbd-row-bar--medium{background:linear-gradient(90deg,#FBBF24,#D97706)}
.apbd-row-bar--low{background:linear-gradient(90deg,#F87171,#DC2626)}
.apbd-row-bar--negative{background:linear-gradient(90deg,#A78BFA,#7C3AED)}

/* ========== THIRD-PARTY OVERRIDES ========== */
.spinner-grow{display:inline-block;width:2rem;height:2rem;background-color:var(--primary);border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}
@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}
.visually-hidden,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.owl-carousel .owl-dots{text-align:center;padding:12px 0}
.owl-carousel .owl-dot span{width:10px;height:10px;margin:0 3px;border-radius:50%;background:var(--gray-300);display:inline-block;transition:all .3s}
.owl-carousel .owl-dot.active span{background:var(--primary);width:24px;border-radius:5px}
#map_canvas,#map_wilayah,#map_beranda,.map-container,[id^="map"]{overflow:hidden;z-index:1;min-height:300px}
.select2-container .select2-selection--single{height:40px;border:2px solid var(--border)!important;border-radius:var(--radius)!important}
.select2-container .select2-selection--single .select2-selection__rendered{line-height:36px;padding-left:12px}
.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{border:2px solid var(--border);padding:6px 12px;border-radius:var(--radius)}
.dataTables_wrapper .dataTables_info{font-size:12px;color:var(--text-muted)}
table.dataTable thead th{background:var(--primary-50);font-weight:600;font-size:12px}

/* ========== UTILITY CLASSES ========== */
.text-primary{color:var(--primary)!important}.text-secondary-color{color:var(--gray-700)!important}.text-accent{color:var(--accent)!important}.text-muted{color:var(--text-muted)!important}.text-white{color:#fff!important}.text-dark{color:var(--dark)!important}
.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}
.text-xs{font-size:11px}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:22px}.text-3xl{font-size:28px}.text-h6{font-size:14px;font-weight:600}
.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-light{font-weight:300}
.bg-primary{background-color:var(--primary)}.bg-primary-100,.bg-primary-light{background:var(--primary-light)}.bg-white{background-color:#fff}.bg-gray-50{background:var(--gray-50)}.bg-gray-100{background:var(--gray-100)}.bg-gray-200{background:var(--gray-200)}.bg-gray-300{background:var(--gray-300)}
.rounded{border-radius:var(--radius)}.rounded-md{border-radius:6px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:20px}.rounded-full{border-radius:var(--radius-full)}
.shadow{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}
.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}
.border{border:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}
.divide-y>*+*{border-top:1px solid var(--border)}
.space-y-1>*+*{margin-top:4px}.space-y-2>*+*{margin-top:8px}.space-y-3>*+*{margin-top:12px}.space-y-4>*+*{margin-top:16px}
.space-x-1>*+*{margin-left:4px}.space-x-2>*+*{margin-left:8px}.space-x-3>*+*{margin-left:12px}.space-x-4>*+*{margin-left:16px}
.gap-0{gap:0}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.gap-8{gap:32px}
.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.p-8{padding:32px}
.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.py-4{padding-top:16px;padding-bottom:16px}.py-6{padding-top:24px;padding-bottom:24px}.py-8{padding-top:32px;padding-bottom:32px}.py-10{padding-top:40px;padding-bottom:40px}
.px-0{padding-left:0;padding-right:0}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-5{padding-left:20px;padding-right:20px}.px-6{padding-left:24px;padding-right:24px}
.pt-0{padding-top:0}.pt-2{padding-top:8px}.pt-4{padding-top:16px}.pt-6{padding-top:24px}
.pb-0{padding-bottom:0}.pb-2{padding-bottom:8px}.pb-4{padding-bottom:16px}
.pl-0{padding-left:0}.pl-2{padding-left:8px}.pl-4{padding-left:16px}
.m-0{margin:0}.m-2{margin:8px}.m-4{margin:16px}
.mt-0{margin-top:0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mt-10{margin-top:40px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}
.mr-0{margin-right:0}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:12px}
.ml-0{margin-left:0}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-auto{margin-left:auto}
.mx-auto{margin-left:auto;margin-right:auto}
.w-full{width:100%}.w-auto{width:auto}.w-1\/2{width:50%}.w-1\/3{width:33.333%}.w-2\/3{width:66.667%}.w-1\/4{width:25%}.w-3\/4{width:75%}
.h-auto{height:auto}.h-full{height:100%}.min-h-screen{min-height:100vh}
.max-w-full{max-width:100%}
.block{display:block}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.flex{display:flex}.grid{display:grid}.hidden{display:none}
.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}
.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-baseline{align-items:baseline}
.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}
.self-center{align-self:center}
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}
.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.left-0{left:0}.right-0{right:0}.bottom-0{bottom:0}
.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}
.object-cover{object-fit:cover}.object-contain{object-fit:contain}.object-center{object-position:center}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-5{grid-template-columns:repeat(5,1fr)}
.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-full{grid-column:1/-1}
.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}
.whitespace-nowrap{white-space:nowrap}
.break-words{word-wrap:break-word;overflow-wrap:break-word}
.leading-tight{line-height:1.25}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}
.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}
.transition{transition:all .3s ease}.transition-all{transition:all .3s ease}
.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}
.pointer-events-none{pointer-events:none}.cursor-pointer{cursor:pointer}.select-none{user-select:none}
.list-none{list-style:none}.list-disc{list-style:disc;padding-left:24px}
.aspect-video{aspect-ratio:16/9}.aspect-square{aspect-ratio:1/1}
.appearance-none{-webkit-appearance:none;appearance:none}
.text-gray-300{color:var(--gray-300)}.text-gray-400{color:var(--gray-400)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.text-gray-700{color:var(--gray-700)}.text-gray-800{color:var(--gray-800)}.text-gray-900{color:var(--gray-900)}
.text-red-500{color:#E53E3E}.text-green-500{color:#48BB78}.text-blue-500{color:#4299E1}
.bg-red-50{background:#FFF5F5}.bg-green-50{background:var(--primary-50)}.bg-blue-50{background:#EBF8FF}.bg-yellow-50{background:#FFFFF0}
.clearfix::after{content:'';display:table;clear:both}
.float-left{float:left}.float-right{float:right}

/* ========== CARD NO-IMAGE PLACEHOLDER ========== */
.card-image-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-height:160px;
  background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%);
  color:var(--gray-400);
  gap:8px;
}
.card-image-placeholder i{font-size:2rem;opacity:.5}
.card-image-placeholder span{font-size:.72rem;font-weight:600;opacity:.6}
.card-no-image .card-image-wrap{background:var(--gray-100)}

/* ========== KOMENTAR INLINE SLIDER (below pagination) ========== */
.komentar-inline-card{
  background:#fff;
  border-radius:14px;
  border:1px solid var(--border);
  box-shadow:0 1px 4px rgba(0,0,0,.04);
  margin-top:20px;
  overflow:hidden;
  opacity:0;transform:translateY(20px);
  transition:all .5s cubic-bezier(.4,0,.2,1);
}
.komentar-inline-card.is-visible{opacity:1;transform:translateY(0)}
.komentar-inline-header{
  display:flex;align-items:center;gap:10px;
  padding:14px 18px;
  border-bottom:1px solid var(--border);
  background:var(--gray-50);
}
.komentar-inline-icon{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary);color:#fff;
  border-radius:8px;font-size:.72rem;
}
.komentar-inline-header h4{font-family:var(--font-heading);font-size:.88rem;font-weight:700;color:var(--dark);margin:0}
.komentar-inline-viewport{overflow:hidden}
.komentar-inline-track{padding:0;margin:0}
.komentar-inline-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 18px;
  border-bottom:1px solid var(--gray-100);
  text-decoration:none;
  transition:background .2s, opacity .3s, transform .3s;
}
.komentar-inline-hidden{display:none!important}
.komentar-inline-item:last-child{border-bottom:none}
.komentar-inline-item:hover{background:var(--primary-50)}
.komentar-inline-avatar{
  width:34px;height:34px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  border-radius:50%;font-size:.72rem;font-weight:700;
}
.komentar-inline-body{flex:1;min-width:0}
.komentar-inline-name{font-size:.78rem;font-weight:700;color:var(--dark);display:block}
.komentar-inline-text{font-size:.76rem;color:var(--text-muted);margin:3px 0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.komentar-inline-date{font-size:.68rem;color:var(--gray-400);display:inline-flex;align-items:center;gap:4px}
.komentar-inline-date i{font-size:.6rem}
/* Nav */
.komentar-inline-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 18px;
  border-top:1px solid var(--gray-100);
  background:var(--gray-50);
}
.komentar-inline-info{font-size:.7rem;color:var(--text-muted);font-weight:500}
.komentar-inline-nav-btns{display:flex;gap:6px}
.komentar-inline-btn{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);
  background:#fff;color:var(--text-muted);
  border-radius:8px;cursor:pointer;
  font-size:.65rem;
  transition:all .2s;
}
.komentar-inline-btn:hover:not(:disabled){
  background:var(--primary);color:#fff;border-color:var(--primary);
}
.komentar-inline-btn:disabled{opacity:.4;cursor:not-allowed}

/* ========== RESPONSIVE ========== */
@media(min-width:640px){
  .article-grid{grid-template-columns:repeat(2,1fr)}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:flex-row{flex-direction:row}.sm\:hidden{display:none!important}
}
@media(min-width:768px){
  .article-grid{grid-template-columns:repeat(2,1fr)}
  .hero-cahya{min-height:300px}
  .hero-title{font-size:3rem}
  .headline-hero{min-height:340px}
  .headline-hero-title{font-size:1.6rem}
  .headline-hero-excerpt{display:-webkit-box}
  .footer-columns{grid-template-columns:1.3fr 1fr 1fr}
  .pem-grid{grid-template-columns:repeat(3,1fr)}.galeri-grid{grid-template-columns:repeat(3,1fr)}
  .trio-row{grid-template-columns:1fr 1fr 1fr}
  .md\:flex{display:flex}.md\:block{display:block}.md\:hidden{display:none!important}
  .md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
  .md\:flex-row{flex-direction:row}.md\:gap-4{gap:16px}.md\:gap-6{gap:24px}
}
@media(min-width:1024px){
  .article-grid{grid-template-columns:repeat(3,1fr)}
  .hero-cahya{min-height:320px}
  .hero-title{font-size:3.2rem}
  .headline-hero{min-height:380px}
  .headline-hero-title{font-size:1.8rem}
  .headline-hero-excerpt{font-size:14px;-webkit-line-clamp:2}
  .layout-main{flex-direction:row}.layout-main.layout-reversed{flex-direction:row-reverse}
  .layout-main.layout-sidebar-left .sidebar-area{order:-1}
  .content-area{flex:2;min-width:0}.sidebar-area{flex:0 0 300px;max-width:300px;width:300px}
  .navbar-menu{display:flex}.navbar-icons{display:flex}.navbar-toggle{display:none}
  .pem-grid{grid-template-columns:repeat(4,1fr)}.galeri-grid{grid-template-columns:repeat(4,1fr)}.lapak-grid{grid-template-columns:repeat(3,1fr)}.pembangunan-grid{grid-template-columns:repeat(2,1fr)}.pembangunan-detail-wrap{grid-template-columns:1.2fr 1fr}
  .trio-row{grid-template-columns:1fr 1fr 1fr;gap:24px}
  .lg\:hidden{display:none!important}.lg\:block{display:block!important}.lg\:flex{display:flex!important}.lg\:inline-block{display:inline-block!important}.lg\:inline-flex{display:inline-flex!important}.lg\:grid{display:grid!important}
  .lg\:w-1\/3{width:33.333%}.lg\:w-2\/3{width:66.667%}.lg\:w-3\/4{width:75%}.lg\:w-1\/4{width:25%}
  .lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}
  .lg\:gap-4{gap:16px}.lg\:gap-6{gap:24px}.lg\:gap-8{gap:32px}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
  .lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}
  .lg\:mt-0{margin-top:0}.lg\:mb-0{margin-bottom:0}.lg\:p-4{padding:16px}.lg\:p-6{padding:24px}
}
@media(max-width:1023px){
  .hero-cahya{min-height:260px}
  .hero-title{font-size:2.2rem}
  .hero-text{max-width:100%}
  .category-tabs{overflow-x:auto;flex-wrap:nowrap}
}
@media(max-width:767px){
  .hero-cahya{min-height:220px}
  .hero-title{font-size:1.8rem}
  .hero-logo img{width:56px;height:56px}
  .hero-search{flex-direction:row;max-width:95%}
  .hero-search-btn{padding:10px 20px;font-size:13px}
  .headline-hero{min-height:220px}
  .headline-hero-content{padding:16px 18px}
  .headline-hero-title{font-size:1.1rem;-webkit-line-clamp:2}
  .headline-hero-excerpt{display:none}
  .headline-hero-meta{font-size:11px}
  .headline-hero-btn{padding:7px 16px;font-size:12px}
  .pag-cahya{padding:12px 8px}
  .pag-info{font-size:11px}
  .pag-list a,.pag-list span{width:30px;height:30px;font-size:12px}
  .footer-bottom-inner{flex-direction:column;align-items:flex-start;gap:4px}
  .trio-row{grid-template-columns:1fr;gap:16px}
  .trio-card-body,.trio-map{min-height:250px}
  .aparatur-list{grid-template-columns:repeat(3,1fr);gap:8px}
  .aparatur-card-photo{width:64px;height:64px}
  .aparatur-section-header{padding:14px 16px;gap:10px}
  .aparatur-section-icon{width:36px;height:36px;font-size:.95rem}
  .aparatur-section-header h3{font-size:.88rem}
  .aparatur-card-info h4{font-size:.72rem}
  .aparatur-card-info span{font-size:.62rem;padding:2px 8px}
  .alamat-kantor{padding:18px 12px}
  .alamat-kantor-logo-ring{width:64px;height:64px}
  .alamat-kantor-logo{padding:5px}
  .alamat-kantor-title{font-size:.85rem}
  .ak-contact-grid{grid-template-columns:1fr;gap:6px}
  .ak-contact-card{padding:8px 10px;gap:8px}
  .ak-contact-icon{width:26px;height:26px;font-size:.58rem}
  .ak-contact-label{font-size:.58rem}
  .ak-contact-value{font-size:.72rem}
  .apbdesa-simple-table{font-size:.72rem}
  .apbdesa-simple-header h2{font-size:1rem}
  /* APBDes responsive */
  .apbd-page-header{padding:16px 18px;gap:10px}
  .apbd-page-header-title{font-size:1rem}
  .apbd-group-header{flex-direction:column;align-items:flex-start;gap:10px}
  .apbd-group-summary{width:100%;justify-content:space-between}
  .apbd-mini-bar-track{width:40px}
  .apbd-th-pct{min-width:100px}
  /* Footer responsive */
  .footer-columns{grid-template-columns:1fr 1fr;gap:20px}
  .footer-brand-left{gap:12px}
  .footer-logo-img{width:48px;height:48px}
  .agenda-komentar-row{grid-template-columns:1fr;gap:16px}
  .ak-card-header{padding:12px 14px;gap:10px}
  .ak-card-header-icon{width:34px;height:34px;font-size:14px}
  .ak-card-header-title{font-size:.88rem}
  .ak-card-header-sub{font-size:.68rem}
  .ak-agenda-tab{padding:8px 4px;font-size:.68rem}
  .ak-agenda-date{min-width:36px;width:36px}
  .ak-agenda-date-num{font-size:.9rem}
  .ak-komentar-avatar{width:32px;height:32px;font-size:.8rem}
  .ak-komentar-quote{padding:8px 10px 8px 26px}
  .ak-komentar-quote p{font-size:.78rem}
  .ak-komentar-meta{font-size:.68rem;gap:6px}
  .ak-komentar-link{margin-left:0;margin-top:4px;width:100%}
  .pem-grid{gap:14px}
  .pem-card-photo-wrap{padding:20px 16px 40px}
  .pem-card-photo-wrap img{width:74px;height:74px}
  .pem-name{font-size:.84rem}
  .pem-jabatan{font-size:.72rem}
  .pem-nip{font-size:.68rem}
  .sotk-chart-inner{padding:14px}
  .statis-body{padding:18px 20px}
  .statis-dokumen{margin:16px 20px}
  .statis-meta-footer{padding:12px 20px}
}
@media(max-width:639px){
  .article-grid{grid-template-columns:1fr;gap:16px}
  .card-image-wrap{height:180px}
  .pem-grid{grid-template-columns:repeat(2,1fr)}.galeri-grid{grid-template-columns:repeat(2,1fr)}.lapak-grid{grid-template-columns:1fr}
  .pem-card-photo-wrap{padding:18px 12px 36px}
  .pem-card-photo-wrap img{width:64px;height:64px;border-width:3px}
  .pem-card-body{padding:12px 10px 16px}
  .pem-name{font-size:.78rem}
  .pem-jabatan{font-size:.68rem}
  .pem-badge{font-size:.62rem;padding:2px 8px}
  .pem-socials{gap:4px}
  .pem-social-btn{width:26px;height:26px;font-size:.62rem}
  .statis-body{padding:16px}
  .statis-dokumen{margin:14px 16px;padding:12px 14px;flex-direction:column;gap:8px}
  .statis-meta-footer{padding:12px 16px;gap:10px;font-size:.72rem}
  .sotk-chart-card{border-radius:10px}
}
@media(min-width:1280px){
  .xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.xl\:flex{display:flex!important}.xl\:hidden{display:none!important}
}

/* ========== ANIMATIONS ========== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.animate-fadeInUp{animation:fadeInUp .5s ease-out forwards}
.animate-fadeIn{animation:fadeIn .3s ease-out forwards}
.animate-on-scroll{opacity:0;transform:translateY(20px);transition:all .5s ease}
.animate-on-scroll.animate-fadeInUp{opacity:1;transform:translateY(0)}

/* ========== WIDGET KEHADIRAN PERANGKAT ========== */
.kehadiran-box{
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-md);
  background:var(--white);
  border:none;
  margin-bottom:20px;
}
.kehadiran-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(135deg,var(--primary-darker),var(--primary-dark));
  padding:14px 16px;
  border-bottom:none;
}
.kehadiran-header .box-title{
  color:#fff;
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:700;
  margin:0;
  display:flex;
  align-items:center;
  gap:6px;
}
.kehadiran-login-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;height:34px;
  border-radius:var(--radius-full);
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:15px;
  transition:all var(--transition);
  border:1.5px solid rgba(255,255,255,.25);
}
.kehadiran-login-btn:hover{
  background:var(--accent);
  color:var(--primary-darker);
  border-color:var(--accent);
  transform:scale(1.1);
  box-shadow:0 2px 10px rgba(96,165,250,.4);
}
.kehadiran-body{
  padding:12px;
  max-height:440px;
  overflow-y:auto;
}
.kehadiran-body::-webkit-scrollbar{width:4px}
.kehadiran-body::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}
.kehadiran-body::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}
.kehadiran-body::-webkit-scrollbar-thumb:hover{background:var(--primary-soft)}

.kehadiran-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.kehadiran-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:var(--radius);
  transition:all var(--transition);
  cursor:default;
  animation:fadeInUp .4s ease-out both;
}
.kehadiran-item:nth-child(1){animation-delay:.05s}
.kehadiran-item:nth-child(2){animation-delay:.1s}
.kehadiran-item:nth-child(3){animation-delay:.15s}
.kehadiran-item:nth-child(4){animation-delay:.2s}
.kehadiran-item:nth-child(5){animation-delay:.25s}
.kehadiran-item:nth-child(6){animation-delay:.3s}
.kehadiran-item:nth-child(7){animation-delay:.35s}
.kehadiran-item:nth-child(8){animation-delay:.4s}
.kehadiran-item:hover{
  background:var(--primary-50);
}

/* Avatar with status dot */
.kehadiran-avatar-wrap{
  position:relative;
  flex-shrink:0;
}
.kehadiran-avatar{
  width:40px;height:40px;
  border-radius:var(--radius-full);
  object-fit:cover;
  border:2px solid var(--gray-200);
  background:var(--gray-100);
}
.kehadiran-dot{
  position:absolute;
  bottom:0;right:0;
  width:13px;height:13px;
  border-radius:var(--radius-full);
  border:2px solid var(--white);
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}
.kehadiran-dot.status-hadir{background:#3B82F6}
.kehadiran-dot.status-izin{background:#F59E0B}
.kehadiran-dot.status-belum{background:#94A3B8}
.kehadiran-dot.status-libur{background:#A78BFA}

/* Info text */
.kehadiran-info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.kehadiran-nama{
  font-size:.82rem;
  font-weight:600;
  color:var(--text-heading);
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.kehadiran-jabatan{
  font-size:.72rem;
  color:var(--text-muted);
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Status badge (with text) */
.kehadiran-status-col{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  flex-shrink:0;
}
.kehadiran-badge{
  flex-shrink:0;
  padding:3px 10px;
  border-radius:var(--radius-full);
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  font-weight:600;
  line-height:1;
}
.kehadiran-badge .badge-text{
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.02em;
}
.kehadiran-badge.badge-hadir{
  background:rgba(34,197,94,.12);
  color:#2563EB;
}
.kehadiran-badge.badge-izin{
  background:rgba(245,158,11,.12);
  color:#D97706;
}
.kehadiran-badge.badge-belum{
  background:rgba(148,163,184,.12);
  color:#64748B;
}
.kehadiran-badge.badge-libur{
  background:rgba(167,139,250,.12);
  color:#7C3AED;
}
/* Jam masuk */
.kehadiran-jam{
  font-size:.65rem;
  font-weight:600;
  color:#2563EB;
  display:inline-flex;
  align-items:center;
  gap:3px;
  opacity:.8;
}
.kehadiran-jam i{
  font-size:.55rem;
}

/* Row background tint per status */
.kehadiran-panel-item.status-row-hadir{
  background:rgba(34,197,94,.04);
  border-left:3px solid #3B82F6;
}
.kehadiran-panel-item.status-row-hadir:hover{
  background:rgba(34,197,94,.08);
}
.kehadiran-panel-item.status-row-izin{
  background:rgba(245,158,11,.04);
  border-left:3px solid #F59E0B;
}
.kehadiran-panel-item.status-row-izin:hover{
  background:rgba(245,158,11,.08);
}
.kehadiran-panel-item.status-row-belum{
  background:transparent;
  border-left:3px solid transparent;
}
.kehadiran-panel-item.status-row-belum:hover{
  background:var(--primary-50);
}
.kehadiran-panel-item.status-row-libur{
  background:rgba(167,139,250,.04);
  border-left:3px solid #A78BFA;
}
.kehadiran-panel-item.status-row-libur:hover{
  background:rgba(167,139,250,.08);
}

/* Avatar border matches status */
.status-row-hadir .kehadiran-avatar{
  border-color:#86EFAC;
}
.status-row-izin .kehadiran-avatar{
  border-color:#FDE68A;
}
.status-row-libur .kehadiran-avatar{
  border-color:#C4B5FD;
}

/* ========== SECTION: INFO DESA (Kehadiran + Statistik) ========== */
.section-info-desa{
  background:linear-gradient(180deg,#FEFCF3 0%,var(--primary-50) 50%,#fff 100%);
  padding:56px 0 48px;
}
.info-desa-row{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:28px;
  align-items:start;
}

/* â”€â”€ Kehadiran Panel (Left) â”€â”€ */
.kehadiran-panel{
  background:#fff;
  border-radius:20px;
  overflow:visible;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
  opacity:0;
  transform:translateX(-30px);
  transition:all .6s cubic-bezier(.4,0,.2,1);
}
.kehadiran-panel.is-visible{
  opacity:1;
  transform:translateX(0);
}
.kehadiran-panel-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
  border-radius:20px 20px 0 0;
  overflow:hidden;
}
.kehadiran-panel-header::after{display:none}
.kehadiran-panel-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
  color:var(--primary);
}
.kehadiran-panel-header h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.kehadiran-panel-header p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
}
.kehadiran-panel-login{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  border-radius:50%;
  background:var(--primary-50);
  color:var(--primary);
  font-size:14px;
  margin-left:auto;
  transition:all .3s;
  border:1px solid var(--border);
  flex-shrink:0;
  position:relative;
  z-index:2;
  cursor:pointer;
}
.kehadiran-panel-login:hover{
  background:var(--accent);
  color:var(--dark);
  border-color:var(--accent);
  transform:rotate(10deg) scale(1.1);
  box-shadow:0 4px 16px rgba(96,165,250,.4);
}

/* Summary counters */
.kehadiran-summary{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:0;
  padding:0;
  border-bottom:1px solid rgba(var(--primary-rgb),.06);
}
.kehadiran-summary-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:14px 8px;
  position:relative;
}
.kehadiran-summary-item + .kehadiran-summary-item{
  border-left:1px solid rgba(var(--primary-rgb),.06);
}
.summary-num{
  font-family:var(--font-heading);
  font-size:1.4rem;
  font-weight:800;
  line-height:1;
  margin-bottom:2px;
}
.summary-label{
  font-size:.68rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.summary-hadir .summary-num{color:#2563EB}
.summary-hadir .summary-label{color:#3B82F6}
.summary-izin .summary-num{color:#D97706}
.summary-izin .summary-label{color:#F59E0B}
.summary-belum .summary-num{color:#64748B}
.summary-belum .summary-label{color:#94A3B8}

/* Kehadiran list in panel */
.kehadiran-panel-body{
  padding:6px 16px 10px;
  max-height:580px;
  overflow-y:auto;
}
.kehadiran-panel-body::-webkit-scrollbar{width:3px}
.kehadiran-panel-body::-webkit-scrollbar-track{background:transparent}
.kehadiran-panel-body::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:3px}
.kehadiran-panel-list{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.kehadiran-panel-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 16px 8px 12px;
  border-radius:12px;
  transition:all .25s;
  cursor:default;
  opacity:0;
  transform:translateY(12px);
  transition:background .2s, opacity .5s ease, transform .5s ease;
}
.kehadiran-panel-item.item-visible{
  opacity:1;
  transform:translateY(0);
}
.kehadiran-panel-item:hover{
  background:var(--primary-50);
}
.kehadiran-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:40px 16px;
  gap:10px;
  color:var(--text-muted);
}
.kehadiran-empty i{font-size:2rem;opacity:.3}
.kehadiran-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Jam Kerja Panel (di bawah Kehadiran) â”€â”€ */
.jamkerja-panel{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
  margin-top:20px;
  opacity:0;
  transform:translateX(-30px);
  transition:all .6s cubic-bezier(.4,0,.2,1) .2s;
}
.jamkerja-panel.is-visible{
  opacity:1;
  transform:translateX(0);
}
.jamkerja-panel-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.jamkerja-panel-header::after{display:none}
.jamkerja-panel-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  color:var(--primary);
}
.jamkerja-panel-header h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}
.jamkerja-panel-header p{
  font-size:.72rem;margin:2px 0 0;line-height:1.3;
  color:var(--text-muted);
}

/* â”€â”€ Jam Kerja Table â”€â”€ */
.jamkerja-panel-body{padding:0}
.jamkerja-table{
  width:100%;
  border-collapse:collapse;
  font-size:.82rem;
}
.jamkerja-table thead th{
  background:var(--gray-50);
  padding:10px 16px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--text-muted);
  border-bottom:2px solid var(--gray-200);
  text-align:left;
}
.jamkerja-table thead th:first-child{width:35%}
.jamkerja-table tbody tr{
  border-bottom:1px solid var(--gray-100);
  transition:background .2s;
}
.jamkerja-table tbody tr:last-child{border-bottom:none}
.jamkerja-table tbody tr:hover{background:var(--gray-50)}
.jamkerja-table tbody td{
  padding:10px 16px;
  color:var(--text-body);
  font-weight:500;
  vertical-align:middle;
}

/* Today highlight */
.jamkerja-today{
  background:rgba(var(--primary-rgb),.04)!important;
}
.jamkerja-today td{
  color:var(--primary)!important;
  font-weight:700!important;
}
.jamkerja-today-dot{
  display:inline-block;
  width:7px;height:7px;
  background:var(--primary);
  border-radius:50%;
  margin-right:6px;
  animation:visitorPulse 1.5s ease-in-out infinite;
  vertical-align:middle;
}

/* Libur row */
.jamkerja-libur{
  background:rgba(220,38,38,.02);
}
.jamkerja-libur td{
  color:var(--text-muted)!important;
  font-style:italic;
}
.jamkerja-badge-libur{
  display:inline-block;
  padding:3px 12px;
  background:linear-gradient(135deg,#fee2e2,#fecaca);
  color:#dc2626;
  font-size:.7rem;
  font-weight:700;
  border-radius:20px;
  text-transform:uppercase;
  letter-spacing:.3px;
}

/* Responsive */
@media(max-width:767px){
  .jamkerja-panel-header{padding:14px 16px}
  .jamkerja-panel-icon{width:36px;height:36px;font-size:1rem;border-radius:12px}
  .jamkerja-table{font-size:.78rem}
  .jamkerja-table thead th,
  .jamkerja-table tbody td{padding:8px 12px}
}

/* ── Info Map Card (Peta Wilayah & Lokasi Kantor di info-desa-right) ── */

.info-map-card{

  background:var(--white);

  border-radius:20px;

  overflow:hidden;

  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);

  border:1px solid rgba(var(--primary-rgb),.08);

  opacity:0;

  transform:translateX(30px);

  transition:all .6s cubic-bezier(.4,0,.2,1) .15s;

}

.info-map-card.is-visible{

  opacity:1;

  transform:translateX(0);

}

.info-map-card + .info-map-card{

  margin-top:20px;

}

.info-map-card-header{

  display:flex;

  align-items:center;

  gap:12px;

  padding:16px 20px;

  background:var(--white);

  border-bottom:1px solid var(--border);

  border-left:4px solid var(--primary);

  color:var(--text-heading);

  position:relative;

}

.info-map-card-header::after{display:none}

.info-map-card-icon{

  width:40px;height:40px;

  background:var(--primary-50);

  border-radius:10px;

  display:flex;align-items:center;justify-content:center;

  font-size:1rem;flex-shrink:0;

  color:var(--primary);

}

.info-map-card-text{flex:1;min-width:0}

.info-map-card-text h3{

  font-family:var(--font-heading);

  font-size:.92rem;font-weight:700;

  margin:0;line-height:1.3;

  color:var(--text-heading);

}

.info-map-card-text p{

  font-size:.72rem;

  color:var(--text-muted);

  margin:2px 0 0;line-height:1.3;

}

.info-map-card-link{

  margin-left:auto;

  font-size:.72rem;font-weight:600;

  color:var(--primary);

  text-decoration:none;

  display:flex;align-items:center;gap:4px;

  white-space:nowrap;

  transition:all .2s;

}

.info-map-card-link:hover{color:var(--primary-dark);gap:6px}

.info-map-card-link i{font-size:.6rem;transition:transform .2s}

.info-map-card-link:hover i{transform:translateX(2px)}

.info-map-card-body{

  position:relative;

  min-height:320px;

}

.info-map-leaflet{

  width:100%;

  height:100%;

  min-height:320px;

}

.info-map-empty{

  display:flex;

  flex-direction:column;

  align-items:center;

  justify-content:center;

  height:100%;

  min-height:320px;

  color:var(--text-muted);

  gap:12px;

}

.info-map-empty i{font-size:2.5rem;opacity:.3}

.info-map-empty p{font-size:.85rem}



@media(max-width:991px){

  .info-map-card-body{min-height:260px}

  .info-map-leaflet{min-height:260px}

  .info-map-empty{min-height:260px}

}

@media(max-width:767px){

  .info-map-card-header{padding:14px 16px}

  .info-map-card-icon{width:36px;height:36px;font-size:.9rem;border-radius:10px}

  .info-map-card-body{min-height:220px}

  .info-map-leaflet{min-height:220px}

  .info-map-empty{min-height:220px}

  .info-map-card-link{font-size:.68rem}

}




/* -- Info Agenda Card (Agenda di info-desa-right, sejajar grid) -- */
.info-agenda-card{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
}
.info-agenda-card .info-map-card-header{
  border-left:4px solid var(--primary);
}
.info-agenda-viewport{
  overflow:hidden;
  padding:0;
}
.info-agenda-track{
  display:flex;
  flex-direction:column;
}

/* =============================================
   SECTION: GALERI DESA (full-width above info-desa)
   ============================================= */
.section-galeri-desa{
  background:linear-gradient(180deg,#fff 0%,var(--primary-50) 50%,#FEFCF3 100%);
  padding:56px 0 48px;
}

.galeri-desa-wrap{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
  opacity:0;
  transform:translateY(30px);
  transition:all .6s cubic-bezier(.4,0,.2,1);
}
.galeri-desa-wrap.is-visible{
  opacity:1;
  transform:translateY(0);
}

.galeri-desa-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  padding:16px;
}
.galeri-desa-slide{
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
  background:#f1f5f9;
  border-radius:12px;
  width:100%;
}
.galeri-desa-slide img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.galeri-desa-slide:hover img{
  transform:scale(1.05);
}
.galeri-desa-overlay{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:32px 14px 12px;
  background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 100%);
  pointer-events:none;
}
.galeri-desa-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.82rem;font-weight:600;
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.4);
  display:flex;align-items:center;gap:6px;
}
.galeri-desa-title i{font-size:.72rem;opacity:.8}

/* Footer */
.galeri-desa-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;
  border-top:1px solid var(--border);
}
.galeri-desa-count{
  font-size:.78rem;
  color:var(--text-muted);
  font-weight:500;
  display:flex;align-items:center;gap:5px;
}
.galeri-desa-count i{color:var(--primary);font-size:.68rem}
.galeri-desa-viewall{
  font-size:.78rem;
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  display:flex;align-items:center;gap:4px;
  transition:all .2s;
}
.galeri-desa-viewall:hover{
  color:var(--primary-dark);
  gap:6px;
}
.galeri-desa-viewall i{font-size:.62rem;transition:transform .2s}
.galeri-desa-viewall:hover i{transform:translateX(2px)}

/* Responsive Galeri Desa */
@media(max-width:767px){
  .section-galeri-desa{padding:40px 0 32px}
  .galeri-desa-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:12px}
  .galeri-desa-slide{border-radius:8px}
  .galeri-desa-footer{padding:10px 16px}
}
@media(max-width:575px){
  .section-galeri-desa{padding:32px 0 24px}
  .galeri-desa-grid{grid-template-columns:1fr;gap:10px;padding:10px}
  .galeri-desa-footer{flex-direction:column;gap:8px;text-align:center}
}

/* -- Sinergi Program FA Icon Fallback -- */
.wsinergi-fa-icon{
  font-size:1.4rem;
  color:var(--primary);
  opacity:.7;
  transition:all .2s;
}
.wsinergi-item:hover .wsinergi-fa-icon{
  color:var(--primary-dark);
  opacity:1;
  transform:scale(1.1);
}
/* â”€â”€ Statistik Panel (Right) â”€â”€ */
.statistik-panel{
  opacity:0;
  transform:translateX(30px);
  transition:all .6s cubic-bezier(.4,0,.2,1) .15s;
}
.statistik-panel.is-visible{
  opacity:1;
  transform:translateX(0);
}

.statistik-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin-bottom:20px;
}
.statistik-card{
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 18px;
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.04);
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  text-decoration:none;
  color:var(--text-heading);
  overflow:hidden;
  opacity:0;
  transform:translateY(20px) scale(.97);
  transition:all .45s cubic-bezier(.4,0,.2,1);
}
.statistik-card.card-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
.statistik-card:hover{
  box-shadow:0 8px 32px rgba(0,0,0,.1);
  transform:translateY(-4px) scale(1.02)!important;
  border-color:var(--card-color,.2);
}
.statistik-card-glow{
  position:absolute;
  top:-50%;
  right:-50%;
  width:120px;height:120px;
  background:radial-gradient(circle,var(--card-bg) 0%,transparent 70%);
  opacity:.7;
  transition:all .4s;
  pointer-events:none;
}
.statistik-card:hover .statistik-card-glow{
  opacity:1;
  transform:scale(1.5);
}
.statistik-card-icon{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  flex-shrink:0;
  transition:all .3s;
}
.statistik-card:hover .statistik-card-icon{
  transform:scale(1.1) rotate(-5deg);
  box-shadow:0 4px 16px rgba(0,0,0,.1);
}
.statistik-card-info{
  flex:1;
  min-width:0;
}
.statistik-card-info h4{
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:700;
  margin:0 0 4px;
  color:var(--text-heading);
  line-height:1.3;
  transition:color .2s;
}
.statistik-card:hover .statistik-card-info h4{
  color:var(--card-color);
}
.statistik-card-link{
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  display:inline-flex;
  align-items:center;
  gap:4px;
  transition:all .2s;
}
.statistik-card-link i{
  font-size:.6rem;
  transition:transform .2s;
}
.statistik-card:hover .statistik-card-link{
  color:var(--card-color);
}
.statistik-card:hover .statistik-card-link i{
  transform:translateX(3px);
}

/* Statistik Footer */
.statistik-footer{
  display:flex;
  align-items:center;
  gap:12px;
  justify-content:center;
  padding-top:4px;
}
.statistik-footer-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 22px;
  border-radius:50px;
  font-size:.8rem;
  font-weight:700;
  text-decoration:none;
  transition:all .3s;
  white-space:nowrap;
}
.statistik-footer-btn i{font-size:.85rem}
.statistik-footer-btn.btn-primary-gradient{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  box-shadow:0 3px 14px rgba(var(--primary-rgb),.25);
}
.statistik-footer-btn.btn-primary-gradient:hover{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary-darker));
  box-shadow:0 6px 22px rgba(var(--primary-rgb),.35);
  transform:translateY(-2px);
}
.statistik-footer-btn.btn-accent-gradient{
  background:linear-gradient(135deg,var(--primary-soft),var(--primary));
  color:#fff;
  box-shadow:0 3px 14px rgba(var(--primary-rgb),.2);
}
.statistik-footer-btn.btn-accent-gradient:hover{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  box-shadow:0 6px 22px rgba(var(--primary-rgb),.3);
  transform:translateY(-2px);
}

/* Kehadiran "more" indicator */
.kehadiran-more{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  border-top:1px dashed rgba(var(--primary-rgb),.1);
  margin-top:4px;
}

/* â”€â”€ Penduduk Counter â”€â”€ */
.penduduk-counter{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:24px;
}
.penduduk-counter-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 18px;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.04);
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  opacity:0;
  transform:translateY(16px);
  transition:all .5s cubic-bezier(.4,0,.2,1);
}
.penduduk-counter.counter-animated .penduduk-counter-item{
  opacity:1;
  transform:translateY(0);
}
.penduduk-counter-item:nth-child(1){transition-delay:.05s}
.penduduk-counter-item:nth-child(2){transition-delay:.15s}
.penduduk-counter-item:nth-child(3){transition-delay:.25s}

.penduduk-counter-item::after{
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:3px;
  border-radius:0 0 16px 16px;
}
.counter-total::after{background:linear-gradient(90deg,var(--primary),var(--primary-soft))}
.counter-laki::after{background:linear-gradient(90deg,#3182CE,#63B3ED)}
.counter-perempuan::after{background:linear-gradient(90deg,#D53F8C,#F687B3)}

.penduduk-counter-item:hover{
  box-shadow:0 6px 24px rgba(0,0,0,.08);
  transform:translateY(-3px)!important;
}
.penduduk-counter-icon{
  width:48px;height:48px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  flex-shrink:0;
  transition:all .3s;
}
.counter-total .penduduk-counter-icon{
  background:var(--primary-50);color:var(--primary);
}
.counter-laki .penduduk-counter-icon{
  background:#EBF8FF;color:#3182CE;
}
.counter-perempuan .penduduk-counter-icon{
  background:#FFF5F7;color:#D53F8C;
}
.penduduk-counter-item:hover .penduduk-counter-icon{
  transform:scale(1.1) rotate(-5deg);
}
.penduduk-counter-data{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.penduduk-counter-num{
  font-family:var(--font-heading);
  font-size:1.6rem;
  font-weight:800;
  line-height:1.1;
  color:var(--text-heading);
}
.counter-total .penduduk-counter-num{color:var(--primary)}
.counter-laki .penduduk-counter-num{color:#3182CE}
.counter-perempuan .penduduk-counter-num{color:#D53F8C}
.penduduk-counter-label{
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-top:2px;
}

/* â”€â”€ Responsive Info Desa â”€â”€ */
@media(max-width:1023px){
  .info-desa-row{
    grid-template-columns:1fr;
    gap:24px;
  }
  .penduduk-counter{
    grid-template-columns:repeat(3,1fr);
  }
  .statistik-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:639px){
  .penduduk-counter{
    grid-template-columns:1fr;
    gap:10px;
  }
  .statistik-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .statistik-card{
    padding:16px 14px;
  }
  .kehadiran-summary .summary-num{
    font-size:1.1rem;
  }
  .penduduk-counter-item{
    padding:16px 14px;
  }
  .penduduk-counter-num{
    font-size:1.3rem;
  }
  .statistik-footer{
    flex-direction:column;
    gap:10px;
  }
  .statistik-footer-btn{
    width:100%;
    justify-content:center;
  }
  .pengunjung-stat-num{
    font-size:1.1rem;
  }
  .pengunjung-stat-num.pengunjung-total{
    font-size:1.2rem;
  }
}

/* ── Info Desa: Tambah padding kanan semua widget di mobile ── */
@media(max-width:767px){
  /* Hapus scrollbar internal kehadiran di mobile — pakai scroll halaman */
  .kehadiran-panel{margin-right:10px}
  .kehadiran-panel-body{padding:6px 20px 12px;max-height:none;overflow-y:visible}
  .kehadiran-panel-item{padding:8px 16px 8px 10px}
  .kehadiran-panel-header{padding:14px 20px 14px 16px}
  .jamkerja-panel-header{padding:14px 20px 14px 16px}
  .jamkerja-panel-body{padding:0 4px}
  .jamkerja-table thead th,
  .jamkerja-table tbody td{padding:10px 16px 10px 12px}
  .info-map-card-header{padding:14px 20px 14px 16px}
  .info-map-card-body{padding:12px 20px 12px 16px}
  .penduduk-counter-item{padding:16px 16px}
  .statistik-card{padding:16px 16px}
  .pengunjung-panel-header{padding:14px 20px 14px 16px}
  .pengunjung-panel-body{padding:12px 20px 12px 16px}
  .kehadiran-panel-footer,
  .jamkerja-panel-footer{padding:10px 20px 10px 16px}
  /* Back-to-top: pastikan tidak overlap konten di mobile */
  .back-to-top{right:12px;bottom:20px;width:38px;height:38px;font-size:13px}
}

/* ========================================================
   SECTION: Quick Access (Menu + Layanan Mandiri + Jadwal Sholat)
   ======================================================== */
.section-quick-access{
  padding:33px 0 13px;
  background:var(--warm-section);
  position:relative;
  overflow:hidden;
}
.section-quick-access::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary));
}
.quick-access-grid{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:20px;
  align-items:stretch;
  overflow:hidden;
}
.qa-right-wrap{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0; /* prevent grid blowout */
  height:100%;
}
.qa-right-col{
  min-width:0; /* critical: prevents 1fr grid column overflow */
  overflow:hidden;
}
/* Left column: stretch menu card to full height */
.qa-menu-col{
  display:flex;
  flex-direction:column;
}
.qa-menu-card{
  flex:1;
}
.qa-menu-card .qa-menu-grid{
  flex:1;
}

/* â”€â”€ QA Card (shared) â”€â”€ */
.qa-card{
  background:var(--white);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .5s ease, transform .5s ease;
}
.qa-card.qa-visible{
  opacity:1;
  transform:translateY(0);
}
.qa-card-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px 10px;
  border-bottom:1px solid var(--border);
}
.qa-card-header i{
  font-size:1rem;
  color:var(--primary);
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--primary-50);
  border-radius:6px;
}
.qa-card-header h3{
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0;
  flex:1;
}

/* â”€â”€ Menu Grid â”€â”€ */
.qa-menu-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  padding:6px;
  flex:1;
}
.qa-menu-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:10px 6px;
  border-radius:var(--radius-lg);
  text-decoration:none;
  color:var(--text-body);
  transition:all .25s ease;
  position:relative;
  overflow:hidden;
}
.qa-menu-item::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--primary-50),var(--sky));
  opacity:0;
  transition:opacity .25s ease;
}
.qa-menu-item:hover::before{
  opacity:1;
}
.qa-menu-item:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(var(--primary-rgb),.12);
}
.qa-menu-icon{width:42px;height:42px;border-radius:var(--radius);background:var(--primary-50);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--primary);transition:all .2s}
.qa-menu-icon i{
  font-size:16px;
  color:inherit;
  position:relative;
  z-index:2;
}
.qa-menu-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:inherit;
  transition:transform .25s ease;
}
.qa-menu-item:hover .qa-menu-icon{background:var(--primary);color:#fff}
.qa-menu-item:hover .qa-menu-icon img{
  transform:scale(1.02);
}
.qa-menu-item:hover .qa-menu-icon i{
  box-shadow:0 5px 16px rgba(var(--primary-rgb),.35);
}
.qa-menu-item span{
  font-size:.7rem;
  font-weight:600;
  text-align:center;
  line-height:1.2;
  position:relative;
  z-index:1;
  color:var(--text-heading);
}

/* â”€â”€ Quick Access Info Ticker (Elegan Glass Mirror) â”€â”€ */
.qa-ticker{
  display:flex;
  align-items:center;
  gap:0;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 50%,var(--primary-dark) 100%);
  border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius-lg);
  overflow:hidden;
  flex-shrink:0;
  position:relative;
  box-shadow:0 2px 12px rgba(31,111,80,.18),inset 0 1px 0 rgba(255,255,255,.12);
  width:100%;
  max-width:100%;
  min-width:0;
}
/* Glass mirror shine overlay */
.qa-ticker::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.03) 100%);
  pointer-events:none;
  z-index:1;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
/* Subtle shimmer sweep */
.qa-ticker::after{
  content:'';
  position:absolute;
  top:0;bottom:0;
  width:60px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  animation:qaTickerShimmer 4s ease-in-out infinite;
  pointer-events:none;
  z-index:2;
}
@keyframes qaTickerShimmer{
  0%{left:-60px}
  100%{left:calc(100% + 60px)}
}
.qa-ticker-badge{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:9px 16px;
  background:linear-gradient(135deg,var(--accent) 0%,#c9a020 100%);
  color:var(--primary-darker);
  font-size:.72rem;
  font-weight:800;
  font-family:var(--font-heading);
  letter-spacing:.04em;
  white-space:nowrap;
  text-transform:uppercase;
  position:relative;
  z-index:3;
  box-shadow:2px 0 8px rgba(0,0,0,.15);
  border-radius:var(--radius-lg) 0 0 var(--radius-lg);
}
.qa-ticker-badge i{font-size:.7rem}
.qa-ticker-track-wrap{
  flex:1;
  overflow:hidden;
  position:relative;
  min-width:0;
  padding:9px 16px 9px 14px;
  z-index:3;
  /* Fade edges for smooth scroll entry/exit */
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 5%,#000 95%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 5%,#000 95%,transparent 100%);
}
.qa-ticker-track{
  display:inline-flex;
  white-space:nowrap;
  animation:qaTickerScroll 22s linear infinite;
  will-change:transform;
}
.qa-ticker-track:hover{
  animation-play-state:paused;
}
.qa-ticker-item{
  margin-right:50px;
  font-size:.78rem;
  color:rgba(255,255,255,.92);
  line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.15);
}
.qa-ticker-item a{
  color:var(--accent);
  font-weight:700;
  margin-left:4px;
  text-decoration:none;
  text-shadow:none;
}
.qa-ticker-item a:hover{
  text-decoration:underline;
  color:#e8c84a;
}
@keyframes qaTickerScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* â”€â”€ Layanan Mandiri (Image Banner) â”€â”€ */
.qa-layanan-card{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--radius-lg);
  transition:all .3s ease;
  flex:1;
  min-height:0;
  background:none;
  box-shadow:none;
  line-height:0;
  border:none;
  padding:0;
}
.qa-layanan-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(31,111,80,.15);
}
.qa-layanan-img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  display:block;
  border-radius:var(--radius-lg);
}
/* CTA Button overlay */
.qa-layanan-btn{
  position:absolute;
  bottom:18%;
  left:50%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 28px 10px 22px;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 40%,var(--accent-dark) 100%);
  color:#fff;
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.02em;
  text-decoration:none;
  border-radius:50px;
  border:2px solid rgba(255,255,255,.3);
  box-shadow:0 4px 18px rgba(var(--primary-dark-rgb),.35),inset 0 1px 0 rgba(255,255,255,.2);
  white-space:nowrap;
  line-height:1;
  transition:all .3s ease;
  z-index:4;
}
.qa-layanan-btn::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 100%);
  border-radius:50px 50px 0 0;
  pointer-events:none;
}
.qa-layanan-btn i{
  font-size:.78rem;
  position:relative;
}
.qa-layanan-btn-arrow{
  font-size:.68rem!important;
  opacity:.8;
  transition:transform .25s ease;
}
.qa-layanan-btn:hover{
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary) 40%,var(--accent) 100%);
  box-shadow:0 6px 24px rgba(var(--primary-dark-rgb),.45),inset 0 1px 0 rgba(255,255,255,.25);
  color:#fff;
  transform:translateX(-50%) translateY(-2px);
}
.qa-layanan-btn:hover .qa-layanan-btn-arrow{
  transform:translateX(3px);
}
/* When ticker is hidden, let image show fully without cropping */
.qa-right-wrap .qa-layanan-card:only-child{
  flex:none;
  height:auto;
}
.qa-right-wrap .qa-layanan-card:only-child .qa-layanan-img{
  height:auto;
  object-fit:contain;
}

/* â”€â”€ Jadwal Sholat Bar (Elegant Animated) â”€â”€ */
.qa-sholat-bar{
  background:linear-gradient(135deg,var(--white) 0%,rgba(47,133,90,.03) 100%);
  border-radius:var(--radius-xl);
  box-shadow:0 4px 24px rgba(47,133,90,.08),0 1px 3px rgba(0,0,0,.04);
  padding:0;
  border:1px solid rgba(47,133,90,.1);
  overflow:hidden;
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);
}
.qa-sholat-bar.qa-sholat-loaded,
.qa-sholat-bar.qa-visible{
  opacity:1;
  transform:translateY(0);
}

/* Header */
.qa-sholat-bar-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 16px;
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-dark) 50%,var(--primary) 100%);
  position:relative;
  overflow:hidden;
}
.qa-sholat-bar-header::before{
  content:'';
  position:absolute;
  top:-20px;right:-20px;
  width:80px;height:80px;
  background:radial-gradient(circle,rgba(96,165,250,.15) 0%,transparent 70%);
  border-radius:50%;
  pointer-events:none;
}
.qa-sholat-bar-header::after{
  content:'';
  position:absolute;
  bottom:-10px;left:30%;
  width:60px;height:60px;
  background:radial-gradient(circle,rgba(255,255,255,.06) 0%,transparent 70%);
  border-radius:50%;
  pointer-events:none;
}
.qa-sholat-header-left{
  display:flex;
  align-items:center;
  gap:10px;
  position:relative;
  z-index:2;
}
.qa-sholat-icon-wrap{
  width:30px;height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.15);
  border-radius:10px;
  flex-shrink:0;
  backdrop-filter:blur(4px);
}
.qa-sholat-icon-wrap i{
  color:#fff;
  font-size:.85rem;
}
.qa-sholat-header-text{
  display:flex;
  flex-direction:column;
  gap:1px;
}
.qa-sholat-bar-title{
  font-family:var(--font-heading);
  font-size:.78rem;
  font-weight:700;
  color:#fff;
  line-height:1.2;
}
.qa-sholat-bar-date{
  font-size:.6rem;
  color:rgba(255,255,255,.65);
  line-height:1.2;
}

/* Countdown badge */
.qa-sholat-countdown{
  display:flex;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.15);
  border-radius:20px;
  padding:4px 12px 4px 8px;
  backdrop-filter:blur(4px);
  position:relative;
  z-index:2;
}
.qa-sholat-countdown i{
  font-size:.6rem;
  color:var(--accent);
  animation:sholatBellSwing 2s ease-in-out infinite;
}
@keyframes sholatBellSwing{
  0%,100%{transform:rotate(0deg)}
  15%{transform:rotate(12deg)}
  30%{transform:rotate(-10deg)}
  45%{transform:rotate(8deg)}
  60%{transform:rotate(-5deg)}
  75%{transform:rotate(3deg)}
}
.qa-sholat-countdown span{
  font-family:var(--font-heading);
  font-size:.62rem;
  font-weight:600;
  color:#fff;
  white-space:nowrap;
}
.qa-sholat-countdown-active{
  background:rgba(96,165,250,.25);
  border-color:rgba(96,165,250,.4);
}
.qa-sholat-countdown-active i{
  color:var(--accent);
  animation:sholatBellRing .5s ease-in-out infinite;
}
@keyframes sholatBellRing{
  0%,100%{transform:rotate(0)}
  25%{transform:rotate(15deg)}
  75%{transform:rotate(-15deg)}
}

/* Prayer time items */
.qa-sholat-bar-times{
  display:flex;
  gap:6px;
  padding:8px 12px;
}
.qa-sholat-bar-item{
  flex:1;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  text-align:center;  
  gap:8px;
  padding:6px 10px;
  border-radius:12px;
  background:var(--gray-50);
  border:1.5px solid var(--border);
  transition:all .35s cubic-bezier(.4,0,.2,1);
  position:relative;
  overflow:hidden;
  /* Staggered entry: start hidden */
  opacity:0;
  transform:translateY(12px) scale(.95);
}
.qa-sholat-bar-item.qa-sbar-revealed{
  opacity:1;
  transform:translateY(0) scale(1);
}

/* Icon per waktu */
.qa-sbar-icon{
  width:28px;height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:linear-gradient(135deg,var(--primary-50),rgba(47,133,90,.08));
  transition:all .35s ease;
  flex-shrink:0;
}
.qa-sbar-icon i{
  font-size:.62rem;
  color:var(--primary);
  transition:all .35s ease;
}

/* Text group beside icon */
.qa-sbar-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  min-width:0;
}

/* Hover effect */
.qa-sholat-bar-item:hover{
  background:var(--primary-50);
  border-color:var(--primary-light);
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(47,133,90,.12);
}
.qa-sholat-bar-item:hover .qa-sbar-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  transform:scale(1.1) rotate(-5deg);
}
.qa-sholat-bar-item:hover .qa-sbar-icon i{
  color:#fff;
}

/* Active (next prayer) */
.qa-sholat-bar-item.qa-sbar-next{
  background:linear-gradient(135deg,var(--primary-50) 0%,rgba(47,133,90,.12) 100%);
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(47,133,90,.1),0 4px 16px rgba(47,133,90,.12);
}
.qa-sholat-bar-item.qa-sbar-next::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary));
  background-size:200% 100%;
  animation:sholatShimmer 2s linear infinite;
}
@keyframes sholatShimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  animation:sholatIconPulse 2s ease-in-out infinite;
}
@keyframes sholatIconPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(47,133,90,.3)}
  50%{box-shadow:0 0 0 6px rgba(47,133,90,0)}
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-icon i{
  color:#fff;
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-time{
  color:var(--primary-dark);
  font-weight:800;
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-name{
  color:var(--primary-dark);
  font-weight:700;
}

/* Passed prayers (dimmed) */
.qa-sholat-bar-item.qa-sbar-passed{
  opacity:.55;
}
.qa-sholat-bar-item.qa-sbar-passed .qa-sbar-icon{
  background:var(--gray-100);
}
.qa-sholat-bar-item.qa-sbar-passed .qa-sbar-icon i{
  color:var(--text-muted);
}

/* Labels */
.qa-sbar-name{
  font-size:.56rem;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:1.1;
  transition:color .3s;
}
.qa-sbar-time{
  font-family:var(--font-heading);
  font-size:.82rem;
  font-weight:700;
  color:var(--text-heading);
  line-height:1.1;
  transition:color .3s,font-weight .3s;
}

/* â”€â”€ Quick Access Responsive â”€â”€ */
@media(max-width:1023px){
  .quick-access-grid{
    gap:18px;
  }
}
@media(max-width:767px){
  .section-quick-access{
    padding:32px 0 28px;
  }
  .quick-access-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .qa-card-header{
    flex-wrap:wrap;
    gap:6px;
    padding:10px 14px 8px;
  }
  
  
  .qa-ticker-badge{
    padding:7px 10px;
    font-size:.66rem;
  }
  .qa-ticker-item{
    font-size:.72rem;
    margin-right:35px;
  }
  .qa-ticker::after{
    display:none;
  }
  .qa-menu-grid{
    gap:1px;
    padding:4px;
  }
  .qa-menu-item{
    padding:8px 4px;
    gap:4px;
  }
  .qa-menu-icon{
    width:40px;
    height:40px;
  }
  .qa-menu-icon i{
    width:34px;
    height:34px;
    font-size:.9rem;
  }
  .qa-menu-icon img{
    width:100%;
    height:100%;
  }
  .qa-menu-item span{
    font-size:.66rem;
  }
  .qa-layanan-card{
    flex:none;
    height:auto;
  }
  .qa-layanan-img{
    height:auto;
    object-fit:contain;
  }
  .qa-layanan-btn{
    padding:8px 20px 8px 16px;
    font-size:.78rem;
    bottom:14%;
  }
  .qa-sholat-bar-header{
    flex-wrap:wrap;
    gap:8px;
    padding:8px 12px;
  }
  .qa-sholat-countdown{
    width:100%;
    justify-content:center;
  }
  .qa-sholat-bar-times{
    flex-wrap:wrap;
    padding:6px 10px;
    gap:5px;
  }
  .qa-sholat-bar-item{
    min-width:calc(33.33% - 4px);
    padding:5px 8px;
    gap:6px;
  }
  .qa-sbar-icon{
    width:24px;height:24px;
    border-radius:7px;
  }
  .qa-sbar-icon i{
    font-size:.52rem;
  }
}
@media(max-width:479px){
  .qa-menu-icon{
    width:36px;
    height:36px;
    border-radius:10px;
  }
  .qa-menu-icon i{
    width:30px;
    height:30px;
    font-size:.85rem;
    border-radius:8px;
  }
  .qa-menu-icon img{
    width:100%;
    height:100%;
  }
  .qa-menu-item{
    padding:8px 4px;
    gap:4px;
  }
  .qa-menu-item span{
    font-size:.62rem;
  }
  .qa-sholat-bar-item{
    min-width:calc(50% - 4px);
    padding:4px 6px;
    gap:5px;
  }
  .qa-sbar-icon{
    width:22px;height:22px;
    border-radius:6px;
  }
  .qa-sbar-icon i{font-size:.48rem}
  .qa-sbar-name{font-size:.5rem}
  .qa-sbar-time{font-size:.72rem}
  .qa-sholat-bar-header{padding:7px 10px}
  .qa-sholat-icon-wrap{width:26px;height:26px;border-radius:8px}
  .qa-sholat-icon-wrap i{font-size:.72rem}
  .qa-sholat-bar-title{font-size:.7rem}
  .qa-sholat-bar-date{font-size:.52rem}
  .qa-sholat-countdown{padding:3px 8px 3px 6px}
  .qa-sholat-countdown span{font-size:.55rem}
  .qa-sholat-countdown i{font-size:.5rem}
  .qa-layanan-btn{
    padding:7px 16px 7px 14px;
    font-size:.7rem;
    gap:6px;
    bottom:10%;
  }
  .qa-layanan-btn-arrow{
    display:none;
  }
}


/* ========== WIDGET JADWAL SHOLAT (Sidebar) ========== */
.wsholat-card{
  background: linear-gradient(145deg, #FFFBEB 0%, #FFF8E1 60%, #FEF3C7 100%);
  border-radius:14px;
  overflow:hidden;
  margin-bottom:20px;
  border:1px solid #FDE68A;
  box-shadow:0 4px 20px rgba(217,119,6,.10);
  opacity:0;
  transform:translateY(8px);
  transition:opacity .45s ease, transform .45s ease;
  position: relative;
}
/* Gambar masjid SVG di pojok kanan bawah */
.wsholat-card::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 130px;
  height: 110px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 160'%3E%3Cg fill='%23F59E0B' opacity='0.18'%3E%3C!-- Menara kiri --%3E%3Crect x='10' y='60' width='18' height='80' rx='2'/%3E%3Crect x='10' y='54' width='18' height='12' rx='2'/%3E%3Cellipse cx='19' cy='52' rx='9' ry='7'/%3E%3Crect x='16' y='38' width='6' height='18' rx='3'/%3E%3C!-- Menara kanan --%3E%3Crect x='172' y='60' width='18' height='80' rx='2'/%3E%3Crect x='172' y='54' width='18' height='12' rx='2'/%3E%3Cellipse cx='181' cy='52' rx='9' ry='7'/%3E%3Crect x='178' y='38' width='6' height='18' rx='3'/%3E%3C!-- Badan utama masjid --%3E%3Crect x='35' y='75' width='130' height='65' rx='3'/%3E%3C!-- Kubah utama besar --%3E%3Cellipse cx='100' cy='72' rx='42' ry='30'/%3E%3Crect x='58' y='72' width='84' height='15'/%3E%3C!-- Kubah kecil kiri --%3E%3Cellipse cx='60' cy='76' rx='18' ry='13'/%3E%3Crect x='42' y='76' width='36' height='8'/%3E%3C!-- Kubah kecil kanan --%3E%3Cellipse cx='140' cy='76' rx='18' ry='13'/%3E%3Crect x='122' y='76' width='36' height='8'/%3E%3C!-- Pintu --%3E%3Crect x='85' y='108' width='30' height='32' rx='15 15 0 0'/%3E%3C!-- Jendela kiri --%3E%3Crect x='48' y='90' width='20' height='22' rx='10 10 0 0'/%3E%3C!-- Jendela kanan --%3E%3Crect x='132' y='90' width='20' height='22' rx='10 10 0 0'/%3E%3C!-- Bulan sabit di kubah --%3E%3Ccircle cx='100' cy='46' r='5' fill='%23F59E0B' opacity='0.35'/%3E%3Cpath d='M97 43 Q100 40 103 43 Q101 38 97 43Z' fill='%23F59E0B' opacity='0.35'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom right;
  pointer-events: none;
  z-index: 0;
}
.wsholat-card.wsholat-loaded{
  opacity:1;
  transform:translateY(0);
}
/* Header: untuk sidebar standalone */
.wsholat-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 16px 11px;
  border-bottom:1px solid #FDE68A;
  background: transparent;
  position: relative;
  z-index: 1;
}
.wsholat-header-icon{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#F59E0B,#D97706);
  border-radius:9px;
  flex-shrink:0;
}
.wsholat-header-icon i{font-size:.85rem;color:#fff}
.wsholat-title{
  font-family:var(--font-heading);
  font-size:.84rem;font-weight:700;
  color:#1C1009;line-height:1.2;
}
.wsholat-subtitle{
  font-size:.64rem;color:#D97706;
  line-height:1.3;margin-top:1px;
}
/* Date block — left-aligned */
.wsholat-date-wrap{
  padding:12px 16px 11px;
  background: transparent;
  border-bottom:1px solid #FDE68A;
  position: relative;
  z-index: 1;
}
.wsholat-date-main{
  font-family:var(--font-heading);
  font-size:.96rem;font-weight:700;
  color:#1C1009;line-height:1.4;
}
.wsholat-date-hijri{
  font-size:.72rem;color:#92400E;font-weight:500;
}
/* separator bawah tanggal */
.wsholat-sep{
  height:1px;
  background:#FDE68A;
  margin:0;
}
/* Prayer list */
.wsholat-list{padding:6px 10px 6px;background:transparent;position:relative;z-index:1;}
.wsholat-item{
  display:flex;align-items:center;gap:9px;
  padding:8px 7px;border-radius:9px;
  transition:background .18s;
  border:1.5px solid transparent;
  margin-bottom:1px;
}
.wsholat-item:not(:last-child){border-bottom:1px solid rgba(253,230,138,.6)}
/* icon pill */
.wsholat-icon{
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  border-radius:7px;flex-shrink:0;
}
.wsholat-icon svg{display:block}
/* per-waktu icon colors */
.wsholat-icon--imsak{background:rgba(243,244,246,.8)}
.wsholat-icon--imsak svg{stroke:#6B7280}
.wsholat-icon--subuh{background:rgba(239,246,255,.8)}
.wsholat-icon--subuh svg{stroke:#3B82F6}
.wsholat-icon--dzuhur{background:rgba(255,251,235,.8)}
.wsholat-icon--dzuhur svg{stroke:#D97706}
.wsholat-icon--ashar{background:rgba(255,247,237,.8)}
.wsholat-icon--ashar svg{stroke:#EA580C}
.wsholat-icon--maghrib{background:rgba(255,241,242,.8)}
.wsholat-icon--maghrib svg{stroke:#E11D48}
.wsholat-icon--isya{background:rgba(240,249,255,.8)}
.wsholat-icon--isya svg{stroke:#0369A1}
/* name & time */
.wsholat-name{
  flex:1;font-size:.8rem;font-weight:500;color:#57534E;
}
.wsholat-time{
  font-family:var(--font-heading);
  font-size:.85rem;font-weight:700;color:#44403C;
  letter-spacing:.5px;
}
/* --- Next prayer --- */
.wsholat-item.wsholat-next{
  background:rgba(254,243,199,.7);
  border-color:#FCD34D !important;
}
.wsholat-item.wsholat-next .wsholat-name{
  color:#92400E;font-weight:700;
}
.wsholat-item.wsholat-next .wsholat-time{
  color:#D97706;font-weight:800;
}
.wsholat-item.wsholat-next .wsholat-icon{background:#FEF3C7}
.wsholat-item.wsholat-next .wsholat-icon svg{stroke:#D97706}
/* --- Passed --- */
.wsholat-item.wsholat-passed{opacity:.4}
/* Footer */
.wsholat-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 14px 10px;
  background: transparent;
  border-top:1px solid #FDE68A;
  position: relative;
  z-index: 1;
}
.wsholat-source{font-size:.61rem;color:#A8A29E;letter-spacing:.1px}
.wsholat-kiblat-link{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.65rem;font-weight:600;color:#D97706;
  text-decoration:none;
  padding:3px 9px;border-radius:20px;
  border:1px solid #FCD34D;background:rgba(255,251,235,.8);
  transition:all .18s;line-height:1;
}
.wsholat-kiblat-link:hover{background:#FEF3C7;color:#92400E;border-color:#F59E0B;text-decoration:none}
.wsholat-kiblat-link i{font-size:.55rem}

/* ========== PENGADUAN PAGE ========== */
.pengaduan-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:28px 32px;
  margin-bottom:24px;
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-dark) 50%,var(--primary) 100%);
  border-radius:var(--radius-lg);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.pengaduan-header::before{
  content:'';
  position:absolute;
  width:220px;height:220px;
  background:rgba(255,255,255,.04);
  border-radius:50%;
  top:-80px;right:-40px;
}
.pengaduan-header::after{
  content:'';
  position:absolute;
  width:120px;height:120px;
  background:rgba(96,165,250,.08);
  border-radius:50%;
  bottom:-30px;left:10%;
}
.pengaduan-header-text{position:relative;z-index:1}
.pengaduan-title{
  font-family:var(--font-heading);
  font-size:1.5rem;
  font-weight:800;
  margin:0 0 6px;
  display:flex;
  align-items:center;
  gap:10px;
  color: #fff;
}
.pengaduan-title i{
  font-size:1.2rem;
  opacity:.8;
}
.pengaduan-subtitle{
  font-size:.88rem;
  opacity:.75;
  margin:0;
  font-weight:400;
}
.pengaduan-cta-btn{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 28px;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(8px);
  color:#fff;
  border:2px solid rgba(255,255,255,.3);
  border-radius:var(--radius-full);
  font-family:var(--font-heading);
  font-size:.9rem;
  font-weight:700;
  cursor:pointer;
  transition:all .3s;
  white-space:nowrap;
}
.pengaduan-cta-btn:hover{
  background:rgba(255,255,255,.25);
  border-color:rgba(255,255,255,.5);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.15);
}

/* â”€â”€ Filter Bar â”€â”€ */
.pengaduan-filter-bar{
  margin-bottom:24px;
}
.pengaduan-filter-group{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:stretch;
}

/* â”€â”€ Status Tabs â”€â”€ */
.pengaduan-status-tabs{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
}
.pengaduan-tab{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 18px;
  border:2px solid var(--border);
  border-radius:var(--radius-full);
  background:var(--white);
  color:var(--text-muted);
  font-size:.82rem;
  font-weight:600;
  font-family:var(--font-heading);
  cursor:pointer;
  transition:all .25s cubic-bezier(.4,0,.2,1);
  white-space:nowrap;
  position:relative;
  overflow:hidden;
}
.pengaduan-tab::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  transition:opacity .25s;
}
.pengaduan-tab:hover{
  border-color:var(--primary-soft);
  color:var(--primary);
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(47,133,90,.1);
}
.pengaduan-tab.active{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  border-color:transparent;
  box-shadow:0 4px 16px rgba(47,133,90,.25);
  transform:translateY(-1px);
}
.pengaduan-tab.active i{color:#fff}
.pengaduan-tab i{
  font-size:.72rem;
  transition:color .2s;
}
/* Colored active variants */
.pengaduan-tab.tab-waiting.active{
  background:linear-gradient(135deg,#E53E3E,#C53030);
  box-shadow:0 4px 16px rgba(197,48,48,.25);
}
.pengaduan-tab.tab-process.active{
  background:linear-gradient(135deg,#D69E2E,#B7791F);
  box-shadow:0 4px 16px rgba(183,121,31,.25);
}
.pengaduan-tab.tab-success.active{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  box-shadow:0 4px 16px rgba(47,133,90,.25);
}

.pengaduan-search-wrap{
  flex:1;
  min-width:240px;
  display:flex;
  align-items:stretch;
  position:relative;
  border:2px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border .2s;
}
.pengaduan-search-wrap:focus-within{border-color:var(--primary)}
.pengaduan-search-icon{
  position:absolute;
  left:14px;top:50%;
  transform:translateY(-50%);
  color:var(--text-muted);
  font-size:.85rem;
  pointer-events:none;
}
.pengaduan-search-input{
  border:none!important;
  padding-left:40px!important;
  border-radius:0!important;
  flex:1;
}
.pengaduan-search-input:focus{box-shadow:none!important}
.pengaduan-search-btn{
  padding:0 20px;
  background:var(--primary);
  color:#fff;
  border:none;
  font-weight:600;
  font-size:.85rem;
  cursor:pointer;
  transition:background .2s;
  white-space:nowrap;
}
.pengaduan-search-btn:hover{background:var(--primary-dark)}

/* â”€â”€ Card Grid â”€â”€ */
.pengaduan-grid{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:120px;
}
.pengaduan-card{
  display:flex;
  align-items:stretch;
  gap:0;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  cursor:pointer;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  animation:pengaduanCardIn .5s ease both;
}
.pengaduan-card:hover{
  border-color:var(--primary-soft);
  box-shadow:0 8px 30px rgba(47,133,90,.1);
  transform:translateY(-2px);
}
@keyframes pengaduanCardIn{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}

/* Card Image */
.pengaduan-card-img-wrap{
  flex:0 0 160px;
  width:160px;
  min-height:130px;
  overflow:hidden;
  position:relative;
  background:var(--gray-50);
}
.pengaduan-card-img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s;
}
.pengaduan-card:hover .pengaduan-card-img{
  transform:scale(1.05);
}

/* Card Body */
.pengaduan-card-body{
  flex:1;
  padding:16px 20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  min-width:0;
}
.pengaduan-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.pengaduan-card-title{
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0;
  line-height:1.4;
}
.pengaduan-card-desc{
  font-size:.85rem;
  color:var(--text-muted);
  line-height:1.6;
  margin:0;
}
.pengaduan-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:.78rem;
  color:var(--text-muted);
}
.pengaduan-card-meta span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.pengaduan-card-meta i{
  color:var(--primary);
  font-size:.7rem;
}
.pengaduan-card-comments{
  color:var(--primary)!important;
  font-weight:600;
}
.pengaduan-card-arrow{
  display:flex;
  align-items:center;
  padding:0 18px;
  color:var(--gray-300);
  font-size:1rem;
  transition:color .2s;
}
.pengaduan-card:hover .pengaduan-card-arrow{
  color:var(--primary);
}

/* â”€â”€ Status Badges â”€â”€ */
.pengaduan-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 12px;
  border-radius:var(--radius-full);
  font-size:.72rem;
  font-weight:700;
  white-space:nowrap;
  flex-shrink:0;
}
.pengaduan-badge-waiting{
  background:#FFF5F5;
  color:#C53030;
  border:1px solid #FED7D7;
}
.pengaduan-badge-process{
  background:#FFFFF0;
  color:#B7791F;
  border:1px solid #FEFCBF;
}
.pengaduan-badge-success{
  background:var(--primary-light);
  color:var(--primary-dark);
  border:1px solid var(--primary-soft);
}

/* â”€â”€ Pagination Wrap â”€â”€ */
.pengaduan-pag-wrap{
  padding:20px 0 0;
  text-align:center;
}

/* â”€â”€ Loading State â”€â”€ */
.pengaduan-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px 20px;
  gap:16px;
  color:var(--text-muted);
  font-size:.9rem;
}
.pengaduan-loading-spinner{
  width:36px;height:36px;
  border:3px solid var(--border);
  border-top-color:var(--primary);
  border-radius:50%;
  animation:pengaduanSpin .7s linear infinite;
}
@keyframes pengaduanSpin{to{transform:rotate(360deg)}}

/* â”€â”€ Modal Enhancements â”€â”€ */
.pengaduan-modal-content{
  border-radius:var(--radius-xl,20px);
  overflow:hidden;
}
.pengaduan-modal-header{
  background:linear-gradient(135deg,var(--primary-darker),var(--primary));
  color:#fff;
  padding:20px 28px;
  border-bottom:none;
}
.pengaduan-modal-title-wrap{
  display:flex;
  align-items:center;
  gap:12px;
}
.pengaduan-modal-icon{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.15);
  border-radius:10px;
  font-size:.95rem;
}
.pengaduan-modal-header h5{
  font-family:var(--font-heading);
  font-size:1.05rem;
  font-weight:700;
  margin:0;
  color:#fff;
}
.pengaduan-modal-close{
  background:rgba(255,255,255,.15);
  border:none;
  color:#fff;
  width:32px;height:32px;
  border-radius:8px;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;
  transition:background .2s;
}
.pengaduan-modal-close:hover{background:rgba(255,255,255,.3)}
.pengaduan-modal-body{
  padding:28px;
  max-height:70vh;
  overflow-y:auto;
}

/* â”€â”€ Form Enhancements â”€â”€ */
.pengaduan-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 20px;
}
.text-required{color:#E53E3E;font-weight:700}

/* File Upload Area */
.pengaduan-upload-area{
  border:2px dashed var(--border);
  border-radius:var(--radius-lg);
  padding:24px;
  text-align:center;
  cursor:pointer;
  transition:all .25s;
  position:relative;
  background:var(--gray-50);
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pengaduan-upload-area:hover,.pengaduan-upload-area.drag-over{
  border-color:var(--primary);
  background:var(--primary-light);
}
.pengaduan-file-hidden{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  z-index:2;
}
.pengaduan-file-text-hidden{
  position:absolute;
  width:0;height:0;
  opacity:0;
  pointer-events:none;
  overflow:hidden;
}
.pengaduan-upload-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  color:var(--text-muted);
}
.pengaduan-upload-placeholder i{
  font-size:2rem;
  color:var(--primary);
  opacity:.5;
}
.pengaduan-upload-placeholder span{
  font-size:.85rem;
  font-weight:600;
}
.pengaduan-upload-placeholder small{
  font-size:.75rem;
  opacity:.7;
}
.pengaduan-upload-preview{
  max-width:100%;
  max-height:180px;
  border-radius:var(--radius);
  object-fit:contain;
}

/* Captcha Row */
.pengaduan-captcha-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:4px;
}
.pengaduan-captcha-img-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  background:var(--gray-50);
  padding:6px 10px;
  border-radius:var(--radius);
  border:1px solid var(--border);
}
.pengaduan-captcha-img{
  height:38px;
  width:auto;
}
.pengaduan-captcha-refresh{
  background:none;
  border:none;
  color:var(--primary);
  cursor:pointer;
  font-size:.85rem;
  padding:4px;
  transition:transform .3s;
}
.pengaduan-captcha-refresh:hover{transform:rotate(180deg)}
.pengaduan-captcha-input{
  max-width:180px!important;
  flex:1;
}

/* â”€â”€ Detail Modal Content â”€â”€ */
.pengaduan-detail-header-row{
  margin-bottom:16px;
}
.pengaduan-detail-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  font-size:.82rem;
  color:var(--text-muted);
}
.pengaduan-detail-meta span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.pengaduan-detail-meta i{
  color:var(--primary);
  font-size:.75rem;
}
.pengaduan-detail-image{
  margin-bottom:18px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--gray-50);
}
.pengaduan-detail-image img{
  width:100%;
  max-height:340px;
  object-fit:contain;
  display:block;
}
.pengaduan-detail-isi{
  font-size:.92rem;
  line-height:1.75;
  color:var(--text-body);
  margin-bottom:20px;
}

/* Replies */
.pengaduan-replies-section{
  border-top:1px solid var(--border);
  padding-top:20px;
}
.pengaduan-replies-title{
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0 0 14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.pengaduan-replies-title i{color:var(--primary);font-size:.85rem}
.pengaduan-reply-card{
  display:flex;
  gap:14px;
  padding:14px 16px;
  background:var(--gray-50);
  border-radius:var(--radius);
  margin-bottom:10px;
  border-left:3px solid var(--primary);
}
.pengaduan-reply-avatar{
  width:36px;height:36px;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;
  flex-shrink:0;
}
.pengaduan-reply-body{flex:1;min-width:0}
.pengaduan-reply-meta{
  font-size:.78rem;
  color:var(--text-muted);
  margin-bottom:6px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.pengaduan-reply-meta strong{color:var(--text-heading)}
.pengaduan-reply-body p{
  font-size:.85rem;
  line-height:1.6;
  color:var(--text-body);
  margin:0;
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .pengaduan-header{padding:20px 22px;flex-direction:column;align-items:flex-start}
  .pengaduan-title{font-size:1.2rem}
  .pengaduan-filter-group{flex-direction:column}
  .pengaduan-status-tabs{width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;gap:5px;padding-bottom:4px}
  .pengaduan-tab{padding:7px 14px;font-size:.78rem}
  .pengaduan-search-wrap{min-width:100%}
  .pengaduan-card{flex-direction:column}
  .pengaduan-card-img-wrap{flex:none;width:100%;min-height:160px;max-height:200px}
  .pengaduan-card-arrow{display:none}
  .pengaduan-form-grid{grid-template-columns:1fr}
  .pengaduan-modal-body{padding:20px}
  .pengaduan-captcha-row{flex-direction:column;align-items:flex-start}
  .pengaduan-captcha-input{max-width:100%!important;width:100%}
  .pengaduan-detail-image img{max-height:240px}
}
@media(max-width:479px){
  .pengaduan-header{padding:16px}
  .pengaduan-title{font-size:1.05rem}
  .pengaduan-subtitle{font-size:.8rem}
  .pengaduan-cta-btn{width:100%;justify-content:center;padding:10px 20px;font-size:.85rem}
  .pengaduan-card-body{padding:12px 14px}
  .pengaduan-card-title{font-size:.92rem}
  .pengaduan-modal-body{padding:16px}
}

/* ========== DATA KESEHATAN / STUNTING ========== */
.kes-header{
  position:relative;
  background:linear-gradient(135deg,#1C4D35 0%,#1E40AF 55%,#38A169 100%);
  border-radius:18px;
  padding:44px 40px 38px;
  margin-bottom:28px;
  overflow:hidden;
  color:#fff;
}
.kes-header-deco{
  position:absolute;
  border-radius:50%;
  opacity:.10;
  pointer-events:none;
}
.kes-header-deco-1{
  width:220px;height:220px;
  background:#fff;
  top:-60px;right:-40px;
}
.kes-header-deco-2{
  width:120px;height:120px;
  background:#60A5FA;
  bottom:-30px;left:40px;
}
.kes-header-text{position:relative;z-index:1}
.kes-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.65rem;
  font-weight:800;
  margin:0 0 6px;
  color:#fff;
}
.kes-subtitle{
  font-size:.95rem;
  opacity:.85;
  margin:0;
  font-weight:400;
}

/* â”€â”€ Filter Bar â”€â”€ */
.kes-filter-bar{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:20px 24px;
  margin-bottom:28px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-filter-form{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:flex-end;
}
.kes-filter-group{
  display:flex;
  flex-direction:column;
  gap:5px;
  flex:1;
  min-width:160px;
}
.kes-filter-group label{
  font-size:.75rem;
  font-weight:700;
  color:#4a5568;
  text-transform:uppercase;
  letter-spacing:.5px;
  display:flex;
  align-items:center;
  gap:5px;
  margin:0;
  line-height:1;
}
.kes-filter-group label i{
  color:#1E40AF;
  font-size:.8rem;
}
select.kes-filter-field,
.kes-filter-bar select.kes-filter-field{
  width:100%;
  height:42px;
  border:1.5px solid #cbd5e0;
  border-radius:8px;
  padding:0 32px 0 12px;
  font-size:.88rem;
  color:#2d3748;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a5568' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  transition:border-color .2s,box-shadow .2s;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  cursor:pointer;
  box-sizing:border-box;
  margin:0;
}
select.kes-filter-field:focus,
.kes-filter-bar select.kes-filter-field:focus{
  outline:none;
  border-color:#1E40AF;
  box-shadow:0 0 0 3px rgba(47,133,90,.12);
}
.kes-filter-btn-wrap{
  display:flex;
  align-items:flex-end;
  flex-shrink:0;
}
.kes-filter-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:42px;
  padding:0 24px;
  background:linear-gradient(135deg,#1E40AF,#276749);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:.88rem;
  font-weight:600;
  cursor:pointer;
  transition:transform .15s,box-shadow .2s;
  white-space:nowrap;
}
.kes-filter-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(47,133,90,.25);
}

/* â”€â”€ Content Area â”€â”€ */
.kes-content{
  min-height:200px;
}

/* â”€â”€ Widget Grid â”€â”€ */
.kes-widget-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:30px;
}
.kes-widget-card{
  display:flex;
  align-items:center;
  gap:16px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:18px 20px;
  transition:transform .2s,box-shadow .2s;
}
.kes-widget-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.kes-widget-icon{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.3rem;
  color:#fff;
  flex-shrink:0;
}
.kes-widget-icon.bg-blue{background:linear-gradient(135deg,#3182ce,#2b6cb0)}
.kes-widget-icon.bg-gray{background:linear-gradient(135deg,#718096,#4a5568)}
.kes-widget-icon.bg-green{background:linear-gradient(135deg,#38a169,#276749)}
.kes-widget-icon.bg-yellow{background:linear-gradient(135deg,#d69e2e,#b7791f)}
.kes-widget-icon.bg-red{background:linear-gradient(135deg,#e53e3e,#c53030)}
.kes-widget-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.kes-widget-total{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;
  font-weight:800;
  color:#1a202c;
  line-height:1.1;
}
.kes-widget-label{
  font-size:.78rem;
  color:#718096;
  font-weight:500;
  line-height:1.3;
}

/* â”€â”€ Section Title â”€â”€ */
.kes-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;
  font-weight:700;
  color:#1C4D35;
  margin:30px 0 16px;
  padding-bottom:8px;
  border-bottom:2px solid #e2e8f0;
  display:flex;
  align-items:center;
  gap:8px;
}
.kes-section-title i{
  color:#1E40AF;
  font-size:1.1rem;
}

/* â”€â”€ Chart Cards â”€â”€ */
.kes-chart-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:24px;
}
.kes-chart-card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  overflow:hidden;
  margin-bottom:24px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-chart-card-sm{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-chart-card-header{
  background:linear-gradient(135deg,#f7fafc,#edf2f7);
  padding:14px 20px;
  border-bottom:1px solid #e2e8f0;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:#2d3748;
}
.kes-chart-card-sm .highcharts-container,
.kes-chart-card .highcharts-container{
  border-radius:0 0 14px 14px;
}

/* â”€â”€ Scorecard â”€â”€ */
.kes-scorecard-wrap{
  margin-top:8px;
}
.kes-scorecard-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-bottom:16px;
}
.kes-scorecard-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 20px;
  border-radius:8px;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  transition:all .2s;
  text-decoration:none;
}
.kes-scorecard-btn.btn-outline{
  background:#fff;
  color:#1E40AF;
  border:1.5px solid #1E40AF;
}
.kes-scorecard-btn.btn-outline:hover{
  background:#EFF6FF;
  color:#276749;
}
.kes-scorecard-btn.btn-primary{
  background:linear-gradient(135deg,#1E40AF,#276749);
  color:#fff;
  border:none;
}
.kes-scorecard-btn.btn-primary:hover{
  box-shadow:0 4px 12px rgba(47,133,90,.3);
  transform:translateY(-1px);
}

/* â”€â”€ Scorecard Table â”€â”€ */
.kes-scorecard-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-sc-table{
  width:100%;
  border-collapse:collapse;
  font-size:.82rem;
  color:#2d3748;
  min-width:700px;
}
.kes-sc-table th,
.kes-sc-table td{
  padding:10px 12px;
  border:1px solid #e2e8f0;
  vertical-align:middle;
}
.kes-sc-table th{
  font-weight:600;
  background:#f7fafc;
  color:#2d3748;
  font-size:.8rem;
}
.kes-sc-table td{
  font-size:.82rem;
}
.kes-sc-section-header{
  background:linear-gradient(135deg,#1C4D35,#1E40AF) !important;
  color:#fff !important;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.85rem !important;
  font-weight:700 !important;
  letter-spacing:.3px;
  padding:12px 16px !important;
  text-align:left;
}
.kes-sc-sasaran{
  background:#EFF6FF !important;
  color:#276749 !important;
  font-weight:700;
  font-size:.8rem;
  writing-mode:horizontal-tb;
}
.kes-sc-green{
  color:#276749;
  font-weight:700;
  background:#EFF6FF !important;
}
.kes-sc-yellow{
  color:#b7791f;
  font-weight:700;
  background:#fefcbf !important;
}
.kes-sc-red{
  color:#c53030;
  font-weight:700;
  background:#fff5f5 !important;
}
.kes-sc-total-row{
  background:#EFF6FF !important;
}
.kes-sc-total-row th,
.kes-sc-total-row td{
  font-weight:700 !important;
  color:#1C4D35;
}
.kes-sc-table .text-center{
  text-align:center;
}

/* â”€â”€ Loading Spinner â”€â”€ */
.kes-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px 20px;
  gap:14px;
  color:#718096;
}
.kes-loading .kes-spinner{
  width:40px;height:40px;
  border:3px solid #e2e8f0;
  border-top-color:#1E40AF;
  border-radius:50%;
  animation:kesSpin .8s linear infinite;
}
@keyframes kesSpin{to{transform:rotate(360deg)}}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:991px){
  .kes-widget-grid{grid-template-columns:repeat(2,1fr)}
  .kes-chart-row{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
  .kes-header{padding:28px 22px 24px;border-radius:14px}
  .kes-title{font-size:1.25rem}
  .kes-subtitle{font-size:.85rem}
  .kes-header-deco-1{width:140px;height:140px;top:-30px;right:-20px}
  .kes-header-deco-2{width:80px;height:80px;bottom:-20px;left:20px}
  .kes-filter-bar{padding:16px 18px;border-radius:12px}
  .kes-filter-form{gap:10px}
  .kes-filter-group{min-width:100%;flex:unset}
  .kes-filter-btn{width:100%;justify-content:center}
  .kes-widget-grid{grid-template-columns:1fr 1fr;gap:12px}
  .kes-widget-card{padding:14px 16px;border-radius:12px}
  .kes-widget-icon{width:44px;height:44px;font-size:1.1rem;border-radius:12px}
  .kes-widget-total{font-size:1.25rem}
  .kes-chart-row{grid-template-columns:1fr;gap:14px}
  .kes-chart-card,.kes-chart-card-sm{border-radius:12px}
  .kes-scorecard-actions{flex-direction:column;gap:8px}
  .kes-scorecard-btn{width:100%;justify-content:center}
  .kes-scorecard-table-wrap{border-radius:12px}
}
@media(max-width:479px){
  .kes-header{padding:20px 16px 18px;margin-bottom:20px}
  .kes-title{font-size:1.1rem}
  .kes-widget-grid{grid-template-columns:1fr;gap:10px}
  .kes-widget-card{padding:12px 14px}
  .kes-widget-icon{width:40px;height:40px;font-size:1rem;border-radius:10px}
  .kes-widget-total{font-size:1.15rem}
  .kes-filter-bar{padding:14px;border-radius:10px}
  .kes-section-title{font-size:1rem}
}

/* ========== 404 ERROR PAGE ========== */
.err404-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:520px;
  padding:60px 24px 80px;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(var(--primary-rgb),.06) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(96,165,250,.06) 0%, transparent 50%),
    linear-gradient(180deg, rgba(var(--primary-rgb),.02) 0%, var(--white) 100%);
}

/* Decorative floating shapes */
.err404-shapes{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.err404-shape{
  position:absolute;
  border-radius:50%;
  opacity:.07;
}
.err404-shape-1{
  width:300px;height:300px;
  background:var(--primary);
  top:-80px;right:-60px;
  animation:err404Float 8s ease-in-out infinite;
}
.err404-shape-2{
  width:180px;height:180px;
  background:var(--accent);
  bottom:-40px;left:-30px;
  animation:err404Float 6s ease-in-out 1s infinite reverse;
}
.err404-shape-3{
  width:80px;height:80px;
  background:var(--primary);
  top:30%;left:8%;
  animation:err404Float 7s ease-in-out 2s infinite;
}
.err404-shape-4{
  width:50px;height:50px;
  background:var(--accent);
  top:20%;right:12%;
  border-radius:12px;
  transform:rotate(45deg);
  animation:err404Float 5s ease-in-out .5s infinite reverse;
}
.err404-shape-5{
  width:120px;height:120px;
  background:var(--primary-dark);
  bottom:10%;right:5%;
  animation:err404Float 9s ease-in-out 3s infinite;
}
@keyframes err404Float{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-20px) scale(1.05)}
}

/* Content wrapper */
.err404-content{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  max-width:560px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) both;
}
@keyframes err404FadeUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* === 4 0 4 Number === */
.err404-number-wrap{
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:20px;
  user-select:none;
}
.err404-digit{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:8rem;
  font-weight:900;
  line-height:1;
  background:var(--gradient-cahya);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  text-shadow:none;
  animation:err404DigitPulse 3s ease-in-out infinite;
}
.err404-digit-1{animation-delay:0s}
.err404-digit-2{animation-delay:.3s}
@keyframes err404DigitPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.04)}
}

/* Compass icon in the middle */
.err404-digit-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:96px;height:96px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  border-radius:50%;
  box-shadow:
    0 8px 32px rgba(var(--primary-rgb),.25),
    0 0 0 6px rgba(var(--primary-rgb),.1),
    0 0 0 12px rgba(var(--primary-rgb),.05);
  margin:0 6px;
  position:relative;
}
.err404-compass{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  font-size:2.5rem;
  animation:err404Spin 4s linear infinite;
}
@keyframes err404Spin{
  0%{transform:rotate(0deg)}
  25%{transform:rotate(90deg)}
  50%{transform:rotate(180deg)}
  75%{transform:rotate(270deg)}
  100%{transform:rotate(360deg)}
}

/* === Subtitle === */
.err404-subtitle{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .2s both;
}
.err404-line{
  width:50px;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  border-radius:2px;
}
.err404-subtitle-text{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.35rem;
  font-weight:700;
  color:var(--primary-darker);
  letter-spacing:-.02em;
}

/* Description */
.err404-desc{
  font-size:.95rem;
  line-height:1.7;
  color:var(--text-muted);
  max-width:440px;
  margin:0 0 32px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .35s both;
}

/* === Action Buttons === */
.err404-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  margin-bottom:28px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .5s both;
}
.err404-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 28px;
  border-radius:50px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  text-decoration:none;
  border:none;
  outline:none;
  position:relative;
  overflow:hidden;
}
.err404-btn::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  transition:opacity .3s;
}
.err404-btn:hover::before{opacity:1}

/* Primary button */
.err404-btn-primary{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:var(--white);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.25);
}
.err404-btn-primary::before{
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%);
}
.err404-btn-primary:hover{
  color:var(--white);
  box-shadow:0 6px 24px rgba(var(--primary-rgb),.35);
  transform:translateY(-2px);
}
.err404-btn-primary i{font-size:1rem}

/* Outline button */
.err404-btn-outline{
  background:var(--white);
  color:var(--primary);
  border:2px solid rgba(var(--primary-rgb),.2);
  padding:10px 26px;
}
.err404-btn-outline::before{
  background:rgba(var(--primary-rgb),.05);
}
.err404-btn-outline:hover{
  color:var(--primary-dark);
  border-color:var(--primary);
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.12);
}

/* === Hint === */
.err404-hint{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:linear-gradient(135deg,rgba(96,165,250,.08) 0%,rgba(var(--primary-rgb),.06) 100%);
  border:1px solid rgba(96,165,250,.15);
  border-radius:14px;
  padding:12px 22px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .65s both;
}
.err404-hint i{
  color:var(--accent);
  font-size:1.1rem;
  flex-shrink:0;
}
.err404-hint span{
  font-size:.82rem;
  color:var(--text-muted);
  line-height:1.5;
}

/* === Responsive === */
@media(max-width:767px){
  .err404-wrap{min-height:420px;padding:40px 16px 60px}
  .err404-digit{font-size:5.5rem}
  .err404-digit-icon{width:68px;height:68px}
  .err404-compass{font-size:1.8rem}
  .err404-subtitle-text{font-size:1.1rem}
  .err404-line{width:30px}
  .err404-desc{font-size:.88rem}
  .err404-actions{gap:10px}
  .err404-btn{padding:10px 22px;font-size:.85rem}
  .err404-btn-outline{padding:8px 20px}
  .err404-shape-1{width:180px;height:180px}
  .err404-shape-2{width:120px;height:120px}
}
@media(max-width:479px){
  .err404-wrap{min-height:380px;padding:30px 12px 50px}
  .err404-digit{font-size:4rem}
  .err404-digit-icon{width:52px;height:52px;margin:0 2px}
  .err404-compass{font-size:1.4rem}
  .err404-subtitle{gap:10px;margin-bottom:12px}
  .err404-subtitle-text{font-size:.95rem}
  .err404-line{width:20px}
  .err404-desc{font-size:.82rem;margin-bottom:24px}
  .err404-actions{flex-direction:column;gap:8px;width:100%}
  .err404-btn{width:100%;justify-content:center;padding:11px 20px}
  .err404-btn-outline{width:100%;justify-content:center;padding:9px 18px}
  .err404-hint{padding:10px 16px}
  .err404-hint span{font-size:.78rem}
}

/* ========== GALERI ========== */
.galeri-header{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:28px;
  padding-bottom:20px;
  border-bottom:2px solid #e8f0e8;
}
.galeri-header-icon{
  width:52px;height:52px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.35rem;
  flex-shrink:0;
  box-shadow:0 4px 14px rgba(47,133,90,.25);
}
.galeri-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;font-weight:800;
  color:var(--text-dark);
  margin:0;line-height:1.3;
}
.galeri-subtitle{
  color:var(--text-muted);
  font-size:.88rem;margin:2px 0 0;
}

/* Loading */
.galeri-loading{
  text-align:center;padding:3rem;
  grid-column:1/-1;
}
.galeri-loading i{
  font-size:1.5rem;color:var(--primary);
}
.galeri-loading p{
  margin-top:.75rem;color:var(--text-muted);font-size:.9rem;
}

/* Grid */
.galeri-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

/* Card */
.galeri-card{
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  border:1px solid #e8efe8;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  transition:all .3s ease;
}
.galeri-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 28px rgba(47,133,90,.13);
  border-color:var(--primary);
}
.galeri-card-link{
  display:block;
  text-decoration:none !important;
  color:inherit;
}
.galeri-card-img{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  background:#f0f5f0;
}
.galeri-card-img img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .45s ease, filter .35s ease;
}
.galeri-card:hover .galeri-card-img img{
  transform:scale(1.08);
  filter:brightness(.85);
}

/* Hover overlay */
.galeri-card-overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:rgba(47,133,90,.5);
  opacity:0;
  transition:opacity .35s ease;
}
.galeri-card:hover .galeri-card-overlay{
  opacity:1;
}
.galeri-card-overlay i{
  font-size:1.6rem;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.25);
}
.galeri-card-overlay span{
  color:#fff;
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.3px;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}

/* Card info / caption */
.galeri-card-info{
  padding:14px 16px;
}
.galeri-card-info h4{
  margin:0;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:var(--text-dark);
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition:color .25s ease;
}
.galeri-card:hover .galeri-card-info h4{
  color:var(--primary);
}

/* Empty state */
.galeri-empty{
  grid-column:1/-1;
  text-align:center;
  padding:3rem 2rem;
}
.galeri-empty img{
  width:140px;height:auto;
  opacity:.55;
  margin:0 auto 20px;
  display:block;
}
.galeri-empty h3{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;
  font-weight:700;
  color:var(--text-dark);
  margin:0 0 8px;
}
.galeri-empty p{
  color:var(--text-muted);
  font-size:.9rem;
  max-width:380px;
  margin:0 auto;
  line-height:1.6;
}

/* ---- Galeri Responsive ---- */
@media(max-width:991px){
  .galeri-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .galeri-title{font-size:1.25rem;}
  .galeri-header-icon{width:44px;height:44px;font-size:1.15rem;border-radius:12px;}
}
@media(max-width:575px){
  .galeri-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .galeri-header{gap:12px;margin-bottom:20px;padding-bottom:16px;}
  .galeri-title{font-size:1.1rem;}
  .galeri-header-icon{width:40px;height:40px;font-size:1rem;border-radius:10px;}
  .galeri-card{border-radius:10px;}
  .galeri-card-info{padding:10px 12px;}
  .galeri-card-info h4{font-size:.84rem;}
  .galeri-card-overlay i{font-size:1.3rem;}
  .galeri-card-overlay span{font-size:.78rem;}
}

/* ========== LAPAK DESA ========== */
.lapak-header{
  display:flex;align-items:center;gap:16px;
  margin-bottom:24px;padding-bottom:18px;
  border-bottom:2px solid #e8f0e8;
}
.lapak-header-icon{
  width:52px;height:52px;border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.35rem;flex-shrink:0;
  box-shadow:0 4px 14px rgba(47,133,90,.25);
}
.lapak-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;font-weight:800;color:var(--text-dark);
  margin:0;line-height:1.3;
}
.lapak-subtitle{color:var(--text-muted);font-size:.88rem;margin:2px 0 0;}

/* Filter Bar */
.lapak-filter{
  background:#f7faf7;border:1px solid #e8f0e8;
  border-radius:14px;padding:16px 20px;margin-bottom:24px;
}
.lapak-filter-inner{
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;
}
.lapak-filter-field{
  position:relative;flex:1;min-width:180px;
}
.lapak-filter-field > i{
  position:absolute;left:12px;top:50%;transform:translateY(-50%);
  color:var(--primary);font-size:.85rem;z-index:2;pointer-events:none;
}
.lapak-filter-field .form-control,
.lapak-filter-field .select2-container .select2-selection--single{
  padding-left:36px !important;border-radius:10px !important;
  border:1px solid #d4e4d4 !important;height:42px !important;
  font-size:.9rem;
}
.lapak-filter-search{flex:1.5;}
.lapak-btn-cari{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;border:none;border-radius:10px;padding:10px 22px;
  font-size:.9rem;font-weight:600;cursor:pointer;
  transition:all .25s ease;white-space:nowrap;
}
.lapak-btn-cari:hover{background:var(--primary-darker);transform:translateY(-1px);box-shadow:0 4px 12px rgba(47,133,90,.25);}
.lapak-btn-reset{
  background:#fff;color:var(--text-muted);border:1px solid #d4e4d4;
  border-radius:10px;padding:10px 18px;font-size:.9rem;font-weight:600;
  cursor:pointer;transition:all .25s ease;white-space:nowrap;
}
.lapak-btn-reset:hover{border-color:var(--primary);color:var(--primary);}

/* Loading */
.lapak-loading{text-align:center;padding:3rem;grid-column:1/-1;}
.lapak-loading i{font-size:1.5rem;color:var(--primary);}
.lapak-loading p{margin-top:.75rem;color:var(--text-muted);font-size:.9rem;}

/* Product Grid */
.lapak-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

/* Product Card */
.lapak-card{
  border-radius:14px;overflow:hidden;
  background:#fff;border:1px solid #e8efe8;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  transition:all .3s ease;
  display:flex;flex-direction:column;
}
.lapak-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 28px rgba(47,133,90,.13);
  border-color:var(--primary);
}

/* Card Image */
.lapak-card-img{
  position:relative;overflow:hidden;
  aspect-ratio:4/3;background:#f0f5f0;
}
.lapak-card-img > img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease;
}
.lapak-card:hover .lapak-card-img > img{transform:scale(1.05);}

/* Image Slider */
.lapak-slider{position:relative;width:100%;height:100%;}
.lapak-slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity .4s ease;
}
.lapak-slide.active{opacity:1;position:relative;}
.lapak-slide img{width:100%;height:100%;object-fit:cover;}
.lapak-slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.85);border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:3;font-size:.7rem;color:var(--text-dark);
  box-shadow:0 2px 8px rgba(0,0,0,.15);
  opacity:0;transition:opacity .3s ease;
}
.lapak-card:hover .lapak-slider-btn{opacity:1;}
.lapak-slider-btn.prev{left:8px;}
.lapak-slider-btn.next{right:8px;}
.lapak-slider-btn:hover{background:#fff;}
.lapak-slider-dots{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  display:flex;gap:5px;z-index:3;
}
.lapak-slider-dots .dot{
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.5);transition:all .3s ease;
}
.lapak-slider-dots .dot.active{background:#fff;transform:scale(1.3);}

/* Badges */
.lapak-badge-diskon{
  position:absolute;top:10px;left:10px;z-index:2;
  background:linear-gradient(135deg,#e53e3e,#c53030);color:#fff;
  font-size:.72rem;font-weight:700;padding:4px 10px;
  border-radius:8px;letter-spacing:.3px;
  box-shadow:0 2px 8px rgba(229,62,62,.3);
}
.lapak-badge-kategori{
  position:absolute;top:10px;right:10px;z-index:2;
  background:rgba(255,255,255,.92);color:var(--primary);
  font-size:.72rem;font-weight:700;padding:4px 10px;
  border-radius:8px;backdrop-filter:blur(4px);
  border:1px solid rgba(47,133,90,.15);
}

/* Card Body */
.lapak-card-body{padding:16px;flex:1;display:flex;flex-direction:column;}
.lapak-card-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem;font-weight:700;color:var(--text-dark);
  margin:0 0 8px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
  transition:color .25s ease;
}
.lapak-card:hover .lapak-card-title{color:var(--primary);}

/* Price */
.lapak-card-price{
  display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:8px;
}
.price-now{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.1rem;font-weight:800;color:var(--primary);
}
.price-old{
  font-size:.78rem;color:#999;text-decoration:line-through;
}
.price-unit{font-size:.78rem;color:var(--text-muted);}

.lapak-card-desc{
  font-size:.82rem;color:var(--text-secondary);
  line-height:1.55;margin:0 0 10px;flex:1;
}

/* Seller */
.lapak-card-seller{
  display:flex;align-items:center;gap:6px;
  font-size:.82rem;color:var(--text-muted);
  padding-top:10px;border-top:1px solid #f0f5f0;
}
.lapak-card-seller i.fa-user-circle{color:var(--primary);font-size:1rem;}
.lapak-card-seller .verified{color:#38a169;font-size:.7rem;}

/* Card Footer: Buttons */
.lapak-card-footer{
  display:flex;gap:8px;padding:0 16px 16px;
}
.lapak-btn-wa{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;
  border:none;border-radius:10px;padding:10px 16px;
  font-size:.85rem;font-weight:600;text-decoration:none !important;
  transition:all .25s ease;cursor:pointer;
}
.lapak-btn-wa:hover{background:#128c7e;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,211,102,.3);}
.lapak-btn-lokasi{
  width:42px;height:42px;border-radius:10px;
  background:#f0f5f0;border:1px solid #d4e4d4;
  display:flex;align-items:center;justify-content:center;
  color:var(--primary);font-size:.95rem;cursor:pointer;
  transition:all .25s ease;
}
.lapak-btn-lokasi:hover{background:var(--primary);color:#fff;border-color:var(--primary);}

/* Empty State */
.lapak-empty{grid-column:1/-1;text-align:center;padding:3rem 2rem;}
.lapak-empty img{width:140px;height:auto;opacity:.55;margin:0 auto 20px;display:block;}
.lapak-empty h3{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;font-weight:700;color:var(--text-dark);margin:0 0 8px;
}
.lapak-empty p{color:var(--text-muted);font-size:.9rem;max-width:380px;margin:0 auto;line-height:1.6;}

/* Modal Lokasi (custom, no Bootstrap JS) */
.lapak-modal-overlay{
  position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
  backdrop-filter:blur(3px);
}
.lapak-modal-overlay.active{opacity:1;visibility:visible;}
.lapak-modal{
  background:#fff;border-radius:16px;
  width:90%;max-width:600px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  transform:translateY(20px) scale(.97);
  transition:transform .35s ease;
  overflow:hidden;
}
.lapak-modal-overlay.active .lapak-modal{
  transform:translateY(0) scale(1);
}
.lapak-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 24px;border-bottom:1px solid #e8f0e8;
}
.lapak-modal-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.1rem;font-weight:700;color:var(--text-dark);
  margin:0;
}
.lapak-modal-close{
  width:36px;height:36px;border-radius:10px;
  background:#f0f5f0;border:none;
  font-size:1.3rem;color:var(--text-muted);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .2s ease;
}
.lapak-modal-close:hover{background:#e8efe8;color:var(--primary);}
.lapak-modal-body{padding:20px 24px 24px;}

/* ---- Lapak Responsive ---- */
@media(max-width:991px){
  .lapak-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .lapak-title{font-size:1.25rem;}
  .lapak-header-icon{width:44px;height:44px;font-size:1.15rem;border-radius:12px;}
  .lapak-filter-field{min-width:140px;}
}
@media(max-width:575px){
  .lapak-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .lapak-header{gap:12px;margin-bottom:18px;padding-bottom:14px;}
  .lapak-title{font-size:1.1rem;}
  .lapak-header-icon{width:40px;height:40px;font-size:1rem;border-radius:10px;}
  .lapak-filter{padding:12px 14px;border-radius:10px;}
  .lapak-filter-inner{gap:8px;}
  .lapak-filter-field{min-width:100%;flex-basis:100%;}
  .lapak-btn-cari,.lapak-btn-reset{padding:10px 16px;font-size:.85rem;flex:1;}
  .lapak-card{border-radius:10px;}
  .lapak-card-body{padding:12px;}
  .lapak-card-title{font-size:.85rem;}
  .price-now{font-size:.95rem;}
  .lapak-card-footer{padding:0 12px 12px;}
  .lapak-btn-wa{padding:9px 12px;font-size:.8rem;border-radius:8px;}
  .lapak-btn-lokasi{width:38px;height:38px;border-radius:8px;}
  /* Modal responsive */
  .lapak-modal{width:95%;max-width:none;border-radius:12px;}
  .lapak-modal-header{padding:14px 16px;}
  .lapak-modal-title{font-size:1rem;}
  .lapak-modal-body{padding:14px 16px 16px;}
}

/* ========== MOBILE MENU ACTIVE STATE ========== */
.mobile-menu-list li.mob-active > a{
  color:var(--primary);
  font-weight:700;
  background:var(--primary-50);
  border-radius:var(--radius);
}

/* ========== STATISTIK / DATA STATISTIK ========== */

/* Layout */
.stat-layout{
  display:flex;
  gap:28px;
  align-items:flex-start;
}
.stat-sidebar{
  width:300px;
  flex-shrink:0;
  position:sticky;
  top:80px;
}
.stat-main{
  flex:1;
  min-width:0;
  background:var(--white);
  border-radius:var(--radius-xl);
  padding:28px;
  box-shadow:none;
  border:none;
}

/* ── DPT Page ── */
.dpt-page-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:24px;
  padding:18px 22px;
  background:linear-gradient(135deg,#D97706 0%,#92400E 60%,#78350F 100%);
  border-radius:14px;
  position:relative;overflow:hidden;
  box-shadow:0 6px 24px rgba(217,119,6,.25)
}
.dpt-page-header::before{content:'';position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.dpt-header-left{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.dpt-header-icon{
  width:44px;height:44px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);
  border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:18px;color:#FEF3C7;flex-shrink:0
}
.dpt-header-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:800;color:#fff;margin:0;line-height:1.3}
.dpt-header-sub{font-size:.75rem;color:rgba(255,255,255,.70);margin:2px 0 0}

/* Table */
.dpt-table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border);margin-bottom:16px}
.dpt-table{width:100%;border-collapse:collapse;font-size:.84rem;table-layout:fixed}
.dpt-table th:nth-child(1),.dpt-table td:nth-child(1){width:52px}
.dpt-table th:nth-child(3),.dpt-table td:nth-child(3){width:72px}
.dpt-table th:nth-child(4),.dpt-table td:nth-child(4){width:100px}
.dpt-table th:nth-child(5),.dpt-table td:nth-child(5){width:100px}
.dpt-table th:nth-child(6),.dpt-table td:nth-child(6){width:100px}
.dpt-th{padding:13px 20px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#A16207;background:#FFFBEB;border-bottom:2px solid #FDE68A;text-align:left}
.dpt-th-center{text-align:center!important}
.dpt-th-right{text-align:right!important}
.dpt-td{padding:12px 20px;color:var(--text-body);border-bottom:1px solid var(--border);transition:background .15s;vertical-align:middle;text-align:left}
.dpt-td-center{text-align:center!important;font-weight:600;color:var(--primary)}
.dpt-td-right{text-align:right!important;font-weight:600;color:var(--primary)}
.dpt-table tbody tr:last-child .dpt-td{border-bottom:none}
.dpt-table tbody tr:hover .dpt-td{background:#FFFBEB}
.dpt-table tbody td:nth-child(1){text-align:center;color:var(--text-muted)}
.dpt-tr-total{background:linear-gradient(135deg,#92400E,#78350F)}
.dpt-td-total-label{padding:12px 16px;font-weight:800;color:#FEF3C7;letter-spacing:.04em;font-size:.82rem}
.dpt-tr-total .dpt-td{color:#fff;font-weight:700;font-size:.85rem;border-bottom:none}

/* Info bar */
.dpt-info-bar{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.80rem;color:var(--primary-darker);font-weight:600;
  background:var(--primary-50);border:1px solid var(--primary-light);
  border-radius:var(--radius);padding:8px 14px
}
.dpt-info-bar i{color:var(--primary);font-size:.80rem}

/* ========== STATISTIK PAGE — Title, Filter, Chart, Table, DataTables ========== */

/* Breadcrumb */
.breadcrumb-cahya{margin-bottom:12px}
.breadcrumb-cahya ol{display:flex;align-items:center;gap:6px;flex-wrap:wrap;list-style:none;font-size:.78rem;color:var(--text-muted)}
.breadcrumb-cahya ol li+li::before{content:'›';margin-right:6px;color:var(--gray-400)}
.breadcrumb-cahya ol li a{color:var(--primary);text-decoration:none}
.breadcrumb-cahya ol li a:hover{text-decoration:underline}

/* Page Title */
.stat-page-title{margin-bottom:20px;padding-bottom:14px;border-bottom:3px solid var(--primary-light)}
.stat-page-title h1{font-size:1.25rem;font-weight:800;color:var(--text-heading);display:flex;align-items:center;gap:8px}

/* Year Filter Bar */
.stat-filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:20px;background:var(--primary-50);border:1px solid var(--primary-light);border-radius:var(--radius);padding:10px 16px}
.stat-filter-bar label{font-size:.80rem;font-weight:600;color:var(--primary-darker);white-space:nowrap;display:flex;align-items:center;gap:5px}
.stat-filter-select{height:34px;padding:0 12px;border:1.5px solid var(--primary-light);border-radius:var(--radius);font-size:.82rem;color:var(--text-body);background:#fff;cursor:pointer;outline:none;min-width:120px}
.stat-filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(217,119,6,.12)}

/* Chart Section */
.stat-chart-section{background:transparent;border-radius:0;border:none;overflow:visible;margin-bottom:24px;box-shadow:none}
.stat-chart-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap;margin-bottom:8px}
.stat-chart-header h2{font-size:.92rem;font-weight:700;color:var(--text-heading);display:flex;align-items:center;gap:7px;margin:0}
.stat-chart-header h2 i{color:var(--primary);font-size:.85rem}
.stat-chart-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.stat-chart-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;font-size:.75rem;font-weight:600;border-radius:var(--radius);border:1.5px solid var(--border);background:#fff;color:var(--text-body);cursor:pointer;transition:all .2s;text-decoration:none;white-space:nowrap}
.stat-chart-btn:hover{border-color:var(--primary);color:var(--primary)}
.stat-chart-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.stat-chart-btn-accent{background:var(--primary);color:#fff;border-color:var(--primary)}
.stat-chart-btn-accent:hover{background:var(--primary-dark);color:#fff;border-color:var(--primary-dark)}
.stat-chart-btn-outline{background:#fff;color:var(--primary);border-color:var(--primary-light)}
.stat-chart-btn-outline:hover{background:var(--primary-50);border-color:var(--primary)}
.stat-chart-wrap{padding:16px 0;min-height:260px}

/* Table Section */
.stat-table-section{background:transparent;border-radius:0;border:none;overflow:visible;margin-bottom:16px;box-shadow:none}
.stat-table-header{display:flex;align-items:center;padding:0 0 12px;border-bottom:1px solid var(--border);margin-bottom:8px}
.stat-table-header h2{font-size:.92rem;font-weight:700;color:var(--text-heading);display:flex;align-items:center;gap:7px;margin:0}
.stat-table-header h2 i{color:var(--primary);font-size:.85rem}
.stat-table-wrap{overflow-x:auto;padding:0}
.stat-table{width:100%;border-collapse:collapse;font-size:.83rem}
.stat-table thead th{padding:11px 14px;font-size:.70rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#111 !important;background:#FEF3C7 !important;border-bottom:2px solid #FCD34D !important;text-align:left;white-space:nowrap}
.stat-table tbody td{padding:10px 14px;color:var(--text-body);border-bottom:1px solid var(--border);vertical-align:middle}
.stat-table tbody tr:last-child td{border-bottom:none}
.stat-table tbody tr:hover td{background:#FFFBEB}
.stat-table tfoot td{padding:10px 14px;font-weight:700;background:linear-gradient(135deg,#92400E,#78350F);color:#fff;font-size:.82rem}
.stat-update-info{padding:8px 0 12px;font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;gap:5px}
.stat-update-info i{color:var(--primary-soft);font-size:.70rem}
.stat-table-actions{display:flex;align-items:center;gap:8px;padding:12px 0;flex-wrap:wrap}

/* ========== DATATABLES — Tema Cahya (Golden Amber) ========== */
/* Wrapper */
.dataTables_wrapper{padding:0;font-size:.83rem;color:var(--text-body)}

/* Top Controls: Tampilkan + Cari */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter{
  margin-bottom:14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.80rem;
  font-weight:600;
  color:var(--text-muted);
  margin:0;
  white-space:nowrap;
}
/* "Tampilkan" select dropdown */
.dataTables_wrapper .dataTables_length select{
  height:34px;
  padding:0 10px;
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  font-size:.82rem;
  color:var(--text-body);
  background:#fff;
  cursor:pointer;
  outline:none;
  transition:border .2s;
  min-width:70px;
}
.dataTables_wrapper .dataTables_length select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(217,119,6,.12);
}
/* "Cari" input */
.dataTables_wrapper .dataTables_filter input{
  height:34px;
  padding:0 12px;
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  font-size:.82rem;
  color:var(--text-body);
  background:#fff;
  outline:none;
  transition:border .2s;
  min-width:200px;
}
.dataTables_wrapper .dataTables_filter input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(217,119,6,.12);
}
/* Align filter to right */
.dataTables_wrapper .dataTables_filter{
  justify-content:flex-end;
}
/* Top row flex layout */
.dataTables_wrapper .row:first-child,
.dataTables_wrapper>.row:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
}
.dataTables_wrapper .row:first-child .col-sm-12,
.dataTables_wrapper>.row:first-child .col-sm-12{
  width:auto!important;
  float:none!important;
  flex:none;
  padding:0;
}
/* Bottom row: info + paginate */
.dataTables_wrapper .row:last-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  border-top:1px solid var(--border);
  margin-top:4px;
  padding-top:4px;
}
.dataTables_wrapper .row:last-child .col-sm-12{
  width:auto!important;
  float:none!important;
  flex:none;
  padding:0;
}
/* Info: "Menampilkan X sampai Y dari Z entri" */
.dataTables_wrapper .dataTables_info{
  font-size:.78rem;
  color:var(--text-muted);
  padding:8px 0;
}
/* Pagination */
.dataTables_wrapper .dataTables_paginate{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  padding:8px 0;
}
.dataTables_wrapper .dataTables_paginate .paginate_button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:34px;
  padding:0 10px;
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  font-size:.80rem;
  font-weight:600;
  color:var(--text-body);
  background:#fff;
  cursor:pointer;
  transition:all .2s;
  text-decoration:none;
  line-height:1;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{
  background:var(--primary-50);
  border-color:var(--primary);
  color:var(--primary);
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{
  opacity:.45;
  cursor:default;
  background:#fff;
  border-color:var(--border);
  color:var(--text-muted);
}
/* Processing indicator */
.dataTables_wrapper .dataTables_processing{
  background:rgba(255,255,255,.9);
  border:1px solid var(--border);
  border-radius:var(--radius);
  color:var(--primary);
  font-size:.80rem;
  font-weight:600;
  padding:8px 20px;
}
/* Bottom row: info + paginate */
.dataTables_wrapper .row:last-child,
.dataTables_wrapper>.row:last-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  border-top:1px solid var(--border);
  padding-top:12px;
  margin-top:4px;
}

/* --- Sidenav Box --- */
.stat-nav-box{
  background:var(--white);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
}
.stat-nav-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px 20px;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%);
  color:var(--white);
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:700;
}
.stat-nav-header i{font-size:1rem;opacity:.85}
.stat-nav-body{padding:8px 0}

/* Accordion groups */
.stat-nav-group{border-bottom:1px solid var(--border)}
.stat-nav-group:last-child{border-bottom:none}
.stat-nav-group-btn{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:14px 18px;
  background:transparent;
  border:none;
  cursor:pointer;
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:600;
  color:var(--text-heading);
  transition:all .2s;
  text-align:left;
}
.stat-nav-group-btn:hover{
  background:var(--primary-50);
  color:var(--primary);
}
.stat-nav-group.is-open .stat-nav-group-btn{
  color:var(--primary);
  background:var(--primary-50);
}
.stat-nav-group-icon{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  border-radius:8px;
  background:var(--primary-50);
  color:var(--primary);
  font-size:.8rem;
  flex-shrink:0;
  transition:all .2s;
}
.stat-nav-group.is-open .stat-nav-group-icon{
  background:var(--primary);
  color:var(--white);
}
.stat-nav-group-label{flex:1}
.stat-nav-arrow{
  font-size:10px;
  color:var(--text-muted);
  transition:transform .25s ease;
  margin-left:auto;
}
.stat-nav-group.is-open .stat-nav-arrow{
  transform:rotate(180deg);
  color:var(--primary);
}

/* Sub links */
.stat-nav-sub{
  display:none;
  list-style:none;
  margin:0;
  padding:0 12px 10px 12px;
}
.stat-nav-sub li a{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  font-size:.84rem;
  color:var(--text-body);
  border-radius:var(--radius);
  transition:all .2s;
  text-decoration:none;
}
.stat-nav-sub li a i{
  font-size:9px;
  color:var(--gray-400);
  transition:all .2s;
}
.stat-nav-sub li a:hover{
  background:var(--primary-50);
  color:var(--primary);
  padding-left:18px;
}
.stat-nav-sub li a:hover i{color:var(--primary)}
.stat-nav-sub li a.active{
  background:var(--primary);
  color:var(--white);
  font-weight:600;
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.stat-nav-sub li a.active i{color:var(--white)}

/* --- Page Title --- */
.stat-page-title{
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:2px solid var(--primary-50);
}
.stat-page-title h1{
  font-family:var(--font-heading);
  font-size:1.5rem;
  font-weight:800;
  color:var(--text-heading);
  margin:0;
}

/* --- Year Filter --- */
.stat-filter-bar{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
  padding:12px 18px;
  background:var(--primary-50);
  border-radius:var(--radius-lg);
  border:1px solid rgba(var(--primary-rgb),.1);
}
.stat-filter-bar label{
  font-size:.85rem;
  font-weight:600;
  color:var(--primary-dark);
  display:flex;align-items:center;gap:6px;
  white-space:nowrap;
}
.stat-filter-select{
  padding:8px 36px 8px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  font-size:.85rem;
  font-family:var(--font-body);
  color:var(--text-body);
  background:var(--white);
  outline:none;
  cursor:pointer;
  appearance:auto;
  min-width:140px;
}
.stat-filter-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);
}

/* --- Chart Section --- */
.stat-chart-section{
  margin-bottom:28px;
  background:var(--gray-50);
  border-radius:var(--radius-lg);
  padding:20px;
  border:1px solid var(--border);
}
.stat-chart-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:16px;
}
.stat-chart-header h2{
  font-family:var(--font-heading);
  font-size:1.1rem;
  font-weight:700;
  color:var(--text-heading);
  display:flex;align-items:center;gap:8px;
  margin:0;
}
.stat-chart-header h2 i{color:var(--primary);font-size:.95rem}
.stat-chart-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.stat-chart-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:8px 16px;
  font-size:.8rem;
  font-weight:600;
  font-family:var(--font-heading);
  border:1.5px solid var(--border);
  border-radius:var(--radius-full);
  background:var(--white);
  color:var(--text-body);
  cursor:pointer;
  transition:all .2s;
  text-decoration:none;
  white-space:nowrap;
}
.stat-chart-btn:hover{
  border-color:var(--primary);
  color:var(--primary);
}
/* Switch btn active */
.stat-switch-btn.active{
  background:var(--primary);
  color:var(--white);
  border-color:var(--primary);
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.stat-chart-btn-accent{
  background:var(--accent);
  color:var(--dark);
  border-color:var(--accent);
}
.stat-chart-btn-accent:hover{
  background:var(--accent-dark);
  color:#fff;
  border-color:var(--accent-dark);
}
.stat-chart-btn-outline{
  background:var(--white);
  border-color:var(--border);
}
.stat-chart-btn-outline:hover{
  background:var(--primary-50);
  border-color:var(--primary);
  color:var(--primary);
}
.stat-chart-wrap{
  min-height:300px;
  border-radius:var(--radius);
  overflow:hidden;
}

/* --- Table Section --- */
.stat-table-section{
  margin-bottom:20px;
}
.stat-table-header{
  margin-bottom:14px;
}
.stat-table-header h2{
  font-family:var(--font-heading);
  font-size:1.1rem;
  font-weight:700;
  color:var(--text-heading);
  display:flex;align-items:center;gap:8px;
  margin:0;
}
.stat-table-header h2 i{color:var(--primary);font-size:.9rem}
.stat-table-wrap{
  overflow-x:auto;
  border-radius:var(--radius-lg);
  border:1px solid var(--border);
}
.stat-table{
  width:100%;
  border-collapse:collapse;
  font-size:.84rem;
}
.stat-table thead th{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary-darker));
  color:#fff;
  padding:10px 14px;
  font-weight:600;
  font-size:.8rem;
  text-align:center;
  border:1px solid rgba(255,255,255,.12);
  white-space:nowrap;
}
.stat-table tbody td{
  padding:9px 14px;
  border:1px solid var(--border);
  font-size:.83rem;
}
.stat-table tbody tr:nth-child(even){background:var(--gray-50)}
.stat-table tbody tr:hover{background:var(--primary-50)}
.stat-table tbody tr.more{display:none}
.stat-table .text-center{text-align:center}
.stat-table .text-left{text-align:left}
.stat-table .text-right{text-align:right}
.stat-update-info{
  font-size:.78rem;
  color:var(--text-muted);
  margin:10px 14px 0;
  padding:8px 0;
  display:flex;align-items:center;gap:5px;
}
.stat-update-info i{color:var(--primary);font-size:.7rem}
.stat-table-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
}

/* --- Statistik Responsive --- */
@media(max-width:991px){
  .stat-layout{flex-direction:column-reverse;gap:20px}
  .stat-sidebar{width:100%;position:static}
  .stat-main{padding:20px}
}
@media(max-width:767px){
  .stat-main{padding:16px}
  .stat-chart-header{flex-direction:column;align-items:flex-start;gap:10px}
  .stat-chart-actions{width:100%}
  .stat-chart-btn{padding:7px 12px;font-size:.78rem}
  .stat-page-title h1{font-size:1.25rem}
  .stat-filter-bar{flex-direction:column;align-items:flex-start;gap:8px}
  .stat-filter-select{width:100%}
}
@media(max-width:479px){
  .stat-main{padding:14px;border-radius:var(--radius-lg)}
  .stat-chart-section{padding:14px}
  .stat-chart-actions{gap:4px;flex-wrap:wrap}
  .stat-chart-btn{padding:6px 10px;font-size:.75rem;gap:3px}
  .stat-table{font-size:.78rem}
  .stat-table thead th{padding:8px 8px;font-size:.75rem}
  .stat-table tbody td{padding:7px 8px}
  .stat-table-actions{flex-direction:column;gap:8px}
  .stat-table-actions .stat-chart-btn{width:100%;justify-content:center}
}

/* ========== 404 ERROR PAGE ========== */
.err404-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:520px;
  padding:60px 24px 80px;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(47,133,90,.06) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(96,165,250,.06) 0%, transparent 50%),
    linear-gradient(180deg, rgba(47,133,90,.02) 0%, var(--white) 100%);
}
.err404-shapes{
  position:absolute;inset:0;pointer-events:none;overflow:hidden;
}
.err404-shape{position:absolute;border-radius:50%;opacity:.07}
.err404-shape-1{width:300px;height:300px;background:var(--primary);top:-80px;right:-60px;animation:err404Float 8s ease-in-out infinite}
.err404-shape-2{width:180px;height:180px;background:var(--accent);bottom:-40px;left:-30px;animation:err404Float 6s ease-in-out 1s infinite reverse}
.err404-shape-3{width:80px;height:80px;background:var(--primary);top:30%;left:8%;animation:err404Float 7s ease-in-out 2s infinite}
.err404-shape-4{width:50px;height:50px;background:var(--accent);top:20%;right:12%;border-radius:12px;transform:rotate(45deg);animation:err404Float 5s ease-in-out .5s infinite reverse}
.err404-shape-5{width:120px;height:120px;background:var(--primary-dark);bottom:10%;right:5%;animation:err404Float 9s ease-in-out 3s infinite}
@keyframes err404Float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-20px) scale(1.05)}}
.err404-content{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  text-align:center;max-width:560px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) both;
}
@keyframes err404FadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.err404-number-wrap{display:flex;align-items:center;gap:4px;margin-bottom:20px;user-select:none}
.err404-digit{
  font-family:'Plus Jakarta Sans',sans-serif;font-size:8rem;font-weight:900;line-height:1;
  background:var(--gradient-cahya);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:err404DigitPulse 3s ease-in-out infinite;
}
.err404-digit-1{animation-delay:0s}.err404-digit-2{animation-delay:.3s}
@keyframes err404DigitPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.err404-digit-icon{
  display:flex;align-items:center;justify-content:center;width:96px;height:96px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:50%;
  box-shadow:0 8px 32px rgba(47,133,90,.25),0 0 0 6px rgba(47,133,90,.1),0 0 0 12px rgba(47,133,90,.05);
  margin:0 6px;position:relative;
}
.err404-compass{display:flex;align-items:center;justify-content:center;color:var(--white);font-size:2.5rem;animation:err404Spin 4s linear infinite}
@keyframes err404Spin{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}
.err404-subtitle{display:flex;align-items:center;gap:16px;margin-bottom:16px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .2s both}
.err404-line{width:50px;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:2px}
.err404-subtitle-text{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.35rem;font-weight:700;color:var(--primary-darker);letter-spacing:-.02em}
.err404-desc{font-size:.95rem;line-height:1.7;color:var(--text-muted);max-width:440px;margin:0 0 32px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .35s both}
.err404-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:28px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .5s both}
.err404-btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:50px;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;
  transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;border:none;outline:none;
  position:relative;overflow:hidden;
}
.err404-btn::before{content:'';position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .3s}
.err404-btn:hover::before{opacity:1}
.err404-btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--white);box-shadow:0 4px 16px rgba(47,133,90,.25)}
.err404-btn-primary::before{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%)}
.err404-btn-primary:hover{color:var(--white);box-shadow:0 6px 24px rgba(47,133,90,.35);transform:translateY(-2px)}
.err404-btn-primary i{font-size:1rem}
.err404-btn-outline{background:var(--white);color:var(--primary);border:2px solid rgba(47,133,90,.2);padding:10px 26px}
.err404-btn-outline::before{background:rgba(47,133,90,.05)}
.err404-btn-outline:hover{color:var(--primary-dark);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px rgba(47,133,90,.12)}
.err404-hint{
  display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,rgba(96,165,250,.08) 0%,rgba(47,133,90,.06) 100%);
  border:1px solid rgba(96,165,250,.15);border-radius:14px;padding:12px 22px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .65s both;
}
.err404-hint i{color:var(--accent);font-size:1.1rem;flex-shrink:0}
.err404-hint span{font-size:.82rem;color:var(--text-muted);line-height:1.5}
@media(max-width:767px){
  .err404-wrap{min-height:420px;padding:40px 16px 60px}
  .err404-digit{font-size:5.5rem}
  .err404-digit-icon{width:68px;height:68px}
  .err404-compass{font-size:1.8rem}
  .err404-subtitle-text{font-size:1.1rem}
  .err404-line{width:30px}
  .err404-desc{font-size:.88rem}
  .err404-actions{gap:10px}
  .err404-btn{padding:10px 22px;font-size:.85rem}
  .err404-btn-outline{padding:8px 20px}
  .err404-shape-1{width:180px;height:180px}
  .err404-shape-2{width:120px;height:120px}
}
@media(max-width:479px){
  .err404-wrap{min-height:380px;padding:30px 12px 50px}
  .err404-digit{font-size:4rem}
  .err404-digit-icon{width:52px;height:52px;margin:0 2px}
  .err404-compass{font-size:1.4rem}
  .err404-subtitle{gap:10px;margin-bottom:12px}
  .err404-subtitle-text{font-size:.95rem}
  .err404-line{width:20px}
  .err404-desc{font-size:.82rem;margin-bottom:24px}
  .err404-actions{flex-direction:column;gap:8px;width:100%}
  .err404-btn{width:100%;justify-content:center;padding:11px 20px}
  .err404-btn-outline{width:100%;justify-content:center;padding:9px 18px}
  .err404-hint{padding:10px 16px}
  .err404-hint span{font-size:.78rem}
}

/* ========== ARSIP ARTIKEL ========== */
.arsip-header{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 60%,var(--primary-darker) 100%);
  border-radius:16px;
  padding:32px 28px 28px;
  margin-bottom:24px;
  position:relative;
  overflow:hidden;
  color:#fff;
}
.arsip-header::before{
  content:'';
  position:absolute;
  top:-30px;right:-30px;
  width:160px;height:160px;
  background:rgba(255,255,255,.06);
  border-radius:50%;
  pointer-events:none;
}
.arsip-header::after{
  content:'';
  position:absolute;
  bottom:-20px;left:40px;
  width:80px;height:80px;
  background:rgba(255,255,255,.04);
  border-radius:50%;
  pointer-events:none;
}
.arsip-header-text{position:relative;z-index:1}
.arsip-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.6rem;
  font-weight:800;
  color:#fff;
  margin:0 0 6px;
  display:flex;
  align-items:center;
  gap:10px;
}
.arsip-title i{
  font-size:1.3rem;
  opacity:.85;
}
.arsip-subtitle{
  font-size:.88rem;
  color:rgba(255,255,255,.78);
  margin:0;
}

/* Arsip Table */
.arsip-table-wrap{
  background:#fff;
  border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;
  margin-bottom:28px;
}
.arsip-table-inner{
  padding:20px;
}
.arsip-table-wrap table.dataTable{
  border-collapse:collapse;
  width:100%!important;
}
.arsip-table-wrap table.dataTable thead th,
.arsip-table-wrap table.dataTable thead td{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;
  font-size:.82rem;
  padding:12px 14px;
  border:none;
  text-transform:uppercase;
  letter-spacing:.3px;
  white-space:nowrap;
}
.arsip-table-wrap table.dataTable thead th:first-child{
  border-radius:10px 0 0 0;
}
.arsip-table-wrap table.dataTable thead th:last-child{
  border-radius:0 10px 0 0;
}
.arsip-table-wrap table.dataTable tbody td{
  padding:11px 14px;
  font-size:.84rem;
  color:#374151;
  border-bottom:1px solid #f0f0f0;
  vertical-align:middle;
}
.arsip-table-wrap table.dataTable tbody tr:hover td{
  background:#f7faf8;
}
.arsip-table-wrap table.dataTable tbody td a{
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  transition:color .2s;
}
.arsip-table-wrap table.dataTable tbody td a:hover{
  color:var(--primary-darker);
  text-decoration:underline;
}
/* DataTables controls */
.arsip-table-wrap .dataTables_wrapper{
  padding:0;
}
.arsip-table-wrap .dataTables_filter{
  margin-bottom:14px;
}
.arsip-table-wrap .dataTables_filter input{
  border:2px solid var(--border);
  border-radius:10px;
  padding:8px 14px;
  font-size:.84rem;
  transition:border-color .2s;
  outline:none;
}
.arsip-table-wrap .dataTables_filter input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(47,133,90,.1);
}
.arsip-table-wrap .dataTables_length select{
  border:2px solid var(--border);
  border-radius:8px;
  padding:6px 10px;
  font-size:.84rem;
}
.arsip-table-wrap .dataTables_info{
  font-size:.8rem;
  color:#6b7280;
  padding:12px 0 4px;
}
.arsip-table-wrap .dataTables_paginate{
  padding:8px 0 4px;
}
.arsip-table-wrap .dataTables_paginate .paginate_button{
  padding:6px 12px;
  border-radius:8px;
  font-size:.82rem;
  margin:0 2px;
  border:1px solid #e5e7eb!important;
  background:#fff!important;
  color:#374151!important;
  transition:all .2s;
}
.arsip-table-wrap .dataTables_paginate .paginate_button:hover{
  background:var(--primary-light)!important;
  color:var(--primary)!important;
  border-color:var(--primary)!important;
}
.arsip-table-wrap .dataTables_paginate .paginate_button.current{
  background:var(--primary)!important;
  color:#fff!important;
  border-color:var(--primary)!important;
  font-weight:700;
}
.arsip-table-wrap .dataTables_paginate .paginate_button.disabled{
  opacity:.4;
  cursor:not-allowed;
}
/* read count badge */
.arsip-read-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:#EFF6FF;
  color:var(--primary);
  font-weight:700;
  font-size:.78rem;
  padding:3px 10px;
  border-radius:20px;
}
.arsip-read-badge i{
  font-size:.7rem;
}
/* author badge */
.arsip-author{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:.82rem;
  color:#4b5563;
}
.arsip-author i{
  color:var(--primary);
  font-size:.7rem;
}
/* date format */
.arsip-date{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:.82rem;
  color:#6b7280;
  white-space:nowrap;
}
.arsip-date i{
  color:var(--primary);
  font-size:.7rem;
}
/* section divider for widgets */
.arsip-widget-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:8px 0 24px;
}
.arsip-widget-divider-line{
  flex:1;
  height:2px;
  background:linear-gradient(90deg,var(--primary-light),transparent);
  border-radius:2px;
}
.arsip-widget-divider-icon{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-light);
  color:var(--primary);
  border-radius:50%;
  font-size:.85rem;
}
/* Responsive Arsip */
@media(max-width:767px){
  .arsip-header{padding:24px 20px 20px;border-radius:12px;margin-bottom:18px}
  .arsip-title{font-size:1.3rem}
  .arsip-subtitle{font-size:.82rem}
  .arsip-table-inner{padding:14px}
  .arsip-table-wrap table.dataTable thead th,
  .arsip-table-wrap table.dataTable thead td{padding:10px 10px;font-size:.76rem}
  .arsip-table-wrap table.dataTable tbody td{padding:9px 10px;font-size:.8rem}
}
@media(max-width:575px){
  .arsip-header{padding:18px 16px 16px;border-radius:10px}
  .arsip-title{font-size:1.15rem;gap:8px}
  .arsip-title i{font-size:1.05rem}
  .arsip-table-inner{padding:10px}
  .arsip-table-wrap{border-radius:10px}
  .arsip-table-wrap table.dataTable thead th:first-child{border-radius:8px 0 0 0}
  .arsip-table-wrap table.dataTable thead th:last-child{border-radius:0 8px 0 0}
}

/* ========== INVENTARIS & PRODUK HUKUM ========== */
/* Shared cahya page header â€” reusable for multiple pages */
.cahya-page-header{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 60%,var(--primary-darker) 100%);
  border-radius:16px;
  padding:32px 28px 28px;
  margin-bottom:24px;
  position:relative;
  overflow:hidden;
  color:#fff;
}
.cahya-page-header::before{
  content:'';position:absolute;top:-30px;right:-30px;
  width:160px;height:160px;
  background:rgba(255,255,255,.06);border-radius:50%;pointer-events:none;
}
.cahya-page-header::after{
  content:'';position:absolute;bottom:-20px;left:40px;
  width:80px;height:80px;
  background:rgba(255,255,255,.04);border-radius:50%;pointer-events:none;
}
.cahya-page-header-text{position:relative;z-index:1}
.cahya-page-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.6rem;font-weight:800;color:#fff;
  margin:0 0 6px;display:flex;align-items:center;gap:10px;
}
.cahya-page-title i{font-size:1.3rem;opacity:.85}
.cahya-page-subtitle{font-size:.88rem;color:rgba(255,255,255,.78);margin:0}

/* Shared cahya table card */
.cahya-table-wrap{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.cahya-table-inner{padding:20px;overflow-x:auto}
.cahya-table-wrap table.dataTable{border-collapse:collapse;width:100%!important}
.cahya-table-wrap table.dataTable thead th,
.cahya-table-wrap table.dataTable thead td{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.78rem;padding:11px 12px;
  border:none;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;
  text-align:center;
}
.cahya-table-wrap table.dataTable thead th:first-child{border-radius:10px 0 0 0}
.cahya-table-wrap table.dataTable thead th:last-child{border-radius:0 10px 0 0}
/* multi-row header fix */
.cahya-table-wrap table.dataTable thead tr:not(:first-child) th{border-radius:0}
.cahya-table-wrap table.dataTable thead tr:not(:first-child) th:first-child{border-radius:0}
.cahya-table-wrap table.dataTable thead tr:not(:first-child) th:last-child{border-radius:0}
.cahya-table-wrap table.dataTable tbody td{
  padding:10px 12px;font-size:.82rem;color:#374151;
  border-bottom:1px solid #f0f0f0;vertical-align:middle;
}
.cahya-table-wrap table.dataTable tbody tr:hover td{background:#f7faf8}
.cahya-table-wrap table.dataTable tbody td a{
  color:var(--primary);font-weight:600;text-decoration:none;transition:color .2s;
}
.cahya-table-wrap table.dataTable tbody td a:hover{color:var(--primary-darker);text-decoration:underline}
.cahya-table-wrap table.dataTable tfoot th{
  background:#f7faf8;font-size:.82rem;font-weight:700;
  color:var(--primary-darker);padding:11px 12px;
  border-top:2px solid var(--primary-light);
}
/* DataTables controls */
.cahya-table-wrap .dataTables_wrapper{padding:0}
.cahya-table-wrap .dataTables_filter{margin-bottom:14px}
.cahya-table-wrap .dataTables_filter input{
  border:2px solid var(--border);border-radius:10px;
  padding:8px 14px;font-size:.84rem;transition:border-color .2s;outline:none;
}
.cahya-table-wrap .dataTables_filter input:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(47,133,90,.1);
}
.cahya-table-wrap .dataTables_length select{
  border:2px solid var(--border);border-radius:8px;padding:6px 10px;font-size:.84rem;
}
.cahya-table-wrap .dataTables_info{font-size:.8rem;color:#6b7280;padding:12px 0 4px}
.cahya-table-wrap .dataTables_paginate{padding:8px 0 4px}
.cahya-table-wrap .dataTables_paginate .paginate_button{
  padding:6px 12px;border-radius:8px;font-size:.82rem;margin:0 2px;
  border:1px solid #e5e7eb!important;background:#fff!important;
  color:#374151!important;transition:all .2s;
}
.cahya-table-wrap .dataTables_paginate .paginate_button:hover{
  background:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--primary)!important;
}
.cahya-table-wrap .dataTables_paginate .paginate_button.current{
  background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;font-weight:700;
}
.cahya-table-wrap .dataTables_paginate .paginate_button.disabled{opacity:.4;cursor:not-allowed}

/* Inventaris: summary cards grid */
.inv-summary-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:14px;margin-bottom:24px;
}
.inv-summary-card{
  background:#fff;border-radius:12px;padding:16px 18px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  display:flex;align-items:center;gap:12px;
  border-left:4px solid var(--primary);
  transition:transform .2s,box-shadow .2s;
}
.inv-summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.inv-summary-icon{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  background:var(--primary-light);color:var(--primary);border-radius:10px;
  font-size:1rem;flex-shrink:0;
}
.inv-summary-info{flex:1;min-width:0}
.inv-summary-label{font-size:.72rem;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-weight:600}
.inv-summary-value{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;font-weight:800;color:var(--primary-darker);margin-top:2px;
}

/* Inventaris: aksi button */
.inv-btn-detail{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 14px;border-radius:8px;font-size:.78rem;font-weight:600;
  background:var(--primary-light);color:var(--primary);
  border:1px solid transparent;text-decoration:none;
  transition:all .2s;white-space:nowrap;
}
.inv-btn-detail:hover{
  background:var(--primary);color:#fff;border-color:var(--primary);
}
.inv-btn-detail i{font-size:.7rem}

/* Produk Hukum: filter bar */
.prodhuk-filter-bar{
  display:flex;flex-wrap:wrap;gap:16px;
  margin-bottom:24px;
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  padding:20px;
}
.prodhuk-filter-group{flex:1;min-width:180px}
.prodhuk-filter-label{
  display:flex;align-items:center;gap:6px;
  font-size:.78rem;font-weight:700;color:var(--primary-darker);
  text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.prodhuk-filter-label i{font-size:.75rem;color:var(--primary)}
select.prodhuk-filter-select{
  width:100%;padding:10px 14px;
  border:2px solid var(--border);border-radius:10px;
  font-size:.84rem;color:#374151;background:#fff;
  transition:border-color .2s;outline:none;
  appearance:auto;
}
.prodhuk-filter-bar select.prodhuk-filter-select:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(47,133,90,.1);
}

/* Produk Hukum: action badge */
.prodhuk-btn-view{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 16px;border-radius:8px;font-size:.78rem;font-weight:600;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;border:none;cursor:pointer;
  transition:all .2s;white-space:nowrap;
}
.prodhuk-btn-view:hover{box-shadow:0 3px 10px rgba(47,133,90,.3);transform:translateY(-1px)}
.prodhuk-btn-view i{font-size:.72rem}

/* Badge for tahun/kategori */
.prodhuk-badge-tahun{
  display:inline-flex;align-items:center;gap:4px;
  background:#EFF6FF;color:var(--primary);
  font-weight:700;font-size:.78rem;
  padding:3px 10px;border-radius:20px;
}
.prodhuk-badge-kategori{
  display:inline-flex;align-items:center;gap:4px;
  background:#eff6ff;color:#1e40af;
  font-weight:600;font-size:.78rem;
  padding:3px 10px;border-radius:20px;
}

/* Responsive */
@media(max-width:767px){
  .cahya-page-header{padding:24px 20px 20px;border-radius:12px;margin-bottom:18px}
  .cahya-page-title{font-size:1.3rem}
  .cahya-page-subtitle{font-size:.82rem}
  .cahya-table-inner{padding:14px}
  .cahya-table-wrap table.dataTable thead th,
  .cahya-table-wrap table.dataTable thead td{padding:9px 8px;font-size:.72rem}
  .cahya-table-wrap table.dataTable tbody td{padding:8px 8px;font-size:.78rem}
  .inv-summary-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .prodhuk-filter-bar{padding:14px;gap:12px}
  .prodhuk-filter-group{min-width:140px}
}
@media(max-width:575px){
  .cahya-page-header{padding:18px 16px 16px;border-radius:10px}
  .cahya-page-title{font-size:1.15rem;gap:8px}
  .cahya-page-title i{font-size:1.05rem}
  .cahya-table-inner{padding:10px}
  .cahya-table-wrap{border-radius:10px}
  .cahya-table-wrap table.dataTable thead th:first-child{border-radius:8px 0 0 0}
  .cahya-table-wrap table.dataTable thead th:last-child{border-radius:0 8px 0 0}
  .inv-summary-grid{grid-template-columns:1fr 1fr}
  .inv-summary-card{padding:12px 14px}
  .inv-summary-value{font-size:1rem}
  .prodhuk-filter-bar{flex-direction:column;gap:10px}
  .prodhuk-filter-group{min-width:100%}
}

/* ========== DATA SUPLEMEN ========== */
.suplemen-detail-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.suplemen-detail-title{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.88rem;
  padding:14px 20px;
  display:flex;align-items:center;gap:8px;
}
.suplemen-detail-title i{font-size:.82rem;opacity:.85}
.suplemen-detail-body{padding:20px}
.suplemen-detail-row{
  display:flex;align-items:flex-start;
  padding:12px 0;
  border-bottom:1px solid #f0f0f0;
}
.suplemen-detail-row:last-child{border-bottom:none}
.suplemen-detail-label{
  width:160px;flex-shrink:0;
  font-size:.82rem;font-weight:700;
  color:var(--primary-darker);
  text-transform:uppercase;letter-spacing:.3px;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.suplemen-detail-value{
  flex:1;font-size:.88rem;color:#374151;
  font-weight:500;
}
.suplemen-table-title{
  background:linear-gradient(135deg,rgba(47,133,90,.06),rgba(47,133,90,.02));
  color:var(--primary-darker);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.88rem;
  padding:14px 20px;
  display:flex;align-items:center;gap:8px;
  border-bottom:2px solid var(--primary-light);
}
.suplemen-table-title i{font-size:.82rem;color:var(--primary)}

/* Responsive suplemen */
@media(max-width:767px){
  .suplemen-detail-row{flex-direction:column;gap:4px;padding:10px 0}
  .suplemen-detail-label{width:auto}
  .suplemen-detail-body{padding:14px}
  .suplemen-table-title{padding:12px 14px;font-size:.82rem}
}
@media(max-width:575px){
  .suplemen-detail-card{border-radius:10px}
  .suplemen-detail-title{padding:12px 14px;font-size:.82rem}
  .suplemen-detail-body{padding:12px}
  .suplemen-detail-label{font-size:.76rem}
  .suplemen-detail-value{font-size:.82rem}
}

/* ========== INFORMASI PUBLIK ========== */
.infopub-btn-lihat{
  display:inline-flex;align-items:center;gap:5px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;border:none;border-radius:8px;
  padding:6px 14px;font-size:.78rem;font-weight:600;
  font-family:'Plus Jakarta Sans',sans-serif;
  cursor:pointer;transition:all .25s ease;
  text-decoration:none;white-space:nowrap;
}
.infopub-btn-lihat:hover{
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%);
  transform:translateY(-1px);box-shadow:0 3px 10px rgba(47,133,90,.25);
  color:#fff;text-decoration:none;
}
.infopub-btn-lihat i{font-size:.72rem}

/* ========== KELOMPOK / LEMBAGA DETAIL ========== */
.kel-detail-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  margin-bottom:24px;overflow:hidden;
}
.kel-detail-body{
  display:flex;gap:28px;padding:24px;
  align-items:flex-start;
}
.kel-detail-info{flex:1;min-width:0}
.kel-detail-row{
  display:flex;align-items:baseline;
  padding:10px 0;
  border-bottom:1px solid #f1f5f9;
  gap:12px;
}
.kel-detail-row:last-child{border-bottom:none}
.kel-detail-label{
  width:180px;flex-shrink:0;
  font-size:.82rem;font-weight:600;color:#475569;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.kel-detail-value{
  flex:1;font-size:.88rem;color:#1e293b;
  font-weight:500;word-break:break-word;
}
.kel-detail-logo{
  width:160px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:#f8fafc;border-radius:12px;
  border:1px solid #e2e8f0;padding:16px;
}
.kel-detail-logo img{
  max-width:100%;max-height:140px;
  object-fit:contain;border-radius:6px;
}
.kel-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.kel-section-title i{font-size:.84rem;color:var(--primary)}

/* Responsive kelompok/lembaga */
@media(max-width:767px){
  .kel-detail-body{flex-direction:column-reverse;gap:16px;padding:16px}
  .kel-detail-logo{width:100%;max-width:180px;margin:0 auto}
  .kel-detail-row{flex-direction:column;gap:3px;padding:8px 0}
  .kel-detail-label{width:auto;font-size:.78rem}
  .kel-detail-value{font-size:.82rem}
  .kel-section-title{padding:14px 16px;font-size:.86rem}
}
@media(max-width:575px){
  .kel-detail-card{border-radius:10px}
  .kel-detail-body{padding:12px}
  .kel-detail-label{font-size:.76rem}
  .kel-detail-value{font-size:.8rem}
  .kel-detail-logo{max-width:140px;padding:12px}
  .kel-section-title{padding:12px 14px;font-size:.82rem}
}

/* ========== ANALISIS ========== */
.analisis-control-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  margin-bottom:24px;overflow:hidden;
}
.analisis-control-header{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.analisis-control-header i{font-size:.84rem;color:var(--primary)}
.analisis-control-body{padding:20px 22px}
.analisis-select-wrap{
  display:flex;align-items:center;gap:12px;
  margin-bottom:18px;flex-wrap:wrap;
}
.analisis-select-label{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:600;font-size:.84rem;color:#475569;
  white-space:nowrap;
}
.analisis-select{
  flex:1;min-width:200px;max-width:480px;
  padding:9px 14px;border:1.5px solid #d1d5db;border-radius:10px;
  font-size:.84rem;color:#1e293b;
  font-family:'Nunito',sans-serif;
  background:#fff;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.analisis-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(47,133,90,.12);
}
.analisis-meta{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.analisis-meta-item{
  display:flex;flex-direction:column;gap:4px;
  padding:12px 16px;border-radius:10px;
  background:linear-gradient(135deg,#EFF6FF 0%,#f8fafc 100%);
  border:1px solid #e2e8f0;
}
.analisis-meta-label{
  font-size:.76rem;font-weight:600;color:#64748b;
  font-family:'Plus Jakarta Sans',sans-serif;
  display:flex;align-items:center;gap:6px;
  text-transform:uppercase;letter-spacing:.3px;
}
.analisis-meta-label i{color:var(--primary);font-size:.7rem}
.analisis-meta-value{
  font-size:.92rem;font-weight:700;color:#1e293b;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.analisis-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.analisis-section-title i{font-size:.84rem;color:var(--primary)}
.analisis-indikator-link{
  color:var(--primary-dark);font-weight:600;
  text-decoration:none;transition:color .2s;
  display:inline-flex;align-items:center;gap:6px;
}
.analisis-indikator-link i{font-size:.72rem;opacity:.7}
.analisis-indikator-link:hover{color:var(--primary-darker);text-decoration:underline}

/* Analisis Chart Card */
.analisis-chart-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  margin-bottom:24px;overflow:hidden;
}
.analisis-chart-header{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.analisis-chart-header i{font-size:.84rem;color:var(--primary)}
.analisis-chart-body{padding:20px}

/* Responsive analisis */
@media(max-width:767px){
  .analisis-meta{grid-template-columns:1fr}
  .analisis-control-body{padding:14px 16px}
  .analisis-select{max-width:100%}
  .analisis-section-title{padding:14px 16px;font-size:.86rem}
  .analisis-chart-body{padding:14px}
}
@media(max-width:575px){
  .analisis-control-card{border-radius:10px}
  .analisis-control-header{padding:12px 14px;font-size:.84rem}
  .analisis-meta-item{padding:10px 12px}
  .analisis-meta-label{font-size:.72rem}
  .analisis-meta-value{font-size:.84rem}
  .analisis-chart-card{border-radius:10px}
}

/* ========== IDM ========== */
.idm-error-card{
  background:#fef2f2;border:1px solid #fecaca;border-radius:12px;
  padding:32px;text-align:center;color:#dc2626;
  margin-bottom:24px;
}
.idm-error-card i{font-size:1.6rem;margin-bottom:8px;display:block}
.idm-error-card p{font-size:.88rem;font-weight:600;margin:0}

/* Skor Cards */
.idm-skor-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:16px;margin-bottom:24px;
}
.idm-skor-card{
  border-radius:14px;padding:20px 18px;
  display:flex;align-items:center;gap:16px;
  color:#fff;position:relative;overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.1);
}
.idm-skor-card::after{
  content:'';position:absolute;right:-20px;top:-20px;
  width:80px;height:80px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.idm-skor-icon{
  width:48px;height:48px;border-radius:12px;
  background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;flex-shrink:0;
}
.idm-skor-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.idm-skor-number{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;font-size:1.15rem;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.idm-skor-label{
  font-size:.72rem;font-weight:500;opacity:.85;
  text-transform:uppercase;letter-spacing:.3px;
}
.idm-skor-blue{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%)}
.idm-skor-amber{background:linear-gradient(135deg,#d97706 0%,#b45309 100%)}
.idm-skor-green{background:linear-gradient(135deg,#059669 0%,#047857 100%)}
.idm-skor-red{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%)}

/* IDM Overview Row */
.idm-overview-row{
  display:grid;grid-template-columns:1fr 1fr;
  gap:20px;margin-bottom:24px;
}
.idm-identitas-card,.idm-chart-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  overflow:hidden;
}
.idm-identitas-header,.idm-chart-header{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.88rem;color:var(--primary-darker);
  padding:14px 20px;display:flex;align-items:center;gap:8px;
  border-bottom:2px solid var(--primary-light);
}
.idm-identitas-header i,.idm-chart-header i{font-size:.8rem;color:var(--primary)}
.idm-identitas-body{padding:6px 20px 16px}
.idm-identitas-row{
  display:flex;align-items:baseline;gap:12px;
  padding:10px 0;border-bottom:1px solid #f1f5f9;
}
.idm-identitas-row:last-child{border-bottom:none}
.idm-identitas-label{
  width:120px;flex-shrink:0;
  font-size:.8rem;font-weight:600;color:#64748b;
  font-family:'Plus Jakarta Sans',sans-serif;
  text-transform:uppercase;letter-spacing:.3px;
}
.idm-identitas-value{
  flex:1;font-size:.88rem;font-weight:600;color:#1e293b;
  text-transform:capitalize;
}
.idm-chart-body{padding:16px}
.idm-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.idm-section-title i{font-size:.84rem;color:var(--primary)}

/* Responsive IDM */
@media(max-width:991px){
  .idm-skor-grid{grid-template-columns:repeat(2,1fr)}
  .idm-overview-row{grid-template-columns:1fr}
}
@media(max-width:767px){
  .idm-skor-card{padding:16px 14px;gap:12px}
  .idm-skor-icon{width:40px;height:40px;font-size:1rem;border-radius:10px}
  .idm-skor-number{font-size:1rem}
  .idm-skor-label{font-size:.68rem}
  .idm-identitas-header,.idm-chart-header{padding:12px 16px;font-size:.84rem}
  .idm-identitas-body{padding:4px 16px 12px}
  .idm-identitas-row{gap:8px;padding:8px 0}
  .idm-identitas-label{width:100px;font-size:.76rem}
  .idm-identitas-value{font-size:.82rem}
  .idm-chart-body{padding:12px}
  .idm-section-title{padding:14px 16px;font-size:.86rem}
}
@media(max-width:575px){
  .footer-bottom-inner{flex-direction:column;text-align:center}
  .info-desa-ticker-badge{padding:8px 12px;font-size:.65rem}
  .idm-skor-grid{grid-template-columns:1fr 1fr;gap:10px}
  .idm-skor-card{padding:14px 12px;border-radius:10px;gap:10px}
  .idm-skor-icon{width:36px;height:36px;font-size:.9rem;border-radius:8px}
  .idm-skor-number{font-size:.92rem}
  .idm-identitas-card,.idm-chart-card{border-radius:10px}
  .idm-identitas-label{width:90px;font-size:.72rem}
  .idm-identitas-value{font-size:.78rem}
}

/* ========== MOBILE RESPONSIVE FIX — Cahya v1.0.0 ========== */

/* Pastikan tidak ada elemen yang overflow horizontal di semua ukuran */
*{box-sizing:border-box}
html,body{overflow-x:hidden;width:100%}
img,video,iframe,table{max-width:100%}

/* Container padding di HP kecil */
@media(max-width:479px){
  .container{padding:0 20px}
}

/* Navbar: brand text jangan overflow di HP sangat kecil */
@media(max-width:479px){
  .navbar-brand-text{font-size:12px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .navbar-inner{gap:.5rem}
  .navbar-logo{height:30px;width:30px}
}

/* Hero: title & layout responsif HP kecil */
@media(max-width:479px){
  .hero-cahya{min-height:auto;padding-bottom:4px}
  .hero-inner{padding:28px 20px 20px}
  .hero-title{font-size:1.45rem;margin-bottom:8px}
  .hero-location{font-size:11px;margin-bottom:16px;flex-wrap:wrap;gap:4px}
  .hero-badge{padding:4px 12px 4px 4px;margin-bottom:12px}
  .hero-badge-logo{width:22px;height:22px}
  .hero-badge span{font-size:10px}
  .hero-actions{gap:8px}
  .hero-btn{padding:8px 16px;font-size:12px}
  /* Bottom bar: stack tombol CTA jadi 2 kolom */
  .hero-bottom-bar{flex-direction:column;align-items:stretch;gap:6px;padding:8px;margin-top:14px}
  .hero-bottom-bar .hero-btn{width:100%;justify-content:center}
  /* Menu icons: scroll horizontal, jangan wrap */
  .hero-menu-row{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;gap:4px;padding:4px 2px;width:100%;scrollbar-width:none;-ms-overflow-style:none}
  .hero-menu-row::-webkit-scrollbar{display:none}
  .hero-menu-item{flex-shrink:0;padding:6px 8px;min-width:52px}
  .hero-menu-icon{width:28px;height:28px;font-size:12px}
  .hero-menu-item span{font-size:.55rem}
  /* Search bar full lebar */
  .hero-search-bar{margin:10px 0 0;border-radius:var(--radius-full)}
}

/* Heading global di halaman konten — kurangi ukuran di mobile */
@media(max-width:767px){
  h1{font-size:1.5rem}
  h2{font-size:1.25rem}
  h3{font-size:1.1rem}
}
@media(max-width:479px){
  h1{font-size:1.3rem}
  h2{font-size:1.1rem}
  h3{font-size:1rem}
}

/* Section padding lebih kecil di mobile */
@media(max-width:767px){
  .section,.section-cahya{padding:28px 0}
  .section-sm{padding:20px 0}
  .section-quick-access{padding:24px 0}
}
@media(max-width:479px){
  .section,.section-cahya{padding:20px 0}
  .section-sm{padding:14px 0}
}

/* Category bar: scroll horizontal di mobile */
@media(max-width:767px){
  .category-bar-cahya .container{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .category-tabs{overflow-x:auto;flex-wrap:nowrap;gap:4px;padding:0 4px}
  .category-tab{white-space:nowrap;flex-shrink:0;font-size:11px;padding:6px 12px}
}

/* Layout sidebar: stack di mobile */
@media(max-width:767px){
  .layout-main{flex-direction:column;gap:20px}
  .sidebar-area,.content-area{flex:none;width:100%;max-width:100%}
}

/* Box cahya: pastikan tidak overflow */
@media(max-width:767px){
  .box,.card-cahya,.desa-stats-banner{width:100%;max-width:100%;overflow:hidden}
  .desa-stats-banner{margin-top:16px}
}

/* Tabel: paksa horizontal scroll pada semua tabel */
.table-responsive-cahya,
.dataTables_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
@media(max-width:767px){
  table.dataTable{font-size:.78rem}
  .dataTables_length,
  .dataTables_filter,
  .dataTables_info,
  .dataTables_paginate{font-size:.78rem}
  .dataTables_filter input{max-width:140px}
}
@media(max-width:479px){
  table.dataTable{font-size:.72rem;min-width:400px}
  .dataTables_wrapper .row{flex-direction:column;gap:6px}
  .dataTables_length,.dataTables_filter{text-align:left}
}

/* Footer: teks lebih kecil di mobile */
@media(max-width:479px){
  .footer-cahya{font-size:12px}
  .footer-bottom-inner{font-size:11px;gap:6px}
  .footer-columns{grid-template-columns:1fr;gap:20px}
  .footer-main{padding:32px 0 20px}
  .footer-wave svg{height:36px}
}

/* Mobile panel: pastikan lebar tidak melebihi viewport */
.mobile-panel-body{max-width:min(300px,90vw)}

/* Mencegah konten dalam modal/popup meluber */
@media(max-width:767px){
  .modal-dialog{margin:10px auto;max-width:calc(100% - 20px)}
  .modal-body{padding:12px}
}

/* Tambahan: section hero cahya jangan overflow di landscape HP */
@media(max-width:767px) and (orientation:landscape){
  .hero-cahya{min-height:auto}
  .hero-inner{padding:18px 0 14px}
  .hero-title{font-size:1.3rem}
}

/* ========== PRINT ========== */
@media print{
  .navbar-cahya,.mobile-panel,.hero-cahya,.ticker-bar,.qa-ticker,.info-desa-ticker,.category-bar-cahya,.footer-cahya,.back-to-top,.sidebar-cahya,.share-buttons,.sticky-share,.section-fullwidth,.section-quick-access{display:none!important}
  body{background:#fff;font-size:12pt}
  .box{box-shadow:none;border:1px solid #ddd}
  .layout-main{flex-direction:column}.sidebar-area{display:none}
}


/* ============================================================
   HERO CAHYA - Senja & Golden
   ============================================================ */
.hero-cahya {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(28,16,1,.65) 0%,
    rgba(92,61,46,.45) 40%,
    rgba(245,158,11,.25) 75%,
    rgba(217,119,6,.15) 100%
  );
  z-index: 1;
}
/* Gradient bawah: foto fade ke warna halaman agar menyatu dengan wave */
.hero-overlay::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(
    to top,
    rgba(255,253,247,.88) 0%,
    rgba(255,243,210,.45) 40%,
    transparent 100%
  );
  z-index: 1;
  pointer-events: none;
}
.hero-inner {
  position: relative;
  z-index: 2;
  padding: 120px 20px 100px;
}
.hero-content-wrap {
  max-width: 620px;
}
.hero-welcome-text {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #FDE68A;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .5px;
  margin-bottom: 14px;
}
.hero-welcome-text i { color: #FCD34D; font-size: 1.1rem; }
.hero-title {
  font-size: 3rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin-bottom: 6px;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.hero-subtitle {
  font-size: 2rem;
  font-weight: 700;
  color: #FDE68A;
  margin-bottom: 20px;
}
.hero-highlight {
  color: #FCD34D;
  text-shadow: 0 0 20px rgba(252,211,77,.5);
}
.hero-desc {
  font-size: 1.05rem;
  color: rgba(255,255,255,.90);
  line-height: 1.7;
  margin-bottom: 32px;
  max-width: 500px;
}
.hero-cta-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.hero-btn-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent);
  color: #fff;
  padding: 14px 28px;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  box-shadow: 0 4px 20px rgba(245,158,11,.45);
  transition: all .3s;
  border: 2px solid transparent;
}
.hero-btn-main:hover {
  background: var(--primary-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(180,83,9,.45);
}
.hero-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.15);
  color: #fff;
  padding: 14px 28px;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  border: 2px solid rgba(255,255,255,.65);
  backdrop-filter: blur(6px);
  transition: all .3s;
}
.hero-btn-outline:hover {
  background: rgba(255,255,255,.30);
  color: #fff;
  border-color: #fff;
  transform: translateY(-2px);
}
.hero-wave-bottom {
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  z-index: 3;
  line-height: 0;
}
.hero-wave-bottom svg { width: 100%; height: 70px; display: block; }
/* Strip kuning emas tipis di atas wave putih */
.hero-golden-stripe {
  position: absolute;
  bottom: 52px;
  left: 0; right: 0;
  height: 4px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    #F59E0B 15%,
    #FCD34D 50%,
    #F59E0B 85%,
    transparent 100%
  );
  opacity: 0.85;
  z-index: 4;
}

/* ============================================================
   NAVBAR CAHYA - Transparan di Hero, Solid saat Scroll
   ============================================================ */
.navbar-cahya {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: transparent;
  transition: background .35s ease, box-shadow .35s ease;
  padding: 0;
}
.navbar-cahya.scrolled,
.navbar-cahya.solid {
  background: rgba(255,253,247,.97);
  backdrop-filter: blur(12px);
  box-shadow: 0 2px 16px rgba(180,83,9,.10);
}
.navbar-inner {
  display: flex;
  align-items: center;
  height: 72px;
  gap: 16px;
}
.navbar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.navbar-logo {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: contain;
  background: rgba(255,255,255,.15);
  padding: 2px;
}
.navbar-brand-text {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1rem;
  color: #fff;
  line-height: 1.2;
  transition: color .3s;
}
.navbar-cahya.scrolled .navbar-brand-text,
.navbar-cahya.solid .navbar-brand-text { color: var(--text-heading); }

.navbar-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0 0 0 auto; padding: 0;
}
.navbar-menu > li { position: relative; }
.navbar-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .4px;
  color: rgba(255,255,255,.92);
  border-radius: var(--radius);
  transition: all .25s;
  white-space: nowrap;
}
.navbar-link i { font-size: .7rem; }
.navbar-cahya.scrolled .navbar-link,
.navbar-cahya.solid .navbar-link { color: var(--text-heading); }
.navbar-link:hover,
.navbar-menu > li.nav-active > .navbar-link {
  background: rgba(245,158,11,.12);
  color: var(--accent) !important;
}
.navbar-menu > li.nav-active > .navbar-link { border-bottom: 2px solid var(--accent); }
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  border: 1px solid var(--border);
  padding: 8px 0;
  list-style: none;
  display: none;
  z-index: 100;
  /* Bridge: padding-top prevents gap between navbar-link and dropdown */
  padding-top: 10px;
  margin-top: 0;
}
/* Pseudo-element bridge so mouse can travel from link to dropdown without gap */
.navbar-menu > li.has-dropdown > a.navbar-link::before {
  content: '';
  display: block;
  position: absolute;
  bottom: -10px;
  left: 0;
  right: 0;
  height: 10px;
}
.navbar-menu > li:hover > .dropdown-menu { display: block; }
.dropdown-menu li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 16px;
  font-size: .9rem;
  color: var(--text-body);
  transition: all .2s;
}
.dropdown-menu li a:hover {
  background: var(--accent-soft);
  color: var(--primary-dark);
  padding-left: 22px;
}
/* Sub-dropdown */
.dropdown-menu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: 0;
  padding-top: 8px;
}
.navbar-icons { display: flex; align-items: center; gap: 6px; }
.navbar-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  background: rgba(255,255,255,.12);
  transition: all .25s;
}
.navbar-cahya.scrolled .navbar-icon-btn,
.navbar-cahya.solid .navbar-icon-btn { color: var(--text-body); background: var(--gray-100); }
.navbar-icon-btn:hover { background: var(--accent); color: #fff !important; }
/* Tombol Masuk kuning keemasan */
.navbar-btn-masuk {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--accent) !important;
  color: #fff !important;
  padding: 9px 20px;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: .85rem;
  text-decoration: none;
  transition: all .25s;
  white-space: nowrap;
}
.navbar-btn-masuk:hover { background: var(--accent-dark, #B45309) !important; color: #fff !important; transform: translateY(-1px); }
.navbar-cahya.scrolled .navbar-btn-masuk,
.navbar-cahya.solid .navbar-btn-masuk { background: var(--accent) !important; }
.navbar-toggle {
  display: none;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
  padding: 6px;
  transition: color .25s;
}
.navbar-cahya.scrolled .navbar-toggle,
.navbar-cahya.solid .navbar-toggle { color: var(--text-heading); }

/* ============================================================
   FOOTER CAHYA - Background Image Senja
   ============================================================ */
.footer-cahya {
  position: relative;
  color: #fff;
  overflow: hidden;
}
.footer-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  z-index: 0;
}
.footer-bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(28,16,1,.82) 0%,
    rgba(92,40,14,.88) 50%,
    rgba(28,16,1,.95) 100%
  );
  z-index: 1;
}
.footer-main {
  position: relative;
  z-index: 2;
  padding: 64px 0 40px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 40px;
}
.footer-col-brand .footer-logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.footer-logo-img {
  width: 52px; height: 52px;
  border-radius: 50%;
  object-fit: contain;
  background: rgba(255,255,255,.1);
  padding: 3px;
}
.footer-brand-text-wrap {
  display: flex;
  flex-direction: column;
}
.footer-brand-label {
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.footer-brand-tema {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.1rem;
  color: #FCD34D;
}
.footer-brand-desc {
  font-size: .88rem;
  line-height: 1.65;
  color: rgba(255,255,255,.72);
  margin-bottom: 18px;
}
.footer-social-row {
  display: flex;
  gap: 10px;
}
.footer-soc {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
  font-size: .9rem;
  transition: all .25s;
  border: 1px solid rgba(255,255,255,.15);
}
.footer-soc:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
  transform: translateY(-2px);
}
.footer-col-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1rem;
  color: #FDE68A;
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.footer-nav-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.footer-nav-list li a {
  color: rgba(255,255,255,.75);
  font-size: .9rem;
  transition: all .2s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.footer-nav-list li a:hover {
  color: #FCD34D;
  padding-left: 6px;
}
.footer-info-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-info-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .88rem;
  color: rgba(255,255,255,.75);
}
.footer-info-list li i {
  color: #FCD34D;
  font-size: .9rem;
  margin-top: 2px;
  flex-shrink: 0;
}
.footer-bsre-row {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.footer-bsre-row img { height: 40px; }
.footer-bottom-bar {
  position: relative;
  z-index: 2;
  background: rgba(0,0,0,.35);
  padding: 16px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}
.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .85rem;
  color: rgba(255,255,255,.65);
  gap: 16px;
}
.footer-bottom-inner strong { color: #FCD34D; }
.footer-bottom-inner a { color: #FCD34D; }
.footer-bottom-inner a:hover { color: #fff; }

/* ============================================================
   SECTION TITLE - CAHYA
   ============================================================ */
.section-icon {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .5px;
  margin-bottom: 10px;
}
.section-icon i { font-size: 1.1rem; }

/* ============================================================
   RESPONSIVE HERO & FOOTER
   ============================================================ */
@media (max-width: 768px) {
  .hero-title { font-size: 2rem; }
  .hero-subtitle { font-size: 1.5rem; }
  .hero-inner { padding: 100px 20px 80px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-col-brand { grid-column: 1 / -1; }
  .footer-bottom-inner { flex-direction: column; text-align: center; gap: 6px; }
}
@media (max-width: 480px) {
  .hero-title { font-size: 1.6rem; }
  .hero-subtitle { font-size: 1.2rem; }
  .hero-cta-row { flex-direction: column; }
  .hero-btn-main, .hero-btn-outline { justify-content: center; }
  .footer-grid { grid-template-columns: 1fr; }
  .navbar-menu, .navbar-icons { display: none; }
  .navbar-toggle { display: block; }
}


/* ============================================================
   HERO CAHYA - Senja & Golden
   ============================================================ */
.hero-cahya {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(28,16,1,.65) 0%, rgba(92,61,46,.45) 40%, rgba(245,158,11,.20) 75%, rgba(217,119,6,.10) 100%);
  z-index: 1;
}
.hero-inner {
  position: relative;
  z-index: 2;
  padding: 130px 20px 100px;
}
.hero-content-wrap { max-width: 620px; }
.hero-welcome-text {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #FDE68A;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .5px;
  margin-bottom: 14px;
}
.hero-welcome-text i { color: #FCD34D; font-size: 1.1rem; }
.hero-title {
  font-size: 3rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin-bottom: 6px;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.hero-subtitle {
  font-size: 2rem;
  font-weight: 700;
  color: #FDE68A;
  margin-bottom: 20px;
}
.hero-highlight {
  color: #FCD34D;
  text-shadow: 0 0 20px rgba(252,211,77,.5);
}
.hero-desc {
  font-size: 1.05rem;
  color: rgba(255,255,255,.90);
  line-height: 1.7;
  margin-bottom: 32px;
  max-width: 500px;
}
.hero-cta-row { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-btn-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent);
  color: #fff;
  padding: 14px 28px;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  box-shadow: 0 4px 20px rgba(245,158,11,.45);
  transition: all .3s;
  border: 2px solid transparent;
}
.hero-btn-main:hover {
  background: var(--primary-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(180,83,9,.45);
}
.hero-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.15);
  color: #fff;
  padding: 14px 28px;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  border: 2px solid rgba(255,255,255,.65);
  backdrop-filter: blur(6px);
  transition: all .3s;
}
.hero-btn-outline:hover {
  background: rgba(255,255,255,.25);
  color: #fff;
  border-color: #fff;
  transform: translateY(-2px);
}
.hero-wave-bottom {
  position: absolute;
  bottom: -1px;
  left: 0; right: 0;
  z-index: 3;
  line-height: 0;
}
.hero-wave-bottom svg { width: 100%; height: 70px; display: block; }

/* ============================================================
   NAVBAR CAHYA - Transparan di Hero, Solid saat Scroll
   ============================================================ */
.navbar-cahya {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: transparent;
  transition: background .35s ease, box-shadow .35s ease;
}
.navbar-cahya.scrolled,
.navbar-cahya.solid {
  background: rgba(255,253,247,.97);
  backdrop-filter: blur(12px);
  box-shadow: 0 2px 16px rgba(180,83,9,.10);
}
.navbar-inner {
  display: flex;
  align-items: center;
  height: 72px;
  gap: 16px;
}
.navbar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.navbar-logo {
  width: 44px; height: 44px;
  border-radius: 50%;
  object-fit: contain;
  background: rgba(255,255,255,.15);
  padding: 2px;
}
.navbar-brand-text {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1rem;
  color: #fff;
  line-height: 1.2;
  transition: color .3s;
}
.navbar-cahya.scrolled .navbar-brand-text,
.navbar-cahya.solid .navbar-brand-text { color: var(--text-heading); }
.navbar-menu { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0 0 0 auto; padding: 0; }
.navbar-menu > li { position: relative; }
.navbar-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .4px;
  color: rgba(255,255,255,.92);
  border-radius: var(--radius);
  transition: all .25s;
  white-space: nowrap;
}
.navbar-link i { font-size: .7rem; }
.navbar-cahya.scrolled .navbar-link,
.navbar-cahya.solid .navbar-link { color: var(--text-heading); }
.navbar-link:hover,
.navbar-menu > li.nav-active > .navbar-link {
  background: rgba(245,158,11,.12);
  color: var(--accent) !important;
}
.navbar-menu > li.nav-active > .navbar-link { border-bottom: 2px solid var(--accent); }
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  border: 1px solid var(--border);
  padding: 10px 0 8px;
  list-style: none;
  display: none;
  z-index: 100;
  margin-top: 0;
}
.navbar-menu > li:hover > .dropdown-menu { display: block; }
.dropdown-menu li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 16px;
  font-size: .9rem;
  color: var(--text-body);
  transition: all .2s;
}
.dropdown-menu li a:hover { background: var(--accent-soft); color: var(--primary-dark); padding-left: 22px; }
.dropdown-menu .dropdown-menu { top: 0; left: 100%; margin-top: 0; }
.navbar-icons { display: flex; align-items: center; gap: 6px; }
.navbar-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
  background: rgba(255,255,255,.12);
  transition: all .25s;
}
.navbar-cahya.scrolled .navbar-icon-btn,
.navbar-cahya.solid .navbar-icon-btn { color: var(--text-body); background: var(--gray-100); }
.navbar-icon-btn:hover { background: var(--accent); color: #fff !important; }
/* Tombol Masuk kuning */
.navbar-btn-masuk {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--accent) !important;
  color: #fff !important;
  padding: 9px 20px;
  border-radius: var(--radius-full) !important;
  font-weight: 700;
  font-size: .85rem;
  width: auto !important;
  height: auto !important;
}
.navbar-toggle {
  display: none;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
  padding: 6px;
  transition: color .25s;
}
.navbar-cahya.scrolled .navbar-toggle,
.navbar-cahya.solid .navbar-toggle { color: var(--text-heading); }

/* ============================================================
   FOOTER CAHYA - Background Image Senja
   ============================================================ */
.footer-cahya {
  position: relative;
  color: #fff;
  overflow: hidden;
}
.footer-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  z-index: 0;
}
.footer-bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(28,16,1,.82) 0%, rgba(92,40,14,.88) 50%, rgba(28,16,1,.95) 100%);
  z-index: 1;
}
.footer-main { position: relative; z-index: 2; padding: 64px 0 40px; }
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 40px;
}
.footer-col-brand .footer-logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.footer-logo-img {
  width: 52px; height: 52px;
  border-radius: 50%;
  object-fit: contain;
  background: rgba(255,255,255,.1);
  padding: 3px;
}
.footer-brand-text-wrap { display: flex; flex-direction: column; }
.footer-brand-label { font-size: .8rem; color: rgba(255,255,255,.6); font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
.footer-brand-tema { font-family: var(--font-heading); font-weight: 800; font-size: 1.1rem; color: #FCD34D; }
.footer-brand-desc { font-size: .88rem; line-height: 1.65; color: rgba(255,255,255,.72); margin-bottom: 18px; }
.footer-social-row { display: flex; gap: 10px; }
.footer-soc {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
  font-size: .9rem;
  transition: all .25s;
  border: 1px solid rgba(255,255,255,.15);
}
.footer-soc:hover { background: var(--accent); color: #fff; border-color: var(--accent); transform: translateY(-2px); }
.footer-col-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1rem;
  color: #FDE68A;
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.footer-nav-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.footer-nav-list li a { color: rgba(255,255,255,.75); font-size: .9rem; transition: all .2s; display: inline-flex; align-items: center; gap: 6px; }
.footer-nav-list li a:hover { color: #FCD34D; padding-left: 6px; }
.footer-info-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-info-list li { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; color: rgba(255,255,255,.75); }
.footer-info-list li i { color: #FCD34D; font-size: .9rem; margin-top: 2px; flex-shrink: 0; }
.footer-bsre-row { margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); }
.footer-bsre-row img { height: 40px; }
.footer-bottom-bar {
  position: relative;
  z-index: 2;
  background: rgba(0,0,0,.35);
  padding: 16px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}
.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .85rem;
  color: rgba(255,255,255,.65);
  gap: 16px;
}
.footer-bottom-inner strong { color: #FCD34D; }
.footer-bottom-inner a { color: #FCD34D; }
.footer-bottom-inner a:hover { color: #fff; }

/* ============================================================
   RESPONSIVE HERO & FOOTER
   ============================================================ */
@media (max-width: 768px) {
  .hero-title { font-size: 2rem; }
  .hero-subtitle { font-size: 1.5rem; }
  .hero-inner { padding: 100px 20px 80px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-col-brand { grid-column: 1 / -1; }
  .footer-bottom-inner { flex-direction: column; text-align: center; gap: 6px; }
}
@media (max-width: 480px) {
  .hero-title { font-size: 1.6rem; }
  .hero-subtitle { font-size: 1.2rem; }
  .hero-cta-row { flex-direction: column; }
  .hero-btn-main, .hero-btn-outline { justify-content: center; }
  .footer-grid { grid-template-columns: 1fr; }
  .navbar-menu, .navbar-icons { display: none; }
  .navbar-toggle { display: block; }
}

/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE SECTIONS — Tema Cahya
   Class prefix: hp-
   ═══════════════════════════════════════════════════════════════════ */

/* ── Base Section ── */
.hp-section {
    padding: 3.5rem 0;
}
.hp-section--light {
    background: #FFFDF7;
}
.hp-section--warm {
    background: #FFF8E7;
}

/* ── Grid 7-5 dan 6-6 ── */
.hp-row {
    display: grid;
    gap: 2.5rem;
    align-items: start;
}
.hp-row--7-5 {
    grid-template-columns: 7fr 5fr;
}
.hp-row--6-6 {
    grid-template-columns: 1fr 1fr;
}
.hp-row--full {
    grid-template-columns: 1fr;
}
.hp-row--3col {
    grid-template-columns: 1fr 1fr 1fr;
    align-items: stretch;
}
.hp-row--3col > .hp-col {
    display: flex;
    flex-direction: column;
}
/* Row stretch: kedua kolom sama tinggi, card isi 100% */
.hp-row--stretch {
    align-items: flex-end;
}
.hp-row--stretch > .hp-col {
    display: flex;
    flex-direction: column;
}
.hp-row--stretch > .hp-col > .hp-sambutan-card,
.hp-row--stretch > .hp-col > .hp-statbox {
    flex: 1;
    height: auto;
    min-height: 310px;
    box-sizing: border-box;
}

/* Row Perangkat: kolom kiri & kanan sama tinggi, jam kerja card isi penuh */
.hp-row--perangkat {
    align-items: stretch;
}
.hp-row--perangkat > .hp-col--main {
    display: flex;
    flex-direction: column;
}
.hp-row--perangkat > .hp-col--main .hp-perangkat-wrap {
    flex-shrink: 0;
}
.hp-row--perangkat > .hp-col--side {
    display: flex;
    flex-direction: column;
}
.hp-row--perangkat > .hp-col--side .hp-jamkerja-card {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.hp-row--perangkat > .hp-col--side .hp-jamkerja-card .hp-jk-list {
    flex: 1;
}

/* Banner Layanan Mandiri mini — di bawah carousel perangkat */
.hp-lm-mini {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 12px;
    flex: 1;
    margin-top: .8rem;
    max-height: 150px;
    line-height: 0;
    transition: transform .3s, box-shadow .3s;
}
.hp-lm-mini:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(120,53,15,.22);
}
.hp-lm-mini-img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    border-radius: 12px;
}
.hp-lm-mini-btn {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 18px 7px 14px;
    background: linear-gradient(135deg, #78350F 0%, #92400E 40%, #B45309 100%);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-decoration: none;
    border-radius: 50px;
    border: 2px solid rgba(255,255,255,.3);
    box-shadow: 0 4px 16px rgba(120,53,15,.35), inset 0 1px 0 rgba(255,255,255,.2);
    white-space: nowrap;
    line-height: 1;
    transition: all .3s ease;
    z-index: 4;
}
.hp-lm-mini-btn::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 50%;
    background: linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 100%);
    border-radius: 50px 50px 0 0;
    pointer-events: none;
}
.hp-lm-mini-btn i { font-size: .72rem; position: relative; }
.hp-lm-mini-arrow { opacity: .8; transition: transform .25s ease; }
.hp-lm-mini:hover .hp-lm-mini-btn {
    background: linear-gradient(135deg, #92400E 0%, #B45309 40%, #D97706 100%);
    box-shadow: 0 6px 22px rgba(120,53,15,.45), inset 0 1px 0 rgba(255,255,255,.25);
    color: #fff;
    transform: translateX(-50%) translateY(-2px);
}
.hp-lm-mini:hover .hp-lm-mini-arrow { transform: translateX(3px); }

/* ── Section Head ── */
.hp-sec-head {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin-bottom: 1.5rem;
}
.hp-sec-head--between {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}
.hp-sec-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    background: linear-gradient(135deg, #F59E0B, #D97706);
    border-radius: 50%;
    color: #fff;
    font-size: .85rem;
    flex-shrink: 0;
    margin-top: .1rem;
}
.hp-sec-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1C1009;
    margin: 0 0 .15rem;
    line-height: 1.3;
}
.hp-sec-sub {
    font-size: .82rem;
    color: #92400E;
    margin: 0;
}

.hp-link-more {
    font-size: .8rem;
    color: #D97706;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
}
.hp-link-more:hover { color: #B45309; text-decoration: underline; }

/* ── Layanan Grid 3x2 ── */
.hp-layanan-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
/* Grid 9 item — lebih kompak */
.hp-layanan-grid--9 {
    grid-template-columns: repeat(3, 1fr);
    gap: .65rem;
}
.hp-layanan-grid--9 .hp-lay-card {
    padding: .9rem .6rem .8rem;
    gap: .35rem;
    border-radius: 12px;
}
.hp-layanan-grid--9 .hp-lay-icon {
    width: 2.8rem;
    height: 2.8rem;
    font-size: 1.05rem;
    margin-bottom: .15rem;
}
.hp-layanan-grid--9 .hp-lay-name {
    font-size: .78rem;
}
.hp-layanan-grid--9 .hp-lay-desc {
    font-size: .68rem;
}
.hp-lay-card {
    background: #fff;
    border: 1px solid #FDE68A;
    border-radius: 14px;
    padding: 1.4rem 1rem 1.2rem;
    text-align: center;
    text-decoration: none;
    transition: transform .2s, box-shadow .2s, border-color .2s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    box-shadow: 0 1px 6px rgba(217,119,6,.07);
}
.hp-lay-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(217,119,6,.18);
    border-color: #F59E0B;
}
.hp-lay-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #FEF3C7, #F59E0B);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    color: #92400E;
    margin-bottom: .3rem;
    box-shadow: 0 2px 8px rgba(217,119,6,.2);
}
.hp-lay-name {
    font-size: .9rem;
    font-weight: 700;
    color: #1C1009;
    margin: 0;
}
.hp-lay-desc {
    font-size: .75rem;
    color: #78716C;
    margin: 0;
    line-height: 1.45;
}

/* Button utama */
.hp-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: linear-gradient(135deg, #F59E0B, #D97706);
    color: #fff;
    font-weight: 600;
    font-size: .85rem;
    border-radius: 8px;
    padding: .65rem 1.4rem;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: opacity .2s, transform .2s;
}
.hp-btn-primary:hover { opacity: .9; transform: translateY(-1px); color: #fff; }

/* ── Tombol Lihat Semua Layanan ── */
.hp-layanan-btn-wrap {
    margin-top: 1.2rem;
    text-align: center;
}
.hp-btn-layanan-all {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    background: linear-gradient(135deg, #F59E0B, #D97706);
    color: #fff;
    font-size: .85rem;
    font-weight: 600;
    border-radius: 8px;
    padding: .6rem 1.8rem;
    text-decoration: none;
    transition: opacity .2s, transform .18s, box-shadow .18s;
    box-shadow: 0 3px 12px rgba(217,119,6,.3);
}
.hp-btn-layanan-all:hover {
    opacity: .92;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(217,119,6,.4);
    color: #fff;
    text-decoration: none;
}
.hp-btn-layanan-all i { font-size: .75rem; }

/* ── Jadwal Sholat overrides dalam sidebar ── */
.hp-col--side .wsholat-box {
    border-radius: 12px;
    overflow: hidden;
}
/* Card sholat mencuat ke section bawah */
.hp-col--side .wsholat-card {
    margin-bottom: -2.8rem;
    position: relative;
    z-index: 10;
}
/* Kolom sambutan mencuat ke section atas */
.hp-col--sambutan-float {
    position: relative;
    margin-top: -12rem;
    z-index: 10;
}
.hp-col--sambutan-float .hp-sambutan-card {
    box-shadow: 0 -4px 30px rgba(217,119,6,.13), 0 8px 24px rgba(217,119,6,.12);
}
/* Section 1 punya padding-bottom lebih agar card tidak dipotong */
.hp-section--light {
    padding-bottom: 7rem;
}
/* Ketika sambutan dinonaktifkan, padding-bottom normal */
.hp-section--light-no-float {
    padding-bottom: 3.5rem !important;
}
/* Ketika sambutan dinonaktifkan, section-white tanpa padding-top besar */
.hp-section--white-no-float {
    padding-top: 3.5rem !important;
}
/* Section 2 punya padding-top lebih untuk ruang card yang mencuat */
.hp-section--white {
    background: #fff;
    padding-top: 4.5rem;
}

/* ══════════════════════════════════════════════════════
   SAMBUTAN KEPALA DESA — card foto full kiri + batik
   ══════════════════════════════════════════════════════ */

/* Card utama: warm cream + corak batik kawung samar */
.hp-sambutan-card {
    display: flex;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(217,119,6,.13);
    position: relative;
    background: linear-gradient(145deg, #FFFBEB 0%, #FFF8E1 60%, #FEF3C7 100%);
    border: 1px solid #FDE68A;
}

/* ── Kolom foto (kiri): transparan, background 2 tetes cat ── */
.hp-sambutan-photo-col {
    flex-shrink: 0;
    width: 220px;
    position: relative;
    overflow: hidden;
    background: transparent;
}

/* Tetes cat 1 — besar, amber kuning */
.hp-sambutan-photo-col::before {
    content: '';
    position: absolute;
    width: 170px;
    height: 255px;
    background: #FCD34D;
    border-radius: 50% 50% 46% 54% / 20% 20% 80% 80%;
    bottom: -10px;
    left: 50%;
    transform: translateX(-55%) rotate(-6deg);
    z-index: 1;
    opacity: .82;
}

/* Tetes cat 2 — kecil, kuning muda */
.hp-sambutan-photo-col::after {
    content: '';
    position: absolute;
    width: 85px;
    height: 128px;
    background: #FDE68A;
    border-radius: 50% 50% 44% 56% / 18% 22% 78% 82%;
    top: 30px;
    right: 6px;
    transform: rotate(8deg);
    z-index: 1;
    opacity: .80;
}

/* Foto: full height, di depan 2 tetes cat */
.hp-sambutan-photo {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 215px;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    z-index: 2;
    display: block;
}

/* ── Kolom konten (kanan): semi-transparan cream ── */
.hp-sambutan-content {
    flex: 1;
    min-width: 0;
    padding: 1.5rem 1.6rem 1.3rem;
    display: flex;
    flex-direction: column;
    gap: .7rem;
    position: relative;
    z-index: 1;
    background: rgba(255,253,240,.6);
    overflow: hidden;
}

/* Header: ikon quote + judul */
.hp-sambutan-head {
    display: flex;
    align-items: center;
    gap: .7rem;
}
.hp-sambutan-quote-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: linear-gradient(135deg, #F59E0B, #D97706);
    border-radius: 50%;
    color: #fff;
    font-size: .75rem;
    flex-shrink: 0;
}
.hp-sambutan-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1C1009;
    margin: 0;
    line-height: 1.3;
}

/* Teks isi — dibatasi 6 baris agar tidak melar */
.hp-sambutan-text {
    font-size: .8rem;
    color: #57534E;
    line-height: 1.75;
    flex: 1;
    overflow: visible;
}

/* Footer: jabatan + nama + signature */
.hp-sambutan-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .8rem;
    padding-top: .6rem;
    border-top: 1px solid rgba(217,119,6,.18);
    flex-wrap: nowrap;
}
.hp-sambutan-footer-info {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
    flex: 1;
}
.hp-sf-jabatan {
    font-size: .7rem;
    color: #92400E;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hp-sf-nama {
    font-size: .88rem;
    font-weight: 700;
    color: #1C1009;
    line-height: 1.3;
    word-break: break-word;
}
.hp-sf-signature {
    font-family: 'Brush Script MT', 'Segoe Script', cursive;
    font-size: 1.6rem;
    color: #44403C;
    line-height: 1;
    white-space: nowrap;
    font-style: italic;
    flex-shrink: 0;
    align-self: flex-end;
}

@media (max-width: 900px) {
    .hp-sambutan-card { height: auto; }
    .hp-sambutan-photo-col { width: 180px; }
}
@media (max-width: 640px) {
    .hp-sambutan-card { flex-direction: column; height: auto; }
    .hp-sambutan-photo-col { width: 100%; height: 260px; }
    .hp-sambutan-photo { height: 260px; width: auto; }
}

/* ── Warisan kelas lama (sidebar, partials lain) ── */
.hp-sambutan-inner { display:flex;gap:1.5rem;align-items:flex-start;background:#fff;border:1px solid #FDE68A;border-radius:14px;padding:1.4rem; }
.hp-sambutan-quote-deco { font-family:Georgia,serif;font-size:3.5rem;color:#FCD34D;line-height:.6;margin-bottom:.4rem;display:block; }
.hp-sambutan-text-col { flex:1;min-width:0; }
.hp-sambutan-isi { font-size:.84rem;color:#44403C;line-height:1.8;margin:0; }
.hp-sambutan-sig { text-align:center; }
.hp-sig-jabatan { font-size:.7rem;color:#92400E;margin:0 0 .15rem;line-height:1.3; }
.hp-sig-nama { font-size:.82rem;font-weight:700;color:#1C1009;margin:0 0 .2rem; }
.hp-sig-signature { font-family:'Brush Script MT',cursive;font-size:1.4rem;color:#D97706;display:block; }

/* ── Statistik Grid 2x3 ── */
.hp-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}
.hp-stat-card {
    background: #fff;
    border-radius: 14px;
    padding: 1.4rem 1rem 1.2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    border: 1px solid #FDE68A;
    box-shadow: 0 1px 6px rgba(217,119,6,.07);
    transition: transform .2s, box-shadow .2s;
}
.hp-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(217,119,6,.15);
}
.hp-stat-icon-wrap {
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    margin-bottom: .25rem;
    background: #FEF3C7;
    color: #D97706;
}
/* Semua stat menggunakan warna amber konsisten */
.hp-stat--amber .hp-stat-icon-wrap,
.hp-stat--orange .hp-stat-icon-wrap,
.hp-stat--blue .hp-stat-icon-wrap,
.hp-stat--pink .hp-stat-icon-wrap,
.hp-stat--green .hp-stat-icon-wrap,
.hp-stat--teal .hp-stat-icon-wrap { background: #FEF3C7; color: #D97706; }
.hp-stat-num {
    font-size: 1.75rem;
    font-weight: 800;
    color: #D97706;
    line-height: 1;
    font-family: var(--font-heading);
}
.hp-stat-label {
    font-size: .75rem;
    color: #78716C;
    line-height: 1.3;
    font-weight: 500;
}

/* ══════════════════════════════════════════════════════
   STATISTIK DESA — Card Tunggal (hp-statbox)
   ══════════════════════════════════════════════════════ */
.hp-statbox {
    position: relative;
    background: linear-gradient(145deg, #FFFBEB 0%, #FFF8E1 60%, #FEF3C7 100%);
    border: 1px solid #FDE68A;
    border-radius: 18px;
    padding: 1.6rem 1.5rem 1.8rem;
    box-shadow: 0 4px 20px rgba(217,119,6,.10);
    overflow: hidden;
    min-height: 310px;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

/* Background dekorasi siluet panorama desa di kanan bawah */
.hp-statbox-deco {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 340px;
    height: 180px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 180'%3E%3Cg fill='%23D97706' opacity='0.10'%3E%3C!-- Gunung kanan --%3E%3Cpolygon points='240,180 290,80 340,180'/%3E%3Cpolygon points='275,180 315,100 340,140 340,180'/%3E%3C!-- Gunung kiri --%3E%3Cpolygon points='170,180 215,100 260,180'/%3E%3C!-- Sawah / lahan (garis horizontal) --%3E%3Crect x='0' y='155' width='340' height='5' rx='2'/%3E%3Crect x='20' y='162' width='80' height='3' rx='1'/%3E%3Crect x='120' y='162' width='60' height='3' rx='1'/%3E%3Crect x='200' y='162' width='90' height='3' rx='1'/%3E%3C!-- Masjid (kubah + menara) --%3E%3Crect x='30' y='110' width='50' height='48'/%3E%3Cellipse cx='55' cy='110' rx='25' ry='18'/%3E%3Crect x='50' y='92' width='10' height='20'/%3E%3Cellipse cx='55' cy='90' rx='8' ry='10'/%3E%3Crect x='18' y='120' width='12' height='38'/%3E%3Crect x='14' y='116' width='20' height='8' rx='2'/%3E%3Crect x='16' y='107' width='16' height='12' rx='3'/%3E%3Crect x='18' y='100' width='12' height='9' rx='2'/%3E%3Crect x='20' y='94' width='8' height='8' rx='1'/%3E%3Crect x='80' y='120' width='12' height='38'/%3E%3Crect x='76' y='116' width='20' height='8' rx='2'/%3E%3Crect x='78' y='107' width='16' height='12' rx='3'/%3E%3Crect x='80' y='100' width='12' height='9' rx='2'/%3E%3Crect x='82' y='94' width='8' height='8' rx='1'/%3E%3C!-- Rumah warga 1 --%3E%3Crect x='105' y='128' width='36' height='30'/%3E%3Cpolygon points='102,128 141,128 123,108'/%3E%3Crect x='116' y='138' width='10' height='20' rx='1'/%3E%3C!-- Rumah warga 2 --%3E%3Crect x='148' y='132' width='28' height='26'/%3E%3Cpolygon points='145,132 179,132 162,114'/%3E%3Crect x='157' y='142' width='8' height='16' rx='1'/%3E%3C!-- Pohon kelapa kiri --%3E%3Crect x='4' y='100' width='5' height='58'/%3E%3Cellipse cx='6' cy='98' rx='14' ry='10'/%3E%3Cellipse cx='6' cy='94' rx='10' ry='7'/%3E%3C!-- Pohon kelapa tengah --%3E%3Crect x='184' y='112' width='5' height='46'/%3E%3Cellipse cx='186' cy='110' rx='15' ry='11'/%3E%3Cellipse cx='186' cy='106' rx='11' ry='8'/%3E%3C!-- Pohon kecil kanan gunung --%3E%3Crect x='226' y='130' width='4' height='28'/%3E%3Cpolygon points='220,130 232,130 226,112'/%3E%3Cpolygon points='222,120 230,120 226,106'/%3E%3C!-- Balai desa / kantor --%3E%3Crect x='0' y='122' width='12' height='36'/%3E%3C/g%3E%3C/svg%3E");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: right bottom;
    pointer-events: none;
    z-index: 0;
}

/* Header card */
.hp-statbox-head {
    display: flex;
    align-items: center;
    gap: .75rem;
    position: relative;
    z-index: 1;
}
.hp-statbox-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    background: linear-gradient(135deg, #F59E0B, #D97706);
    border-radius: 50%;
    color: #fff;
    font-size: .95rem;
    flex-shrink: 0;
}
.hp-statbox-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1C1009;
    margin: 0 0 .12rem;
    line-height: 1.2;
}
.hp-statbox-sub {
    font-size: .8rem;
    color: #92400E;
    margin: 0;
}

/* Grid 2 kolom, item horizontal */
.hp-statbox-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.1rem 1.5rem;
    position: relative;
    z-index: 1;
}
.hp-statbox-item {
    display: flex;
    align-items: center;
    gap: .85rem;
}
.hp-statbox-item-icon {
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 12px;
    background: #FEF3C7;
    color: #D97706;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
}
.hp-statbox-item-info {
    display: flex;
    flex-direction: column;
    gap: .05rem;
    min-width: 0;
}
.hp-statbox-num {
    font-size: 1.55rem;
    font-weight: 800;
    color: #1C1009;
    line-height: 1.1;
    font-family: var(--font-heading);
}
.hp-statbox-label {
    font-size: .76rem;
    color: #78716C;
    font-weight: 500;
    line-height: 1.3;
}
.hp-statbox-item--link {
    text-decoration: none;
    border: 1.5px dashed #D97706;
    border-radius: 12px;
    padding: .5rem .75rem;
    transition: background .2s, border-color .2s;
    cursor: pointer;
}
.hp-statbox-item--link:hover {
    background: #FEF3C7;
    border-color: #B45309;
}
.hp-statbox-item--link .hp-statbox-item-icon {
    background: linear-gradient(135deg, #B45309, #92400E);
    color: #FCD34D;
}
@media (max-width: 540px) {
    .hp-statbox-grid { grid-template-columns: 1fr; gap: .85rem; }
    .hp-statbox { min-height: auto; }
}

/* ── Perangkat Carousel ── */
.hp-perangkat-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
}
.hp-perangkat-viewport {
    overflow: hidden;
    border-radius: 12px;
    height: 190px;
}
.hp-perangkat-track {
    display: flex;
    height: 100%;
    transition: transform .45s cubic-bezier(.4,0,.2,1);
    will-change: transform;
}
.hp-perangkat-slide {
    flex-shrink: 0;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    height: 100%;
    padding: 0 .4rem;
    box-sizing: border-box;
}
.hp-perangkat-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    border-radius: 10px;
    display: block;
}
.hp-perangkat-caption {
    position: absolute;
    bottom: 0;
    left: .4rem;
    right: .4rem;
    background: linear-gradient(to top, rgba(28,16,1,.85), transparent);
    color: #fff;
    padding: .8rem .6rem .5rem;
    border-radius: 0 0 10px 10px;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.hp-perangkat-name    { font-size: .75rem; font-weight: 700; }
.hp-perangkat-jabatan { font-size: .65rem; opacity: .85; }

.hp-car-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    color: #D97706;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    transition: background .2s;
    z-index: 2;
}
.hp-car-btn:hover { background: #F59E0B; color: #fff; }
.hp-car-btn:disabled { opacity: .4; cursor: default; }
.hp-car-prev { left: .5rem; }
.hp-car-next { right: .5rem; }
.hp-car-dots {
    display: flex;
    justify-content: center;
    gap: .4rem;
    margin-top: .8rem;
}
.hp-dot {
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #FDE68A;
    border: none;
    cursor: pointer;
    transition: background .2s, width .2s;
    padding: 0;
}
.hp-dot--active {
    background: #D97706;
    width: 1.2rem;
    border-radius: 4px;
}

/* ══════════════════════════════════════════════════════
   JAM KERJA CARD (.hp-jamkerja-card)
   ══════════════════════════════════════════════════════ */
.hp-jamkerja-card {
    background: linear-gradient(145deg, #FFFBEB 0%, #FFF8E1 60%, #FEF3C7 100%);
    border: 1px solid #FDE68A;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(217,119,6,.08);
}
.hp-jk-list {
    display: flex;
    flex-direction: column;
}
.hp-jk-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem 1.1rem;
    border-bottom: 1px solid rgba(253,230,138,.5);
    gap: .5rem;
    transition: background .2s;
}
.hp-jk-row:last-child { border-bottom: none; }
.hp-jk-row:hover { background: rgba(253,230,138,.3); }
.hp-jk-today {
    background: rgba(217,119,6,.08);
    font-weight: 700;
}
.hp-jk-libur .hp-jk-day { color: #9CA3AF; }
.hp-jk-day {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .82rem;
    color: #78350F;
    min-width: 80px;
    font-weight: 500;
}
.hp-jk-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #D97706;
    display: inline-block;
    flex-shrink: 0;
    animation: pulse-dot 1.5s infinite;
}
@keyframes pulse-dot { 0%,100%{opacity:1} 50%{opacity:.3} }
.hp-jk-time {
    display: flex;
    align-items: center;
    gap: .3rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.hp-jk-chip {
    font-size: .72rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.hp-jk-chip--masuk  { background: rgba(34,197,94,.1);  color: #15803D; }
.hp-jk-chip--keluar { background: rgba(239,68,68,.1);  color: #B91C1C; }
.hp-jk-chip--libur  { background: rgba(139,92,246,.1); color: #6D28D9; }
.hp-jk-sep { color: #D1D5DB; font-size: .75rem; }
.hp-jk-empty {
    text-align: center;
    padding: 2rem 1rem;
    color: #9CA3AF;
}
.hp-jk-empty i { font-size: 1.6rem; margin-bottom: .5rem; display: block; }
.hp-jk-empty p { font-size: .82rem; }
.hp-jk-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1.1rem;
    background: rgba(253,230,138,.25);
    border-top: 1px solid #FDE68A;
    gap: .5rem;
}
.hp-jk-note {
    font-size: .72rem;
    color: #92400E;
    display: flex;
    align-items: center;
    gap: .3rem;
}
.hp-jk-kehadiran-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .78rem;
    font-weight: 700;
    padding: .4rem .9rem;
    background: linear-gradient(135deg, #D97706, #B45309);
    color: #fff;
    border: none;
    border-radius: 20px;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity .2s, transform .15s;
    box-shadow: 0 2px 8px rgba(217,119,6,.3);
}
.hp-jk-kehadiran-btn:hover { opacity: .9; transform: translateY(-1px); }

/* ══════════════════════════════════════════════════════
   MODAL KEHADIRAN (.hp-kh-*)
   ══════════════════════════════════════════════════════ */
.hp-kh-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.55);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
}
.hp-kh-overlay.is-open {
    opacity: 1;
    pointer-events: all;
}
.hp-kh-modal {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    width: 100%;
    max-width: 420px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
    transform: translateY(20px);
    transition: transform .25s;
}
.hp-kh-overlay.is-open .hp-kh-modal { transform: translateY(0); }
.hp-kh-modal-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(135deg, #92400E, #78350F);
    color: #fff;
    flex-shrink: 0;
}
.hp-kh-modal-icon {
    width: 38px; height: 38px;
    background: #D97706;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}
.hp-kh-modal-header h3 { font-size: .92rem; color: #fff; margin: 0; }
.hp-kh-modal-header p { font-size: .72rem; color: #FDE68A; margin: 0; }
.hp-kh-modal-actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }
.hp-kh-login-btn, .hp-kh-close {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: rgba(255,255,255,.15);
    border: none;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    font-size: .85rem;
    text-decoration: none;
    transition: background .2s;
}
.hp-kh-login-btn:hover, .hp-kh-close:hover { background: rgba(255,255,255,.3); color: #fff; }
.hp-kh-summary {
    display: flex;
    border-bottom: 1px solid #F3F4F6;
    flex-shrink: 0;
}
.hp-kh-stat {
    flex: 1;
    text-align: center;
    padding: .75rem .5rem;
    border-right: 1px solid #F3F4F6;
}
.hp-kh-stat:last-child { border-right: none; }
.hp-kh-stat-num { display: block; font-size: 1.4rem; font-weight: 800; line-height: 1; }
.hp-kh-stat-label { display: block; font-size: .7rem; color: #6B7280; margin-top: 2px; }
.hp-kh-stat--hadir .hp-kh-stat-num { color: #16A34A; }
.hp-kh-stat--izin  .hp-kh-stat-num { color: #D97706; }
.hp-kh-stat--belum .hp-kh-stat-num { color: #6B7280; }
.hp-kh-list {
    overflow-y: auto;
    padding: .25rem 1rem;
    flex: 1;
}
.hp-kh-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 0;
    border-bottom: 1px solid #F9FAFB;
}
.hp-kh-item:last-child { border-bottom: none; }
.hp-kh-avatar { position: relative; flex-shrink: 0; }
.hp-kh-avatar img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.hp-kh-dot {
    position: absolute; bottom: 0; right: 0;
    width: 10px; height: 10px;
    border-radius: 50%;
    border: 2px solid #fff;
}
.hp-kh-dot--hadir { background: #22C55E; }
.hp-kh-dot--izin  { background: #F59E0B; }
.hp-kh-dot--belum { background: #9CA3AF; }
.hp-kh-info { flex: 1; min-width: 0; }
.hp-kh-name    { display: block; font-size: .82rem; font-weight: 700; color: #1F2937; }
.hp-kh-jabatan { display: block; font-size: .7rem; color: #6B7280; }
.hp-kh-badge {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: .7rem; font-weight: 600;
    padding: 3px 9px; border-radius: 20px;
    white-space: nowrap;
}
.hp-kh-badge--hadir { background: rgba(34,197,94,.1);  color: #16A34A; }
.hp-kh-badge--izin  { background: rgba(245,158,11,.1); color: #D97706; }
.hp-kh-badge--belum { background: rgba(148,163,184,.1); color: #6B7280; }

/* ── Potensi Grid 2x2 ── */
.hp-potensi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
}
/* Compact variant (di bawah perangkat) — aspek lebih pendek */
.hp-potensi-grid--compact .hp-potensi-card {
    aspect-ratio: 3/2;
}

/* ══════════════════════════════════════════════════════
   GALERI INLINE HOMEPAGE (.hp-galeri-*)
   ══════════════════════════════════════════════════════ */
.hp-galeri-inline {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(146,64,14,.18);
    box-shadow: 0 6px 28px rgba(146,64,14,.12), 0 1px 4px rgba(146,64,14,.08);
    display: flex;
    flex-direction: column;
    /* Tidak pakai height:100% agar tidak ada ruang kosong — tinggi ditentukan oleh foto */
    background: #fff;
}
/* Header galeri — identik gaya navbar */
.hp-galeri-inline .wgaleri-header {
    background: linear-gradient(135deg, #B45309, #92400E) !important;
    border-left: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    padding: .85rem 1rem !important;
    gap: .75rem !important;
    color: #fff !important;
    position: relative !important;
}
.hp-galeri-inline .wgaleri-header::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(253,230,138,.5), transparent) !important;
}
.hp-galeri-inline .wgaleri-header-icon {
    background: rgba(255,255,255,.2) !important;
    color: #FCD34D !important;
    border-radius: 9px !important;
    width: 36px !important; height: 36px !important;
    font-size: .95rem !important;
}
.hp-galeri-inline .wgaleri-header-text h3 {
    color: #fff !important;
    font-size: .85rem !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
}
.hp-galeri-inline .wgaleri-header-text p {
    color: rgba(255,255,255,.7) !important;
    font-size: .7rem !important;
}
.hp-galeri-inline .wgaleri-header-link {
    background: rgba(255,255,255,.18) !important;
    color: #FCD34D !important;
    border-radius: 7px !important;
    width: 28px !important; height: 28px !important;
    font-size: .72rem !important;
    transition: background .2s, transform .2s !important;
}
.hp-galeri-inline .wgaleri-header-link:hover {
    background: rgba(255,255,255,.32) !important;
    transform: scale(1.1) !important;
}
/* Grid galeri: featured (span full, aspect-ratio) + 2 thumb di bawah — tanpa empty row */
.hp-galeri-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* Tidak memakai grid-template-rows agar tidak ada empty row jika item < 3 */
    gap: 2px;
    background: #B45309;
    flex-shrink: 0;
}
.hp-galeri-cell {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 0 !important;
    aspect-ratio: 4/3;
}
.hp-galeri-cell:first-child {
    grid-column: 1 / -1;
    aspect-ratio: 16/9;
    border-radius: 0 !important;
}
/* Hapus aspect-ratio bawaan wgaleri-slide */
.hp-galeri-inline .wgaleri-slide {
    aspect-ratio: unset !important;
    height: 100% !important;
    min-height: inherit !important;
}
.hp-galeri-inline .wgaleri-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease !important;
}
.hp-galeri-inline .wgaleri-slide:hover img {
    transform: scale(1.06) !important;
}
/* Overlay pada featured image lebih kuat */
.hp-galeri-cell:first-child .wgaleri-slide-overlay {
    background: linear-gradient(to top, rgba(28,16,1,.72) 0%, rgba(28,16,1,.15) 50%, transparent 100%) !important;
    padding: 1.2rem 1rem .8rem !important;
}
.hp-galeri-cell:first-child .wgaleri-slide-title {
    font-size: .83rem !important;
}
/* Footer galeri konsisten dengan peta footer */
.hp-galeri-inline .wgaleri-footer {
    padding: .55rem 1rem !important;
    background: var(--primary-50) !important;
    border-top: 1px solid rgba(146,64,14,.12) !important;
    flex-shrink: 0 !important;
}
.hp-galeri-inline .wgaleri-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

/* ══════════════════════════════════════════════════════
   PETA CARD HOMEPAGE (.hp-peta-*)
   ══════════════════════════════════════════════════════ */
.hp-peta-card {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(146,64,14,.18);
    box-shadow: 0 6px 28px rgba(146,64,14,.12), 0 1px 4px rgba(146,64,14,.08);
}
.hp-peta-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    background: linear-gradient(135deg, #B45309, #92400E);
    color: #fff;
    position: relative;
}
.hp-peta-header::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(253,230,138,.5), transparent);
}
.hp-peta-header-icon {
    width: 36px; height: 36px;
    background: rgba(255,255,255,.2);
    border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    font-size: .95rem;
    color: #FCD34D;
    flex-shrink: 0;
}
.hp-peta-header h3 { font-size: .85rem; color: #fff; margin: 0; font-weight: 700; letter-spacing: .01em; }
.hp-peta-header p  { font-size: .7rem; color: rgba(255,255,255,.7); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hp-peta-map {
    height: 180px;
    width: 100%;
}
.hp-peta-map--tall {
    height: 280px;
}
.hp-peta-card--full {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.hp-peta-card--full .hp-peta-map--tall {
    flex: 1;
    height: auto;
    min-height: 260px;
}
.hp-peta-footer {
    padding: .55rem 1rem;
    background: var(--primary-50);
    border-top: 1px solid rgba(146,64,14,.12);
}
.hp-peta-link {
    font-size: .72rem;
    color: var(--primary-darker);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-weight: 600;
    transition: color .2s;
}
.hp-peta-link:hover { color: var(--primary); }
.hp-potensi-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4/3;
    display: block;
    text-decoration: none;
    background: linear-gradient(135deg, #D97706, #92400E);
}
.hp-potensi-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s;
}
.hp-potensi-card:hover img { transform: scale(1.06); }
.hp-potensi-icon-bg {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: rgba(255,255,255,.5);
}
.hp-potensi-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28,16,1,.78) 0%, rgba(28,16,1,.2) 60%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: .9rem .8rem;
    color: #fff;
}
.hp-potensi-overlay > i { font-size: 1.1rem; color: #FCD34D; margin-bottom: .25rem; }
.hp-potensi-label {
    font-size: .85rem;
    font-weight: 700;
    margin: 0 0 .15rem;
    color: #fff;
}
.hp-potensi-desc {
    font-size: .71rem;
    color: rgba(255,255,255,.82);
    margin: 0;
    line-height: 1.35;
}

/* Kategori Tabs — Berita */
.hp-cat-tabs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 1rem;
}
.hp-cat-tab {
    padding: 5px 16px;
    font-size: .8rem;
    font-weight: 600;
    color: #92400E;
    background: #FEF3C7;
    border: 1.5px solid #FDE68A;
    border-radius: 50px;
    text-decoration: none;
    transition: all .2s;
    white-space: nowrap;
}
.hp-cat-tab:hover,
.hp-cat-tab--active {
    background: #92400E;
    border-color: #92400E;
    color: #fff;
}

/* ── Berita Grid ── */
.hp-berita-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
.hp-berita-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    border: 1px solid #FDE68A;
    transition: transform .2s, box-shadow .2s;
}
.hp-berita-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px rgba(217,119,6,.15);
}
.hp-berita-img-wrap {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
}
.hp-berita-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s;
}
.hp-berita-card:hover .hp-berita-img-wrap img { transform: scale(1.05); }
.hp-berita-cat {
    position: absolute;
    top: .5rem;
    left: .5rem;
    background: #D97706;
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    padding: .15rem .5rem;
    border-radius: 4px;
    text-transform: uppercase;
}
.hp-berita-body {
    padding: .85rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}
.hp-berita-title {
    font-size: .85rem;
    font-weight: 700;
    color: #1C1009;
    margin: 0;
    line-height: 1.4;
}
.hp-berita-date {
    font-size: .72rem;
    color: #D97706;
    margin: 0;
}
.hp-berita-excerpt {
    font-size: .76rem;
    color: #78716C;
    margin: 0;
    line-height: 1.5;
    flex: 1;
}

/* ── Agenda List ── */
.hp-agenda-list {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}
.hp-agenda-item {
    display: flex;
    align-items: stretch;
    gap: .9rem;
    background: #fff;
    border-radius: 10px;
    padding: .8rem;
    text-decoration: none;
    border: 1px solid #FDE68A;
    transition: transform .2s, box-shadow .2s;
}
.hp-agenda-item:hover {
    transform: translateX(3px);
    box-shadow: 0 4px 14px rgba(217,119,6,.14);
}
.hp-ag-date {
    flex-shrink: 0;
    width: 2.8rem;
    background: linear-gradient(135deg, #F59E0B, #D97706);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: .3rem;
}
.hp-ag-day   { font-size: 1.1rem; font-weight: 800; color: #fff; line-height: 1; }
.hp-ag-month { font-size: .62rem; color: rgba(255,255,255,.9); text-transform: uppercase; }
.hp-ag-info  { flex: 1; display: flex; flex-direction: column; gap: .2rem; }
.hp-ag-badge {
    font-size: .62rem;
    font-weight: 700;
    padding: .1rem .45rem;
    border-radius: 4px;
    display: inline-block;
    width: fit-content;
}
.hp-ag-badge--today    { background: #FEF3C7; color: #D97706; }
.hp-ag-badge--upcoming { background: #DBEAFE; color: #2563EB; }
.hp-ag-badge--past     { background: #F3F4F6; color: #6B7280; }
.hp-ag-title {
    font-size: .8rem;
    font-weight: 600;
    color: #1C1009;
    margin: 0;
    line-height: 1.35;
}
.hp-ag-loc {
    font-size: .7rem;
    color: #92400E;
    display: flex;
    align-items: center;
    gap: .25rem;
}
.hp-ag-time {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: .68rem;
    color: #78716C;
    min-width: 2rem;
}
.hp-ag-time span:first-child { font-weight: 700; color: #D97706; font-size: .78rem; }

.hp-agenda-empty {
    text-align: center;
    padding: 2rem;
    color: #A8A29E;
}
.hp-agenda-empty i { font-size: 2rem; display: block; margin-bottom: .5rem; }

/* ── Widget Statistik Pengunjung ── */
.hp-visitor-card {
    background: #fff;
    border-radius: 12px;
    padding: 1.1rem 1.2rem;
    margin-top: 1rem;
    box-shadow: 0 2px 12px rgba(120,53,15,.07);
    border: 1px solid #FDE68A;
}
.hp-visitor-head {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: 1rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid #FEF3C7;
}
.hp-visitor-title {
    font-size: .9rem;
    font-weight: 700;
    color: #78350F;
    margin: 0;
}
.hp-visitor-sub {
    font-size: .72rem;
    color: #A78BFA;
    margin: 0;
    color: #B45309;
    opacity: .75;
}
.hp-visitor-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .8rem;
}
.hp-visitor-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    text-align: center;
    padding: .7rem .5rem;
    border-radius: 10px;
    background: #FFFBEB;
    border: 1px solid #FEF3C7;
}
.hp-visitor-icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: .9rem;
}
.hp-visitor-icon--today    { background: #DBEAFE; color: #1D4ED8; }
.hp-visitor-icon--yesterday{ background: #D1FAE5; color: #065F46; }
.hp-visitor-icon--total    { background: #FCE7F3; color: #9D174D; }
.hp-visitor-num {
    font-size: 1.25rem;
    font-weight: 800;
    color: #78350F;
    line-height: 1.1;
    display: block;
}
.hp-visitor-label {
    font-size: .68rem;
    font-weight: 600;
    color: #92400E;
    opacity: .7;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .hp-row--7-5 { grid-template-columns: 1fr; }
    .hp-row--6-6 { grid-template-columns: 1fr; }
    .hp-row--3col { grid-template-columns: 1fr 1fr; }
    .hp-berita-grid { grid-template-columns: repeat(2, 1fr); }
    .hp-stat-grid { grid-template-columns: repeat(3, 1fr); }
    /* Reset float sambutan — kolom sudah stack, tidak perlu overlap */
    .hp-col--sambutan-float { margin-top: 0; }
    .hp-col--side .wsholat-card { margin-bottom: 0; }
    .hp-section--light { padding-bottom: 3.5rem; }
    .hp-section--white { padding-top: 3.5rem; }
    /* Perangkat carousel mobile — tampilan lebih baik */
    .hp-perangkat-viewport { height: 360px; }
    .hp-perangkat-slide { padding: 0 .3rem; }
    .hp-perangkat-caption { padding: 1.2rem .8rem .7rem; }
    .hp-perangkat-name { font-size: .88rem; }
    .hp-perangkat-jabatan { font-size: .73rem; }
    .hp-car-btn { width: 2.4rem; height: 2.4rem; font-size: .9rem; }
}
@media (max-width: 640px) {
    .hp-section { padding: 2.2rem 0; }
    .hp-row--3col { grid-template-columns: 1fr; }
    .hp-layanan-grid { grid-template-columns: repeat(3, 1fr); }
    .hp-layanan-grid--9 { gap: .45rem; }
    .hp-layanan-grid--9 .hp-lay-card { padding: .65rem .4rem .6rem; gap: .25rem; border-radius: 10px; }
    .hp-layanan-grid--9 .hp-lay-icon { width: 2.2rem; height: 2.2rem; font-size: .85rem; margin-bottom: .1rem; }
    .hp-layanan-grid--9 .hp-lay-name { font-size: .68rem; }
    .hp-layanan-grid--9 .hp-lay-desc { font-size: .6rem; line-height: 1.3; }
    .hp-stat-grid { grid-template-columns: repeat(2, 1fr); }
    .hp-berita-grid { grid-template-columns: 1fr; }
    .hp-potensi-grid { grid-template-columns: 1fr 1fr; }
    /* Sambutan mobile */
    .hp-sambutan-card { flex-direction: column; }
    .hp-sambutan-photo-col { width: 100%; height: 240px; }
    .hp-sambutan-photo { width: 160px; height: 100%; bottom: 0; }
    .hp-sambutan-footer { flex-direction: column; align-items: flex-start; gap: .3rem; }
    /* Perangkat carousel mobile kecil */
    .hp-perangkat-viewport { height: 420px; }
    .hp-perangkat-slide { padding: 0; border-radius: 14px; }
    .hp-perangkat-slide img { border-radius: 14px; object-position: top center; }
    .hp-perangkat-caption {
        left: 0; right: 0;
        border-radius: 0 0 14px 14px;
        padding: 1.8rem 1rem .9rem;
        background: linear-gradient(to top, rgba(28,16,1,.92) 0%, rgba(28,16,1,.5) 60%, transparent 100%);
    }
    .hp-perangkat-name { font-size: .95rem; }
    .hp-perangkat-jabatan { font-size: .78rem; opacity: .9; }
    .hp-car-btn { width: 2.6rem; height: 2.6rem; font-size: .95rem; }
    .hp-car-prev { left: .6rem; }
    .hp-car-next { right: .6rem; }
    .hp-car-dots { margin-top: .6rem; }
    .hp-dot { width: .55rem; height: .55rem; }
    .hp-dot--active { width: 1.4rem; }
}

/* ═══════════════════════════════════════════════════════════════
   FIX 1: NAVBAR — Scrolled state → background amber elegan
   ═══════════════════════════════════════════════════════════════ */

/* Override: saat scrolled/solid pakai amber/senja, teks putih */
.navbar-cahya.scrolled,
.navbar-cahya.solid {
  background: linear-gradient(135deg, #B45309 0%, #D97706 60%, #F59E0B 100%) !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: 0 2px 20px rgba(180,83,9,.35) !important;
}

/* Teks tetap putih saat scrolled (amber background = white text) */
.navbar-cahya.scrolled .navbar-brand-text,
.navbar-cahya.solid   .navbar-brand-text {
  color: #fff !important;
}
.navbar-cahya.scrolled .navbar-link,
.navbar-cahya.solid   .navbar-link {
  color: rgba(255,255,255,.92) !important;
}
.navbar-cahya.scrolled .navbar-link:hover,
.navbar-cahya.solid   .navbar-link:hover,
.navbar-cahya.scrolled .navbar-menu > li.nav-active > .navbar-link,
.navbar-cahya.solid   .navbar-menu > li.nav-active > .navbar-link {
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
}
.navbar-cahya.scrolled .navbar-toggle,
.navbar-cahya.solid   .navbar-toggle {
  color: #fff !important;
}

/* Icon button saat scrolled — putih di atas amber */
.navbar-cahya.scrolled .navbar-icon-btn,
.navbar-cahya.solid   .navbar-icon-btn {
  color: rgba(255,255,255,.92) !important;
  background: rgba(255,255,255,.18) !important;
}
.navbar-cahya.scrolled .navbar-icon-btn:hover,
.navbar-cahya.solid   .navbar-icon-btn:hover {
  background: rgba(255,255,255,.3) !important;
  color: #fff !important;
}

/* Underline aktif tetap kuning cerah */
.navbar-cahya.scrolled .navbar-menu > li.nav-active > .navbar-link,
.navbar-cahya.solid   .navbar-menu > li.nav-active > .navbar-link {
  border-bottom: 2px solid #FDE68A !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 2: LOGIN BUTTON — Margin right agar tidak terpotong
   ═══════════════════════════════════════════════════════════════ */

.navbar-icons {
  padding-right: 1.25rem !important;
  gap: 8px !important;
}

/* Tombol Masuk (siteman): lebih telihat */
.navbar-icons a[href*="siteman"] {
  background: rgba(255,255,255,.22) !important;
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,.55) !important;
  border-radius: 8px !important;
  width: auto !important;
  height: auto !important;
  padding: 7px 16px !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  letter-spacing: .3px;
  transition: background .25s, border-color .25s !important;
}
.navbar-icons a[href*="siteman"]:hover {
  background: rgba(255,255,255,.35) !important;
  border-color: rgba(255,255,255,.8) !important;
}
/* Saat scrolled: tombol masuk putih di atas amber */
.navbar-cahya.scrolled .navbar-icons a[href*="siteman"],
.navbar-cahya.solid   .navbar-icons a[href*="siteman"] {
  background: rgba(255,255,255,.22) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.5) !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 3: FOOTER — Background image tampil penuh + layer gelap
   ═══════════════════════════════════════════════════════════════ */

.footer-cahya {
  position: relative !important;
  color: #fff !important;
  overflow: hidden !important;
  min-height: 320px;
}

/* Pastikan background image mengisi penuh area footer */
.footer-bg {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  z-index: 0 !important;
}

/* Overlay gelap agar teks terbaca */
.footer-bg-overlay {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  background: linear-gradient(
    180deg,
    rgba(28,16,1,.78) 0%,
    rgba(92,40,14,.85) 40%,
    rgba(28,16,1,.92) 100%
  ) !important;
  z-index: 1 !important;
}

.footer-main {
  position: relative !important;
  z-index: 2 !important;
}
.footer-bottom-bar {
  position: relative !important;
  z-index: 2 !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 1: NAVBAR — Scrolled state → background amber elegan
   ═══════════════════════════════════════════════════════════════ */

/* Override: saat scrolled/solid pakai amber/senja, teks putih */
.navbar-cahya.scrolled,
.navbar-cahya.solid {
  background: linear-gradient(135deg, #B45309 0%, #D97706 60%, #F59E0B 100%) !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: 0 2px 20px rgba(180,83,9,.35) !important;
}

/* Teks tetap putih saat scrolled (amber background = white text) */
.navbar-cahya.scrolled .navbar-brand-text,
.navbar-cahya.solid   .navbar-brand-text {
  color: #fff !important;
}
.navbar-cahya.scrolled .navbar-link,
.navbar-cahya.solid   .navbar-link {
  color: rgba(255,255,255,.92) !important;
}
.navbar-cahya.scrolled .navbar-link:hover,
.navbar-cahya.solid   .navbar-link:hover,
.navbar-cahya.scrolled .navbar-menu > li.nav-active > .navbar-link,
.navbar-cahya.solid   .navbar-menu > li.nav-active > .navbar-link {
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
}
.navbar-cahya.scrolled .navbar-toggle,
.navbar-cahya.solid   .navbar-toggle {
  color: #fff !important;
}

/* Icon button saat scrolled — putih di atas amber */
.navbar-cahya.scrolled .navbar-icon-btn,
.navbar-cahya.solid   .navbar-icon-btn {
  color: rgba(255,255,255,.92) !important;
  background: rgba(255,255,255,.18) !important;
}
.navbar-cahya.scrolled .navbar-icon-btn:hover,
.navbar-cahya.solid   .navbar-icon-btn:hover {
  background: rgba(255,255,255,.3) !important;
  color: #fff !important;
}

/* Underline aktif tetap kuning cerah */
.navbar-cahya.scrolled .navbar-menu > li.nav-active > .navbar-link,
.navbar-cahya.solid   .navbar-menu > li.nav-active > .navbar-link {
  border-bottom: 2px solid #FDE68A !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 2: LOGIN BUTTON — Margin right agar tidak terpotong
   ═══════════════════════════════════════════════════════════════ */

.navbar-icons {
  padding-right: 1.25rem !important;
  gap: 8px !important;
}

/* Tombol Masuk (siteman): lebih telihat */
.navbar-icons a[href*="siteman"] {
  background: rgba(255,255,255,.22) !important;
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,.55) !important;
  border-radius: 8px !important;
  width: auto !important;
  height: auto !important;
  padding: 7px 16px !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  letter-spacing: .3px;
  transition: background .25s, border-color .25s !important;
}
.navbar-icons a[href*="siteman"]:hover {
  background: rgba(255,255,255,.35) !important;
  border-color: rgba(255,255,255,.8) !important;
}
/* Saat scrolled: tombol masuk putih di atas amber */
.navbar-cahya.scrolled .navbar-icons a[href*="siteman"],
.navbar-cahya.solid   .navbar-icons a[href*="siteman"] {
  background: rgba(255,255,255,.22) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.5) !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 3: FOOTER — Background image tampil penuh + layer gelap
   ═══════════════════════════════════════════════════════════════ */

.footer-cahya {
  position: relative !important;
  color: #fff !important;
  overflow: hidden !important;
  min-height: 320px;
}

/* Pastikan background image mengisi penuh area footer */
.footer-bg {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  z-index: 0 !important;
}

/* Overlay gelap agar teks terbaca */
.footer-bg-overlay {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  background: linear-gradient(
    180deg,
    rgba(28,16,1,.78) 0%,
    rgba(92,40,14,.85) 40%,
    rgba(28,16,1,.92) 100%
  ) !important;
  z-index: 1 !important;
}

.footer-main {
  position: relative !important;
  z-index: 2 !important;
}
.footer-bottom-bar {
  position: relative !important;
  z-index: 2 !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX FOOTER BACKGROUND IMAGE — Override semua CSS lama yang
   menutup gambar footer.png
   ═══════════════════════════════════════════════════════════════ */

/* footer-cahya: harus position:relative dan TRANSPARENT bg */
.footer-cahya {
  position: relative !important;
  background: transparent !important;
  color: #fff !important;
  overflow: hidden !important;
  margin-top: 0 !important;
}

/* Hapus wave (lama) — tidak dipakai lagi */
.footer-wave { display: none !important; }

/* footer-main LAMA punya background navy — reset ke transparent */
.footer-main {
  background: transparent !important;
  position: relative !important;
  z-index: 2 !important;
  padding: 64px 0 40px !important;
}

/* Hapus SVG circles pattern (::before pada footer-main lama) */
.footer-main::before {
  display: none !important;
  background-image: none !important;
}

/* Gambar background: menutupi seluruh footer-cahya */
.footer-bg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  z-index: 0 !important;
  display: block !important;
}

/* Overlay gelap di atas gambar (z=1), konten di z=2 */
.footer-bg-overlay {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  background: linear-gradient(
    180deg,
    rgba(28,16,1,.65) 0%,
    rgba(92,40,14,.75) 50%,
    rgba(28,16,1,.85) 100%
  ) !important;
  z-index: 1 !important;
}

/* Pastikan footer-bottom-bar juga di atas image */
.footer-bottom-bar {
  position: relative !important;
  z-index: 2 !important;
  background: rgba(0,0,0,.35) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
}

/* Brand desc & navlist lama — reset kalau ada konflik warna */
.footer-brand-left { position: relative; z-index: 2; }
.footer-columns,
.footer-brand-row,
.footer-grid,
.footer-bsre-row { position: relative !important; z-index: 2 !important; }

/* ═══════════════════════════════════════════════════════════════
   FIX FOOTER: Cerah + Teks Hitam/Gelap sesuai referensi
   ═══════════════════════════════════════════════════════════════ */

/* Overlay sangat tipis agar gambar footer.png cerah terlihat */
.footer-bg-overlay {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  background: rgba(255, 220, 120, 0.18) !important;
  z-index: 1 !important;
}

/* Seluruh teks footer → gelap/hitam */
.footer-cahya,
.footer-main,
.footer-cahya * {
  color: #1C1001 !important;
}

/* Judul kolom footer → coklat amber gelap */
.footer-col-title {
  color: #7C2D12 !important;
  border-bottom-color: rgba(124,45,18,.2) !important;
}

/* Brand nama desa */
.footer-brand-tema {
  color: #92400E !important;
}
.footer-brand-label {
  color: #78350F !important;
}
.footer-brand-desc {
  color: #3D2B1F !important;
}

/* Link navigasi footer */
.footer-nav-list li a {
  color: #3D2B1F !important;
}
.footer-nav-list li a:hover {
  color: #92400E !important;
}

/* Info kontak */
.footer-info-list li {
  color: #3D2B1F !important;
}
.footer-info-list li i {
  color: #B45309 !important;
}

/* Ikon sosmed → lingkaran gelap transparan */
.footer-soc {
  background: rgba(92,40,14,.12) !important;
  color: #3D2B1F !important;
  border-color: rgba(92,40,14,.2) !important;
}
.footer-soc:hover {
  background: #B45309 !important;
  color: #fff !important;
  border-color: #B45309 !important;
}

/* BSrE row */
.footer-bsre-row {
  border-top-color: rgba(0,0,0,.12) !important;
}

/* Bottom bar: sedikit gelap untuk kontras */
.footer-bottom-bar {
  background: rgba(92,40,14,.18) !important;
  border-top: 1px solid rgba(92,40,14,.2) !important;
}
.footer-bottom-bar,
.footer-bottom-bar * {
  color: #3D2B1F !important;
}
.footer-bottom-bar i.fa-heart {
  color: #B45309 !important;
}

/* ═══════════════════════════════════════════════════════════════
   TEKS BERJALAN (Marquee) — Section 1 Kanan bawah Jadwal Sholat
   ═══════════════════════════════════════════════════════════════ */

.hp-marquee-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 1rem;
  border: 1.5px solid rgba(217,119,6,.3);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(217,119,6,.08);
  min-height: 42px;
}

.hp-marquee-label {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent, #F59E0B);
  color: #fff;
  width: 42px;
  min-height: 42px;
  font-size: .9rem;
}

.hp-marquee-track-outer {
  flex: 1;
  overflow: hidden;
  position: relative;
  min-height: 42px;
  display: flex;
  align-items: center;
}

.hp-marquee-track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  gap: 0;
  animation: hp-marquee-scroll 22s linear infinite;
  padding-left: 100%;
}

.hp-marquee-track:hover {
  animation-play-state: paused;
}

.hp-marquee-item {
  font-size: .85rem;
  color: #3D2B1F;
  font-weight: 500;
  padding: 0 1rem;
}

.hp-marquee-item a {
  color: var(--primary, #D97706);
  font-weight: 600;
  text-decoration: underline;
}

.hp-marquee-sep {
  color: var(--accent, #F59E0B);
  font-size: .8rem;
  padding: 0 .25rem;
}

@keyframes hp-marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

/* ═══════════════════════════════════════════════════════════════
   TEKS BERJALAN — Full-width bar antara Section 1 & Section 2
   ═══════════════════════════════════════════════════════════════ */

.hp-marquee-bar {
  background: linear-gradient(90deg, #FEF3C7 0%, #FDE68A 50%, #FEF3C7 100%);
  border-top: 2px solid rgba(217,119,6,.25);
  border-bottom: 2px solid rgba(217,119,6,.25);
  padding: 0;
}

.hp-marquee-bar .hp-marquee-wrap {
  margin-top: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  min-height: 44px;
}

.hp-marquee-bar .hp-marquee-label {
  background: var(--accent, #F59E0B) !important;
  min-height: 44px;
  border-radius: 0;
}

.hp-marquee-bar .hp-marquee-item {
  color: #78350F !important;
  font-weight: 600;
}

.hp-marquee-bar .hp-marquee-item a {
  color: #92400E !important;
}

.hp-marquee-bar .hp-marquee-sep {
  color: #B45309 !important;
}

/* ═══════════════════════════════════════════════════════════════
   MARQUEE BAR — Jarak atas-bawah agar tidak nempel section
   ═══════════════════════════════════════════════════════════════ */

.hp-marquee-bar {
  margin: 2rem 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  border-top: 2px solid rgba(217,119,6,.3) !important;
  border-bottom: 2px solid rgba(217,119,6,.3) !important;
}

/* ═══════════════════════════════════════════════════════════════
   MARQUEE INLINE — Di dalam section (bawah carousel perangkat)
   ═══════════════════════════════════════════════════════════════ */
.hp-marquee-inline {
    display: flex;
    align-items: center;
    gap: 0;
    margin-top: 1rem;
    border-radius: 10px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--primary-darker), #B45309);
    box-shadow: 0 3px 14px rgba(146,64,14,.18);
    min-height: 42px;
}
.hp-marquee-inline-label {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    background: rgba(255,255,255,.15);
    color: #FCD34D;
    font-size: .9rem;
    border-right: 1px solid rgba(255,255,255,.15);
}
.hp-marquee-inline-outer {
    flex: 1;
    overflow: hidden;
    position: relative;
    /* Fade kiri-kanan */
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}
.hp-marquee-inline-track {
    display: inline-flex;
    align-items: center;
    gap: 0;
    white-space: nowrap;
    animation: hpMarqueeInlineScroll 28s linear infinite;
    padding: 0 1rem;
}
.hp-marquee-inline-track:hover { animation-play-state: paused; }
@keyframes hpMarqueeInlineScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.hp-marquee-inline-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: 0 1.2rem;
    font-size: .78rem;
    font-weight: 600;
    color: rgba(255,255,255,.92);
    letter-spacing: .01em;
}
.hp-marquee-inline-link {
    color: #FCD34D;
    text-decoration: none;
    font-weight: 700;
    transition: color .2s;
}
.hp-marquee-inline-link:hover { color: #fff; text-decoration: underline; }
.hp-marquee-inline-sep {
    color: rgba(255,255,255,.3);
    font-size: .5rem;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════
   APBDES — 3 Grid Card Elegant (Redesign)
   ═══════════════════════════════════════════════════════════════ */

/* Reset grup lama */
.apbd-groups, .apbd-group, .apbd-group-header,
.apbd-table-wrap, .apbd-table { all: unset; display: none !important; }

/* ═══════════════════════════════════════════════════════════════
   TICKER / TEKS BERJALAN — Cahya Theme
   ═══════════════════════════════════════════════════════════════ */
.cahya-ticker {
    display: flex;
    align-items: stretch;
    overflow: hidden;
    position: relative;
    border-radius: 0 0 10px 10px;
    background: #78350F;
    border-top: 2px solid rgba(255,255,255,.15);
    min-height: 32px;
}

/* Label "Info" — kiri */
.cahya-ticker-label {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px 6px 12px;
    background: #D97706;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}
.cahya-ticker-label i {
    font-size: 11px;
    animation: cahyaTickerPulse 2s ease-in-out infinite;
}
@keyframes cahyaTickerPulse {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.2); }
}
/* Potongan diagonal kanan label */
.cahya-ticker-label::after {
    content: '';
    position: absolute;
    top: 0; right: -12px; bottom: 0;
    width: 24px;
    background: #D97706;
    transform: skewX(-14deg);
    z-index: -1;
}

/* Track wrapper */
.cahya-ticker-track-wrap {
    flex: 1;
    overflow: hidden;
    display: flex;
    align-items: center;
    padding-left: 14px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
}

/* Track bergerak */
.cahya-ticker-track {
    display: flex;
    align-items: center;
    white-space: nowrap;
    animation: cahyaTickerScroll 30s linear infinite;
    will-change: transform;
}
.cahya-ticker-track:hover {
    animation-play-state: paused;
}
@keyframes cahyaTickerScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Item teks */
.cahya-ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 16px;
    font-size: 11.5px;
    font-weight: 500;
    color: #FDE68A;
    line-height: 1;
    flex-shrink: 0;
}
.cahya-ticker-dot {
    font-size: 4px;
    color: #FCD34D;
    flex-shrink: 0;
}
.cahya-ticker-link {
    color: #FEF3C7;
    font-weight: 600;
    text-decoration: none;
    margin-left: 4px;
    transition: color .2s;
}
.cahya-ticker-link:hover {
    color: #fff;
    text-decoration: underline;
}
.cahya-ticker-link i { font-size: 9px; margin-left: 3px; }

/* Ticker standalone (di bawah banner LM, bukan langsung di bawah hero) */
.cahya-ticker--standalone {
    border-radius: 10px;
    margin-top: 1.25rem;
    border-top: none;
}

/* Responsive */
@media (max-width: 576px) {
    .cahya-ticker-label { padding: 6px 10px; font-size: 9px; }
    .cahya-ticker-label span { display: none; }
    .cahya-ticker-label::after { right: -8px; width: 16px; }
    .cahya-ticker-item { font-size: 10px; padding: 0 12px; }
}

