/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

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

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

/* Document
 * ========================================================================== */

/**
 * Add border box sizing in all browsers (opinionated).
 */

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

/**
 * 1. Add text decoration inheritance in all browsers (opinionated).
 * 2. Add vertical alignment inheritance in all browsers (opinionated).
 */

::before,
::after {
  text-decoration: inherit; /* 1 */
  vertical-align: inherit; /* 2 */
}

/**
 * 1. Use the default cursor in all browsers (opinionated).
 * 2. Change the line height in all browsers (opinionated).
 * 3. Use a 4-space tab width in all browsers (opinionated).
 * 4. Remove the grey highlight on links in iOS (opinionated).
 * 5. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 * 6. Breaks words to prevent overflow in all browsers (opinionated).
 */

html {
  cursor: default; /* 1 */
  line-height: 1.5; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  -webkit-tap-highlight-color: transparent /* 4 */;
  -ms-text-size-adjust: 100%; /* 5 */
  -webkit-text-size-adjust: 100%; /* 5 */
  word-break: break-word; /* 6 */
}

/* Sections
 * ========================================================================== */

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Edge, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
 * ========================================================================== */

/**
 * Remove the margin on nested lists in Chrome, Edge, IE, and Safari.
 */

dl dl,
dl ol,
dl ul,
ol dl,
ul dl {
  margin: 0;
}

/**
 * Remove the margin on nested lists in Edge 18- and IE.
 */

ol ol,
ol ul,
ul ol,
ul ul {
  margin: 0;
}

/**
 * 1. Correct the inheritance of border color in Firefox.
 * 2. Add the correct box sizing in Firefox.
 * 3. Show the overflow in Edge 18- and IE.
 */

hr {
  color: inherit; /* 1 */
  height: 0; /* 2 */
  overflow: visible; /* 3 */
}

/**
 * Add the correct display in IE.
 */

main {
  display: block;
}

/**
 * Remove the list style on navigation lists in all browsers (opinionated).
 */

nav ol,
nav ul {
  list-style: none;
  padding: 0;
}

/**
 * Prevent VoiceOver from ignoring list semantics in Safari (opinionated).
 */

nav li::before {
  content: "\200B";
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 * 3. Prevent overflow of the container in all browsers (opinionated).
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
  overflow: auto; /* 3 */
  -ms-overflow-style: scrollbar; /* 3 */
}

/* Text-level semantics
 * ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * Add the correct text decoration in Edge 18-, IE, and Safari.
 */

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

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/* Embedded content
 * ========================================================================== */

/*
 * Change the alignment on media elements in all browsers (opinionated).
 */

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

/**
 * Add the correct display in IE 9-.
 */

audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on iframes in all browsers (opinionated).
 */

iframe {
  border-style: none;
}

/**
 * Remove the border on images within links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Change the fill color to match the text color in all browsers (opinionated).
 */

svg:not([fill]) {
  fill: currentColor;
}

/**
 * Hide the overflow in IE.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Tabular data
 * ========================================================================== */

/**
 * 1. Collapse border spacing in all browsers (opinionated).
 * 2. Correct table border color inheritance in all Chrome, Edge, and Safari.
 * 3. Remove text indentation from table contents in Chrome, Edge, and Safari.
 */

table {
  border-collapse: collapse; /* 1 */
  border-color: inherit; /* 2 */
  text-indent: 0; /* 3 */
}

/* Forms
 * ========================================================================== */

/**
 * Remove the margin on controls in Safari.
 */

button,
input,
select {
  margin: 0;
}

/**
 * 1. Show the overflow in IE.
 * 2. Remove the inheritance of text transform in Edge 18-, Firefox, and IE.
 */

button {
  overflow: visible; /* 1 */
  text-transform: none; /* 2 */
}

/**
 * Correct the inability to style buttons in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * 1. Change the inconsistent appearance in all browsers (opinionated).
 * 2. Correct the padding in Firefox.
 */

fieldset {
  border: 1px solid #a0a0a0; /* 1 */
  padding: 0.35em 0.75em 0.625em; /* 2 */
}

/**
 * Show the overflow in Edge 18- and IE.
 */

input {
  overflow: visible;
}

/**
 * 1. Correct the text wrapping in Edge 18- and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 */

legend {
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  white-space: normal; /* 1 */
}

