 /* ===== BASE NAVBAR ===== */
    .custom-navbar {
      background-color: #e6f3ff; /* sesuaikan dengan background biru muda */
      box-shadow: 0 2px 12px;
      z-index: 1060;
    }
  /* tampil burger default */
  .navbar-toggler .icon-burger { display:inline-block; }
  .navbar-toggler .icon-x { display:none; }

  /* saat terbuka: tampil X */
  .navbar-toggler[aria-expanded="true"] .icon-burger { display:none; }
  .navbar-toggler[aria-expanded="true"] .icon-x { display:inline-block; }

  /* burger */
  .icon-burger{ width:24px; height:18px; position:relative; }
  .icon-burger::before,
  .icon-burger::after,
  .icon-burger > span{
    content:"";
    position:absolute;
    left:0; right:0;
    height:2px;
    background: currentColor;   /* ikut warna teks */
  }
  .icon-burger::before{ top:0; }
  .icon-burger > span{ top:8px; }
  .icon-burger::after{ top:16px; }

  /* X */
  .icon-x{ width:24px; height:24px; position:relative; }
  .icon-x::before,
  .icon-x::after{
    content:"";
    position:absolute;
    left:0; right:0;
    top:11px;
    height:2px;
    background: currentColor;
  }
  .icon-x::before{ transform:rotate(45deg); }
  .icon-x::after{ transform:rotate(-45deg); }
    
    /* ===== OVERLAY BELAKANG MENU ===== */
    .nav-overlay {
      position: fixed;
      top: 67px; /* sama dengan tinggi navbar */
      left: 0;
      width: 100vw;
      height: calc(100vh - 56px);
      background: rgba(15, 23, 42, 0.45);
      backdrop-filter: blur(2px);
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.25s ease;
      z-index: 1040;
    }

    body.nav-open .nav-overlay {
      opacity: 1;
      visibility: visible;
    }

    
    /* ===== MOBILE: SLIDE MENU DARI KIRI ===== */
    @media (max-width: 991.98px) {

      .custom-navbar .navbar-collapse {
        position: fixed;
        top: 65px; /* mulai di bawah navbar */
        left: 0;
        width: 78%;
        max-width: 320px;
        height: calc(100vh - 65px);
        /* warna panel selaras background */
        background: linear-gradient(
          to bottom,
          #e9f5ff 0%,
          #d9eefc 100%
        );

        padding: 2rem 1.5rem 2rem;
        box-shadow: 6px 0 24px rgba(15, 23, 42, 0.25);

        transform: translateX(-100%);
        transition: transform 0.3s ease;
        z-index: 1050;
      }

      .custom-navbar .navbar-collapse.show {
        transform: translateX(0);
      }

      
      body.nav-open {
        overflow: hidden;
      }

      /* Menu item */
      .custom-navbar .navbar-nav .nav-link {
        color: #0f172a;
        font-size: 1.05rem;
        padding: 0.7rem 0;
        font-weight: 500;
      }

      .custom-navbar .navbar-nav .nav-link.active,
      .custom-navbar .navbar-nav .nav-link:hover {
        color: #0284c7; /* biru utama */
      }

      /* Form search */
      .custom-navbar form {
        width: 100%;
        margin-top: 1.2rem !important;
        flex-direction: row;
      }

      .custom-navbar form .form-control {
        background-color: #ffffff;
        border-color: #cbd5e1;
        color: #0f172a;
      }

      .custom-navbar form .form-control::placeholder {
        color: #64748b;
      }

      .custom-navbar form .btn {
        border-radius: 9999px;
        border-color: #0284c7;
        color: #0284c7;
      }

      .custom-navbar form .btn:hover {
        background-color: #0284c7;
        color: #ffffff;
      }
    }

    /* ===== DESKTOP ===== */
    @media (min-width: 992px) {
      .custom-navbar .navbar-collapse {
        transform: none !important;
        position: static;
        height: auto;
        background: transparent;
        box-shadow: none;
        padding: 0;
      }

      
      .custom-navbar .navbar-nav .nav-link {
        color: #0f172a;
        padding: 0.5rem 0.75rem;
      }

      .custom-navbar .navbar-nav .nav-link.active,
      .custom-navbar .navbar-nav .nav-link:hover {
        color: #0f62fe;
      }

      .custom-navbar form {
        margin-top: 0 !important;
      }
    }
/* =======================
   NAVBAR CUSTOM STYLES
   ======================= */


a{
    color: #000 !important;
}
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #dcefff ;
}

