body {
  font-family: "Open Sans", sans-serif;
  line-height:1.6;
  color: #444444;
  overflow-x: hidden;
  scroll-behavior: smooth;
  transition: all .3s ease;
  -webkit-font-smoothing: antialiased;
}

.card {
  border: 1px solid #eceff1;
}

/* ==============================
  NAVBAR
============================== */
.navbar-bangkom {
  background:white;
  box-shadow:0 2px 15px rgba(0,0,0,0.08);
  backdrop-filter:blur(10px);
  padding:10px 0;
}

/* BRAND */
.brand-text strong {
  font-size:20px;
  color:#0d6efd;
}

.brand-text small {
  font-size:12px;
  color:#777;
}

/* MENU */
.navbar-nav .nav-link {
  font-weight:500;
  color:#444;
  margin:0 5px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  border-radius:8px;
  transition:0.3s;
  position:relative;
}

/* ICON */
.navbar-nav .nav-link i {
  font-size:16px;
}

/* HOVER */
.navbar-nav .nav-link:hover {
  background:#eef4ff;
  color:#0d6efd;
}

/* UNDERLINE EFFECT */
.navbar-nav .nav-link::after {
  content:'';
  position:absolute;
  bottom:-6px;
  left:50%;
  transform:translateX(-50%);
  width:0%;
  height:3px;
  background:#0d6efd;
  border-radius:10px;
  transition:0.3s;
}

.navbar-nav .nav-link:hover::after {
  width:60%;
}

/* hilangkan caret default bootstrap */
.dropdown-toggle::after{
    display: none;
}

/* Dropdown hover navbar */
.navbar .dropdown:hover .dropdown-menu {
  display: block;
}

/* animasi dropdown */
.dropdown-menu {
  border:0;
    border-radius:10px;
    box-shadow:0 10px 25px rgba(0,0,0,0.08);
}

.navbar .dropdown:hover .bi-chevron-down{
    transform: rotate(180deg);
    transition: .2s;
}

.bi-chevron-down{
    transition: .2s;
}

@media (max-width: 991px){
  .navbar .dropdown:hover .dropdown-menu{
    display: none;
  }

  #sliderBangkom .carousel-item{
    height:320px;
  }
}

@media (max-width: 768px){
  #sliderBangkom .carousel-item{
    height:250px;
  }
}

@media (max-width: 576px){
  #sliderBangkom .carousel-item{
    height:200px;
  }
}

/* ACTIVE */
.navbar-nav .nav-link.active {
  color:#0d6efd;
  font-weight:600;
}

.navbar-nav .nav-link.active::after {
  width:60%;
}

/* LOGIN BUTTON */
.btn-login {
  background:#0d6efd;
  color:white;
  padding:8px 18px;
  border-radius:25px;
  font-weight:500;
  transition:0.3s;
}

.btn-login:hover {
  background:#0b5ed7;
  color:white;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(13,110,253,0.3);
}

/* ==============================
  DASHBOARD INFORMATION
============================== */
.section-block{
  margin-bottom:70px;
}

.section-title{
  margin-bottom:20px;
  font-weight:600;
}

.section-title i{
  margin-right:8px;
}

.carousel-item img {
  height:350px;
  cursor:pointer;
  transition: transform .3s;
  /*object-fit:cover;*/
}

.carousel-item:hover img{
  transform: scale(1.02);
}

#sliderBangkom .carousel-indicators button{
  width:12px;
  height:12px;
  border-radius:50%;
  background-color:#dc3545; /* merah bootstrap */
  opacity:0.5;
  border:none;
  margin:0 5px;
}

#sliderBangkom .carousel-indicators .active{
  opacity:1;
  transform:scale(1.2);
}

/** Pengumuman **/
.content-pengumuman{
  font-size:16px;
  line-height:1.8;
}

.content-pengumuman img{
  max-width:100%;
  height:auto;
  border-radius:8px;
  margin:10px 0;
}

.content-pengumuman table{
  width:100%;
  border-collapse:collapse;
  margin:15px 0;
}

.content-pengumuman table td,
.content-pengumuman table th{
  border:1px solid #ddd;
  padding:8px;
}

.content-pengumuman h1,
.content-pengumuman h2,
.content-pengumuman h3{
  margin-top:20px;
  font-weight:600;
}

.content-pengumuman p{
  margin-bottom:15px;
}

.breadcrumb a{
  text-decoration:none;
}

.berita-card{
  transition:all .25s ease;
  border-radius:12px;
}

.berita-card:hover{
  transform:translateY(-5px);
  box-shadow:0 10px 25px rgba(0,0,0,0.1);
}

.berita-img{
  height:200px;
  overflow:hidden;
  border-radius:12px 12px 0 0;
}

.berita-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s;
}

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

.card-title a{
  text-decoration:none;
  color:#212529;
}

.card-title a:hover{
  color:#0d6efd;
}

/* ==============================
  DASHBOARD PELATIHAN
============================== */
.pelatihan-card {
  height:100%;
  display:flex;
  flex-direction:column;
  border-radius:10px;
  border:none;
  overflow:hidden;
  box-shadow:0 4px 15px rgba(0,0,0,0.08);
  transition:0.3s;
}

.pelatihan-card:hover {
  transform:translateY(-4px);
  box-shadow:0 10px 25px rgba(0,0,0,0.15);
}

.pelatihan-card .card-body{
  flex:1;
  display:flex;
  flex-direction:column;
}

