/* =========================================================
   LPPM "Luxury UI" CSS (Bootstrap 5 friendly) - SOFT BLUE GLASS (No.2)
   Simpan: /lppm/assets/css/lppm-luxury.css
========================================================= */

:root{
  /* THEME */
  --bg:#f6f8f3;                 /* background warm */
  --card: rgba(255,255,255,.72);
  --card2: rgba(255,255,255,.90);
  --border: rgba(15,23,42,.08);

  --text:#0f172a;
  --muted: rgba(15,23,42,.62);

  --brand1:#000080;   /* navy (utama) */             /* hijau dongker */
  --brand2:#0B3D91;   /* dark royal blue */             /* hijau dodblue */

  /* RGB untuk dipakai di rgba() */
  --accent-rgb: 0,0,128;   /* = #1E90FF */
  --accent2-rgb: 11,61,145;     /* = #000080 */

  --shadow: 0 14px 46px rgba(2,8,23,.10);
  --shadow2: 0 10px 28px rgba(2,8,23,.12);

  --radius:18px;
  --radius2:22px;

  /* tinggi topbar untuk sticky navbar */
  --topbar-h: 72px;
}

html,body{ height:100%; }

body{
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    none, .22), transparent 60%),
    none, .14), transparent 55%),
    var(--bg);
  color: var(--text);
}

.container{ max-width: 1200px; }

a{ text-decoration:none; }
a:hover{ text-decoration:none; }

/* =========================================================
   TOPBAR GLASS + BRAND + PREMIUM LOGIN BUTTON
========================================================= */

.topbar{
  position: sticky;
  top: 0;
  z-index: 999;

  background: rgba(255,255,255,.58) !important;
  
  -webkit-

  border-bottom: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 12px 30px rgba(15,23,42,.06);

  color: var(--text) !important;
}

.topbar .container{
  padding-top: 12px;
  padding-bottom: 12px;
}

.topbar .fw-bold{
  color: var(--text) !important;
  letter-spacing: .2px;
}

/* wrapper logo */
.brand-logo{
  width: 80px;
  height: 80px;
  

 
  overflow: hidden;
}

/* gambar logo */
.brand-logo img{
  width: 80px;
  height: 80px;
  object-fit: contain;
  
}

/* tombol login admin premium */
.topbar .btn-outline-light{
  border: 1px solid rgba(15, 23, 42, 0.12) !important;
  background: rgba(255,255,255,.62) !important;
  color: var(--text) !important;

  
  -webkit-

  border-radius: 14px !important;
  padding: 9px 14px !important;
  font-weight: 900 !important;

  box-shadow:
    0 12px 26px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255,255,255,.55);

  transition: all .25s ease;
}

.topbar .btn-outline-light::before{
  content: "🔐";
  margin-right: 8px;
  font-size: 14px;
}

.topbar .btn-outline-light:hover{
  transform: translateY(-1px);
  border-color: rgba(var(--accent2-rgb), .35) !important;

  background: rgba(255,255,255,.80) !important;
  box-shadow:
    0 18px 38px rgba(15, 23, 42, 0.12),
    0 0 0 6px rgba(var(--accent-rgb), .10);
}

/* =========================================================
   NAVBAR GLASS (sticky di bawah topbar)
========================================================= */

.navbar{
  position: sticky;
  top: var(--topbar-h);
  z-index: 998;
  background: var(--brand1) !important;
  border-bottom: 2px solid #0B3D91 !important;
  padding: 10px 0;
}

.navbar .nav-link{
  color: rgba(15,23,42,.80) !important;
  font-weight: 800;

  font-size: 13px;        /* 🔥 ini yang bikin kecil */
  letter-spacing: .1px;

  border-radius: 12px;
  padding: .35rem .55rem; /* 🔥 ini bikin rapat */
}
.navbar .nav-link:hover{
  background: rgba(var(--accent2-rgb), .18);
}