/**
 * 1. Add the correct display in Edge 18- and IE.
 * 2. Add the correct vertical alignment in Chrome, Edge, and Firefox.
 */

progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Remove the inheritance of text transform in Firefox.
 */

select {
  text-transform: none;
}

/**
 * 1. Remove the margin in Firefox and Safari.
 * 2. Remove the default vertical scrollbar in IE.
 * 3. Change the resize direction in all browsers (opinionated).
 */

textarea {
  margin: 0; /* 1 */
  overflow: auto; /* 2 */
  resize: vertical; /* 3 */
  resize: block; /* 3 */
}

/**
 * Remove the padding in IE 10-.
 */

[type="checkbox"],
[type="radio"] {
  padding: 0;
}

/**
 * 1. Correct the odd appearance in Chrome, Edge, and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Safari.
 */

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

/**
 * Remove the inner padding in Chrome, Edge, and Safari on macOS.
 */

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style upload buttons in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Remove the inner border and padding of focus outlines in Firefox.
 */

::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus outline styles unset by the previous rule in Firefox.
 */

:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Remove the additional :invalid styles in Firefox.
 */

:-moz-ui-invalid {
  box-shadow: none;
}

/* Interactive
 * ========================================================================== */

/*
 * Add the correct display in Edge 18- and IE.
 */

details {
  display: block;
}

/*
 * Add the correct styles in Edge 18-, IE, and Safari.
 */

dialog {
  background-color: white;
  border: solid;
  color: black;
  display: block;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  left: 0;
  margin: auto;
  padding: 1em;
  position: absolute;
  right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
}

dialog:not([open]) {
  display: none;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Scripting
 * ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */

template {
  display: none;
}

/* User interaction
 * ========================================================================== */

/*
 * Remove the tapping delay in IE 10.
 */

a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
  -ms-touch-action: manipulation;
}

/**
 * Add the correct display in IE 10-.
 */

[hidden] {
  display: none;
}

/* Accessibility
 * ========================================================================== */

/**
 * Change the cursor on busy elements in all browsers (opinionated).
 */

[aria-busy="true"] {
  cursor: progress;
}

/*
 * Change the cursor on control elements in all browsers (opinionated).
 */

[aria-controls] {
  cursor: pointer;
}

/*
 * Change the cursor on disabled, not-editable, or otherwise
 * inoperable elements in all browsers (opinionated).
 */

[aria-disabled="true"],
[disabled] {
  cursor: not-allowed;
}

/*
 * Change the display on visually hidden accessible elements
 * in all browsers (opinionated).
 */

[aria-hidden="false"][hidden] {
  display: initial;
}

[aria-hidden="false"][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  position: absolute;
}

.u-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  -moz-column-gap: var(--size-grid-gap-width);
       column-gap: var(--size-grid-gap-width);
}

.u-span1 {
  grid-column: span 1;
}

.u-span2 {
  grid-column: span 2;
}

.u-span3 {
  grid-column: span 3;
}

.u-span4 {
  grid-column: span 4;
}

.u-span5 {
  grid-column: span 5;
}

.u-span6 {
  grid-column: span 6;
}

.u-span7 {
  grid-column: span 7;
}

.u-span8 {
  grid-column: span 8;
}

.u-span9 {
  grid-column: span 9;
}

.u-span10 {
  grid-column: span 10;
}

.u-span11 {
  grid-column: span 11;
}

.u-span12 {
  grid-column: span 12;
}

@media (min-width: 320px) {
  .u-sm-span1 {
    grid-column: span 1;
  }

  .u-sm-span2 {
    grid-column: span 2;
  }

  .u-sm-span3 {
    grid-column: span 3;
  }

  .u-sm-span4 {
    grid-column: span 4;
  }

  .u-sm-span5 {
    grid-column: span 5;
  }

  .u-sm-span6 {
    grid-column: span 6;
  }

  .u-sm-span7 {
    grid-column: span 7;
  }

  .u-sm-span8 {
    grid-column: span 8;
  }

  .u-sm-span9 {
    grid-column: span 9;
  }

  .u-sm-span10 {
    grid-column: span 10;
  }

  .u-sm-span11 {
    grid-column: span 11;
  }

  .u-sm-span12 {
    grid-column: span 12;
  }
}

