/* VARIABEL */
:root {
  --sk-blue: #1E5BD8;
  --sk-blue-dark: #1747AD;
  --sk-navy: #0B1B3A;
  --sk-bg: #F4F7FC;
  --sk-line: #E1E8F4;
  --sk-soft: #E3ECFC;
  --sk-mute: #4A5878;
  --sk-ph-bg: #C9D6EE;
  --sk-ph-fg: #6C7FA6;
  --sk-chip: #E6ECF7;
  --sk-footer-text: #9FB0D3;
  --sk-green: #22A06B;
  --sk-shadow: rgba(11, 27, 58, .15);

  --bs-primary: var(--sk-blue);
  --bs-primary-rgb: 30, 91, 216;
  --bs-body-bg: var(--sk-bg);
  --bs-body-color: var(--sk-navy);
  --bs-link-color: var(--sk-blue);
  --bs-link-hover-color: var(--sk-blue-dark);
  --bs-secondary-color: var(--sk-mute);
  --bs-font-sans-serif: 'Plus Jakarta Sans', system-ui, sans-serif;
}


/* DASAR */
body {
  font-family: var(--bs-font-sans-serif);
  background: var(--sk-bg);
}

.text-secondary {
  color: var(--sk-mute) !important;
}

.text-primary {
  color: var(--sk-blue) !important;
}


/* TOMBOL DAN TAUTAN */
.btn {
  font-weight: 600;
  border-radius: 8px;
}

.btn-primary {
  --bs-btn-bg: var(--sk-blue);
  --bs-btn-border-color: var(--sk-blue);
  --bs-btn-hover-bg: var(--sk-blue-dark);
  --bs-btn-hover-border-color: var(--sk-blue-dark);
  --bs-btn-active-bg: var(--sk-blue-dark);
  --bs-btn-active-border-color: var(--sk-blue-dark);
}

.btn-outline-primary {
  --bs-btn-color: var(--sk-blue);
  --bs-btn-border-color: var(--sk-blue);
  --bs-btn-hover-bg: var(--sk-blue);
  --bs-btn-hover-border-color: var(--sk-blue);
  --bs-btn-active-bg: var(--sk-blue);
}

.btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--sk-blue);
  font-weight: 600;
  text-decoration: none;
  transition: gap .2s;
}

.link-arrow:hover {
  gap: .7rem;
  color: var(--sk-blue-dark);
}


/* ===== NAVBAR ===== */
.site-nav {
  background: #fff;
  border-bottom: 1px solid var(--sk-line);
  padding: .8rem 0;
}

.sk-brand {
  font-weight: 800;
  color: var(--sk-blue) !important;
}

.site-nav .nav-link {
  color: var(--sk-mute);
  font-weight: 500;
  padding: .4rem .8rem;
}

.site-nav .nav-link:hover {
  color: var(--sk-blue);
}

.site-nav .nav-link.active {
  color: var(--sk-blue);
  font-weight: 600;
}

@media (min-width: 992px) {
  .site-nav .navbar-nav .nav-item:last-child .nav-link {
    padding-right: 0;
  }
}


/* TIPOGRAFI DAN LAYOUT UMUM */
h1,
h2,
h3 {
  letter-spacing: -.02em;
}

.sk-tag {
  color: var(--sk-blue);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.sec-title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 800;
  line-height: 1.2;
}

.section {
  padding: 3.5rem 0;
}

.page-head {
  padding: 3rem 0 1.5rem;
}

.page-head h1 {
  font-size: clamp(2rem, 5vw, 2.8rem);
  font-weight: 800;
}

.empty {
  margin: 0;
  padding: 2rem;
  background: #fff;
  border: 2px dashed var(--sk-line);
  border-radius: 12px;
  color: var(--sk-mute);
}


/* KARTU */
.sk-card {
  background: #fff;
  border: 1px solid var(--sk-line);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow .2s, transform .2s;
}

a.sk-card:hover {
  box-shadow: 0 8px 24px rgba(11, 27, 58, .1);
  transform: translateY(-2px);
}

.sk-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.ph {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sk-ph-bg);
  color: var(--sk-ph-fg);
  font-size: 2rem;
}

.ic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: .75rem;
  background: var(--sk-soft);
  border-radius: 10px;
  color: var(--sk-blue);
  font-size: 1.25rem;
}