.navbar .dropdown-menu{
  border-radius: 16px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  background: rgba(255,255,255,.92);
  
  padding: .5rem;
}
.navbar .dropdown-item{
  border-radius: 12px;
  padding: .55rem .7rem;
  font-weight: 800;
}
.navbar .dropdown-item:hover{
  background: rgba(var(--accent2-rgb), .10);
}
/* Search input */
form .form-control{
  border-radius: 14px !important;
  border: 1px solid var(--border) !important;
  background: rgba(255,255,255,.70);
}
form .form-control:focus{
  box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18);
  border-color: rgba(var(--accent2-rgb), .28) !important;
}

/* =========================================================
   CARDS + LIST
========================================================= */


.card{
  background: #ffffff !important;
  border: 1px solid #dcdcdc !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 10px rgba(0,0,0,.05);
}


.card:hover{
  box-shadow: var(--shadow2);
  transform: translateY(-1px);
  transition: .18s ease;
}

.list-group-item{
  border-color: var(--border) !important;
  background: transparent !important;
}
.list-group-item:hover{
  background: rgba(var(--accent2-rgb), .05) !important;
}

.muted, .text-muted{ color: var(--muted) !important; }

/* Badges */
.badge{
  border-radius: 999px !important;
  padding: .45rem .65rem;
  font-weight: 900;
}
.badge-pin{
  background: var(--brand1) !important;
  color:#111827;
}

/* =========================================================
   BUTTONS
========================================================= */

.btn{
  border-radius: 14px !important;
  font-weight: 900;
}


.btn-primary{
  background: var(--brand1) !important;
  border: 1px solid #0B3D91 !important;
  color: #ffffff !important;
}

.btn-primary:hover{
  filter: brightness(1.02);
  box-shadow: 0 14px 26px rgba(var(--accent2-rgb), .20);
}

.btn-outline-secondary{
  border-color: var(--border) !important;
  background: rgba(255,255,255,.55) !important;
}
.btn-outline-secondary:hover{
  background: rgba(var(--accent2-rgb), .06) !important;
}

/* =========================================================
   CAROUSEL + MEDIA
========================================================= */

.carousel{
  border-radius: var(--radius2) !important;
}
.carousel img{
  border-radius: var(--radius2) !important;
}
.carousel .carousel-caption{
  text-shadow: 0 10px 25px rgba(0,0,0,.35);
}

.ratio{
  border-radius: 16px;
  overflow: hidden;
}

/* =========================================================
   FOOTER GLASS
========================================================= */


.footer{
  background: var(--brand1) !important;
  color: #ffffff !important;
  border-top: 2px solid #0B3D91;
  padding: 30px 0;
}


.footer .soc{
  width:36px;height:36px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border);
  background: rgba(255,255,255,.60);
  color: var(--text);
}
.footer .soc:hover{
  background: rgba(var(--accent-rgb), .14);
}

/* Small polish */
main{ min-height: 60vh; }
hr{ border-color: var(--border); }

@media (max-width: 992px){
  .navbar .nav-link{ padding: .5rem .6rem; }
}

/* =========================================================
   PARTNERS MARQUEE (FINAL + ANTI LOGO BESAR)
========================================================= */

#section-partners{
  background: rgba(255,255,255,.35);
  border-top: 1px solid rgba(15,23,42,.08);
}

#section-partners .partners-viewport{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.55);
  
  -webkit-
  box-shadow: 0 14px 30px rgba(15,23,42,.06);
  padding: 12px;
}

#section-partners .partners-track{
  display: flex;
  align-items: center;
  gap: 14px;
  will-change: transform;
}

#section-partners .partner-item{
  flex: 0 0 auto;
  width: 160px;
  height: 72px;
  padding: 10px 12px;

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

  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.70);

  overflow: hidden;
  box-sizing: border-box;

  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

#section-partners .partner-item img{
  display: block;
  width: auto !important;
  height: 46px !important;
  max-width: 130px !important;
  max-height: 46px !important;
  object-fit: contain !important;
}

#section-partners .partner-item:hover{
  transform: translateY(-2px);
  border-color: rgba(var(--accent-rgb), .30);
  box-shadow: 0 18px 34px rgba(15,23,42,.10);
}