.accordion-button:not(.collapsed)::after{
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 8h14' stroke='%230166b2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
.accordion-button::after{
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1v14M1 8h14' stroke='%230166b2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}

.image_banner_kanan{
    width: auto;
    height: 22rem;
    position: absolute;
    right: 0;
    top: 10rem;
}
.accordion-button{
    color: #0166b2 !important;
}

.nav-link {
    font-size: 1.25rem;
    font-weight: 600;
}

.text-sub-program-ekslusif{
    font-size: 1.15rem;
    font-weight: 600;
}

.fw-600 {
    font-weight: 600 !important;
}

.text-primary {
    color: #0166b2 !important;
}

.text-justify{
    text-align: justify;
}

.rounded-img-ganbaru{
    border-radius: .75rem !important;
}

.card-text-h3{
    font-size: 2.25rem;
    font-weight: 700;
}

.display-ganbaru-banner{
    margin-top: 2.5rem !important;
    line-height: .4 !important;
    margin-bottom: 1rem !important;
}

.exclusive-card-left{
    margin-left: 3rem;
}

.exclusive-card-right{  
    margin-right: 3rem;
}
.sub-text-jamina{
    font-size: 1.55rem;
    color: #000 !important;
}
.bg-color-primary {
    background-color: #dcefff !important;
}

.custom-navbar {
    background-color: #dcefff;
    box-shadow: 0 2px 4px rgba(0,0,0,.05);
}
.icon-jaminan{
    margin-bottom: 1rem;
    width: auto;
    height: 50px;
}
.icon-maps-location{
    width: auto;
    height: 1.75rem;
}

.potongan-img{
    width: 9rem;
    height: auto;
    position: absolute;
    left: 75rem;
    top: 97.2rem;
}

.hero-section {
    background: url('./assets/Foto_Background_Sekolah.png') no-repeat center center; /* Ganti dengan gambar latar aktual */
    background-size: cover;
    color: #fff;
    padding: 95px 20px;
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: center;
    border-radius: .75rem;
    margin-top: 1rem;
    overflow: hidden;
}

.smooth-stroke {
  font-size: 64px;
  font-weight: bold;
  fill: #FFD700;
  stroke: #fff;
  stroke-width: 2px; 
  stroke-linejoin: round; 
}

.hero-overlay {
    background-color: rgba(1, 102, 178, 0.8);
    
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: .75rem;
}   
.hero-content {
    z-index: 1;
}
.hero-banner-text {
    color: #ffc107; /* Warna kuning untuk teks banner */
    text-shadow: 
    -2px -2px 0 #fff, /* Kiri atas */
     2px -2px 0 #fff, /* Kanan atas */
    -2px  2px 0 #fff, /* Kiri bawah */
     2px  2px 0 #fff; /* Kanan bawah */
}
.hero-banner-cta {
    border: .5rem solid #ffff;
    border-radius: 1.25rem;

    background-color: #ffc107;
    color: #212529;
    font-weight: bold;
}
.guarantee-card {
    background-color: #fdfce9;
    min-height: 180px;
    text-align: center;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}
.guarantee-card:hover {
    transform: translateY(-5px);
}
.section-title {
    /* color: #0d6efd; Warna biru untuk judul */
    font-weight: 700;
}

.exclusive-program {
    background-color: #0166b2; /* Biru cerah */
    /* color: #fff; */
    padding: 50px 0;
    margin-top: 50px;
}

.exclusive-card {
    background-color: rgba(255, 255, 255);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 10px;
    padding: 1.5rem 2rem;
    min-height: 250px;
}

.exclusive-card ul{
    margin-left: 2.3rem;
}

.exclusive-card-p{
    font-size: 1.05rem;
    
}
/* CSS Kustom untuk Bagian Alur Kerja */


/* ===== SECTION ===== */
.flow-section {
  /* background: #f6fbff; */
}

/* ===== JUDUL ===== */
.flow-heading-wrapper {
  display: inline-block;
  padding: 10px 48px;
  border-radius: 12px;
  
  position: relative;
  z-index: 3;
}

.flow-heading-title {
  margin: 0;
  font-size: 64px;
  font-weight: 800;
  color: #0066b3;
}

/* ===== CARD ===== */
.flow-card {
  background: #fff;
  border-radius: 28px;
  padding: 48px 44px 90px;
  margin-top: 30px;
  position: relative;
}

/* ===== LIST ===== */
.flow-list {
  position: relative;
}

/* ===== ITEM ===== */
.flow-item {
  display: flex;
  gap: 16px;
  margin-bottom: 22px;
}

/* ===== KOLOM ANGKA + GARIS ===== */
.flow-indicator {
  position: relative;
  width: 40px;
  display: flex;
  justify-content: center;
}

/* ===== ANGKA BULAT ===== */
.flow-number {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #ffcc00;
    border: 4px solid #0166b2;
    color: #0166b3;
    font-weight: 800;
    font-size: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    padding: 25px;
}

/* ===== GARIS VERTIKAL ===== */
.flow-line {
  position: absolute;
  top: 32px;
  left: 50%;
  transform: translateX(-50%);
  width: 7px;
  height: calc(100% + 6px);
  background: #0166b3;
  border-radius: 2px;
}

/* HILANGKAN GARIS DI ITEM TERAKHIR */
.flow-item.last .flow-line {
  display: none;
}

/* ===== TEKS ===== */
.flow-step-title {
  margin: 0;
  font-size: 25.5px;
  font-weight: 800;
  color: #0166b2;
}

.flow-step-sub {
  margin: 2px 0 0;
  font-weight: 500;
  font-size: 16.7px;
   color: #000;
}

/* ===== IMAGE ===== */
.flow-hero-img {
    max-width: 400px;
    width: 100%;
    position: absolute;
    top: 7rem;
    right: 0rem;
    border-radius: 24px;
    transform: translateY(24px);
}

/* ===== BUTTON ===== */
.flow-cta-btn {
    position: absolute;
    left: 50%;
    bottom: -35px;
    transform: translateX(-50%);
    background: #ffcc00;
    color: #ffffff !important;
    font-weight: 900;
    font-size: 25px;
    padding: 14px 50px;
    border-radius: 16px;
    border: 4px solid #fff;
    text-decoration: none;
    letter-spacing: .03em;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.25);
    text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}

