/* Dermaga Mentawai — satu-satunya stylesheet situs ini. */

/* ---------- Token ---------- */

:root {
  --kertas: #F7F3EA;
  --tinta:  #1C2B2D;
  --laut:   #0E5A5C;
  --kopra:  #C4572A;
  --kopra-teks: #AC4B23; /* kopra digelapkan agar teks kecil lolos AA (5,0:1) */
  --daun:   #5A7A52;
  --pasir:  #D9CDB8;
  --batu:   #5C6B6A;

  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px; --s5: 24px;
  --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;

  --font-judul: "Bricolage Grotesque", system-ui, sans-serif;
  --font-badan: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;
  --font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --ukur: 68ch;      /* lebar kolom baca */
  --lebar-luas: 880px; /* breakout untuk hero & tabel */
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("/fonts/bricolage-grotesque-var.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
}

/* ---------- Dasar ---------- */

* { box-sizing: border-box; }

html { background: var(--kertas); }

body {
  margin: 0;
  font-family: var(--font-badan);
  font-size: 17px;
  line-height: 1.65;
  color: var(--tinta);
  background: var(--kertas);
}

@media (min-width: 720px) {
  body { font-size: 18px; }
}

h1, h2, h3, h4 {
  font-family: var(--font-judul);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 var(--s3);
  letter-spacing: -0.01em;
}

h1 { font-size: 1.9rem; }
h2 { font-size: 1.4rem; margin-top: var(--s6); }
h3 { font-size: 1.15rem; margin-top: var(--s5); }

@media (min-width: 720px) {
  h1 { font-size: 2.5rem; }
  h2 { font-size: 1.6rem; }
}

p, ul, ol { margin: 0 0 var(--s4); }

a {
  color: var(--laut);
  text-decoration: underline;
  text-underline-offset: 2px;
}
a:hover { color: var(--tinta); }

img { max-width: 100%; height: auto; display: block; }

hr {
  border: 0;
  border-top: 1px solid var(--pasir);
  margin: var(--s6) 0;
}

table {
  border-collapse: collapse;
  width: 100%;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-variant-numeric: tabular-nums;
}
th, td {
  text-align: left;
  padding: var(--s2) var(--s3);
  border-bottom: 1px solid var(--pasir);
  vertical-align: top;
}
th {
  font-weight: 600;
  border-bottom: 2px solid var(--tinta);
}
tbody tr:nth-child(even) { background: rgba(217, 205, 184, 0.28); }
td.angka, th.angka { text-align: right; }

figure { margin: 0 0 var(--s5); }
figcaption {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--batu);
  margin-top: var(--s2);
}

blockquote {
  margin: 0 0 var(--s4);
  padding-left: var(--s4);
  border-left: 3px solid var(--kopra);
  font-style: italic;
}

.kecil, time {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--batu);
}

.skip {
  position: absolute;
  left: -9999px;
}
.skip:focus {
  left: var(--s3);
  top: var(--s3);
  background: var(--tinta);
  color: var(--kertas);
  padding: var(--s2) var(--s3);
  z-index: 10;
}

/* ---------- Tata letak ---------- */

.bungkus {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 var(--s4);
}

/* Halaman artikel: satu kolom 68ch dengan breakout ~880px */
.artikel {
  max-width: var(--ukur);
  margin: 0 auto;
  padding: 0 var(--s4);
}
.luas {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 960px) {
  .luas {
    width: var(--lebar-luas);
    max-width: none;
    margin-left: calc((var(--lebar-luas) - 100%) / -2);
    margin-right: calc((var(--lebar-luas) - 100%) / -2);
  }
}

/* ---------- Masthead ---------- */

.masthead {
  border-bottom: 3px solid var(--tinta);
  padding: var(--s5) 0 0;
}
.masthead .bungkus { max-width: 1080px; }

.wordmark {
  font-family: var(--font-judul);
  font-weight: 800;
  font-size: 1.7rem;
  letter-spacing: -0.02em;
  color: var(--tinta);
  text-decoration: none;
  display: inline-block;
}
.wordmark:hover { color: var(--laut); }

.tagline {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--batu);
  margin: var(--s1) 0 var(--s3);
  max-width: 60ch;
}

.nav-hub {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2) var(--s5);
  padding: var(--s2) 0 var(--s3);
  border-top: 1px solid var(--pasir);
  font-family: var(--font-ui);
  font-size: 0.85rem;
}
.nav-hub a {
  color: var(--tinta);
  text-decoration: none;
  font-weight: 600;
}
.nav-hub a:hover,
.nav-hub a[aria-current="true"] { color: var(--laut); text-decoration: underline; }

