/**
* Template Name: Mamba
* Updated: Jul 27 2023 with Bootstrap v5.3.1
* Template URL: https://bootstrapmade.com/mamba-one-page-bootstrap-template-free/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
body {
  font-family: "Open Sans", sans-serif;
  color: #444;
}

a {
  color: #3956ff;
  text-decoration: none;
}

a:hover {
  color: #1100ff;
  text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
.font-primary {
  font-family: "Raleway", sans-serif;
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: 15px;
  z-index: 99999;
  background: #2f699c;
  width: 40px;
  height: 40px;
  border-radius: 4px;
  transition: all 0.4s;
}

.back-to-top i {
  font-size: 24px;
  color: #fff;
  line-height: 0;
}

.back-to-top:hover {
  background: #629fd3;
  color: #fff;
}

.back-to-top.active {
  visibility: visible;
  opacity: 1;
}

/*--------------------------------------------------------------
# Disable aos animation delay on mobile devices
--------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  [data-aos-delay] {
    transition-delay: 0 !important;
  }
}

/*--------------------------------------------------------------
# Top Bar
--------------------------------------------------------------*/
#topbar {
  background: #fff;
  border-bottom: 1px solid #eee;
  font-size: 15px;
  height: 30px;
  padding: 5;
}


/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#header {
  height: 70px;
  background: #5D87FF;
  z-index: 997;
  box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.06);
}

#header .logo h1 {
  font-size: 28px;
  margin: 0;
  padding: 10px 0;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 3px;
  text-transform: uppercase;
}

#header .logo h1 a,
#header .logo h1 a:hover {
  color: #ffffff;
  text-decoration: none;
}

#header .logo img {
  padding: 0;
  margin: 0;
  max-height: 40px;
}

.scrolled-offset {
  margin-top: 70px;
}



/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/**
* Desktop Navigation
*/
.navbar {
  padding: 0;
}

.navbar ul {
  margin: 0;
  padding: 0;
  display: flex;
  list-style: none;
  align-items: center;
}

.navbar li {
  position: relative;
}

.navbar a,
.navbar a:focus {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0 10px 30px;
  font-family: "Open Sans", sans-serif;
  font-size: 15px;
  color: #ffffff;
  white-space: nowrap;
  transition: 0.3s;
}

.navbar a i,
.navbar a:focus i {
  font-size: 12px;
  line-height: 0;
  margin-left: 5px;
}

.navbar a:hover,
.navbar .active,
.navbar .active:focus,
.navbar li:hover>a {
  color: #ffffff;
}

/* CSS untuk menu navigasi */
.nav-link {
    display: inline-block;
    padding: 10px 15px;
    transition: all 0.3s ease;
    text-decoration: none;
    color: #333;
}

.nav-link:hover {
    transform: translateY(-3px);
    color: #5588ff;
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
}

li {
    transition: transform 0.3s ease;
}

li:hover {
    transform: translateY(-3px);
}

li a {
    transition: color 0.3s ease;
}

li:hover a {
    color: #ffffff;
}

.navbar .dropdown ul {
  display: block;
  position: absolute;
  left: 14px;
  top: 100%;
  margin: 0;
  padding: 10px 0;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  background: #5D87FF;
  box-shadow: 0px 0px 30px rgba(255, 255, 255, 0.25);
  transition: 0.3s;
}

.navbar .dropdown ul li {
  min-width: 200px;
}

.navbar .dropdown ul a {
  padding: 10px 20px;
  text-transform: none;
}

.navbar .dropdown ul a i {
  font-size: 12px;
}

.navbar .dropdown ul a:hover,
.navbar .dropdown ul .active:hover,
.navbar .dropdown ul li:hover>a {
  color: #2d2d2d;
}

.navbar  ul a:hover,
.navbar  ul .active:hover,
.navbar  ul li:hover>a {
  color: #2d2d2d;
}



.navbar .dropdown:hover>ul {
  opacity: 1;
  visibility: visible;
}

.navbar .dropdown .dropdown ul {
  top: 0;
  left: calc(100% - 30px);
  visibility: hidden;
}

.navbar .dropdown .dropdown:hover>ul {
  opacity: 1;
  top: 0;
  left: 100%;
  visibility: visible;
}

@media (max-width: 1366px) {
  .navbar .dropdown .dropdown ul {
    left: -90%;
  }

  .navbar .dropdown .dropdown:hover>ul {
    left: -100%;
  }
}

/**
* Mobile Navigation
*/
.mobile-nav-toggle {
  color: #ffffff;
  font-size: 28px;
  cursor: pointer;
  display: none;
  line-height: 0;
  transition: 0.5s;
}

.mobile-nav-toggle.bi-x {
  color: #ffffff;
}

@media (max-width: 991px) {
  .mobile-nav-toggle {
    display: block;
  }

  .navbar ul {
    display: none;
  }
}

.navbar-mobile {
  position: fixed;
  overflow: hidden;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  background: rgba(31, 53, 72, 0.9);
  transition: 0.3s;
  z-index: 998;
}

.navbar-mobile .mobile-nav-toggle {
  position: absolute;
  top: 15px;
  right: 15px;
}

.navbar-mobile ul {
  display: block;
  position: absolute;
  top: 55px;
  right: 15px;
  bottom: 15px;
  left: 15px;
  padding: 10px 0;
  background-color: #5D87FF;
  overflow-y: auto;
  transition: 0.3s;
}

.navbar-mobile a,
.navbar-mobile a:focus {
  padding: 10px 20px;
  font-size: 15px;
  color: #ffffff;
}

.navbar-mobile a:hover,
.navbar-mobile .active,
.navbar-mobile li:hover>a {
  color: #a0a0a0;
}

.navbar-mobile .getstarted,
.navbar-mobile .getstarted:focus {
  margin: 15px;
}

.navbar-mobile .dropdown ul {
  position: static;
  display: none;
  margin: 10px 20px;
  padding: 10px 0;
  z-index: 99;
  opacity: 1;
  visibility: visible;
  background: #5D87FF;
  box-shadow: 0px 0px 30px rgba(255, 255, 255, 0.25);
}

.navbar-mobile .dropdown ul li {
  min-width: 200px;
}

.navbar-mobile .dropdown ul a {
  padding: 10px 20px;
}

.navbar-mobile .dropdown ul a i {
  font-size: 12px;
}

.navbar-mobile .dropdown ul a:hover,
.navbar-mobile .dropdown ul .active:hover,
.navbar-mobile .dropdown ul li:hover>a {
  color: #cacaca;
}

.navbar-mobile .dropdown>.dropdown-active {
  display: block;
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
#hero {
  width: 100%;
  height: calc(100vh - 110px);
  padding: 0;
  overflow: hidden;
  background: #000;
}

#hero .carousel-item {
  width: 100%;
  height: calc(100vh - 110px);
  background-size: cover;
  background-position: top right;
  background-repeat: no-repeat;
  overflow: hidden;
}

#hero .carousel-item::before {
  content: "";
  background-color: rgba(13, 30, 45, 0.6);
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
}

#hero .carousel-container {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

#hero .carousel-content {
  text-align: left;
}

@media (max-width: 992px) {

  #hero,
  #hero .carousel-item {
    height: calc(100vh - 70px);
  }

  #hero .carousel-content.container {
    padding: 0 50px;
  }
}

#hero h2 {
  color: #fff;
  margin-bottom: 30px;
  font-size: 48px;
  font-weight: 900;
}

#hero p {
  width: 80%;
  animation-delay: 0.4s;
  color: #fff;
}

#hero .carousel-inner .carousel-item {
  transition-property: opacity;
  background-position: center top;
}

#hero .carousel-inner .carousel-item,
#hero .carousel-inner .active.carousel-item-start,
#hero .carousel-inner .active.carousel-item-end {
  opacity: 0;
}

#hero .carousel-inner .active,
#hero .carousel-inner .carousel-item-next.carousel-item-start,
#hero .carousel-inner .carousel-item-prev.carousel-item-end {
  opacity: 1;
  transition: 0.5s;
}

#hero .carousel-inner .carousel-item-next,
#hero .carousel-inner .carousel-item-prev,
#hero .carousel-inner .active.carousel-item-start,
#hero .carousel-inner .active.carousel-item-end {
  left: 0;
  transform: translate3d(0, 0, 0);
}

#hero .carousel-control-prev,
#hero .carousel-control-next {
  width: 10%;
}

#hero .carousel-control-next-icon,
#hero .carousel-control-prev-icon {
  background: none;
  font-size: 48px;
  line-height: 1;
  width: auto;
  height: auto;
}

#hero .carousel-indicators li {
  list-style-type: none;
  cursor: pointer;
}

#hero .btn-get-started {
  font-family: "Raleway", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1px;
  display: inline-block;
  padding: 12px 32px;
  border-radius: 5px;
  transition: 0.5s;
  line-height: 1;
  margin: 10px;
  color: #fff;
  animation-delay: 0.8s;
  border: 0;
  background: #428bca;
}