@media (max-width: 1281px) {
  /* .potongan-img {
    margin-left: 59rem;
  } */
  /* .testi-viewport {
    padding: 1rem 0rem !important;
  } */

}

/* ===== RESPONSIVE ===== */
@media (max-width: 992px) {
  .flow-card {
    padding: 32px 20px 80px;
  }
  .flow-hero-img {
    transform: none;
    margin-top: 20px;
  }
}






/* CSS Kustom untuk Bagian Alur Kerja */

/* CSS Kustom Tambahan untuk Bagian Lanjutan */
.bg-light-blue {
    background-color: #f0f7ff; /* Warna latar biru muda untuk bagian testimoni/staf */
}
.facility-card {
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.3s;
}
.facility-card:hover {
    transform: translateY(-5px);
}
.facility-title {
    background-color: #0d6efd;
    color: #fff;
    padding: 10px 0;
    text-align: center;
    font-weight: bold;
    font-size: 1.1rem;
}
.person-card {
    min-height: 250px;
    display: flex;
    align-items: center;
    padding: 15px 0px !important;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0,0,0,.05);
}
.person-photo-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 20px;
}
.staff-photo-container {
    border-radius: 1rem;
    border-style: solid;
    border-color: #fff;
    border-width: 1rem;
    border-bottom-width: 1.5rem;
}
.staff-photo {
    border-radius: 1rem;
    width: 293px;
    height: 301;
    object-fit: cover;
}

.staff-name-box {
    background-color: #0166b2;
    color: #fff;
    margin: 0px -9px;
    padding: 5px 14px;
    text-align: left;
    font-weight: bold;
    position: absolute;
    border-radius: .75rem;
    bottom: 0;
    left: 0;
    right: 0;
}



.accordion-button:not(.collapsed) {
    /* color: #0d6efd; */
    background-color: #e6f0ff;
}
.accordion-button {
    font-weight: 500;
}
.map-container {
    background-color: #0166b2 !important;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.btn-hubungi {
    background-color: #ffc107;
    color: #212529;
    font-weight: bold;
}

/* CSS Kustom Tambahan untuk Footer */
.footer-section {
    background-color: #004d99; /* Biru tua/gelap yang mirip dengan gambar */
    color: #fff;
    padding: 40px 0 20px 0;
}
.footer-logo-text {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.4;
}

.footer-logo {
width: auto;
    height: 4rem;
    margin-bottom: 15px;
}

.social-icon {
   margin: 0 1.25rem;
    margin-right: 10px;
    color: #ffffff !important;
}

.social-icon i{
    font-size: 2rem;
}

.social-icon-container img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* 
    style for carusel image 
*/

:root {
  --card-width: 260px;
  --card-gap: 30px;
}

