/* Global Case Study CSI Styles */
:root {
  --csi-teal: #1aa18c; --csi-teal-dark: #148a77; --csi-teal-light: #e6f7f5;
  --csi-navy: #0d1b2a; --csi-gray: #6b7280; --csi-light: #f9fafb;
  --csi-white: #fff; --csi-border: #e5e7eb; --csi-slate: #4a5568;
}

html { scroll-behavior: smooth; }
.agp-csi { 
  font-family: 'Sora', sans-serif !important; 
  color: var(--csi-navy); 
  overflow-x: hidden; 
}
.agp-csi * { font-family: 'Sora', sans-serif !important; }

/* ── PROGRESS BAR ── */
#progress-bar {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: var(--csi-teal); z-index: 999; transition: width .1s linear;
}

/* ── REVEAL ANIMATIONS ── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .65s, transform .65s; }
.reveal.from-left { transform: translateX(-28px); }
.reveal.from-right { transform: translateX(28px); }
.reveal.visible { opacity: 1; transform: none; }

/* ── KEYFRAMES ── */
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }
@keyframes lineUp { to { opacity: 1; transform: translateY(0); } }
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

/* ── MOBILE ── */
@media (max-width: 768px) {
  /* nav { padding: 0 20px; } */
  /* .nav-links { display: none; } */
  .hero, .chapter, .numbers-section, .pull-quote-section,
  .story-section, .chart-section, .approach-section,
  .results-section, .testimonial-section, .cta-section { padding-left: 20px; padding-right: 20px; }
  .numbers-grid { grid-template-columns: repeat(2, 1fr); }
  .results-grid { grid-template-columns: 1fr; }
  .approach-card { grid-template-columns: 56px 1fr; }
  .approach-num { font-size: 22px; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; padding-left: 0; padding-right: 0; }
  footer { padding: 0 20px; }
  .pq-large-num { font-size: 100px; }
  .testi-bg-text { font-size: 80px; }
}
@media (max-width: 480px) {
  .numbers-grid { grid-template-columns: 1fr 1fr; gap: 1px; }
  .number-cell { padding: 24px 16px; }
}