/* ==========================================================================
   1. RESET, GLOBAL STYLES & VARIABLES (Standard Core)
   ========================================================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
}

:root {
  --hw-primary: #e41c1c; /* Warna Utama Brand Cesna Red */
  --hw-dark: #222222;
  --hw-gray-text: #666666;
  --hw-light-bg: #f5f5f7;
  --hw-border: #e5e5e5;
  --card-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

body {
  color: var(--hw-dark);
  background-color: #ffffff;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.container {
  width: 88%;
  max-width: 1200px;
  margin: 0 auto;
}

/* ==========================================================================
   2. TOP NAVIGATION BAR
   ========================================================================== */
header {
  background-color: #f9faf5;
  border-bottom: 1px solid var(--hw-border);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.nav-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 70px;
}

.logo {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--hw-dark);
  display: flex;
  align-items: center;
  gap: 12px;
}

.logo img {
  height: 35px;
  width: auto;
  object-fit: contain;
}

.logo span {
  color: var(--hw-primary);
  font-weight: 400;
  margin-left: 2px;
}

nav ul {
  display: flex;
  list-style: none;
  gap: 35px;
}

nav ul li a {
  color: var(--hw-dark);
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: color 0.2s;
}

nav ul li a:hover,
nav ul li a.active {
  color: var(--hw-primary);
}

.nav-auth .btn-portal {
  border: 1px solid var(--hw-primary);
  color: var(--hw-primary);
  padding: 8px 20px;
  border-radius: 2px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s;
}

.nav-auth .btn-portal:hover {
  background-color: var(--hw-primary);
  color: #ffffff;
}

/* ==========================================================================
   3. HERO BANNER (Native Block Style - 100% Anti-Mepet)
   ========================================================================== */
.hero {
  background:
    linear-gradient(
      60deg,
      rgba(21, 50, 93, 0.95) 5%,
      rgba(23, 42, 69, 0.6) 20%
    ),
    url("/images/hero.JPG");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 120px 0;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--hw-border);
}

/* KUNCI PERBAIKAN: Menggunakan display: block agar teks mengalir melebar dengan sempurna */
.hero-content {
  width: 100%;
  max-width: 850px; /* Batas bentangan teks agar pas nyaman dibaca */
  text-align: left;
  display: block; /* Menghapus flexbox penyebab teks menguncup */
  position: relative;
  z-index: 5;
}

.hero h1 {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 20px;
  color: #ffffff;
  display: block;
  width: 100%;
}

.hero p {
  font-size: 16px;
  color: #e2e8f0;
  margin-bottom: 35px;
  font-weight: 400;
  line-height: 1.6;
  display: block;
  width: 100%; /* Memaksa paragraf membentang horizontal sepenuhnya */
}

.hero-badge {
  display: inline-flex; /* Menjaga agar lebar kotak hanya selebar teks badgenya saja */
  align-items: center;
  gap: 8px;
  background: rgba(228, 28, 28, 0.15);
  color: #ffffff;
  border: 1px solid rgba(228, 28, 28, 0.6);
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  border-radius: 4px;
  margin-bottom: 25px;
  box-shadow: 0 0 15px rgba(228, 28, 28, 0.3);
  animation: badgeGlow 3s infinite ease-in-out;
}

.hero-badge .badge-highlight {
  color: #ff4d4d;
  background: rgba(255, 255, 255, 0.1);
  padding: 2px 6px;
  border-radius: 2px;
  font-size: 11px;
}

@keyframes badgeGlow {
  0%,
  100% {
    box-shadow: 0 0 15px rgba(228, 28, 28, 0.3);
    border-color: rgba(228, 28, 28, 0.6);
  }
  50% {
    box-shadow: 0 0 25px rgba(228, 28, 28, 0.6);
    border-color: #e41c1c;
  }
}

.btn-primary {
  background-color: var(--hw-primary);
  color: #ffffff !important;
  padding: 12px 30px;
  border-radius: 2px;
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  display: inline-block; /* Tombol tetap pas sesuai teks tanpa ikut melar */
  transition: all 0.2s ease;
  white-space: nowrap;
}

.btn-primary:hover {
  background-color: #c01414;
  box-shadow: 0 4px 15px rgba(228, 28, 28, 0.4);
}
/* ==========================================================================
   4. METODOLOGI SECTION (Framework)
   ========================================================================== */
.framework {
  padding: 70px 0;
  background-color: #ffffff;
  text-align: center;
}

.framework h2 {
  font-size: 30px;
  font-weight: 600;
  margin-bottom: 15px;
}

.framework p.subtitle {
  color: var(--hw-gray-text);
  max-width: 700px;
  margin: 0 auto 50px auto;
  font-size: 15px;
}

.fw-grid {
  display: flex;
  gap: 25px;
  justify-content: center;
}

.fw-card {
  flex: 1;
  padding: 35px 25px;
  border: 1px solid var(--hw-border);
  border-radius: 4px;
  text-align: left;
  transition: all 0.3s;
}

.fw-card:hover {
  box-shadow: var(--card-shadow);
  border-color: transparent;
}

.fw-card .icon-placeholder {
  width: 45px;
  height: 45px;
  background-color: #f5f5f7;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: var(--hw-primary);
  font-weight: bold;
}

.fw-card h3 {
  font-size: 18px;
  margin-bottom: 10px;
  font-weight: 600;
}

.fw-card p {
  font-size: 14px;
  color: var(--hw-gray-text);
}

/* ==========================================================================
   5. WORKSHOP CATALOG SECTION & CARD SYSTEMS (Twin-Layout Core)
   ========================================================================== */
.talent-courses {
  background-color: var(--hw-light-bg);
  padding: 80px 0;
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 40px;
}

.section-header h2 {
  font-size: 28px;
  font-weight: 600;
}

.course-flex-grid.twin-layout {
  display: grid;
  grid-template-columns: repeat(
    2,
    1fr
  ); /* Membagi 2 kolom sejajar simetris di desktop */
  gap: 30px;
  width: 100%;
}

.talent-card {
  background-color: #ffffff;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02);
  border: 1px solid #eaeaea;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.talent-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--card-shadow);
}

.card-main {
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

.card-spatial-pad,
.card-eco-pad {
  padding-top: 15px;
}
.spatial-title {
  color: #104123;
  margin-bottom: 8px;
  font-weight: 700;
}
.eco-title {
  color: #15325d;
  margin-bottom: 8px;
  font-weight: 700;
}
.academic-engine-tag {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #1890ff;
  font-weight: 700;
  display: block;
  margin-bottom: 2px;
}

.workshop-desc,
.workshop-desc-dark {
  font-size: 13px;
  margin-bottom: 15px;
  color: var(--hw-gray-text);
}

/* Garis Aksen Modul Kompleks */
.color-blue-top {
  border-top: 3px solid #1890ff;
}
.color-green-top {
  border-top: 3px solid #52c41a;
}
.color-purple-top {
  border-top: 3px solid #722ed1;
}
.color-gold-top {
  border-top: 3px solid #bba15c;
}

.spatial-materi-grid,
.eco-materi-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-top: 15px;
}

.spatial-materi-box,
.eco-materi-box {
  background: #fafafa;
  border: 1px solid var(--hw-border);
  padding: 12px;
  border-radius: 4px;
}

.spatial-materi-box h5 {
  color: #104123;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
}
.eco-materi-box h5 {
  color: #15325d;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
}
.spatial-materi-box p,
.eco-materi-box p {
  font-size: 11px;
  line-height: 1.4;
  color: var(--hw-gray-text);
}

/* Silabus / Output Block */
.syllabus-block {
  margin-top: 20px;
  background-color: #fafafa;
  padding: 15px;
  border-radius: 4px;
  border: 1px solid var(--hw-border);
}