@media (min-width: 720px) {
  .u-md-span1 {
    grid-column: span 1;
  }

  .u-md-span2 {
    grid-column: span 2;
  }

  .u-md-span3 {
    grid-column: span 3;
  }

  .u-md-span4 {
    grid-column: span 4;
  }

  .u-md-span5 {
    grid-column: span 5;
  }

  .u-md-span6 {
    grid-column: span 6;
  }

  .u-md-span7 {
    grid-column: span 7;
  }

  .u-md-span8 {
    grid-column: span 8;
  }

  .u-md-span9 {
    grid-column: span 9;
  }

  .u-md-span10 {
    grid-column: span 10;
  }

  .u-md-span11 {
    grid-column: span 11;
  }

  .u-md-span12 {
    grid-column: span 12;
  }
}

@media (min-width: 960px) {
  .u-lg-span1 {
    grid-column: span 1;
  }

  .u-lg-span2 {
    grid-column: span 2;
  }

  .u-lg-span3 {
    grid-column: span 3;
  }

  .u-lg-span4 {
    grid-column: span 4;
  }

  .u-lg-span5 {
    grid-column: span 5;
  }

  .u-lg-span6 {
    grid-column: span 6;
  }

  .u-lg-span7 {
    grid-column: span 7;
  }

  .u-lg-span8 {
    grid-column: span 8;
  }

  .u-lg-span9 {
    grid-column: span 9;
  }

  .u-lg-span10 {
    grid-column: span 10;
  }

  .u-lg-span11 {
    grid-column: span 11;
  }

  .u-lg-span12 {
    grid-column: span 12;
  }
}

.u-spaceB4 {
  margin-bottom: var(--space-4) !important;
}

.u-spaceB12 {
  margin-bottom: var(--space-12) !important;
}

.u-spaceT4 {
  margin-top: var(--space-4) !important;
}

.u-spaceT12 {
  margin-top: var(--space-12) !important;
}