#hero .btn-get-started:hover {
  background: #1c5c93;
}

@media (max-width: 768px) {
  #hero h2 {
    font-size: 28px;
  }
}

@media (max-height: 500px) {

  #hero,
  #hero .carousel-item {
    height: 120vh;
  }
}

@media (min-width: 1024px) {
  #hero p {
    width: 60%;
  }

  #hero .carousel-control-prev,
  #hero .carousel-control-next {
    width: 5%;
  }
}

/*--------------------------------------------------------------
# Sections General
--------------------------------------------------------------*/
section {
  padding: 60px 0;
  overflow: hidden;
}

.section-bg {
  background-color: #f5f9fc;
}

.section-title {
  text-align: center;
  padding-bottom: 30px;
}

.section-title h2 {
  font-size: 32px;
  font-weight: 600;
  margin-bottom: 20px;
  padding-bottom: 0;
  color: #405aa1;
}

.section-title p {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/
.breadcrumbs {
  padding: 15px 0;
  background-color: #f5f9fc;
  min-height: 40px;
}

.breadcrumbs h2 {
  font-size: 24px;
  font-weight: 300;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
}

.breadcrumbs ol li+li {
  padding-left: 10px;
}

.breadcrumbs ol li+li::before {
  display: inline-block;
  padding-right: 10px;
  color: #6c757d;
  content: "/";
}

@media (max-width: 768px) {
  .breadcrumbs .d-flex {
    display: block !important;
  }

  .breadcrumbs ol {
    display: block;
  }

  .breadcrumbs ol li {
    display: inline-block;
  }
}

/*--------------------------------------------------------------
# About Us
--------------------------------------------------------------*/
.about {
  padding-bottom: 30px;
}

.about .container {
  box-shadow: 0 5px 25px 0 rgba(214, 215, 216, 0.6);
}

.about .video-box img {
  padding: 15px 0;
}

.about .section-title p {
  text-align: left;
  font-style: italic;
  color: #666;
}

.about .about-content {
  padding: 40px;
}

.about .icon-box+.icon-box {
  margin-top: 40px;
}

.about .icon-box .icon {
  float: left;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  background: #f1f7fb;
  border-radius: 6px;
  transition: 0.5s;
}

.about .icon-box .icon i {
  color: #428bca;
  font-size: 32px;
}

.about .icon-box:hover .icon {
  background: #428bca;
}

.about .icon-box:hover .icon i {
  color: #fff;
}

.about .icon-box .title {
  margin-left: 95px;
  font-weight: 700;
  margin-bottom: 10px;
  font-size: 18px;
  text-transform: uppercase;
}

.about .icon-box .title a {
  color: #343a40;
  transition: 0.3s;
}

.about .icon-box .title a:hover {
  color: #428bca;
}

.about .icon-box .description {
  margin-left: 95px;
  line-height: 24px;
  font-size: 14px;
}

.about .video-box {
  position: relative;
}

.about .play-btn {
  width: 94px;
  height: 94px;
  background: radial-gradient(#428bca 50%, rgba(66, 139, 202, 0.4) 52%);
  border-radius: 50%;
  display: block;
  position: absolute;
  left: calc(50% - 47px);
  top: calc(50% - 47px);
  overflow: hidden;
}

.about .play-btn::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-40%) translateY(-50%);
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 15px solid #fff;
  z-index: 100;
  transition: all 400ms cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.about .play-btn::before {
  content: "";
  position: absolute;
  width: 120px;
  height: 120px;
  animation-delay: 0s;
  animation: pulsate-btn 2s;
  animation-direction: forwards;
  animation-iteration-count: infinite;
  animation-timing-function: steps;
  opacity: 1;
  border-radius: 50%;
  border: 5px solid rgba(66, 139, 202, 0.7);
  top: -15%;
  left: -15%;
  background: rgba(198, 16, 0, 0);
}

.about .play-btn:hover::after {
  border-left: 15px solid #428bca;
  transform: scale(20);
}

.about .play-btn:hover::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-40%) translateY(-50%);
  width: 0;
  height: 0;
  border: none;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 15px solid #fff;
  z-index: 200;
  animation: none;
  border-radius: 0;
}

@keyframes pulsate-btn {
  0% {
    transform: scale(0.6, 0.6);
    opacity: 1;
  }

  100% {
    transform: scale(1, 1);
    opacity: 0;
  }
}

/*--------------------------------------------------------------
# About Lists
--------------------------------------------------------------*/
.about-lists {
  padding: 40px;
}

.about-lists .row {
  overflow: hidden;
}

.about-lists .content-item {
  padding: 40px;
  border-left: 1px solid #d9e8f4;
  border-bottom: 1px solid #d9e8f4;
  margin: -1px;
}

.about-lists .content-item span {
  display: block;
  font-size: 24px;
  font-weight: 400;
  color: #9eccf4;
}

.about-lists .content-item h4 {
  font-size: 28px;
  font-weight: 400;
  padding: 0;
  margin: 20px 0;
}

.about-lists .content-item p {
  color: #aaaaaa;
  font-size: 15px;
  margin: 0;
  padding: 0;
}

@media (max-width: 768px) {
  .about-lists .content-item {
    padding: 40px 0;
  }
}



/*--------------------------------------------------------------
# Card
--------------------------------------------------------------*/
.news-card {
  height: 100%;
}

.card {
  height: 100%;
  border: none; /* Menghapus batas kartu */
  box-shadow: 0px 0 16px rgba(0, 0, 0, 0.1); /* Menambahkan bayangan */
  border-radius: 0; /* Menghapus sudut bulat */
}

.card-img-top {
  max-width: 100%;
  max-height: 200px;
  object-fit: cover;
}

.card-title {
  font-size: bold;
}

.card-text {
  font-size: 0.875rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


/*--------------------------------------------------------------
# Services
--------------------------------------------------------------*/
.services {
  padding-bottom: 30px;
}

.services .icon-box {
  margin-bottom: 20px;
  text-align: center;
}

.services .icon {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 80px;
  height: 80px;
  margin-bottom: 20px;
  background: #fff;
  border-radius: 50%;
  transition: 0.5s;
  color: #428bca;
  box-shadow: 0px 0 25px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

.services .icon i {
  font-size: 36px;
  line-height: 0;
}

.services .icon-box:hover .icon {
  box-shadow: 0px 0 30px rgba(66, 139, 202, 0.5);
}

.services .title {
  font-weight: 600;
  margin-bottom: 15px;
  font-size: 18px;
  position: relative;
  padding-bottom: 15px;
}

.services .title a {
  color: #444;
  transition: 0.3s;
}

.services .title a:hover {
  color: #428bca;
}

.services .title::after {
  content: "";
  position: absolute;
  display: block;
  width: 50px;
  height: 2px;
  background: #428bca;
  bottom: 0;
  left: calc(50% - 25px);
}

.services .description {
  line-height: 24px;
  font-size: 14px;
}

/*--------------------------------------------------------------
# Our Team
--------------------------------------------------------------*/
 .member {
  text-align: center;
  margin-bottom: 80px;
  position: relative;
}
 .member .pic {
  border-radius: 4px;
  overflow: hidden;
}
 .member img {
  transition: all ease-in-out 0.4s;
}
 .member:hover img {
  transform: scale(1.1);
}
 .member .member-info {
  position: absolute;
  bottom: -48px;
  left: 20px;
  right: 20px;
  /* background: linear-gradient(360deg, rgb(92, 118, 141) 0%, rgba(92, 118, 141, 0.9) 35%, rgba(140, 167, 191, 0.8) 100%); */
  background: linear-gradient(
  360deg,
  rgb(93, 135, 255) 0%,
  rgba(93, 135, 255, 0.9) 35%,
  rgba(93, 135, 255, 0.8) 100%
);
  padding: 15px 0;
  border-radius: 4px;
}
 .member h4 {
  font-weight: 700;
  margin-bottom: 10px;
  font-size: 16px;
  color: #fff;
  position: relative;
  padding-bottom: 10px;
}
 .member h4::after {
  content: "";
  position: absolute;
  display: block;
  width: 50px;
  height: 1px;
  background: #fff;
  bottom: 0;
  left: calc(50% - 25px);
}
 .member span {
  font-style: italic;
  display: block;
  font-size: 13px;
  color: #fff;
}
 .member .social {
  margin-top: 15px;
}
 .member .social a {
  transition: color 0.3s;
  color: #fff;
}
 .member .social a:hover {
  color: #9eccf4;
}
 .member .social i {
  font-size: 16px;
  margin: 0 2px;
}

@media (max-width: 992px) {
 .member {
    margin-bottom: 100px;
  }
}

/*--------------------------------------------------------------
# Our Portfolio
--------------------------------------------------------------*/
.portfolio .portfolio-item {
  margin-bottom: 30px;
}

.portfolio #portfolio-flters {
  padding: 0;
  margin: 0 0 35px 0;
  list-style: none;
  text-align: center;
}

.portfolio #portfolio-flters li {
  cursor: pointer;
  margin: 0 15px 15px 0;
  display: inline-block;
  padding: 10px 20px;
  font-size: 12px;
  line-height: 20px;
  color: #444;
  border-radius: 4px;
  text-transform: uppercase;
  background: #fff;
  margin-bottom: 5px;
  transition: all 0.3s ease-in-out;
}