#section-partners .partner-text{
  font-weight: 900;
  font-size: 13px;
  color: rgba(15,23,42,.78);
  text-align: center;
  line-height: 1.2;
}

#section-partners .partners-viewport::before,
#section-partners .partners-viewport::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:60px;
  pointer-events:none;
  z-index:2;
}
#section-partners .partners-viewport::before{
  left:0;
  background: var(--brand1), rgba(246,248,243,0));
}
#section-partners .partners-viewport::after{
  right:0;
  background: var(--brand1), rgba(246,248,243,0));
}

/* =========================================================
   ULTRA PREMIUM GLASS SLIDER (Soft Blue)
========================================================= */

.carousel-premium{
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.55);
  box-shadow: 0 18px 55px rgba(2,8,23,.12);
}

.premium-slide{
  position: relative;
  height: 380px;
  border-radius: 22px;
  overflow: hidden;
}

@media (max-width: 992px){
  .premium-slide{ height: 320px; }
}

.premium-slide__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform .9s ease;
  filter: saturate(1.06) contrast(1.03);
}

.carousel-item.active .premium-slide__img{
  transform: scale(1.08);
}

/* overlay cinematic (lebih biru lembut) */
.premium-slide__overlay{
  position:absolute; inset:0;
  background:
    var(--brand1) 0%, rgba(2,8,23,.33) 40%, rgba(2,8,23,.10) 70%, rgba(2,8,23,.00) 100%),
    none, .22), transparent 60%);
}

/* shine */
.premium-slide::before{
  content:"";
  position:absolute; inset:-40%;
  background: var(--brand1) 50%, transparent 55%);
  transform: translateX(-40%) rotate(12deg);
  transition: transform 1.2s ease;
  pointer-events:none;
}
.carousel-item.active .premium-slide::before{
  transform: translateX(40%) rotate(12deg);
}

/* content glass */
.premium-slide__content{
  position:absolute;
  left: 26px;
  bottom: 22px;
  max-width: 720px;
  padding: 18px 18px 16px;
  border-radius: 18px;

  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  
  -webkit-

  box-shadow:
    0 24px 60px rgba(2,8,23,.22),
    inset 0 1px 0 rgba(255,255,255,.20);

  transform: translateY(10px);
  opacity: 0;
  transition: all .45s ease;
}

.carousel-item.active .premium-slide__content{
  transform: translateY(0);
  opacity: 1;
}

@media (max-width: 992px){
  .premium-slide__content{
    left: 14px; right: 14px;
    max-width: none;
  }
}

.premium-chip{
  display:inline-flex;
  gap: 8px;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 12px;

  color: rgba(255,255,255,.92);
  background: rgba(var(--accent-rgb), .22);
  border: 1px solid rgba(255,255,255,.18);
  margin-bottom: 10px;
}

.premium-title{
  color: rgba(255,255,255,.96);
  font-weight: 950;
  letter-spacing: -0.02em;
  font-size: 26px;
  line-height: 1.15;
  text-shadow: 0 18px 40px rgba(2,8,23,.45);
}

@media (max-width: 992px){
  .premium-title{ font-size: 20px; }
}

.premium-meta{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items:center;
  margin-top: 10px;
  color: rgba(255,255,255,.78);
  font-weight: 800;
  font-size: 13px;
}
.premium-meta i{ opacity: .95; }

/* actions */
.premium-actions{
  display:flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.btn-premium{
  border: 0 !important;
  border-radius: 14px !important;
  padding: 10px 14px !important;
  font-weight: 950 !important;
  color: #0b1220 !important;

  background: var(--brand1), rgba(255,255,255,.70)) !important;

  box-shadow:
    0 18px 40px rgba(2,8,23,.22),
    inset 0 1px 0 rgba(255,255,255,.65);

  transition: transform .18s ease, box-shadow .18s ease;
}

.btn-premium:hover{
  transform: translateY(-1px);
  box-shadow:
    0 22px 54px rgba(2,8,23,.28),
    0 0 0 6px rgba(var(--accent-rgb), .14),
    inset 0 1px 0 rgba(255,255,255,.70);
}