@media (min-width: 720px) {
  .wordmark { font-size: 2.1rem; }
}

/* ---------- Lead story (beranda) ---------- */

.lead-story {
  padding: var(--s6) 0;
  border-bottom: 1px solid var(--pasir);
}
@media (min-width: 720px) {
  .lead-story .baris {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: var(--s6);
    align-items: center;
  }
}
.lead-story h2 {
  font-size: 1.6rem;
  margin-top: 0;
}
@media (min-width: 720px) {
  .lead-story h2 { font-size: 2.1rem; }
}
.lead-story h2 a { color: var(--tinta); text-decoration: none; }
.lead-story h2 a:hover { color: var(--laut); text-decoration: underline; }
.deck {
  font-size: 1.05rem;
  color: var(--batu);
}

/* ---------- Label hub (tag Kopra) ---------- */

.hub-tag {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--kopra-teks);
  text-decoration: none;
  margin-bottom: var(--s2);
}
a.hub-tag:hover { color: var(--tinta); }

/* ---------- Kartu hub ---------- */

.grid-hub {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s5);
  padding: var(--s6) 0;
}
@media (min-width: 720px) {
  .grid-hub { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 960px) {
  .grid-hub { grid-template-columns: repeat(5, 1fr); }
}

.hub-card {
  border: 1px solid var(--pasir);
  background: rgba(217, 205, 184, 0.15);
}
.hub-card img { width: 100%; }
.hub-card .isi { padding: var(--s3) var(--s4) var(--s4); }
.hub-card h3 {
  margin: 0 0 var(--s2);
  font-size: 1.05rem;
}
.hub-card h3 a { color: var(--tinta); text-decoration: none; }
.hub-card h3 a:hover { color: var(--laut); text-decoration: underline; }
.hub-card p {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--batu);
  margin-bottom: var(--s2);
}
.hub-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: var(--font-ui);
  font-size: 0.82rem;
}
.hub-card li { margin-bottom: var(--s1); }

/* ---------- Stat tile ---------- */

.grid-stat {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s4);
  padding: var(--s5) 0;
}
@media (min-width: 720px) {
  .grid-stat { grid-template-columns: repeat(3, 1fr); }
}

.stat-tile {
  border: 1px solid var(--pasir);
  border-top: 3px solid var(--kopra);
  padding: var(--s4);
  background: var(--kertas);
  font-family: var(--font-ui);
}
.stat-tile .nilai {
  display: block;
  font-family: var(--font-judul);
  font-weight: 800;
  font-size: 2rem;
  line-height: 1.1;
  color: var(--kopra);
  font-variant-numeric: tabular-nums;
}
.stat-tile .label {
  display: block;
  margin-top: var(--s1);
  font-size: 0.88rem;
  color: var(--tinta);
}
.stat-tile .sumber-baris {
  display: block;
  margin-top: var(--s2);
  font-size: 0.75rem;
  color: var(--batu);
}

/* ---------- Ringkas dalam angka ---------- */

.ringkas {
  border: 1px solid var(--pasir);
  border-top: 3px solid var(--kopra);
  padding: var(--s4) var(--s4) var(--s2);
  margin: var(--s5) 0;
  background: rgba(217, 205, 184, 0.15);
}
.ringkas > .judul {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--kopra-teks);
  margin: 0 0 var(--s3);
}
.ringkas table { font-size: 0.85rem; }
.ringkas th { border-bottom-width: 1px; }
.ringkas tbody tr:last-child td { border-bottom: 0; }
.ringkas .sumber-baris {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  color: var(--batu);
  margin: var(--s2) 0;
}

/* ---------- Angka tetap (kartu hub) ---------- */

.angka-tetap {
  border: 1px solid var(--tinta);
  padding: var(--s4);
  margin: var(--s5) 0;
  font-family: var(--font-ui);
  max-width: 44ch;
}
.angka-tetap .judul {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--batu);
  margin: 0 0 var(--s2);
}
.angka-tetap .nilai {
  display: block;
  font-family: var(--font-judul);
  font-weight: 800;
  font-size: 2.2rem;
  line-height: 1.1;
  color: var(--kopra);
  font-variant-numeric: tabular-nums;
}
.angka-tetap .label {
  display: block;
  margin-top: var(--s1);
  font-size: 0.88rem;
}
.angka-tetap .sumber-baris {
  display: block;
  margin-top: var(--s2);
  font-size: 0.75rem;
  color: var(--batu);
}

/* ---------- Kepala artikel ---------- */