.portfolio #portfolio-flters li:hover,
.portfolio #portfolio-flters li.filter-active {
  background: #428bca;
  color: #fff;
}

.portfolio #portfolio-flters li:last-child {
  margin-right: 0;
}

.portfolio .portfolio-wrap {
  box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.08);
  transition: 0.3s;
  position: relative;
  overflow: hidden;
}

.portfolio .portfolio-wrap img {
  transition: 0.3s;
}

.portfolio .portfolio-wrap .portfolio-info {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  opacity: 0;
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
  transition: 0.3s;
  text-align: center;
  background: rgba(31, 53, 72, 0.6);
  padding-bottom: 30px;
}

.portfolio .portfolio-wrap .portfolio-info h4 {
  font-size: 20px;
  color: #fff;
  font-weight: 600;
}

.portfolio .portfolio-wrap .portfolio-info p {
  color: #fff;
  font-size: 14px;
  text-transform: uppercase;
}

.portfolio .portfolio-wrap .portfolio-info a {
  color: #428bca;
  margin: 0 4px;
  line-height: 0;
  background-color: #fff;
  border-radius: 50px;
  text-align: center;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}

.portfolio .portfolio-wrap .portfolio-info a i {
  font-size: 22px;
  line-height: 0;
}

.portfolio .portfolio-wrap .portfolio-info a:hover {
  background: #428bca;
  color: #fff;
}

.portfolio .portfolio-wrap:hover {
  box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.16);
}

.portfolio .portfolio-wrap:hover .portfolio-info {
  opacity: 1;
  padding-bottom: 0;
}

.portfolio .portfolio-wrap:hover img {
  transform: scale(1.1);
}

/*--------------------------------------------------------------
# Portfolio Details
--------------------------------------------------------------*/
.portfolio-details {
  padding-top: 40px;
}

.portfolio-details .portfolio-details-slider img {
  width: 100%;
}

.portfolio-details .portfolio-details-slider .swiper-pagination {
  margin-top: 20px;
  position: relative;
}

.portfolio-details .portfolio-details-slider .swiper-pagination .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background-color: #fff;
  opacity: 1;
  border: 1px solid #428bca;
}

.portfolio-details .portfolio-details-slider .swiper-pagination .swiper-pagination-bullet-active {
  background-color: #428bca;
}

.portfolio-details .portfolio-info {
  padding: 30px;
  box-shadow: 0px 0 30px rgba(31, 53, 72, 0.08);
}

.portfolio-details .portfolio-info h3 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #eee;
}

.portfolio-details .portfolio-info ul {
  list-style: none;
  padding: 0;
  font-size: 15px;
}

.portfolio-details .portfolio-info ul li+li {
  margin-top: 10px;
}

.portfolio-details .portfolio-description {
  padding-top: 30px;
}

.portfolio-details .portfolio-description h2 {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 20px;
}

.portfolio-details .portfolio-description p {
  padding: 0;
}


/*--------------------------------------------------------------
# Frequently Asked Questions
--------------------------------------------------------------*/
.faq {
  padding-bottom: 30px;
}

.faq .faq-item {
  margin-bottom: 40px;
}

.faq .faq-item h4 {
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
  margin-bottom: 15px;
  color: #1f3548;
}

/*--------------------------------------------------------------
# Contact Us
--------------------------------------------------------------*/
.contact .info-box {
  color: #444;
  text-align: center;
  box-shadow: 0 0 30px rgba(214, 215, 216, 0.6);
  padding: 20px 0 30px 0;
  margin-bottom: 30px;
  width: 100%;
}

.contact .info-box i {
  font-size: 32px;
  color: #428bca;
  border-radius: 50%;
  padding: 8px;
  border: 2px dotted #9eccf4;
}

.contact .info-box h3 {
  font-size: 20px;
  color: #666;
  font-weight: 700;
  margin: 10px 0;
}

.contact .info-box p {
  padding: 0;
  line-height: 24px;
  font-size: 14px;
  margin-bottom: 0;
}

.contact .php-email-form {
  box-shadow: 0 0 30px rgba(214, 215, 216, 0.6);
  padding: 30px;
}

.contact .php-email-form .error-message {
  display: none;
  color: #fff;
  background: #ed3c0d;
  text-align: left;
  padding: 15px;
  font-weight: 600;
}

.contact .php-email-form .error-message br+br {
  margin-top: 25px;
}

.contact .php-email-form .sent-message {
  display: none;
  color: #fff;
  background: #18d26e;
  text-align: center;
  padding: 15px;
  font-weight: 600;
}

.contact .php-email-form .loading {
  display: none;
  background: #fff;
  text-align: center;
  padding: 15px;
}

.contact .php-email-form .loading:before {
  content: "";
  display: inline-block;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  margin: 0 10px -6px 0;
  border: 3px solid #18d26e;
  border-top-color: #eee;
  animation: animate-loading 1s linear infinite;
}

.contact .php-email-form .form-group {
  margin-bottom: 20px;
}

.contact .php-email-form input,
.contact .php-email-form textarea {
  border-radius: 0;
  box-shadow: none;
  font-size: 14px;
}

.contact .php-email-form input::focus,
.contact .php-email-form textarea::focus {
  background-color: #428bca;
}

.contact .php-email-form input {
  padding: 10px 15px;
}

.contact .php-email-form textarea {
  padding: 12px 15px;
}

.contact .php-email-form button[type=submit] {
  background: #428bca;
  border: 0;
  padding: 10px 30px;
  color: #fff;
  transition: 0.4s;
}

.contact .php-email-form button[type=submit]:hover {
  background: #629fd3;
}

@keyframes animate-loading {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

#footer {
  background: #5D87FF;
  padding: 0 0 30px 0;
  color: #fff;
  font-size: 14px;
}

#footer .footer-top {
  background: #5D87FF;
  border-top: 1px solid #768fa6;
  border-bottom: 1px solid #67839c;
  padding: 60px 0 30px 0;
}

#footer .footer-top .footer-info {
  margin-bottom: 30px;
}

#footer .footer-top .footer-info h3 {
  font-size: 24px;
  margin: 0 0 20px 0;
  padding: 2px 0 2px 0;
  line-height: 1;
  font-weight: 700;
}

#footer .footer-top .footer-info p {
  font-size: 14px;
  line-height: 24px;
  margin-bottom: 0;
  font-family: "Raleway", sans-serif;
  color: #fff;
}

#footer .footer-top .social-links a {
  font-size: 18px;
  display: inline-block;
  background: #768fa6;
  color: #fff;
  line-height: 1;
  padding: 8px 0;
  margin-right: 4px;
  border-radius: 50%;
  text-align: center;
  width: 36px;
  height: 36px;
  transition: 0.3s;
}

#footer .footer-top .social-links a:hover {
  background: #428bca;
  color: #fff;
  text-decoration: none;
}

#footer .footer-top h4 {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  position: relative;
  padding-bottom: 12px;
}

#footer .footer-top .footer-links {
  margin-bottom: 30px;
}

#footer .footer-top .footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#footer .footer-top .footer-links ul i {
  padding-right: 2px;
  color: #9eccf4;
  font-size: 18px;
  line-height: 1;
}

#footer .footer-top .footer-links ul li {
  padding: 10px 0;
  display: flex;
  align-items: center;
}

#footer .footer-top .footer-links ul li:first-child {
  padding-top: 0;
}

#footer .footer-top .footer-links ul a {
  color: #fff;
  transition: 0.3s;
  display: inline-block;
  line-height: 1;
}

#footer .footer-top .footer-links ul a:hover {
  color: #9eccf4;
}

#footer .footer-top .footer-newsletter form {
  margin-top: 30px;
  background: #fff;
  padding: 6px 10px;
  position: relative;
  border-radius: 4;
}

#footer .footer-top .footer-newsletter form input[type=email] {
  border: 0;
  padding: 4px;
  width: calc(100% - 110px);
}

#footer .footer-top .footer-newsletter form input[type=submit] {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  border: 0;
  background: none;
  font-size: 16px;
  padding: 0 20px;
  background: #428bca;
  color: #fff;
  transition: 0.3s;
  border-radius: 4;
}

#footer .footer-top .footer-newsletter form input[type=submit]:hover {
  background: #5295ce;
}

