:root {
  /* colours */
  --clr-primary-400: hsl(217, 96%, 11%);
  /* Oxford Blue */
  --clr-accent-100: hsl(208, 48%, 37%);
  /* Lapis Lazuli - blue */
  --clr-accent-400: hsl(220, 54%, 19%);
  /* faded blue */

  --clr-neutral-50: hsl(0, 0%, 100%);
  /* white */
  --clr-neutral-100: hsl(60, 0.5%, 62.5%);
  /* light grey */
  --clr-neutral-200: hsl(36, 35%, 68%);
  /* gold yellow */
  --clr-neutral-300: hsl(217, 45%, 24%);
  /* grey blue */
  --clr-neutral-900: hsl(197, 24%, 57%);
  /* pewter blue */

  /* -- fonts -- */
  --ff-thin: "Be Vietnam Pro thin", sans-serif;
  --ff-extra-light: "Be Vietnam Pro extra light", sans-serif;
  --ff-body: "Be Vietnam Pro regular", sans-serif;
  --ff-medium: "Be Vietnam Pro medium", sans-serif;
  --ff-bold: "Be Vietnam Pro bold", sans-serif;

  --fw-thin: 100;
  --fw-extra-light: 200;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;

  --fs-300: .813rem;
  --fs-400: 1rem;
  --fs-420: 1.125rem;
  --fs-500: 1.5rem;
  --fs-550: 1.875rem;
  --fs-600: 2rem;
  --fs-700: 2.5rem;
  --fs-800: 3.5rem;

  --fs-body: var(--fs-400);
  --fs-nav: var(--fs-500);
  --fs-primary-heading: var(--fs-600);
  --fs-secondary-heading: var(--fs-700);
  --fs-button: var(--fs-400);
}


/* -- CSS RESET -- */
/* https://piccalil.li/blog/a-modern-css-reset */

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  font: inherit;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

html,
body {
  height: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Set core body defaults */
body {
  text-rendering: optimizeSpeed;
  line-height: 1.5;
  font-family: var(--ff-body);
  font-size: var(--fs-body);
  color: var(--clr-accent-100);
}

/* a elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

a {
  text-decoration: none;
  color: inherit;
}

/* make images easier to work with */
img,
picture,
svg {
  max-width: 100%;
  display: block;
}

/* remove all animations, transitions and smooth scroll for people that prefer not to see them */
/* note, if user has this setting enabled, the animations will appear 'clunky'. */
@media(prefers-reduced-motion:reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* additional default styles */
body {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

/* utility classes */

.text-primary-400 {
  color: var(--clr-primary-400);
}

.text-accent-100 {
  color: var(--clr-accent-100);
}

.text-accent-400 {
  color: var(--clr-accent-400);
}

.text-neutral-50 {
  color: var(--clr-neutral-50);
}

.text-neutral-100 {
  color: var(--clr-neutral-100);
}

.text-neutral-200 {
  color: var(--clr-neutral-200);
}

.text-neutral-300 {
  color: var(--clr-neutral-300);
}

.text-neutral-900 {
  color: var(--clr-neutral-900);
}

.bg-primary-400 {
  background-color: var(--clr-primary-400);
}

.bg-accent-100 {
  background-color: var(--clr-accent-100);
}

.bg-accent-400 {
  background-color: var(--clr-accent-400);
}

.bg-neutral-100 {
  background-color: var(--clr-neutral-100);
}

.bg-neutral-200 {
  background-color: var(--clr-neutral-200);
}

.bg-neutral-300 {
  background-color: var(--clr-neutral-300);
}


.bg-neutral-900 {
  background-color: var(--clr-neutral-900);
}

.fw-thin {
  font-weight: var(--fw-thin);
}

.fw-extra-light {
  font-weight: var(--fw-extra-light);
}

.fw-regular {
  font-weight: var(--fw-regular);
}

.fw-medium {
  font-weight: var(--fw-medium);
}

.fw-bold {
  font-weight: var(--fw-bold);
}

.fs-primary-heading {
  font-size: var(--fs-primary-heading);
}

.fs-secondary-heading {
  font-size: var(--fs-secondary-heading);
}

.fs-nav {
  font-size: var(--fs-nav);
}

.fs-button {
  font-size: var(--fs-button);
}

.fs-300 {
  font-size: var(--fs-300);
}

.fs-400 {
  font-size: var(--fs-400);
}

.fs-420 {
  font-size: var(--fs-420);
}

.fs-500 {
  font-size: var(--fs-500);
}

.fs-550 {
  font-size: var(--fs-550);
}

.fs-600 {
  font-size: var(--fs-600);
}

.fs-700 {
  font-size: var(--fs-700);
}

.fs-800 {
  font-size: var(--fs-800);
}