.btn-ghost{
  border-radius: 14px !important;
  padding: 10px 14px !important;
  font-weight: 950 !important;
  color: rgba(255,255,255,.92) !important;

  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.10) !important;

  
  -webkit-

  transition: transform .18s ease, background .18s ease;
}

.btn-ghost:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.16) !important;
}

/* dots */
.premium-dots{
  margin: 0;
  bottom: 12px;
}
.premium-dots [data-bs-target]{
  width: 10px; height: 10px;
  border-radius: 999px;
  border: 0;
  background: rgba(255,255,255,.45);
  opacity: 1;
}
.premium-dots .active{
  width: 22px;
  background: rgba(255,255,255,.92);
}

/* =========================================================
   KPI / STAT CARDS (FINAL — modern glass + count up ready) — Soft Green
========================================================= */

.stat-card{
  border-radius: 18px !important;
  background: rgba(255,255,255,.72) !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  
  -webkit-
  box-shadow: 0 14px 30px rgba(15,23,42,.06);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  overflow: hidden;
  position: relative;
  min-height: 92px;
}

.stat-card::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    none, .18), transparent 60%),
    none, .14), transparent 58%);
  opacity: .95;
  pointer-events:none;
}

.stat-card > *{ position: relative; z-index: 1; }

.stat-card:hover{
  transform: translateY(-3px);
  border-color: rgba(var(--accent-rgb), .28) !important;
  box-shadow: 0 18px 36px rgba(15,23,42,.10);
}

.stat-ico{
  width: 38px;
  height: 38px;
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;

  background: rgba(var(--accent-rgb), .12);
  border: 1px solid rgba(var(--accent-rgb), .18);
}

.stat-ico i{
  font-size: 18px;
  color: rgba(15,23,42,.85);
}

.stat-label{
  font-size: 12px;
  font-weight: 950;
  color: rgba(15,23,42,.86);
  line-height: 1.1;
}

.stat-sub{
  font-size: 11px;
  font-weight: 800;
  color: rgba(15,23,42,.55);
}

.stat-badge{
  font-size: 11px;
  font-weight: 950;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(var(--accent2-rgb), .08);
  border: 1px solid rgba(var(--accent2-rgb), .10);
  color: rgba(15,23,42,.72);
}

.stat-number{
  margin-top: 6px;
  font-weight: 950;
  letter-spacing: -0.03em;
  font-size: 32px;
  line-height: 1;

  background: var(--brand1);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

  filter: drop-shadow(0 10px 18px rgba(var(--accent2-rgb), .18));
}

.stat-number.shine{
  animation: statShine 1.05s ease forwards;
}

@keyframes statShine{
  0%{ transform: translateY(6px); opacity: .25; }
  100%{ transform: translateY(0); opacity: 1; }
}

@media (max-width: 360px){
  .stat-number{ font-size: 26px; }
}

/* =========================================================
   NAVBAR — SOFT BLUE GLASS (FINAL)
   Tempel paling bawah CSS agar override semua
========================================================= */

.navbar{
  position: sticky;
  top: var(--topbar-h);
  z-index: 998;

  /* soft blue glass */
  background: rgba(var(--accent2-rgb), .18) !important;
  
  -webkit-

  border-bottom: 1px solid rgba(var(--accent2-rgb), .18) !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.06);

  padding-top: 8px;
  padding-bottom: 8px;
}

/* rapikan container navbar */
.navbar .container{
  gap: 12px;
}

/* =========================================================
   MENU LINK
========================================================= */

.navbar .nav-link{
  position: relative;

  color: rgba(15,23,42,.78) !important;
  font-weight: 800;

  font-size: 13px;              /* kecil modern */
  letter-spacing: .15px;

  border-radius: 12px;
  padding: 7px 10px;

  transition: background .18s ease, transform .18s ease, color .18s ease;
}

/* hover soft */
.navbar .nav-link:hover{
  background: rgba(var(--accent2-rgb), .10);
  color: rgba(15,23,42,.92) !important;
  transform: translateY(-1px);
}