#footer .copyright {
  text-align: center;
  padding-top: 30px;
}

#footer .credits {
  padding-top: 10px;
  text-align: center;
  font-size: 13px;
  color: #fff;
}

#footer .credits a {
  color: #9eccf4;
}


/* =========================
   Modern Header - Green Theme
   tempel di paling bawah style.css
========================= */

:root{
  --g-900:#064E3B;  /* hijau tua */
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;  /* hijau utama */
  --g-500:#10B981;  /* accent */
  --white:#ffffff;
  --shadow: 0 10px 30px rgba(0,0,0,.12);
}

/* header jadi sticky + modern */
#header{
  height: 76px;
  background: linear-gradient(90deg, var(--g-900), var(--g-700));
  box-shadow: var(--shadow);
  position: sticky;
  top: 0;
  z-index: 997;
}

/* rapihin container */
#header .container{
  height: 76px;
}

/* logo */
#header .logo h1{
  padding: 0;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 10px;
}

#header .logo img{
  max-height: 44px;
  border-radius: 10px;
  background: rgba(255,255,255,.12);
  padding: 6px;
}

/* teks nama desa */
#header .logo span{
  font-size: 15px;
  font-weight: 600;
  color: rgba(255,255,255,.95);
  letter-spacing: .2px;
}

/* =========================
   Navbar desktop
========================= */
.navbar{
  padding: 0;
}

.navbar ul{
  gap: 6px; /* jarak antar item */
}

/* link navbar */
.navbar a,
.navbar a:focus{
  padding: 10px 14px;
  border-radius: 12px;
  color: rgba(255,255,255,.92);
  font-weight: 600;
  transition: all .25s ease;
}

/* hover modern: bg glass + sedikit glow */
.navbar a:hover,
.navbar li:hover > a{
  background: rgba(255,255,255,.14);
  color: var(--white);
  transform: translateY(-1px);
}

/* active */
.navbar .active,
.navbar .active:focus{
  background: rgba(255,255,255,.18);
  color: var(--white);
  box-shadow: 0 6px 18px rgba(0,0,0,.10);
}

/* HAPUS efek hover global yang bikin semua li naik */
li{
  transition: none !important;
}
li:hover{
  transform: none !important;
}

/* dropdown menu */
.navbar .dropdown ul{
  background: rgba(255,255,255,.96);
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
  border: 1px solid rgba(6,95,70,.18);
  left: 0;
}

/* item dropdown */
.navbar .dropdown ul a{
  color: #0f172a; /* slate */
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
}

.navbar .dropdown ul a:hover,
.navbar .dropdown ul li:hover > a{
  background: rgba(16,185,129,.14);
  color: #064E3B;
}

/* icon caret */
.navbar a i,
.navbar a:focus i{
  margin-left: 6px;
  opacity: .9;
}

/* =========================
   Button "Masuk" biar beda
========================= */
.navbar ul li:last-child a{
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.25);
}

.navbar ul li:last-child a:hover{
  background: rgba(255,255,255,.28);
}

/* =========================
   Mobile
========================= */
.mobile-nav-toggle{
  color: #fff;
}

.navbar-mobile{
  background: rgba(3, 45, 31, 0.88);
}

.navbar-mobile ul{
  background: linear-gradient(180deg, var(--g-900), var(--g-700));
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
}

.navbar-mobile a,
.navbar-mobile a:focus{
  border-radius: 12px;
}

.navbar-mobile a:hover,
.navbar-mobile .active,
.navbar-mobile li:hover>a{
  background: rgba(255,255,255,.14);
  color: #fff;
}

.navbar-mobile .dropdown ul{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
}
/* =========================
   Modern Footer - Green Theme (FIX SPACING)
   tempel paling bawah style.css
========================= */

:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --white:#ffffff;
}

/* wrapper footer */
#footer{
  background: linear-gradient(180deg, var(--g-950), var(--g-900));
  color: rgba(255,255,255,.88);
  padding: 0;
}

/* area atas */
#footer .footer-top{
  background: transparent;
  border-top: 1px solid rgba(255,255,255,.10);
  border-bottom: 1px solid rgba(255,255,255,.10);
  padding: 70px 0 40px 0;
}

/* ✅ FIX SPACING: bikin jarak antar kolom (tanpa tergantung bootstrap var) */
#footer .footer-top .row{
  margin-left: -14px;   /* kompensasi padding kolom */
  margin-right: -14px;
}

/* semua kolom footer dikasih padding (jarak antar card) */
#footer .footer-top .row > [class*="col-"]{
  padding-left: 14px;
  padding-right: 14px;
  margin-bottom: 18px;  /* jarak kalau turun baris */
}

/* layout kolom jadi card */
#footer .footer-top .footer-info,
#footer .footer-top .footer-links{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 26px 24px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
  height: 100%;
  background-clip: padding-box;
}

/* logo di footer */
#footer .footer-top .footer-info img{
  width: 54px !important;
  height: auto;
  border-radius: 12px;
  padding: 8px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
}

/* judul desa */
#footer .footer-top .footer-info h3{
  color: #fff;
  font-weight: 800;
  letter-spacing: .2px;
  margin: 10px 0 10px 0;
}

/* teks alamat */
#footer .footer-top .footer-info p{
  color: rgba(255,255,255,.80);
  margin-bottom: 0;
  line-height: 1.7;
}

/* heading list */
#footer .footer-top h4{
  color: #fff;
  font-weight: 800;
  padding-bottom: 12px;
  margin-bottom: 14px;
  position: relative;
}

#footer .footer-top h4::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 56px;
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--g-500), rgba(255,255,255,.10));
}

/* list link */
#footer .footer-top .footer-links ul{
  margin: 0;
  padding: 0;
}

#footer .footer-top .footer-links ul li{
  padding: 10px 0;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px dashed rgba(255,255,255,.10);
}

#footer .footer-top .footer-links ul li:last-child{
  border-bottom: 0;
}

/* icon chevron */
#footer .footer-top .footer-links ul i{
  color: var(--g-500);
  font-size: 18px;
  line-height: 1;
  padding-right: 0;
}

/* link style modern */
#footer .footer-top .footer-links ul a{
  color: rgba(255,255,255,.86);
  transition: all .25s ease;
  font-weight: 600;
}

#footer .footer-top .footer-links ul a:hover{
  color: #fff;
  text-shadow: 0 10px 25px rgba(16,185,129,.25);
  transform: translateX(2px);
}

/* copyright bar */
#footer .copyright{
  margin-top: 22px;
  padding: 18px 0 22px 0;
  text-align: center;
  color: rgba(255,255,255,.75);
  border-top: 1px solid rgba(255,255,255,.10);
}

#footer .copyright a{
  color: rgba(255,255,255,.92);
  font-weight: 700;
  transition: all .25s ease;
}

#footer .copyright a:hover{
  color: var(--g-500);
}

/* responsive: jarak sedikit lebih kecil */
@media (max-width: 1200px){
  #footer .footer-top .row{
    margin-left: -10px;
    margin-right: -10px;
  }
  #footer .footer-top .row > [class*="col-"]{
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* =========================
   Layanan Page - Modern Accordion (Green)
========================= */

:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
}

/* judul section */
.counts.section-bg{
  background: #f4fbf7; /* hijau muda */
}

.counts .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* accordion card look */
.layanan-accordion .accordion-item{
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
}

/* header button */
.layanan-accordion .accordion-button{
  background: linear-gradient(180deg, #ffffff, #f6fffa);
  color: #0f172a;
  font-weight: 800;
  padding: 18px 18px;
  border: 0;
  box-shadow: none;
}

/* garis accent kiri */
.layanan-accordion .accordion-button{
  position: relative;
}
.layanan-accordion .accordion-button::before{
  content:"";
  position:absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, var(--g-500), var(--g-700));
}

/* icon chevron jadi hijau + animasi */
.layanan-accordion .accordion-button::after{
  filter: hue-rotate(80deg) saturate(140%);
  transition: transform .25s ease;
}

/* keadaan expand */
.layanan-accordion .accordion-button:not(.collapsed){
  color: var(--g-900);
  background: linear-gradient(180deg, #f0fff7, #ffffff);
}

/* body */
.layanan-accordion .accordion-body{
  padding: 16px 18px 18px;
  color: #334155;
  line-height: 1.7;
}

/* list di dalam persyaratan (kalau ada) */
.layanan-accordion .accordion-body ul{
  padding-left: 18px;
  margin-bottom: 0;
}
.layanan-accordion .accordion-body li{
  margin: 6px 0;
}

/* hover effect */
.layanan-accordion .accordion-item:hover{
  transform: translateY(-2px);
  transition: transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

/* responsive */
@media (max-width: 992px){
  .layanan-accordion .accordion-button{
    padding: 16px 16px;
  }
}

/* =========================
   Contact Page - Modern Green
========================= */

:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
}

/* background section */
.contact-modern{
  background: #f4fbf7; /* hijau muda */
}

/* title */
.contact-modern .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* card */
.contact-modern .info-card{
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}

.contact-modern .info-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

/* header card */
.contact-modern .info-head{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 18px 14px;
  background: linear-gradient(180deg, #ffffff, #f6fffa);
  position: relative;
}

/* accent kiri */
.contact-modern .info-head::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width: 6px;
  background: linear-gradient(180deg, var(--g-500), var(--g-700));
}

/* icon */
.contact-modern .icon-wrap{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.22);
  flex: 0 0 auto;
}