.kepala-artikel {
  padding: var(--s6) 0 var(--s4);
}
.kepala-artikel h1 { margin-bottom: var(--s2); }
.kepala-artikel .deck { margin-bottom: var(--s3); }
.kepala-artikel time { display: block; margin-bottom: var(--s3); }

/* ---------- Daftar artikel ---------- */

.daftar-artikel {
  list-style: none;
  margin: 0 0 var(--s6);
  padding: 0;
}
.daftar-artikel li {
  padding: var(--s3) 0;
  border-bottom: 1px solid var(--pasir);
}
.daftar-artikel .judul-baris {
  font-family: var(--font-judul);
  font-weight: 700;
  font-size: 1.05rem;
}
.daftar-artikel a { color: var(--tinta); text-decoration: none; }
.daftar-artikel a:hover { color: var(--laut); text-decoration: underline; }
.daftar-artikel time { display: block; margin-top: var(--s1); }

/* ---------- Blok Sumber ---------- */

.sumber {
  margin: var(--s6) 0;
  padding: var(--s4);
  border: 1px solid var(--pasir);
  background: rgba(217, 205, 184, 0.15);
  font-family: var(--font-ui);
  font-size: 0.82rem;
}
.sumber .judul {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--batu);
  margin: 0 0 var(--s2);
}
.sumber ul { margin: 0; padding-left: 1.2em; }
.sumber li { margin-bottom: var(--s1); }
.sumber a { overflow-wrap: anywhere; }

/* ---------- Footer ---------- */

.footer {
  margin-top: var(--s8);
  background: var(--tinta);
  color: var(--kertas);
  padding: var(--s6) 0 var(--s7);
  font-family: var(--font-ui);
  font-size: 0.85rem;
}
.footer a { color: var(--kertas); }
.footer a:hover { color: var(--pasir); }
.footer .wordmark-kaki {
  font-family: var(--font-judul);
  font-weight: 800;
  font-size: 1.2rem;
  margin: 0 0 var(--s2);
}
.footer .kolom {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s5);
}
@media (min-width: 720px) {
  .footer .kolom { grid-template-columns: 1fr 1fr 1fr; }
}
.footer h4 {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--pasir);
  margin: 0 0 var(--s2);
}
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer li { margin-bottom: var(--s1); }
.footer .catatan {
  margin-top: var(--s5);
  padding-top: var(--s4);
  border-top: 1px solid rgba(247, 243, 234, 0.25);
  color: var(--pasir);
  font-size: 0.78rem;
}

/* ---------- Formulir kontak ---------- */

.formulir {
  max-width: 48ch;
  font-family: var(--font-ui);
}
.formulir label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: var(--s1);
}
.formulir .medan { margin-bottom: var(--s4); }
.formulir .petunjuk {
  font-size: 0.78rem;
  color: var(--batu);
  margin: var(--s1) 0 0;
}
.formulir input[type="text"],
.formulir input[type="email"],
.formulir textarea {
  width: 100%;
  font: inherit;
  font-size: 0.95rem;
  color: var(--tinta);
  background: #fff;
  border: 1px solid var(--batu);
  border-radius: 2px;
  padding: var(--s2) var(--s3);
}
.formulir textarea { min-height: 10em; resize: vertical; }
.formulir input:focus,
.formulir textarea:focus {
  outline: 2px solid var(--laut);
  outline-offset: 1px;
}
.formulir .hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.formulir button {
  font: inherit;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--kertas);
  background: var(--laut);
  border: 0;
  border-radius: 2px;
  padding: var(--s3) var(--s5);
  cursor: pointer;
}
.formulir button:hover { background: var(--tinta); }

.notis {
  font-family: var(--font-ui);
  font-size: 0.9rem;
  padding: var(--s3) var(--s4);
  margin: 0 0 var(--s5);
  border: 1px solid var(--pasir);
  border-left: 4px solid var(--daun);
  background: rgba(217, 205, 184, 0.25);
}
.notis.gagal { border-left-color: var(--kopra); }

/* ---------- 404 ---------- */

.h404 {
  max-width: var(--ukur);
  margin: 0 auto;
  padding: var(--s8) var(--s4);
  text-align: left;
}
.h404 .kode {
  font-family: var(--font-judul);
  font-weight: 800;
  font-size: 5rem;
  line-height: 1;
  color: var(--kopra);
  margin: 0 0 var(--s3);
  font-variant-numeric: tabular-nums;
}
.h404 ul {
  list-style: none;
  padding: 0;
  font-family: var(--font-ui);
  font-size: 0.9rem;
}
.h404 li { margin-bottom: var(--s2); }