/* underline aktif (Bootstrap kasih class active) */
.navbar .nav-link.active{
  background: rgba(var(--accent2-rgb), .14);
  color: rgba(15,23,42,.95) !important;
}

.navbar .nav-link.active::after{
  content:"";
  position:absolute;
  left: 12px;
  right: 12px;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: var(--brand1);
  opacity: .9;
}

/* =========================================================
   DROPDOWN MENU (glass biru)
========================================================= */

.navbar .dropdown-menu{
  border-radius: 16px;
  border: 1px solid rgba(var(--accent2-rgb), .18);
  box-shadow: 0 18px 40px rgba(15,23,42,.10);

  background: rgba(255,255,255,.82);
  
  -webkit-

  padding: 10px;
  margin-top: 10px;
}

/* item dropdown */
.navbar .dropdown-item{
  border-radius: 12px;
  padding: 10px 12px;

  font-size: 13px;
  font-weight: 800;

  color: rgba(15,23,42,.82);
  transition: background .18s ease, transform .18s ease;
}

.navbar .dropdown-item:hover{
  background: rgba(var(--accent2-rgb), .10);
  transform: translateX(2px);
}

/* =========================================================
   SEARCH INPUT NAVBAR (kecil + soft)
========================================================= */

.navbar form .form-control{
  border-radius: 999px !important;

  font-size: 13px !important;
  padding: 7px 12px !important;

  border: 1px solid rgba(var(--accent2-rgb), .20) !important;
  background: rgba(255,255,255,.65) !important;

  box-shadow: none !important;
}

.navbar form .form-control:focus{
  border-color: rgba(var(--accent2-rgb), .35) !important;
  box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .22) !important;
}

/* =========================================================
   MOBILE: kecilkan lagi biar tidak kepanjangan
========================================================= */
@media (max-width: 992px){
  .navbar .nav-link{
    font-size: 13px;
    padding: 9px 10px;
  }

  .navbar .dropdown-menu{
    margin-top: 6px;
  }
}
.navbar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background:
    none, .22), transparent 60%),
    none, .16), transparent 60%);
  opacity: .95;
}
.navbar > *{
  position: relative;
  z-index: 1;
}
/* =========================================================
   PARTNERS PREMIUM MARQUEE (fade + nav + anti bertumpuk)
========================================================= */

#section-partners{
  background: rgba(255,255,255,.25);
  border-top: 1px solid rgba(15,23,42,.08);
}

#section-partners .partners-wrap{
  position: relative;
}

/* viewport */
#section-partners .partners-viewport{
  position: relative;
  overflow: hidden !important;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.55);
  
  -webkit-
  box-shadow: 0 14px 30px rgba(15,23,42,.06);
  padding: 12px 56px; /* ruang untuk tombol kiri/kanan */
}

/* fade kiri/kanan */
#section-partners .partners-viewport::before,
#section-partners .partners-viewport::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width: 70px;
  pointer-events:none;
  z-index: 3;
}

#section-partners .partners-viewport::before{
  left:0;
  background: var(--brand1), rgba(246,248,243,0));
}

#section-partners .partners-viewport::after{
  right:0;
  background: var(--brand1), rgba(246,248,243,0));
}

/* track */
#section-partners .partners-track{
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;

  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  will-change: transform;
  transform: translate3d(0,0,0);
}

/* item */
#section-partners .partner-item{
  flex: 0 0 auto !important;
  width: 160px !important;
  height: 72px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 10px 12px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  background: rgba(255,255,255,.70) !important;

  overflow: hidden !important;
  box-sizing: border-box !important;

  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

#section-partners .partner-item:hover{
  transform: translateY(-2px);
  border-color: rgba(var(--accent2-rgb), .25);
  box-shadow: 0 18px 34px rgba(15,23,42,.10);
}

/* logo ketat */
#section-partners .partner-item img{
  width: auto !important;
  height: 46px !important;
  max-width: 130px !important;
  max-height: 46px !important;
  object-fit: contain !important;
  display: block !important;
}

