/* ============================================================
   Base, reset, tipografi, layout primitif, utility
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; border-radius: var(--r-sm); }

h1, h2, h3, h4 { line-height: var(--lh-tight); font-weight: var(--fw-bold); color: var(--c-heading); letter-spacing: -0.01em; }
h1 { font-size: clamp(2rem, 1.2rem + 2.6vw, var(--fs-4xl)); }
h2 { font-size: clamp(1.6rem, 1.1rem + 1.6vw, var(--fs-3xl)); }
h3 { font-size: var(--fs-xl); }
p { color: var(--c-text); }
p + p { margin-top: var(--sp-4); }

/* Layout */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--sp-5); }
.section { padding-block: var(--sp-9); }
.section--tight { padding-block: var(--sp-7); }
.section--surface { background: var(--c-surface); }
.section--dark { background: var(--c-primary); color: var(--c-on-dark); }
.section--dark h2, .section--dark h3 { color: #fff; }

.section-head { max-width: 720px; margin-bottom: var(--sp-7); }
.section-head.center { margin-inline: auto; text-align: center; }
/* section-head dua-kolom inline dari komponen caseStudies */
.section-head.is-split { display: flex; justify-content: space-between; align-items: flex-end; max-width: none; flex-wrap: wrap; gap: var(--sp-4); }
@media (max-width: 640px) {
  .section-head.is-split { flex-direction: column; align-items: flex-start; }
}
.eyebrow {
  display: inline-block; font-size: var(--fs-sm); font-weight: var(--fw-semibold);
  letter-spacing: .08em; text-transform: uppercase; color: var(--c-accent-600);
  margin-bottom: var(--sp-3);
}
.section-sub { color: var(--c-text-muted); margin-top: var(--sp-3); font-size: var(--fs-lg); }

.grid { display: grid; gap: var(--sp-5); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }

/* Container padding lebih nyaman di mobile sempit */
@media (max-width: 480px) {
  .container { padding-inline: var(--sp-4); }
  .grid { gap: var(--sp-4); }
}

/* Section padding ramp-down di mobile agar tidak terlalu longgar */
@media (max-width: 620px) {
  .section { padding-block: var(--sp-7); }
  .section--tight { padding-block: var(--sp-6); }
}

/* Section head dua-kolom (judul + aksi) harus stack di mobile */
@media (max-width: 640px) {
  .section-head[data-split] {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--sp-4);
  }
}

.text-muted { color: var(--c-text-muted); }
.text-center { text-align: center; }
.mt-4 { margin-top: var(--sp-4); } .mt-5 { margin-top: var(--sp-5); } .mt-6 { margin-top: var(--sp-6); }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