.pelatihan-card .card-title{
  min-height: 56px;
  line-height: 1.2;
  font-weight: 600;  
  margin-bottom:0px;

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

/* POSTER */
.poster-wrapper {
  height:300px;
  overflow:hidden;
  background:#f5f5f5;
}

.poster-wrapper img {
  width:100%;
  height:100%;
  object-fit:contain;
}

/* INFO */
.status-badge{
  font-size:12px;
  padding:6px 10px;
  margin-bottom: 10px;
  border-radius:20px;
}

.info-pelatihan {
  margin-top:10px;
}

.info-item {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  margin-bottom:6px;
  color:#555;
}

.info-item i{
  color:#0d6efd;
  font-size:15px;
}

.info-item .badge{
  font-size:11px;
  padding:4px 8px;
  border-radius:6px;
}

.btn-detail {
  border-radius:10px;
  font-weight:500;
}

/* ========================
   RIBBON INFO PELATIHAN
======================== */
.ribbon-wrapper{
    position: relative;
    overflow: hidden;
}

.ribbon-diagonal{
    position: absolute;
    top: 18px;
    left: -50px;
    width: 170px;
    text-align: center;
    padding: 5px 40px;
    color: #fff;
    font-weight: 600;
    font-size: 12px;
    transform: rotate(-45deg);
    box-shadow: 0 3px 8px rgba(0,0,0,0.25);
    letter-spacing: .5px;
    transition: transform .2s;
}

.ribbon-wrapper img {
  width: 100%;
  border-radius: 10px;
}

.img-landscape img {
  height: 220px;
  object-fit: cover;
}

.img-portrait img {
  height: 100%;
  width: auto;
  object-fit: contain;
}

.ribbon-wrapper:hover .ribbon-diagonal{
    transform: rotate(-45deg) scale(1.05);
}

.badge-webinar{
  background:#e7f1ff;
  color:#0d6efd;
}

.badge-klasikal{
  background:#e8fff1;
  color:#198754;
}

.badge-mandiri{
  background:#fff8e1;
  color:#ff9800;
}

.badge-blended{
  background:#f3e8ff;
  color:#7b1fa2;
}

/* ==============================
   FOOTER
============================== */
.footer {
  background:#ffffff;
  color:#444;
  padding:40px 0;
  border-top:3px solid #0d6efd;
}

.footer-title {
  font-weight:600;
  margin-bottom:15px;
  color:#0d6efd;
}

.footer-menu {
  list-style:none;
  padding:0;
}

.footer-menu li {
  margin-bottom:8px;
}

.footer-menu a {
  text-decoration:none;
  color:#555;
}

.footer-menu a:hover {
  color:#0d6efd;
}

.footer .text-muted {
  color:#777 !important;
}

.social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
    
  width: 40px;
  height: 40px;
    
  border-radius: 50%;
  background: #0d6efd;
  color: white;

  text-decoration: none;
  margin-right: 8px;
    
  transition: 0.3s;
}

.social-links a:hover {
  background: #084298;
  transform: translateY(-3px);
}

.social-links a:nth-child(1){ background:#1877f2; } /* Facebook */
.social-links a:nth-child(2){ background:#e4405f; } /* Instagram */
.social-links a:nth-child(3){ background:#000; }    /* X */
.social-links a:nth-child(4){ background:#000;}    /* TikTok */
.social-links a:nth-child(5){ background:#ff0000; } /* Youtube */

/* ==============================
   TABLE
============================== */
.dt-skeleton{
  height:14px;
  width:100%;
  border-radius:6px;

  background:linear-gradient(
    90deg,
    #f0f0f0 25%,
    #e0e0e0 37%,
    #f0f0f0 63%
  );

  background-size:400% 100%;

  animation:dt-skeleton-loading 1.4s infinite;
}

@keyframes dt-skeleton-loading{

  0%{
    background-position:100% 50%;
  }

  100%{
    background-position:0 50%;
  }

}

.dt-skeleton td{
    padding:16px 8px;
}

table th, table td {
  font-size: 0.875rem;
}

table.dataTable thead th {
  text-align: center !important;    /* Horizontal */
  vertical-align: middle !important; /* Vertikal */
  border: 1px solid #dee2e6;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter{
    margin-bottom: 15px;
}

/* ==============================
   COMMING SON
============================== */
.coming-wrapper{
  min-height:75vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 20px;
}

.gradient-bg{
  background: linear-gradient(135deg,#0ea5e9,#22c55e);
  background-size: 200% 200%;
  animation: gradientMove 8s ease infinite;
}

.coming-img{
  max-width:420px;
  width:100%;
  animation: floating 3s ease-in-out infinite;
}

/* animasi gradient bergerak */
@keyframes gradientMove{
  0%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
  100%{ background-position:0% 50%; }
}

/* animasi naik turun */
@keyframes floating{
  0%{ transform:translateY(0); }
  50%{ transform:translateY(-12px); }
  100%{ transform:translateY(0); }
}

/** CK Editor **/
.ck-content .image {
    display: table;
    margin: 1em auto;
}

.ck-content .image img {
    max-width: 100%;
    height: auto;
}

/* side image */
.ck-content .image-style-side {
    float: right;
    margin-left: 20px;
    width: 50%;
}

/* center image */
.ck-content .image-style-block {
    margin-left: auto;
    margin-right: auto;
}

/* inline image */
.ck-content .image-style-inline {
    display: inline-block;
}