/* ── Container ──────────────────────────────────────────────── */
.container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--sp-4);
}

/* ── Section base ───────────────────────────────────────────── */
.section {
  padding: var(--sp-7) 0;
  position: relative;
}

.section--alt {
  background: var(--navy-mid);
}

.section-header {
  margin-bottom: var(--sp-5);
}

.section-header .t-code {
  display: block;
  margin-bottom: var(--sp-1);
}

.section-header .t-eyebrow {
  display: block;
  margin-bottom: 10px;
}

.section-header .t-heading {
  font-size: var(--text-xl);
}

.section-header p {
  margin-top: var(--sp-2);
  max-width: 600px;
  color: var(--white-dim);
  font-size: var(--text-base);
}

/* ── Grids ──────────────────────────────────────────────────── */
.grid-2        { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.grid-3        { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
.grid-4        { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }
.grid-pillars  { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }
.grid-stats    { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; }
.grid-team     { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }

.chart-aside {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: var(--sp-5);
  align-items: start;
}

/* ── Reveal animations ──────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.reveal-d1 { transition-delay: 0.08s; }
.reveal-d2 { transition-delay: 0.16s; }
.reveal-d3 { transition-delay: 0.24s; }
.reveal-d4 { transition-delay: 0.32s; }
.reveal-d5 { transition-delay: 0.40s; }
.reveal-d6 { transition-delay: 0.48s; }
.reveal-d7 { transition-delay: 0.56s; }
.reveal-d8 { transition-delay: 0.64s; }

/* ── Responsive breakpoints ─────────────────────────────────── */
@media (max-width: 1100px) {
  .grid-pillars  { grid-template-columns: repeat(2, 1fr); }
  .chart-aside   { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .grid-stats    { grid-template-columns: repeat(3, 1fr); }
  .grid-team     { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  .grid-4        { grid-template-columns: repeat(2, 1fr); }
  .grid-3        { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .section       { padding: var(--sp-6) 0; }
  .grid-stats    { grid-template-columns: repeat(2, 1fr); }
  .grid-3        { grid-template-columns: 1fr; }
  .grid-4        { grid-template-columns: 1fr; }
  .grid-pillars  { grid-template-columns: 1fr; }
  .grid-2        { grid-template-columns: 1fr; }
  :root {
    --text-hero: 48px;
    --text-3xl:  40px;
    --text-2xl:  30px;
    --text-xl:   24px;
  }
}