.spatial-syllabus-border {
  margin-top: 15px;
  padding: 12px;
}
.eco-syllabus-bg {
  margin-top: 15px;
  padding: 12px;
  background-color: #f9fbfd;
  border-radius: 6px;
}

.syllabus-block h4 {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}
.spatial-syllabus-title {
  color: #104123;
  font-size: 12px;
}

.syllabus-block ul {
  list-style: none;
  padding-left: 0;
}
.syllabus-block ul li {
  font-size: 13px;
  color: var(--hw-gray-text);
  margin-bottom: 6px;
  position: relative;
  padding-left: 18px;
  line-height: 1.4;
}
.syllabus-block ul li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--hw-primary);
  font-weight: bold;
  font-size: 12px;
}

.eco-syllabus-bg ul {
  padding-left: 15px;
}
.eco-syllabus-bg ul li {
  font-size: 12px;
  margin-bottom: 4px;
}
.eco-syllabus-bg ul li::before {
  content: none;
}

/* Landasan Akademik Jurnal Internasional */
.academic-base {
  margin-top: 15px;
  padding: 10px;
  border-left: 3px solid #bba15c;
  background: #faf8f5;
  font-size: 11px;
  line-height: 1.4;
  color: #666;
}
.academic-title-block {
  display: block;
  margin-bottom: 6px;
  font-size: 11.5px;
}
.academic-item-margin {
  margin-bottom: 8px;
}
.academic-base a {
  color: #1890ff;
  text-decoration: underline;
  font-weight: 500;
}

/* Sistem Harga Psikologis (Discounting) */
.price-container {
  margin-top: 20px;
  padding-top: 15px;
}
.gold-border-top {
  border-top: 1px solid #bba15c;
}
.eco-price-margin {
  margin-top: 15px;
}

.price-label {
  font-size: 12px;
  color: var(--hw-gray-text);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.spatial-price-color {
  color: #104123;
}

.price-discount-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
  margin-bottom: 2px;
}
.price-old {
  font-size: 14px;
  color: #a0aec0;
  text-decoration: line-through;
  font-weight: 500;
}

.discount-badge {
  font-size: 10px;
  font-weight: 800;
  background-color: var(--hw-primary);
  color: #ffffff;
  padding: 3px 8px;
  border-radius: 2px;
  letter-spacing: 0.5px;
  display: inline-block;
  box-shadow: 0 2px 8px rgba(228, 28, 28, 0.2);
  animation: discountPulse 2s infinite ease-in-out;
}

@keyframes discountPulse {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 2px 8px rgba(228, 28, 28, 0.2);
  }
  50% {
    transform: scale(1.04);
    box-shadow: 0 4px 12px rgba(228, 28, 28, 0.4);
  }
}

.price-value {
  font-size: 20px;
  font-weight: 700;
}
.price-unit {
  font-size: 13px;
  font-weight: 400;
  color: var(--hw-gray-text);
}
.eco-meta-footer {
  font-size: 11px;
  color: #777;
  margin-top: 10px;
  padding: 8px 0;
  border-top: 1px dashed var(--hw-border);
}
.target-audiens {
  margin-top: 3px;
  font-weight: 600;
}