.contact-modern .icon-wrap i{
  font-size: 22px;
  color: var(--g-700);
}

/* title text */
.contact-modern .info-title h3{
  margin: 0;
  font-weight: 800;
  color: #0f172a;
  font-size: 18px;
}

.contact-modern .info-title .muted{
  margin: 2px 0 0;
  color: #64748b;
  font-size: 13px;
}

/* content */
.contact-modern .info-content{
  padding: 12px 18px 18px;
}

.contact-modern .value{
  margin: 0;
  font-weight: 700;
  color: var(--g-900);
}

/* map */
.contact-modern .map-wrap{
  height: 360px;
  border-top: 1px solid rgba(6,95,70,.08);
}

.contact-modern .map-wrap iframe{
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

/* responsive */
@media (max-width: 992px){
  .contact-modern .map-wrap{ height: 320px; }
}

/* =========================
   UMKM Modern - Green Theme
========================= */
:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.umkm-modern{
  background: #f4fbf7;
}

/* section title */
.umkm-modern .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* ===== CARD GRID ===== */
.umkm-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.umkm-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

.umkm-thumb{
  position: relative;
  display: block;
  overflow: hidden;
}

.umkm-thumb img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.umkm-card:hover .umkm-thumb img{
  transform: scale(1.04);
}

.umkm-badge{
  position: absolute;
  left: 14px;
  bottom: 14px;
  background: rgba(6,95,70,.92);
  color: #fff;
  padding: 8px 10px;
  border-radius: 12px;
  font-weight: 800;
  font-size: 13px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

/* body */
.umkm-body{
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.umkm-title{
  margin: 0;
  color: var(--ink);
  font-weight: 800;
  font-size: 16px;
  line-height: 1.25;
}

/* actions */
.umkm-actions{
  margin-top: auto;
  display: flex;
  gap: 10px;
}

.umkm-actions .btn{
  border-radius: 14px;
  padding: 10px 12px;
  font-weight: 800;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

/* WA button */
.btn-wa{
  background: linear-gradient(180deg, var(--g-600), var(--g-700));
  color: #fff;
  border: 0;
  flex: 1;
  box-shadow: 0 10px 22px rgba(4,120,87,.22);
}
.btn-wa:hover{
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(4,120,87,.28);
}

/* Detail button */
.btn-detail{
  background: rgba(16,185,129,.10);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  width: 110px;
  justify-content: center;
}
.btn-detail:hover{
  color: var(--g-900);
  transform: translateY(-1px);
}

/* ===== DETAIL PAGE ===== */
.umkm-detail.card{
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
}

.umkm-detail-thumb{
  height: 100%;
  min-height: 320px;
  background: #eaf7f0;
}

.umkm-detail-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.umkm-detail-body{
  padding: 22px 22px 24px;
}

.umkm-detail-head{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 14px;
  border-bottom: 1px dashed rgba(6,95,70,.16);
  margin-bottom: 14px;
}

.umkm-detail-title{
  margin: 0;
  color: var(--ink);
  font-weight: 900;
  letter-spacing: .2px;
}

.umkm-price{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 900;
  color: var(--g-900);
  background: rgba(16,185,129,.10);
  border: 1px solid rgba(16,185,129,.28);
  padding: 10px 12px;
  border-radius: 14px;
  width: fit-content;
}

.umkm-desc{
  color: #334155;
  line-height: 1.75;
}
.umkm-desc p:last-child{ margin-bottom: 0; }

/* actions detail */
.umkm-detail-actions{
  display: flex;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.btn-wa-lg{
  background: linear-gradient(180deg, var(--g-600), var(--g-700));
  color: #fff;
  border: 0;
  border-radius: 16px;
  padding: 12px 16px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 12px 26px rgba(4,120,87,.22);
}
.btn-wa-lg:hover{
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 16px 32px rgba(4,120,87,.28);
}

.btn-back{
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(6,95,70,.18);
  color: var(--g-900);
  border-radius: 16px;
  padding: 12px 16px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.btn-back:hover{
  color: var(--g-900);
  transform: translateY(-1px);
}

/* responsive */
@media (max-width: 992px){
  .umkm-thumb img{ height: 210px; }
  .umkm-detail-thumb{ min-height: 260px; }
}

/* =========================
   APBDesa - Modern Green Theme
========================= */
:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.apb-modern{
  background: #f4fbf7;
}

/* section title */
.apb-modern .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* ===== INDEX CARD ===== */
.apb-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.apb-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

.apb-thumb{
  position: relative;
  display: block;
  overflow: hidden;
}

.apb-thumb img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.apb-card:hover .apb-thumb img{
  transform: scale(1.04);
}

/* chip label */
.apb-chip{
  position: absolute;
  left: 14px;
  bottom: 14px;
  background: rgba(6,95,70,.92);
  color: #fff;
  padding: 8px 10px;
  border-radius: 12px;
  font-weight: 800;
  font-size: 13px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.apb-body{
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.apb-title{
  margin: 0;
  color: var(--ink);
  font-weight: 900;
  font-size: 16px;
  line-height: 1.3;
}

.apb-btn{
  margin-top: auto;
  border-radius: 14px;
  padding: 10px 12px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
  background: linear-gradient(180deg, var(--g-600), var(--g-700));
  color: #fff;
  border: 0;
  box-shadow: 0 10px 22px rgba(4,120,87,.22);
}
.apb-btn:hover{
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(4,120,87,.28);
}

/* ===== DETAIL ===== */
.apb-detail{
  background: #fff;
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
  overflow: hidden;
  padding: 22px 22px 24px;
}

.apb-breadcrumb{
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 10px;
}

.apb-breadcrumb a{
  color: var(--g-700);
  font-weight: 900;
}
.apb-breadcrumb a:hover{
  color: var(--g-900);
}
.apb-breadcrumb .sep{
  opacity: .7;
}
.apb-breadcrumb .current{
  color: #334155;
}

.apb-h1{
  margin: 0 0 10px 0;
  color: var(--ink);
  font-weight: 900;
  letter-spacing: .2px;
}

.apb-meta{
  padding-bottom: 14px;
  border-bottom: 1px dashed rgba(6,95,70,.16);
  margin-bottom: 14px;
  color: #334155;
}
.apb-meta .meta-item{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.apb-cover{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(6,95,70,.12);
  background: #eaf7f0;
  margin-bottom: 14px;
}

.apb-cover img{
  width: 100%;
  height: 440px;
  object-fit: cover;
  display: block;
}

.apb-content{
  color: #334155;
  line-height: 1.8;
}
.apb-content p:last-child{ margin-bottom: 0; }

.apb-actions{
  margin-top: 18px;
}

.apb-back{
  border-radius: 16px;
  padding: 12px 16px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(16,185,129,.10);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
}
.apb-back:hover{
  color: var(--g-900);
  transform: translateY(-1px);
}

/* responsive */
@media (max-width: 992px){
  .apb-thumb img{ height: 210px; }
  .apb-cover img{ height: 300px; }
  .apb-detail{ padding: 18px; }
}

/* =========================
   Gallery - Modern Green Theme
========================= */
:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.gallery-modern{
  background: #f4fbf7;
}

/* title */
.gallery-modern .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* card */
.gallery-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.12);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease;
  height: 100%;
}

.gallery-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

/* image */
.gallery-thumb{
  position: relative;
  display: block;
  overflow: hidden;
}

.gallery-thumb img{
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

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

/* overlay icon */
.gallery-overlay{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(6,95,70,.0);
  color: #fff;
  opacity: 0;
  transition: all .25s ease;
}

.gallery-overlay i{
  font-size: 28px;
  background: rgba(6,95,70,.85);
  padding: 12px;
  border-radius: 16px;
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}

.gallery-card:hover .gallery-overlay{
  opacity: 1;
  background: rgba(6,95,70,.18);
}

/* caption */
.gallery-caption{
  padding: 12px 14px 14px;
}

.gallery-caption p{
  margin: 0;
  color: #334155;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;

  /* biar rapi kalau panjang */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* responsive */
@media (max-width: 576px){
  .gallery-thumb img{ height: 190px; }
}

/* =========================
   Berita - Modern Green Theme
========================= */
:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.berita-modern{ background:#f4fbf7; }
.berita-modern .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* ===== INDEX CARD ===== */
.berita-card{
  background:#fff;
  border:1px solid rgba(6,95,70,.12);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 35px rgba(0,0,0,.08);
  transition:transform .2s ease, box-shadow .2s ease;
  height:100%;
  display:flex;
  flex-direction:column;
}
.berita-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 45px rgba(0,0,0,.10);
}
.berita-thumb{ position:relative; display:block; overflow:hidden; }
.berita-thumb img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.berita-card:hover .berita-thumb img{ transform:scale(1.04); }

.berita-chip{
  position:absolute;
  left:14px; bottom:14px;
  background:rgba(6,95,70,.92);
  color:#fff;
  padding:8px 10px;
  border-radius:12px;
  font-weight:800;
  font-size:13px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}

.berita-body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}
.berita-title{
  margin:0;
  font-weight:900;
  color:var(--ink);
  font-size:16px;
  line-height:1.3;
}
.berita-excerpt{
  margin:0;
  color:#334155;
  line-height:1.55;
  font-size:14px;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.berita-footer{ margin-top:auto; }

.berita-btn{
  border-radius:14px;
  padding:10px 12px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:8px;
  justify-content:center;
  background:linear-gradient(180deg, var(--g-600), var(--g-700));
  color:#fff;
  border:0;
  box-shadow:0 10px 22px rgba(4,120,87,.22);
}
.berita-btn:hover{
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(4,120,87,.28);
}
.berita-btn-sm{
  border-radius:14px;
  padding:10px 12px;
  font-weight:900;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.35);
  color:var(--g-900);
}
.berita-btn-sm:hover{ color:var(--g-900); transform:translateY(-1px); }

/* ===== DETAIL ===== */
.berita-detail.card,
.berita-comments.card,
.sidebar-card{
  border:1px solid rgba(6,95,70,.12);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
  overflow:hidden;
}

.berita-detail.card{ padding:22px; }
.berita-breadcrumb{
  color:var(--muted);
  font-weight:700;
  margin-bottom:10px;
}
.berita-breadcrumb a{ color:var(--g-700); font-weight:900; }
.berita-breadcrumb .sep{ margin:0 8px; opacity:.7; }

.berita-h1{
  margin:0 0 10px 0;
  font-weight:900;
  color:var(--ink);
}
.berita-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:#334155;
  padding-bottom:14px;
  border-bottom:1px dashed rgba(6,95,70,.16);
  margin-bottom:14px;
}
.berita-meta .meta-item{ display:inline-flex; align-items:center; gap:8px; }
.berita-meta .dot{ opacity:.6; }

.berita-cover{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(6,95,70,.12);
  background:#eaf7f0;
  margin-bottom:14px;
}
.berita-cover img{
  width:100%;
  height:440px;
  object-fit:cover;
  display:block;
}
.berita-content{ color:#334155; line-height:1.85; }
.berita-tags{
  margin-top:14px;
  display:flex;
  align-items:center;
  gap:10px;
}
.tag-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.35);
  color:var(--g-900);
  font-weight:900;
}

/* ===== COMMENTS ===== */
.comment-item{
  display:flex;
  gap:12px;
  padding:14px 0;
  border-bottom:1px dashed rgba(6,95,70,.14);
}
.comment-item:last-child{ border-bottom:0; }
.comment-avatar img{ border:1px solid rgba(6,95,70,.12); }

.comment-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
}
.comment-name{
  margin:0;
  font-weight:900;
  color:var(--ink);
}
.comment-time{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:13px;
}
.comment-text{
  margin:10px 0 0;
  color:#334155;
  line-height:1.65;
}
.reply-link{
  color:var(--g-700);
  font-weight:900;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.reply-link:hover{ color:var(--g-900); }

.reply-item{
  margin-top:12px;
  margin-left:22px;
  padding-left:12px;
  border-left:3px solid rgba(16,185,129,.25);
  display:flex;
  gap:10px;
}

.reply-form{
  margin-top:12px;
  padding:12px;
  border-radius:16px;
  background:rgba(16,185,129,.06);
  border:1px solid rgba(16,185,129,.18);
}

/* ===== SIDEBAR ===== */
.sidebar-card .card-body{ padding:18px; }
.sidebar-title{
  margin:0 0 12px 0;
  font-weight:900;
  color:var(--ink);
}

.sidebar-list{ display:flex; flex-direction:column; gap:12px; }
.sidebar-item{
  display:flex;
  gap:10px;
  text-decoration:none;
  color:inherit;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(6,95,70,.10);
  background:rgba(255,255,255,.6);
  transition:transform .2s ease, box-shadow .2s ease;
}
.sidebar-item:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(0,0,0,.08);
}
.sidebar-item img{
  width:86px;
  height:64px;
  object-fit:cover;
  border-radius:12px;
}
.sidebar-item-text h6{
  margin:0;
  font-weight:900;
  color:var(--ink);
  font-size:14px;
  line-height:1.25;
}
.sidebar-item-text small{
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
}

.kategori-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.kategori-pill{
  padding:8px 12px;
  border-radius:999px;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.35);
  color:var(--g-900);
  font-weight:900;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.kategori-pill:hover{
  color:var(--g-900);
  transform:translateY(-1px);
}

/* responsive */
@media (max-width: 992px){
  .berita-thumb img{ height:210px; }
  .berita-cover img{ height:300px; }
  .berita-detail.card{ padding:18px; }
}

/* =========================
   Pengumuman - Modern Green Theme
========================= */
:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.pengumuman-modern{ background:#f4fbf7; }
.pengumuman-modern .section-title h2{
  color: var(--g-900);
  font-weight: 800;
  letter-spacing: .2px;
}

/* ===== INDEX CARD ===== */
.peng-card{
  background:#fff;
  border:1px solid rgba(6,95,70,.12);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 35px rgba(0,0,0,.08);
  transition:transform .2s ease, box-shadow .2s ease;
  height:100%;
  display:flex;
}
.peng-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 45px rgba(0,0,0,.10);
}

.peng-body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
}

.peng-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.peng-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.30);
  color:var(--g-900);
  font-weight:900;
  font-size:13px;
}

.peng-time{
  color:var(--muted);
  font-weight:800;
  font-size:13px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.peng-title{
  margin:0;
  font-weight:900;
  color:var(--ink);
  font-size:16px;
  line-height:1.3;
}

.peng-excerpt{
  color:#334155;
  line-height:1.6;
  font-size:14px;
}
.peng-excerpt p:last-child{ margin-bottom:0; }

/* batasi excerpt biar rapi */
.peng-excerpt{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.peng-footer{ margin-top:auto; }

.peng-btn{
  border-radius:14px;
  padding:10px 12px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:8px;
  justify-content:center;
  background:linear-gradient(180deg, var(--g-600), var(--g-700));
  color:#fff;
  border:0;
  box-shadow:0 10px 22px rgba(4,120,87,.22);
}
.peng-btn:hover{
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(4,120,87,.28);
}

/* ===== DETAIL ===== */
.peng-detail.card{
  border:1px solid rgba(6,95,70,.12);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
  overflow:hidden;
  padding:22px 22px 24px;
}

.peng-breadcrumb{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  color:var(--muted);
  margin-bottom:10px;
}
.peng-breadcrumb a{ color:var(--g-700); font-weight:900; }
.peng-breadcrumb a:hover{ color:var(--g-900); }
.peng-breadcrumb .sep{ opacity:.7; }
.peng-breadcrumb .current{ color:#334155; }

.peng-h1{
  margin:0 0 10px 0;
  font-weight:900;
  color:var(--ink);
  letter-spacing:.2px;
}

.peng-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:#334155;
  padding-bottom:14px;
  border-bottom:1px dashed rgba(6,95,70,.16);
  margin-bottom:14px;
}
.peng-meta .meta-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}
.peng-meta .dot{ opacity:.6; }

.peng-content{
  color:#334155;
  line-height:1.85;
}
.peng-content p:last-child{ margin-bottom:0; }

.peng-actions{
  margin-top:18px;
}

.peng-back{
  border-radius:16px;
  padding:12px 16px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.35);
  color:var(--g-900);
}
.peng-back:hover{
  color:var(--g-900);
  transform:translateY(-1px);
}

/* responsive */
@media (max-width: 992px){
  .peng-detail.card{ padding:18px; }
}

/* =========================
   Data Desa - Modern Green Theme
========================= */
:root{
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.data-modern{
  background:#f4fbf7;
}

.data-block{
  padding: 10px 0 0;
}

.data-block-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin: 10px 0 16px;
  flex-wrap:wrap;
}

.data-title{
  margin:0;
  font-weight:900;
  color:var(--g-900);
  letter-spacing:.2px;
  font-size: 26px;
  display:flex;
  align-items:center;
  gap:10px;
}

.data-sub{
  margin:6px 0 0;
  color:var(--muted);
  font-weight:600;
}

.data-badge{
  padding:10px 14px;
  border-radius:999px;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.35);
  color:var(--g-900);
  font-weight:900;
}

/* card */
.data-card{
  background:#fff;
  border:1px solid rgba(6,95,70,.12);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
  height:100%;
}

.data-card-header{
  padding:14px 16px;
  border-bottom:1px dashed rgba(6,95,70,.16);
  background: rgba(16,185,129,.05);
}

.data-card-header .label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:var(--g-900);
}