/* BERANDA: HERO */
.hero {
  padding: 4.5rem 0 3.5rem;
  background: linear-gradient(180deg, var(--sk-soft) 0%, #fff 100%);
}

.hero-title {
  max-width: 16ch;
  margin-bottom: 1rem;
  font-size: clamp(2.1rem, 5vw, 3.4rem);
  font-weight: 800;
  line-height: 1.1;
}

.hero-title em {
  font-style: normal;
  color: var(--sk-blue);
}

.stat b {
  display: block;
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--sk-blue);
}

.hero-photo {
  position: relative;
  padding: 0 0 1.5rem 1.5rem;
}

.hero-photo::before {
  content: "";
  position: absolute;
  inset: 2rem 0 0 2.5rem;
  background: var(--sk-soft);
  border-radius: 24px;
}

.hero-photo .frame {
  position: relative;
  padding: 8px;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 24px 48px var(--sk-shadow);
}

.hero-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  border-radius: 16px;
}

.float {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .55rem .8rem;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 28px var(--sk-shadow);
  font-size: .72rem;
  line-height: 1.3;
}

.float .ic {
  width: 34px;
  height: 34px;
  margin: 0;
  font-size: 1rem;
}

.float.a {
  left: 0;
  bottom: 3.4rem;
}

.float.b {
  right: -.5rem;
  bottom: .2rem;
  border-radius: 999px;
  font-weight: 600;
}

.dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: var(--sk-green);
  border-radius: 50%;
}


/* BERANDA: TENTANG */
.about-photo {
  position: relative;
}

.about-photo img,
.about-photo .ph {
  display: flex;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 18px;
}

.about-photo .tagline {
  position: absolute;
  right: 1.2rem;
  bottom: -1rem;
  max-width: 75%;
  padding: .55rem 1rem;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 22px var(--sk-shadow);
  font-size: .75rem;
  font-weight: 700;
}


/* BERANDA: KARTU LAYANAN */
.svc {
  height: 100%;
  background: #fff;
  border: 1px solid var(--sk-line);
  border-radius: 16px;
  overflow: hidden;
}

.svc .media {
  position: relative;
}

.svc img,
.svc .ph {
  display: flex;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.svc .ico-c {
  position: absolute;
  left: 1.1rem;
  bottom: -20px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 4px 14px var(--sk-shadow);
  color: var(--sk-blue);
  font-size: 1.1rem;
}

.svc .body {
  padding: 1.9rem 1.1rem 1.2rem;
}


/* BERANDA: KARTU GALERI */
.gal {
  height: 100%;
  background: #fff;
  border: 1px solid var(--sk-line);
  border-radius: 16px;
  overflow: hidden;
}

.gal img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.gal .body {
  padding: 1rem 1.1rem;
}


/* BERANDA: MITRA */
.partner {
  padding: 1.2rem 0;
  background: var(--sk-chip);
  border-radius: 10px;
  color: var(--sk-ph-fg);
  font-weight: 600;
}


/* BERANDA: BANNER AJAKAN */
.cta-band {
  position: relative;
  overflow: hidden;
  padding: 2.6rem;
  background: linear-gradient(115deg, var(--sk-navy) 0%, var(--sk-blue-dark) 100%);
  border-radius: 18px;
  color: #fff;
}

.cta-band h2 {
  max-width: 24ch;
  margin: 0;
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  font-weight: 800;
}

.cta-band .sk-tag {
  color: #9DBBF5;
}

.cta-band .bg-ico {
  position: absolute;
  top: 50%;
  right: 2rem;
  transform: translateY(-50%);
  font-size: 9rem;
  opacity: .12;
  pointer-events: none;
}


/* HALAMAN ARTIKEL */
.reading {
  max-width: 46rem;
}

.reading h1 {
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 800;
}


/* FOOTER */
.site-footer {
  padding: 3rem 0;
  background: var(--sk-navy);
  color: var(--sk-footer-text);
}

.site-footer a {
  color: var(--sk-footer-text);
  text-decoration: none;
}

.site-footer a:hover {
  color: #fff;
}

.site-footer li {
  margin-bottom: .3rem;
}

.foot-brand,
.foot-title {
  color: #fff;
}

.foot-brand {
  font-size: 1.15rem;
  font-weight: 800;
}


/* ===== LOGO ===== */
.sk-logo {
  height: 38px;
  width: auto;
}

.foot-logo {
  height: 56px;
  width: auto;
  padding: 8px 12px;
  background: #fff;
  border-radius: 12px;
}