/* REEF-AI Opsi Tunggal Open Joint Research Box */
.eco-single-option-wrapper {
  width: 100%;
  margin-top: 10px;
}
.eco-opt-box-exclusive {
  background: rgba(16, 185, 129, 0.04);
  border: 1px solid rgba(16, 185, 129, 0.25);
  border-radius: 6px;
  padding: 20px;
  position: relative;
  width: 100%;
  transition: border-color 0.3s ease;
}
.eco-opt-box-exclusive:hover {
  border-color: rgba(16, 185, 129, 0.5);
}
.eco-badge-collaboration {
  position: absolute;
  top: -10px;
  right: 15px;
  background: #10b981;
  color: #ffffff;
  font-size: 9px;
  padding: 2px 10px;
  border-radius: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
.eco-opt-title {
  color: #059669;
  margin: 0 0 8px 0;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.eco-opt-list {
  margin: 0;
  padding-left: 15px;
  font-size: 13px;
  color: #475569;
  line-height: 1.6;
}
.eco-opt-list li {
  margin-bottom: 4px;
}
.eco-exclude-item {
  color: #b91c1c !important;
  font-weight: 500;
  margin-top: 8px !important;
  list-style-type: "⚠️ " !important;
}

/* Kaki Penutup Aksionabilitas Card */
.card-footer-action {
  padding: 15px 30px;
  border-top: 1px solid var(--hw-border);
  background-color: #fafafa;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.card-footer-action a {
  color: var(--hw-dark);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: color 0.2s;
}
.card-footer-action a:hover {
  color: var(--hw-primary);
}
.arrow-icon {
  color: var(--hw-primary);
  font-weight: bold;
}

/* Gaya Khusus Flyer Spasial (Emerald) & Eco (Navy) */
.talent-card.spatial-tour-special {
  border: 2px solid #bba15c;
  box-shadow:
    0 10px 30px rgba(16, 124, 65, 0.15),
    0 0 20px rgba(187, 161, 92, 0.2);
  transform: scale(1.01);
}
.talent-card.eco-tour-special {
  border: 2px solid #bba15c;
  box-shadow:
    0 10px 30px rgba(23, 42, 69, 0.15),
    0 0 20px rgba(187, 161, 92, 0.2);
  transform: scale(1.01);
}

.spatial-card-banner {
  position: relative;
  height: 200px;
  background:
    linear-gradient(to bottom, rgba(16, 65, 35, 0.1) 60%, #ffffff 100%),
    url("/images/spasial.jpg");
  background-size: cover;
  background-position: center;
}
.eco-card-banner {
  position: relative;
  height: 200px;
  background:
    linear-gradient(to bottom, rgba(23, 42, 69, 0.1) 60%, #ffffff 100%),
    url("/images/reef.jpg");
  background-size: cover;
  background-position: center;
}

.spatial-card-badge {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #104123;
  color: #e5cc8f;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 2px;
  border: 1px solid #bba15c;
  text-transform: uppercase;
}
.eco-card-badge {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #15325d;
  color: #e5cc8f;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 2px;
  border: 1px solid #bba15c;
  text-transform: uppercase;
}

.spatial-slogan {
  font-size: 12px;
  font-style: italic;
  color: #104123;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  background: #f4faf6;
  padding: 10px;
  border-radius: 4px;
  border-left: 3px solid #bba15c;
  margin-bottom: 20px;
  text-transform: uppercase;
}
.eco-slogan {
  font-size: 12px;
  font-style: italic;
  color: #15325d;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  background: #fdfaf2;
  padding: 10px;
  border-radius: 4px;
  border-left: 3px solid #bba15c;
  margin-bottom: 20px;
  text-transform: uppercase;
}

.spatial-tour-special .card-footer-action {
  background-color: #104123;
  border-top: 1px solid #bba15c;
}
.spatial-tour-special .card-footer-action a,
.spatial-tour-special .arrow-icon {
  color: #e5cc8f !important;
  font-weight: 700;
}
.eco-tour-special .card-footer-action {
  background-color: #15325d;
  border-top: 1px solid #bba15c;
}
.eco-tour-special .card-footer-action a,
.eco-tour-special .arrow-icon {
  color: #e5cc8f !important;
  font-weight: 700;
}

/* Alert Box Prasyarat Global BYOL */
.byol-alert-box {
  margin-top: 40px;
  padding: 20px;
  background-color: #ffffff;
  border-left: 4px solid #d46b08;
  border-top: 1px solid var(--hw-border);
  border-right: 1px solid var(--hw-border);
  border-bottom: 1px solid var(--hw-border);
  border-radius: 4px;
}
.byol-alert-title {
  font-size: 15px;
  color: #d46b08;
  margin-bottom: 5px;
  font-weight: 600;
}
.byol-alert-desc {
  font-size: 14px;
  color: var(--hw-gray-text);
  line-height: 1.6;
}

/* ==========================================================================
   6. SUCCESS STORY SECTION (Queue Ready Layout)
   ========================================================================== */
.success-story {
  background-color: #ffffff;
  padding: 80px 0;
  border-top: 1px solid var(--hw-border);
}

.story-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
  justify-content: center; /* Kunci pengetengahan visual jika < 3 item */
}

.story-card {
  background: #ffffff;
  border: 1px solid var(--hw-border);
  border-radius: 4px;
  padding: 30px;
  display: none; /* Dikendalikan dinamis lewat antrean stream JS */
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  opacity: 0;
  transition:
    box-shadow 0.3s,
    border-color 0.3s;
}

.story-card.story-active {
  display: flex;
  animation: storyFadeUp 0.6s forwards cubic-bezier(0.25, 1, 0.5, 1);
}

.story-card:hover {
  box-shadow: var(--card-shadow);
  border-color: transparent;
}
.story-content {
  font-size: 14px;
  color: var(--hw-gray-text);
  font-style: italic;
  line-height: 1.6;
  margin-bottom: 25px;
  position: relative;
}
.story-content::before {
  content: "“";
  font-size: 40px;
  color: rgba(228, 28, 28, 0.2);
  position: absolute;
  top: -25px;
  left: -10px;
  font-family: serif;
}
.story-profile {
  display: flex;
  align-items: center;
  gap: 15px;
}
.story-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  object-fit: cover;
  background-color: #eaeaea;
}
.story-info h4 {
  font-size: 15px;
  font-weight: 600;
  color: var(--hw-dark);
}
.story-info p {
  font-size: 12px;
  color: var(--hw-gray-text);
  margin-bottom: 4px;
}
.story-badge {
  display: inline-block;
  font-size: 11px;
  background-color: var(--hw-light-bg);
  color: var(--hw-dark);
  padding: 2px 8px;
  border-radius: 2px;
  font-weight: 500;
}

@keyframes storyFadeUp {
  from {
    opacity: 0;
    transform: translateY(15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ==========================================================================
   7. ASYMMETRIC INSTITUTIONAL GALLERY (Fade Transition Slots)
   ========================================================================== */
.gallery-section {
  background-color: var(--hw-light-bg);
  padding: 100px 0;
  border-top: 1px solid var(--hw-border);
}

.gallery-asymmetric-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  margin-top: 45px;
}

.gallery-card {
  background-color: #ffffff;
  border: 1px solid var(--hw-border);
  border-radius: 4px;
  height: 320px;
  overflow: hidden;
  position: relative;
  transition: all 0.3s ease;
}

.gallery-card.info-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 40px 30px;
  text-align: center;
}
.gallery-card.info-box.dark-theme {
  background: linear-gradient(135deg, #104123 0%, #15325d 100%);
  border: 1px solid #bba15c;
}

.gallery-card.info-box h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--hw-dark);
  margin-bottom: 12px;
}
.gallery-card.info-box.dark-theme h3 {
  color: #e5cc8f;
}
.gallery-card.info-box p {
  font-size: 13px;
  color: var(--hw-gray-text);
  line-height: 1.6;
  margin-bottom: 25px;
}
.gallery-card.info-box.dark-theme p {
  color: #cbd5e0;
}

.btn-gallery-read {
  border: 1.5px solid var(--hw-dark);
  color: var(--hw-dark);
  padding: 8px 24px;
  border-radius: 20px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.2s ease;
}
.btn-gallery-read:hover {
  background-color: var(--hw-dark);
  color: #ffffff;
}
.gallery-card.info-box.dark-theme .btn-gallery-read {
  border-color: #e5cc8f;
  color: #e5cc8f;
}
.gallery-card.info-box.dark-theme .btn-gallery-read:hover {
  background-color: #e5cc8f;
  color: #15325d;
}

.gallery-card.photo-box {
  position: relative;
  height: 320px;
  overflow: hidden;
  background-color: #11223f;
}
.gallery-card.photo-box img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  z-index: 1;
  transition:
    opacity 1s ease-in-out,
    transform 0.5s ease;
}
.gallery-card.photo-box img.active {
  opacity: 1;
  z-index: 2;
}

.gallery-photo-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  background: linear-gradient(
    to top,
    rgba(11, 21, 40, 0.95) 0%,
    transparent 100%
  );
  padding: 25px 20px 20px 20px;
  transform: translateY(100%);
  transition: transform 0.3s ease;
  z-index: 3;
}
.gallery-photo-overlay h4 {
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 4px;
}
.gallery-photo-overlay p {
  color: #cbd5e0;
  font-size: 12px;
  margin-bottom: 0;
}

.gallery-card.photo-box:hover img {
  transform: scale(1.05);
}
.gallery-card.photo-box:hover .gallery-photo-overlay {
  transform: translateY(0);
}
.gallery-card:hover {
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
}

/* ==========================================================================
   8. MENTOR & ASSISTANT SECTION (Fixed Absolute Vertical Alignment)
   ========================================================================== */
.instructors-section {
  background-color: #ffffff;
  padding: 80px 0;
  border-top: 1px solid var(--hw-border);
}

.mentor-split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-top: 40px;
}

.mentor-card-flex {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  padding: 40px;
  border: 1px solid var(--hw-border);
  border-radius: 4px;
  justify-content: flex-start; /* Mengalir alami untuk mencegah space pembagi tak rata */
}

.mentor-profile-header {
  text-align: center;
  margin-bottom: 20px;
  min-height: 220px; /* Menyeragamkan ketinggian baseline awal pembatas koordinat Y */
  display: flex;
  flex-direction: column;
  align-items: center;
}

.mentor-img-circle {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid var(--hw-light-bg);
  margin-bottom: 15px;
}
.mentor-name {
  font-size: 20px;
  margin-bottom: 5px;
  font-weight: 700;
}

.instructor-role {
  font-size: 13px;
  color: var(--hw-primary);
  font-weight: 500;
  margin-bottom: 0;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.role-blue-accent {
  color: #1890ff;
}

.mentor-bio-content {
  border-top: 1px solid var(--hw-border);
  padding-top: 20px;
  flex: 1; /* Mengisi sisa ruang tersisa secara seimbang antar kedua kolom */
  display: flex;
  flex-direction: column;
}

.mentor-quote {
  font-size: 15px;
  color: var(--hw-dark);
  margin-bottom: 12px;
  font-weight: 600;
}
.mentor-p-text {
  color: var(--hw-gray-text);
  font-size: 14px;
  line-height: 1.6;
}
.font-margin-top {
  margin-top: 15px;
}

.expert-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-top: auto; /* Secara magnetis menarik baris penutup ke dasar paling bawah box */
  padding-top: 25px;
}
.expert-badge {
  font-size: 11px;
  background-color: var(--hw-light-bg);
  color: #444444;
  padding: 3px 8px;
  border-radius: 2px;
}
.red-badge-accent {
  background-color: #fff1f0;
  color: var(--hw-primary);
  font-weight: 600;
}
.blue-badge-accent {
  background-color: #e6f7ff;
  color: #1890ff;
  font-weight: 600;
}

/* ==========================================================================
   9. PREMIUM RnD INNOVATION LAB & REFERENCES (Deep-Tech Lab Style)
   ========================================================================== */
/* Pastikan header terlihat di background gelap RnD */
.rnd-header {
  color: #e6cb1a !important; /* Gunakan putih/emas agar kontras di background gelap */
   margin-bottom: 20px;
}