/* text fallback */
#section-partners .partner-text{
  font-weight: 800;
  font-size: 13px;
  color: rgba(15,23,42,.78);
  text-align: center;
  line-height: 1.2;
}

/* tombol prev/next kecil (glass) */
#section-partners .partners-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;

  width: 38px;
  height: 38px;
  border-radius: 14px;

  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.55);
  
  -webkit-

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

  box-shadow: 0 14px 26px rgba(15,23,42,.10);
  cursor: pointer;

  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

#section-partners .partners-nav:hover{
  transform: translateY(-50%) scale(1.04);
  background: rgba(255,255,255,.75);
  box-shadow: 0 18px 34px rgba(15,23,42,.12);
}

#section-partners .partners-nav i{
  font-size: 16px;
  color: rgba(15,23,42,.85);
}

#section-partners .partners-nav--prev{ left: 10px; }
#section-partners .partners-nav--next{ right: 10px; }

/* responsive */
@media (max-width: 576px){
  #section-partners .partners-viewport{ padding: 12px 46px; }
  #section-partners .partners-nav{ width: 34px; height: 34px; border-radius: 12px; }
  #section-partners .partner-item{ width: 148px !important; height: 68px !important; }
  #section-partners .partner-item img{ height: 42px !important; max-width: 120px !important; }
}


/* =========================================================
   FORMAL KAMPUS NEGERI OVERRIDES (Navy + Gold, no gradients)
   File: lppm-luxury-formal-campus-v2.css
========================================================= */

:root{
  --bg:#f6f7fb;
  --text:#0f172a;
  --muted: rgba(15,23,42,.68);

  --brand1:#000080;   /* navy */
  --brand2:#0B3D91;   /* dark royal blue */

  --gold:#C9A227;     /* aksen emas (tipis) */
  --gold-soft: rgba(201,162,39,.20);

  --border: rgba(15,23,42,.12);
  --shadow-soft: 0 6px 16px rgba(2,8,23,.08);

  --radius: 6px;
  --radius2: 8px;
}

/* Typography — lebih akademik & formal */
html{ font-size: 16px; }
body{
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: "Source Sans 3","Segoe UI",Roboto,Arial,sans-serif !important;
  line-height: 1.55;
}

h1,h2,h3,h4,h5,h6,
.navbar .fw-bold, .topbar .fw-bold{
  font-family: "Merriweather", Georgia, "Times New Roman", serif;
  letter-spacing: 0;
}

/* Layout lebih kaku & simetris */
.container{ max-width: 1140px !important; }
main{ min-height: 64vh; }
hr{ border-color: rgba(15,23,42,.14) !important; }

/* Topbar — putih bersih */
.topbar{
  background: #ffffff !important;
  border-bottom: 1px solid rgba(15,23,42,.10) !important;
  box-shadow: 0 2px 10px rgba(2,8,23,.06) !important;
}
.topbar .container{ padding-top: 10px !important; padding-bottom: 10px !important; }

/* Navbar — solid navy + garis emas tipis */
.navbar{
  background: var(--brand1) !important;
  border-bottom: 3px solid var(--gold) !important;
  box-shadow: none !important;
  padding: 10px 0 !important;
}
.navbar .nav-link{
  color: rgba(255,255,255,.92) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  border-radius: 0 !important;
  padding: 10px 14px !important;
  text-transform: none;
}
.navbar .nav-link:hover{
  background: rgba(255,255,255,.10) !important;
  transform: none !important;
}
.navbar .nav-link.active{
  background: rgba(255,255,255,.14) !important;
}
.navbar .nav-link.active::after{
  content:"";
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: 6px;
  height: 2px;
  background: var(--gold);
  border-radius: 0;
  opacity: 1;
}