.data-card-body{
  padding:16px;
}

/* chart wrapper */
.chart-wrap{
  position: relative;
  width: 100%;
  height: 360px; /* tinggi chart */
}

/* separator */
.data-sep{
  height:1px;
  margin: 22px 0;
  background: linear-gradient(90deg, rgba(16,185,129,.45), rgba(6,95,70,.06));
}

/* table modern */
.table-modern{
  margin:0;
  border-collapse: separate;
  border-spacing: 0;
}

.table-modern thead th{
  background: rgba(6,95,70,.08);
  color: var(--g-900);
  font-weight: 900;
  border: 0;
  padding: 12px 12px;
}

.table-modern tbody td{
  border-top: 1px solid rgba(2,6,23,.06);
  padding: 12px 12px;
  color:#334155;
  font-weight:600;
}

.table-modern tfoot td{
  background: rgba(16,185,129,.08);
  border-top: 1px solid rgba(16,185,129,.18);
  padding: 12px 12px;
  color: var(--g-900);
}

/* responsive */
@media (max-width: 992px){
  .data-title{ font-size: 22px; }
  .chart-wrap{ height: 300px; }
}

/* khusus chart pekerjaan biar muat semua label */
.chart-pekerjaan{
  height: 520px;
}

@media (max-width: 992px){
  .chart-pekerjaan{
    height: 560px;
  }
}