/* Tambahan: Opsional agar lebih menonjol */
.rnd-header h2 {
  font-size: 1.7rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-bottom: 2px solid #bba15c; /* Garis emas bawah judul */
  display: inline-block;
  padding-bottom: 10px;
}

/* Memastikan grid 2 kolom untuk R&D */
#rnd .course-flex-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

/* Responsif untuk Mobile */
@media (max-width: 768px) {
  #rnd .course-flex-grid {
    grid-template-columns: 1fr;
  }
}

.rnd-section {
  position: relative;
  background: linear-gradient(135deg, #0b1528 0%, #11223f 100%);
  padding: 100px 0;
  overflow: hidden; /* Penting agar elemen dekoratif tidak keluar */
}

/* Tambahkan lapisan grid di atas gradient */
.rnd-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 40px 40px; /* Ukuran kotak grid */
  pointer-events: none; /* Agar tidak mengganggu klik mouse */
}
.rnd-section::after {
  content: "";
  position: absolute;
  top: -10%;
  right: -10%;
  width: 40%;
  height: 40%;
  background: radial-gradient(circle, rgba(187, 161, 92, 0.15) 0%, transparent 70%);
  pointer-events: none;
}

/* Memastikan referensi mengambil lebar penuh dan bersih dari sisa style kartu */
.rnd-references {
  width: 100%;
  margin-top: 40px;
  clear: both; /* Membersihkan float/grid sebelumnya */
}

/* Memastikan konten jurnal di dalam tidak terhimpit */
.journal-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}

.journal-item {
  width: 100%;
  box-sizing: border-box; /* Memastikan padding tidak membuat elemen melebar keluar */
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-left: 4px solid #bba15c;
  padding: 25px;
}

/* ==========================================================================
   10. academic base
   ========================================================================== */
.academic-base {
  background: rgba(255, 255, 255, 0.03) !important; /* Warna gelap agar senada R&D */
  border: 1px solid rgba(187, 161, 92, 0.2) !important;
  padding: 25px !important;
  border-radius: 6px !important;
  margin-top: 20px;
}

.eco-title {
  /* Warna teks Emas */
  color: #c6a502 !important; 
  
  /* Efek Glowing Biru di belakang tulisan */
  /* Format: x-offset y-offset blur-radius color */
  text-shadow: 0 0 8px rgba(177, 204, 243, 0.8), 
               0 0 15px rgba(0, 50, 200, 0.5);
               
  font-size: 14px !important;
  text-transform: uppercase;
  font-weight: 700; /* Ditebalkan agar glow lebih menonjol */
  margin-bottom: 15px !important;
  
  /* Border bawah tetap emas */
  border-bottom: 1px solid rgba(187, 161, 92, 0.3);
  padding-bottom: 10px;
  
  /* Tambahan: Agar efek glow terlihat bersih di background gelap */
  display: block;
}

.ref-item {
  margin-bottom: 15px;
  font-size: 13px !important;
  color: #cbd5e0;
  line-height: 1.6;
}

.ref-link {
  color: #e5cc8f !important;
  font-weight: 600;
  text-decoration: none;
  display: block;
  margin-top: 5px;
}

/* Mengubah warna teks dalam kotak referensi agar terlihat jelas di background putih */
.academic-base, 
.academic-base p, 
.academic-base div, 
.academic-base span {
  color: #374151 !important; /* Abu-abu sangat tua, jauh lebih terbaca */
}

/* Mengatur agar link tetap menonjol */
.academic-base a {
  color: #2563eb !important; /* Biru agar terlihat sebagai link */
  font-weight: 600;
}

/* ==========================================================================
   11. FOOTER
   ========================================================================== */
footer {
  background-color: #ffffff;
  border-top: 1px solid var(--hw-border);
  padding: 30px 0;
  font-size: 13px;
  color: var(--hw-gray-text);
}

.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ==========================================================================
   11. DYNAMIC RESPONSIVE BREAKPOINTS (Bebas Konflik)
   ========================================================================== */
@media (max-width: 992px) {
  .mentor-split-grid,
  .rnd-wrapper,
 /* Perbaikan Layout Workshop agar otomatis rapi dan tidak berantakan */
.course-flex-grid.twin-layout {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
    align-items: stretch; /* Memastikan tinggi kartu sama rata */
    margin-top: 40px;
  }

  .talent-card {
    display: flex;
    flex-direction: column;
    height: 100%; /* Memastikan semua kartu memiliki tinggi seragam */
    background: #ffffff;
    border: 1px solid var(--hw-border);
    overflow: hidden;
  }
  .rnd-metrics {
    width: 100%;
  }
  .rnd-collaboration-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    padding: 20px;
  }
  .collaboration-action,
  .btn-collab-link {
    width: 100%;
    text-align: center;
  }
  .gallery-asymmetric-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .nav-wrapper {
    height: auto;
    padding: 15px 0;
    flex-direction: column;
    gap: 15px;
  }
  nav ul {
    gap: 15px;
  }
  .hero h1 {
    font-size: 30px;
  }
  .fw-grid {
    flex-direction: column;
  }
  .footer-content {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }
  .spatial-materi-grid,
  .eco-materi-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .gallery-asymmetric-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .gallery-card {
    height: 280px;
  }
}

/* ==========================================================================
   12. BILINGUAL LOCALIZATION STATES & SWITCHER COMPONENT
   ========================================================================== */

/* Mesin Pengontrol Visibilitas Teks Bersifat Mutlak */
body.lang-id .lang-en {
  display: none !important;
}

body.lang-en .lang-id {
  display: none !important;
}

/* Wadah Tombol Switcher Bahasa */
.lang-switch-container {
  display: inline-flex;
  gap: 2px;
  background-color: var(--hw-light-bg);
  padding: 3px;
  border-radius: 4px;
  border: 1px solid var(--hw-border);
  margin-right: 15px;
  align-items: center;
}

/* Tombol Bahasa (ID / EN) */
.btn-lang {
  background: transparent;
  border: none;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 2px;
  color: var(--hw-gray-text);
  transition: all 0.2s ease-in-out;
}

