@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap");

:root {
  /* Define the new color palette */
  --ihis-deep-green: #2f5249;
  --ihis-primary-green: #437057;
  --ihis-accent-green: #97b067;
  --ihis-highlight-yellow: #e3de61;

  /* Override Bootstrap and theme variables */
  --bs-primary: var(--ihis-primary-green);
  --bs-color-font-default: var(--ihis-deep-green);
  --bs-link-color: var(--ihis-primary-green);
  --bs-link-hover-color: var(--ihis-deep-green);
}


.bg-default {
  background-color: var(--bs-primary) !important;
}

/* * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
} */

body {
  font-family: "Plus Jakarta Sans", sans-serif;
  color: var(--bs-color-font-default);
}

/* Custom background color for footer */
.bg-deep-green {
  background-color: var(--ihis-deep-green) !important;
}

/* Custom button for Call-to-Action */
.btn-highlight {
  background-color: var(--ihis-highlight-yellow);
  color: var(--ihis-deep-green);
  border-color: var(--ihis-highlight-yellow);
  font-weight: bold;
}

.btn-highlight:hover {
  background-color: #d1cb5a; /* A slightly darker yellow for hover */
  color: var(--ihis-deep-green);
  border-color: #d1cb5a;
}

/* Top Bar */
.top-bar {
  background-color: var(--ihis-deep-green);
  color: #f0f0f0;
  padding: 0.5rem 0;
  font-size: 0.85rem;
  font-weight: 500;
}

.top-bar .contact-info a,
.top-bar .contact-info span {
  color: #f0f0f0;
  text-decoration: none;
  transition: color 0.3s ease;
}

.top-bar .social-media a {
  color: #f0f0f0;
  font-size: 1.1rem;
  transition: color 0.3s ease;
}

.top-bar a:hover {
  color: var(--ihis-highlight-yellow) !important;
}

section h2 {
  font-weight: 700;
}

/* navbar */

.navbar {
  position: sticky;
  width: 100%;
  top: -100px;
  background: var(--bs-primary) !important;
  z-index: 999;
  box-shadow: none;
  transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.navbar.fixed {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2) !important;
}

.nav-link {
  font-weight: 400;
  font-size: 13px;
  color: white !important;
  margin: 0 10px;
}

/* Hero Carousel Styles */
#heroCarousel {
  height: 100vh;
}

#heroCarousel .carousel-inner {
  height: 100%;
}

#heroCarousel .carousel-item {
  height: 100vh !important;
}

#heroCarousel .carousel-item img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Dark overlay for better text readability */
#heroCarousel .carousel-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

/* Caption positioning and animation */
#heroCarousel .carousel-caption {
  /* Override Bootstrap defaults for new position */
  top: 25%;
  bottom: auto;
  left: 10%;
  right: auto;
  width: 60%;
  max-width: 700px;
  text-align: left;
  transform: none;

  /* Animation properties */
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s ease;
  pointer-events: none;
}

#heroCarousel .carousel-caption .btn {
  font-weight: 600;
  padding: 0.75rem 2rem;
  border-radius: 50px; /* Pill shape */
  border-width: 2px;
}

/* Saat slide aktif: tampilkan caption dengan animasi */
#heroCarousel .carousel-item.active .carousel-caption {
  animation: fadeIn-caption 0.8s ease-in-out 0.5s forwards;
  pointer-events: auto;
}

@keyframes fadeIn-caption {
  from {
    opacity: 0;
    transform: translateY(20px); /* Animate from slightly below */
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Stats Counter Section */
#stats-counter {
  background-color: var(--ihis-highlight-yellow); /* bg-light */
}

.counter-box i {
  font-size: 2rem;
  color: var(--bs-primary);
  margin-bottom: 0.5rem;
  display: block;
}

.counter-box h2 {
  font-size: 2.8rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
  color: var(--bs-color-font-default);
}

.counter-box p {
  font-size: 1rem;
  color: #6c757d; /* text-muted */
  font-weight: 500;
  margin-bottom: 0;
}

h2::after {
  content: "";
  display: block;
  width: 100px; /* Panjang garis */
  height: 3px; /* Tebal garis */
  background-color: var(--bs-primary); /* Warna garis */
  margin: 15px auto 0; /* Jarak atas dan center */
}

#kenapa-pilih-kami,
#program,
#gallery,
#berita,
#prestasi {
  padding-top: 100px !important;
  padding-bottom: 50px !important;
}

/* #kenapa-pilih-kami {
  margin-top: 7em !important; 
} */

