:root {
  /* Brand Colors */
  --bg-color: #ffffff;
  --text-color: #000000;
  --text-muted: #666666;
  --border-color: #e0e0e0;
  --border-light: #eaeaea;

  /* Typography */
  --font-primary: 'Jost', sans-serif;

  /* Shapes */
  --radius-sm: 4px;
  --radius-none: 0px;

  /* Spacing System */
  --gap-section: 64px;       /* Large gaps between major sections */
  --gap-section-sm: 40px;    /* Mobile section gap */
  --gap-element-lg: 32px;    /* Large element gap (e.g., between form sections) */
  --gap-element: 24px;       /* Standard element gap (e.g., below section titles) */
  --gap-element-sm: 16px;    /* Small element gap (e.g., between form inputs) */
  --gap-element-xs: 8px;     /* Extra small gap (e.g., between labels and inputs) */
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-primary);
  background-color: var(--bg-color);
  color: var(--text-color);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}

a {
  text-decoration: none;
  color: var(--text-color);
}

ul {
  list-style: none;
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: var(--font-primary);
  color: var(--text-color);
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  body {
    /* Prevent the fixed mobile bottom bar from overlapping content at the very bottom */
    padding-bottom: 70px;
  }
}