/* State Tombol Aktif Terpilih */
.btn-lang.active {
  background-color: #ffffff;
  color: var(--hw-dark);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

/* Responsif Navigasi Switcher di Layar Kecil */
@media (max-width: 992px) {
  .lang-switch-container {
    margin-right: 0;
    margin-bottom: 10px;
  }
}

/* ==========================================================================
   13. COMPONENT & REFACTORED CLASSES (No Inline Styles)
   ========================================================================== */
/* Research Reference & Alert Boxes */
.research-ref-box {
  margin: 20px 0;
  padding: 15px;
  background: #f0f4f8;
  border-radius: 4px;
  border-left: 4px solid #2b579a;
}
.research-ref-title {
  color: #111827;
  margin-bottom: 8px;
  font-size: 13px;
}
.research-ref-text {
  font-size: 12px;
  color: #444;
  line-height: 1.5;
  margin-bottom: 10px;
}
.research-ref-link {
  font-size: 12px;
  font-weight: bold;
  color: #2b579a;
  text-decoration: underline;
}

.disclaimer-box {
  margin-top: 25px;
  padding: 15px;
  background-color: #fff8f8;
  border: 1px solid #ffeded;
  border-radius: 4px;
  font-size: 12px;
  color: #7f1d1d;
  line-height: 1.5;
  font-style: italic;
}

.location-box {
  margin-top: 15px;
  padding: 15px;
  background-color: #f8fafc;
  border: 1px solid var(--hw-border);
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.location-icon {
  font-size: 24px;
}

.private-course-box {
  margin-top: 15px;
  padding: 15px;
  background-color: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.private-course-title {
  font-size: 14px;
  color: #92400e;
  margin-bottom: 2px;
}
.private-course-text {
  font-size: 13px;
  color: #78350f;
}

/* Spot/Algo Trading Card */
.spot-trading-special {
  border: 2px solid #bba15c;
}
.spot-card-banner {
  position: relative;
  height: 200px;
  background:
    linear-gradient(
      to bottom,
      rgba(17, 24, 39, 0.4) 60%,
      rgba(17, 24, 39, 1) 100%
    ),
    url("../images/urbanforest.jpg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.spot-card-badge {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #111827;
  color: #e5cc8f;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 2px;
  border: 1px solid #bba15c;
  text-transform: uppercase;
}
.spot-slogan {
  color: #111827;
  background: #f8f9fa;
  border-left: 3px solid #bba15c;
  padding: 12px;
  margin-top: 10px;
  font-size: 12px;
  font-style: italic;
  font-weight: 600;
}
.spot-footer-action {
  background: #111827;
  text-align: center;
  padding: 15px;
  border-top: 1px solid #bba15c;
}
.spot-footer-link {
  color: #e5cc8f !important;
  font-weight: 700;
  text-decoration: none;
}

/* Utilities */
.text-dark-blue {
  color: #111827;
}
.text-dark-blue-mb {
  color: #111827;
  margin-bottom: 15px;
}
.mb-20 {
  margin-bottom: 20px;
}
.mb-15 {
  margin-bottom: 15px;
}
.mt-auto {
  margin-top: auto;
}
.flex-1-col {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Flex Tech Stack RND */
.rnd-tech-tags-flex {
  margin-top: 20px;
  padding-left: 0;
  margin-left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.rnd-tech-tags-flex h4 {
  width: 100%;
  margin-bottom: 10px;
  font-size: 14px;
  margin-left: 0;
  color: #ffffff; /* Ini akan membuat teksnya menjadi putih */
}
.rnd-tech-tags-flex .pill {
  margin-left: 0;
  color: #ffffff;
}
/* ==========================================================================
   13. CLEAN CODE REFACTOR CLASSES (Pindahan dari Inline HTML)
   ========================================================================== */

/* Info Boxes (Lokasi & Private Course) */
.info-box-location {
  margin-top: 15px;
  padding: 15px;
  background-color: #f8fafc;
  border: 1px solid var(--hw-border);
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.info-box-private {
  margin-top: 15px;
  padding: 15px;
  background-color: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.info-icon {
  font-size: 24px;
}
.info-title-location {
  font-size: 14px;
  margin-bottom: 2px;
  color: var(--hw-dark);
}
.info-title-private {
  font-size: 14px;
  margin-bottom: 2px;
  color: #92400e;
}
.info-text-location {
  font-size: 13px;
  color: var(--hw-gray-text);
}
.info-text-private {
  font-size: 13px;
  color: #78350f;
}

/* Disclaimer */
.disclaimer-alert {
  margin-top: 25px;
  padding: 15px;
  background-color: #fff8f8;
  border: 1px solid #ffeded;
  border-radius: 4px;
  font-size: 12px;
  color: #7f1d1d;
  line-height: 1.5;
  font-style: italic;
}

/* Flex Utilities & General Colors */
.flex-col-1 {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.mb-15 {
  margin-bottom: 15px;
}
.mb-20 {
  margin-bottom: 20px;
}
.mt-auto {
  margin-top: auto;
}
.text-dark-blue {
  color: #111827;
}
.text-word-blue {
  color: #2b579a;
}

/* Card 3: Crypto Algo-Trading */
.card-crypto {
  border: 2px solid #bba15c;
}
.banner-crypto {
  height: 180px;
  position: relative;
  background-size: contain;
  background: #111827 url("../images/image_852943.png") no-repeat center;
}
.badge-crypto {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #bba15c;
  color: #000;
  padding: 4px 10px;
  font-size: 10px;
  font-weight: bold;
  border-radius: 2px;
}
.footer-crypto {
  background: #111827;
  text-align: center;
  padding: 15px;
  border-top: 1px solid #bba15c;
}
.link-crypto {
  color: #e5cc8f !important;
  font-weight: bold;
  text-decoration: none;
}

/* Card 4: Microsoft Word */
.card-word {
  border: 2px solid #2b579a;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.banner-word {
  height: 200px;
  position: relative;
  background-size: cover;
  background-position: center;
  background:
    linear-gradient(to bottom, rgba(43, 87, 154, 0.4) 60%, #ffffff 100%),
    url("../images/word.png");
}
.badge-word {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #2b579a;
  color: #ffffff;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 700;
  border-radius: 2px;
  text-transform: uppercase;
}
.bonus-box {
  margin-bottom: 20px;
  padding: 12px;
  border-left: 4px solid #d46b08;
  background: #fff7ed;
  border-radius: 4px;
}
.bonus-title {
  color: #d46b08;
  margin-bottom: 5px;
  font-size: 13px;
}
.bonus-text {
  font-size: 12px;
  color: #555;
  line-height: 1.4;
}
.discount-text {
  color: #d46b08;
  font-weight: 600;
}
.footer-word {
  background: #2b579a;
  text-align: center;
  padding: 15px;
}
.link-word {
  color: #ffffff !important;
  font-weight: bold;
  text-decoration: none;
}

/* Tech Stack RND Alignment */
.rnd-tags-container {
  margin-top: 20px;
  padding-left: 0;
  margin-left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.rnd-tags-container h4 {
  width: 100%;
  margin-bottom: 10px;
  font-size: 14px;
  margin-left: 0;
}
.rnd-tags-container .pill {
  margin-left: 0;
}

/* Clean Code untuk Crypto Algo-Trading Card */
.card-crypto {
  border: 2px solid #bba15c;
  box-shadow:
    0 10px 30px rgba(17, 24, 39, 0.15),
    0 0 20px rgba(187, 161, 92, 0.2);
  transform: scale(1.01);
}

.banner-crypto {
  position: relative;
  height: 200px;
  background-color: #111827;
  background-image:
    linear-gradient(
      to bottom,
      rgba(17, 24, 39, 0.4) 0%,
      rgba(17, 24, 39, 1) 100%
    ),
    url("../images/binance.jpg");
  background-size: contain, contain;
  background-repeat: no-repeat, no-repeat;
  background-position: center, center;
}

.badge-crypto {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #111827;
  color: #e5cc8f;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 2px;
  border: 1px solid #bba15c;
  text-transform: uppercase;
}

.crypto-slogan {
  color: #111827;
  background: #f8f9fa;
  border-left: 3px solid #bba15c;
  padding: 12px;
}

.footer-crypto {
  background: #111827;
  color: #e5cc8f;
  text-align: center;
  padding: 15px;
}

/* Utility tambahan untuk warna teks spesifik */
.text-dark-blue {
  color: #111827;
}

.disclaimer-alert {
  margin-top: 25px;
  padding: 15px;
  background-color: #fff8f8;
  border: 1px solid #ffeded;
  border-radius: 4px;
  font-size: 12px;
  color: #7f1d1d;
  line-height: 1.5;
  font-style: italic;
}
/* Clean Code untuk R&D News Alert (Tampilan Lebih Terang & Menonjol) */
.rnd-news-alert {
  /* Menggunakan gradient biru transparan yang lebih terang agar pop-out dari background gelap */
  background: linear-gradient(
    135deg,
    rgba(24, 144, 255, 0.18) 0%,
    rgba(24, 144, 255, 0.05) 100%
  );
  border-left: 4px solid #40a9ff; /* Garis aksen biru dicerahkan */
  border-radius: 6px;
  padding: 20px;
  margin: 25px 0;
  border-top: 1px solid rgba(64, 169, 255, 0.4); /* Border dibuat lebih jelas */
  border-right: 1px solid rgba(64, 169, 255, 0.1);
  border-bottom: 1px solid rgba(64, 169, 255, 0.1);
  box-shadow: 0 8px 25px rgba(24, 144, 255, 0.15); /* Tambahan efek bayangan cahaya (glow) */
}

/* Bagian teksnya tetap sama, biarkan kode di bawah ini seperti sebelumnya */
.rnd-news-alert h5 {
  color: #a89e08;
  font-size: 14px;
  margin-bottom: 8px;
  letter-spacing: 0.5px;
}

.rnd-news-alert .news-text {
  font-size: 12.5px !important;
  color: #161515 !important; /* Warna teks dicerahkan menjadi putih murni agar lebih kontras */
  margin-bottom: 12px !important;
  line-height: 1.6 !important;
  text-align: justify;
}

.rnd-news-link {
  font-size: 12px;
  color: #40a9ff; /* Warna link sedikit dicerahkan */
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s ease;
}

.rnd-news-link:hover {
  text-decoration: underline;
  color: #ffffff;
}

/* ==========================================================================
   DESAIN KARTU WORKSHOP BARU (Sesuai Referensi Gambar)
   ========================================================================== */

.modern-card {
  background: #ffffff;
  border: 1px solid #d4af37; /* Border tipis warna emas/gold */
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
}

.modern-banner {
  height: 180px;
  position: relative;
  background-size: cover;
  background-position: center;
  /* Tambahan efek putih memudar di bagian bawah banner */
 mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 1) 90%, 
    rgba(0, 0, 0, 0) 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 1) 90%, 
    rgba(0, 0, 0, 0) 100%
  );
}

/* Ganti URL gambar background sesuai nama gambar asli Anda */
.spatial-banner-bg {
  background-image: url("../images/spasial.jpg");
  background-color: #e0f2e9;
  background-size: cover;
  background-position: center;
}

.modern-badge {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #1a422e; /* Hijau gelap */
  color: #e2c676; /* Teks emas */
  padding: 6px 12px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  border-radius: 2px;
  border: 1px solid #d4af37;
  text-transform: uppercase;
}

.modern-content {
  padding: 10px 25px 25px 25px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.modern-title {
  color: #1a422e;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 15px;
}

.modern-slogan {
  background-color: #f4fbf7;
  border-left: 3px solid #e2c676;
  padding: 12px 15px;
  color: #1a422e;
  font-size: 11px;
  font-style: italic;
  font-weight: 700;
  text-align: center;
  margin-bottom: 15px;
}

.modern-desc {
  font-size: 13px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 20px;
}

.modern-algo {
  font-size: 13px;
  color: #ffffff;
  line-height: 1.6;
  margin-bottom: 20px;
}

.modern-divider-solid {
  border: 0;
  border-top: 1px solid #d4af37;
  margin: 0 0 15px 0;
}

.modern-price-label {
  font-size: 10px;
  color: #6b7280;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.modern-price-old-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 2px;
}

.modern-price-old {
  font-size: 13px;
  color: #9ca3af;
  text-decoration: line-through;
  font-weight: 600;
}

.modern-discount-badge {
  background: #ef4444;
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 2px;
  box-shadow: 0 2px 10px rgba(239, 68, 68, 0.4);
}

.modern-price-new-wrapper {
  margin-bottom: 15px;
}

.modern-price-new {
  font-size: 24px;
  font-weight: 800;
  color: #1a422e;
}

.modern-price-unit {
  font-size: 12px;
  color: #6b7280;
  font-weight: 500;
}

.modern-divider-dotted {
  border: 0;
  border-top: 1px dashed #e5e7eb;
  margin: 0 0 10px 0;
}

.modern-prereq {
  font-size: 10px;
  color: #6b7280;
  margin-bottom: 4px;
}

.modern-target {
  font-size: 11px;
  color: #1a422e;
  font-weight: 700;
}

.modern-footer {
  background-color: #1a422e;
  padding: 15px 25px;
  display: flex;
  flex-direction: column; /* Default di HP: tersusun vertikal ke bawah */
  gap: 12px;
  align-items: stretch;
}

.modern-btn-daftar {
  background-color: #111827;
  color: #e2c676 !important;
  font-weight: 800;
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 6px;
  text-align: center;
}

/* Tombol Peta Interaktif (Desain disesuaikan dengan tema kartu) */
.modern-btn-peta {
  background-color: #3b82f6;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 6px;
  text-align: center;
  transition: background-color 0.2s;
}

.modern-btn-peta:hover {
  background-color: #2563eb;
}

.modern-btn-silabus {
  background: transparent;
  border: 1px solid rgba(226, 198, 118, 0.3);
  color: #e2c676;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
}

.modern-btn-silabus:hover {
  background: rgba(226, 198, 118, 0.1);
  opacity: 0.9;
  text-decoration: underline;
}

.mt-20 {
  margin-top: 20px;
}

/* Jika dibuka di Laptop/Desktop, tombol otomatis berjajar ke samping secara seimbang */
@media screen and (min-width: 768px) {
  .modern-footer {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  
  .modern-btn-daftar,
  .modern-btn-peta,
  .modern-btn-silabus {
    flex: 1;
  }
}

/* ==========================================================================
   MODAL POP-UP SYSTEM
   ========================================================================== */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(17, 24, 39, 0.7); /* Latar belakang gelap transparan */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  backdrop-filter: blur(4px);
}

.modal-overlay.active {
  opacity: 1;
  visibility: visible;
}

.modal-container {
  background: #ffffff;
  width: 90%;
  max-width: 800px;
  max-height: 85vh;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  transform: translateY(20px);
  transition: transform 0.3s ease;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.modal-overlay.active .modal-container {
  transform: translateY(0);
}

.modal-header {
  padding: 20px 25px;
  border-bottom: 1px solid #e5e7eb;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
  border-radius: 8px 8px 0 0;
}

.modal-title {
  font-size: 18px;
  color: #111827;
  font-weight: 700;
  margin: 0;
}

.modal-close-btn {
  background: none;
  border: none;
  font-size: 28px;
  color: #6b7280;
  cursor: pointer;
  line-height: 1;
}

.modal-close-btn:hover {
  color: #ef4444;
}

.modal-body {
  padding: 25px;
  overflow-y: auto; /* Agar bisa discroll jika konten panjang */
}

/* ==========================================================================
   MODIFIER THEME REEF-AI (Mengubah warna dari desain dasar Modern Card)
   ========================================================================== */

/* Background Banner Reef */
.reef-banner-bg {
  /* Ubah nama gambar ini sesuai dengan gambar pemandangan laut/pulau Anda */
  background-image: url("../images/reef.jpg");
  background-color: #dbeafe; /* Warna fallback biru muda */
  background-size: cover;
  background-position: center;
}

/* Badge biru navy untuk REEF */
.badge-reef {
  background-color: #1e3a8a; /* Biru Navy */
  color: #fbbf24; /* Kuning/Emas */
  border: 1px solid #1e3a8a;
}

/* Tag Biru di atas Judul */
.modern-tag-blue {
  color: #3b82f6; /* Biru terang */
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
  text-transform: uppercase;
}

/* Judul Card REEF */
.title-reef {
  color: #1e3a8a; /* Biru Navy */
}

/* Slogan Card REEF */
.slogan-reef {
  background-color: #fffbeb; /* Cream terang */
  border-left: 3px solid #d97706; /* Garis emas/orange gelap */
  color: #1e3a8a; /* Teks navy */
}

/* Kotak Harga (Pricing Box) REEF */
.reef-price-box {
  background: #f4fbfa; /* Hijau air sangat tipis */
  border: 1px solid #a7f3d0; /* Border hijau mint */
  border-radius: 6px;
  padding: 20px;
  position: relative;
  margin-top: 15px;
}

/* Badge "JOIN COLLABORATION" */
.reef-collab-badge {
  position: absolute;
  top: -12px;
  right: 15px;
  background-color: #10b981; /* Hijau terang */
  color: #ffffff;
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.reef-price-title {
  color: #059669; /* Hijau medium */
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 8px;
}

.reef-price-value {
  font-size: 24px;
  font-weight: 800;
  color: #111827;
  margin-bottom: 15px;
}

/* List Fasilitas Harga */
.reef-price-list {
  list-style: disc;
  padding-left: 15px;
  margin: 0;
}

.reef-price-list li {
  font-size: 12.5px;
  color: #4b5563;
  line-height: 1.6;
  margin-bottom: 8px;
}

.reef-price-list li strong {
  color: #374151;
}

/* List Item Exclude (Warna Merah) */
.reef-price-list .exclude-item {
  color: #dc2626; /* Merah */
  font-weight: 500;
  list-style: none; /* Hilangkan bullet untuk ikon warning */
  margin-left: -15px; /* Sesuaikan padding */
}
.reef-price-list .exclude-item strong {
  color: #dc2626;
}

/* Footer Card REEF */
.footer-reef {
  background-color: #1e3a5f; /* Biru Navy Gelap */
  border-top: none;
}

/* Teks Tombol Emas */
.text-gold {
  color: #e2c676 !important;
}

/* ==========================================================================
   MODIFIER THEME CRYPTO ALGO-TRADING (Premium Charcoal & Gold Theme)
   ========================================================================== */

/* Kontainer khusus kartu Crypto agar serasi dengan nuansa bursa */
.theme-crypto {
  background: #111827 !important; /* Latar belakang hitam premium */
  border: 1px solid #bba15c !important; /* Border warna emas */
  box-shadow:
    0 10px 30px rgba(17, 24, 39, 0.2),
    0 0 20px rgba(187, 161, 92, 0.1);
}

/* Banner atas menggunakan asset gambar resmi terverifikasi */
.crypto-banner-bg {
  background-image:
    linear-gradient(to bottom, rgba(37, 60, 108, 0.3) 50%, #111827 100%),
    url("../images/binance.jpg");
  background-color: #e6e7e9;
  background-size: cover;
  background-position: center;
}

/* Badge penunjuk kustom */
.badge-crypto {
  background-color: #111827;
  color: #e5cc8f;
  border: 1px solid #bba15c;
}

/* Teks tag di atas judul utama */
.modern-tag-gold {
  color: #bba15c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
  text-transform: uppercase;
}

/* Penyesuaian kontras teks judul di background gelap */
.title-crypto {
  color: #ffffff !important;
}

/* Slogan bergaya gelap */
.slogan-crypto {
  background-color: rgba(187, 161, 92, 0.05) !important;
  border-left: 3px solid #bba15c !important;
  color: #e5cc8f !important;
}

/* Pembatas warna emas tipis */
.divider-crypto {
  border-top: 1px solid rgba(187, 161, 92, 0.3) !important;
}

/* Utilitas warna teks untuk tema gelap */
.text-light-gray {
  color: #ffffff !important;
}

.text-gold-glow {
  color: #e5cc8f !important;
  text-shadow: 0 0 10px rgba(229, 204, 143, 0.2);
}

/* Bagian bawah kartu */
.footer-crypto {
  background-color: #0d1527 !important;
  border-top: 1px solid rgba(187, 161, 92, 0.2);
}

/* Mengubah warna teks paragraf dan judul dalam Modal Crypto menjadi putih solid */
#modal-crypto .spatial-materi-box h5,
#modal-crypto .spatial-materi-box p,
#modal-crypto .spatial-materi-box p span,
#modal-crypto .modal-title span {
  color: #ffffff !important;
}

/* Memastikan teks tebal (strong) juga ikut berwarna putih */
#modal-crypto .spatial-materi-box p strong {
  color: #ffffff !important;
}

/* ==========================================================
   PERBAIKAN BACKGROUND MODAL CRYPTO (DARK MODE)
   ========================================================== */

/* Mengubah latar belakang pop-up menjadi gelap */
#modal-crypto .modal-container {
  background: #111827 !important;
  border: 1px solid #bba15c;
}

/* Mengubah bagian header pop-up menjadi gelap */
#modal-crypto .modal-header {
  background: #0d1527 !important;
  border-bottom: 1px solid rgba(187, 161, 92, 0.2);
}

/* Warna tombol silang (X) agar terlihat di background gelap */
#modal-crypto .modal-close-btn {
  color: #9ca3af;
}
#modal-crypto .modal-close-btn:hover {
  color: #ef4444;
}

/* Sedikit background transparan untuk kotak modul agar lebih terbaca */
#modal-crypto .spatial-materi-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(187, 161, 92, 0.3);
}

/* Menyesuaikan kotak disclaimer di mode gelap */
#modal-crypto .disclaimer-alert {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #fca5a5; /* Warna merah muda terang */
}

/* ==========================================================
   BADGE OPEN JOINT RESEARCH (R&D SECTION)
   ========================================================== */

.rnd-badge-wrapper {
  margin-top: -5px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
}

.rnd-joint-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(16, 185, 129, 0.1); /* Latar hijau emerald transparan */
  border: 1px solid rgba(16, 185, 129, 0.4); /* Border hijau */
  color: #34d399; /* Teks hijau terang menyala */
  padding: 6px 14px;
  border-radius: 20px; /* Bentuk pil oval melengkung */
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  box-shadow: 0 0 15px rgba(16, 185, 129, 0.15); /* Efek cahaya (glow) */
  text-transform: uppercase;
  transition: all 0.3s ease;
  cursor: default;
}

/* Efek menyala lebih terang ketika mouse diarahkan ke badge */
.rnd-joint-badge:hover {
  background: rgba(16, 185, 129, 0.2);
  border-color: rgba(16, 185, 129, 0.6);
  box-shadow: 0 0 20px rgba(16, 185, 129, 0.3);
  transform: translateY(-1px);
}

/* ==========================================================================
   MODIFIER THEME dMRV CARBON MEASUREMENT (Forest Green Theme)
   ========================================================================== */

/* Frame Utama Kartu dMRV */
.theme-dmrv {
  border: 1px solid #10b981 !important; /* Border hijau emerald */
  box-shadow: 0 4px 15px rgba(16, 185, 129, 0.1);
}

/* Banner Atas dMRV (Pastikan ganti url gambar dengan foto/asset yang sesuai) */
.dmrv-banner-bg {
  background-image:
    linear-gradient(
      to bottom,
      rgba(6, 78, 59, 0.1) 50%,
      rgba(6, 78, 59, 0.8) 100%
    ),
    url("../images/urbanforest.jpg");
  background-color: #d1fae5;
}

/* Badge di dalam Banner */
.badge-dmrv {
  background-color: #064e3b; /* Hijau sangat gelap */
  color: #a7f3d0; /* Hijau pastel terang */
  border: 1px solid #10b981;
}

/* Teks Tag di atas Judul */
.modern-tag-green {
  color: #10b981;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
  text-transform: uppercase;
}

/* Warna Judul Kartu */
.title-dmrv {
  color: #064e3b !important;
}

/* Warna Kotak Slogan */
.slogan-dmrv {
  background-color: #ecfdf5 !important;
  border-left: 3px solid #10b981 !important;
  color: #065f46 !important;
}

/* Menjaga warna deskripsi tetap abu-abu gelap agar tidak tertimpa mode malam */
.dmrv-desc,
.dmrv-desc .lang-id,
.dmrv-desc .lang-en {
  color: #4b5563 !important;
}

/* Teks Penekanan Warna Gelap */
.text-dmrv-dark {
  color: #064e3b !important;
  font-weight: 800;
}

/* Tombol Putih Murni */
.text-white {
  color: #ffffff !important;
}

/* Footer Kartu */
.footer-dmrv {
  background-color: #064e3b !important;
}

/* Mengatur agar Modul 5 memenuhi lebar penuh di dalam Modal dMRV */
.grid-full-width {
  grid-column: 1 / -1;
}

/* ==========================================================================
   STYLE PRASYARAT TEKNIS CRYPTO MODAL (DARK ECOSYSTEM)
   ========================================================================== */

.crypto-prep-container {
  margin-top: 25px;
  margin-bottom: 30px;
  padding: 5px 0;
}

.crypto-prep-heading {
  color: #e5cc8f !important; /* Warna emas khas CESNA */
  font-size: 15px !important;
  font-weight: 700;
  margin-bottom: 10px;
  letter-spacing: 0.5px;
}

.crypto-prep-text {
  color: #ffffff !important;
  font-size: 13.5px !important;
  line-height: 1.5;
  margin-bottom: 12px;
}

.crypto-prep-list {
  list-style: none;
  padding-left: 0;
  margin: 0 0 20px 0;
}

.crypto-prep-list li {
  color: #ffffff !important;
  font-size: 13px !important;
  line-height: 1.6;
  margin-bottom: 8px;
  position: relative;
  padding-left: 20px;
}

/* Penanda khusus (bullet point) berwarna emas agar selaras */
.crypto-prep-list li::before {
  content: "▹";
  position: absolute;
  left: 0;
  color: #bba15c;
  font-weight: bold;
}

.crypto-prep-list li strong {
  color: #e5cc8f !important;
}

/* Kotak Sorot Khusus Solusi Kendala VPN */
.crypto-vpn-box {
  background: rgba(187, 161, 92, 0.08); /* Transparansi emas tipis */
  border-left: 3px solid #bba15c;
  border-radius: 4px;
  padding: 16px;
  margin-top: 15px;
}

.crypto-vpn-box h5 {
  color: #e5cc8f !important;
  font-size: 13.5px !important;
  font-weight: 700;
  margin: 0 0 6px 0;
}

.crypto-vpn-box p {
  color: #e2e8f0 !important; /* Putih keabuan tipis agar nyaman dibaca */
  font-size: 12.5px !important;
  line-height: 1.6;
  margin: 0;
  text-align: justify;
}

/* ==========================================================================
   DESAIN NAVBAR & RESPONSIVE MOBILE DROPDOWN
   ========================================================================== */

/* Pengaturan Dasar Navbar */
.navbar {
  background-color: #ffffff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
}

.nav-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 15px 20px;
}

.brand-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-size: 18px;
  font-weight: 700;
  color: #111827;
}

.brand-logo img {
  height: 35px;
}

.text-lab {
  color: #0d9488; /* Ganti dengan kode hex pilihan Anda */
}

/* Pembungkus Kontrol Bagian Kanan (Bahasa + Hamburger) */
.nav-controls {
  display: flex;
  align-items: center;
  gap: 15px;
}

/* Tombol Bahasa Styling */
.lang-switch-wrapper {
  display: flex;
  background: #f3f4f6;
  border-radius: 4px;
  padding: 2px;
  border: 1px solid #e5e7eb;
}

.btn-lang {
  background: transparent;
  border: none;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 700;
  color: #6b7280;
  cursor: pointer;
  border-radius: 3px;
  transition: all 0.2s;
}

.btn-lang.active {
  background: #ffffff;
  color: #111827;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Tombol Hamburger Sembunyi di Laptop */
.hamburger-btn {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 5px;
  z-index: 1001;
}

.hamburger-line {
  display: block;
  width: 24px;
  height: 2.5px;
  background-color: #111827;
  margin: 5px 0;
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* Tata Letak Menu Horisontal (Laptop) */
.nav-menu {
  display: flex;
  align-items: center;
  gap: 30px;
}

.nav-links {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 20px;
}

.nav-link {
  text-decoration: none;
  color: #374151;
  font-size: 14px;
  font-weight: 600;
  transition: color 0.2s;
}

.nav-link:hover {
  color: #ef4444;
}

.nav-actions {
  display: flex;
  align-items: center;
}

.btn-mulai-belajar {
  border: 1px solid #ef4444;
  color: #ef4444;
  padding: 8px 16px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  transition: all 0.2s;
}

.btn-mulai-belajar:hover {
  background-color: #ef4444;
  color: #ffffff;
}

/* ==========================================================
   TAMPILAN KHUSUS MOBILE DEVICES (Layar di bawah 768px)
   ========================================================== */
@media screen and (max-width: 768px) {
  /* 1. Tampilkan tombol Hamburger di sebelah tombol bahasa */
  .hamburger-btn {
    display: block;
  }

  /* 2. Sesuaikan ukuran font logo di layar kecil agar tidak terpotong */
  .brand-logo {
    font-size: 16px;
  }
  .brand-logo img {
    height: 28px;
  }

  /* 3. Ubah Menu Navigasi menjadi Dropdown */
  .nav-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: #ffffff;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 20px;
    box-shadow: 0 10px 15px rgba(0,0,0,0.1);
    border-top: 1px solid #f3f4f6;
    
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.3s ease-in-out;
  }

  .nav-menu.active {
    max-height: 400px;
    opacity: 1;
    padding: 20px;
  }

  /* 4. Susun daftar link ke bawah */
  .nav-links {
    flex-direction: column;
    width: 100%;
    gap: 15px;
    margin-bottom: 20px;
    border-bottom: 1px solid #f3f4f6;
    padding-bottom: 15px;
  }

  .nav-link {
    display: block;
    width: 100%;
    font-size: 15px;
  }

  /* 5. Tombol Mulai Belajar memenuhi lebar dropdown agar mudah diklik di HP */
  .nav-actions {
    width: 100%;
  }

  .btn-mulai-belajar {
    display: block;
    width: 100%;
    text-align: center;
    padding: 10px 0;
    box-sizing: border-box;
  }
}

/* CSS untuk memaksa satu kolom di tengah */
.course-flex-grid.single-layout {
    display: flex;
    justify-content: center; /* Memposisikan kartu di tengah */
    max-width: 600px;        /* Batasi lebar agar tidak terlalu lebar */
    margin: 0 auto;          /* Menjaga agar grid tetap di tengah halaman */
}

/* Opsional: Jika kartu ingin dibuat lebih lebar saat single */
.single-layout .modern-card {
    width: 100%;
}

/* Styling Tombol Live Trading */
.btn-live-trading-glow {
    display: inline-block;
    padding: 10px 20px;
    margin-top: 10px;
    background-color: #ef4444; /* Merah untuk menarik perhatian */
    color: #ffffff;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    border: none;
    cursor: pointer;
    
    /* Efek Berkedip / Pulsing */
    animation: pulse-red 1.5s infinite;
}

@keyframes pulse-red {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
    70% { transform: scale(1.05); box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.btn-live-trading-glow:hover {
    animation: none; /* Berhenti berkedip saat kursor di atasnya */
    background-color: #dc2626;
}

/* --- Styling Khusus Tombol Peta Interaktif --- */
.modern-btn-peta {
    background-color: #3b82f6; /* Warna biru elegan untuk peta */
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.95rem;
    font-family: var(--font-sans, sans-serif);
    transition: all 0.3s ease;
    text-align: center;
}

.modern-btn-peta:hover {
    background-color: #2563eb;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