/* Dropdown — putih formal, garis emas tipis di atas */
.navbar .dropdown-menu{
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.14) !important;
  border-top: 3px solid var(--gold) !important;
  border-radius: var(--radius2) !important;
  box-shadow: var(--shadow-soft) !important;
  padding: 8px !important;
}
.navbar .dropdown-item{
  font-size: 14px !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  padding: 9px 10px !important;
  color: rgba(15,23,42,.88) !important;
}
.navbar .dropdown-item:hover{
  background: rgba(201,162,39,.12) !important;
  transform: none !important;
}

/* Search navbar — formal */
.navbar form .form-control{
  border-radius: 6px !important;
  font-size: 14px !important;
  padding: 8px 10px !important;
  border: 1px solid rgba(255,255,255,.35) !important;
  background: rgba(255,255,255,.10) !important;
  color: #ffffff !important;
}
.navbar form .form-control::placeholder{ color: rgba(255,255,255,.75) !important; }
.navbar form .form-control:focus{
  border-color: rgba(201,162,39,.70) !important;
  box-shadow: 0 0 0 .18rem rgba(201,162,39,.22) !important;
}

/* Cards — simetris & rapi */
.card{
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  border-radius: var(--radius2) !important;
  box-shadow: 0 4px 12px rgba(2,8,23,.06) !important;
}
.card:hover{
  box-shadow: 0 6px 16px rgba(2,8,23,.08) !important;
  transform: none !important;
}

/* List items — tidak “terlalu UI”, tetap formal */
.list-group-item{
  border-color: rgba(15,23,42,.12) !important;
}
.list-group-item:hover{
  background: rgba(201,162,39,.08) !important;
}

/* Buttons — solid navy + outline emas */
.btn{
  border-radius: 6px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  padding: 9px 14px !important;
}
.btn-primary{
  background: var(--brand1) !important;
  border: 1px solid var(--brand2) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
.btn-primary:hover{
  background: var(--brand2) !important;
  filter: none !important;
  box-shadow: none !important;
}
.btn-outline-secondary{
  border: 1px solid var(--gold) !important;
  color: var(--brand1) !important;
  background: #ffffff !important;
}
.btn-outline-secondary:hover{
  background: rgba(201,162,39,.10) !important;
}

/* Badges — formal */
.badge{ font-weight: 700 !important; border-radius: 999px !important; }
.badge-pin{
  background: var(--gold) !important;
  color: #0b1220 !important;
}

/* KPI/Stat number — tanpa gradient */
.stat-number{
  color: var(--brand1) !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  filter: none !important;
  font-family: "Merriweather", Georgia, "Times New Roman", serif;
  font-weight: 800;
}
.stat-ico{
  background: rgba(201,162,39,.10) !important;
  border: 1px solid rgba(201,162,39,.25) !important;
}
.stat-card::before{ display:none !important; } /* hilangkan efek dekoratif */

/* Partners section — rapi + garis emas tipis */
#section-partners{
  background: #ffffff !important;
  border-top: 3px solid var(--gold) !important;
}
#section-partners .partners-viewport{
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  box-shadow: var(--shadow-soft) !important;
}
#section-partners .partner-item{
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  border-radius: 8px !important;
}
#section-partners .partner-item:hover{
  border-color: rgba(201,162,39,.45) !important;
  transform: none !important;
  box-shadow: 0 6px 16px rgba(2,8,23,.08) !important;
}