/* =========================
   Peta Desa - Modern Green Theme
========================= */
:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.peta-modern{
  background: #f4fbf7;
}

.peta-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
  letter-spacing:.2px;
}

.peta-title p{
  color: var(--muted);
  font-weight: 600;
}

/* card container */
.peta-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
}

/* header card */
.peta-card-head{
  padding: 16px 18px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  background: linear-gradient(90deg, rgba(16,185,129,.10), rgba(6,95,70,.04));
  border-bottom: 1px dashed rgba(6,95,70,.18);
}

.badge-geo{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  font-weight: 900;
}

.alamat{
  margin-top: 10px;
  display:flex;
  align-items:flex-start;
  gap:10px;
  color: #334155;
  font-weight: 700;
}

.alamat i{
  color: var(--g-600);
  margin-top: 2px;
}

.btn-geo{
  border-radius: 999px;
  font-weight: 800;
  padding: 10px 14px;
  box-shadow: 0 10px 20px rgba(0,0,0,.10);
}

/* iframe wrapper */
.peta-iframe-wrap{
  position: relative;
  width: 100%;
  background: #eaf7f0;
}

.peta-iframe-wrap iframe{
  display:block;
  width:100%;
  height: 450px;
  border: 0;
}

/* footer note */
.peta-card-foot{
  padding: 14px 18px;
  color: rgba(15,23,42,.75);
  font-weight: 600;
  border-top: 1px solid rgba(2,6,23,.06);
  background: rgba(16,185,129,.06);
}

@media (max-width: 992px){
  .peta-iframe-wrap iframe{
    height: 380px;
  }
}

/* =========================
   Perangkat Desa - Modern Green Theme
========================= */
:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.perangkat-modern{
  background: #f4fbf7;
}

.perangkat-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
  letter-spacing:.2px;
}

.perangkat-title p{
  color: var(--muted);
  font-weight: 600;
}

/* card */
.perangkat-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  height: 100%;
}

.perangkat-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 55px rgba(0,0,0,.14);
  border-color: rgba(16,185,129,.40);
}

/* photo wrapper */
.perangkat-photo{
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1; /* foto jadi kotak rapi */
  background: linear-gradient(180deg, rgba(16,185,129,.10), rgba(6,95,70,.06));
  overflow: hidden;
}

.perangkat-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  transition: transform .35s ease;
}

.perangkat-card:hover .perangkat-photo img{
  transform: scale(1.08);
}

/* overlay gradient biar terlihat modern */
.perangkat-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(6,95,70,.35) 100%);
  pointer-events:none;
}

/* body */
.perangkat-body{
  padding: 16px 16px 18px 16px;
  text-align: center;
}

.perangkat-name{
  margin: 0 0 10px 0;
  color: var(--ink);
  font-weight: 900;
  font-size: 16px;
  letter-spacing:.2px;
}

/* role badge */
.perangkat-role{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  font-weight: 800;
  font-size: 13px;
}

.perangkat-role i{
  color: var(--g-600);
}

/* responsive */
@media (max-width: 576px){
  .perangkat-body{
    padding: 14px;
  }
  .perangkat-name{
    font-size: 15px;
  }
}

/* =========================
   Visi & Misi - Modern Green Theme
========================= */
:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.visimisi-modern{
  background: #f4fbf7;
}

.visimisi-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
  letter-spacing:.2px;
}

.visimisi-title p{
  color: var(--muted);
  font-weight: 600;
}

/* wrapper */
.vm-wrapper{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

/* card */
.vm-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}

/* top accent */
.vm-visi{
  position: relative;
}
.vm-visi::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height: 6px;
  background: linear-gradient(90deg, var(--g-500), rgba(255,255,255,0));
}

.vm-misi{
  position: relative;
}
.vm-misi::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height: 6px;
  background: linear-gradient(90deg, var(--g-700), rgba(255,255,255,0));
}

/* head */
.vm-head{
  display:flex;
  align-items:center;
  gap: 12px;
  padding: 18px 18px 14px 18px;
  background: linear-gradient(90deg, rgba(16,185,129,.10), rgba(6,95,70,.03));
  border-bottom: 1px dashed rgba(6,95,70,.18);
}

.vm-icon{
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  box-shadow: 0 12px 28px rgba(0,0,0,.10);
}

.vm-icon i{
  font-size: 22px;
}

/* titles */
.vm-title{
  margin: 0;
  color: var(--ink);
  font-weight: 900;
  letter-spacing:.2px;
}

.vm-sub{
  display:inline-block;
  margin-top: 4px;
  color: rgba(15,23,42,.65);
  font-weight: 700;
  font-size: 13px;
}

/* body */
.vm-body{
  padding: 18px;
}

.vm-content{
  color: rgba(15,23,42,.80);
  font-weight: 600;
  line-height: 1.8;
}

/* rapihin output dari editor (ul/ol) */
.vm-content ul,
.vm-content ol{
  padding-left: 18px;
  margin: 10px 0 0 0;
}

.vm-content li{
  margin: 6px 0;
}

/* responsive */
@media (min-width: 992px){
  .vm-wrapper{
    grid-template-columns: 1fr 1fr; /* Visi & Misi berdampingan di desktop */
  }
  .vm-card{
    height: 100%;
  }
}

/* =========================
   Sejarah - Modern Green Theme
========================= */
:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.sejarah-modern{
  background: #f4fbf7;
}

.sejarah-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
  letter-spacing:.2px;
}

.sejarah-title p{
  color: var(--muted);
  font-weight: 600;
}

/* card */
.sejarah-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}

/* top gradient */
.sejarah-head{
  padding: 16px 18px;
  background: linear-gradient(90deg, rgba(16,185,129,.10), rgba(6,95,70,.03));
  border-bottom: 1px dashed rgba(6,95,70,.18);
}

.sejarah-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  font-weight: 900;
}

/* body */
.sejarah-body{
  padding: 20px;
}

/* typography */
.sejarah-content{
  color: rgba(15,23,42,.82);
  font-weight: 600;
  line-height: 1.9;
  font-size: 15px;
}

/* rapihin elemen dari editor */
.sejarah-content p{
  margin-bottom: 14px;
}

.sejarah-content h1,
.sejarah-content h2,
.sejarah-content h3,
.sejarah-content h4{
  color: var(--ink);
  font-weight: 900;
  margin: 18px 0 10px 0;
}

.sejarah-content ul,
.sejarah-content ol{
  padding-left: 18px;
  margin: 10px 0 14px 0;
}

.sejarah-content li{
  margin: 7px 0;
}

/* gambar dari editor */
.sejarah-content img{
  max-width: 100%;
  height: auto;
  border-radius: 18px;
  display: block;
  margin: 14px 0;
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: 0 14px 40px rgba(0,0,0,.10);
}

/* blockquote kalau ada */
.sejarah-content blockquote{
  padding: 14px 16px;
  border-left: 5px solid var(--g-500);
  background: rgba(16,185,129,.08);
  border-radius: 14px;
  margin: 16px 0;
}

