:root {
  /* spacing */
  --spacing-xs: 3px;
  --spacing-sm: 6px;
  --spacing-md: 12px;
  --spacing-lg: 24px;
  --spacing-xl: 48px;

  --grid-gap: 16px;
  --border-radius: 4px;

  /* color */
  --color-primary: #0068a5;
  --color-primary-dark: #004e82;
  --color-primary-light: #179fdb;

  --color-secondary: #fa931d;
  --color-secondary-dark: #d56b17;
  --color-secondary-light: #f8d9c0;

  --color-tertiary: #4caf50;
  --color-tertiary-dark: #10441c;
  --color-tertiary-light: #a7eab6;

  --color-quaternary: #db3486;
  --color-quaternary-dark: #75214a;
  --color-quaternary-light: #dfa9c3;

  --color-error: #dc3544;
  --color-error-dark: #721c24;
  --color-error-light: #f8d7da;

  --color-success: #4caf50;
  --color-success-dark: #155724;
  --color-success-light: #d4edda;

  --color-warning: #ffd14e;
  --color-warning-dark: #856404;
  --color-warning-light: #fff3cd;

  --color-info: #0068a5;
  --color-info-dark: #004085;
  --color-info-light: #cce5ff;

  --color-grey: #bbbbc3;
  --color-grey-light: #f0f3f5;
  --color-grey-dark: #575756;

  --color-foreground: #000000;
  --color-background: #ffffff;

  /* font */
  --font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu,
    Cantarell, "Helvetica Neue", sans-serif;
  --line-height: 1.15;
  --font-size: 16px;
  --font-weight: 400;
}

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

*:focus {
  outline-width: 2px;
  outline-style: solid;
  outline-color: var(--color-primary);
}

html {
  font-family: var(--font-family);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  line-height: var(--line-height);
}

body {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family);
}

hr {
  height: 0;
  color: inherit;
}

b,
strong {
  font-weight: bolder;
}

abbr[title] {
  text-decoration: underline dotted;
}

code,
kbd,
samp,
pre {
  font-family: monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

table {
  text-indent: 0;
  border-color: inherit;
}

legend {
  padding: 0;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button,
select {
  text-transform: none;
}

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

a:hover {
  text-decoration: underline;
}

img {
  max-width: 100%;
  height: auto;
}

.layout-container {
  max-width: 1024px;
  margin: 0 auto;
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}

main.layout-container {
  max-width: 640px;
  padding: 0;
}

.main-header {
  border-bottom: 4px solid var(--color-grey);
  margin-bottom: var(--spacing-xl);
}

.main-header-content {
  padding-top: var(--spacing-xl);
  padding-bottom: var(--spacing-xl);
  background: var(--color-background);
}

main.layout-container {
  margin-bottom: var(--spacing-xl);
}
