:root {
  /* Colors */
  --color-primary: #1d2ae8; /* Vibrant Blue from header */
  --color-primary-dark: #151f9e;
  --color-accent: #7c82f2; /* Light purple for Submit button */
  --color-text-main: #111111;
  --color-text-secondary: #555555;
  --color-border: #e0e0e0;
  --color-bg-light: #f9f9f9;
  --color-white: #ffffff;
  --color-error: #d32f2f;

  /* Spacing */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;

  /* Global Typography */
  --font-family: "Manrope", sans-serif;
  --font-size-base: 16px;
  --font-size-sm: 14px;
  --font-size-lg: 18px;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;

  /* BorderRadius */
  --radius-sm: 4px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-full: 9999px;
}

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

body {
  font-family: var(--font-family);
  background-color: #f5f5f7; /* Very light subtle gray bg */
  color: var(--color-text-main);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Ensure paragraph text uses medium weight across the site */
p {
  font-weight: 500;
}

/* Layout Container */
main {
  max-width: 600px; /* Mobile-first approach, limited width for desktop aesthetics */
  margin: 0 auto;
  background-color: var(--color-white);
  min-height: 100vh;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.05); /* Subtle shadow for desktop view */
  position: relative;
  padding-bottom: 100px; /* Space for footer */
}

/* Utility */
.hidden {
  display: none;
}

button {
  cursor: pointer;
  font-family: inherit;
  border: none;
  outline: none;
}

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

.card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.card > :last-child {
  border-bottom: none;
}
