:root {
  /* Color System */
  --color-white: #FFFFFF;
  --color-astral-blue: #3273AF;
  --color-sushi-green: #7DC243;
  --color-persian-red: #C1372C;
  --color-black-pearl: #09122F;

  /* Semantic Colors */
  --color-primary: var(--color-sushi-green);
  --color-accent-light: var(--color-astral-blue);
  --color-accent-dark: var(--color-persian-red);
  --color-text-dark: var(--color-black-pearl);
  --color-text-light: var(--color-white);
  --color-background-light: var(--color-white);
  --color-background-dark: var(--color-black-pearl);

  /* Typography */
  --font-family-primary: 'Montserrat', sans-serif;
  
  /* Typography Scale */
  --font-size-xs: 0.694rem;     /* Smallest text */
  --font-size-sm: 0.833rem;     /* Small text */
  --font-size-base: 1rem;       /* Base/paragraph text */
  --font-size-h6: 1.2rem;       /* h6 */
  --font-size-h5: 1.44rem;      /* h5 */
  --font-size-h4: 1.728rem;     /* h4 */
  --font-size-h3: 2.074rem;     /* h3 */
  --font-size-h2: 2.488rem;     /* h2 */
  --font-size-h1: 2.986rem;     /* h1 */

  /* Font Weights */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Spacing Scale */
  --space-2xs: clamp(0.31rem, calc(0.31rem + 0vw), 0.31rem);
  --space-xs: clamp(0.56rem, calc(0.54rem + 0.11vw), 0.63rem);
  --space-sm: clamp(0.88rem, calc(0.85rem + 0.11vw), 0.94rem);
  --space-md: clamp(1.13rem, calc(1.08rem + 0.22vw), 1.25rem);
  --space-lg: clamp(1.69rem, calc(1.62rem + 0.33vw), 1.88rem);
  --space-xl: clamp(2.25rem, calc(2.16rem + 0.43vw), 2.5rem);
  --space-2xl: clamp(3.38rem, calc(3.24rem + 0.65vw), 3.75rem);
  --space-3xl: clamp(4.5rem, calc(4.32rem + 0.86vw), 5rem);
  --space-4xl: clamp(6rem, calc(5.76rem + 1.15vw), 6.67rem);

  /* Semantic Spacing */
  /* Vertical spacing between sections */
  --section-spacing-y: var(--space-4xl);
  
  /* Spacing inside sections */
  --content-spacing-y: var(--space-2xl);  /* Vertical spacing between major content blocks */
  --element-spacing-y: var(--space-xl);   /* Vertical spacing between elements */
  --text-spacing-y: var(--space-md);      /* Vertical spacing between text elements */
  
  /* Horizontal spacing */
  --grid-gap: var(--space-xl);            /* Gap between grid items */
  --element-spacing-x: var(--space-lg);    /* Horizontal spacing between elements */
  
  /* Component-specific spacing */
  --card-padding: var(--space-xl);         /* Padding inside cards */
  --form-spacing: var(--space-lg);         /* Spacing between form elements */
  --button-spacing: var(--space-md);       /* Spacing between buttons */

  /* Transitions */
  --transition-base: 0.3s ease;
  --transition-smooth: 0.3s ease-in-out;
  
  /* Transforms */
  --transform-hover-y: -5px;
  --transform-hover-y-lg: -10px;
  
  /* Border Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 9999px;

  /* Breakpoints */
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;

  /* Shadows */
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.15);
  --shadow-lg: 0 20px 40px rgba(0, 0, 0, 0.15);

  /* Container Max Widths */
  --container-max-width: 1200px;
  --container-padding: 1rem;
}
