/* ============================================================
   style.css - Custom styles for SPED Staffing Data Site
   Layered on top of Bootstrap 5. No build tools required.
   ============================================================ */

/* ------------------------------------------------------------
   Scroll offset for sticky navbar
   ------------------------------------------------------------ */
html {
  scroll-padding-top: 70px;
}

/* ------------------------------------------------------------
   Section spacing
   ------------------------------------------------------------ */
section {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

/* ------------------------------------------------------------
   Hero / header background
   ------------------------------------------------------------ */
.site-hero {
  background-color: #f8f9fa;
  padding-top: 3rem;
  padding-bottom: 3rem;
}

/* ------------------------------------------------------------
   Stat cards
   ------------------------------------------------------------ */
.stat-card {
  background-color: #ffffff;
  border-left: 2px solid #0d6efd;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  border-radius: 0.375rem;
  padding: 1.25rem 1.5rem;
}

.stat-card .stat-number {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.1;
  color: #0d6efd;
}

.stat-card .stat-description {
  font-size: 0.95rem;
  color: #495057;
  margin-top: 0.25rem;
}

/* ------------------------------------------------------------
   Gap / negative callout variant
   ------------------------------------------------------------ */
.stat-card.stat-card--gap {
  border-left-color: #dc3545;
  background-color: #fff5f5;
}

.stat-card.stat-card--gap .stat-number {
  color: #dc3545;
}

/* ------------------------------------------------------------
   Large number callout (standalone, not inside a card)
   ------------------------------------------------------------ */
.callout-number {
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.1;
  color: #0d6efd;
}

.callout-number.callout-number--gap {
  color: #dc3545;
}

.callout-description {
  font-size: 0.95rem;
  color: #6c757d;
  margin-top: 0.25rem;
}

/* ------------------------------------------------------------
   Chart containers
   ------------------------------------------------------------ */
.chart-container {
  max-width: 700px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem;
}

/* ------------------------------------------------------------
   Footer
   ------------------------------------------------------------ */
footer {
  border-top: 1px solid #dee2e6;
  color: #6c757d;
  font-size: 0.875rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

/* ------------------------------------------------------------
   Responsive overrides
   ------------------------------------------------------------ */
@media (max-width: 575.98px) {
  .chart-container {
    width: 100%;
    max-width: 100%;
  }

  .stat-card .stat-number {
    font-size: 2.25rem;
  }

  .callout-number {
    font-size: 2.5rem;
  }
}

/* ------------------------------------------------------------
   Print styles
   ------------------------------------------------------------ */
@media print {
  nav,
  .navbar {
    display: none !important;
  }

  body {
    color: #000000 !important;
    background-color: #ffffff !important;
  }

  .stat-card {
    box-shadow: none !important;
  }

  a {
    color: #000000 !important;
    text-decoration: none !important;
  }

  footer {
    color: #000000 !important;
  }
}