.cta-title {
  margin-bottom: 7rem !important;
}

/* visi */

#visi-misi {
  background-color: var(--ihis-deep-green);
  color: #eee;
}

#visi-misi h2 {
  color: #eee;
}

.visi-misi-content {
    color: var(--ihis-primary-green);
}

.list-unstyled .bi,
.program-card .bi {
  color: var(--bs-primary) !important;
}

/* Styling for Misi section from Summernote */
.misi-content ul {
  list-style-type: none;
  padding-left: 0;
  margin-left: 0; /* Menghapus margin default dari browser */
}

.misi-content li {
  padding-left: 2rem; /* Ruang untuk ikon */
  position: relative;
  margin-bottom: 0.75rem; /* Jarak antar item */
  line-height: 1.6;
}

.misi-content li::before {
  content: "\f26a"; /* Unicode Bootstrap Icon untuk 'check-circle-fill' */
  font-family: "bootstrap-icons";
  font-weight: normal;
  font-style: normal;
  font-size: 1.1rem;
  color: var(--ihis-highlight-yellow); /* Menggunakan warna utama tema */
  position: absolute;
  left: 0;
  top: 5px; /* Penyesuaian posisi vertikal */
}

/* Program Card Styles */
.program-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.program-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

/* Gallery */
.filter-controls .btn {
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary) !important;
}

.filter-controls .btn:hover {
  background-color: var(--bs-primary) !important;
  color: white !important;
}

.filter-controls .btn.active {
  background-color: var(--bs-primary) !important;
  color: white !important;
  border-color: var(--bs-primary) !important;
}

.gallery-link {
  display: block;
  position: relative;
  overflow: hidden;
  cursor: zoom-in;
  aspect-ratio: 4 / 3;
  border-radius: 0.375rem; /* Bootstrap's 'rounded' class */
  transition: box-shadow 0.3s ease;
}

.gallery-link:hover {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.gallery-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Reason Card Styles */
.reason-card {
  border: none;
  border-radius: 15px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease-in-out;
}

.reason-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.reason-card-icon {
  width: 70px;
  height: 70px;
  background-color: var(--bs-primary);
  color: white;
  font-size: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -35px; /* Pull icon up */
}

/* Prestasi Section / Owl Carousel */
#prestasi {
  background-color: var(--ihis-primary-green);
  color: #eee;
}

#prestasi .achievement-card {
  border: none;
  border-radius: 10px;
  transition: all 0.3s ease-in-out;
  background-color: #fff;
  border: 1px solid #eee;
  overflow: hidden; /* Ensures the image respects the card's border-radius */
}

#prestasi .achievement-card:hover {
  /* transform: translateY(-5px); */
  box-shadow: 0 8px 25px rgba(59, 93, 79, 0.1);
}

#prestasi .achievement-card .card-img-top {
  height: 180px;
  object-fit: cover;
}

#prestasi .achievement-card .card-body {
  padding: 0.75rem;
  /* Reduced padding */
}

/* Reposition Owl Carousel Navigation for Prestasi */
#prestasi .owl-nav {
  position: absolute;
  top: 48px; /* Vertically aligns with the title */
  right: 15px; /* Aligns with container padding */
  margin-top: 0;
  text-align: right;
}

#prestasi .owl-nav button.owl-prev,
#prestasi .owl-nav button.owl-next {
  width: 38px;
  height: 38px;
  margin: 0 5px;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.2) !important;
  color: white !important;
  font-size: 1.4rem !important;
  line-height: 1 !important;
  transition: all 0.3s ease;
}

#prestasi .owl-nav button.owl-prev:hover,
#prestasi .owl-nav button.owl-next:hover {
  background: rgba(255, 255, 255, 0.4) !important;
}

/* News Card Styles */

.news-card {
  overflow: hidden; /* Memastikan gambar yang membesar tidak keluar dari card */
}

.news-card .card-img-top {
  transition: transform 0.3s ease-in-out;
}

.news-card:hover .card-img-top {
  transform: scale(1.05); /* Sedikit memperbesar gambar */
}