:root {
  --animation-reveal: fadeInUp .1s forwards .0s ease-out;
  --animation-fade-in: fadeIn .1s forwards .0s ease-out;
  --animation-blink: blink .3s ease-out infinite;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 16px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 16px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

:root {
  --color-brand-dark:             #03363D;
  --color-brand-light:            #D5EEED;

  --color-weak:                   #F4F9F8;

  --color-text-strong-on-light:   #111;
  --color-text-default-on-light:  #333;

  --color-text-link-on-light:     #BC3C1A;

  --color-background-light:       #fff;
  --color-foreground-light:       #000;

  --color-scheme:                 'light';
  --color-background:             var(--color-background-light);
  --color-foreground:             var(--color-foreground-light);
  --color-text-strong:            var(--color-text-strong-on-light);
  --color-text-default:           var(--color-text-default-on-light);

  --color-text-link:              var(--color-text-link-on-light);
}

@font-face {
  font-family: 'Stolzl';
  src: url("/fonts/Stolzl-Book.woff2") format("woff2"), url("fonts/Stolzl-Book.woff") format("woff");
  font-display: swap;
  font-weight: 400;
  font-style: normal;
  font-stretch: normal;
  font-variant: normal;
}

@font-face {
  font-family: 'Stolzl';
  src: url("/fonts/Stolzl-Medium.woff2") format("woff2"), url("fonts/Stolzl-Medium.woff") format("woff");
  font-display: swap;
  font-weight: 500;
  font-style: normal;
  font-stretch: normal;
  font-variant: normal;
}

@font-face {
  font-family: 'StolzlDisplay';
  src: url("/fonts/StolzlDisplay-Medium.woff2") format("woff2"), url("fonts/StolzlDisplay-Medium.woff") format("woff");
  font-display: swap;
  font-weight: 500;
  font-style: normal;
  font-stretch: normal;
  font-variant: normal;
}

:root {
  --font-family-text: 'Stolzl', sans-serif;
  --font-family-display: 'StolzlDisplay', sans-serif;

  --font-weight-regular:  400;
  --font-weight-medium:   500;

  --font-headline: normal normal var(--font-weight-regular) 2em/1.25 var(--font-family-display);
  --font-lead: normal normal var(--font-weight-regular) 1.25em/1.3 var(--font-family-text);
  --font-subhead: normal normal var(--font-weight-medium) 1.25em/1.3 var(--font-family-text);
  --font-logo: normal normal var(--font-weight-medium) 1.25em/1.5 var(--font-family-display);
  --font-body: normal normal var(--font-weight-regular) 1.25em/1.5 var(--font-family-text);
  --font-small: normal normal var(--font-weight-regular) 1em/1.5 var(--font-family-text);
}

@media (min-width: 720px) {
  :root {
    --font-headline: normal normal var(--font-weight-regular) 2.5em/1.25 var(--font-family-display);
    --font-lead: normal normal var(--font-weight-regular) 1.5em/1.3 var(--font-family-text);
    --font-subhead: normal normal var(--font-weight-medium) 1.5em/1.3 var(--font-family-text);
    --font-logo: normal normal var(--font-weight-medium) 1.5em/1.5 var(--font-family-display);
    --font-body: normal normal var(--font-weight-regular) 1.1875em/1.5 var(--font-family-text);
  }
}

@media (min-width: 960px) {
  :root {
    --font-headline: normal normal var(--font-weight-regular) 3em/1.166 var(--font-family-display);
    --font-lead: normal normal var(--font-weight-regular) 2em/1.3 var(--font-family-text);
  }
}

@media (min-width: 1280px) {
  :root {
    --font-headline: normal normal var(--font-weight-regular) 4em/1.0625 var(--font-family-display);
  }
}

:root {
  --size-site-max-width: 1400px;
  --size-site-margin: 6.4%;
  --size-grid-gap-width: 1.5em;
  --size-text-max-width: 28em;
}

:root {
  --space: 0.25rem;

  --space-1: calc(var(--space) * 1);      /*  4    */
  --space-2: calc(var(--space) * 2);      /*  8    */
  --space-3: calc(var(--space) * 3);      /*  12   */
  --space-4: calc(var(--space) * 4);      /*  16   */
  --space-5: calc(var(--space) * 5);      /*  20   */
  --space-6: calc(var(--space) * 6);      /*  24   */
  --space-7: calc(var(--space) * 7);      /*  28   */
  --space-8: calc(var(--space) * 8);      /*  32   */
  --space-9: calc(var(--space) * 9);      /*  36   */
  --space-10: calc(var(--space) * 10);    /*  40   */
  --space-11: calc(var(--space) * 11);    /*  44   */
  --space-12: calc(var(--space) * 12);    /*  48   */
}

:root {
  --image-filter: grayscale(100%);
}

:root {
 width: 100%;
 height: 100%;
 overflow-x: hidden;
 font-family: var(--font-family-text);
 color: var(--color-text-default);
 font-size: 100%;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-rendering: geometricPrecision;
}

@media (hover: hover) {
  a:not(:hover) {
    transition: color .6s;
  }
}

/* Hide .lazy elements if JavaScript is off */

.no-js .js-lazy {
  display: none;
}

/*
 * Utility class to hide content visually while keeping it screen reader-accessible.
 * Source: https://www.scottohara.me/blog/2017/04/14/inclusively-hidden.html
 */

.u-hidden:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(100%);
          clip-path: inset(100%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

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

a:hover,
a:active {
  background-color: transparent;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
blockquote,
iframe,
figure {
  font: inherit;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

button {
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  cursor: default;
}

address {
  font-style: normal;
}

/*
 * https://github.com/WICG/focus-visible
 * https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/
 */

:focus:not(.focus-visible) {
  outline: 0 !important;
}

.focus-visible {
  outline: 2px solid var(--color-focus-ring) !important;
  outline-offset: .25em;
}

:root {
  --block-max-width: var(--size-site-max-width);
  --block-padding: var(--size-site-margin);
  --block-spacing: var(--space);
  --block-background-color: var(--color-background);
}

.Block {
  width: 100%;
  margin: 4rem 0;
  padding: 0 var(--block-padding);
}

.Block--themed {
  padding: 3rem var(--block-padding);
}

.Block--modeHeader {
  padding: 8rem var(--block-padding) 4rem;
  margin: 0;
}

.Block--modeHeader .Text * {
  margin-left: auto;
  margin-right: auto;
}

.Block-inner {
  max-width: var(--block-max-width);
  margin: 0 auto;
}

.Block--modeFull {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.Block--modeFull .Block-inner {
  max-width: none;
}

.Block--modeColumn .Block-inner {
  max-width: 64ch;
}

@media (min-width: 720px) {
  .Block {
    margin: 8rem 0;
  }
  .Block--themed {
    padding: 8rem var(--block-padding);
  }
  .Block--modeHeader {
    padding: 14rem var(--block-padding) 8rem;
    margin: 0;
  }
}

@media (min-width: 960px) {
  .Block {
    margin: 12rem 0;
  }
  .Block--themed {
    padding: 12rem var(--block-padding);
  }
  .Block--modeHeader {
    padding: 14rem var(--block-padding) 4rem;
    margin: 0;
  }
}

.Block--themeBlue {
  background: var(--color-weak);
}

.Card {
  display: block;
  color: #fff;
}

/* https://danieljones.design/css-aspect-ratio-calculator/ */

.Card-image {
  position: relative;
  background-size: cover;
  margin-bottom: .75em;
  padding-bottom: 149.92503748125938%;
  overflow: hidden;
}

.Card-src {
  position: absolute;
  top: 0px;
  display: block;
  width: 100%;
  height: auto;
}

.js .Card-src {
  transition: opacity 1s;
  opacity: 0;
}

.js .Card-src.is-loaded {
  opacity: 1;
}

@media (hover: hover) {
  .js .Card:hover .Card-src {
    visibility: hidden;
  }

  .js .Card:hover .Card-image {
    background-position: 0 0 !important;
  }

  .js .Card:hover .Card-name {
    color: var(--color-text-link);
  }
}

/* Type */

.Card-name {
  font: var(--font-small);
  color: var(--color-text-strong);
}

.Card-title {
  font: var(--font-small);
  color: var(--color-text-default);
}

:root {
  --footer-max-width: var(--size-site-max-width);
  --footer-height: auto;
  --footer-padding: var(--size-site-margin);
  --footer-gap-width: var(--size-gap-width);
  --footer-column-width: var(--size-column-width);
}

.Footer {
  position: relative;
  height: var(--footer-height);
  padding: var(--space-12) var(--footer-padding);
  font-size: 1.1875em;
}

.Footer-inner {
  max-width: var(--footer-max-width);
  margin: 0 auto;
}

.Footer a:hover {
  color: var(--color-text-link);
}

:root {
  --grid-gap-width: var(--size-grid-gap-width);
}

/* Fallback
.Grid::before,
.Grid::after {
  content: " ";
  display: table;
}

.Grid::after {
  clear: both;
}

@media (--min-small) {
  .Grid-item {
    display: block;
    float: left;
    width: 33%;
    padding: calc(var(--grid-gap-width, 0.625rem) / 2) calc(var(--grid-gap-width, 0.625rem) / 2);
    position: relative;
  }
  .Grid-item:nth-child(3n+4){
    clear: left;
  }
}
*/

@supports (display: grid) {
  .Grid-item--span1 { grid-column: span 1 !important }
  .Grid-item--span2 { grid-column: span 2 !important }
  .Grid-item--span3 { grid-column: span 3 !important }
  .Grid-item--span4 { grid-column: span 4 !important }
  .Grid-item--span5 { grid-column: span 5 !important }
  .Grid-item--span6 { grid-column: span 6 !important }
  .Grid-item--span7 { grid-column: span 7 !important }
  .Grid-item--span8 { grid-column: span 8 !important }
  .Grid-item--span9 { grid-column: span 9 !important }
  .Grid-item--span10 { grid-column: span 10 !important }
  .Grid-item--span11 { grid-column: span 11 !important }
  .Grid-item--span12 { grid-column: span 12 !important }

  .Grid::before,
  .Grid::after {
    content: none;
  }

  .Grid-item {
    width: auto;
    padding: 0;
  }

  @media (min-width: 320px) {
    .Grid {
      display: grid;
      width: 100%;
      grid-gap: var(--grid-gap-width);
      grid-template-columns: repeat(2, 1fr);
    }

    .Grid--sm1 {
      grid-template-columns: repeat(1, 1fr);
    }
    .Grid--sm2 {
      grid-template-columns: repeat(2, 1fr);
    }
    .Grid--sm3 {
      grid-template-columns: repeat(3, 1fr);
    }
    .Grid--sm4 {
      grid-template-columns: repeat(4, 1fr);
    }
    .Grid--sm5 {
      grid-template-columns: repeat(5, 1fr);
    }
    .Grid--sm6 {
      grid-template-columns: repeat(6, 1fr);
    }
    .Grid--sm7 {
      grid-template-columns: repeat(7, 1fr);
    }
    .Grid--sm8 {
      grid-template-columns: repeat(8, 1fr);
    }
    .Grid--sm9 {
      grid-template-columns: repeat(9, 1fr);
    }
    .Grid--sm10 {
      grid-template-columns: repeat(10, 1fr);
    }
    .Grid--sm11 {
      grid-template-columns: repeat(11, 1fr);
    }
    .Grid--sm12 {
      grid-template-columns: repeat(12, 1fr);
    }

  }

  @media (min-width: 720px) {
    .Grid--md1 {
      grid-template-columns: repeat(1, 1fr);
    }
    .Grid--md2 {
      grid-template-columns: repeat(2, 1fr);
    }
    .Grid--md3 {
      grid-template-columns: repeat(3, 1fr);
    }
    .Grid--md4 {
      grid-template-columns: repeat(4, 1fr);
    }
    .Grid--md5 {
      grid-template-columns: repeat(5, 1fr);
    }
    .Grid--md6 {
      grid-template-columns: repeat(6, 1fr);
    }
    .Grid--md7 {
      grid-template-columns: repeat(7, 1fr);
    }
    .Grid--md8 {
      grid-template-columns: repeat(8, 1fr);
    }
    .Grid--md9 {
      grid-template-columns: repeat(9, 1fr);
    }
    .Grid--md10 {
      grid-template-columns: repeat(10, 1fr);
    }
    .Grid--md11 {
      grid-template-columns: repeat(11, 1fr);
    }
    .Grid--md12 {
      grid-template-columns: repeat(12, 1fr);
    }
  }

  @media (min-width: 960px) {
    .Grid--lg1 {
      grid-template-columns: repeat(1, 1fr);
    }
    .Grid--lg2 {
      grid-template-columns: repeat(2, 1fr);
    }
    .Grid--lg3 {
      grid-template-columns: repeat(3, 1fr);
    }
    .Grid--lg4 {
      grid-template-columns: repeat(4, 1fr);
    }
    .Grid--lg5 {
      grid-template-columns: repeat(5, 1fr);
    }
    .Grid--lg6 {
      grid-template-columns: repeat(6, 1fr);
    }
    .Grid--lg7 {
      grid-template-columns: repeat(7, 1fr);
    }
    .Grid--lg8 {
      grid-template-columns: repeat(8, 1fr);
    }
    .Grid--lg9 {
      grid-template-columns: repeat(9, 1fr);
    }
    .Grid--lg10 {
      grid-template-columns: repeat(10, 1fr);
    }
    .Grid--lg11 {
      grid-template-columns: repeat(11, 1fr);
    }
    .Grid--lg12 {
      grid-template-columns: repeat(12, 1fr);
    }
  }  
}

:root {
  --header-max-width: var(--size-site-max-width);
  --header-padding: var(--size-site-margin);
  --header-background-color: var(--color-background);
}

.Header {
  z-index: 100;
  top: 0;
  width: 100%;
  padding: 1em var(--header-padding) 1.5em;
}

.Header-inner {
  max-width: var(--header-max-width);
  margin: 0 auto;
  opacity: 0;
  -webkit-animation: var(--animation-fade-in);
          animation: var(--animation-fade-in);
  -webkit-animation-delay: .6s;
          animation-delay: .6s;
}

/* Type etc */

.Header-logo {
  font-size: 1.25em;
  position: relative;
  top: 0;
}

@media (min-width: 720px) {
  .Header-logo {
    font-size: 1.5em;
  }
}

@media (min-width: 960px) {
  .Header-logo {
    font-size: 1.6em;
  }
}

@media (min-width: 1280px) {
  .Header-logo {
    font-size: 1.7em;
  }
}

.Header-logo img {
  width: 5.0625em;
  height: 1.3125em;
}

.Header-menuButton {
  font: var(--font-body);
  color: var(--color-text-strong);
}

.Header-menuItems {
  font: var(--font-body);
  font-size: 18px;
}

.Header-link {
  color: var(--color-text-default);
}

@media (hover: hover) {
  .Header-link:hover {
    color: var(--color-text-link);
  }
  .Header-link:not(:hover) {
    transition: color .3s;
  }
}

.Header-link.is-selected {
  color: var(--color-text-link);
}

/* JS scroll */

.js .Header {
  z-index: 100;
  position: fixed;
  transition: background-color .4s;
}

.js .Header.is-scrolled {
  background-color: var(--header-background-color);
}

.js .Header:not(.is-expanded) .Header-logo,
.js .Header:not(.is-expanded) .Header-nav,
.js .Header:not(.is-expanded) span {
  transition: opacity .3s, visibility .3s;
  opacity: 0;
  visibility: hidden;
}

.js .Header.is-visible:not(.is-expanded) .Header-logo,
.js .Header.is-visible:not(.is-expanded) .Header-nav,
.js .Header.is-visible:not(.is-expanded) span {
  opacity: 1;
  visibility: visible;
}

/* Menu */

/* By default, show and flex menu items */

.Header-menuItems {
  display: flex;
}

.Header-menuItem:not(:last-child) {
  margin-right: 1.5em;
}

/* Enhance if js enabled */

/* If js, flex header content */

.js .Header-inner {
  display: flex;
  align-items: center;
}

.js .Header-menuButton {
  margin-left: auto;
  z-index: 200;
}

.js .Header-menuItems {
  z-index: 100;
}

/* If js, right align menu */

.js .Header-nav {
  display: flex;
  position: relative;
  margin-left: auto;
}

/* If js, hide menu items */

/* On small screens with js enabled, menu overlay */

@media (max-width: 719px) {
  .js .Header-menuItems {
    display: none;
    opacity: 0;
  }

  .js .Header.is-expanded .Header-nav {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    background: var(--header-background-color);
    padding: 1em var(--header-padding) var(--space-12);
  }

  .js .Header.is-expanded .Header-nav .Header-menuItems {
    margin-top: auto;
    display: block;
    font: var(--font-lead);
    color: var(--color-text-strong);
    -webkit-animation: var(--animation-reveal);
            animation: var(--animation-reveal);
    -webkit-animation-delay: .1s;
            animation-delay: .1s;
  }

  .js .Header.is-expanded .Header-nav .Header-menuItem:not(:last-child) {
    margin-bottom: 1em;
  }

  .Header-link {
    color: var(--color-text-strong);
  }

}

@media (min-width: 720px) {
  /* On medium screens, hide menu button */
  .Header-menuButton {
    display: none;
  }

  /* On medium screens with no js, flex header content */
  .no-js .Header-inner {
    display: flex;
    align-items: center;
  }

  .no-js .Header-nav {
    margin-left: auto;
  }

  /* On medium screens with js, show menu items */
  .js .Header-menuItems {
    display: flex;
  }
}

:root {
  --hero-background-color: var(--color-weak);
  --hero-max-width: var(--size-site-max-width);
  --hero-padding: var(--size-site-margin);
}

.Hero {
  background-color: var(--hero-background-color);
}

.Hero-inner {
  padding: 8rem var(--hero-padding) 3rem;
  bottom: var(--space);
}

.Hero-image {
  display: block;
  width: 100%;
  max-width: 900px;
  margin: 3em auto 0;
  height: auto;
}

.Hero .Text * {
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 720px) {
  .Hero-inner {
    padding: 12rem var(--hero-padding) 3rem;
  }
}

@media (min-width: 960px) {
  .Hero-inner {
    padding: 14rem var(--hero-padding) 3rem;
  }
}

.Image {
  display: block;
  width: 100%;
  height: auto;
}

.Image--designRound {
  border-radius: 50%;
  overflow: hidden;
}

.Image--fitCover {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  width: 100%;
  max-height: 100vh;
}

@supports ((-o-object-fit: cover) or (object-fit: cover)) {
  .Image--cover {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: none;
    -o-object-fit: cover;
       object-fit: cover;
    min-width: 0;
    min-height: 0;
  }
}

.js .Image {
  opacity: 0;
  transition: opacity 1s;
}

.js .Image.is-loaded {
  opacity: 1;
}

.Logo {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

/* Component for displaying article text */

:root {
  --text-gap-width: 10%;
}

.Text {
  color: var(--color-text-default);
}

.Text > :first-child {
  margin-top: 0;
}

.Text > :last-child {
  margin-bottom: 0;
}

/* Headings */

.Text h1,
.Text h2,
.Text h3,
.Text h4,
.Text h5,
.Text h6 {
  margin: 0 0 1em;
  color: var(--color-text-strong);
}

/* Text styles */

.Text h1,
.Text-h1 {
  font: var(--font-headline);
  color: var(--color-brand-dark);
  margin: 0;
  max-width: 16ch;
}

.Text h2,
.Text-h2 {
  font: var(--font-subhead);
  color: var(--color-brand-dark);
  margin: 0 0 .5em 0;
}

.Text h3,
.Text-h3 {
  font-weight: 500;
}

.Text b,
.Text strong,
.Text-b,
.Text-strong {
  font-weight: 500;
}

.Text i,
.Text em {
  font-style: normal;
  font-weight: 500;
}

.Text .callout,
.Text-callout {
  font: var(--font-body);
  max-width: 30ch;
  margin-left: auto;
  margin-right: auto;
}

.Text .lead,
.Text-lead {
  font: var(--font-lead);
  max-width: 30ch;
  margin-left: auto;
  margin-right: auto;
}

/* Paragraphs */

.Text p:not(:first-of-type) {
  /*text-indent: 3em;*/
}

.Text p {
  font: var(--font-body);
  margin: 0 0 1em;
  max-width: 56ch;
}

/* Blockquotes */

.Text blockquote {
  margin: 1em 0;
  padding-left: 1.5em;
}

/* Lists */

.Text ul,
.Text ol {
  list-style: none;
  margin: 1em 0;
  padding: 0;
}

.Text li > ul {
  margin: 0;
}

.Text li {
  position: relative;
  padding-left: 1.5em;
}

.Text li:before {
  position: absolute;
  left: 0px;
}

.Text ul li:before {
  content: "•";
}

.Text ol li {
  counter-increment: step-counter;
}

.Text ol li:before {
  content: counter(step-counter) ".";
}

.Text-listStyleNone,
.Text .listStyleNone {
  list-style: none;
}

.Text-listStyleNone li,
.Text .listStyleNone li {
  padding-left: 0;
}

.Text-listStyleNone li:before,
.Text ul.listStyleNone li:before {
  content: none;
}

/* Code */

.Text pre {

}

.Text code {

}

/* Utils */

.Text-nowrap {
  white-space: nowrap;
}

/* Tables */

.Text table {
  table-layout: auto;
  width: 100%;
  margin: 1em 0;
  border: 2px solid black;
  word-break: normal;
}

.Text th {
  border: 2px solid black;
  padding: 1em;
  font-weight: normal;
  text-align: left;
  vertical-align: top;
}

.Text td {
  border: 2px solid black;
  padding: 1em;
  vertical-align: top;
}

/* Links */

.Text a {
  border-bottom: 1px solid var(--color-text-link);
}

.Text a:hover {
  color: var(--color-text-link);
}

/* Images */

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

/* Align */

.Text-content--alignCenter {
  text-align: center;
}

/* Layout */

.Text--designImage .Text-figure {
  margin-bottom: 2em;
}

@media (min-width: 720px) {
  .Text--designImage {
    display: grid;
    grid-column-gap: var(--text-gap-width);
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
  }
  .Text--designImage .Text-figure {
    grid-column: span 1;
    margin-bottom: 0;
  }
  .Text--designImage .Text-content {
    grid-column: span 1;
  }
  .Text--designImage.Text--positionRight .Text-figure {
    order: 1;
  }
  .Text--designImage.Text--positionRight .Text-content {
    order: 2;
  }
  .Text--designImage.Text--positionLeft .Text-figure {
    order: 2;
  }
  .Text--designImage.Text--positionLeft .Text-content {
    order: 1;
  }
}

@media (min-width: 720px) {
  .Text--designSingle {
    display: grid;
    grid-column-gap: 4%;
    grid-template-columns: repeat(6, 1fr);
    align-items: center;
  }
  .Text--designSingle .Text-content {
    grid-column: 2 / span 4;
  }
}

:root {
  --view-background-color: var(--color-background);
}

.View {
  background-color: var(--view-background-color);
}