/* Footer — navy + garis emas tipis */
.footer{
  background: var(--brand1) !important;
  color: rgba(255,255,255,.92) !important;
  border-top: 3px solid var(--gold) !important;
}
.footer a{ color: rgba(255,255,255,.92) !important; }
.footer a:hover{ color: #ffffff !important; text-decoration: underline; }
.footer .soc{
  border-radius: 6px !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
}
.footer .soc:hover{
  background: rgba(201,162,39,.18) !important;
  border-color: rgba(201,162,39,.55) !important;
}

/* Responsive — tetap rapi, tidak terlalu kecil */
@media (max-width: 992px){
  .navbar .nav-link{ padding: 10px 12px !important; font-size: 14px !important; }
}



/* =========================================================
   FIX KONTRAS WARNA (Text di atas background biru)
========================================================= */

/* Navbar text paksa putih */
.navbar,
.navbar .nav-link,
.navbar .navbar-brand,
.navbar .dropdown-toggle,
.navbar .dropdown-item{
  color: #ffffff !important;
}

/* Dropdown item saat tidak hover tetap gelap jika background putih */
.navbar .dropdown-menu{
  color: #0f172a !important;
}
.navbar .dropdown-menu .dropdown-item{
  color: #0f172a !important;
}

/* Search input di navbar */
.navbar form .form-control{
  color: #ffffff !important;
}
.navbar form .form-control::placeholder{
  color: rgba(255,255,255,.75) !important;
}

/* Footer text putih */
.footer,
.footer p,
.footer span,
.footer a,
.footer li{
  color: #ffffff !important;
}

/* Tombol di atas background biru */
.navbar .btn,
.footer .btn{
  color: #ffffff !important;
  border-color: rgba(255,255,255,.6) !important;
}

/* Pastikan badge tetap terbaca */
.badge{
  color: #ffffff;
}

/* =========================================================
   FIX FOOTER KONTRAS TOTAL
========================================================= */

.footer,
footer {
  background: #000080 !important;
  color: #ffffff !important;
}

/* Semua elemen teks di dalam footer */
.footer *,
footer * {
  color: #ffffff !important;
}

/* Link footer */
.footer a,
footer a {
  color: #ffffff !important;
}

.footer a:hover,
footer a:hover {
  color: #C9A227 !important; /* emas saat hover */
}

/* Icon sosial */
.footer .soc,
footer .soc {
  color: #ffffff !important;
  border-color: rgba(255,255,255,.6) !important;
}
/* =========================================================
   NAVBAR HOVER EMAS (Formal Kampus)
========================================================= */

/* Hover menu jadi emas */
.navbar .nav-link:hover{
  background: transparent !important;
  color: #C9A227 !important;   /* emas */
}

/* Active menu */
.navbar .nav-link.active{
  background: transparent !important;
  color: #C9A227 !important;
}

/* Garis bawah emas */
.navbar .nav-link:hover::after,
.navbar .nav-link.active::after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:6px;
  height:2px;
  background:#C9A227;
}

/* =========================================================
   NAVBAR NAVY GRADIENT HALUS (Formal)
========================================================= */

.navbar{
  background: linear-gradient(
    to bottom,
    #000060 0%,
    #000080 40%,
    #0B3D91 75%,
    #000066 100%
  ) !important;

  border-bottom: 3px solid #C9A227 !important;
}
.footer{
  background: linear-gradient(
    to bottom,
    #000070 0%,
    #000080 60%,
    #000060 100%
  ) !important;

  border-top: 3px solid #C9A227 !important;
}
.brand-logo img{
  height: 80px;
  width: auto;
  object-fit: contain;
}

/* =========================================================
   FORCE SLIDER TITLE: NAVY + OUTLINE EMAS (HIGH SPECIFICITY)
========================================================= */

/* Judul di caption carousel bootstrap */
.carousel .carousel-caption,
.carousel .carousel-caption *{
  /* biar tidak ketimpa theme lain */
  -webkit-text-stroke: 0 !important;
}

/* Target judul (umumnya h1/h2/h3/h5) */
.carousel .carousel-caption h1,
.carousel .carousel-caption h2,
.carousel .carousel-caption h3,
.carousel .carousel-caption h4,
.carousel .carousel-caption h5,
.carousel .carousel-caption .carousel-title,
.carousel .carousel-caption .title,
.carousel .carousel-caption .headline{
  color: #000080 !important;               /* navy */

  /* Outline emas (Chrome/Edge/Safari) */
  -webkit-text-stroke: 0.1px #FFFFFF !important;

  /* Fallback outline untuk Firefox (pakai shadow berlapis) */
  text-shadow:
    -1px -1px 0 #FFFFFF,
     1px -1px 0 #FFFFFF,
    -1px  1px 0 #FFFFFF,
     1px  1px 0 #FFFFFF,
     0  2px 10px rgba(0,0,0,.35) !important;

  font-weight: 900 !important;
}