/**
 * @file
 * Global CSS custom properties.
 */

:root {
  --font-sans: sans-serif;
  --font-serif: serif;

  /* Typography helpers. */
  --font-size-base: 1rem;
  --font-size-l: 1.125rem;
  --font-size-s: 0.875rem;
  --font-size-xs: 0.8125rem;
  --font-size-xxs: 0.75rem;

  /* Layout helpers. */
  --max-width: 84.375rem;
  --max-bg-color: 98.125rem; /* Width to which the background color extends to. */
  --sp: 1rem;
  --content-left: 5.625rem;
  --site-header-height-wide: var(--sp10);
  --container-padding: var(--sp); /* Inline padding on .container elements. */

  @media (min-width: 75rem) {
    --container-padding: var(--sp2);
  }

  /**
   * Grid helpers.
   *
   * These variables help authors apply widths and negative margins to break items out of
   * the grid, while still conforming to the larger grid system.
   */
  --scrollbar-width: 0px; /* Unit must be specified here for calc() to work properly.*/
  --grid-col-count: 6;
  --grid-gap: var(--sp);
  --grid-gap-count: calc(var(--grid-col-count) - 1); /* Count of grid-gaps. */
  --grid-full-width: calc(100vw - var(--sp2) - var(--scrollbar-width)); /* Width of the entire grid. */
  --grid-col-width: calc((var(--grid-full-width) - (var(--grid-gap-count) * var(--grid-gap))) / var(--grid-col-count)); /* Width of a grid column. */

  @media (min-width: 43.75rem) {
    --grid-col-count: 14;
    --grid-gap: var(--sp2);
  }

  @media (min-width: 62.5rem) {
    --scrollbar-width: 0.9375rem; /* Approximate width of a scrollbar. Doesn't have to be perfect. */
  }

  @media (min-width: 75rem) {
    --grid-full-width: calc(100vw - var(--scrollbar-width) - var(--content-left) - var(--sp4));
  }

  @media (min-width: 90rem) {
    --grid-full-width: calc(var(--max-width) - var(--sp4));
  }

  /* Layout helpers */
  --sp0-25: calc(0.25 * var(--sp));
  --sp0-5: calc(0.5 * var(--sp));
  --sp0-75: calc(0.75 * var(--sp));
  --sp1: calc(1 * var(--sp));
  --sp1-5: calc(1.5 * var(--sp));
  --sp2: calc(2 * var(--sp));
  --sp2-5: calc(2.5 * var(--sp));
  --sp3: calc(3 * var(--sp));
  --sp3-5: calc(3.5 * var(--sp));
  --sp4: calc(4 * var(--sp));
  --sp4-5: calc(4.5 * var(--sp));
  --sp5: calc(5 * var(--sp));
  --sp6: calc(6 * var(--sp));
  --sp7: calc(7 * var(--sp));
  --sp8: calc(8 * var(--sp));
  --sp9: calc(9 * var(--sp));
  --sp10: calc(10 * var(--sp));
  --sp11: calc(11 * var(--sp));
  --sp12: calc(12 * var(--sp));
  --sp13: calc(13 * var(--sp));

  --color--gray-5: #0b0d0f;
  --color--gray-10: #181d20;
  --color--gray-20: #2b353b;
  --color--gray-45: #5f7581;
  --color--gray-60: #8196a2;
  --color--gray-65: #92a5af;
  --color--gray-70: #adbbc2;
  --color--gray-90: #dce2e5;
  --color--gray-95: #eaeef0;
  --color--gray-100: #f6f8f8;

  --color--primary-30: #116392;
  --color--primary-40: #1475ad;
  --color--primary-50: #1b9ae4;
  --color--primary-60: #52b3eb;
  --color--primary-80: #ddf0fb;

  /**
   * Variables specific to text.
   */
  --color-text-neutral-soft: var(--color--gray-45);
  --color-text-neutral-medium: var(--color--gray-20);
  --color-text-neutral-loud: var(--color--gray-5);

  --color-text-primary-medium: var(--color--primary-40);
  --color-text-primary-loud: var(--color--primary-30);

  --color--black: #000;
  --color--white: #fff;
  --color--red: #e33f1e;
  --color--gold: #fdca40;
  --color--green: #3fa21c;
}
