/* ── CSS CUSTOM PROPERTIES ── */
:root {
  --charcoal: #2d3748;
  --charcoal-dark: #1a202c;
  --green: #4a9e4f;
  --green-dark: #3a7d3e;
  --green-mid: #7dd87f;
  --green-light: #e8f5e9;
  --green-border: #c6e9c8;
  --grey-bg: #f7f8fa;
  --grey-mid: #e2e8f0;
  --grey-text: #718096;
  --white: #ffffff;
  --app-dark: #1e2d3d;
  --red-light: #fff5f5;
  --red-border: #fed7d7;
  --red-text: #742a2a;
  --red-header: #c53030;
  --gold: #fbbf24;
  --font: 'Inter', 'Segoe UI', sans-serif;
}

/* ── RESET ── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Media never overflows its container */
img, svg, video, iframe {
  max-width: 100%;
}

/* ── BASE ── */
html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  font-family: var(--font);
  color: var(--charcoal);
  background: var(--white);
  line-height: 1.6;
  padding-top: 52px;
  overflow-x: clip;
}

@media (min-width: 1024px) {
  body { padding-top: 64px; }
}

body.no-nav {
  padding-top: 0;
}

.admin-bar body {
  padding-top: calc(64px + 32px);
}

@media screen and (max-width: 782px) {
  .admin-bar body {
    padding-top: calc(52px + 46px);
  }
}

/* ── CONTAINER ── */
.container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 32px;
}
/* ── ACCESSIBILITY ── */
/* Skip link: hidden until a keyboard user tabs to it, then jumps past the nav. */
.skip-link {
  position: absolute;
  left: 16px;
  top: -100px;
  z-index: 10000;
  padding: 12px 20px;
  background: var(--charcoal);
  color: var(--white);
  font-weight: 700;
  border-radius: 8px;
  text-decoration: none;
  transition: top 0.2s ease;
}
.skip-link:focus { top: 16px; }
#main:focus { outline: none; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