.fasilitas {
  background: #dff1ff;
  padding: 50px 0 70px;
  text-align: center;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.fasilitas h2 {
  color: #0071c5;
  font-size: 32px;
  line-height: 1.2;
  font-weight: 800;
  margin-bottom: 10px;
}

.fasilitas p {
  max-width: 650px;
  margin: 0 auto 25px;
  color: #333;
}

/* WRAP + PANAH */
.carousel-wrap {
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

/* viewport: pas 3 kartu */
.viewport {
  width: calc(3 * var(--card-width) + 2 * var(--card-gap));
  overflow: hidden;
  height: 18rem;
  padding: 1.4rem 0;
}

/* track semua item */
.track {
  display: flex;
  gap: var(--card-gap);
  transition: transform .35s ease;
}

/* item: lebar fix, layout 3 kolom stabil */
.item {
  width: var(--card-width);
  flex: 0 0 var(--card-width);
}

/* kartu dasar */
.card-gb {
  background: #ffffff;
  border-radius: 22px;
  margin: 0rem .7rem;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}

/* isi kartu yang akan di-zoom */
.card-gb-inner {
  border-radius: 22px;
  background: #f5f5f5;
  border-radius: 22px;
  border-style: solid;
  border-color: #fff;
  border-width: 1rem;
  border-bottom-width: 1.5rem;
  transform-origin: center center;
  transform: scale(1);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

/* gambar */
.card-gb-inner img {
  width: 100%;
  height: 200px;
  position: relative;
  overflow: hidden;
  border-radius: 18px;
}

/* label biru */
.label-gb {
    background: #0166b1;
    color: #ffffff;
    text-align: center;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px 14px;
    font-weight: 700;
    margin: 0 -8px;
    font-size: 13px;
    line-height: 1.2;
    border-radius: 12px;
    z-index: 2;
}

/* item TENGAH (active): inner di-zoom sedikit + border ungu */
.item.active .card-gb-inner {
   transform: scale(1.2);          /* sedikit lebih besar dari kiri/kanan */
   border-radius: 1rem;
   border-style: solid;
   border-color: #fff;
   border-width: 1rem;
   border-bottom-width: 1.5rem;
   box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}

/* tombol panah */
.nav {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #fff;
  background: #000;
  border: none;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nav:hover {
  transform: scale(1.05);
}

/* responsive sederhana */
@media (max-width: 900px) {
  .viewport {
    width: 100%;
  }
  .track {
    gap: 18px;
  }
  .item {
    width: 70%;
    flex: 0 0 70%;
  }
}

/* 
    Style carusel image End 
*/

/* CARD LOKASI KAMI (kanan) */
.lokasi-card {
    padding: .75rem;
    background: #0166b2;
    border-radius: 24px;
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* MAP DI ATAS */
.lokasi-map iframe {
  width: 100%;
  height: 15rem;
  border: 0;
  border-radius: 16px;
}

/* BODY */
.lokasi-body {
  padding: 14px 20px 22px;
}

.lokasi-title {
  font-size: 30px;
  font-weight: 800;
  margin-bottom: 4px;
}

.lokasi-address {
  font-size: 12px;
  line-height: 1.4;
}

/* INFO 2 KOLOM */
.lokasi-info {
  display: flex;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 12px;
  margin-top: 10px;
}

.lokasi-item {
  flex: 0 0 calc(50% - 5px);
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11px;
}

.lokasi-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  /* background: #ffffff; */
  color: #0166b2;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

.lokasi-label {
  font-weight: 700;
  font-size: 15px;
}

.lokasi-sub {
  font-size: 9px;
  line-height: 1.3;
}

/* BUTTON KUNING DI BAWAH */
.lokasi-btn {
    margin: 0 24px 18px;
    border-radius: 16px;
    background-color: #e5b114;
    border: 5px solid #ffffff;
    font-weight: 800;
    padding: 15px 5px;
    font-size: 1.5rem;
    letter-spacing: .04em;
    color: #fff !important;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.25);
    text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}

.lokasi-btn:hover {
  background-color: #ffdd33;
  color: #ffffff;
}

/* Carousel testimoni */
.testi-section{
  background: #dff0ff;
  padding: 56px 16px 64px;
}

.testi-title{
  margin: 0 0 18px;
  text-align: center;
  color: #0b66c3;
  letter-spacing: .6px;
  font-weight: 800;
}

/* CAROUSEL */
.testi-carousel{
  max-width: 80%;
  margin: 0 auto;
  position: relative;
}

/* viewport: padding kiri/kanan jadi "ruang" yang konsisten */
.testi-viewport{
  overflow: hidden;
  border-radius: 22px;
  padding: 1rem 0rem;
  width: 75rem;
  max-width: 100%;
}

/* track: TANPA gap agar step translate konsisten */
.testi-track{
  display: flex;
  transition: transform 380ms ease;
  will-change: transform;
}

/* slide: FIX 100% width agar semua step sama */
.testi-slide{
  flex: 0 0 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 8px 0;
  box-sizing: border-box;
}

/* CARD */
.testi-card{
  width: min(987px, 100%);
  background: #fff;
  border-radius: 18px;
  /* box-shadow: 0 10px 25px rgba(0,0,0,.10); */
  padding: 30px 22px;
  display: grid;
  grid-template-columns: 112px 1fr;
  gap: 20px;
  align-items: center;
  position: relative;
}

/* Avatar */
.testi-avatar{
  width: 96px;
  height: 96px;
  border-radius: 999px;
  overflow: hidden;
  background: #f3f4f6;
  display: grid;
  place-items: center;
  margin-left: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,.10);
}

.testi-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.testi-meta h3{
  margin: 0;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 800;
}

.testi-sub{
  margin-top: 2px;
  color: #6b7280;
  font-size: 13px;
  font-style: italic;
}

.testi-quote{
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: #111827;
  position: relative;
}

.testi-quote::before{
  content: "“";
  position: absolute;
  left: -10px;
  top: -16px;
  font-size: 42px;
  color: rgba(11,102,195,.18);
  font-weight: 900;
  line-height: 1;
}

/* NAV BUTTON */
.testi-btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  background: #111;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
  transition: transform .2s ease, background .2s ease, opacity .2s ease;
  z-index: 3;
}

.testi-btn:hover{
  background: #000;
  transform: translateY(-50%) scale(1.08);
}

.testi-btn:active{
  transform: translateY(-50%) scale(.95);
}

.testi-btn--prev{ left: -6rem; }
.testi-btn--next{ right: -6rem; }

.testi-btn[disabled]{
  opacity: .45;
  cursor: not-allowed;
}

/* DOTS */
.testi-dots{
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}

.testi-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  background: rgba(11,102,195,.22);
  cursor: pointer;
}

.testi-dot.is-active{
  width: 20px;
  background: rgba(11,102,195,.85);
}

/* Responsive */
@media (max-width: 1200px){
  .testi-carousel{ max-width: 100%; }
  .testi-btn--prev{ left: -3.5rem; }
  .testi-btn--next{ right: -3.5rem; }
}

@media (max-width: 768px){
  .testi-viewport{ padding: 1rem; }
  .testi-card{
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .testi-avatar{ margin-left: 0; }
  .testi-quote::before{ left: 0; }
}



/* Carousel testimoni End */
:root{
  --tokutei-card-w: 260px;
  --tokutei-gap: 30px;
}

.tokutei-program{
  background: #dff1ff;
  padding: 50px 0 70px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.tokutei-program__head{
  text-align: center;
  margin-bottom: 24px;
  padding: 0 16px;
}

.tokutei-program__title{
  color: #0071c5;
  font-size: 36px;
  line-height: 1.15;
  font-weight: 900;
  margin: 0;
}

.tokutei-program__subtitle{
  margin-top: 6px;
  color: #0071c5;
  font-size: 28px;
  font-weight: 900;
}

.tokutei-card__link{
    background: #e5b114;
    padding: 0.5rem 1.5rem;
    position: relative;
    border: .2rem solid #fff;
    color: #FFF !important;
    font-size: 13.6pt;
    border-radius: 20px;
    font-weight: 700;
    text-decoration: none;
    top: -16px;
    margin-left: 1rem;
  }

/* === Carousel layout === */
.tokutei-carousel{
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 0 14px;
}

/* arrows */
.tokutei-carousel__arrow{
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #fff;
  background: #000;
  border: none;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  font-size: 20px;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.tokutei-carousel__arrow:active{ transform: scale(.98); }

/* window: 3 kartu */
.tokutei-carousel__window{
  width: calc(3 * var(--tokutei-card-w) + 2 * var(--tokutei-gap));
  overflow: hidden;
  height: 23rem;
  padding: 1.7rem 0px;
}

/* row */
.tokutei-carousel__row{
  display: flex;
  align-items: center;
  margin-left: 1.2rem;
  gap: var(--tokutei-gap);
  will-change: transform;
  transition: transform .45s ease;
}

/* slide slot */
.tokutei-slide{
  width: var(--tokutei-card-w);
  flex: 0 0 var(--tokutei-card-w);
}

/* card */
.tokutei-card{
  /* background: #fff; */
  border-radius: 22px;
  width: 14rem;
  /* box-shadow: 0 6px 18px rgba(0,0,0,.08); */
}

.tokutei-card__inner{
  position: relative;
  border-radius: 15px;
  background: #007284;
  border: .5rem solid #007284;
  border-bottom-width: 1.5rem;
  transform-origin: center center;
  transform: scale(1);
  transition: transform .25s ease, box-shadow .25s ease;
}

.tokutei-card__img{
  width: 100%;
  height: 250px;
  border-radius: 15px;
  object-fit: cover;
  display: block;
}

.tokutei-card__label{
  background: #007284;
  color: #fff;
  text-align: center;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 15px 14px;
  font-weight: 700;
  font-size: 13px;
  /* border-radius: 12px; */
  z-index: 2;
}

/* active (tengah) */
.tokutei-slide.is-active .tokutei-card__inner{
  transform: scale(1.18);
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
}

.tokutei-slide.is-active .tokutei-card__link{
  top: 5px;
  margin-left: .1rem;
  font-size: 16.4pt;
}
.tokutei-slide.is-active .tokutei-card__label{
  font-size: 15px;
}


/* dots */
.tokutei-carousel__dots{
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 14px;
}
.tokutei-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 0;
  background: rgba(0,0,0,.18);
  cursor: pointer;
}
.tokutei-dot.is-on{ background: #000; }

/* responsive */
@media (max-width: 900px){
  .tokutei-carousel__window{ width: 100%; }
  .tokutei-slide{
    width: 70%;
    flex: 0 0 70% !important;
  }
  /* .tokutei-slide.is-active {
    margin: 1rem!important;
  } */
}








/* =========================================================
   RESPONSIVE HIDE UTILITIES
   Author  : Ready to use
   Purpose : Hide elements by screen size (max-width / min-width)
   ========================================================= */

/* =============== XXL / DESKTOP WIDE (≤ 1400px) ========= */
@media (max-width: 1450px) {
  .hide-xxl { display: none !important; }
  
  .testi-btn--prev{
    left: -4rem;
  }
  
  .testi-btn--next{
    right: -4rem;
  }

  /* .potongan-img {
    margin-left: 70rem !important;
  } */

}

@media (max-width: 1331px) {
  .hide-xl { display: none !important; }
  .testi-btn--prev{
    left: -6rem;
  }

  .testi-btn--next{
    right: -6rem;
  }

  /* .potongan-img {
    margin-left: 60rem !important;
  } */

  .potongan-img {
    left: 66rem;
 }

}


/* =============== EXTRA LARGE / LAPTOP (≤ 1200px) ======= */
@media (max-width: 1200px) {
  .hide-xl { display: none !important; }
}

/* =============== EXTRA LARGE / LAPTOP (≤ 1024px) ======= */
@media (max-width: 1024px) {
  .hide-xl { display: none !important; }
  
  .card-text-h3 {
    font-size: 1.8rem;
  }

  .potongan-img {
    width: 8rem;
    left: 53rem;
    right: 4rem;
    top: 95rem;
  }

  .flow-heading-title {
    font-size: 50px;
  }

  .flow-hero-img {
    top: 11rem;
  }

  .text-primary-size {
    font-size: 2rem;
  }

  .person-card img {
    width: 8rem;
    height: auto;
    margin: 1.5rem 1.25rem;
  }

  .carousel-wrap {
    gap: 4px;
}

}

/* =============== LARGE / TABLET (≤ 992px) ============== */
@media (max-width: 992px) {
  .hide-lg { display: none !important; }
  .image_banner_kanan {
    height: 15rem;
    top: 14rem;
  }
  .card-text-h3 {
        font-size: 1.2rem;
  }
  .exclusive-card ul {
    margin-left: .5rem;
  }

  .potongan-img {
        width: 7rem;
        right: 4rem;
        top: 100rem;
        left: 44rem;
  }
  
  .flow-hero-img {
    max-width: 250px;
    margin-top: 122px;
  }

  .flow-cta-btn{
    font-size: 23px;
  }

  .item {
    width: 30%;
    flex: 0 0 30%;
  }

  .card-gb-inner img {
    width: auto;
    height: 133px;
  }

  .label-gb {
    font-size: 10px;
  }

  .staff-photo {
    width: 198px;
  }

  .tokutei-card {
    margin: 0rem 7rem;
  }
  
}

@media (max-width: 875px) {
  .potongan-img {
    left: 40rem !important;
  }
  
}

/* =============== MEDIUM / MOBILE LARGE (≤ 768px) ======= */
@media (max-width: 769px) {
  .hide-md { display: none !important; }
  .testi-btn--prev{ left: -6px; }
  .testi-btn--next{ right: -6px; }
  
  .testi-card {
    margin: 0rem 2rem
  }
  .image_banner_kanan {
    height: 15rem;
    top: 14rem;
  }
  /* .flow-hero-img {
    top: 7.7rem;
  } */
  .potongan-img {
    width: 7rem !important;
    right: 2rem !important;
    top: 99.3rem !important;
    left: 39rem !important;
  }
  .card-text-h3 {
    font-size: 1.5rem;}


  .exclusive-card ul {
      margin-left: .25rem;
  }
  .flow-step-title {
      font-size: 20px;
    }
  .flow-heading-title {
      margin: 0;
      font-size: 41px;
  }
  .flow-number {
    width: 11px;
    height: 11px;
    font-weight: 800;
    font-size: 25px;
    padding: 20px;
  }
  .flow-hero-img {
    max-width: 260px;
    top: 7.7rem;
    right: 0rem;
  }
  .item {
    width: 31%;
    flex : 0 0 31%;
  }

  .staff-photo {
    width: 200px;
  }

  /* carousel */
  .carousel-wrap {
    gap: 10px;                
  }

  .viewport {
    width: 100%;
    padding: 1rem 0;
    height: auto;           
  }

  .track {
    gap: 0;                 
  }

  .item {
    width: 100%;
    flex: 0 0 100%;          
  }

  .card-gb {
    margin: 0 auto;          
    max-width: 320px;          
  }

  /* MATIKAN ZOOM DI MOBILE (biar tidak gepeng & tidak keluar viewport) */
  .item.active .card-gb-inner {
    transform: scale(1);       
  }

  /* kalau gambarnya ikut kegunting, pakai ini */
  .card-gb-inner img {
    height: 18.5rem;
    object-fit: cover;
  }

  .nav {
    width: 36px;
    height: 36px;
    font-size: 18px;
  }
  /* carousel End*/

  
   /* pastikan window (viewport) jadi pembatas yang ketat */
  .tokutei-carousel__window{
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
    padding: 0;                /* hilangkan padding supaya tidak ada “peek” */
    box-sizing: border-box;
  }

  /* row jangan punya gap agar tidak ada sisa kanan/kiri */
  .tokutei-carousel__row{
    gap: 0 !important;
  }

  /* KUNCI: 1 slide = 100% lebar viewport */
  .tokutei-slide{
    flex: 0 0 100% !important;
    width: 100% !important;
    display: flex;
    justify-content: center;
  }

  /* card benar-benar center */
  .tokutei-card{
    width: min(230px, 92vw);   /* sesuaikan ukuran card mobile */
    margin: 2rem 3rem;
  }

  

}

/* =============== SMALL / MOBILE (≤ 576px) ============== */
@media (max-width: 576px) {
  .hide-sm { display: none !important; }

  .hide-xs {
    display: none !important;
  }

 .hero-section {
    padding-top: 22rem;
    height: 32rem;
  }

  .text-banner-noreg{
    font-size: 0.65rem;
    text-align: center;
    margin-bottom: .3rem;
  }
  
  .hero-banner-cta{
    display: block;
    font-size: 1rem;
    margin-top: 18rem;
  }

  .text-header-gaji{
    font-size: 1.18rem;
    font-weight: 700;
    text-align: center;
  }

  .image_banner_kanan{
    position: relative !important;
    height: 17rem;
    display: block;
    margin: 0 auto;
    top: -18.45rem !important;
  }

  .exclusive-card-left {
    margin-left: 0rem;
  }

  .exclusive-card-right {
    margin-right: 0rem;
  }

  .text-sub-program-ekslusif {
    font-size: 1rem;
    font-weight: 600;
  }

  .display-ganbaru-banner {
    margin-top: .75rem !important;
  }

  .title-h1 {
    text-align: center !important;
    font-size: 31.5px;
    display: block;
    margin-bottom: 5px;
  }

  .smooth-stroke {
    text-align: center !important;
    font-size: 74px;
  }

  .section-title {
    font-weight: 800;
    font-size: 1.45rem;
  }

  .sub-text-jamina {
    font-size: .95rem;
    font-weight: 500;
  }

  .text-header-eksklusif {
    font-size: 1.8rem;
    text-align: left;
  }
  .exclusive-program{
    padding: 15px 0;
    border-radius: 20px;
  }

  .flow-heading-title {
    margin: 0;
    font-size: 30px;
  }

  .potongan-img {
    width: 6rem !important;
    right: .5rem !important;
    top: 116rem !important;
    left: 23rem !important  ;
  }

  .text-primary-size{
    font-size: 1.5rem !important;
  }

  .card-text-h3 {
    font-size: 2rem;
  }

  .exclusive-card ul {
    margin-left: 0rem;
  }

  .exclusive-card ul li {
    font-size: 1.1rem;
  }

  .exclusive-card {
    min-height: 220px;
  }
  .flow-step-title {
    font-size: 16px;
    text-align: center;
  }
  .flow-step-sub {
    font-weight: 400;
    font-size: 13px;
    text-align: center;
  }

  .flow-item {
    display: block;
    margin-bottom: 22px;
  }

  .flow-cta-btn {
    position: absolute;
    font-size: 19px;
    width: 17rem;
    padding: 16px 17px;
    bottom: 36px;
   }

  .flow-card {
    padding: 32px 20px 130px;
  }
  .text-header-eksklusif {
    margin: 0rem 1rem;
  }

  .image_banner_kanan {
        height: 15rem;
  }
  .card-gb-inner img {
    height: 18.5rem;
  }

  .potongan-img {
    width: 7rem !important;
    /* top: 109rem !important; */
  }
}

@media (max-width: 431px) {
    .card-gb-inner img {
        height: 18.5rem;
    }
    .image_banner_kanan {
        height: 15rem;
    }
    .potongan-img {
        top: 117rem !important;
        left: 19rem !important;
    }

    .tokutei-slide.is-active .tokutei-card__link {
        top: 5px;
        margin-left: .1rem;
        font-size: 11.4pt;
    }
}

@media (max-width: 415px) {
  .card-gb-inner img {
    height: 17.8rem;
  }
  .image_banner_kanan {
    height: 15rem !important;
  }

  .text-header-eksklusif {
        font-size: 1.6rem;
        text-align: left;
    }
  /* 1) Window jadi "mask" ketat: lebarnya = card */
  .tokutei-carousel__window{
    width: min(320px, 92vw) !important; /* samakan dengan lebar card */
    margin: 0 auto !important;
    overflow: hidden !important;
    padding: 0 !important;
    box-sizing: border-box;
  }

  /* 2) Row tanpa gap agar tidak ada sisa kanan/kiri */
  .tokutei-carousel__row{
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    translate: 0 0 !important; /* matikan micro nudge */
  }

  /* 3) Slide tetap fix dan stabil */
  .tokutei-slide{
    flex: 0 0 auto !important;
    width: 320px !important;      /* HARUS sama dengan window di atas */
    display: flex;
    justify-content: center;
  }

  /* 4) Card mengikuti slide (no extra width/margin) */
  .tokutei-card{
    width: 70% !important;
    margin: 0 !important;
  }
  .tokutei-slide.is-active .tokutei-card__link {
    top: -13px;
    margin-left: .6rem;
    font-size: 14.4pt;
  }

  /* 5) PENTING: matikan zoom active di layar kecil (biar offsetLeft stabil) */
  .tokutei-slide.is-active .tokutei-card__inner{
    transform: none !important;
  }
}

/* =============== EXTRA SMALL (≤ 360px) ================= */
@media (max-width: 412px) {
  .hide-xs { 
    display: none !important; 
  }
  
  .title-h1 {
    font-size: 28px !important;
  }
  .text-header-gaji {
    font-size: 1rem;
  }

  .image_banner_kanan {
    height: 15rem;
    top: -20rem;
  }

  .text-header-gaji {
    font-size: 1rem !important;
  }

  .hero-banner-cta {
    font-size: .881rem !important;
  }

  .image_banner_kanan {
    top: -18.25rem !important;
  }

  .section-title {
    font-size: 1.25rem !important;
  }
  .sub-text-jamina {
    font-size: .80rem !important;
  }

  .text-header-eksklusif {
    font-size: 1.75rem !important;
  }

  .text-xs-center{
    text-align: center !important;
  }

  .potongan-img {
    width: 6rem !important;
    right: 0rem !important;
    top: 113.5rem !important;
  }

  .navbar-brand img{
    height: 2.5rem !important;
    width: auto !important;
  }

  .flow-heading-title {
    font-size: 30px !important;
  }

  .flow-step-title {
    font-size: 17px !important;
  }

  .text-primary-size{
    font-size: 1rem !important;
  }

  .text-primary-size {
    font-size: 1.25rem !important;
  }

  .card-gb-inner img {
    height: 17.75rem;
  }

}

@media (max-width: 391px) {
    .card-gb-inner img {
        height: 16.5rem;
    }
    .text-header-eksklusif {
        font-size: 1.5rem !important;
    }

}

@media (max-width:376px) {
  .title-h1 {
    font-size: 25px !important;
  }
  .hero-banner-cta {
    font-size: .75rem !important;
  }
  .card-gb-inner img {
    height: 15.5rem;
  }
  .text-banner-noreg {
    font-size: 0.5rem;
    margin-bottom: 6rem;
  }
  .text-header-gaji {
    font-size: .85rem !important;
  }
  .display-ganbaru-banner {
    margin-top: -5.25rem !important;
  }
  .hero-banner-cta {
    margin-top: 14rem;
  }
  .hero-section {
    padding-top: 19rem;
    height: 27rem;
  }
  .image_banner_kanan {
    height: 12.5rem !important;
  }
  .image_banner_kanan {
    top: -15.6rem !important;
  }
  .text-header-eksklusif {
    font-size: 1.35rem !important;
  }
  .potongan-img {
    right: .5rem !important;
    top: 110rem !important;
  }
  .card-text-h3 {
    font-size: 1.6rem;
  }
  .flow-heading-title {
    font-size: 27px !important;
  }

  .potongan-img {
    left: 16rem !important;
    top: 115rem !important;
  }
  

}

@media (max-width:361px) {
  .card-gb-inner img {
        height: 14.5rem;
  }
  .tokutei-card {
    margin: 2rem 1rem;
  }

  

}

@media (max-width:345px) {
  .potongan-img {
    top: 114.5rem !important;
  }
  .card-gb-inner img {
    height: 13.5rem;
  }

     
}

/* =======================================================
   HIDE FROM THIS SIZE UP (MIN-WIDTH)
   ======================================================= */

/* ≥ 576px (hide on tablet & desktop) */
@media (min-width: 576px) {
  .hide-over-sm { display: none !important; }
}

/* ≥ 768px (hide on laptop & desktop) */
@media (min-width: 768px) {
  .hide-over-md { display: none !important; }
}

/* ≥ 992px (hide on desktop only) */
@media (min-width: 992px) {
  .hide-over-lg { display: none !important; }
}

/* ≥ 1200px (hide on large desktop) */
@media (min-width: 1200px) {
  .hide-over-xl { display: none !important; }
}

/* ≥ 1400px (hide on ultra-wide screens) */
@media (min-width: 1400px) {
  .hide-over-xxl { display: none !important; }
}

/* =======================================================
   HIDE ONLY SPECIFIC RANGE
   ======================================================= */

/* Only Mobile */
/* @media (max-width: 576px) {
  .hide-only-mobile { display: none !important; }
} */

/* Only Tablet (577px – 991px) */
/* @media (min-width: 577px) and (max-width: 991px) {
  .hide-only-tablet { display: none !important; }
} */

/* Only Desktop (≥ 992px) */
/* @media (min-width: 992px) {
  .hide-only-desktop { display: none !important; }
} */

/* =======================================================
   SOFT HIDE (opacity based)
   ======================================================= */
/* @media (max-width: 768px) {
  .hide-soft {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
} */

