/* footer note */
.sejarah-foot{
  padding: 14px 18px;
  border-top: 1px solid rgba(2,6,23,.06);
  background: rgba(16,185,129,.06);
  color: rgba(15,23,42,.70);
  font-weight: 600;
}

/* =========================
   Wilayah - Modern Green Theme
========================= */
:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
}

.wilayah-modern{
  background: #f4fbf7;
}

.wilayah-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
  letter-spacing:.2px;
}

.wilayah-title p{
  color: var(--muted);
  font-weight: 600;
}

/* card */
.wilayah-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}

/* header card */
.wilayah-head{
  padding: 16px 18px;
  background: linear-gradient(90deg, rgba(16,185,129,.10), rgba(6,95,70,.03));
  border-bottom: 1px dashed rgba(6,95,70,.18);
}

.wilayah-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  font-weight: 900;
}

/* body */
.wilayah-body{
  padding: 20px;
}

/* typography */
.wilayah-content{
  color: rgba(15,23,42,.82);
  font-weight: 600;
  line-height: 1.9;
  font-size: 15px;
}

.wilayah-content p{
  margin-bottom: 14px;
}

.wilayah-content h1,
.wilayah-content h2,
.wilayah-content h3,
.wilayah-content h4{
  color: var(--ink);
  font-weight: 900;
  margin: 18px 0 10px 0;
}

.wilayah-content ul,
.wilayah-content ol{
  padding-left: 18px;
  margin: 10px 0 14px 0;
}

.wilayah-content li{
  margin: 7px 0;
}

/* tabel dari editor */
.wilayah-content table{
  width: 100%;
  border-collapse: collapse;
  margin: 14px 0;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(2,6,23,.08);
}

.wilayah-content table th,
.wilayah-content table td{
  padding: 12px 12px;
  border-bottom: 1px solid rgba(2,6,23,.06);
  vertical-align: top;
}

.wilayah-content table th{
  background: rgba(16,185,129,.10);
  color: var(--g-900);
  font-weight: 900;
}

/* gambar dari editor */
.wilayah-content img{
  max-width: 100%;
  height: auto;
  border-radius: 18px;
  display: block;
  margin: 14px 0;
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: 0 14px 40px rgba(0,0,0,.10);
}

/* blockquote */
.wilayah-content blockquote{
  padding: 14px 16px;
  border-left: 5px solid var(--g-500);
  background: rgba(16,185,129,.08);
  border-radius: 14px;
  margin: 16px 0;
}

/* footer note */
.wilayah-foot{
  padding: 14px 18px;
  border-top: 1px solid rgba(2,6,23,.06);
  background: rgba(16,185,129,.06);
  color: rgba(15,23,42,.70);
  font-weight: 600;
}

/* =========================
   HOME - Modern Green Theme
========================= */
:root{
  --g-950:#052e2a;
  --g-900:#064E3B;
  --g-800:#065F46;
  --g-700:#047857;
  --g-600:#059669;
  --g-500:#10B981;
  --ink:#0f172a;
  --muted:#64748b;
  --shadow: 0 18px 50px rgba(0,0,0,.10);
}

/* ---------- HERO ---------- */
.hero-modern #heroCarousel .carousel-item{
  background-position: center;
  background-size: cover;
}

.hero-modern .hero-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(5,46,42,.72), rgba(5,46,42,.25));
}

.hero-modern .carousel-container{
  position: relative;
  z-index: 2;
}

.hero-modern .hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  font-weight: 800;
  margin-bottom: 14px;
}

.hero-modern h2{
  color:#fff;
  font-weight: 900;
  letter-spacing:.2px;
  text-shadow: 0 18px 50px rgba(0,0,0,.35);
}

.hero-modern p{
  color: rgba(255,255,255,.90);
  font-weight: 600;
  max-width: 700px;
}

.hero-modern .hero-actions{
  display:flex;
  gap:12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.btn-hero-primary{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 12px 16px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--g-600), var(--g-500));
  color: #fff !important;
  font-weight: 900;
  border: 0;
  box-shadow: 0 18px 40px rgba(16,185,129,.25);
  transition: transform .25s ease, filter .25s ease;
}
.btn-hero-primary:hover{
  transform: translateY(-2px);
  filter: brightness(1.03);
}

.btn-hero-ghost{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff !important;
  font-weight: 900;
  transition: transform .25s ease, background .25s ease;
}
.btn-hero-ghost:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.20);
}

/* ---------- QUICK MENU ---------- */
.quick-modern{
  padding: 60px 0;
  background: #f4fbf7;
}

.quick-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
}

.quick-title p{
  color: var(--muted);
  font-weight: 600;
}

.quick-card{
  text-decoration:none !important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding: 16px 16px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  box-shadow: var(--shadow);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  height: 100%;
}

.quick-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 55px rgba(0,0,0,.14);
  border-color: rgba(16,185,129,.40);
}

.quick-icon{
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.35);
  color: var(--g-900);
  flex-shrink:0;
}

.quick-icon i{ font-size: 22px; }

.quick-text h4{
  margin: 0;
  color: var(--ink);
  font-weight: 900;
  font-size: 16px;
}
.quick-text span{
  display:block;
  margin-top: 4px;
  color: rgba(15,23,42,.62);
  font-weight: 700;
  font-size: 13px;
}

.quick-arrow{
  color: rgba(2,6,23,.35);
  font-size: 18px;
  transition: transform .25s ease;
}
.quick-card:hover .quick-arrow{
  transform: translateX(3px);
  color: var(--g-700);
}

/* ---------- VIDEO ---------- */
.video-modern{
  padding: 60px 0;
  background: #fff;
}

.video-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
}
.video-title p{
  color: var(--muted);
  font-weight: 600;
}

.video-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.video-frame{
  background: #eaf7f0;
}
.video-frame iframe{
  display:block;
  border: 0;
  width: 100%;
}

/* ---------- BERITA ---------- */
.berita-modern{
  background: #f4fbf7;
}

.berita-title h2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color: var(--g-900);
  font-weight: 900;
}
.berita-title p{
  color: var(--muted);
  font-weight: 600;
}

.berita-card{
  background: #fff;
  border: 1px solid rgba(6,95,70,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--shadow);
  height: 100%;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.berita-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 55px rgba(0,0,0,.14);
  border-color: rgba(16,185,129,.40);
}

.berita-thumb{
  position: relative;
  display:block;
  overflow:hidden;
}

.berita-thumb img{
  width: 100%;
  height: 210px;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  transition: transform .35s ease;
}

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

.berita-date{
  position:absolute;
  left: 14px;
  bottom: 14px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(5,46,42,.72);
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  font-weight: 800;
  font-size: 12px;
}

.berita-body{
  padding: 16px 16px 18px 16px;
}

.berita-title-text{
  margin: 0 0 10px 0;
  color: var(--ink);
  font-weight: 900;
  line-height: 1.35;
}

.berita-excerpt{
  margin: 0;
  color: rgba(15,23,42,.70);
  font-weight: 600;
  line-height: 1.7;

  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.berita-actions{
  margin-top: 14px;
  display:flex;
  justify-content:flex-end;
}

.btn-berita{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(16,185,129,.35);
  background: rgba(16,185,129,.10);
  color: var(--g-900) !important;
  font-weight: 900;
  text-decoration:none !important;
  transition: transform .25s ease, background .25s ease;
}

.btn-berita:hover{
  transform: translateY(-2px);
  background: rgba(16,185,129,.16);
}

.btn-lihat-semua{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 12px 18px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--g-600), var(--g-500));
  border: 0;
  color: #fff !important;
  font-weight: 900;
  box-shadow: 0 18px 40px rgba(16,185,129,.22);
}

.btn-lihat-semua:hover{
  filter: brightness(1.03);
}

/* responsive */
@media (max-width: 768px){
  .hero-modern p{ width: 100% !important; }
  .video-frame iframe{ height: 320px !important; }
  .berita-thumb img{ height: 200px; }
}

/* =========================================
   FIX: KOMENTAR TIDAK KETUTUP FOOTER
   (tempel paling bawah style.css)
   ========================================= */

/* 1) Matikan trik footer yang “naik” (negatif margin/transform) */
#footer{
  margin-top: 0 !important;
  transform: none !important;
}

/* kalau template punya .footer-top yang kadang dikasih margin negatif */
#footer .footer-top{
  margin-top: 0 !important;
  transform: none !important;
}

/* 2) Kasih ruang bawah pada halaman berita detail/index supaya konten tidak ketimpa */
section.berita-modern{
  padding-bottom: 700px !important; /* naik/turun angka ini sesuai kebutuhan */
}

/* 3) Kalau ternyata footer kamu pakai position fixed/absolute, paksa ikut alur normal */
#footer{
  position: relative !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
}