.news-card .card-title {
  /* Set a minimum height to accommodate 2 lines of text */
  /* Adjust this value based on your font-size and line-height */
  min-height: 3rem;

  /* The following properties create the ellipsis for text that overflows */
  display: -webkit-box;
  -webkit-line-clamp: 2; /* Limit to 2 lines */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.news-card .card-text {
  display: -webkit-box;
  -webkit-line-clamp: 3; /* Limit description to 3 lines */
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card .btn {
  background-color: var(--bs-primary);
  color: white;
  border-color: var(--bs-primary) !important;
}

.news-card img {
  height: 200px;
  object-fit: cover;
}

.btn-berita, .btn-baca-berita {
  background-color: var(--ihis-primary-green);
  color: white;
  border: none;
}

.btn-berita:hover, .btn-baca-berita:hover {
  background-color: var(--ihis-highlight-yellow);
  color: var(--ihis-deep-green);
  border: none;
}

.btn-selengkapnya:active {
  background-color: var(--ihis-deep-green) !important;
}

/* CTA */

#faq {
  background-color: #f8f9fa; /* bg-light */
}

#faq .accordion-item {
  border: none;
  border-bottom: 1px solid #dee2e6; /* Light border between items */
  margin-bottom: 1rem;
  background-color: #fff;
  border-radius: 0.375rem !important; /* rounded */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  overflow: hidden; /* Ensures border-radius is respected */
}

#faq .accordion-button {
  font-weight: 600;
  color: var(--ihis-deep-green);
  background-color: #fff;
  box-shadow: none; /* Remove default shadow */
  padding: 1.25rem 1.5rem;
}

#faq .accordion-button:not(.collapsed) {
  color: var(--bs-primary);
  background-color: #f0f5f2; /* A very light green when active */
}

#faq .accordion-body {
  padding: 0 1.5rem 1.25rem 1.5rem;
  color: #495057;
}

/* Custom icon for accordion */
#faq .accordion-button::after {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin-left: auto;
  content: "\f288"; /* Bootstrap Icon: plus-circle */
  font-family: "bootstrap-icons";
  background-image: none; /* Remove default Bootstrap arrow */
  font-weight: normal;
  transition: transform 0.2s ease-in-out;
  color: var(--bs-primary);
}

#faq .accordion-button:not(.collapsed)::after {
  content: "\f2d7"; /* Bootstrap Icon: dash-circle */
  transform: rotate(0deg); /* No rotation needed for this icon */
}

#faq h2::after {
  margin: 15px 0 0; /* Align left for this section title */
}

#daftar {
  background-color: var(--bs-primary) !important;
}

.form-check-input:checked {
  appearance: none; /* modern browsers */
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: var(--ihis-primary-green) !important;
  border: 1px solid var(--ihis-primary-green) !important;
}

.form-check-input:focus {
  box-shadow: none !important
}

#form-pendaftaran .form-control:focus {
  /* box-shadow: none !important; */
  box-shadow: 0 0 0 0.25rem rgba(151, 176, 103, 0.25);
  outline: none !important;
  border: 1px solid var(--ihis-deep-green) !important;
}

/* Footer Map Styles */

#kontak h5 {
  color: var(--ihis-highlight-yellow) !important;
}
.map-responsive {
  overflow: hidden;
  padding-bottom: 75%; /* Adjust this ratio based on map height */
  position: relative;
  height: 0;
  border-radius: 0.375rem; /* rounded-3 */
}

.map-responsive iframe {
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  position: absolute;
}

/* Staff Card Styles (Profile Page) */
.staff-card-head,
.staff-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.staff-card-head:hover,
.staff-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 1rem 3rem rgba(32, 41, 50, 0.15) !important;
}

.staff-img-container {
  overflow: hidden;
  /* Creates a 4:5 aspect ratio container, ensuring a portrait shape */
  aspect-ratio: 4 / 5;
}

.staff-img-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* Profile */

.profile-header {
  background-color: var(--ihis-deep-green) !important;
}

/* Sejarah Section on Profile Page */
.video-wrapper {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  overflow: hidden;
  border-radius: 0.375rem; /* Bootstrap's 'rounded' class */
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.sticky-content-wrapper {
  position: -webkit-sticky;
  position: sticky;
  top: 120px; /* Adjust based on fixed navbar height + desired gap */
  height: calc(100vh - 140px); /* Calculate height to prevent overlapping footer */
  overflow-y: auto; /* Add scrollbar if content is taller than the wrapper */
  padding-right: 1rem; /* Add space for the scrollbar to avoid overlapping text */
}

/* Custom scrollbar for the history content */
.sticky-content-wrapper::-webkit-scrollbar {
  width: 8px;
}
.sticky-content-wrapper::-webkit-scrollbar-track {
  background: #f1f1f1;
}
.sticky-content-wrapper::-webkit-scrollbar-thumb {
  background: var(--ihis-accent-green);
  border-radius: 4px;
}
.sticky-content-wrapper::-webkit-scrollbar-thumb:hover {
  background: var(--ihis-primary-green);
}
